Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Ralf Brown's Interrupt List (Part 1,2) - int 2f - multiplex - ms windows - enhanced windows & 286 dosx init broadcast http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 2F - Multiplex - MS WINDOWS - ENHANCED WINDOWS & 286 DOSX INIT BROADCAST
        AX = 1605h
        ES:BX = 0000h:0000h
        DS:SI = 0000h:0000h
        CX = 0000h
        DX = flags
            bit 0 = 0 if enhanced Windows 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 <> 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 enhanced Windows 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
SeeAlso: AX=1606h,AX=1608h

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
 06h    DWORD   pointer to ASCIZ name of virtual device file or 0000h:0000h
 0Ah    DWORD   virtual device reference data (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

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

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson