Table of Contents
Note: This API call is for DOS and Win16 personality only. Use Family API for portability.
Int 21H, AH=58H, AL=00H
Version
2.11 and higher
Brief
GET MEMORY ALLOCATION STRATEGY
Family API
Input
AH = 58h AL = 00h
Return
CF clear if successful AX = current strategy (see #01679)
CF set on error AX = error code (01h) (see #01680)
Notes
the Set subfunction accepts any value in BL for DOS 3.x and 4.x; 2 or greater means last fit
the Get subfunction returns the last value set
setting an allocation strategy involving high memory does not automatically link in the UMB memory chain; this must be done explicitly with AX=5803h in order to actually allocate high memory
a program which changes the allocation strategy should restore it before terminating
Toshiba MS-DOS v2.11 supports subfunctions 00h and 01h, as does the TI Professional MS-DOS v2.13
DR DOS 3.41 reportedly reverses subfunctions 00h and 01h
Values for DOS memory allocation strategy:
00h | low memory first fit |
01h | low memory best fit |
02h | low memory last fit |
—DOS 5+ — | |
40h | high memory first fit |
41h | high memory best fit |
42h | high memory last fit |
80h | first fit, try high then low memory |
81h | best fit, try high then low memory |
82h | last fit, try high then low memory |
Note
Text based on Ralf Brown Interrupt List Release 61
osFree Macro Library | |
---|---|
Video I/O | @SetMode @SetCurSz @SetCurPos @GetCur @SetPage @ScrollUp @ScrollDn @Scroll @GetChAtr @PutChAtr @PutCh @SetPalet @SetColor @SetDot @GetDot @WrtTTY @VideoState @GetMode @GetDisplay @GetVideoState @GetEGAInfo @Cls |
Hardware info | @Equipment @MemSize |
Serial I/O | @AuxInit @AuxSendChar @AuxRecieveChar @AuxStatus |
Tape I/O | @TapeOn @TapeOff @TapeRead @TapeWrite |
Keyboard I/O | @KbdStatus @CharIn @CharPeek |
Printer I/O | @PrnPrint @PrnInit @PrnStatus |
Disk I/O | @DskReset @DskStatus @DskRead @DskWrite @DskVerify @DskFormat |
Date and Time | @SetTime @GetTime |
Mouse | @MouInit @MouShowPointer @MouStatus @MouSetPos @MouSetMickey @MouRegion |
Memory manager | @ModBlok SET_BLOCK |