Versions Compared

Key

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

The purpose of this description is just for the understanding of memory allocation in the Z88. Programmer have to use the provided system calls to properly allocate memory. He should not bypass the operating system and tweak directly in the memory tables. 

...

MATs start at $0100. There is one word for each page in slot, ie. 64 entries per bank, max. 4096 entries for 1MB card. Entries are sorted in natural order.

PAGE WORD in MAT
bits 0-11 Offset of next MAT entry in chain
bit 0 only set (MAT_SYSTEM) page is used by OZ (eg. screen file, see examples below)
 
 
bit 12 MAT_LAST : this page is last in chain, bits 0-11 are MemHandle>>4
bit 13 MAT_FULL : page fully used, can't be split in chunks (see below)
bit 14 MAT_ALLOCFIXED : if reset page is allocated as fixed memory
bit 15 MAT_SWAP : page is used by OZ for bad application memory
Some examples :
00xx-0Fxx tagged as 0001 - system variables and such
10xx-17xx tagged as 8000 - swap area for bad apps
1800-1fff tagged as 0001 - stack

...