home *** CD-ROM | disk | FTP | other *** search
- /*
- * dosrmx.h
- */
-
- #ifndef _dosrmxh
- #define _dosrmxh
-
- #include <i86.h>
-
- /* ------------------------------------------------------ */
- /* iRMX structure declarations */
- #pragma noalign (dosstatestruct)
- typedef struct dosstatestruct {
- unsigned long edi;
- unsigned long esi;
- unsigned long ebp;
- unsigned long res1;
- unsigned long ebx;
- unsigned long edx;
- unsigned long ecx;
- unsigned long eax;
- unsigned long res2;
- unsigned long eip;
- unsigned long cs;
- unsigned long eflags;
- unsigned long esp;
- unsigned long ss;
- unsigned long es;
- unsigned long ds;
- unsigned long fs;
- unsigned long gs;
- } DOSSTATESTRUC;
-
- typedef struct flagsstruc { unsigned cf: 1;
- unsigned res1: 1;
- unsigned pf: 1;
- unsigned res2: 1;
- unsigned af: 1;
- unsigned res3: 1;
- unsigned zf: 1;
- unsigned sf: 1;
- unsigned tf: 1;
- unsigned ief: 1;
- unsigned df: 1;
- unsigned of: 1;
- unsigned ioplf: 2;
- unsigned ntf: 1;
- unsigned res4: 1;
- } FLAGSTRUCT;
-
- #pragma noalign (WORDREGS)
- struct WORDREGS{
- unsigned short status;
- unsigned short flags;
- unsigned char int_num;
- unsigned char tsr_flags;
- unsigned short reg_ax;
- unsigned short reg_bx;
- unsigned short reg_cx;
- unsigned short reg_dx;
- unsigned short reg_di;
- unsigned short reg_si;
- unsigned short reg_ds;
- unsigned short reg_es;
- unsigned short reg_bp;
- unsigned char xfer_data;
- unsigned char src1_xfer_pair;
- unsigned char src2_xfer_pair;
- unsigned char dest1_xfer_pair;
- unsigned char dest2_xfer_pair;
- unsigned char far *src_p_1;
- unsigned short src_count_1;
- unsigned char far *src_p_2;
- unsigned short src_count_2;
- unsigned char far *dest_p_1;
- unsigned short dest_count_1;
- unsigned char far *dest_p_2;
- unsigned short dest_count_2;
- };
- #pragma noalign (BYTEREGS)
- struct BYTEREGS {
- unsigned short status;
- unsigned short flags;
- unsigned char int_num;
- unsigned char tsr_flags;
- unsigned char reg_al;
- unsigned char reg_ah;
- unsigned char reg_bl;
- unsigned char reg_bh;
- unsigned char reg_cl;
- unsigned char reg_ch;
- unsigned char reg_dl;
- unsigned char reg_dh;
- unsigned short reg_di;
- unsigned short reg_si;
- unsigned short reg_ds;
- unsigned short reg_es;
- unsigned short reg_bp;
- unsigned char xfer_data;
- unsigned char src1_xfer_pair;
- unsigned char src2_xfer_pair;
- unsigned char dest1_xfer_pair;
- unsigned char dest2_xfer_pair;
- unsigned char far *src_p_1;
- unsigned short src_count_1;
- unsigned char far *src_p_2;
- unsigned short src_count_2;
- unsigned char far *dest_p_1;
- unsigned short dest_count_1;
- unsigned char far *dest_p_2;
- unsigned short dest_count_2;
- };
- typedef union dosdatastruct {
- struct WORDREGS x;
- struct BYTEREGS h;
- } DOSDATASTRUC;
-
- /* ------------------------------------------------------ */
- /* iRMX Nucleus interface functions */
- #pragma fixedparams("rqesetvm86extension")
- #pragma fixedparams("rqedosrequest")
-
- extern void rqesetvm86extension(unsigned char,
- void (far *)(void),
- void (far *)(void),
- unsigned short far *);
-
- extern void rqedosrequest(DOSDATASTRUC far *,
- unsigned short,
- unsigned short far *);
-
- #endif
-