Category: memory management
Flags: Undocumented function
INT 21 - Qualitas 386MAX v6.00+ - IOCTL INPUT - GET STATE AX = 4402h BX = file handle for device "386MAX$$" CX = number of bytes to read DS:DX -> BYTE 03h followed by 386MAX state buffer (see #01467) Return: CF clear if successful buffer at DS:DX+1 filled AX = number of bytes actually copied CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: if the value given in CX is less than the size of the state record (5Ah for v6.01, 66h for v7.00), only a partial state record will be returned the state is 40h bytes for 386MAX (actually ASTEMM) v2.20 ("386MAX$$" did not exist yet, use "QMMXXXX0" and then "EMMXXXX0" instead) and 56h bytes for v5.11. to invoke 386MAX API functions, push DX onto the stack, load DX with the word at offset 25h in the returned state, load all other registers as needed for the desired function, and execute an OUT DX,AL or OUT DX,AX; DX will be set to the pushed value on return if it is not otherwise modified by the API function. For safety, in case a function is not supported or 386MAX is not present, SP should be saved and restored around the API call. Windows 3.1 Standard mode, LAN Manager, and Windows for Workgroups all use the 386MAX API; LAN Manager and Windows for Workgroups reportedly make some calls incorrectly SeeAlso: AX=4403h/SF=03h"386MAX",INT 67/AH=3Fh