# Commodore 64 RAM Addresses.

    ;	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-002S	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 l/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 l/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 l/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)