| 0000 | 6510 On-chip Data Direction Register |
| 0001 | 6510 On-chip 8-bit Input/Output Register |
| 0002 | Unused |
| 0003-0004 | Jump Vector: Convert FAC to Integer in (A/Y) ($B1AA) |
| 0005-0006 | Jump Vector: Convert Integer in (A/Y) to Floating point in (FAC); ($B391) |
| 0007 | Search Character/Temporary Integer during INT |
| 0008 | Flag: Scan for Quote at end of String |
| 0007-0008 | Temporary Integer during OR/AND |
| 0009 | Screen Column for last TAB |
| 000A | Flag: 0 = Load, 1 = Verify |
| 000B | Input Buffer Pointer/Number of Subscripts |
| 000C | Flag: Default Array dimension |
| 000D | Data type Flag: $00 = Numeric, $FF = String |
| 000E | Data type Flag: $00 = Floating point, $80 = Integer |
| 000F | Flag: DATA scan/List Quote/Garbage collection |
| 0010 | Flag: Subscript reference/User Function call |
| 0011 | Input Flag: $00 = INPUT, $40 = GET, $98 = READ |
| 0012 | Flag: TAN sign/Comparative result |
| 0013 | File number of current Input Device |
| 0014-0015 | Temporary: Integer value |
| 0016 | Pointer: Temporary String Stack |
| 0017-0018 | Last temporary String Address |
| 0019-0021 | Stack for temporary Strings |
| 0022-0025 | Utility Pointer Area |
| 0022-0023 | First Utility Pointer |
| 0024-0025 | Secong Utility Pointer |
| 0026-002A | Floating point product of Multiply and Divide |
| 002B-002C | Pointer: Start of BASIC Text Area ($0801) |
| 002D-002E | Pointer: Start of BASIC Variables |
| 002F-0030 | Pointer: Start of BASIC Arrays |
| 0031-0032 | Pointer: End of BASIC Arrays + 1 |
| 0033-0034 | Pointer: Bottom of String space |
| 0035-0036 | Utility String Pointer |
| 0037-0038 | Pointer: Highest Address available to BASIC ($A000) |
| 0039-003A | Current BASIC Line number |
| 003B-003C | Previous BASIC Line number |
| 003D-003E | Pointer: BASIC Statement for CONT |
| 003F-0040 | Current DATA Line number |
| 0041-0042 | Pointer: Used by READ - current DATA Item Address |
| 0043-0044 | Pointer: Temporary storage of Pointer during INPUT Routine |
| 0045-0046 | Name of Variable being sought in Variable Table |
| 0047-0048 | Pointer: to value of (VARNAM) if Integer, to descriptor if String |
| 0049-004A | Pointer: Index Variable for FOR/NEXT loop |
| 004B-004C | Temporary storage for TXTPTR during READ, INPUT and GET |
| 004D | Mask used during FRMEVL |
| 004E-0052 | Temporary storage for FLPT value |
| 0053 | Length of String Variable during Garbege collection |
| 0054-0056 | Jump Vector used in Function Evaluation |
| 0057-005B | Temporary storage for FLPT value |
| 005C-0060 | Temporary storage for FLPT value |
| 0061-0066 | Main Floating point Accumulator |
| 0061 | FAC Exponent |
| 0062-0065 | FAC Mantissa |
| 0066 | FAC Sign |
| 0067 | Pointer: Series Evaluation Constant |
| 0068 | Bit Overflow Area during normalisation Routine |
| 0069-006E | Auxiliary Floating point Accumulator |
| 0069 | AFAC Exponent |
| 006A-006D | AFAC Mantissa |
| 006E | AFAC Sign |
| 006F | Sign of result of Arithmetic Evaluation |
| 0070 | FAC low-order rounding |
| 0071-0072 | Pointer: Used during CRUNCH/ASCII conversion |
| 0073-008A | Subroutine: Get next Byte of BASIC Text |
| 0079 | Entry to Get same Byte again |
| 007A-007B | Pointer: Current Byte of BASIC Text |
| 008B-008F | Floating RND Function Seed Value |
| 0090 | Kernal I/O Status Word ST |
| 0091 | Flag: $7F = STOP key |
| 0092 | Timing Constant for Tape |
| 0093 | Flag: 0 = Load, 1 = Verify |
| 0094 | Flag: Serial Bus - Output Character buffered |
| 0095 | Buffered Character for Serial Bus |
| 0096 | Cassette Sync. number |
| 0097 | Temporary storage of X Register during CHRIN |
| 0097 | Temporary storage of Y Register during RS232 fetch |
| 0098 | Number of Open Files/Index to File Table |
| 0099 | Default Input Device (0) |
| 009A | Default Output Device (3) |
| 009B | Parity of Byte Output to Tape |
| 009C | Flag: Byte received from Tape |
| 009D | Flag: $00 = Program mode: Suppress Error Messages, $40 = Kernal Error Messages only, $80 = Direct mode: Full Error Messages |
| 009E | Index to Cassette File name/Header ID for Tape write |
| 009E | Tape Error log pass 1 |
| 009F | Tape Error log pass 2 |
| 00A0-00A2 | Real-time jiffy Clock (Updated by IRQ Interrupt approx. every 1/60 of Second); Update Routine: UDTIMK ($F69B) |
| 00A3 | Bit Counter Tape Read or Write/Serial Bus EOI (End Of Input) Flag |
| 00A4 | Pulse Counter Tape Read or Write/Serial Bus shift Counter |
| 00A5 | Tape Synchronising count down |
| 00A6 | Pointer: Tape I/O buffer |
| 00A7 | RS232 temporary for received Bit/Tape temporary |
| 00A8 | RS232 Input Bit count/Tape temporary |
| 00A9 | RS232 Flag: Start Bit check/Tape temporary |
| 00AA | RS232 Input Byte Buffer/Tape temporary |
| 00AB | RS232 Input parity/Tape temporary |
| 00AC-00AD | Pointer: Tape Buffer/Screen scrolling |
| 00AE-00AF | Tape End Address/End of Program |
| 00B0-00B1 | Tape timing Constants |
| 00B2-00B3 | Pointer: Start Address of Tape Buffer ($033C) |
| 00B4 | RS232 Write bit count/Tape Read timing Flag |
| 00B5 | RS232 Next Bit to send/Tape Read - End of Tape |
| 00B6 | RS232 Output Byte Buffer/Tape Read Error Flag |
| 00B7 | Number of Characters in Filename |
| 00B8 | Current File - Logical File number |
| 00B9 | Current File - Secondary Address |
| 00BA | Current File - First Address (Device number) |
| 00BB-00BC | Pointer: Current File name Address |
| 00BD | RS232 Output Parity/Tape Byte to be Input or Output |
| 00BE | Tape Input/Output Block count |
| 00BF | Serial Word Buffer |
| 00C0 | Tape Motor Switch |
| 00C1-00C2 | Start Address for LOAD and Cassette Write |
| 00C3-00C4 | Pointer: Type 3 Tape LOAD and general use |
| 00C5 | Matrix value of last Key pressed; No Key = $40 |
| 00C6 | Number of Characters in Keyboard Buffer queue |
| 00C7 | Flag: Reverse On/Off; On = $01, Off = $00 |
| 00C8 | Pointer: End of Line for Input (Used to suppress trailing spaces) |
| 00C9-00CA | Cursor X/Y (Line/Column) position at start of Input |
| 00CB | Flag: Print shifted Characters |
| 00CC | Flag: Cursor blink; $00 = Enabled, $01 = Disabled |
| 00CD | Timer: Count down for Cursor blink toggle |
| 00CE | Character under Cursor while Cursor Inverted |
| 00CF | Flag: Cursor Status; $00 = Off, $01 = On |
| 00D0 | Flag: Input from Screen = $03, or Keyboard = $00 |
| 00D1-00D2 | Pointer: Current Screen Line Address |
| 00D3 | Cursor Column on current Line, including Wrap-round Line, if any |
| 00D4 | Flag: Editor in Quote Mode; $00 = Not |
| 00D5 | Current logical Line length: 39 or 79 |
| 00D6 | Current Screen Line number of Cursor |
| 00D7 | Screen value of current Input Character/Last Character Output |
| 00D8 | Count of number of inserts outstanding |
| 00D9-00F2 | Screen Line link Table/Editor temporaries. High Byte of Line Screen Memory Location |
| 00F3-00F4 | Pointer: Current Colour RAM Location |
| 00F5-00F6 | Vector: Current Keyboard decoding Table. ($EB81) |
| 00F7-00F8 | RS232 Input Buffer Pointer |
| 00F9-00FA | RS232 Output Buffer Pointer |
| 00FB-00FE | Free Zero Page space for User Programs |
| 00FF | BASIC temporary Data Area |
| 00FF-010A | Assembly Area for Floating point to ASCII conversion |
| 0100-013E | Tape Input Error log |
| 0100-01FF | 6510 Hardware Stack Area |
| 013F-01FF | BASIC Stack Area |
| 0200-0258 | BASIC Input Buffer (Input Line from Screen) |
| 0259-0262 | Kernal Table: Active logical File numbers |
| 0263-026C | Kernal Table: Active File First Addresses (Device numbers) |
| 026D-0276 | Kernal Table: Active File Secondary Addresses |
| 0277-0280 | Keyboard Buffer Queue (FIFO) |
| 0281-0282 | Pointer: Bottom of Memory for Operating System ($0800) |
| 0283-0284 | Pointer: Top of Memory for Operating System ($A000) |
| 0285 | Serial IEEE Bus timeout defeat Flag |
| 0286 | Current Character Colour code |
| 0287 | Background Colour under Cursor |
| 0288 | High Byte of Screen Memory Address ($04) |
| 0289 | Maximum number of Bytes in Keyboard Buffer ($0A) |
| 028A | Flag: Repeat keys; $00 = Cursors, INST/DEL & Space repeat, $40 no Keys repeat, $80 all Keys repeat ($00) |
| 028B | Repeat Key: Speed Counter ($04) |
| 028C | Repeat Key: First repeat delay Counter ($10) |
| 028D | Flag: Shift Keys: Bit 1 = Shift, Bit 2 = CBM, Bit 3 = CTRL; ($00 = None, $01 = Shift, etc.) |
| 028E | Last Shift Key used for debouncing |
| 028F-0290 | Vector: Routine to determine Keyboard table to use based on Shift Key Pattern ($EB48) |
| 0291 | Flag: Upper/Lower Case change: $00 = Disabled, $80 = Enabled ($00) |
| 0292 | Flag: Auto scroll down: $00 = Disabled ($00) |
| 0293 | RS232 Pseudo 6551 control Register Image |
| 0294 | RS232 Pseudo 6551 command Register Image |
| 0295-0296 | RS232 Non-standard Bits/Second |
| 0297 | RS232 Pseudo 6551 Status Register Image |
| 0298 | RS232 Number of Bits left to send |
| 0299-029A | RS232 Baud Rate; Full Bit time microseconds |
| 029B | RS232 Index to End of Input Buffer |
| 029C | RS232 Pointer: High Byte of Address of Input Buffer |
| 029D | RS232 Pointer: High Byte of Address of Output Buffer |
| 029E | RS232 Index to End of Output Buffer |
| 029F-02A0 | Temporary store for IRQ Vector during Tape operations |
| 02A1 | RS232 Enables |
| 02A2 | TOD sense during Tape I/O |
| 02A3 | Temporary storage during Tape READ |
| 02A4 | Temporary D1IRQ Indicator during Tape READ |
| 02A5 | Temporary for Line Index |
| 02A6 | Flag: TV Standard: $00 = NTSC, $01 = PAL |
| 02A7-02FF | Unused |
| 02C0-02FE | Sprite #11 Data Area. (SCREEN + $03F8 + SPR number) |
| 0300-0301 | Vector: Indirect entry to BASIC Error Message, (X) points to Message ($E38B) |
| 0302-0303 | Vector: Indirect entry to BASIC Input Line and Decode ($A483) |
| 0304-0305 | Vector: Indirect entry to BASIC Tokenise Routine ($A57C) |
| 0306-0307 | Vector: Indirect entry to BASIC LIST Routine ($A71A) |
| 0308-0309 | Vector: Indirect entry to BASIC Character dispatch Routine ($A7E4) |
| 030A-030B | Vector: Indirect entry to BASIC Token evaluation ($AE86) |
| 030C | Storage for 6510 Accumulator during SYS |
| 030D | Storage for 6510 X-Register during SYS |
| 030E | Storage for 6510 Y-Register during SYS |
| 030F | Storage for 6510 Status Register during SYS |
| 0310 | USR Function JMP Instruction ($4C) |
| 0311-0312 | USR Address ($LB,$MB) |
| 0313 | Unused |
| 0314-0315 | Vector: Hardware IRQ Interrupt Address ($EA31) |
| 0316-0317 | Vector: BRK Instruction Interrupt Address ($FE66) |
| 0318-0319 | Vector: Hardware NMI Interrupt Address ($FE47) |
| 031A-031B | Vector: Indirect entry to Kernal OPEN Routine ($F34A) |
| 031C-031D | Vector: Indirect entry to Kernal CLOSE Routine ($F291) |
| 031E-031F | Vector: Indirect entry to Kernal CHKIN Routine ($F20E) |
| 0320-0321 | Vector: Indirect entry to Kernal CHKOUT Routine ($F250) |
| 0322-0323 | Vector: Indirect entry to Kernal CLRCHN Routine ($F333) |
| 0324-0325 | Vector: Indirect entry to Kernal CHRIN Routine ($F157) |
| 0326-0327 | Vector: Indirect entry to Kernal CHROUT Routine ($F1CA) |
| 0328-0329 | Vector: Indirect entry to Kernal STOP Routine ($F6ED) |
| 032A-032B | Vector: Indirect entry to Kernal GETIN Routine ($F13E) |
| 032C-032D | Vector: Indirect entry to Kernal CLALL Routine ($F32F) |
| 032E-032F | User Defined Vector ($FE66) |
| 0330-0331 | Vector: Indirect entry to Kernal LOAD Routine ($F4A5) |
| 0332-0333 | Vector: Indirect entry to Kernal SAVE Routine ($F5ED) |
| 0334-033B | Unused |
| 033C-03FB | Tape I/O Buffer |
| 0340-037E | Sprite #13 |
| 0380-03BE | Sprite #14 |
| 03C0-03FE | Sprite #15 |
| 03FC-03FF | Unused |
| 0400-07E7 | Default Screen Video Matrix |
| 07E8-07F7 | Unused |
| 07F8-07FF | Default Sprite Data Pointers |
| | |
| 0800-9FFF | Normal BASIC Program space |
| 8000-9FFF | Optional Cartridge ROM space |
| A000-BFFF | BASIC ROM (Part) or 8 KB RAM |
| C000-CFFF | 4 KB RAM |
| D000-DFFF | Input/Output Devices and Colour RAM or 4 KB RAM or Character ROM |
| D000-D02E | 6566 Video Interface Chip, VIC II |
| D400-D41C | 6581 Sound Interface Device, SID |
| D500-D7FF | SID Images |
| D800-DBE7 | Colour RAM (Nybbles = 4 Bit RAM, LSB) |
| DBE8-DBFF | Unused |
| DC00-DC0F | 6526 Complex Interface Adaptor, CIA |
| DD00-DD0F | 6526 Complex Interface Adaptor, CIA |
| E000-FFFF | BASIC (Part)/Kernal ROM or 8 KB RAM |
| E000-E4FF | BASIC ROM (Part) or RAM |
| E500-FFFF | Kernal ROM or RAM |