Up ] Docs Home ]

Call HIGHUMM.SYS entry point with

Back ] Next ]

Data:
AH = 00h allocate UMB (same as XMS function 10h) (see INT 2F/AX=4310h)
Call: 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)
Call: DX = segment number of UMB
AH = 02h request a bank-switched memory block
Call: 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
Call: DX = segment number
AH = 04h transfer data to/from high memory

Call:

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
Call: ES:DI word to read
Return: DX

=

word
AH = 06h put a word to bank-switched memory
Call: ES:DI word to write
Return: DX

=

word
AH = 07h put a byte to bank-switched memory
Call: ES:DI byte to write
Return: DL

=

byte
AH = 08h enable bank-switched memory
Call: DS:SI 6-byte status save area
AH = 09h disable bank-switched memory
Call: DS:SI 6-byte save area from enable call (AH=08h)
AH = 0Ah assign name to UMB or high bank-switched block

Call:

DX = segment number
DS:SI 8-byte blank-padded name
AH = 0Bh locate UMB block by name
Call: 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
Call: 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
Notes: Only functions 00h and 01h are always available; the remaining functions are only enabled if the proper commandline switch is given.