[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Int 2F Fn 1605  - MS Windows - Windows Enh Mode & 286 DOSx Init Broadcast  [W]

   AX = 1605h
   ES:BX = 0000h:0000h
   DS:SI = 0000h:0000h
   CX = 0000h
   DX = flags
       bit 0 = 0 if Windows enhanced-mode initialization
       bit 0 = 1 if Microsoft 286 DOS extender initialization
       bits 1-15 reserved (undefined)
   DI = version number (major in upper byte, minor in lower)

Return: CX = 0000h if okay for Windows to load
   CX = FFFFh (other registers unchanged) if Windows 3.0 in standard mode
   CX <> 0 if Windows should not load
   ES:BX -> startup info structure (see below)
   DS:SI -> virtual86 mode enable/disable callback or 0000h:0000h

Notes: the Windows enhanced mode loader and Microsoft 286 DOS extender will
     broadcast an INT 2F/AX=1605h call when initializing.  Any DOS device
     driver or TSR can watch for this broadcast and return the appropriate
     values.  If the driver or TSR returns CX <> 0, it is also its
     responsibility to display an error message.
   each handler must first chain to the prior INT 2F handler with
     registers unchanged before processing the call
   if the handler requires local data on a per-VM basis, it must store the
     returned ES:BX in the "next" field of a startup info structure and
     return a pointer to that structure in ES:BX
   a single TSR may set the V86 mode enable/disable callback; if DS:SI is
     already nonzero, the TSR must fail the initialization by setting CX
     nonzero
   MSD checks for Windows 3.0 running in standard mode by testing whether
     CX=FFFFh and other registers are unchanged on return

See Also: AX=1606h,AX=1608h,AX=4B05h

Format of Startup Information Structure:
Offset Size    Description
 00h  2 BYTEs  major, minor version of info structure
 02h   DWORD   pointer to next startup info structure or 0000h:0000h
 06h   DWORD   pointer to ASCIZ name of virtual device file or 0000h:0000h
 0Ah   DWORD   virtual device reference data (see below)
       (only used if above nonzero)
 0Eh   DWORD   pointer to instance data records or 0000h:0000h

Format of one Instance Item in array:
Offset Size    Description
 00h   DWORD   address of instance data (end of array if 0000h:0000h)
 04h   WORD    size of instance data

Format of Virtual Device Reference Data:
Offset Size    Description
 00h   DWORD   physical address of ??? or 00000000h
 04h   DWORD   physical address of ??? table
 08h   DWORD   "DEST_PAGE" address to which pages must be mapped
 0Ch  N DWORDs "SRC_PAGE" physical addresses of the pages
       00000000h = end of table

Note:  EMM386.EXE sets the first pointer to the start of the device driver
     chain, the second pointer to a field of 40h bytes followed by a
     16-bit offset to the end of the SRC_PAGE table, and DEST_PAGE to
     the start segment of the UMB area

Virtual mode enable/disable procedure called with:
   AX = 0000h disable V86 mode
   AX = 0001h enable V86 mode
   interrupts disabled

Return: CF set on error
   CF clear if successful
   interrupts disabled

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson