Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
struct {
unsigned long edi;
unsigned long esi;
unsigned long ebp;
unsigned long res;
unsigned long ebx;
unsigned long edx;
unsigned long ecx;
unsigned long eax;
} D;
struct {
unsigned short di, di_hi;
unsigned short si, si_hi;
unsigned short bp, bp_hi;
unsigned short res, res_hi;
unsigned short bx, bx_hi;
unsigned short dx, dx_hi;
unsigned short cx, cx_hi;
unsigned short ax, ax_hi;
unsigned short flags;
unsigned short es;
unsigned short ds;
unsigned short fs;
unsigned short gs;
unsigned short ip;
unsigned short cs;
unsigned short sp;
unsigned short ss;
} X;
struct {
unsigned char edi[4];
unsigned char esi[4];
unsigned char ebp[4];
unsigned char res[4];
unsigned char bl, bh, ebx_b2, ebx_b3;
unsigned char dl, dh, edx_b2, edx_b3;
unsigned char cl, ch, ecx_b2, ecx_b3;
unsigned char al, ah, eax_b2, eax_b3;
} H;
typedef union
{
struct D d;
struct X x;
struct H h;
} RM_REGS;
INT 31 is used to acces DPMI(Dos protected mode interface). It is used under DOS and Win9x by apps to get to protected mode and then to make operations like changing memory selectors etc and also calling RM interrupts. But it's a Dossish thing, so hands away.
ntfs wrote:INT 31 is used to acces DPMI(Dos protected mode interface). It is used under DOS and Win9x by apps to get to protected mode and then to make operations like changing memory selectors etc and also calling RM interrupts. But it's a Dossish thing, so hands away.