delorie.com/djgpp/doc/libc/libc_450.html   search  
libc.a reference

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

_go32_dpmi_simulate_int

Syntax

 
#include <dpmi.h>

int _go32_dpmi_simulate_int(int vector, _go32_dpmi_registers *regs);

Description

See section DPMI Overview.

This function simulates a real-mode interrup. The registers are set up from regs, including CS and IP, which indicate the address of the call. Any registers the function modifies are reflected in regs on return.

If SS and SP are both zero, a small temporary stack is used when in real mode. If not, they are used as is. It's a good idea to use memset to initialize the register structure before using it.

Return Value

Zero on success, nonzero on failure.

Portability

ANSI/ISO C No
POSIX No

Example

 
_go32_dpmi_registers r;
r.h.ah = 0x08;
r.h.dl = 0x80; /* drive C: */
r.x.ss = r.x.sp = 0;
_go32_dpmi_simulate_int(0x13, &r);
printf("disk is %d cyl, %d head, %d sect\n",
       r.h.ch | ((r.x.cl<<2)&0x300),
       r.h.dh, r.h.cl & 0x3f));


  webmaster     delorie software   privacy  
  Copyright © 2004     Updated Apr 2004