COMMODORE 64 MEMORY MAP


LABEL	HEX		DECIMAL
ADDRESS	LOCATION	DESCRIPTION

 

	0000		0	6510 Data Direction register
	0001		1	6510 Data buffer
	0002		2	not used
	0003-0004	3-4	Jump Vector: Convert Integer--Floating
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	Normal BASIC Program Space or 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)

 

ITFLAG.GIF (135 byte)                   GBFLAG.GIF (165 byte)

cbmsx.gif (1543 byte)          cbmsx.gif (1543 byte)