1 ;
2 ; System equates
3 ;
4 ; OS EQUATES
5 ; ----------
6 ; 
7 ; Syntax:
8 ; Use '=' for addresses
9 ; and '#' for values
10 ; 
11 ; IO EQUATES
12 ; 
13 ICHID    = $0000
14 ICDNO    = $0001
15 ICCOM    = $0002
16 ICSTA    = $0003
17 ICBAL    = $0004
18 ICBAH    = $0005
19 ICPTL    = $0006
20 ICPTH    = $0007
21 ICBLL    = $0008
22 ICBLH    = $0009
23 ICAX1    = $000A
24 ICAX2    = $000B
25 ICAX3    = $000C
26 ICAX4    = $000D
27 ICAX5    = $000E
28 ICAX6    = $000F
29 ; 
30 ; DISPLAY LIST EQUATES
31 ; 
32 ADLI     = $0080
33 AVB      = $0040
34 ALMS     = $0040
35 AVSCR    = $0020
36 AHSCR    = $0010
37 AJMP     = $0001
38 AEMPTY1  = $0000
39 AEMPTY2  = $0010
40 AEMPTY3  = $0020
41 AEMPTY4  = $0030
42 AEMPTY5  = $0040
43 AEMPTY6  = $0050
44 AEMPTY7  = $0060
45 AEMPTY8  = $0070
46 ; 
47 ; OS VARIABLES FOR XL/XE
48 ; 
49 ; PAGE 0
50 ; 
51 NGFLAG   = $0001
52 CASINI   = $0002
53 RAMLO    = $0004
54 TRAMSZ   = $0006
55 CMCMD    = $0007
56 WARMST   = $0008
57 BOOT     = $0009
58 DOSVEC   = $000A
59 DOSINI   = $000C
60 APPMHI   = $000E
61 POKMSK   = $0010
62 BRKKEY   = $0011
63 RTCLOK   = $0012
64 BUFADR   = $0015
65 ICCOMT   = $0017
66 DSKFMS   = $0018
67 DSKUTL   = $001A
68 ABUFPT   = $001C
69 ICHIDZ   = $0020
70 ICDNOZ   = $0021
71 ICCOMZ   = $0022
72 ICSTAZ   = $0023
73 ICBALZ   = $0024
74 ICBAHZ   = $0025
75 ICPTLZ   = $0026
76 ICPTHZ   = $0027
77 ICBLLZ   = $0028
78 ICBLHZ   = $0029
79 ICAX1Z   = $002A
80 ICAX2Z   = $002B
81 ICAX3Z   = $002C
82 ICAX4Z   = $002D
83 ICAX5Z   = $002E
84 ICAX6Z   = $002F
85 STATUS   = $0030
86 CHKSUM   = $0031
87 BUFRLO   = $0032
88 BUFRHI   = $0033
89 BFENLO   = $0034
90 BFENHI   = $0035
91 LTEMP    = $0036
92 BUFRFL   = $0038
93 RECVDN   = $0039
94 XMTDON   = $003A
95 CHKSNT   = $003B
96 NOCKSM   = $003C
97 BPTR     = $003D
98 FTYPE    = $003E
99 FEOF     = $003F
100 FREQ     = $0040
101 SOUNDR   = $0041
102 CRITIC   = $0042
103 FMSZPG   = $0043
104 ZCHAIN   = $004A
105 DSTAT    = $004C
106 ATRACT   = $004D
107 DRKMSK   = $004E
108 COLRSH   = $004F
109 TEMP     = $0050
110 HOLD1    = $0051
111 LMARGN   = $0052
112 RMARGN   = $0053
113 ROWCRS   = $0054
114 COLCRS   = $0055
115 DINDEX   = $0057
116 SAVMSC   = $0058
117 OLDROW   = $005A
118 OLDCOL   = $005B
119 OLDCHR   = $005D
120 OLDADR   = $005E
121 FKDEF    = $0060
122 PALNTS   = $0062
123 LOGCOL   = $0063
124 ADRESS   = $0064
125 MLTTMP   = $0066
126 SAVADR   = $0068
127 RAMTOP   = $006A
128 BUFCNT   = $006B
129 BUFSTR   = $006C
130 BITMSK   = $006E
131 SHFAMT   = $006F
132 ROWAC    = $0070
133 COLAC    = $0072
134 ENDPT    = $0074
135 DELTAR   = $0076
136 DELTAC   = $0077
137 KEYDEF   = $0079
138 SWPFLG   = $007B
139 HOLDCH   = $007C
140 INSDAT   = $007D
141 COUNTR   = $007E
142 LOMEM    = $0080
143 VNTP     = $0082
144 VNTD     = $0084
145 VVTP     = $0086
146 STMTAB   = $0088
147 STMCUR   = $008A
148 STARP    = $008C
149 RUNSTK   = $008E
150 TOPSTK   = $0090
151 MEOLFLG  = $0092
152 POKADR   = $0095
153 DATAD    = $00B6
154 DATALN   = $00B7
155 STOPLN   = $00BA
156 SAVCUR   = $00BE
157 IOCMD    = $00C0
158 IODVC    = $00C1
159 PROMPT   = $00C2
160 ERRSAVE  = $00C3
161 COLOUR   = $00C8
162 PTABW    = $00C9
163 LOADFLG  = $00CA
164 FR0      = $00D4
165 FRE      = $00DA
166 FR1      = $00E0
167 FR2      = $00E6
168 FRX      = $00EC
169 EEXP     = $00ED
170 NSIGN    = $00EE
171 ESIGN    = $00EF
172 FCHRFLG  = $00F0
173 DIGRT    = $00F1
174 CIX      = $00F2
175 INBUFF   = $00F3
176 ZTEMP1   = $00F5
177 ZTEMP4   = $00F7
178 ZTEMP3   = $00F9
179 RADFLG   = $00FB
180 FLPTR    = $00FC
181 FPTR2    = $00FE
182 ; 
183 ; PAGE 2
184 ; 
185 VDSLST   = $0200
186 VPRCED   = $0202
187 VINTER   = $0204
188 VBREAK   = $0206
189 VKEYBD   = $0208
190 VSERIN   = $020A
191 VSEROR   = $020C
192 VSEROC   = $020E
193 VTIMR1   = $0210
194 VTIMR2   = $0212
195 VTIMR4   = $0214
196 VIMIRQ   = $0216
197 CDTMV1   = $0218
198 CDTMV2   = $021A
199 CDTMV3   = $021C
200 CDTMV4   = $021E
201 CDTMV5   = $0220
202 VVBLKI   = $0222
203 VVBLKD   = $0224
204 CDTMA1   = $0226
205 CDTMA2   = $0228
206 CDTMF3   = $022A
207 SRTIMR   = $022B
208 CDTMF4   = $022C
209 INTEMP   = $022D
210 CDTMF5   = $022E
211 SDMCTL   = $022F
212 SDLSTL   = $0230
213 SDLSTH   = $0231
214 SSKCTL   = $0232
215 SPARE    = $0233
216 LPENH    = $0234
217 LPENV    = $0235
218 BRKKY    = $0236
219 VPIRQ    = $0238
220 CDEVIC   = $023A
221 CCOMND   = $023B
222 CAUX1    = $023C
223 CAUX2    = $023D
224 TMPSIO   = $023E
225 ERRFLG   = $023F
226 DFLAGS   = $0240
227 DBSECT   = $0241
228 BOOTAD   = $0242
229 COLDST   = $0244
230 RECLEN   = $0245
231 DSKTIM   = $0246
232 PDVMSK   = $0247
233 SHPDVS   = $0248
234 PDMSK    = $0249
235 RELADR   = $024A
236 PPTMPA   = $024C
237 PPTMPX   = $024D
238 CHSALT   = $026B
239 VSFLAG   = $026C
240 KEYDIS   = $026D
241 FINE     = $026E
242 GPRIOR   = $026F
243 PADDL0   = $0270
244 PADDL1   = $0271
245 PADDL2   = $0272
246 PADDL3   = $0273
247 PADDL4   = $0274
248 PADDL5   = $0275
249 PADDL6   = $0276
250 PADDL7   = $0277
251 STICK0   = $0278
252 STICK1   = $0279
253 STICK2   = $027A
254 STICK3   = $027B
255 PTRIG0   = $027C
256 PTRIG1   = $027D
257 PTRIG2   = $027E
258 PTRIG3   = $027F
259 PTRIG4   = $0280
260 PTRIG5   = $0281
261 PTRIG6   = $0282
262 PTRIG7   = $0283
263 STRIG0   = $0284
264 STRIG1   = $0285
265 STRIG2   = $0286
266 STRIG3   = $0287
267 HIBYTE   = $0288
268 WMODE    = $0289
269 BLIM     = $028A
270 IMASK    = $028B
271 JVECK    = $028C
272 NEWADR   = $028E
273 TXTROW   = $0290
274 TXTCOL   = $0291
275 TINDEX   = $0293
276 TXTMSC   = $0294
277 TXTOLD   = $0296
278 CRETRY   = $029C
279 HOLD3    = $029D
280 SUBTMP   = $029E
281 HOLD2    = $029F
282 DMASK    = $02A0
283 TMPLBT   = $02A1
284 ESCFLG   = $02A2
285 TABMAP   = $02A3
286 LOGMAP   = $02B2
287 INVFLG   = $02B6
288 FILFLG   = $02B7
289 TMPROW   = $02B8
290 TMPCOL   = $02B9
291 SCRFLG   = $02BB
292 HOLD4    = $02BC
293 DRETRY   = $02BD
294 SHFLOC   = $02BE
295 BOTSCR   = $02BF
296 PCOLR0   = $02C0
297 PCOLR1   = $02C1
298 PCOLR2   = $02C2
299 PCOLR3   = $02C3
300 COLOR0   = $02C4
301 COLOR1   = $02C5
302 COLOR2   = $02C6
303 COLOR3   = $02C7
304 COLOR4   = $02C8
305 RUNADR   = $02C9
306 HIUSED   = $02CB
307 ZHIUSE   = $02CD
308 GBYTEA   = $02CF
309 LOADAD   = $02D1
310 ZLOADA   = $02D3
311 DSCTLN   = $02D5
312 ACMISR   = $02D7
313 KRPDER   = $02D9
314 KEYREP   = $02DA
315 NOCLIK   = $02DB
316 HELPFG   = $02DC
317 DMASAV   = $02DD
318 PBPNT    = $02DE
319 PBUFSZ   = $02DF
320 RUNAD    = $02E0
321 INITAD   = $02E2
322 RAMSIZ   = $02E4
323 MEMTOP   = $02E5
324 MEMLO    = $02E7
325 HNDLOD   = $02E9
326 DVSTAT   = $02EA
327 CBAUDL   = $02EE
328 CBAUDH   = $02EF
329 CRSINH   = $02F0
330 KEYDEL   = $02F1
331 CH1      = $02F2
332 CHACT    = $02F3
333 CHBAS    = $02F4
334 NEWROW   = $02F5
335 NEWCOL   = $02F6
336 ROWINC   = $02F8
337 COLINC   = $02F9
338 CHAR     = $02FA
339 ATACHR   = $02FB
340 CH       = $02FC
341 FILDAT   = $02FD
342 DSPFLG   = $02FE
343 SSFLAG   = $02FF
344 ; 
345 ; PAGE 3
346 ; 
347 DDEVIC   = $0300
348 DUNIT    = $0301
349 DCOMND   = $0302
350 DSTATS   = $0303
351 DBUFLO   = $0304
352 DBUFHI   = $0305
353 DTIMLO   = $0306
354 DUNUSE   = $0307
355 DBYTLO   = $0308
356 DBYTHI   = $0309
357 DAUX1    = $030A
358 DAUX2    = $030B
359 TIMER1   = $030C
360 ADDCOR   = $030E
361 CASFLG   = $030F
362 TIMER2   = $0310
363 TEMP1    = $0312
364 TEMP2    = $0314
365 TEMP3    = $0315
366 SAVIO    = $0316
367 TIMFLG   = $0317
368 STACKP   = $0318
369 TSTAT    = $0319
370 HATABS   = $031A
371 PUPBT1   = $033D
372 PUPBT2   = $033E
373 PUPBT3   = $033F
374 IOCB0    = $0340
375 IOCB1    = $0350
376 IOCB2    = $0360
377 IOCB3    = $0370
378 IOCB4    = $0380
379 IOCB5    = $0390
380 IOCB6    = $03A0
381 IOCB7    = $03B0
382 PRNBUF   = $03C0
383 SUPERF   = $03E8
384 CKEY     = $03E9
385 CASSBT   = $03EA
386 CARTCK   = $03EB
387 DERRF    = $03EC
388 ACMVAR   = $03ED
389 BASICF   = $03F8
390 MINTLK   = $03F9
391 GINTLK   = $03FA
392 CHLINK   = $03FB
393 CASBUF   = $03FD
394 ; 
395 ; HARDWARE REGISTERS
396 ; 
397 ; GTIA
398 ; 
399 HPOSP0   = $D000
400 HPOSP1   = $D001
401 HPOSP2   = $D002
402 HPOSP3   = $D003
403 HPOSM0   = $D004
404 HPOSM1   = $D005
405 HPOSM2   = $D006
406 HPOSM3   = $D007
407 SIZEP0   = $D008
408 SIZEP1   = $D009
409 SIZEP2   = $D00A
410 SIZEP3   = $D00B
411 SIZEM    = $D00C
412 GRAFP0   = $D00D
413 GRAFP1   = $D00E
414 GRAFP2   = $D00F
415 GRAFP3   = $D010
416 GRAFM    = $D011
417 COLPM0   = $D012
418 COLPM1   = $D013
419 COLPM2   = $D014
420 COLPM3   = $D015
421 COLPF0   = $D016
422 COLPF1   = $D017
423 COLPF2   = $D018
424 COLPF3   = $D019
425 COLBK    = $D01A
426 PRIOR    = $D01B
427 VDELAY   = $D01C
428 GRACTL   = $D01D
429 HITCLR   = $D01E
430 CONSOL   = $D01F
431 ; 
432 ; POKEY
433 ; 
434 AUDF1    = $D200
435 AUDC1    = $D201
436 AUDF2    = $D202
437 AUDC2    = $D203
438 AUDF3    = $D204
439 AUDC3    = $D205
440 AUDF4    = $D206
441 AUDC4    = $D207
442 AUDCTL   = $D208
443 STIMER   = $D209
444 SKREST   = $D20A
445 POTGO    = $D20B
446 SEROUT   = $D20D
447 IRQEN    = $D20E
448 SKCTL    = $D20F
449 ; 
450 ; PIA
451 ; 
452 PORTA    = $D300
453 PORTB    = $D301
454 PACTL    = $D302
455 PBCTL    = $D303
456 ; 
457 ; ANTIC
458 ; 
459 DMACLT   = $D400
460 CHACTL   = $D401
461 DLISTL   = $D402
462 DLISTH   = $D403
463 HSCROL   = $D404
464 VSCROL   = $D405
465 PMBASE   = $D407
466 CHBASE   = $D409
467 WSYNC    = $D40A
468 VCOUNT   = $D40B
469 PENH     = $D40C
470 PENV     = $D40D
471 NMIEN    = $D40E
472 NMIRES   = $D40F
473 ; 
474 ; FLOATING POINT ROUTINES
475 ; 
476 AFP      = $D800
477 FASC     = $D8E6
478 IFP      = $D9AA
479 FPI      = $D9D2
480 ZFR0     = $DA44
481 ZF1      = $DA46
482 FSUB     = $DA60
483 FADD     = $DA66
484 FMUL     = $DADB
485 FDIV     = $DB28
486 PLYEVL   = $DD40
487 FLD0R    = $DD89
488 FLD0P    = $DD8D
489 FLD1R    = $DD98
490 FLD1P    = $DD9C
491 FSTOR    = $DDA7
492 FSTOP    = $DDAB
493 FMOVE    = $DDB6
494 EXP      = $DDC0
495 EXP10    = $DDCC
496 LOG      = $DECD
497 LOG10    = $DED1
498 ; 
499 ; ROM VECTORS
500 ; 
501 DSKINV   = $E453
502 CIOV     = $E456
503 SIOV     = $E459
504 SETVBV   = $E45C
505 SYSVBV   = $E45F
506 XITVBV   = $E462
507 SIOINV   = $E465
508 SENDEV   = $E468
509 INTINV   = $E46B
510 CIOINV   = $E46E
511 SELFSV   = $E471
512 WARMSV   = $E474
513 COLDSV   = $E477
514 RBLOKV   = $E47A
515 CSOPIV   = $E47D
516 PUPDIV   = $E480
517 SELFTSV  = $E483
518 PENTV    = $E486
519 PHUNLV   = $E489
520 PHINIV   = $E48C
521 GPDVV    = $E48F
522 ;
523 ; Code equates
524 ;
525 L5F80    = $5F80
526 L8073    = $8073
527 L80A2    = $80A2
528 L80AB    = $80AB
529 L8240    = $8240
530 L825F    = $825F
531 L8280    = $8280
532 L8300    = $8300
533 L8380    = $8380
534 L840C    = $840C
535 L841C    = $841C
536 L842C    = $842C
537 L843C    = $843C
538 L844C    = $844C
539 ;
540 ; Start of code
541 ;
542          *= $8000
543 ;
544          LDX #$00
545          LDY #$20
546 L8004    LDA L8200,X
547          STA L821F,Y
548          EOR #$3F
549          STA L8240,X
550          STA L825F,Y
551          INX
552          DEY
553          BNE L8004
554 L8016    LDA L8200,Y
555          STA L8280,Y
556          STA L8300,Y
557          STA L8380,Y
558          INY
559          BPL L8016
560          LDA #$B3
561          STA SDLSTL
562          LDA #$80
563          STA SDLSTH
564          LDY #$00
565 L8031    TYA
566          INC DIGRT
567          BMI L8038
568          LDA #$11
569 L8038    STA FCHRFLG
570          CLC
571          LDX #$0F
572          TYA
573 L803E    STA L840C,Y
574          STA L841C,X
575          STA L842C,Y
576          STA L843C,X
577          STA L844C,Y
578          ADC FCHRFLG
579          INY
580          DEX
581          BPL L803E
582          LDA #$04
583          ADC CIX
584          STA CIX
585          TAX
586          INC L8073
587          LDA #$0B
588          STA L80B7
589 L8062    CMP VCOUNT
590          BNE L8062
591          LDY #$70
592          STY PRIOR
593 L806C    STA WSYNC
594          INX
595          INX
596          INX
597          LDA L8200,Y
598          ADC L8200,X
599          LSR A
600          BIT DIGRT
601          STA WSYNC
602          BMI L809B
603          STA L80B7
604          LDA #$0E
605          BCC L8089
606          LDA #$0C
607 L8089    STA HSCROL
608          TXA
609          ADC VCOUNT
610          AND #$F0
611          BNE L8096
612          LDA #$10
613 L8096    STA COLBK
614          BNE L80AD
615 L809B    STA L80A2
616          STA L80AB
617          LDA L840C
618          BCS L80A8
619          ADC #$1F
620 L80A8    ADC #$01
621          STA L840C
622 L80AD    DEY
623          BNE L806C
624          JMP L8031
625          .BYTE $47
626          LDY L5F80,X
627 L80B7    .BYTE $0C
628          STY NGFLAG
629          LDX LOMEM,X
630          .BYTE $80
631          .SBYTE "נןעבתכב"
632          BRK
633          .BYTE $22,$39,$00
634          .SBYTE "taquart"
635          .BYTE $00
636 ;
637          *= $8200
638 ;
639 L8200    .BYTE $20,$21,$22,$23
640          .BYTE $24,$25,$26,$26
641          .BYTE $27,$28,$29,$2A
642          .BYTE $2B,$2B,$2C,$2D
643          .BYTE $2D,$2E,$2F,$2F
644          .BYTE $30,$30,$31,$31
645          .BYTE $32,$32,$32,$32
646          .BYTE $33,$33,$33
647 L821F    .BYTE $33
648 ;
649          *= $02E0
650 ;
651          .WORD $8000
652 ;
653          .END
