wudsn-ide/com.wudsn.ide.ref/ASM/Atari8/MADS/PONG.wrong_warnings/PONG.lst
2018-12-30 16:52:33 +01:00

777 lines
26 KiB
Plaintext

mads 1.9.9 build 23 (22 Jun 14)
Source: C:\Users\D025328\Documents\Eclipse\workspace.jac\com.wudsn.ide.ref\ASM\Atari8\MADS\PONG.wrong_warnings\PONG.ASM
1 org $4000
2
3 = 0001 .def DIG=1
4 icl "atari.asm"
Source: C:\Users\D025328\Documents\Eclipse\workspace.jac\com.wudsn.ide.ref\ASM\Atari8\MADS\PONG.wrong_warnings\atari.asm
1 ; System equates
2 ;
3 ; OS EQUATES
4 ; ----------
5 ;
6 ; Syntax:
7 ; Use '=' for addresses
8 ; and '<' for read addresses (ex: KBCODE)
9 ; and '>' for write addresses (ex: STIMER)
10 ; and '#' for values
11 ;
12 ; IO EQUATES
13 ;
14 = 0000 ICHID = $0000
15 = 0001 ICDNO = $0001
16 = 0002 ICCOM = $0002
17 = 0003 ICSTA = $0003
18 = 0004 ICBAL = $0004
19 = 0005 ICBAH = $0005
20 = 0006 ICPTL = $0006
21 = 0007 ICPTH = $0007
22 = 0008 ICBLL = $0008
23 = 0009 ICBLH = $0009
24 = 000A ICAX1 = $000A
25 = 000B ICAX2 = $000B
26 = 000C ICAX3 = $000C
27 = 000D ICAX4 = $000D
28 = 000E ICAX5 = $000E
29 = 000F ICAX6 = $000F
30 ;
31 ; DISPLAY LIST EQUATES
32 ;
33 = 0080 ADLI = $0080
34 = 0040 AVB = $0040
35 = 0040 ALMS = $0040
36 = 0020 AVSCR = $0020
37 = 0010 AHSCR = $0010
38 = 0001 AJMP = $0001
39 = 0000 AEMPTY1 = $0000
40 = 0010 AEMPTY2 = $0010
41 = 0020 AEMPTY3 = $0020
42 = 0030 AEMPTY4 = $0030
43 = 0040 AEMPTY5 = $0040
44 = 0050 AEMPTY6 = $0050
45 = 0060 AEMPTY7 = $0060
46 = 0070 AEMPTY8 = $0070
47 ;
48 ; OS VARIABLES FOR XL/XE
49 ;
50 ; PAGE 0
51 ;
52 = 0001 NGFLAG = $0001
53 = 0002 CASINI = $0002
54 = 0004 RAMLO = $0004
55 = 0006 TRAMSZ = $0006
56 = 0007 CMCMD = $0007
57 = 0008 WARMST = $0008
58 = 0009 BOOT = $0009
59 = 000A DOSVEC = $000A
60 = 000C DOSINI = $000C
61 = 000E APPMHI = $000E
62 = 0010 POKMSK = $0010
63 = 0011 BRKKEY = $0011
64 = 0012 RTCLOK = $0012
65 = 0015 BUFADR = $0015
66 = 0017 ICCOMT = $0017
67 = 0018 DSKFMS = $0018
68 = 001A DSKUTL = $001A
69 = 001C ABUFPT = $001C
70 = 0020 ICHIDZ = $0020
71 = 0021 ICDNOZ = $0021
72 = 0022 ICCOMZ = $0022
73 = 0023 ICSTAZ = $0023
74 = 0024 ICBALZ = $0024
75 = 0025 ICBAHZ = $0025
76 = 0026 ICPTLZ = $0026
77 = 0027 ICPTHZ = $0027
78 = 0028 ICBLLZ = $0028
79 = 0029 ICBLHZ = $0029
80 = 002A ICAX1Z = $002A
81 = 002B ICAX2Z = $002B
82 = 002C ICAX3Z = $002C
83 = 002D ICAX4Z = $002D
84 = 002E ICAX5Z = $002E
85 = 002F ICAX6Z = $002F
86 = 0030 STATUS = $0030
87 = 0031 CHKSUM = $0031
88 = 0032 BUFRLO = $0032
89 = 0033 BUFRHI = $0033
90 = 0034 BFENLO = $0034
91 = 0035 BFENHI = $0035
92 = 0036 LTEMP = $0036
93 = 0038 BUFRFL = $0038
94 = 0039 RECVDN = $0039
95 = 003A XMTDON = $003A
96 = 003B CHKSNT = $003B
97 = 003C NOCKSM = $003C
98 = 003D BPTR = $003D
99 = 003E FTYPE = $003E
100 = 003F FEOF = $003F
101 = 0040 FREQ = $0040
102 = 0041 SOUNDR = $0041
103 = 0042 CRITIC = $0042
104 = 0043 FMSZPG = $0043
105 = 004A ZCHAIN = $004A
106 = 004C DSTAT = $004C
107 = 004D ATRACT = $004D
108 = 004E DRKMSK = $004E
109 = 004F COLRSH = $004F
110 = 0050 TEMP = $0050
111 = 0051 HOLD1 = $0051
112 = 0052 LMARGN = $0052
113 = 0053 RMARGN = $0053
114 = 0054 ROWCRS = $0054
115 = 0055 COLCRS = $0055
116 = 0057 DINDEX = $0057
117 = 0058 SAVMSC = $0058
118 = 005A OLDROW = $005A
119 = 005B OLDCOL = $005B
120 = 005D OLDCHR = $005D
121 = 005E OLDADR = $005E
122 = 0060 FKDEF = $0060
123 = 0062 PALNTS = $0062
124 = 0062 L0062 = $0062
125 = 0063 LOGCOL = $0063
126 = 0063 L0063 = $0063
127 = 0064 ADRESS = $0064
128 = 0066 MLTTMP = $0066
129 = 0068 SAVADR = $0068
130 = 006A RAMTOP = $006A
131 = 006B BUFCNT = $006B
132 = 006C BUFSTR = $006C
133 = 006E BITMSK = $006E
134 = 006F SHFAMT = $006F
135 = 0070 ROWAC = $0070
136 = 0072 COLAC = $0072
137 = 0074 ENDPT = $0074
138 = 0076 DELTAR = $0076
139 = 0077 DELTAC = $0077
140 = 0079 KEYDEF = $0079
141 = 007B SWPFLG = $007B
142 = 007C HOLDCH = $007C
143 = 007D INSDAT = $007D
144 = 007E COUNTR = $007E
145 = 0080 LOMEM = $0080
146 ;
147 ; PAGE 2
148 ;
149 = 0200 VDSLST = $0200
150 = 0202 VPRCED = $0202
151 = 0204 VINTER = $0204
152 = 0206 VBREAK = $0206
153 = 0208 VKEYBD = $0208
154 = 020A VSERIN = $020A
155 = 020C VSEROR = $020C
156 = 020E VSEROC = $020E
157 = 0210 VTIMR1 = $0210
158 = 0212 VTIMR2 = $0212
159 = 0214 VTIMR4 = $0214
160 = 0216 VIMIRQ = $0216
161 = 0218 CDTMV1 = $0218
162 = 021A CDTMV2 = $021A
163 = 021C CDTMV3 = $021C
164 = 021E CDTMV4 = $021E
165 = 0220 CDTMV5 = $0220
166 = 0222 VVBLKI = $0222
167 = 0224 VVBLKD = $0224
168 = 0226 CDTMA1 = $0226
169 = 0228 CDTMA2 = $0228
170 = 022A CDTMF3 = $022A
171 = 022B SRTIMR = $022B
172 = 022C CDTMF4 = $022C
173 = 022D INTEMP = $022D
174 = 022E CDTMF5 = $022E
175 = 022F SDMCTL = $022F
176 = 0230 SDLSTL = $0230
177 = 0231 SDLSTH = $0231
178 = 0232 SSKCTL = $0232
179 = 0233 SPARE = $0233
180 = 0234 LPENH = $0234
181 = 0235 LPENV = $0235
182 = 0236 BRKKY = $0236
183 = 0238 VPIRQ = $0238
184 = 023A CDEVIC = $023A
185 = 023B CCOMND = $023B
186 = 023C CAUX1 = $023C
187 = 023D CAUX2 = $023D
188 = 023E TMPSIO = $023E
189 = 023F ERRFLG = $023F
190 = 0240 DFLAGS = $0240
191 = 0241 DBSECT = $0241
192 = 0242 BOOTAD = $0242
193 = 0244 COLDST = $0244
194 = 0245 RECLEN = $0245
195 = 0246 DSKTIM = $0246
196 = 0247 PDVMSK = $0247
197 = 0248 SHPDVS = $0248
198 = 0249 PDMSK = $0249
199 = 024A RELADR = $024A
200 = 024C PPTMPA = $024C
201 = 024D PPTMPX = $024D
202 = 026B CHSALT = $026B
203 = 026C VSFLAG = $026C
204 = 026D KEYDIS = $026D
205 = 026E FINE = $026E
206 = 026F GPRIOR = $026F
207 = 0270 PADDL0 = $0270
208 = 0271 PADDL1 = $0271
209 = 0272 PADDL2 = $0272
210 = 0273 PADDL3 = $0273
211 = 0274 PADDL4 = $0274
212 = 0275 PADDL5 = $0275
213 = 0276 PADDL6 = $0276
214 = 0277 PADDL7 = $0277
215 = 0278 STICK0 = $0278
216 = 0279 STICK1 = $0279
217 = 027A STICK2 = $027A
218 = 027B STICK3 = $027B
219 = 027C PTRIG0 = $027C
220 = 027D PTRIG1 = $027D
221 = 027E PTRIG2 = $027E
222 = 027F PTRIG3 = $027F
223 = 0280 PTRIG4 = $0280
224 = 0281 PTRIG5 = $0281
225 = 0282 PTRIG6 = $0282
226 = 0283 PTRIG7 = $0283
227 = 0284 STRIG0 = $0284
228 = 0285 STRIG1 = $0285
229 = 0286 STRIG2 = $0286
230 = 0287 STRIG3 = $0287
231 = 0288 HIBYTE = $0288
232 = 0289 WMODE = $0289
233 = 028A BLIM = $028A
234 = 028B IMASK = $028B
235 = 028C JVECK = $028C
236 = 028E NEWADR = $028E
237 = 0290 TXTROW = $0290
238 = 0291 TXTCOL = $0291
239 = 0293 TINDEX = $0293
240 = 0294 TXTMSC = $0294
241 = 0296 TXTOLD = $0296
242 = 029C CRETRY = $029C
243 = 029D HOLD3 = $029D
244 = 029E SUBTMP = $029E
245 = 029F HOLD2 = $029F
246 = 02A0 DMASK = $02A0
247 = 02A1 TMPLBT = $02A1
248 = 02A2 ESCFLG = $02A2
249 = 02A3 TABMAP = $02A3
250 = 02B2 LOGMAP = $02B2
251 = 02B6 INVFLG = $02B6
252 = 02B7 FILFLG = $02B7
253 = 02B8 TMPROW = $02B8
254 = 02B9 TMPCOL = $02B9
255 = 02BB SCRFLG = $02BB
256 = 02BC HOLD4 = $02BC
257 = 02BD DRETRY = $02BD
258 = 02BE SHFLOC = $02BE
259 = 02BF BOTSCR = $02BF
260 = 02C0 PCOLR0 = $02C0
261 = 02C1 PCOLR1 = $02C1
262 = 02C2 PCOLR2 = $02C2
263 = 02C3 PCOLR3 = $02C3
264 = 02C4 COLOR0 = $02C4
265 = 02C5 COLOR1 = $02C5
266 = 02C6 COLOR2 = $02C6
267 = 02C7 COLOR3 = $02C7
268 = 02C8 COLOR4 = $02C8
269 = 02C9 RUNADR = $02C9
270 = 02CB HIUSED = $02CB
271 = 02CD ZHIUSE = $02CD
272 = 02CF GBYTEA = $02CF
273 = 02D1 LOADAD = $02D1
274 = 02D3 ZLOADA = $02D3
275 = 02D5 DSCTLN = $02D5
276 = 02D7 ACMISR = $02D7
277 = 02D9 KRPDER = $02D9
278 = 02DA KEYREP = $02DA
279 = 02DB NOCLIK = $02DB
280 = 02DC HELPFG = $02DC
281 = 02DD DMASAV = $02DD
282 = 02DE PBPNT = $02DE
283 = 02DF PBUFSZ = $02DF
284 = 02E0 RUNAD = $02E0
285 = 02E2 INITAD = $02E2
286 = 02E4 RAMSIZ = $02E4
287 = 02E5 MEMTOP = $02E5
288 = 02E7 MEMLO = $02E7
289 = 02E9 HNDLOD = $02E9
290 = 02EA DVSTAT = $02EA
291 = 02EE CBAUDL = $02EE
292 = 02EF CBAUDH = $02EF
293 = 02F0 CRSINH = $02F0
294 = 02F1 KEYDEL = $02F1
295 = 02F2 CH1 = $02F2
296 = 02F3 CHACT = $02F3
297 = 02F4 CHBAS = $02F4
298 = 02F5 NEWROW = $02F5
299 = 02F6 NEWCOL = $02F6
300 = 02F8 ROWINC = $02F8
301 = 02F9 COLINC = $02F9
302 = 02FA CHAR = $02FA
303 = 02FB ATACHR = $02FB
304 = 02FC CH = $02FC
305 = 02FD FILDAT = $02FD
306 = 02FE DSPFLG = $02FE
307 = 02FF SSFLAG = $02FF
308 ;
309 ; PAGE 3
310 ;
311 = 0300 DDEVIC = $0300
312 = 0301 DUNIT = $0301
313 = 0302 DCOMND = $0302
314 = 0303 DSTATS = $0303
315 = 0304 DBUFLO = $0304
316 = 0305 DBUFHI = $0305
317 = 0306 DTIMLO = $0306
318 = 0307 DUNUSE = $0307
319 = 0308 DBYTLO = $0308
320 = 0309 DBYTHI = $0309
321 = 030A DAUX1 = $030A
322 = 030B DAUX2 = $030B
323 = 030C TIMER1 = $030C
324 = 030E ADDCOR = $030E
325 = 030F CASFLG = $030F
326 = 0310 TIMER2 = $0310
327 = 0312 TEMP1 = $0312
328 = 0314 TEMP2 = $0314
329 = 0315 TEMP3 = $0315
330 = 0316 SAVIO = $0316
331 = 0317 TIMFLG = $0317
332 = 0318 STACKP = $0318
333 = 0319 TSTAT = $0319
334 = 031A HATABS = $031A
335 = 033D PUPBT1 = $033D
336 = 033E PUPBT2 = $033E
337 = 033F PUPBT3 = $033F
338 = 0340 IOCB0 = $0340
339 = 0350 IOCB1 = $0350
340 = 0360 IOCB2 = $0360
341 = 0370 IOCB3 = $0370
342 = 0380 IOCB4 = $0380
343 = 0390 IOCB5 = $0390
344 = 03A0 IOCB6 = $03A0
345 = 03B0 IOCB7 = $03B0
346 = 03C0 PRNBUF = $03C0
347 = 03E8 SUPERF = $03E8
348 = 03E9 CKEY = $03E9
349 = 03EA CASSBT = $03EA
350 = 03EB CARTCK = $03EB
351 = 03EC DERRF = $03EC
352 = 03ED ACMVAR = $03ED
353 = 03F8 BASICF = $03F8
354 = 03F9 MINTLK = $03F9
355 = 03FA GINTLK = $03FA
356 = 03FB CHLINK = $03FB
357 = 03FD CASBUF = $03FD
358 ;
359 ; HARDWARE REGISTERS
360 ;
361 ; GTIA
362 ;
363 = D000 M0PF = $D000
364 = D000 HPOSP0 = $D000
365 = D001 M1PF = $D001
366 = D001 HPOSP1 = $D001
367 = D002 M2PF = $D002
368 = D002 HPOSP2 = $D002
369 = D003 M3PF = $D003
370 = D003 HPOSP3 = $D003
371 = D004 P0PF = $D004
372 = D004 HPOSM0 = $D004
373 = D005 P1PF = $D005
374 = D005 HPOSM1 = $D005
375 = D006 P2PF = $D006
376 = D006 HPOSM2 = $D006
377 = D007 P3PF = $D007
378 = D007 HPOSM3 = $D007
379 = D008 M0PL = $D008
380 = D008 SIZEP0 = $D008
381 = D009 M1PL = $D009
382 = D009 SIZEP1 = $D009
383 = D00A M2PL = $D00A
384 = D00A SIZEP2 = $D00A
385 = D00B M3PL = $D00B
386 = D00B SIZEP3 = $D00B
387 = D00C P0PL = $D00C
388 = D00C SIZEM = $D00C
389 = D00D P1PL = $D00D
390 = D00D GRAFP0 = $D00D
391 = D00E P2PL = $D00E
392 = D00E GRAFP1 = $D00E
393 = D00F P3PL = $D00F
394 = D00F GRAFP2 = $D00F
395 = D010 TRIG0 = $D010
396 = D010 GRAFP3 = $D010
397 = D011 TRIG1 = $D011
398 = D011 GRAFM = $D011
399 = D012 TRIG2 = $D012
400 = D012 COLPM0 = $D012
401 = D013 TRIG3 = $D013
402 = D013 COLPM1 = $D013
403 = D014 PAL = $D014
404 = D014 COLPM2 = $D014
405 = D015 COLPM3 = $D015
406 = D016 COLPF0 = $D016
407 = D017 COLPF1 = $D017
408 = D018 COLPF2 = $D018
409 = D019 COLPF3 = $D019
410 = D01A COLBK = $D01A
411 = D01B PRIOR = $D01B
412 = D01C VDELAY = $D01C
413 = D01D GRACTL = $D01D
414 = D01E HITCLR = $D01E
415 = D01F CONSOL = $D01F
416 ;
417 ; POKEY
418 ;
419 = D200 POT0 = $D200
420 = D200 AUDF1 = $D200
421 = D201 POT1 = $D201
422 = D201 AUDC1 = $D201
423 = D202 POT2 = $D202
424 = D202 AUDF2 = $D202
425 = D203 POT3 = $D203
426 = D203 AUDC2 = $D203
427 = D204 POT4 = $D204
428 = D204 AUDF3 = $D204
429 = D205 POT5 = $D205
430 = D205 AUDC3 = $D205
431 = D206 POT6 = $D206
432 = D206 AUDF4 = $D206
433 = D207 POT7 = $D207
434 = D207 AUDC4 = $D207
435 = D208 ALLPOT = $D208
436 = D208 AUDCTL = $D208
437 = D209 KBCODE = $D209
438 = D209 STIMER = $D209
439 = D20A RANDOM = $D20A
440 = D20A SKREST = $D20A
441 = D20B POTGO = $D20B
442 = D20D SERIN = $D20D
443 = D20D SEROUT = $D20D
444 = D20E IRQST = $D20E
445 = D20E IRQEN = $D20E
446 = D20F SKSTAT = $D20F
447 = D20F SKCTL = $D20F
448 ;
449 ; PIA
450 ;
451 = D300 PORTA = $D300
452 = D301 PORTB = $D301
453 = D302 PACTL = $D302
454 = D303 PBCTL = $D303
455 ;
456 ; ANTIC
457 ;
458 = D400 DMACTL = $D400
459 = D401 CHACTL = $D401
460 = D402 DLISTL = $D402
461 = D403 DLISTH = $D403
462 = D404 HSCROL = $D404
463 = D405 VSCROL = $D405
464 = D407 PMBASE = $D407
465 = D409 CHBASE = $D409
466 = D40A WSYNC = $D40A
467 = D40B VCOUNT = $D40B
468 = D40C PENH = $D40C
469 = D40D PENV = $D40D
470 = D40E NMIEN = $D40E
471 = D40F NMIST = $D40F
472 = D40F NMIRES = $D40F
473 ;
474 ; FLOATING POINT ROUTINES
475 ;
476 = D800 AFP = $D800
477 = D8E6 FASC = $D8E6
478 = D9AA IFP = $D9AA
479 = D9D2 FPI = $D9D2
480 = DA44 ZFR0 = $DA44
481 = DA46 ZF1 = $DA46
482 = DA60 FSUB = $DA60
483 = DA66 FADD = $DA66
484 = DADB FMUL = $DADB
485 = DB28 FDIV = $DB28
486 = DD40 PLYEVL = $DD40
487 = DD89 FLD0R = $DD89
488 = DD8D FLD0P = $DD8D
489 = DD98 FLD1R = $DD98
490 = DD9C FLD1P = $DD9C
491 = DDA7 FSTOR = $DDA7
492 = DDAB FSTOP = $DDAB
493 = DDB6 FMOVE = $DDB6
494 = DDC0 EXP = $DDC0
495 = DDCC EXP10 = $DDCC
496 = DECD LOG = $DECD
497 = DED1 LOG10 = $DED1
498 ;
499 ; ROM VECTORS
500 ;
501 = E453 DSKINV = $E453
502 = E456 CIOV = $E456
503 = E459 SIOV = $E459
504 = E45C SETVBV = $E45C
505 = E45F SYSVBV = $E45F
506 = E462 XITVBV = $E462
507 = E465 SIOINV = $E465
508 = E468 SENDEV = $E468
509 = E46B INTINV = $E46B
510 = E46E CIOINV = $E46E
511 = E471 SELFSV = $E471
512 = E474 WARMSV = $E474
513 = E477 COLDSV = $E477
514 = E47A RBLOKV = $E47A
515 = E47D CSOPIV = $E47D
516 = E480 PUPDIV = $E480
517 = E483 SELFTSV = $E483
518 = E486 PENTV = $E486
519 = E489 PHUNLV = $E489
520 = E48C PHINIV = $E48C
521 = E48F GPDVV = $E48F
5 = 0090 start = $90
6 = 008F ball_x = start-1
7 = 008E ball_y = start-2
8 = 008D rightpad=start-3
9 = 008C leftpad=start-4
10 = 008B digitleft=start-5
11 = 008A digitright=start-6
12
13 = D000 NET_PLR_POS = HPOSP0
14 = D012 NET_PLR_COL = COLPM0
15 = D00D NET_PLR_GRF = GRAFP0
16 = D001 RIGHT_PLR_POS = HPOSP1
17 = D00E RIGHT_PLR_GRF = GRAFP1
18 = D002 LEFT_PLR_POS = HPOSP2
19 = D00F LEFT_PLR_GRF = GRAFP2
20 = D003 BALL_XPOS = HPOSP3
21 = D00F BALL_COL = P3PL
22 = D010 BALL_GRF = GRAFP3
23 = 001B TOP_BAND = 27
24 = 0067 BOTTOM_BAND = 103
25
26 startc:
27
28 FFFF> 4000-414F> 78 sei
29 4001 A9 00 8D 00 D4 mva #0 DMACTL
30 4006 A9 A8 8D 01 D2 mva #$a8 AUDC1
31
32 400B A0 03 ldy #3
33 ;tax
34 400D colinit:
35 400D B9 2A 41 lda positions,y
36 4010 99 00 D0 sta HPOSP0,y
37 4013 A9 38 lda #$38
38 4015 99 12 D0 sta COLPM0,y
39 4018 99 8C 00 sta leftpad,y
40 401B 88 dey
41 401C 10 EF bpl colinit
42 401E 20 EF 40 jsr zerografp
43 4021 gloop:
44 4021 digit:
45 .print "After init: ", *
45 After init: $4021
46 4021 A9 0F lda #$f
47 .ifdef DIG
48 4023 CD 0B D4 D0 FB cmp:rne VCOUNT
49 .endif
50 .ifdef DIG
51 .print "Digits start: ", *
51 Digits start: $4028
52 4028 20 EF 40 jsr zerografp
53
54 402B A6 8B ldx digitleft ; digit 3
55 402D A4 8A ldy digitright
56 402F BD 2E 41 lda digits,x
57 4032 AA tax
58 4033 B9 2E 41 lda digits,y
59 4036 A8 tay
60 4037 again
61 4037 20 FA 40 jsr digline
62 403A AD 0B D4 lda VCOUNT
63 403D C9 18 cmp #$18
64 403F 90 F6 bcc again
65 .print "Digits stop: ", *
65 Digits stop: $4041
66 .else
67 lda #$18
68 cmp:rne VCOUNT
69
70 .endif
71 4041 20 EF 40 jsr zerografp
72
73 4044 20 DE 40 jsr HORIZ_LINE
74 4047 field:
75 4047 AD 0B D4 lda VCOUNT
76 404A C9 69 cmp #BOTTOM_BAND+2
77 404C F0 2C beq lastline
78
79 404E 6A ror
80 404F 29 01 and #1
81 4051 A8 tay
82 4052 B9 48 CC lda graf,y
83 4055 8D 0A D4 sta WSYNC
84 4058 8D 0D D0 sta NET_PLR_GRF
85
86 405B AD 0B D4 LDA VCOUNT
87 405E A0 1C ldy #$1c
88 4060 20 14 41 jsr drawpads
89 4063 A0 00 ldy #0
90 4065 8C 00 D2 sty AUDF1
91 4068 38 sec
92 4069 E9 02 sbc #2
93 406B 8D 0A D4 sta WSYNC
94 406E 20 22 41 jsr drawball
95 4071 38 sec
96 4072 E9 0A sbc #10
97 4074 20 14 41 jsr drawpads
98
99
100 4077 4C 47 40 jmp field
101
102 407A lastline:
103 407A 20 E1 40 jsr HORIZ_LINE+3
104 407D 8D 10 D0 sta BALL_GRF
105
106 4080 logic:
107 4080 A5 8E lda ball_y
108 4082 C9 1B cmp #TOP_BAND
109 4084 90 04 bcc chgy
110 4086 C9 67 cmp #BOTTOM_BAND
111 4088 90 0B bcc skip
112 408A chgy:
113 408A 8D 00 D2 sta AUDF1
114 408D AD 95 40 lda skip
115 4090 49 20 eor #$20
116 4092 8D 95 40 sta skip
117 4095 skip:
118 4095 E6 8E inc ball_y
119 4097 chkcolission:
120 4097 AD 0F D0 lda BALL_COL ; 1 - prawy; 2 - lewy
121 409A 4A lsr
122 409B F0 0E beq nocollision
123 409D A9 E6 lda #$E6
124 409F 24 8F bit ball_x
125 40A1 50 02 A9 C6 svc:lda #$C6
126 40A5 8D AB 40 sta incplace
127 40A8 8D 00 D2 sta AUDF1
128 40AB nocollision:
129
130 40AB incplace
131 40AB E6 8F inc ball_x
132 40AD D0 02 E6 8B sne:inc digitleft
133
134 40B1 A2 01 ldx #1
135 40B3 AC 00 D3 ldy PORTA
136 40B6 chgpads
137 40B6 98 tya
138 40B7 4A lsr
139 40B8 90 02 F6 8C scc:inc leftpad,x
140 40BC 4A lsr
141 40BD 90 02 D6 8C scc:dec leftpad,x
142 40C1 4A lsr
143 40C2 4A lsr
144 40C3 A8 tay
145 40C4 B5 8C lda leftpad,x
146 40C6 38 sec
147 40C7 E9 1C sbc #28
148 40C9 29 3F and #$3f
149 40CB 18 clc
150 40CC 69 1C adc #28
151 40CE 95 8C sta leftpad,x
152 40D0 CA dex
153 40D1 10 E3 bpl chgpads
154
155
156 40D3 A5 8F lda ball_x
157 40D5 8D 03 D0 sta BALL_XPOS
158 40D8 8D 1E D0 sta HITCLR
159
160 40DB 4C 21 40 jmp gloop
161 40DE HORIZ_LINE
162 40DE 20 08 41 jsr WAIT3LINES
163 40E1 A9 0F lda #$0f
164 40E3 8D 1A D0 sta COLBK
165
166 40E6 20 08 41 jsr WAIT3LINES
167 40E9 A9 00 lda #0
168 40EB 8D 1A D0 sta COLBK
169 40EE 60 rts
170 40EF zerografp
171 40EF A0 03 ldy #3
172 40F1 A9 00 lda #0
173 40F3 zero:
174 40F3 99 0D D0 sta GRAFP0,y
175 ;sta SIZEP0,y
176 40F6 88 dey
177 40F7 10 FA bpl zero
178 40F9 60 rts
179 .ifdef DIG
180 40FA digline:
181 40FA BD 38 41 lda digdef,x
182 40FD 8D 0E D0 sta RIGHT_PLR_GRF
183 4100 B9 38 41 lda digdef,y
184 4103 8D 0F D0 sta LEFT_PLR_GRF
185 4106 E8 inx
186 4107 C8 iny
187 .endif
188 4108 WAIT3LINES
189 4108 A9 01 lda #1
190 ; jmp WAIT3LINES
191 410A WAITLINES
192 410A 18 clc
193 410B 6D 0B D4 adc VCOUNT
194 410E WAITFORLINE
195 410E CD 0B D4 B0 FB cmp:rcs VCOUNT
196 ; sty COLBK
197 4113 60 rts
198 4114 drawpads:
199 4114 C5 8D cmp rightpad
200 4116 D0 03 8C 0E D0 sne:sty RIGHT_PLR_GRF
201 411B C5 8C cmp leftpad
202 411D D0 03 8C 0F D0 sne:sty LEFT_PLR_GRF
203 4122 drawball:
204 4122 C5 8E cmp ball_y
205 4124 D0 03 8C 10 D0 sne:sty BALL_GRF
206 4129 60 rts
207 .print "Digits: ", *
207 Digits: $412A
208 = CC48 graf = $CC48
209 ;; graf:
210 ;; .by 0, $e0
211 412A positions
212 412A 80 C4 34 40 .db $80,$c4,$34,$40
213 .ifdef DIG
214 412E digits:
215 ; -------------------
216 412E 0E 13 04 02 10 00 + .by d0-digdef,d1-digdef,d2-digdef,d3-digdef,d4-digdef,d5-digdef,d6-digdef,d7-digdef,d8-digdef,d9-digdef
217 ;------
218 4138 digdef:
219 4138 FF d5 .BY %11111111
220 4139 E0 .BY %11100000
221 413A FF d3 .BY %11111111
222 413B 07 .BY %00000111
223 413C FF d2 .BY %11111111
224 413D 07 .BY %00000111
225 413E FF d6 .BY %11111111
226 413F E0 .BY %11100000
227 4140 FF d8 .BY %11111111
228 4141 E7 .BY %11100111
229 4142 FF d9 .BY %11111111
230 4143 E7 .BY %11100111
231 4144 FF .BY %11111111
232 4145 07 .BY %00000111
233 4146 FF d0 .BY %11111111
234 4147 E7 .BY %11100111
235 4148 E7 d4 .BY %11100111
236 4149 E7 .BY %11100111
237 414A FF d7 .BY %11111111
238 414B 07 d1 .BY %00000111
239 414C 07 .BY %00000111
240 414D 07 .BY %00000111
241 414E 07 .BY %00000111
242 414F 07 .BY %00000111
243 .endif
244 .print * - startc
244 $0150
245
246 02E0-02E1> 00 40 RUN startc
247