Allocate Linear Memory Block [1.0]

Allocates a block of page-aligned linear address space. The base address of the block may be specified by the client, and pages within the block may be committed or uncommitted.

Call With

AX = 0504H
EBX = desired page-aligned linear address of memory block, or zero if linear address unspecified
ECX = size of block (bytes, must be nonzero)
EDX = flags

BitSignificance
00 = create uncommitted pages
1 = create committed pages
1-31reserved, should be zero
Returns

if function successful
Carry flag = clear
EBX = linear address of memory block
ESI = handle for memory block

if function unsuccessful
Carry flag = set
AX = error code
8001Hunsupported function (16-bit host)
8012Hlinear memory unavailable
8013Hphysical memory unavailable
8014Hbacking store unavailable
8016Hhandle unavailable
8021Hinvalid value (ECX = 0)
8025Hinvalid linear address (EBX not page aligned)

Notes