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 21 - highumm.sys - ioctl - get api address http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 21 - HIGHUMM.SYS - IOCTL - GET API ADDRESS
        AX = 4402h
        BX = handle for device "KSP$UMM"
        CX = 0004h
        DS:DX -> DWORD to hold entry point
Return: CF set on error
            AX = error code (see AH=59h)
        CF clear if successful
            AX = number of bytes read
Note:   HIGHUMM.SYS is part of "The Last Byte" by Key Software Products

Call HIGHUMM.SYS entry point with:
        AH = 00h allocate UMB (same as XMS function 10h) (see INT 2F/AX=4310h)
            DX = size in paragraphs
            Return: BX = segment number (if successful)
                    DX = size of requested block/size of largest block
        AH = 01h deallocate UMB (same as XMS func 11h) (see INT 2F/AX=4310h)
            DX = segment number of UMB
        AH = 02h request a bank-switched memory block
            DX = size in paragraphs
            Return: BX = segment number (if successful)
                    DX = size of requested block/size of largest block
        AH = 03h release a bank-switched memory block
            DX = segment number
        AH = 04h transfer data to/from high memory
            DS:SI -> source
            ES:DI -> destination
            CX = length in bytes
            Note: enables bank-switched memory, does the copy, then disables
                bank-switched memory
        AH = 05h get a word from bank-switched memory
            ES:DI -> word to read
            Return: DX = word
        AH = 06h put a word to bank-switched memory
            ES:DI -> word to write
            DX = word
        AH = 07h put a byte to bank-switched memory
            ES:DI -> byte to write
            DL = byte
        AH = 08h enable bank-switched memory
            DS:SI -> 6-byte status save area
        AH = 09h disable bank-switched memory
            DS:SI -> 6-byte save area from enable call (AH=08h)
        AH = 0Ah assign name to UMB of bank-switched block
            DX = segment number
            DS:SI -> 8-byte blank-padded name
        AH = 0Bh locate UMB block by name
            DS:SI -> 8-byte blank-padded name
            Return: BX = segment number (if successful)
                    DX = size of block
        AH = 0Ch locate bank-switched block by name
            DS:SI -> 8-byte blank-padded name
            Return: BX = segment number (if successful)
                    DX = size of block
Return: AX = status code
            0001h successful
            0000h failed
                BL = error code
                    80h not implemented
                    B0h insufficient memory, smaller block available
                    B1h insufficient memory, no blocks available
                    B2h invalid segment number

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