Resize Linear Memory Block [1.0]

Changes the size of a memory block that was previously allocated with the Allocate Linear Memory Block function (Int 31H Function 0504H).

Call With

AX = 0505H
ESI = memory block handle
ECX = new block size (bytes, must be nonzero)
EDX = flags

BitSignificance
00 = create uncommitted pages
1 = create committed pages
10 = do not update segment descriptors
1 = segment descriptor update required
2-31reserved, must be zero
and, if bit 1 of EDX is set (1):
ES:EBX = selector:offset of a buffer containing an array of selectors, 1 word (16 bits) per selector
EDI = count of selectors in array

Returns

if function successful
Carry flag = clear
EBX = new linear base address of memory block
ESI = new 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)
8023Hinvalid handle (in ESI)

Notes