Changed CONTEXT into CONTEXT86 everywhere we really want an i386
context.
Added #ifdef __i386__ around accesses to 386 registers in the generic
CONTEXT structure.

diff --git a/msdos/devices.c b/msdos/devices.c
index d99c21e..4ae228f 100644
--- a/msdos/devices.c
+++ b/msdos/devices.c
@@ -100,10 +100,10 @@
 #define ALL_OFS (ALLDEV_OFS + REQ_SCRATCH)
 
 /* prototypes */
-static void WINAPI nul_strategy(CONTEXT*ctx);
-static void WINAPI nul_interrupt(CONTEXT*ctx);
-static void WINAPI con_strategy(CONTEXT*ctx);
-static void WINAPI con_interrupt(CONTEXT*ctx);
+static void WINAPI nul_strategy(CONTEXT86*ctx);
+static void WINAPI nul_interrupt(CONTEXT86*ctx);
+static void WINAPI con_strategy(CONTEXT86*ctx);
+static void WINAPI con_interrupt(CONTEXT86*ctx);
 
 /* the device headers */
 #define STRATEGY_OFS sizeof(DOS_DEVICE_HEADER)
@@ -128,7 +128,7 @@
 #define nr_devs (sizeof(devs)/sizeof(WINEDEV))
 
 /* the device implementations */
-static void do_lret(CONTEXT*ctx)
+static void do_lret(CONTEXT86*ctx)
 {
   WORD *stack = CTX_SEG_OFF_TO_LIN(ctx, SS_reg(ctx), ESP_reg(ctx));
 
@@ -137,7 +137,7 @@
   SP_reg(ctx) += 2*sizeof(WORD);
 }
 
-static void do_strategy(CONTEXT*ctx, int id, int extra)
+static void do_strategy(CONTEXT86*ctx, int id, int extra)
 {
   REQUEST_HEADER *hdr = CTX_SEG_OFF_TO_LIN(ctx, ES_reg(ctx), EBX_reg(ctx));
   void **hdr_ptr = DOSVM_GetSystemData(id);
@@ -159,12 +159,12 @@
   return hdr_ptr ? *hdr_ptr : (void *)NULL;
 }
 
-static void WINAPI nul_strategy(CONTEXT*ctx)
+static void WINAPI nul_strategy(CONTEXT86*ctx)
 {
   do_strategy(ctx, SYSTEM_STRATEGY_NUL, 0);
 }
 
