-
Notifications
You must be signed in to change notification settings - Fork 78
/
c64mem_jb.txt
221 lines (220 loc) · 9.57 KB
/
c64mem_jb.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
- C64 RAM Map (Jim Butterfield)
-
- Butterfield, Jim [compiled by]:
- COMMODORE 64 MEMORY MAP
- Classic Computer Magazine Archive COMPUTE! issue 29, October 1982, p.150
-
- https://www.atarimagazines.com/compute/issue29/394_1_COMMODORE_64_MEMORY_MAP.php
- https://www.atariarchives.org/mlb/appendix_b.php
- https://archive.org/details/1982-10-compute-magazine/page/n153/mode/2up
-
- Corrections (typos as well as content), translations etc.
- welcome at: https://github.com/mist64/c64ref
-
------------------------------------------------------------
-
# This plain text file is formatted so that it can be automatically
# parsed in order to create cross-references etc.
# * Lines starting with "-" is top-level information. The first line
# is the title. Lines starting with "--" are separators.
# * Lines starting with "#" are internal comments.
# * Hex addresses start at column 0.
# * Symbols start at column 13.
# * The description starts at column 21.
# * All lines of the description until the first blank line are
# combined into the heading.
# * A '.' character at the end of a heading line represents a hard
# line break.
# * The remaining text is in MarkDown format.
# * All addresses are 4 digits and have a leading '$'.
# The encoding is UTF-8.
$0000 D6510 Chip directional register
$0001 R6510 Chip I/O; memory & tape control
$0003-$0004 ADRAY1 Float-Fixed vector
$0005-$0006 ADRAY2 Fixed-Float vector
$0007 CHARAC Search character
$0008 ENDCHR Scan-quotes flag
$0009 TRMPOS TAB column save
$000A VERCK 0 = LOAD, 1 = VERIFY
$000B COUNT Input buffer pointer/# subscrpt
$000C DIMFLG Default DIM flag
$000D VALTYP Type : FF = string, 00 = numeric
$000E INTFLG Type : 80 = integer, 00 = floating point
$000F GARBFL DATA scan/LIST quote/memry flag
$0010 SUBFLG Subscript/FNx flag
$0011 INPFLG 0 = INPUT; $40 = GET; $98 = READ
$0012 TANSGN ATN sign/Comparison eval flag
$0013 CHANNL Current I/O prompt flag
$0014-$0015 LINNUM Integer value
$0016 TEMPPT Pointer : temporary strg stack
$0017-$0018 LASTPT Last temp string vector
$0019-$0021 TEMPST Stack for temporary strings
$0022-$0025 INDEX Utility pointer area
$0026-$002A RES Product area for multiplication
$002B-$002C TXTTAB Pointer : Start-of-Basic
$002D-$002E VARTAB Pointer : Start-of-Variables
$002F-$0030 ARYTAB Pointer : Start-of-Arrays
$0031-$0032 STREND Pointer : End-of-Arrays
$0033-$0034 FRETOP Pointer : String-storage(moving down)
$0035-$0036 FRESPC Utility string pointer
$0037-$0038 MEMSIZ Pointer : Limit-of-memory
$0039-$003A CURLIN Current Basic line number
$003B-$003C OLDLIN Previous Basic line number
$003D-$003E OLDTXT Pointer : Basic statement for CONT
$003F-$0040 DATLIN Current DATA line number
$0041-$0042 DATPTR Current DATA address
$0043-$0044 INPPTR Input vector
$0045-$0046 VARNAM Current variable name
$0047-$0048 VARPNT Current variable address
$0049-$004A FORPNT Variable pointer for FOR/NEXT
$004B-$004C VARTXT Y-save; op-save; Basic pointer save
$004D OPMASK Comparison symbol accumulator
$004E-$0053 Misc work area, pointer, etc
$0054-$0056 JMPER Jump vector for functions
$0057-$0060 Misc numeric work area
$0061 FACEXP Accum#l : Exponent
$0062-$0065 FACHO Accum#l : Mantissa
$0066 FACSGN Accum#l : Sign
$0067 SGNFLG Series evaluation constant pointer
$0068 BITS Accum#l hi-order (over flow)
$0069-$006E ARG Accum#2 : Exponent, etc.
$006F ARISGN Sign comparison, Acc#l vs #2
$0070 FACOV Accum#l lo-order (rounding)
$0071-$0072 FBUFPT Cassette buff len/Series pointer
$0073-$008A CHRGET CHRGET subroutine; get Basic char
$007A-$007B TXTPTR Basic pointer (within subrtn)
$008B-$008F RNDX RND seed value
$0090 STATUS Status word ST
$0091 STKEY Keyswitch PIA : STOP and RVS flags
$0092 SVXT Timing constant for tape
$0093 VERCK Load = 0, Verify = l
$0094 C3P0 Serial output : deferred char flag
$0095 BSOUR Serial deferred character
$0096 SYNO Tape EOT received
$0097 XSAV Register save
$0098 LDTND How many open files
$0099 DFLTN Input device, normally 0
$009A DFLTO Output CMD device, normally 3
$009B PRTY Tape character parity
$009C DPSW Byte-received flag
$009D MSGFLG Direct = $80/RUN = 0 output control
$009E PTR1 Tp Pass 1 error log/char buffer
$009F PTR2 Tp Pass 2 err log corrected
$00A0-$00A2 TIME Jiffy Clock HML
$00A3 R2D2 Serial bit count/EOI flag
$00A4 FIRT Cycle count
$00A5 CNTDN Countdown, tape write/bit count
$00A6 BUFPT Tape buffer pointer
$00A7 INBIT Tp Wrt ldr count/Rd pass/inbit
$00A8 BITCI Tp Wrt new byte/Rd error/inbit cnt
$00A9 RINONE Wrt start bit/Rd bit err/stbit
$00AA RIDATA Tp Scan; Cnt; Ld; End/byte assy
$00AB RIPRTY Wr lead length/Rd checksum/parity
$00AC-$00AD Pointer : tape bufr, scrolling
$00AE-$00AF Tape end adds/End of program
$00B0-$00B1 Tape timing constants
$00B2-$00B3 TAPE1 Pntr : start of tape buffer
$00B4 BITTS l = Tp timer enabled; bit count
$00B5 NXTBIT Tp EOT/RS232 next bit to send
$00B6 RODATA Read character error/outbyte buf
$00B7 FNLEN # characters in file name
$00B8 LA Current logical file
$00B9 SA Current secndy address
$00BA FA Current device
$00BB-$00BC FNADR Pointer to file name
$00BD ROPRTY Wr shift word/Rd input char
$00BE FSBLK # blocks remaining to Wr/Rd
$00BF MYCH Serial word buffer
$00C0 CAS1 Tape motor interlock
$00C1-$00C2 STAL I/O start address
$00C3-$00C4 MEMUSS Kernel setup pointer
$00C5 LSTX Last key pressed
$00C6 NDX # chars in keybd buffer
$00C7 RVS Screen reverse flag
$00C8 INDX End-of-line for input pointer
$00C9-$00CA Input cursor log (row, column)
$00CB SFDX Which key : 64 if no key
$00CC BLNSW 0 = flash cursor
$00CD BLNCT Cursor timing countdown
$00CE GDBLN Character under cursor
$00CF BLNON Cursor in blink phase
$00D0 CRSW Input from screen/from keyboard
$00D1-$00D2 PNT Pointer to screen line
$00D3 PNTR Position of cursor on above line
$00D4 QTSW 0 = direct cursor, else programmed
$00D5 LNMX Current screen line length
$00D6 TBLX Row where curosr lives
$00D7 DATA Last inkey/checksum/buffer
$00D8 INSRT # of INSERTs outstanding
$00D9-$00F2 LDTB1 Screen line link table
$00F3-$00F4 USER Screen color pointer
$00F5-$00F6 KEYTAB Keyboard pointer
$00F7-$00F8 RIBUF RS-232 Rev pntr
$00F9-$00FA ROBUF RS-232 Tx pntr
$00FF-$010A BASZPT Floating to ASCII work area
$0100-$01FF Processor stack area
$0100-$013E BAD Tape error log
$0200-$0258 BUF Basic input buffer
$0259-$0262 LAT Logical file table
$0263-$026C FAT Device # table
$026D-$0276 SAT Sec Adds table
$0277-$0280 KEYD Keybd buffer
$0281-$0282 MEMSTR Start of Basic Memory
$0283-$0284 MEMSIZ Top of Basic Memory
$0285 TIMOUT Serial bus timeout flag
$0286 COLOR Current color code
$0287 GDCOL Color under cursor
$0288 HIBASE Screen memory page
$0289 XMAX Max size of keybd buffer
$028A RPTFLG Repeat all keys
$028B KOUNT Repeat speed counter
$028C DELAY Repeat delay counter
$028D SHFLAG Keyboard Shift/Control flag
$028E LSTSHF Last shift pattern
$028F-$0290 KEYLOG Keyboard table setup pointer
$0291 MODE Keyboard shift mode
$0292 AUTODN 0 = scroll enable
$0293 M51CTR RS-232 control reg
$0294 M51CDR RS-232 command reg
$0295-$0296 M51AJB Bit timing
$0297 RSSTAT RS-232 status
$0298 BITNUM # bits to send
$0299-$029A BAUDOF RS-232 speed/code
$029B RIDBE RS232 receive pointer
$029C RIDBS RS232 input pointer
$029D RODBS RS232 transmit pointer
$029E RODBE RS232 output pointer
$029F-$02A0 IRQTMP IRQ save during tape I/O
$02A1 ENABL CIA 2 (NMI) Interrupt Control
$02A2 CASTON CIA 1 Timer A control log
$02A3 KIKA26 CIA 1 Interrupt Log
$02A4 STUPID CIA 1 Timer A enabled flag
$02A5 LINTMP Screen row marker
$0300-$0301 IERROR Error message link
$0302-$0303 IMAIN Basic warm start link
$0304-$0305 ICRNCH Crunch Basic tokens link
$0306-$0307 IQPLOP Print tokens link
$0308-$0309 IGONE Start new Basic code link
$030A-$030B IEVAL Get arithmetic element link
$030C SAREG SYS A-reg save
$030D SXREG SYS X-reg save
$030E SYREG SYS Y-reg save
$030F SPREG SYS status reg save
$0310-$0312 USRPOK USR function jump ($B248)
$0314-$0315 CINV Hardware interrupt vector ($EA31)
$0316-$0317 CBINV Break interrupt vector ($FE66)
$0318-$0319 NMINV NMI interrupt vector ($FE47)
$031A-$031B IOPEN OPEN vector ($F34A)
$031C-$031D ICLOSE CLOSE vector ($F291)
$031E-$031F ICHKIN Set - input vector ($F20E)
$0320-$0321 ICKOUT Set - output vector ($F250)
$0322-$0323 ICLRCH Restore I/0 vector ($F333)
$0324-$0325 IBASIN INPUT vector ($F157)
$0326-$0327 IBSOUT Output vector ($F1CA)
$0328-$0329 ISTOP Test-STOP vector ($F6ED)
$032A-$032B IGETIN GET vector ($F13E)
$032C-$032D ICLALL Abort I/o vector ($F32F)
$032E-$032F USRCMD Warm start vector ($FE66)
$0330-$0331 ILOAD LOAD link ($F4A5)
$0332-$0333 ISAVE SAVE link ($F5ED)
$033C-$03FB TBUFFR Cassette buffer