]> git.sur5r.net Git - cc65/blob - libsrc/cbm610/cbm610.inc
TGI Implementation
[cc65] / libsrc / cbm610 / cbm610.inc
1 ;
2 ; Zeropage and I/O definitions for the CBM 610
3 ;
4 ; Taken from a kernal disassembly done by myself in 1987.
5 ;
6 ; Ullrich von Bassewitz, 28.09.1998
7
8
9 ; ---------------------------------------------------------------------------
10 ; Zeropage stuff
11
12 ExecReg         = $0000
13 IndReg          = $0001
14
15 ; Up to $20 and $60-8F used by runtime and fixed values
16 ; -----------------------------------
17
18 KbdScanBuf      = $20           ; Intermediate for keyboard scan
19 ; RS232 stuff
20 RecvHead        = $21           ; Head of receive buffer
21 RecvTail        = $22           ; Tail of receive buffer
22 RecvFreeCnt     = $23           ; Number of bytes in receive buffer
23 SendHead        = $24           ; Head of send buffer
24 SendTail        = $25           ; Tail of send buffer
25 SendFreeCnt     = $26           ; Number of bytes free in send buffer
26
27 FileNameAdrLo   = $90
28 FileNameAdrHi   = $91
29 FileNameAdrSeg  = $92
30 SaveAdrLow      = $93
31 SaveAdrHi       = $94
32 SaveAdrSeg      = $95
33 EndAdrLow       = $96
34 EndAdrHi        = $97
35 EndAdrSeg       = $98
36 StartAdrLow     = $99
37 StartAdrHi      = $9A
38 StartAdrSeg     = $9B
39 Status          = $9C
40 FileNameLen     = $9D
41 LogicalAdr      = $9E
42 FirstAdr        = $9F
43 SecondAdr       = $A0
44 DefInpDev       = $A1
45 DefOutDev       = $A2
46 TapeBufPtr      = $A3
47 TapeBufPtrSeg   = $A5
48 rs232BufPtr     = $A6
49 rs232BufPtrSeg  = $A8
50 StopKeyFlag     = $A9
51 CTemp           = $AA
52 snsw1           = $AB
53 SegChgPtr       = $AC
54 PChighSave      = $AE
55 PClowSave       = $AF
56 SRSave          = $B0
57 ACSave          = $B1
58 XRSave          = $B2
59 YRSave          = $B3
60 SPSave          = $B4
61 IndSegSave      = $B5
62 IRQSaveHi       = $B7
63 IRQSaveLo       = $B8
64 Adr1            = $B9
65 Adr2            = $BB
66 MoniCntr        = $BD
67 MoniTmp         = $BE
68 MoniDevNr       = $BF
69 PgmKeyBuf       = $C0
70 PgmKeyPtr       = $C2
71 sedsal          = $C4
72 sedeal          = $C6
73 CharPtr         = $C8
74 CURS_Y          = $CA
75 CURS_X          = $CB
76 GrafMode        = $CC
77 LastIndex       = $CD
78 LastLine        = $CE
79 LastCol         = $CF
80 crsw            = $D0
81 KeyIndex        = $D1
82 QuoteSw         = $D2
83 Insrt           = $D3
84 Config          = $D4
85 LastLinePos     = $D5
86 PgmKeyIndex     = $D6
87 RepeatCount     = $D7
88 RepeatDelay     = $D8
89 sedt1           = $D9           ; Temp
90 sedt2           = $DA           ; Temp, frequently used
91 PrtData         = $DB
92 ScreenTop       = $DC
93 ScreenBot       = $DD
94 ScreenLeft      = $DE
95 ScreenRight     = $DF
96 ModKey          = $E0
97 NorKey          = $E1
98 BitTable        = $E2
99
100
101 ; ---------------------------------------------------------------------------
102 ; Page 3 variables
103
104 ;
105 ; system ram vectors
106 ;
107
108 IRQVec               = $0300
109 BRKVec               = $0302
110 NMIVec               = $0304
111 openVec              = $0306
112 closeVec             = $0308
113 chkinVec             = $030A
114 ckoutVec             = $030C
115 clrchVec             = $030E
116 basinVec             = $0310
117 bsoutVec             = $0312
118 stopVec              = $0314
119 getinVec             = $0316
120 clallVec             = $0318
121 loadVec              = $031A
122 saveVec              = $031C
123 usrcmd               = $031E
124 escvec               = $0320
125 ctrlvec              = $0322
126 secndVec             = $0324
127 tksaVec              = $0326
128 acptrVec             = $0328
129 cioutVec             = $032A
130 untlkVec             = $032C
131 unlsnVec             = $032E
132 listnVec             = $0330
133 talkVec              = $0332
134
135 ;
136 ;
137 ;
138
139 LogicalAdrTable      = $0334
140 FirstAdrTable        = $033E
141 SecondAdrTable       = $0348
142 SysMemBot            = $0352
143 SysMemTop            = $0355
144 UsrMemBot            = $0358
145 UsrMemTop            = $035B
146 TimOut               = $035E
147 VerifyFlag           = $035F
148 DevTabIndex          = $0360
149 MsgFlag              = $0361
150 CassBufPtr           = $0362
151 t1                   = $0363
152 t2                   = $0364
153 XSave                = $0365
154 SaveX                = $0366
155 SaveXt               = $0367
156 temp                 = $0368
157 alarm                = $0369
158 TapeVec              = $036A
159 LoadStAdr            = $036F
160 CassMotFlag          = $0375
161 m6551Ctrl            = $0376
162 m6551Cmd             = $0377
163 rs232status          = $037A
164 dcddsr               = $037B
165 rs232head            = $037C
166 rs232tail            = $037D
167 PgmKeyEnd            = $0380
168 PgmKeySeg            = $0382
169 PgmKeySize           = $0383
170 rvsFlag              = $0397
171 linetmp              = $0398
172 LastPrtChar          = $0399
173 InsertFlag           = $039A
174 ScrollFlag           = $039B
175 FktTemp              = $039C
176 PgmKeyIdx            = $039D
177 LogScrollFlag        = $039E
178 BellMode             = $039F    ; Bell on/off 00 = an
179 SegSave              = $03A0
180 TabStopTable         = $03A1    ; 80 bits for tabstops
181 KeyBuf               = $03AB    ; Keyboard buffer
182 FUNKEY_VEC           = $03B5    ; Vector for function key handline
183 FunKeyTmp            = $03B7
184 sedt3                = $03B9
185 MoniSegSave          = $03f0
186 wstvec               = $03F8
187 WstFlag              = $03FA    ; Warm start flag
188
189
190 ; ---------------------------------------------------------------------------
191 ; I/O definitions
192
193
194 ; I/O  $d800: CRTC 6545
195
196 CRTC            = $D800
197 CRTC_ADDR       = $00
198 CRTC_DATA       = $01
199
200
201 ; I/O  $da00: SID 6581
202
203 ;       sid             =       $da00
204
205 Osc1            =       $00
206 Osc2            =       $07
207 Osc3            =       $0e
208
209 FreqLo          =       $00
210 FreqHi          =       $01
211 PulseF          =       $02
212 PulseC          =       $03
213 OscCtl          =       $04
214 AtkDcy          =       $05
215 SusRel          =       $06
216
217 FiCtlLo         =       $15
218 FiCtlHi         =       $16
219 Resonance       =       $17
220 Volume          =       $18
221 PotX            =       $19
222 PotY            =       $1A
223 Random          =       $1B
224 Env3            =       $1C
225
226
227
228 ; I/O  $db00: CIA 6526 Inter Process Communication
229
230 ;       IPCcia          =       $db00
231
232 PortA           =       $00
233 PortB           =       $01
234 DDRA            =       $02
235 DDRB            =       $03
236 TimALo          =       $04
237 TimAHi          =       $05
238 TimBLo          =       $06
239 TimBHi          =       $07
240 TOD10           =       $08
241 TODsec          =       $09
242 TODmin          =       $0A
243 TODhour         =       $0B
244 SerDataReg      =       $0C
245 IntCtrReg       =       $0D
246 CtrlA           =       $0E
247 CtrlB           =       $0F
248
249
250
251 ; I/O  $dc00: CIA 6526
252
253 ;       cia             =       $dc00
254
255
256
257 ; I/O  $dd00: ACIA 6551
258
259 ;       acia            =       $dd00
260
261 ADataReg        =       $00
262 AStatusReg      =       $01
263 ACmdReg         =       $02
264 ACtrlReg        =       $03
265
266
267
268 ; I/O  $de00: Triport #1 6525
269
270 ;       tpi1            =       $de00
271
272 tpiPortA        =       $00
273 tpiPortB        =       $01
274 tpiPortC        =       $02
275 tpiIntLatch     =       $02
276 tpiDDRA         =       $03
277 tpiDDRB         =       $04
278 tpiDDRC         =       $05
279 tpiIntMask      =       $05
280 tpiCtrlReg      =       $06
281 tpiActIntReg    =       $07
282
283
284
285 ; I/O  $df00: Triport #2 6525
286
287 ;       tpi2            =       $df00
288
289