]> git.sur5r.net Git - cc65/blob - libsrc/cbm610/cbm610.inc
added sleep() 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 RVS                  = $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 ; Screen size
192
193 XSIZE           = 80
194 YSIZE           = 25
195
196 ; ---------------------------------------------------------------------------
197 ; I/O definitions
198
199
200 ; I/O  $d800: CRTC 6545
201
202 CRTC            = $D800
203 CRTC_ADDR       = $00
204 CRTC_DATA       = $01
205
206
207 ; I/O  $da00: SID 6581
208
209 ;       sid             =       $da00
210
211 Osc1            =       $00
212 Osc2            =       $07
213 Osc3            =       $0e
214
215 FreqLo          =       $00
216 FreqHi          =       $01
217 PulseF          =       $02
218 PulseC          =       $03
219 OscCtl          =       $04
220 AtkDcy          =       $05
221 SusRel          =       $06
222
223 FiCtlLo         =       $15
224 FiCtlHi         =       $16
225 Resonance       =       $17
226 Volume          =       $18
227 PotX            =       $19
228 PotY            =       $1A
229 Random          =       $1B
230 Env3            =       $1C
231
232
233
234 ; I/O  $db00: CIA 6526 Inter Process Communication
235
236 ;       IPCcia          =       $db00
237
238 PortA           =       $00
239 PortB           =       $01
240 DDRA            =       $02
241 DDRB            =       $03
242 TimALo          =       $04
243 TimAHi          =       $05
244 TimBLo          =       $06
245 TimBHi          =       $07
246 TOD10           =       $08
247 TODsec          =       $09
248 TODmin          =       $0A
249 TODhour         =       $0B
250 SerDataReg      =       $0C
251 IntCtrReg       =       $0D
252 CtrlA           =       $0E
253 CtrlB           =       $0F
254
255
256
257 ; I/O  $dc00: CIA 6526
258
259 ;       cia             =       $dc00
260
261
262
263 ; I/O  $dd00: ACIA 6551
264
265 ;       acia            =       $dd00
266
267 ADataReg        =       $00
268 AStatusReg      =       $01
269 ACmdReg         =       $02
270 ACtrlReg        =       $03
271
272
273
274 ; I/O  $de00: Triport #1 6525
275
276 ;       tpi1            =       $de00
277
278 tpiPortA        =       $00
279 tpiPortB        =       $01
280 tpiPortC        =       $02
281 tpiIntLatch     =       $02
282 tpiDDRA         =       $03
283 tpiDDRB         =       $04
284 tpiDDRC         =       $05
285 tpiIntMask      =       $05
286 tpiCtrlReg      =       $06
287 tpiActIntReg    =       $07
288
289
290
291 ; I/O  $df00: Triport #2 6525
292
293 ;       tpi2            =       $df00
294
295