[Prev] [Next] [Contents] [Commodore] [New] [Search] [Home]

COMMODORE 64 MEMORY MAP

LABELHEX
ADDRESS
DECIMAL
LOCATION
DESCRIPTION
D6510 0000 0 6510 On-Chip Data-Direction Register
R6510 0001 1 6510 On-Chip 8-Bit Input/Output Register
  0002 2 Unused
ADRAY1 0003-0004 3-4 Jump Vector: Convert Floating-Integer
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
VALTYP 000D 13 Data Type: $FF = String, $00 = Numeric
INTFLG 000E 14 Data Type: $80 = Integer, $00 = Floating
GARBFL 000F 15 Flag: DATA scan/LIST 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
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
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
DPSW 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
SA 00B9 185 Current Secondary Address
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: 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 245-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: Keyboard 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
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, 0= 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
&nsbp; 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)

[Prev] [Next] [Contents] [Commodore] [New] [Search] [Home]
This page has been created by Sami Rautiainen.
Read the small print. Last updated November 07, 1998.