1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-06-12 08:29:29 +00:00
6502bench/SourceGen/RuntimeData/Commodore/C64-Kernal-RAM-use.sym65
David Youd 89df3278bc
Additional C64 .sym65 support files (#157)
* additional c64 symbols
2024-04-11 18:00:02 -07:00

140 lines
8.8 KiB
Plaintext

; See the LICENSE file for distribution terms (Apache 2.0).
;
; Parts adapted from multiple sources:
;
; - Project 64, 64MAP10.TXT, June 1996, etext #41
; http://unusedino.de/ec64/technical/project64/memory_maps.html
;
; - "Mapping the Commodore 64", by Sheldon Leemon
; Compute! Publications Inc. (1984), ISBN 0-942386-23-X
; https://archive.org/details/Compute_s_Mapping_the_Commodore_64
*SYNOPSIS RAM locations used by the KERNAL
STATUS @ $0090 ;Kernal I/O Status Word ST
STKEY @ $0091 ;Flag: $7f = STOP key
SVXT @ $0092 ;Timing Constant for Tape
VERCKK @ $0093 ;Flag: 0 = Load, 1 = Verify
C3PO @ $0094 ;Flag: Serial Bus - Output Character buffered
BSOUR @ $0095 ;Buffered Character for Serial Bus
SYNO @ $0096 ;Cassette Sync. number
TEMPX @ $0097 ;Temporary storage of X Register during CHRIN
TEMPY @ $0097 ;Temporary storage of Y Register during RS232 fetch
LDTND @ $0098 ;Number of Open Files/Index to File Table
DFLTN @ $0099 ;Default Input Device (0)
DFLTO @ $009a ;Default Output Device (3)
PRTY @ $009b ;Parity of Byte Output to Tape
DPSW @ $009c ;Flag: Byte received from Tape
MSGFLG @ $009d ;Set error message mode
FNMIDX @ $009e ;Index to Cassette File name/Header ID for Tape write
PTR1 @ $009e ;Tape Error log pass 1
PTR2 @ $009f ;Tape Error log pass 2
TIME @ $00a0 ;Real-time jiffy Clock, Update Routine: UDTIMK ($f69b)
TSFCNT @ $00a3 ;Bit Counter Tape Read or Write/Serial Bus
TBTCNT @ $00a4 ;Pulse Counter Tape Read or Write/Serial Bus shift Counter
CNTDN @ $00a5 ;Tape Synchronising count down
BUFPNT @ $00a6 2 ;Pointer: Tape I/O buffer
INBIT @ $00a7 ;RS232 temporary for received Bit/Tape
BITC1 @ $00a8 ;RS232 Input Bit count/Tape temporary
RINONE @ $00a9 ;RS232 Flag: Start Bit check/Tape temporary
RIDATA @ $00aa ;RS232 Input Byte Buffer/Tape temporary
RIPRTY @ $00ab ;RS232 Input parity/Tape temporary
SAL @ $00ac 2 ;Pointer: Tape Buffer/Screen scrolling
EAL @ $00ae ;Tape End Address/End of Program
CMPO @ $00b0 ;Tape timing Constants
TAPE1 @ $00b2 2 ;Pointer: Start Address of Tape Buffer ($033c)
BITTS @ $00b4 ;RS232 Write bit count/Tape Read timing Flag
NXTBIT @ $00b5 ;RS232 Next Bit to send/Tape Read - End of Tape
RODATA @ $00b6 ;RS232 Output Byte Buffer/Tape Read Error Flag
FNLEN @ $00b7 ;Number of Characters in Filename
LA @ $00b8 ;Current File - Logical File number
SA @ $00b9 ;Current File - Secondary Address
FA @ $00ba ;Current File - First Address (Device number)
FNADR @ $00bb 2 ;Pointer: Current File name Address
ROPRTY @ $00bd ;RS232 Output Parity/Tape Byte to be Input or Output
FSBLK @ $00be ;Tape Input/Output Block count
MYCH @ $00bf ;Serial Word Buffer
CAS1 @ $00c0 ;Tape Motor Switch
STAL @ $00c1 ;Start Address for LOAD and Cassette Write
MEMUSS @ $00c3 2 ;Pointer: Type 3 Tape LOAD and general use
LSTX @ $00c5 ;Matrix value of last Key pressed; No Key = $40
NDX @ $00c6 ;Number of Characters in Keyboard Buffer queue
RVS @ $00c7 ;Flag: Reverse On/Off; On = $01, Off = $00
INDX @ $00c8 2 ;Pointer: End of Line for Input
LXSP @ $00c9 ;Cursor X/Y (Line/Column) position at start of Input
SFDX @ $00cb ;Flag: Print shifted Characters
BLNSW @ $00cc ;Flag: Cursor blink; $00 = Enabled, $01 = Disabled
BLNCT @ $00cd ;Timer: Count down for Cursor blink toggle
GDBLN @ $00ce ;Character under Cursor while Cursor Inverted
BLNON @ $00cf ;Flag: Cursor Status; $00 = Off, $01 = On
CRSW @ $00d0 ;Flag: Input from Screen = $03, or Keyboard = $00
PNT @ $00d1 2 ;Pointer: Current Screen Line Address
PNTR @ $00d3 ;Cursor Column on current Line, including Wrap-round Line, if any
QTSW @ $00d4 ;Flag: Editor in Quote Mode; $00 = Not
LNMX @ $00d5 ;Current logical Line length: 39 or 79
TBLX @ $00d6 ;Current Screen Line number of Cursor
SCHAR @ $00d7 ;Screen value of current Input Character/Last Character Output
INSRT @ $00d8 ;Count of number of inserts outstanding
LDTB1 @ $00d9 ;Screen Line link Table/Editor temporaries
USER @ $00f3 2 ;Pointer: Current Colour RAM Location
KEYTAB @ $00f5 2 ;Vector: Current Keyboard decoding Table ($eb81)
RIBUF @ $00f7 2 ;RS232 Input Buffer Pointer
ROBUF @ $00f9 2 ;RS232 Output Buffer Pointer
FREKZP @ $00fb ;Free Zero Page space for User Programs
BASZPT @ $00ff ;BASIC temporary Data Area
ASCWRK @ $00ff ;Assembly Area for Floating point to ASCII conversion
LAT @ $0259 10 ;Kernal Table: Active logical File numbers
FAT @ $0263 10 ;Kernal Table: Active File First Addresses
SAT @ $026d 10 ;Kernal Table: Active File Secondary Addresses
KEYD @ $0277 10 ;Keyboard Buffer Queue (FIFO)
MEMSTR @ $0281 2 ;Pointer: Bottom of Memory for Operating System ($0800)
MEMSIZ2 @ $0283 2 ;Pointer: Top of Memory for Operating System ($a000)
TIMOUT @ $0285 ;Serial IEEE Bus timeout defeat Flag
COLOR @ $0286 ;Current Character Colour code
GDCOL @ $0287 ;Background Colour under Cursor
HIBASE @ $0288 ;High Byte of Screen Memory Address ($04)
XMAX @ $0289 ;Maximum number of Bytes in Keyboard Buffer ($0a)
RPTFLG @ $028a ;Flag: Repeat keys setting
KOUNT @ $028b ;Repeat Key: Speed Counter ($04)
DELAY @ $028c ;Repeat Key: First repeat delay Counter ($10)
SHFLAG @ $028d ;flags for shift, CBM, CTRL
LSTSHF @ $028e ;Last Shift Key used for debouncing
KEYLOG @ $028f 2 ;Vector: Routine to determine Keyboard table to use
MODE @ $0291 ;Flag: Upper/Lower Case change
AUTODN @ $0292 ;Flag: Auto scroll down: $00 = Disabled ($00)
M51CTR @ $0293 ;RS232 Pseudo 6551 control Register Image
M51CDR @ $0294 ;RS232 Pseudo 6551 command Register Image
M51AJB @ $0295 ;RS232 Non-standard Bits/Second
RSSTAT @ $0297 ;RS232 Pseudo 6551 Status Register Image
BITNUM @ $0298 ;RS232 Number of Bits left to send
BAUDOF @ $0299 ;RS232 Baud Rate; Full Bit time microseconds
RIDBE @ $029b ;RS232 Index to End of Input Buffer
RIDBS @ $029c 2 ;RS232 Pointer: High Byte of Address of Input Buffer
RODBS @ $029d 2 ;RS232 Pointer: High Byte of Address of Output Buffer
RODBE @ $029e ;RS232 Index to End of Output Buffer
IRQTMP @ $029f 2 ;Temporary store for IRQ Vector during Tape operations
ENABL @ $02a1 ;RS232 Enables
TODSNS @ $02a2 ;TOD sense during Tape I/O
TRDTMP @ $02a3 ;Temporary storage during Tape READ
TD1IRQ @ $02a4 ;Temporary D1IRQ Indicator during Tape READ
TLNIDX @ $02a5 ;Temporary for Line Index
TVSFLG @ $02a6 ;Flag: TV Standard: $00 = NTSC, $01 = PAL
CINV @ $0314 2 ;Vector: Hardware IRQ Interrupt ($ea31)
CNBINV @ $0316 2 ;Vector: BRK Instruction Interrupt ($fe66)
NMINV @ $0318 2 ;Vector: Hardware NMI Interrupt ($fe47)
IOPEN2 @ $031a 2 ;Vector: Kernal OPEN Routine ($f34a)
ICLOSE2 @ $031c 2 ;Vector: Kernal CLOSE Routine ($f291)
ICHKIN2 @ $031e 2 ;Vector: Kernal CHKIN Routine ($f20e)
ICKOUT2 @ $0320 2 ;Vector: Kernal CHKOUT Routine ($f250)
ICLRCH2 @ $0322 2 ;Vector: Kernal CLRCHN Routine ($f333)
IBASIN2 @ $0324 2 ;Vector: Kernal CHRIN Routine ($f157)
IBSOUT2 @ $0326 2 ;Vector: Kernal CHROUT Routine ($f1ca)
ISTOP2 @ $0328 2 ;Vector: Kernal STOP Routine ($f6ed)
IGETIN2 @ $032a 2 ;Vector: Kernal GETIN Routine ($f13e)
ICLALL2 @ $032c 2 ;Vector: Kernal CLALL Routine ($f32f)
USRCMD2 @ $032e 2 ;User Defined Vector ($fe66)
ILOAD2 @ $0330 2 ;Vector: Kernal LOAD Routine ($f4a5)
ISAVE2 @ $0332 2 ;Vector: Kernal SAVE Routine ($f5ed)
TBUFFR @ $033c 192 ;start of Tape I/O Buffer
VICSCN @ $0400 1024 ;start of Default Screen Video Matrix