-static void WINAPI nul_interrupt(CONTEXT*ctx)
+static void WINAPI nul_interrupt(CONTEXT86*ctx)
 {
   REQUEST_HEADER *hdr = get_hdr(SYSTEM_STRATEGY_NUL, NULL);
   /* eat everything and recycle nothing */
@@ -184,12 +184,12 @@
 
 #define CON_BUFFER 128
 
-static void WINAPI con_strategy(CONTEXT*ctx)
+static void WINAPI con_strategy(CONTEXT86*ctx)
 {
   do_strategy(ctx, SYSTEM_STRATEGY_CON, sizeof(int));
 }
 
-static void WINAPI con_interrupt(CONTEXT*ctx)
+static void WINAPI con_interrupt(CONTEXT86*ctx)
 {
   int *scan;
   REQUEST_HEADER *hdr = get_hdr(SYSTEM_STRATEGY_CON,(void **)&scan);
@@ -509,7 +509,7 @@
 {
   REQUEST_HEADER *hdr = (REQUEST_HEADER *)req;
   DOS_DEVICE_HEADER *dhdr;
-  CONTEXT ctx;
+  CONTEXT86 ctx;
   char *phdr;
 
   dhdr = DOSMEM_MapRealToLinear(dev);
diff --git a/msdos/dpmi.c b/msdos/dpmi.c
index 83eea74..2636c60 100644
--- a/msdos/dpmi.c
+++ b/msdos/dpmi.c
@@ -139,7 +139,7 @@
 /**********************************************************************
  *	    INT_GetRealModeContext
  */
-static void INT_GetRealModeContext( REALMODECALL *call, CONTEXT *context )
+static void INT_GetRealModeContext( REALMODECALL *call, CONTEXT86 *context )
 {
     EAX_reg(context) = call->eax;
     EBX_reg(context) = call->ebx;
@@ -164,7 +164,7 @@
 /**********************************************************************
  *	    INT_SetRealModeContext
  */
-static void INT_SetRealModeContext( REALMODECALL *call, CONTEXT *context )
+static void INT_SetRealModeContext( REALMODECALL *call, CONTEXT86 *context )
 {
     call->eax = EAX_reg(context);
     call->ebx = EBX_reg(context);
@@ -190,7 +190,7 @@
  *
  * This routine does the hard work of calling a callback procedure.
  */
-static void DPMI_CallRMCBProc( CONTEXT *context, RMCB *rmcb, WORD flag )
+static void DPMI_CallRMCBProc( CONTEXT86 *context, RMCB *rmcb, WORD flag )
 {
     if (IS_SELECTOR_SYSTEM( rmcb->proc_sel )) {
         /* Wine-internal RMCB, call directly */
@@ -232,7 +232,7 @@
              : "ecx", "edx", "ebp" );
         } else {
             /* 16-bit DPMI client */
-            CONTEXT ctx = *context;
+            CONTEXT86 ctx = *context;
             CS_reg(&ctx) = rmcb->proc_sel;
             EIP_reg(&ctx) = rmcb->proc_ofs;
             DS_reg(&ctx) = ss;
@@ -257,7 +257,7 @@
  *
  * This routine does the hard work of calling a real mode procedure.
  */
-int DPMI_CallRMProc( CONTEXT *context, LPWORD stack, int args, int iret )
+int DPMI_CallRMProc( CONTEXT86 *context, LPWORD stack, int args, int iret )
 {
     LPWORD stack16;
 #ifndef MZ_SUPPORTED
@@ -401,9 +401,9 @@
 /**********************************************************************
  *	    CallRMInt
  */
-static void CallRMInt( CONTEXT *context )
+static void CallRMInt( CONTEXT86 *context )
 {
-    CONTEXT realmode_ctx;
+    CONTEXT86 realmode_ctx;
     FARPROC16 rm_int = INT_GetRMHandler( BL_reg(context) );
     REALMODECALL *call = (REALMODECALL *)PTR_SEG_OFF_TO_LIN( ES_reg(context),
                                                           DI_reg(context) );
@@ -435,10 +435,10 @@
 }
 
 
-static void CallRMProc( CONTEXT *context, int iret )
+static void CallRMProc( CONTEXT86 *context, int iret )
 {
     REALMODECALL *p = (REALMODECALL *)PTR_SEG_OFF_TO_LIN( ES_reg(context), DI_reg(context) );
-    CONTEXT context16;
+    CONTEXT86 context16;
 
     TRACE(int31, "RealModeCall: EAX=%08lx EBX=%08lx ECX=%08lx EDX=%08lx\n",
 	p->eax, p->ebx, p->ecx, p->edx);
@@ -506,7 +506,7 @@
 }
 
 
-static void AllocRMCB( CONTEXT *context )
+static void AllocRMCB( CONTEXT86 *context )
 {
     RMCB *NewRMCB = DPMI_AllocRMCB();
 
@@ -569,7 +569,7 @@
 }
 
 
-static void FreeRMCB( CONTEXT *context )
+static void FreeRMCB( CONTEXT86 *context )
 {
     FIXME(int31, "callback address: %04x:%04x\n",
           CX_reg(context), DX_reg(context));
@@ -590,11 +590,11 @@
 #ifdef MZ_SUPPORTED
 /* (see loader/dos/module.c, function MZ_InitDPMI) */
 
-static void StartPM( CONTEXT *context, LPDOSTASK lpDosTask )
+static void StartPM( CONTEXT86 *context, LPDOSTASK lpDosTask )
 {
     char *base = DOSMEM_MemoryBase(0);
     UINT16 cs, ss, ds, es;
-    CONTEXT pm_ctx;
+    CONTEXT86 pm_ctx;
     DWORD psp_ofs = (DWORD)(lpDosTask->psp_seg<<4);
     PDB16 *psp = (PDB16 *)(base + psp_ofs);
     HANDLE16 env_seg = psp->environment;
@@ -647,7 +647,7 @@
 void WINAPI DPMI_RawModeSwitch( SIGCONTEXT *context )
 {
   LPDOSTASK lpDosTask = MZ_Current();
-  CONTEXT rm_ctx;
+  CONTEXT86 rm_ctx;
   int ret;
 
   if (!lpDosTask) {
@@ -722,7 +722,7 @@
  * Handler for int 31h (DPMI).
  */
 
-void WINAPI INT_Int31Handler( CONTEXT *context )
+void WINAPI INT_Int31Handler( CONTEXT86 *context )
 {
     /*
      * Note: For Win32s processes, the whole linear address space is
diff --git a/msdos/int09.c b/msdos/int09.c
index d112451..2e02554 100644
--- a/msdos/int09.c
+++ b/msdos/int09.c
@@ -21,7 +21,7 @@
  *
  * Handler for int 09h.
  */
-void WINAPI INT_Int09Handler( CONTEXT *context )
+void WINAPI INT_Int09Handler( CONTEXT86 *context )
 {
   BYTE scan = INT_Int09ReadScan();
   UINT vkey = MapVirtualKeyA(scan&0x7f, 1);
@@ -38,7 +38,7 @@
   DOSVM_PIC_ioport_out(0x20, 0x20); /* send EOI */
 }
 
-static void KbdRelay( LPDOSTASK lpDosTask, PCONTEXT context, void *data )
+static void KbdRelay( LPDOSTASK lpDosTask, CONTEXT86 *context, void *data )
 {
   KBDSYSTEM *sys = (KBDSYSTEM *)DOSVM_GetSystemData(0x09);
 
diff --git a/msdos/int10.c b/msdos/int10.c
index d9fd019..69138a7 100644
--- a/msdos/int10.c
+++ b/msdos/int10.c
@@ -56,7 +56,7 @@
  *      Added additional vga graphic support - 3/99
  */
 
-void WINAPI INT_Int10Handler( CONTEXT *context )
+void WINAPI INT_Int10Handler( CONTEXT86 *context )
 {
     static int registered_colors = FALSE;
 
diff --git a/msdos/int11.c b/msdos/int11.c
index 08ce32d..ebc5e1b 100644
--- a/msdos/int11.c
+++ b/msdos/int11.c
@@ -13,7 +13,7 @@
  *
  * Handler for int 11h (get equipment list).
  */
-void WINAPI INT_Int11Handler( CONTEXT *context )
+void WINAPI INT_Int11Handler( CONTEXT86 *context )
 {
     int diskdrives = 0;
     int parallelports = 0;
diff --git a/msdos/int12.c b/msdos/int12.c
index 79429bd..2fd7e1c 100644
--- a/msdos/int12.c
+++ b/msdos/int12.c
@@ -9,7 +9,7 @@
  *
  * Handler for int 12h (get memory size).
  */
-void WINAPI INT_Int12Handler( CONTEXT *context )
+void WINAPI INT_Int12Handler( CONTEXT86 *context )
 {
     AX_reg(context) = 640;
 }
diff --git a/msdos/int13.c b/msdos/int13.c
index c577fa4..7fff05e 100644
--- a/msdos/int13.c
+++ b/msdos/int13.c
@@ -23,7 +23,7 @@
  *
  * Handler for int 13h (disk I/O).
  */
-void WINAPI INT_Int13Handler( CONTEXT *context )
+void WINAPI INT_Int13Handler( CONTEXT86 *context )
 {
     switch(AH_reg(context))
     {
diff --git a/msdos/int15.c b/msdos/int15.c
index 472735f..17be10d 100644
--- a/msdos/int15.c
+++ b/msdos/int15.c
@@ -14,7 +14,7 @@
  *
  * Handler for int 15h (old cassette interrupt).
  */
-void WINAPI INT_Int15Handler( CONTEXT *context )
+void WINAPI INT_Int15Handler( CONTEXT86 *context )
 {
     switch(AH_reg(context))
     {
diff --git a/msdos/int16.c b/msdos/int16.c
index 34fa4fa..9a78a96 100644
--- a/msdos/int16.c
+++ b/msdos/int16.c
@@ -27,7 +27,7 @@
  *    not currently listed here.
  */
 
-void WINAPI INT_Int16Handler( CONTEXT *context )
+void WINAPI INT_Int16Handler( CONTEXT86 *context )
 {
    switch AH_reg(context) {
 
diff --git a/msdos/int17.c b/msdos/int17.c
index a366b7b..5fb337a 100644
--- a/msdos/int17.c
+++ b/msdos/int17.c
@@ -17,7 +17,7 @@
  *
  * Handler for int 17h (printer - output character).
  */
-void WINAPI INT_Int17Handler( CONTEXT *context )
+void WINAPI INT_Int17Handler( CONTEXT86 *context )
 {
     switch( AH_reg(context) )
     {
diff --git a/msdos/int19.c b/msdos/int19.c
index 9cc4a2a..f745e35 100644
--- a/msdos/int19.c
+++ b/msdos/int19.c
@@ -14,7 +14,7 @@
  *
  * Handler for int 19h (Reboot).
  */
-void WINAPI INT_Int19Handler( CONTEXT *context )
+void WINAPI INT_Int19Handler( CONTEXT86 *context )
 {
     WARN(int19, "Attempted Reboot\n");
 }
diff --git a/msdos/int1a.c b/msdos/int1a.c
index 21daa6e..170d2b9 100644
--- a/msdos/int1a.c
+++ b/msdos/int1a.c
@@ -45,7 +45,7 @@
  *     0x00 - 0x07 - date and time
  *     0x?? - 0x?? - Microsoft Real Time Compression Interface
  */ 
-void WINAPI INT_Int1aHandler( CONTEXT *context )
+void WINAPI INT_Int1aHandler( CONTEXT86 *context )
 {
     time_t ltime;
     DWORD ticks;
diff --git a/msdos/int20.c b/msdos/int20.c
index 4743b74..1ad5b42 100644
--- a/msdos/int20.c
+++ b/msdos/int20.c
@@ -14,7 +14,7 @@
  *
  * Handler for int 20h.
  */
-void WINAPI INT_Int20Handler( CONTEXT *context )
+void WINAPI INT_Int20Handler( CONTEXT86 *context )
 {
         ExitProcess( 0 );
 }
diff --git a/msdos/int21.c b/msdos/int21.c
index fbddade..c2ec5a3 100644
--- a/msdos/int21.c
+++ b/msdos/int21.c
@@ -102,7 +102,7 @@
     return TRUE;
 }
 
-static BYTE *GetCurrentDTA( CONTEXT *context )
+static BYTE *GetCurrentDTA( CONTEXT86 *context )
 {
     TDB *pTask = (TDB *)GlobalLock16( GetCurrentTask() );
 
@@ -152,7 +152,7 @@
 	}	
 }
 
-static int INT21_GetFreeDiskSpace( CONTEXT *context )
+static int INT21_GetFreeDiskSpace( CONTEXT86 *context )
 {
     DWORD cluster_sectors, sector_bytes, free_clusters, total_clusters;
     char root[] = "A:\\";
@@ -167,7 +167,7 @@
     return 1;
 }
 
-static int INT21_GetDriveAllocInfo( CONTEXT *context )
+static int INT21_GetDriveAllocInfo( CONTEXT86 *context )
 {
     if (!INT21_GetFreeDiskSpace( context )) return 0;
     if (!heap && !INT21_CreateHeap()) return 0;
@@ -177,7 +177,7 @@
     return 1;
 }
 
-static void GetDrivePB( CONTEXT *context, int drive )
+static void GetDrivePB( CONTEXT86 *context, int drive )
 {
         if(!DRIVE_IsValid(drive))
         {
@@ -220,7 +220,7 @@
 }
 
 
-static void ioctlGetDeviceInfo( CONTEXT *context )
+static void ioctlGetDeviceInfo( CONTEXT86 *context )
 {
     int curr_drive;
     const DOS_DEVICE *dev;
@@ -249,7 +249,7 @@
      */
 }
 
-static BOOL ioctlGenericBlkDevReq( CONTEXT *context )
+static BOOL ioctlGenericBlkDevReq( CONTEXT86 *context )
 {
 	BYTE *dataptr = CTX_SEG_OFF_TO_LIN(context, DS_reg(context), EDX_reg(context));
 	int drive = DOS_GET_DRIVE( BL_reg(context) );
@@ -356,7 +356,7 @@
 	return FALSE;
 }
 
-static void INT21_ParseFileNameIntoFCB( CONTEXT *context )
+static void INT21_ParseFileNameIntoFCB( CONTEXT86 *context )
 {
     char *filename =
         CTX_SEG_OFF_TO_LIN(context, DS_reg(context), ESI_reg(context) );
@@ -394,7 +394,7 @@
     SI_reg(context) += (int)s - (int)filename;
 }
 
-static void INT21_GetSystemDate( CONTEXT *context )
+static void INT21_GetSystemDate( CONTEXT86 *context )
 {
     SYSTEMTIME systime;
     GetLocalTime( &systime );
@@ -403,7 +403,7 @@
     AX_reg(context) = systime.wDayOfWeek;
 }
 
-static void INT21_GetSystemTime( CONTEXT *context )
+static void INT21_GetSystemTime( CONTEXT86 *context )
 {
     SYSTEMTIME systime;
     GetLocalTime( &systime );
@@ -427,7 +427,7 @@
       }
     return drivestring;
 }
-static BOOL INT21_CreateFile( CONTEXT *context )
+static BOOL INT21_CreateFile( CONTEXT86 *context )
 {
     AX_reg(context) = _lcreat16( CTX_SEG_OFF_TO_LIN(context, DS_reg(context),
                                           EDX_reg(context) ), CX_reg(context) );
@@ -443,7 +443,7 @@
                                              CREATE_NEW, attr, -1 ));
 }
 
-static void OpenExistingFile( CONTEXT *context )
+static void OpenExistingFile( CONTEXT86 *context )
 {
     AX_reg(context) = _lopen16( CTX_SEG_OFF_TO_LIN(context, DS_reg(context),EDX_reg(context)),
                                AL_reg(context) );
@@ -454,7 +454,7 @@
     }
 }
 
-static BOOL INT21_ExtendedOpenCreateFile(CONTEXT *context )
+static BOOL INT21_ExtendedOpenCreateFile(CONTEXT86 *context )
 {
   BOOL bExtendedError = FALSE;
   BYTE action = DL_reg(context);
@@ -548,7 +548,7 @@
 }
 
 
-static BOOL INT21_ChangeDir( CONTEXT *context )
+static BOOL INT21_ChangeDir( CONTEXT86 *context )
 {
     int drive;
     char *dirname = CTX_SEG_OFF_TO_LIN(context, DS_reg(context),EDX_reg(context));
@@ -564,7 +564,7 @@
 }
 
 
-static int INT21_FindFirst( CONTEXT *context )
+static int INT21_FindFirst( CONTEXT86 *context )
 {
     char *p;
     const char *path;
@@ -603,7 +603,7 @@
 }
 
 
-static int INT21_FindNext( CONTEXT *context )
+static int INT21_FindNext( CONTEXT86 *context )
 {
     FINDFILE_DTA *dta = (FINDFILE_DTA *)GetCurrentDTA(context);
     WIN32_FIND_DATAA entry;
@@ -641,7 +641,7 @@
 }
 
 
-static BOOL INT21_CreateTempFile( CONTEXT *context )
+static BOOL INT21_CreateTempFile( CONTEXT86 *context )
 {
     static int counter = 0;
     char *name = CTX_SEG_OFF_TO_LIN(context,  DS_reg(context), EDX_reg(context) );
@@ -666,7 +666,7 @@
 }
 
 
-static BOOL INT21_GetCurrentDirectory( CONTEXT *context ) 
+static BOOL INT21_GetCurrentDirectory( CONTEXT86 *context ) 
 {
     int drive = DOS_GET_DRIVE( DL_reg(context) );
     char *ptr = (char *)CTX_SEG_OFF_TO_LIN(context,  DS_reg(context), ESI_reg(context) );
@@ -682,7 +682,7 @@
 }
 
 
-static void INT21_GetDBCSLeadTable( CONTEXT *context )
+static void INT21_GetDBCSLeadTable( CONTEXT86 *context )
 {
     if (heap || INT21_CreateHeap())
     { /* return an empty table just as DOS 4.0+ does */
@@ -697,7 +697,7 @@
 }
 
 
-static int INT21_GetDiskSerialNumber( CONTEXT *context )
+static int INT21_GetDiskSerialNumber( CONTEXT86 *context )
 {
     BYTE *dataptr = CTX_SEG_OFF_TO_LIN(context, DS_reg(context), EDX_reg(context));
     int drive = DOS_GET_DRIVE( BL_reg(context) );
@@ -716,7 +716,7 @@
 }
 
 
-static int INT21_SetDiskSerialNumber( CONTEXT *context )
+static int INT21_SetDiskSerialNumber( CONTEXT86 *context )
 {
     BYTE *dataptr = CTX_SEG_OFF_TO_LIN(context, DS_reg(context), EDX_reg(context));
     int drive = DOS_GET_DRIVE( BL_reg(context) );
@@ -735,7 +735,7 @@
 /* microsoft's programmers should be shot for using CP/M style int21
    calls in Windows for Workgroup's winfile.exe */
 
-static int INT21_FindFirstFCB( CONTEXT *context )
+static int INT21_FindFirstFCB( CONTEXT86 *context )
 {
     BYTE *fcb = (BYTE *)CTX_SEG_OFF_TO_LIN(context, DS_reg(context), EDX_reg(context));
     FINDFILE_FCB *pFCB;
@@ -759,7 +759,7 @@
 }
 
 
-static int INT21_FindNextFCB( CONTEXT *context )
+static int INT21_FindNextFCB( CONTEXT86 *context )
 {
     BYTE *fcb = (BYTE *)CTX_SEG_OFF_TO_LIN(context, DS_reg(context), EDX_reg(context));
     FINDFILE_FCB *pFCB;
@@ -828,19 +828,19 @@
 }
 
 
-static void DeleteFileFCB( CONTEXT *context )
+static void DeleteFileFCB( CONTEXT86 *context )
 {
     FIXME(int21, "(%p): stub\n", context);
 }
 
-static void RenameFileFCB( CONTEXT *context )
+static void RenameFileFCB( CONTEXT86 *context )
 {
     FIXME(int21, "(%p): stub\n", context);
 }
 
 
 
-static void fLock( CONTEXT * context )
+static void fLock( CONTEXT86 * context )
 {
 
     switch ( AX_reg(context) & 0xff )
@@ -878,7 +878,7 @@
 } 
 
 static BOOL
-INT21_networkfunc (CONTEXT *context)
+INT21_networkfunc (CONTEXT86 *context)
 {
      switch (AL_reg(context)) {
      case 0x00: /* Get machine name. */
@@ -940,7 +940,7 @@
 /***********************************************************************
  *           INT21_GetExtendedError
  */
-static void INT21_GetExtendedError( CONTEXT *context )
+static void INT21_GetExtendedError( CONTEXT86 *context )
 {
     BYTE class, action, locus;
     WORD error = GetLastError();
@@ -1055,7 +1055,7 @@
 /***********************************************************************
  *           DOS3Call  (KERNEL.102)
  */
-void WINAPI DOS3Call( CONTEXT *context )
+void WINAPI DOS3Call( CONTEXT86 *context )
 {
     BOOL	bSetDOSExtendedError = FALSE;
 
diff --git a/msdos/int25.c b/msdos/int25.c
index c967334..84b221c 100644
--- a/msdos/int25.c
+++ b/msdos/int25.c
@@ -20,7 +20,7 @@
  *
  * Handler for int 25h (absolute disk read).
  */
-void WINAPI INT_Int25Handler( CONTEXT *context )
+void WINAPI INT_Int25Handler( CONTEXT86 *context )
 {
     BYTE *dataptr = CTX_SEG_OFF_TO_LIN( context, DS_reg(context), EBX_reg(context) );
     DWORD begin, length;
diff --git a/msdos/int26.c b/msdos/int26.c
index a38d355..bf76c64 100644
--- a/msdos/int26.c
+++ b/msdos/int26.c
@@ -18,7 +18,7 @@
  *
  * Handler for int 26h (absolute disk read).
  */
-void WINAPI INT_Int26Handler( CONTEXT *context )
+void WINAPI INT_Int26Handler( CONTEXT86 *context )
 {
     BYTE *dataptr = CTX_SEG_OFF_TO_LIN( context, DS_reg(context), EBX_reg(context) );
     DWORD begin, length;
diff --git a/msdos/int29.c b/msdos/int29.c
index 688b646..cf50a0b 100644
--- a/msdos/int29.c
+++ b/msdos/int29.c
@@ -12,7 +12,7 @@
  *
  * Handler for int 29h (fast console output)
  */
-void WINAPI INT_Int29Handler( CONTEXT *context )
+void WINAPI INT_Int29Handler( CONTEXT86 *context )
 {
    /* Yes, it seems that this is really all this interrupt does. */
    CONSOLE_Write(AL_reg(context), 0, 0, 0);
diff --git a/msdos/int2a.c b/msdos/int2a.c
index 8f3d6ad..efcf0c2 100644
--- a/msdos/int2a.c
+++ b/msdos/int2a.c
@@ -12,7 +12,7 @@
  *
  * Handler for int 2ah (network).
  */
-void WINAPI INT_Int2aHandler( CONTEXT *context )
+void WINAPI INT_Int2aHandler( CONTEXT86 *context )
 {
     switch(AH_reg(context))
     {
diff --git a/msdos/int2f.c b/msdos/int2f.c
index add9ced..52ec327 100644
--- a/msdos/int2f.c
+++ b/msdos/int2f.c
@@ -29,15 +29,15 @@
 /* base WPROCS.DLL ordinal number for VxDs */
 #define VXD_BASE 400
 
-static void do_int2f_16( CONTEXT *context );
-static void MSCDEX_Handler( CONTEXT *context );
+static void do_int2f_16( CONTEXT86 *context );
+static void MSCDEX_Handler( CONTEXT86 *context );
 
 /**********************************************************************
  *	    INT_Int2fHandler
  *
  * Handler for int 2fh (multiplex).
  */
-void WINAPI INT_Int2fHandler( CONTEXT *context )
+void WINAPI INT_Int2fHandler( CONTEXT86 *context )
 {
     TRACE(int,"Subfunction 0x%X\n", AX_reg(context));
 
@@ -291,7 +291,7 @@
 /**********************************************************************
  *	    do_int2f_16
  */
-static void do_int2f_16( CONTEXT *context )
+static void do_int2f_16( CONTEXT86 *context )
 {
     DWORD addr;
 
@@ -451,7 +451,7 @@
     val[0] = frame - CDFRAMES_PERMIN * val[2] - CDFRAMES_PERSEC * val[1]; /* frames */
 }
 
-static void MSCDEX_Handler(CONTEXT* context)
+static void MSCDEX_Handler(CONTEXT86* context)
 {
     int 	drive, count;
     char*	p;
diff --git a/msdos/int33.c b/msdos/int33.c
index 7a65186..23069fc 100644
--- a/msdos/int33.c
+++ b/msdos/int33.c
@@ -21,7 +21,7 @@
  *
  * Handler for int 33h (MS MOUSE).
  */
-void WINAPI INT_Int33Handler( CONTEXT *context )
+void WINAPI INT_Int33Handler( CONTEXT86 *context )
 {
   MOUSESYSTEM *sys = (MOUSESYSTEM *)DOSVM_GetSystemData(0x33);
 
@@ -54,10 +54,10 @@
   WORD mask,but,x,y,mx,my;
 } MCALLDATA;
 
-static void MouseRelay(LPDOSTASK lpDosTask,PCONTEXT context,void *mdata)
+static void MouseRelay(LPDOSTASK lpDosTask,CONTEXT86 *context,void *mdata)
 {
   MCALLDATA *data = (MCALLDATA *)mdata;
-  CONTEXT ctx = *context;
+  CONTEXT86 ctx = *context;
 
   AX_reg(&ctx) = data->mask;
   BX_reg(&ctx) = data->but;
diff --git a/msdos/int3d.c b/msdos/int3d.c
index 1319036..30fabe5 100644
--- a/msdos/int3d.c
+++ b/msdos/int3d.c
@@ -14,7 +14,7 @@
  *
  * Handler for int 3d (FLOATING POINT EMULATION - STANDALONE FWAIT).
  */
-void WINAPI INT_Int3dHandler(CONTEXT *context)
+void WINAPI INT_Int3dHandler(CONTEXT86 *context)
 {
     switch(AH_reg(context))
     {
diff --git a/msdos/int41.c b/msdos/int41.c
index 85c4e26..76f3554 100644
--- a/msdos/int41.c
+++ b/msdos/int41.c
@@ -11,7 +11,7 @@
  *           INT_Int41Handler
  *
  */
-void WINAPI INT_Int41Handler( CONTEXT *context )
+void WINAPI INT_Int41Handler( CONTEXT86 *context )
 {
     if ( ISV86(context) )
     {
diff --git a/msdos/int4b.c b/msdos/int4b.c
index 34e2085..6103b95 100644
--- a/msdos/int4b.c
+++ b/msdos/int4b.c
@@ -9,7 +9,7 @@
  *           INT_Int4bHandler
  *
  */
-void WINAPI INT_Int4bHandler( CONTEXT *context )
+void WINAPI INT_Int4bHandler( CONTEXT86 *context )
 {
     switch(AH_reg(context))
     {
diff --git a/msdos/int5c.c b/msdos/int5c.c
index 60b2b7e..79440b7 100644
--- a/msdos/int5c.c
+++ b/msdos/int5c.c
@@ -16,7 +16,7 @@
  *
  * Also handler for interrupt 5c. 
  */
-void WINAPI NetBIOSCall16( CONTEXT *context )
+void WINAPI NetBIOSCall16( CONTEXT86 *context )
 {
     BYTE* ptr;
     ptr = (BYTE*) PTR_SEG_OFF_TO_LIN(ES_reg(context),BX_reg(context));
diff --git a/msdos/interrupts.c b/msdos/interrupts.c
index 38810cf..36282a0 100644
--- a/msdos/interrupts.c
+++ b/msdos/interrupts.c
@@ -68,7 +68,7 @@
  *
  * Return the interrupt vector for a given interrupt.
  */
-FARPROC16 INT_CtxGetHandler( CONTEXT *context, BYTE intnum )
+FARPROC16 INT_CtxGetHandler( CONTEXT86 *context, BYTE intnum )
 {
     if (ISV86(context))
         return ((FARPROC16*)V86BASE(context))[intnum];
@@ -82,7 +82,7 @@
  *
  * Set the interrupt handler for a given interrupt.
  */
-void INT_CtxSetHandler( CONTEXT *context, BYTE intnum, FARPROC16 handler )
+void INT_CtxSetHandler( CONTEXT86 *context, BYTE intnum, FARPROC16 handler )
 {
     if (ISV86(context)) {
         TRACE(int, "Set real mode interrupt vector %02x <- %04x:%04x\n",
@@ -98,7 +98,7 @@
  *
  * Handle real mode interrupts
  */
-int INT_RealModeInterrupt( BYTE intnum, PCONTEXT context )
+int INT_RealModeInterrupt( BYTE intnum, CONTEXT86 *context )
 {
     /* we should really map to if1632/wprocs.spec, but not all
      * interrupt handlers are adapted to support real mode yet */
diff --git a/msdos/vxd.c b/msdos/vxd.c
index be478c1..3281c7a 100644
--- a/msdos/vxd.c
+++ b/msdos/vxd.c
@@ -40,7 +40,7 @@
 /***********************************************************************
  *           VXD_VMM
  */
-void VXD_VMM ( CONTEXT *context )
+void VXD_VMM ( CONTEXT86 *context )
 {
     unsigned service = AX_reg(context);
 
@@ -67,7 +67,7 @@
 /***********************************************************************
  *           VXD_PageFile
  */
-void WINAPI VXD_PageFile( CONTEXT *context )
+void WINAPI VXD_PageFile( CONTEXT86 *context )
 {
     unsigned	service = AX_reg(context);
 
@@ -113,7 +113,7 @@
 /***********************************************************************
  *           VXD_Reboot
  */
-void VXD_Reboot ( CONTEXT *context )
+void VXD_Reboot ( CONTEXT86 *context )
 {
     unsigned service = AX_reg(context);
 
@@ -134,7 +134,7 @@
 /***********************************************************************
  *           VXD_VDD
  */
-void VXD_VDD ( CONTEXT *context )
+void VXD_VDD ( CONTEXT86 *context )
 {
     unsigned service = AX_reg(context);
 
@@ -155,7 +155,7 @@
 /***********************************************************************
  *           VXD_VMD
  */
-void VXD_VMD ( CONTEXT *context )
+void VXD_VMD ( CONTEXT86 *context )
 {
     unsigned service = AX_reg(context);
 
@@ -176,7 +176,7 @@
 /***********************************************************************
  *           VXD_Shell
  */
-void WINAPI VXD_Shell( CONTEXT *context )
+void WINAPI VXD_Shell( CONTEXT86 *context )
 {
     unsigned	service = DX_reg(context);
 
@@ -270,7 +270,7 @@
 /***********************************************************************
  *           VXD_Comm
  */
-void WINAPI VXD_Comm( CONTEXT *context )
+void WINAPI VXD_Comm( CONTEXT86 *context )
 {
     unsigned	service = AX_reg(context);
 
@@ -295,7 +295,7 @@
 /***********************************************************************
  *           VXD_Timer
  */
-void VXD_Timer( CONTEXT *context )
+void VXD_Timer( CONTEXT86 *context )
 {
     unsigned service = AX_reg(context);
 
@@ -331,7 +331,7 @@
 static DWORD System_Time = 0;
 static WORD  System_Time_Selector = 0;
 static void  System_Time_Tick( WORD timer ) { System_Time += 55; }
-void VXD_TimerAPI ( CONTEXT *context )
+void VXD_TimerAPI ( CONTEXT86 *context )
 {
     unsigned service = AX_reg(context);
 
@@ -364,7 +364,7 @@
 /***********************************************************************
  *           VXD_ConfigMG
  */
-void VXD_ConfigMG ( CONTEXT *context )
+void VXD_ConfigMG ( CONTEXT86 *context )
 {
     unsigned service = AX_reg(context);
 
@@ -385,7 +385,7 @@
 /***********************************************************************
  *           VXD_Enable
  */
-void VXD_Enable ( CONTEXT *context )
+void VXD_Enable ( CONTEXT86 *context )
 {
     unsigned service = AX_reg(context);
 
@@ -406,7 +406,7 @@
 /***********************************************************************
  *           VXD_APM
  */
-void VXD_APM ( CONTEXT *context )
+void VXD_APM ( CONTEXT86 *context )
 {
     unsigned service = AX_reg(context);
 
@@ -479,7 +479,7 @@
  * 
  */
 
-void VXD_Win32s( CONTEXT *context )
+void VXD_Win32s( CONTEXT86 *context )
 {
     switch (AX_reg(context))
     {
diff --git a/msdos/xms.c b/msdos/xms.c
index 389c0a4..0653d52 100644
--- a/msdos/xms.c
+++ b/msdos/xms.c
@@ -39,7 +39,7 @@
  *	    XMS_Handler
  */
 
-void WINAPI XMS_Handler( CONTEXT *context )
+void WINAPI XMS_Handler( CONTEXT86 *context )
 {
     switch(AH_reg(context))
     {