[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Int 21 Fn 4402  U - Qualitas 386max V6.00+ - Ioctl Input - Get State  (Cont.)

           01h set all ??? 4K pages to read-write???
       ???

       Return: AH = 00h (successful) if AL=00h or 01h
           AH = 8Fh otherwise
   AH = 14h ???
       ES:DI -> 54-byte buffer for ???

       Return: AH = 00h if successful
           AH = A4h on error
   AH = 15h ???
       ???

       Return: ???
   AH = 16h get 386MAX memory usage screen
       ES:DI -> buffer for memory info display
       CX = size of buffer in bytes

       Return: ES:DI buffer filled with '$'-terminated string (if
               large enough to hold entire usage screen)

       Note:   the screen is 0303h bytes in v7.00
   AH = 17h Windows 3 startup/termination
       AL = subfunction
           00h Windows3 initializing
           DX (on stack) = Windows startup flags
           DI = Windows version number (major in upper byte)
           ES:BX = 0000h:0000h
           DS:SI = 0000h:0000h

           Return: CX = 0000h if OK for Windows to load
                  <> 0 if Windows should not load
               ES:BX -> startup info structure
               DS:SI -> Virtual86 mode enable/disable callback
           01h Windows3 terminating
           ES:BX -> ???
           DX (on stack) = Windows exit flags

           Return: ???
   AH = 18h QPMS (Qualitas Protected Memory Services)
       AL = subfunction
           00h get QPMS configuration

           Return: BX = starting segment of QPMS memory window
               CX = number of 4K pages reserved for QPMS???
               DX = number of 4K pages in QPMS window???
           01h map QPMS memory page???
           BX = 4K page number within memory reserved for QPMS???
           CL = 4K page number within QPMS memory window???
           02h mark all QPMS memory read-only
           03h mark all QPMS memory read-write

       Return: AH = status (00h,8Ah,8Bh,8Fh)
   AH = 19h get linear address for physical address
       EDX = physical address (low word on stack)

       Return: AH = status
               00h successful
               EDX = linear address at which physical address
                   may be accessed
               8Bh physical address currently not addressable

       Note:   enables A20 first
   AH = 1Ah set page table entry???
       EDX = new page table entry??? (low word on stack)
       ESI = linear address of page???

       Return: AH = status (00h,8Bh)

       Note:   enables A20 first
   AH = 1Bh get ???

       Return: AH = status
           BX = ???
           CX = ???
           EDX = physical address of ???
   AH = 1Ch get original interrupt vector
       AL = interrupt vector (00h-7Fh)

       Return: AH = 00h (successful)
           EDX = original vector before 386MAX loaded (segment in
               high word, offset in low word)

       Note:   no range checking is performed; requests for INTs 80h-
             FFh will return random values
   AH = 1Dh display string???
       SI = ???

       Return: AH = 00h (successful)
           ???
   AH = 1Eh get memory info
       ES:DI -> memory info (see below)

       Return: ???
   AH = 1Fh get DPMI host information

       Return: AX = 0000h if successful
           BX = DPMI flags (see INT 31/AX=0400h)
           CL = CPU type (02h = 80286, 03h = 80386, etc.)
           DX = DPMI ver supported (DH=major, DL=2-digit minor)
           SI = ???
           ES???:DI -> ???

       Note:   NOP if NODPMI switch specified
   AH = 20h (v7.00) ???
       AL = ???

       Return: EDX = ??? for ??? AL
   AH = 21h (v7.00) STACKS support
       AL = 00h get STACKS parameters

       Return: BX = ???
           CX = number of stacks for hardware interrupts
           DX = size of each stack in bytes
           SI = ???
           DI = ???
       AL = 01h set ??? "EMM2_DSTKS"
       EBX = ???
       ECX = ???
       DS = ???
       AL = 02h ???
       BL = ??? (00h-03h)
       ???
   AH = 22h (v7.00)
       AL = 00h ???
       AL = nonzero ???
       ???
   AH = 23h (v7.00) ???
       AL = 00h set ???
       ???
       AL = 01h ???
       ???
       AL = 02h get ???
       CX = size of buffer
       ES:DI -> buffer for ???

       Return: CX = number of bytes actually returned
       AL = 03h set ???
       ES:DI -> buffer containing ASCIZ ???
       AL = 04h get ???
       ES:DI -> buffer for ASCIZ ???
   AH = 24h (v7.00) ???
       AL = 00h get ???

       Return: BX = current state of ??? (0/1)
       AL = 01h set ???
       BX = new state of ??? (0/1)
       AL = other ???
   AH = 25h (v7.00) ???
   AH = 26h (v7.00) ???

       Return: BX = ???
           CX = ???
   AH = 27h (v7.00) ???
       AL = 00h get ???

       Return: BX = ???
       AL = 01h ???
       BX = ???
       ES??? = ???
       AL = 02h ???
       ???
       AL = 03h ???
       CX = ???
       DX = ???
       ES??? = ???

       Return: ???
   AH = 28h (v7.00) get ???

       Return: CX = ???
           DX = ???
   AH = 29h (v7.00) get ???

       Return: AX = ???
   AH = 40h-5Dh EMS services (see INT 67/AH=40h etc)
   AH = DEh VCPI services (see INT 67/AX=DE00h etc)

Return: AH = status (as for EMS INT 67 calls)
       00h successful
       80h internal error
       81h hardware malfunction
       83h invalid handle
       84h undefined function
       8Ah invalid logical page nuber
       8Bh illegal physical page number
       8Fh undefined subfunction
       A4h access denied
       etc.
   STACK popped (value placed in DX if no specific return value for DX)

Format of memory speed record:
Offset Size    Description
 00h   DWORD   page table entry for 4K page
 04h   WORD    number of microticks (840ns units) required for REP LODSD of
       entire 4K page

Format of memory info [array]:
Offset Size    Description
 00h   DWORD   ???
 04h   DWORD   ???
 08h  2 BYTEs  ???
 0Ah   BYTE    type??? (03h = conventional???)
 0Bh   BYTE    ???

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