My test system uses something called the SimpleMMU circuit to provide 6829-like memory management. Basically memory is divided into 512 pages per task (or address space). There are 512 slots per task into which a memory page number may be entered. Pages are 64k bytes in size, so memory is limited to a max of 32MB per address space. There are 2048 total memory pages available (128MB SDRAM). The system memory is managed with a bitmap of 2048 bits (one for each page) indicating whether or not the page is allocated. An address space may be using any one or more of the 2048 pages available.
I am currently coding routines similar to the UNIX brk() and sbrk() routines and seeing how they are related to the library functions like malloc() and free(). The heap functions malloc() and free() work within the memory space assigned to the program by brk() or sbrk().
Attachment:
SimpleMMU2.gif