; Commodore 64 RAM Memory Map ; V1.2 1 Sep 1994 LABEL HEX DECIMAL ADDRESS LOCATION DESCRIPTION ADRAY2 0005-0006 5-6 Jump Vector: Convert Integer--Floating CHARAC 0007 7 Search Character ENDCHR 0008 8 Flag: Scan for Quote at End of String TRMPOS 0009 9 Screen Column From Last TAB VERCK 000A 10 Flag: 0 = Load, 1 = Verify COUNT 000B 11 Input Buffer Pointer / No. of Subscripts DIMFLG 000C 12 Flag: Default Array DiMension VAUYP 000D 13 Data Type: $FF = String, $00 = Numeric INTFLG 000E 14 Data Type: $80 = Integer, $00 = Floating GARBFL 000F 15 Flag: DATA scan/LlST quote/Garbage Coll SUBFLG 0010 16 Flag: Subscript Ref / User Function Call INPFLG 0011 17 Flag: $00 = INPUT, $40 = GET, $98 = READ TANSGN 0012 18 Flag TAN sign / Comparison Result 0013 19 Flag: INPUT Prompt LINNUM 0014-0015 20-21 Temp: Integer Value TEMPPT 0016 22 Pointer Temporary String LASTPT 0017-0018 23-24 Last Temp String Address TEMPST 0019-0021 25-33 Stack for Temporary Strings INDEX 0022-0025 34-37 Utility Pointer Area INDEX1 0022-0023 34 First Utility Pointer. INDEX2 0024-0025 36 Second Utility Pointer. RESHO 0026-002A 38-42 Floating-Point Product of Multiply TXTTAB 002B-002C 43-44 Pointer: Start of BASIC Text VARTAB 002D-002E 45-46 Pointer: Start of BASIC Variables ARYTAB 002F-0030 47-48 Pointer: Start of BASIC Arrays STREND 0031-0032 49-50 Pointer End of BASIC Arrays (+1) FRETOP 0033-0034 51-52 Pointer: Bottom of String Storage FRESPC 0035-0036 53-54 Utility String Pointer MEMSIZ 0037-0038 55-56 Pointer: Highest Address Used by BASIC CURLIN 0039-003A 57-58 Current BASIC Line Number OLDLIN 003B-003C 59-60 Previous BASIC Line Number OLDTXT 003D-003E 61-62 Pointer: BASIC Statement for CONT DATLIN 003F-0040 63-64 Current DATA Line Number DATPTR 0041-0042 65-66 Pointer: Current DATA Item Address INPPTR 0043-0044 67-68 Vector: INPUT Routine VARNAM 0045-0046 69-70 Current BASIC Variable Name VARPNT 0047-0048 71-72 Pointer: Current BASIC Variable Data FORPNT 0049-004A 73-74 Pointer: Index Variable for FOR/NEXT 004B-0060 75-96 Temp Pointer / Data Area VARTXT 004B-004C 75 Temporary storage for TXTPTR during READ, INPUT and GET. OPMASK 004D 77 Mask used during FRMEVL. TEMPF3 004E-0052 78 Temporary storage for FLPT value. FOUR6 0053 83 Length of String Variable during Garbege collection. JMPER 0054-0056 84 Jump Vector used in Function Evaluation - JMP followed by Address ($4C,$LB,$MB). TEMPF1 0057-005B 87 Temporary storage for FLPT value. TEMPF2 005C-0060 92 Temporary storage for FLPT value. FACEXP 0061 97 Floating-Point Accumulator #1: Exponent FACHO 0062-0065 98-101 Floating Accum. #1: Mantissa FACSGN 0066 102 Floating Accum. #1: Sign SGNFLG 0067 103 Pointer: Series Evaluation Constant BITS 0068 104 Floating -accum. #1: Overflow Digit ARGEXP 0069 105 Floating-Point Accumulator #2: Exponent ARGHO 006A-006D 106-109 Floating Accum. #2: Mantissa ARGSGN 006E 110 Floating Accum. #2: Sign ARISGN 006F 111 Sign Comparison Result: Accum. # 1 vs #2 FACOV 0070 112 Floating Accum. #1. Low-Order (Rounding) FBUFPT 0071-0072 113-114 Pointer: Cassette Buffer CHRGET 0073-008A 115-138 Subroutine: Get Next Byte of BASIC Text CHRGOT 0079 121 Entry to Get Same Byte of Text Again TXTPTR 007A-007B 122-123 Pointer: Current Byte of BASIC Text RNDX 008B-008F 139-143 Floating RND Function Seed Value STATUS 0090 144 Kernal I/O Status Word: ST STKEY 0091 145 Flag: STOP key / RVS key SVXT 0092 146 Timing Constant for Tape VERCK 0093 147 Flag: 0 = Load, 1 = Verify C3PO 0094 148 Flag: Serial Bus-Output Char. Buffered BSOUR 0095 149 Buffered Character for Serial Bus SYNO 0096 150 Cassette Sync No. 0097 151 Temp Data Area LDTND 0098 152 No. of Open Files / Index to File Table DFLTN 0099 153 Default Input Device (0) DFLTO 009A 154 Default Output (CMD) Device (3) PRTY 009B 155 Tape Character Parity PSW 009C 156 Flag: Tape Byte-Received MSGFLG 009D 157 Flag: $80 = Direct Mode, $00 = Program PTR1 009E 158 Tape Pass 1 Error Log PTR2 009F 159 Tape Pass 2 Error Log TIME 00A0-00A2 160-162 Real-Time Jiffy Clock (approx) 1/60 Sec 00A3-00A4 163-164 Temp Data Area CNTDN 00A5 165 Cassette Sync Countdown BUFPNT 00A6 166 Pointer: Tape I/O Buffer INBIT 00A7 167 RS-232 Input Bits / Cassette Temp BITCI 00A8 168 RS-232 Input Bit Count / Cassette Temp RINONE 00A9 169 RS-232 Flag: Check for Start Bit RIDATA 00AA 170 RS-232 Input Byte Buffer/Cassette Temp RIPRTY 00AB 171 RS-232 Input Parity / Cassette Short Cnt SAL 00AC-00AD 172-173 Pointer: Tape Buffer/ Screen Scrolling EAL 00AE-00AF 174-175 Tape End Addresses/End of Program CMP0 00B0-00B1 176-177 Tape Timing Constants TAPE1 00B2-00B3 178-179 Pointer: Start of Tape Buffer BITTS 00B4 180 RS-232 Out Bit Count / Cassette Temp NXTBIT 00B5 181 RS-232 Next Bit to Send/ Tape EOT Flag RODATA 00B6 182 RS-232 Out Byte Buffer FNLEN 00B7 183 Length of Current File Name LA 00B8 184 Current Logical File Number FA 00BA 186 Current Device Number FNADR 00BB-00BC 187-188 Pointer: Current File Name ROPRTY 00BD 189 RS-232 Out Parity / Cassette Temp FSBLK 00BE 190 Cassette Read / Write Block Count MYCH 00BF 191 Serial Word Buffer CAS1 00C0 192 Tape Motor Interlock STAL 00C1-00C2 193-194 I/O Start Address MEMUSS 00C3-00C4 195-196 Tape Load Temps LSTX 00C5 197 Current Key Pressed: CHR$(n) 0 = No Key NDX 00C6 198 No. of Chars. in Keyboard Buffer (Queue) RVS 00C7 199 Flag: Print Reverse Chars. -1=Yes, 0=No Used INDX 00C8 200 Pointer: End of Logical Line for INPUT LXSP 00C9-00CA 201-202 Cursor X-Y Pos. at Start of INPUT SFDX 00CB 203 Flag: Print Shifted Chars. BLNSW 00CC 204 Cursor Blink enable: 0 = Flash Cursor BLNCT 00CD 205 Timer: Countdown to Toggle Cursor GDBLN 00CE 206 Character Under Cursor BLNON 00CF 207 Flag: Last Cursor Blink On/Off CRSW 00D0 208 Flag: INPUT or GET from Keyboard PNT 00D1-00D2 209-210 Pointer: Current Screen Line Address PNTR 00D3 211 Cursor Column on Current Line QTSW 00D4 212 Flag: Editor in Quote Mode, $00 = NO LNMX 00D5 213 Physical Screen Line Length TBLX 00D6 214 Current Cursor Physical Line Number 00D7 215 Temp Data Area INSRT 00D8 216 Flag: Insert Mode, >0 = # INSTs LDTB1 00D9-00F2 217-242 Screen Line Link Table / Editor Temps USER 00F3-00F4 243-244 Pointer: Current Screen Color RAM loc. KEYTAB 00F5-00F6 24S-246 Vector Keyboard Decode Table RIBUF 00F7-00F8 247-248 RS-232 Input Buffer Pointer ROBUF 00F9-00FA 249-250 RS-232 Output Buffer Pointer FREKZP 00FB-00FE 251-254 Free 0-Page Space for User Programs BASZPT 00FF 255 BASIC Temp Data Area 0100-01FF 256-511 Micro-Processor System Stack Area 0100-010A 256-266 Floating to String Work Area BAD 0100-013E 256-318 Tape Input Error Log BUF 0200-02S8 512-600 System INPUT Buffer LAT 0259-0262 601-610 KERNAL Table: Active Logical File No's. FAT 0263-026C 611-620 KERNAL Table: Device No. for Each File SAT 026D-0276 621-630 KERNAL Table: Second Address Each File KEYD 0277-0280 631-640 Keyboard Buffer Queue (FIFO) MEMSTR 0281-0282 641-642 Pointer: Bottom of Memory for O.S. MEMSIZ 0283-0284 643-644 Pointer: Top of Memory for O.S. TIMOUT 0285 645 Flag: Kernal Variable for IEEE Timeout COLOR 0286 646 Current Character Color Code GDCOL 0287 647 Background Color Under Cursor HIBASE 0288 648 Top of Screen Memory (Page) XMAX 0289 649 Size of Keyboard Buffer RPTFLG 028A 650 Flag: REPEAT Key Used, $80 = Repeat KOUNT 028B 651 Repeat Speed Counter DELAY 028C 652 Repeat Delay Counter SHFLAG 028D 653 Flag: Keyb'rd SHIFT Key/CTRL Key/C= Key LSTSHF 028E 654 Last Keyboard Shift Pattern KEYLOG 028F-0290 655-656 Vector: Keyboard Table Setup MODE 0291 657 Flag: $00=Disable SHIFT Keys, $80 = Enable SHIFT Keys AUTODN 0292 658 Flag: Auto Scroll Down, 0 = ON M51CTR 0293 659 RS-232: 6551 Control Register Image MS1CDR 0294 660 RS-232: 6551 Command Register Image M51AJB 0295-0296 661-662 RS-232 Non-Standard BPS (Time/2-100) USA RSSTAT 0297 663 RS-232: 6551 Status Register Image BITNUM 0298 664 RS-232 Number of Bits Left to Send BAUDOF 0299-029A 665-666 RS-232 Baud Rate: Full Bit Time (us) RIDBE 029B 667 RS-232 Index to End of Input Buffer RIDBS 029C 668 RS-232 Start of Input Buffer (Page) RODBS 029D 669 RS-232 Start of Output Buffer (Page) RODBE 029E 670 RS-232 Index to End of Output Buffer IRQTMP 029F-02A0 671-672 Holds IRQ Vector During Tape I/O ENABL 02A1 673 RS-232 Enables 02A2 674 TOD Sense During Cassette I/O 02A3 675 Temp Storage For Cassette Read 02A4 676 Temp D1 IRQ Indicator For Cassette Read 02A5 677 Temp For Line Index 02A6 678 PAL/NTSC Flag, O= NTSC, 1 = PAL 02A7-02FF 679-767 Unused IERROR 0300-0301 768-769 Vector: Print BASIC Error Message IMAIN 0302-0303 770-771 Vector: BASIC Warm Start ICRNCH 0304-0305 772-773 Vector: Tokenize BASIC Text IQPLOP 0306-0307 774-775 Vector: BASIC Text LIST IGONE 0308-0309 776-777 Vector: BASIC Char. Dispatch IEVAL 030A-030B 778-779 Vector: BASIC Token Evaluation SAREG 030C 780 Storage for 6502 .A Register SXREG 030D 781 Storage for 5502 .X Register SYREG 030E 782 Storage for 6502 .Y Register SPREG 030F 783 Storage for 6502 .SP Register USRPOK 0310 784 USR Function Jump Instr (4C) USRADD 0311-0312 785-786 USR Address Low Byte / High Byte 0313 787 Unused CINV 0314-0315 788-789 Vector: Hardware Interrupt CBINV 0316-0317 790-791 Vector: BRK Instr. Interrupt NMINV 0318-0319 792-793 Vector: Non-Maskable Interrupt IOPEN 031A-031B 794-795 KERNAL OPEN Routine Vector ICLOSE 031C-031D 796-797 KERNAL CLOSE Routine Vector ICHKIN 031E-031F 798-799 KERNAL CHKIN Routine ICKOUT 0320-0321 800-801 KERNAL CHKOUT Routine ICLRCH 0322-0323 802-803 KERNAL CLRCHN Routine Vector IBASIN 0324-0325 804-805 KERNAL CHRIN Routine IBSOUT 0326-0327 806-807 KERNAL CHROUT Routine ISTOP 0328-0329 808-809 KERNAL STOP Routine Vector IGETIN 032A-032B 810-811 KERNAL GETIN Routine ICLALL 032C-032D 812-813 KERNAL CLALL Routine Vector USRCMD 032E-032F 814-815 User-Defined Vector ILOAD 0330 0331 813 817 KERNAL LOAD Routine ISAVE 0332-0333 818-819 KERNAL SAVE Routine Vector 0334-033B 820-827 Unused TBUFFR 033C-03FB 828-1019 Tape I/O Buffer 03FC-03FF 1020-1023 Unused VICSCN 0400-07FF 1024-2047 1024 Byte Screen Memory Area 0400-07E7 1024-2023 Video Matrix: 25 Lines X 40 Columns 07F8-07FF 2040-2047 Sprite Data Pointers 0800-9FFF 2048-40959 Normal BASIC Program Space 8000-9FFF 32768-40959 VSP Cartridge ROM -- 8192 Bytes A000-BFFF 40960-49151 BASIC ROM-8192 Bytes (or 8K RAM) C000-CFFF 49152-53247 RAM-4096 Bytes D000-DFFF 53248-57343 Input/Output Devices and Color RAM or Character Generator ROM or RAM-4096 Bytes E000-FFFF 57344-65535 KERNAL ROM -- 8192 Bytes (or 8K RAM)