Creates a new dynamic area
=> R0 = 0
R1 = -1 (or new area number; 128-255 are reserved for internal use)
R2 = initial size of area, in bytes
R3 = -1 (or base of area; reserved for internal use)
R4 = area flags
R5 = maximum size of area, in bytes (-1 for unlimited)
R6 = handler routine, or 0 if unused
R7 = pointer to workspace for handler, or -1 for base of area, or 0 if unused
R8 = pointer to name of area (limited to 31-chars in 3.80+)
<= R0, R2, R4, R6-R8 = preserved
R1 = allocated area number
R3 = base of area
R5 = maximum size of area
This call creates a new dynamic area. Area numbers allocated are greater than or equal to 256.
Ill advised setting of r5 as -1
Setting r5 as -1 is strongly deprecated due to the problems of address space exhaustion on large memory machines. Also, a maximum size of -1 has no valid meaning for Sparse areas. New code should set the smallest maximum size that is sensible for the use required. Because old code may often use -1, a clamp may be set via OS_DynamicArea 8 to limit the problem.
|
|
|