Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleRST 20H, DEFB $54
 IN:
     A = 0, always (see notes below)
     BC = requested size of reserved memory in bytes (2 to 16384)
     IX = memory handle (returned from OS_Mop)
OUT, if call successful:
     Fc = 0
     HL = address of memory allocated (H14 & H15 are memory mask)
     B = bank number of allocated memory
     C = segment specifier implied by HL (H14 & H15)

OUT, if call failed:
     Fc = 1
     A = error code:
          RC_HAND ($08), IX is not a valid memory handle
          RC_ROOM ($07), no room to allocate block in MEMORY POOL
          RC_ERR ($0F), if BC > 256 bytes, fatal error

Registers changed after return:
     ....DE../IXIY same
     AFBC..HL/.... different

Notes

Block allocation (more than one or 256 bytes) is implemented since OZ 4.7. Up to one bank can be requested (16384 bytes).

If such a large block is requested (more than 256 bytes), MM MM_MUL has to be specified in OS_Mop.

...