acadia-newlib/newlib/libc/sys/go32/sys/dos.h

58 lines
1.1 KiB
C

#ifndef _DOS_H_
#define _DOS_H_
union REGS {
struct {
unsigned long ax;
unsigned long bx;
unsigned long cx;
unsigned long dx;
unsigned long si;
unsigned long di;
unsigned long cflag;
unsigned long flags;
} x;
struct {
unsigned char al;
unsigned char ah;
unsigned short upper_ax;
unsigned char bl;
unsigned char bh;
unsigned short upper_bx;
unsigned char cl;
unsigned char ch;
unsigned short upper_cx;
unsigned char dl;
unsigned char dh;
unsigned short upper_dx;
} h;
};
struct SREGS {
unsigned short cs;
unsigned short ds;
unsigned short es;
unsigned short fs;
unsigned short gs;
unsigned short ss;
};
#ifdef __cplusplus
extern "C" {
#endif
int bdos(int func, unsigned dx, unsigned al);
int bdosptr(int func, void *dx, unsigned al);
int int86(int ivec, union REGS *in, union REGS *out);
int int86x(int ivec, union REGS *in, union REGS *out, struct SREGS *seg);
int intdos(union REGS *in, union REGS *out);
int intdosx(union REGS *in, union REGS *out, struct SREGS *seg);
#ifdef __cplusplus
}
#endif
#endif