High & Low Memory Usage

High Memory Usage

CodexX uses a few High Memory pages for housekeeping. As a user and developer you need to be aware of these pages so you don't impact the proper execution of the CodeX.

CodeX uses (currently for V0.9) five pages of high memory. These pages are used as follows:

  • General CodeX variables

  • User program screen storage 1

  • User program screen storage 2

  • Label meta data

  • Instruction metadata

  • Execution space for plugin code

The kernal uses the highest page for private use, and it's not available to CodeX or a developer. CodeX will use the next five pages as already described. A couple of system layouts follow.

A 2 megabyte system has pages $00 through $ff, thus the CodeX will use pages:

  • $fe - CodeX variables

  • $fd - Screen 1

  • $fc - Screen 2

  • $fb - Label Metadata

  • $fa - Instruction Metadata

  • $f9 - Plugin space

A 512 Kbyte system has pages $00 through $40, the CodeX will use pages:

  • $3e - CodeX variables

  • $3d - Screen 1

  • $3c - Screen 2

  • $3b - Label Metadata

  • $3a - Instruction Metadata

  • $39 - Plugin space

Low Memory Usage

While CodeX uses high memory for most of its data storage, it does use some low memory storage. Low memory is used for global storage of precomputed values (high memory bank addresses), or storage of frequently used values. The design goal for using these values in low memory is to reduce the amount of compute time to access them.

  • CodeX globals $400 - $4A7