OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [Projects/] [opencores.org/] [Mos6502/] [sw/] [Prog/] [Prog.asm] - Blame information for rev 131

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 131 jt_eaton
 
2
 
3
 include ../io_module/io_module.asm
4
 
5
 
6
 
7
 
8
             * = $f000  ; assemble at $f000
9
               code
10
 
11
.start             nop
12
                   lda #$00
13
                   sta $04
14
                   sta $05
15
                   sta $06
16
                   sta $07
17
                   lda #$00
18
                   sta io_base+io_stat
19
                   lda io_base+io_stat
20
                   lda #$01
21
                   sta io_base+io_stat
22
                   lda io_base+io_stat
23
                   jmp .lab_00
24
                   lda #$00
25
                   jmp .lab_100
26
.lab_00            lda #$01
27
                   sta io_base+io_stat
28
                   lda io_base+io_stat
29
                   lda #$02
30
                   sta io_base+io_stat
31
                   lda io_base+io_stat
32
                   clc
33
                   bcc .lab_01
34
                   lda #$01
35
                   jmp .lab_100
36
.lab_01            lda #$03
37
                   sta io_base+io_stat
38
                   lda io_base+io_stat
39
                   sec
40
                   bcc .lab_02
41
                   jmp .lab_025
42
.lab_02            lda #$02
43
                   jmp .lab_100
44
.lab_025           lda #$04
45
                   sta io_base+io_stat
46
                   lda io_base+io_stat
47
                   sec
48
                   bcs .lab_03
49
                   lda #$01
50
                   jmp .lab_100
51
 
52
.lab_03            clc
53
                   bcs .lab_04
54
                   jmp .lab_045
55
.lab_04            lda #$02
56
                   jmp .lab_100
57
.lab_045           lda #$05
58
                   sta io_base+io_stat
59
                   lda #$05
60
                   cmp #$04
61
                   beq .lab_05
62
                   cmp #$05
63
                   beq .lab_06
64
.lab_05            lda #$03
65
                   jmp .lab_100
66
.lab_06            lda #$06
67
                   sta io_base+io_stat
68
                   lda #$c4
69
                   cmp #$e4
70
                   bne .lab_07
71
                   lda #$04
72
                   jmp .lab_100
73
.lab_07            cmp #$C4
74
                   bne .lab_08
75
                   jmp .lab_085
76
.lab_08            lda #$05
77
                   jmp .lab_100
78
.lab_085           lda #$07
79
                   sta io_base+io_stat
80
                   ldx #$42
81
                   cpx #$32
82
                   beq  .lab_09
83
                   cpx #$42
84
                   beq .lab_10
85
.lab_09            lda #$06
86
                   jmp .lab_100
87
.lab_10            lda #$08
88
                   sta io_base+io_stat
89
                   ldy #$C3
90
                   cpy #$D3
91
                   beq .lab_11
92
                   cpy #$C3
93
                   beq  .lab_12
94
.lab_11            lda #$07
95
                   jmp  .lab_100
96
.lab_12            lda #$09
97
                   sta io_base+io_stat
98
                   ldx #$00
99
                   dex
100
                   cpx #$FF
101
                   beq .lab_13
102
                   lda #$08
103
                   jmp .lab_100
104
.lab_13            lda #$0A
105
                   sta io_base+io_stat
106
                   ldy #$00
107
                   dey
108
                   cpy #$FF
109
                   beq .lab_14
110
                   lda #$09
111
                   jmp .lab_100
112
.lab_14            lda #$0B
113
                   sta io_base+io_stat
114
                   ldx #$0F
115
                   inx
116
                   cpx #$10
117
                   beq  .lab_15
118
                   lda #$10
119
                   jmp .lab_100
120
.lab_15            lda #$0C
121
                   sta io_base+io_stat
122
                   ldy #$7F
123
                   iny
124
                   cpy #$80
125
                   beq  .lab_16
126
                   lda #$11
127
                   jmp .lab_100
128
.lab_16            lda #$0D
129
                   sta io_base+io_stat
130
                   lda #$ED
131
                   jsr  .lab_165
132
                   cmp #$42
133
                   beq  .lab_17
134
                   lda #$12
135
                   jmp .lab_100
136
.lab_165           lda #$42
137
                   rts
138
.lab_17            lda #$0E
139
                   sta io_base+io_stat
140
                   lda #$35
141
                   tax
142
                   cpx #$35
143
                   beq .lab_18
144
                   lda #$12
145
                   jmp .lab_100
146
.lab_18            lda #$0F
147
                   sta io_base+io_stat
148
                   lda #$76
149
                   tay
150
                   cpy #$76
151
                   beq  .lab_19
152
                   lda #$13
153
                   jmp .lab_100
154
.lab_19            lda #$10
155
                   sta io_base+io_stat
156
                   ldx #$52
157
                   txa
158
                   cmp #$52
159
                   beq  .lab_20
160
                   lda #$14
161
                   jmp .lab_100
162
.lab_20            lda #$11
163
                   sta io_base+io_stat
164
                   ldy #$52
165
                   tya
166
                   cmp #$52
167
                   beq  .lab_21
168
                   lda #$15
169
                   jmp .lab_100
170
.lab_21            lda #$12
171
                   sta io_base+io_stat
172
                   clc
173
                   lda #$23
174
                   adc #$45
175
                   cmp #$68
176
                   beq  .lab_22
177
                   lda #$16
178
                   jmp .lab_100
179
.lab_22            sec
180
                   lda #$42
181
                   adc #$63
182
                   cmp #$A6
183
                   beq  .lab_23
184
                   lda #$17
185
                   jmp .lab_100
186
.lab_23            lda #$13
187
                   sta io_base+io_stat
188
                   lda #$36
189
                   and #$f0
190
                   cmp #$30
191
                   beq  .lab_24
192
                   lda #$18
193
                   jmp .lab_100
194
.lab_24            lda #$14
195
                   sta io_base+io_stat
196
                   clc
197
                   lda #$36
198
                   asl a
199
                   cmp #$6C
200
                   beq  .lab_25
201
                   lda #$19
202
                   jmp .lab_100
203
.lab_25            lda #$15
204
                   sta io_base+io_stat
205
                   lda #$89
206
                   eor #$96
207
                   cmp #$1F
208
                   beq  .lab_26
209
                   lda #$20
210
                   jmp .lab_100
211
.lab_26            lda #$16
212
                   sta io_base+io_stat
213
                   clc
214
                   lda #$52
215
                   lsr a
216
                   cmp #$29
217
                   beq  .lab_27
218
                   lda #$21
219
                   jmp .lab_100
220
.lab_27            lda #$17
221
                   sta io_base+io_stat
222
                   lda #$B6
223
                   ora #$4D
224
                   cmp #$FF
225
                   beq  .lab_28
226
                   lda #$22
227
                   jmp .lab_100
228
.lab_28            lda #$18
229
                   sta io_base+io_stat
230
                   clc
231
                   lda #$23
232
                   rol a
233
                   cmp #$46
234
                   beq  .lab_29
235
                   lda #$23
236
                   jmp .lab_100
237
.lab_29            sec
238
                   lda #$42
239
                   rol a
240
                   cmp #$85
241
                   beq  .lab_30
242
                   lda #$24
243
                   jmp .lab_100
244
.lab_30            lda #$19
245
                   sta io_base+io_stat
246
                   clc
247
                   lda #$23
248
                   ror a
249
                   cmp #$11
250
                   beq  .lab_31
251
                   lda #$25
252
                   jmp .lab_100
253
.lab_31            sec
254
                   lda #$42
255
                   ror a
256
                   cmp #$A1
257
                   beq  .lab_32
258
                   lda #$26
259
                   jmp .lab_100
260
.lab_32            lda #$20
261
                   sta io_base+io_stat
262
                   sec
263
                   lda #$86
264
                   sbc #$45
265
                   cmp #$41
266
                   beq  .lab_33
267
                   lda #$27
268
                   jmp .lab_100
269
.lab_33            clc
270
                   lda #$89
271
                   sbc #$23
272
                   cmp #$65
273
                   beq  .lab_34
274
                   lda #$28
275
                   jmp .lab_100
276
.lab_34            lda #$21
277
                   sta io_base+io_stat
278
                   lda #$42
279
                   sta $0200
280
                   lda #$9F
281
                   sta $0201
282
                   lda $0200
283
                   cmp #$42
284
                   beq  .lab_35
285
                   lda #$29
286
                   jmp .lab_100
287
.lab_35            lda $0201
288
                   cmp #$9F
289
                   beq  .lab_36
290
                   lda #$30
291
                   jmp .lab_100
292
.lab_36            lda #$22
293
                   sta io_base+io_stat
294
                   lda #$94
295
                   sta $0201
296
                   lda #$41
297
                   sta $0200
298
                   lda #$53
299
                   clc
300
                   adc $0200
301
                   cmp $0201
302
                   beq .lab_37
303
                   lda #$31
304
                   jmp .lab_100
305
.lab_37            lda #$8D
306
                   sta $0201
307
                   lda #$98
308
                   sta $0200
309
                   lda #$F4
310
                   sec
311
                   adc $0200
312
                   cmp $0201
313
                   beq  .lab_38
314
                   lda #$32
315
                   jmp .lab_100
316
.lab_38            lda #$23
317
                   sta io_base+io_stat
318
                   ldy #$84
319
                   sty $0201
320
                   ldx #$B4
321
                   stx $0200
322
                   lda #$86
323
                   and $0200
324
                   cmp $0201
325
                   beq  .lab_39
326
                   lda #$33
327
                   jmp .lab_100
328
.lab_39            lda #$24
329
                   sta io_base+io_stat
330
                   ldx #$55
331
                   stx $0200
332
                   asl $0200
333
                   lda $0200
334
                   cmp #$AA
335
                   beq  .lab_40
336
                   lda #$34
337
                   jmp .lab_100
338
.lab_40            lda #$25
339
                   sta io_base+io_stat
340
                   lda #$53
341
                   sta $0200
342
                   lda #$00
343
                   ldx #$53
344
                   cpx $0200
345
                   beq  .lab_41
346
                   lda #$35
347
                   jmp .lab_100
348
.lab_41            lda #$26
349
                   sta io_base+io_stat
350
                   lda #$45
351
                   sta $0200
352
                   lda #$00
353
                   ldy #$45
354
                   cpy $0200
355
                   beq  .lab_42
356
                   lda #$36
357
                   jmp .lab_100
358
.lab_42            lda #$27
359
                   sta io_base+io_stat
360
                   lda #$EF
361
                   sta $0200
362
                   dec $0200
363
                   lda #$EE
364
                   cmp $0200
365
                   beq  .lab_43
366
                   lda #$37
367
                   jmp .lab_100
368
.lab_43            lda #$01
369
                   sta $0200
370
                   dec $0200
371
                   beq  .lab_44
372
                   lda #$38
373
                   jmp .lab_100
374
.lab_44            lda #$28
375
                   sta io_base+io_stat
376
                   lda #$EF
377
                   sta $0200
378
                   inc $0200
379
                   lda #$F0
380
                   cmp $0200
381
                   beq  .lab_45
382
                   lda #$39
383
                   jmp .lab_100
384
.lab_45            lda #$FF
385
                   sta $0200
386
                   inc $0200
387
                   beq  .lab_46
388
                   lda #$40
389
                   jmp .lab_100
390
.lab_46            lda #$29
391
                   sta io_base+io_stat
392
                   ldy #$32
393
                   sty $0201
394
                   ldx #$B4
395
                   stx $0200
396
                   lda #$86
397
                   eor $0200
398
                   cmp $0201
399
                   beq  .lab_47
400
                   lda #$41
401
                   jmp .lab_100
402
.lab_47            lda #$2A
403
                   sta io_base+io_stat
404
                   ldy #$B6
405
                   sty $0201
406
                   ldx #$B4
407
                   stx $0200
408
                   lda #$86
409
                   ora $0200
410
                   cmp $0201
411
                   beq  .lab_48
412
                   lda #$42
413
                   jmp .lab_100
414
.lab_48            lda #$2B
415
                   sta io_base+io_stat
416
                   clc
417
                   ldx #$AA
418
                   stx $0200
419
                   rol $0200
420
                   bcs .lab_49
421
                   lda #$43
422
                   jmp .lab_100
423
.lab_49            lda $0200
424
                   cmp #$54
425
                   beq  .lab_50
426
                   lda #$44
427
                   jmp .lab_100
428
.lab_50            lda #$2C
429
                   sta io_base+io_stat
430
                   clc
431
                   ldx #$55
432
                   stx $0200
433
                   ror $0200
434
                   bcs .lab_51
435
                   lda #$45
436
                   jmp .lab_100
437
.lab_51            lda $0200
438
                   cmp #$2A
439
                   beq  .lab_52
440
                   lda #$46
441
                   jmp .lab_100
442
.lab_52            lda #$2D
443
                   sta io_base+io_stat
444
                   ldx #$96
445
                   stx $0200
446
                   lsr $0200
447
                   lda $0200
448
                   cmp #$4B
449
                   beq  .lab_53
450
                   lda #$47
451
                   jmp .lab_100
452
.lab_53            lda #$2E
453
                   sta io_base+io_stat
454
                   ldx #$42
455
                   stx $0200
456
                   ldx #$9F
457
                   stx $0201
458
                   ldx $0200
459
                   cpx #$42
460
                   beq  .lab_54
461
                   lda #$48
462
                   jmp .lab_100
463
.lab_54            ldx $0201
464
                   cpx #$9F
465
                   beq  .lab_55
466
                   lda #$49
467
                   jmp .lab_100
468
.lab_55            lda #$2F
469
                   sta io_base+io_stat
470
                   ldy #$34
471
                   sty $0200
472
                   ldy #$75
473
                   sty $0201
474
                   ldy $0200
475
                   cpy #$34
476
                   beq  .lab_56
477
                   lda #$4A
478
                   jmp .lab_100
479
.lab_56            ldy $0201
480
                   cpy #$75
481
                   beq  .lab_57
482
                   lda #$4B
483
                   jmp .lab_100
484
.lab_57            lda #$30
485
                   sta io_base+io_stat
486
                   lda #$12
487
                   sta $0201
488
                   lda #$41
489
                   sta $0200
490
                   lda #$53
491
                   sec
492
                   sbc $0200
493
                   cmp $0201
494
                   beq  .lab_58
495
                   lda #$4C
496
                   jmp .lab_100
497
.lab_58            lda #$5B
498
                   sta $0201
499
                   lda #$98
500
                   sta $0200
501
                   lda #$F4
502
                   clc
503
                   sbc $0200
504
                   cmp $0201
505
                   beq  .lab_59
506
                   lda #$4D
507
                   jmp .lab_100
508
.lab_59            lda #$31
509
                   sta io_base+io_stat
510
                   lda #$42
511
                   pha
512
                   lda #$ED
513
                   pha
514
                   lda #$BE
515
                   pha
516
                   lda #$00
517
                   pla
518
                   cmp #$BE
519
                   bne .lab_60
520
                   pla
521
                   cmp #$ED
522
                   bne .lab_60
523
                   pla
524
                   cmp #$42
525
                   bne .lab_60
526
                   jmp  .lab_605
527
.lab_60            lda #$4E
528
                   jmp .lab_100
529
.lab_605           lda #$32
530
                   sta io_base+io_stat
531
                   ldx #$00
532
                   clc
533
                   lda #$03
534
                   sta $0200,X
535
                   adc #$07
536
                   inx
537
                   sta $0200,X
538
                   adc #$07
539
                   inx
540
                   sta $0200,X
541
                   adc #$07
542
                   inx
543
                   sta $0200,X
544
                   adc #$07
545
                   inx
546
                   sta $0200,X
547
                   adc #$07
548
                   inx
549
                   sta $0200,X
550
                   adc #$07
551
                   inx
552
                   sta $0200,X
553
                   ldx #$00
554
                   clc
555
                   lda $0200,X
556
                   cmp #$03
557
                   bne .lab_61
558
                   inx
559
                   lda $0200,X
560
                   cmp #$0A
561
                   bne .lab_61
562
                   inx
563
                   lda $0200,X
564
                   cmp #$11
565
                   bne .lab_61
566
                   inx
567
                   lda $0200,X
568
                   cmp #$18
569
                   bne .lab_61
570
                   inx
571
                   lda $0200,X
572
                   cmp #$1F
573
                   bne .lab_61
574
                   inx
575
                   lda $0200,X
576
                   cmp #$26
577
                   bne .lab_61
578
                   inx
579
                   lda $0200,X
580
                   cmp #$2D
581
                   bne .lab_61
582
                   jmp .lab_615
583
.lab_61            lda #$4F
584
                   jmp .lab_100
585
.lab_615           lda #$33
586
                   sta io_base+io_stat
587
                   ldy #$00
588
                   clc
589
                   lda #$03
590
                   sta $0200,Y
591
                   adc #$07
592
                   iny
593
                   sta $0200,Y
594
                   adc #$07
595
                   iny
596
                   sta $0200,Y
597
                   adc #$07
598
                   iny
599
                   sta $0200,Y
600
                   adc #$07
601
                   iny
602
                   sta $0200,Y
603
                   adc #$07
604
                   iny
605
                   sta $0200,Y
606
                   adc #$07
607
                   iny
608
                   sta $0200,Y
609
                   ldy #$00
610
                   clc
611
                   lda $0200,Y
612
                   cmp #$03
613
                   bne .lab_62
614
                   iny
615
                   lda $0200,Y
616
                   cmp #$0A
617
                   bne .lab_62
618
                   iny
619
                   lda $0200,Y
620
                   cmp #$11
621
                   bne .lab_62
622
                   iny
623
                   lda $0200,Y
624
                   cmp #$18
625
                   bne .lab_62
626
                   iny
627
                   lda $0200,Y
628
                   cmp #$1F
629
                   bne .lab_62
630
                   iny
631
                   lda $0200,Y
632
                   cmp #$26
633
                   bne .lab_62
634
                   iny
635
                   lda $0200,Y
636
                   cmp #$2D
637
                   bne .lab_62
638
                   jmp .lab_625
639
.lab_62            lda #$50
640
                   jmp .lab_100
641
.lab_625           lda #$34
642
                   sta io_base+io_stat
643
                   lda #$52
644
                   sta $0200
645
                   lda #$24
646
                   sta $0201
647
                   lda #$78
648
                   sta $0202
649
                   lda #$00
650
                   ldx #$00
651
                   clc
652
                   adc $0200,X
653
                   clc
654
                   inx
655
                   adc $0200,X
656
                   clc
657
                   inx
658
                   adc $0200,X
659
                   cmp #$EE
660
                   beq .lab_63
661
                   lda #$51
662
                   jmp .lab_100
663
.lab_63            lda #$35
664
                   sta io_base+io_stat
665
                   lda #$68
666
                   sta $0200
667
                   lda #$13
668
                   sta $0201
669
                   lda #$95
670
                   sta $0202
671
                   lda #$00
672
                   ldy #$00
673
                   clc
674
                   adc $0200,Y
675
                   clc
676
                   iny
677
                   adc $0200,Y
678
                   clc
679
                   iny
680
                   adc $0200,Y
681
                   cmp #$10
682
                   beq  .lab_64
683
                   lda #$52
684
                   jmp .lab_100
685
.lab_64            lda #$36
686
                   sta io_base+io_stat
687
                   lda #$34
688
                   sta $0200
689
                   lda #$54
690
                   sta $0201
691
                   lda #$97
692
                   sta $0202
693
                   lda #$FF
694
                   ldy #$00
695
                   and $0200,Y
696
                   iny
697
                   and $0200,Y
698
                   iny
699
                   and $0200,Y
700
                   cmp #$14
701
                   beq .lab_65
702
                   lda #$53
703
                   jmp .lab_100
704
.lab_65            lda #$37
705
                   sta io_base+io_stat
706
                   lda #$34
707
                   sta $0200
708
                   lda #$54
709
                   sta $0201
710
                   lda #$97
711
                   sta $0202
712
                   lda #$FF
713
                   ldx #$00
714
                   and $0200,X
715
                   inx
716
                   and $0200,X
717
                   inx
718
                   and $0200,X
719
                   cmp #$14
720
                   beq .lab_66
721
                   lda #$54
722
                   jmp .lab_100
723
.lab_66            lda #$38
724
                   sta io_base+io_stat
725
                   lda #$64
726
                   sta $00
727
                   lda #$39
728
                   clc
729
                   adc $00
730
                   cmp #$9D
731
                   beq  .lab_67
732
                   lda #$55
733
                   jmp .lab_100
734
.lab_67            lda #$39
735
                   sta io_base+io_stat
736
                   lda #$95
737
                   sta $00
738
                   lda #$76
739
                   sta $01
740
                   lda #$45
741
                   sta $02
742
                   ldx #$00
743
                   lda #$00
744
                   clc
745
                   adc  $00,X
746
                   inx
747
                   clc
748
                   adc $00,X
749
                   inx
750
                   clc
751
                   adc $00,X
752
                   cmp #$50
753
                   beq  .lab_68
754
                   lda #$56
755
                   jmp .lab_100
756
.lab_68            lda #$3A
757
                   sta io_base+io_stat
758
                   lda #$64
759
                   sta $00
760
                   lda #$39
761
                   and $00
762
                   cmp #$20
763
                   beq  .lab_69
764
                   lda #$57
765
                   jmp .lab_100
766
.lab_69            lda #$3B
767
                   sta io_base+io_stat
768
                   lda #$95
769
                   sta $00
770
                   lda #$76
771
                   sta $01
772
                   lda #$45
773
                   sta $02
774
                   ldx #$00
775
                   lda #$FF
776
                   and $00,X
777
                   inx
778
                   and $00,X
779
                   inx
780
                   and $00,X
781
                   cmp #$04
782
                   beq  .lab_70
783
                   lda #$58
784
                   jmp .lab_100
785
.lab_70            lda #$3C
786
                   sta io_base+io_stat
787
                   lda #$97
788
                   sta $0200
789
                   lda #$78
790
                   sta $0201
791
                   lda #$45
792
                   sta $0202
793
                   ldx #$00
794
                   lda #$97
795
                   cmp $0200,X
796
                   bne .lab_71
797
                   lda #$78
798
                   inx
799
                   cmp $0200,X
800
                   bne .lab_71
801
                   lda #$45
802
                   inx
803
                   cmp $0200,X
804
                   bne .lab_71
805
                   jmp .lab_715
806
.lab_71            lda #$59
807
                   jmp .lab_100
808
.lab_715           lda #$3D
809
                   sta io_base+io_stat
810
                   lda #$97
811
                   sta $0200
812
                   lda #$78
813
                   sta $0201
814
                   lda #$45
815
                   sta $0202
816
                   ldy #$00
817
                   lda #$97
818
                   cmp  $0200,Y
819
                   bne .lab_72
820
                   lda #$78
821
                   iny
822
                   cmp $0200,Y
823
                   bne .lab_72
824
                   lda #$45
825
                   iny
826
                   cmp $0200,Y
827
                   bne .lab_72
828
                   jmp .lab_725
829
.lab_72            lda #$5A
830
                   jmp .lab_100
831
.lab_725           lda #$3E
832
                   sta io_base+io_stat
833
                   lda #$97
834
                   sta $0200
835
                   lda #$78
836
                   sta $0201
837
                   lda #$45
838
                   sta $0202
839
                   ldx #$00
840
                   lda #$97
841
                   cmp $0200,X
842
                   bne .lab_73
843
                   lda #$78
844
                   inx
845
                   cmp $0200,X
846
                   bne .lab_73
847
                   lda #$45
848
                   inx
849
                   cmp $0200,X
850
                   bne .lab_73
851
                   jmp .lab_735
852
.lab_73            lda #$5B
853
                   jmp .lab_100
854
.lab_735           lda #$3F
855
                   sta io_base+io_stat
856
                   lda #$95
857
                   sta $02
858
                   lda #$00
859
                   lda #$95
860
                   cmp  $02
861
                   beq  .lab_74
862
                   lda #$5C
863
                   jmp .lab_100
864
.lab_74            lda #$75
865
                   sta $02
866
                   lda #$67
867
                   cmp  $02
868
                   bne .lab_75
869
                   lda #$5D
870
                   jmp .lab_100
871
.lab_75            lda #$40
872
                   sta io_base+io_stat
873
                   lda #$36
874
                   sta $02
875
                   lda #$00
876
                   ldx #$36
877
                   cpx $02
878
                   beq  .lab_76
879
                   lda #$5E
880
                   jmp .lab_100
881
.lab_76            lda #$57
882
                   sta $02
883
                   ldx #$39
884
                   cpx $02
885
                   bne .lab_77
886
                   lda #$5F
887
                   jmp .lab_100
888
.lab_77            lda #$41
889
                   sta io_base+io_stat
890
                   lda #$75
891
                   sta $02
892
                   lda #$00
893
                   ldy #$75
894
                   cpy $02
895
                   beq  .lab_78
896
                   lda #$60
897
                   jmp .lab_100
898
.lab_78            lda #$43
899
                   sta $02
900
                   ldy #$24
901
                   cpy $02
902
                   bne .lab_79
903
                   lda #$61
904
                   jmp .lab_100
905
.lab_79            lda #$42
906
                   sta io_base+io_stat
907
                   nop          ; was cli
908
                   lda #$00
909
                   sta $05
910
                   lda #$01
911
                   sta $04
912
                   lda #$10
913
 
914
 
915
                   sta io_base+io_tim0_end
916
                   sta io_base+io_tim0_start
917
                   ldx #$00
918
                   inx
919
                   inx
920
                   inx
921
                   inx
922
                   inx
923
                   inx
924
                   inx
925
                   inx
926
                   inx
927
                   inx
928
                   inx
929
                   inx
930
                   inx
931
                   inx
932
                   inx
933
                   inx
934
                   cpx  #$10
935
                   beq .lab_80
936
                   lda #$62
937
                   jmp .lab_100
938
.lab_80            lda $05
939
                   cmp #$00     ; was 1 if int serviced
940
                   beq  .lab_81
941
                   lda #$63
942
                   jmp .lab_100
943
.lab_81            nop          ;   was sei to disable interrupt
944
                   lda #$00
945
                   sta $05
946
                   lda #$01
947
                   sta $04
948
                   lda #$10
949
                   sta io_base+io_tim0_end
950
                   sta io_base+io_tim0_start
951
                   ldx #$00
952
                   inx
953
                   inx
954
                   inx
955
                   inx
956
                   inx
957
                   inx
958
                   inx
959
                   inx
960
                   inx
961
                   inx
962
                   inx
963
                   inx
964
                   inx
965
                   inx
966
                   inx
967
                   inx
968
                   cpx #$10
969
                   beq .lab_82
970
                   lda #$62
971
                   jmp .lab_100
972
.lab_82            lda $05
973
                   cmp #$00
974
                   beq  .lab_83
975
                   lda #$63
976
                   jmp .lab_100
977
.lab_83            lda #$00
978
                   sta $04
979
                   sta io_base+io_tim0_end
980
                   lda #$43
981
                   sta io_base+io_stat
982
                   lda #$00
983
                   sta $07
984
                   lda #$01
985
                   sta $06
986
                   lda #$10
987
                   sta io_base+io_tim0_end ; change to tim1 for nmi
988
                   sta io_base+io_tim0_start   ; change to tim1 for nmi
989
                   ldx #$00
990
                   inx
991
                   inx
992
                   inx
993
                   inx
994
                   inx
995
                   inx
996
                   inx
997
                   inx
998
                   inx
999
                   inx
1000
                   inx
1001
                   inx
1002
                   inx
1003
                   inx
1004
                   inx
1005
                   inx
1006
                   cpx  #$10
1007
                   beq  .lab_84
1008
                   lda #$64
1009
                   jmp .lab_100
1010
.lab_84            lda $07
1011
                   cmp #$00     ; change to 1 if nmi serviced
1012
                   beq  .lab_85
1013
                   lda #$65
1014
                   jmp .lab_100
1015
.lab_85            lda #$00
1016
                   sta $06
1017
                   sta io_base+io_tim1_end
1018
                   lda #$44
1019
                   sta io_base+io_stat
1020
                   jmp .lab_865
1021
.lab_86            jmp .lab_866
1022
.lab_865           sec
1023
                   bcs .lab_86
1024
                   nop
1025
                   nop
1026
                   nop
1027
                   lda #$66
1028
                   jmp .lab_100
1029
.lab_866           lda #$45
1030
                   sta io_base+io_stat
1031
                   sec
1032
                   lda #$34
1033
                   sbc #$75
1034
                   bcc .lab_87
1035
                   lda #$67
1036
                   jmp .lab_100
1037
.lab_87            lda #$46
1038
                   sta io_base+io_stat
1039
                   tsx
1040
                   stx $00
1041
                   lda #$42
1042
                   pha
1043
                   lda #$00
1044
                   tsx
1045
                   inx
1046
                   lda $0100,X
1047
                   cmp #$42
1048
                   beq  .lab_88
1049
                   lda #$68
1050
                   jmp .lab_100
1051
.lab_88            lda #$69
1052
                   sta $0112
1053
                   lda #$00
1054
                   ldx #$11
1055
                   txs
1056
                   pla
1057
                   cmp #$69
1058
                   beq  .lab_89
1059
                   lda #$69
1060
                   jmp .lab_100
1061
.lab_89            ldx $00
1062
                   txs
1063
                   lda #$47
1064
                   sta io_base+io_stat
1065
                   lda #$04     ; keep int disabled
1066
                   pha
1067
                   plp
1068
                   stx $08
1069
                   lda #$00
1070
                   sta $05
1071
                   lda #$01
1072
                   sta $04
1073
                   ldx #$59
1074
                   nop          ; was brk
1075
                   inx
1076
                   lda #$00
1077
                   sta $04
1078
                   lda $05
1079
                   cmp #$00     ; was 1 if brk taken
1080
                   beq  .lab_90
1081
                   lda #$70
1082
                   jmp .lab_100
1083
.lab_90            lda $08
1084
                   and #$10
1085
                   bne .lab_91
1086
                   lda #$71
1087
                   jmp .lab_100
1088
.lab_91            cpx  #$59
1089
                   bne  .lab_92 ; was beq
1090
                   lda #$72
1091
                   jmp .lab_100
1092
.lab_92            lda #$48
1093
                   sta io_base+io_stat
1094
                   lda #$53
1095
                   sta $30
1096
                   lda #$00
1097
                   ldx #$40
1098
                   lda $F0,X
1099
                   cmp #$53
1100
                   beq  .lab_93
1101
                   lda #$73
1102
                   jmp .lab_100
1103
.lab_93            lda #$49
1104
                   sta io_base+io_stat
1105
                   clc
1106
                   lda #$FF
1107
                   adc #$01
1108
                   bcs .lab_94
1109
                   lda #$74
1110
                   jmp .lab_100
1111
.lab_94            lda #$4A
1112
                   sta io_base+io_stat
1113
                   sec
1114
                   lda #$7F
1115
                   sbc #$7E
1116
                   bvc  .lab_95
1117
                   lda #$75
1118
                   jmp .lab_100
1119
.lab_95            lda #$4B
1120
                   sta io_base+io_stat
1121
                   lda #$FF
1122
                   pha
1123
                   plp
1124
                   php
1125
                   pla
1126
                   cmp #$FF
1127
                   beq  .lab_96
1128
                   lda #$76
1129
                   jmp .lab_100
1130
.lab_96            lda #$4C
1131
                   sta io_base+io_stat
1132
                   lda #$40
1133
                   ldx #$00
1134
                   sta $0200,X
1135
                   inx
1136
                   lsr a
1137
                   sta $0200,X
1138
                   inx
1139
                   lsr a
1140
                   sta $0200,X
1141
                   inx
1142
                   lsr a
1143
                   sta $0200,X
1144
                   inx
1145
                   lsr a
1146
                   sta $0200,X
1147
                   inx
1148
                   lsr a
1149
                   sta $0200,X
1150
                   inx
1151
                   lsr a
1152
                   sta $0200,X
1153
                   ldx #$00
1154
                   asl $0200,X
1155
                   inx
1156
                   asl $0200,X
1157
                   inx
1158
                   asl $0200,X
1159
                   inx
1160
                   asl $0200,X
1161
                   inx
1162
                   asl $0200,X
1163
                   inx
1164
                   asl $0200,X
1165
                   inx
1166
                   asl $0200,X
1167
                   lda #$00
1168
                   clc
1169
                   adc $0200
1170
                   adc $0201
1171
                   adc $0202
1172
                   adc $0203
1173
                   adc $0204
1174
                   adc $0205
1175
                   adc $0206
1176
                   cmp #$FE
1177
                   beq  .lab_97
1178
                   lda #$77
1179
                   jmp  .lab_100
1180
.lab_97            lda #$4D
1181
                   sta io_base+io_stat
1182
                   ldx #$42
1183
                   ldy #$00
1184
                   stx $0200
1185
                   ldx #$9F
1186
                   stx $0201
1187
                   ldx $0200,Y
1188
                   cpx #$42
1189
                   beq  .lab_98
1190
                   lda #$48
1191
                   jmp .lab_100
1192
.lab_98            ldx $0201,Y
1193
                   cpx #$9F
1194
                   beq  .lab_99
1195
                   lda #$78
1196
                   jmp .lab_100
1197
.lab_99            sei
1198
                   lda #$FF
1199
                   sta io_base+io_stat
1200
                   lda io_base+io_stat
1201
                   lda #$F0
1202
                   sta io_base
1203
                   lda io_base
1204
                   jmp .lab_99
1205
.lab_100           sei
1206
                   sta io_base
1207
                   lda io_base
1208
                   jmp .lab_100
1209
.lab_10X           pha
1210
                   txa
1211
                   pha
1212
                   tya
1213
                   pha
1214
                   tsx
1215
                   inx
1216
                   inx
1217
                   inx
1218
                   inx
1219
                   lda $0100,X
1220
                   sta $08
1221
                   lda $04
1222
                   cmp #$00
1223
                   bne .lab_101
1224
                   lda #$E0
1225
                   jmp .lab_100
1226
.lab_101           sta io_base+io_tim0_end
1227
                   inc $05
1228
                   pla
1229
                   tay
1230
                   pla
1231
                   tax
1232
                   pla
1233
                   rti
1234
.lab_10Y           pha
1235
                   txa
1236
                   pha
1237
                   tya
1238
                   pha
1239
                   lda $06
1240
                   cmp #$00
1241
                   bne .lab_102
1242
                   lda #$E0
1243
                   jmp .lab_100
1244
.lab_102           sta io_base+io_tim1_end
1245
                   inc $07
1246
                   pla
1247
                   tay
1248
                   pla
1249
                   tax
1250
                   pla
1251
                   rti
1252
                   jmp .lab_10X
1253
                   jmp .lab_10Y
1254
 
1255
     db $00,$00,$00,$00,$00,$00;
1256
     db $00,$00,$00,$00,$00,$00;
1257
     db $00,$00,$00,$00,$00,$00;
1258
     db $00,$00,$00,$00,$00,$00;
1259
     db $00,$00,$00,$00,$00,$00;
1260
     db $00,$00,$00,$00,$00,$00;
1261
     db $00,$00,$00,$00,$00,$00;
1262
     db $00,$00,$00,$00,$00,$00;
1263
     db $00,$00,$00,$00,$00,$00;
1264
     db $00,$00,$00,$00,$00,$00;
1265
     db $00,$00,$00,$00,$00,$00;
1266
     db $00,$00,$00,$00,$00,$00;
1267
     db $00,$00,$00,$00,$00,$00;
1268
     db $00,$00,$00,$00,$00,$00;
1269
     db $00,$00,$00,$00,$00,$00;
1270
     db $00,$00,$00,$00,$00,$00;
1271
     db $00,$00,$00,$00,$00,$00;
1272
     db $00,$00,$00,$00,$00,$00;
1273
     db $00,$00,$00,$00,$00,$00;
1274
     db $00,$00,$00,$00,$00,$00;
1275
     db $00,$00,$00,$00,$00,$00;
1276
     db $00,$00,$00,$00,$00,$00;
1277
     db $00,$00,$00,$00,$00,$00;
1278
     db $00,$00,$00,$00,$00,$00;
1279
     db $00,$00,$00,$00,$00,$00;
1280
     db $00,$00,$00,$00,$00,$00;
1281
     db $00,$00,$00,$00,$00,$00;
1282
     db $00,$00,$00,$00,$00,$00;
1283
     db $00,$00,$00,$00,$00,$00;
1284
     db $00,$00,$00,$00,$00,$00;
1285
     db $00,$00,$00,$00,$00,$00;
1286
     db $00,$00,$00,$00,$00,$00;
1287
     db $00,$00,$00,$00,$00,$00;
1288
     db $00,$00,$00,$00,$00,$00;
1289
     db $00,$00,$00,$00,$00,$00;
1290
     db $00,$00,$00,$00,$00,$00;
1291
     db $00,$00,$00,$00,$00,$00;
1292
     db $00,$00,$00,$00,$00,$00;
1293
     db $00,$00,$00,$00,$00,$00;
1294
     db $00,$00,$00,$00,$00,$00;
1295
     db $00,$00,$00,$00,$00,$00;
1296
     db $00,$00,$00,$00,$00,$00;
1297
     db $00,$00,$00,$00,$00,$00;
1298
     db $00,$00,$00,$00,$00,$00;
1299
     db $00,$00,$00,$00,$00,$00;
1300
     db $00,$00,$00,$00,$00,$00;
1301
     db $00,$00,$00,$00,$00,$00;
1302
     db $00,$00,$00,$00,$00,$00;
1303
     db $00,$00,$00,$00,$00,$00;
1304
     db $00,$00,$00,$00,$00,$00;
1305
     db $00,$00,$00,$00,$00,$00;
1306
     db $00,$00,$00,$00,$00,$00;
1307
     db $00,$00,$00,$00,$00,$00;
1308
     db $00,$00,$00,$00,$00,$00;
1309
     db $00,$00,$00,$00,$00,$00;
1310
     db $00,$00,$00,$00,$00,$00;
1311
     db $00,$00,$00,$00,$00,$00;
1312
     db $00,$00,$00,$00,$00,$00;
1313
     db $00,$00,$00,$00,$00,$00;
1314
     db $00,$00,$00,$00,$00,$00;
1315
     db $00,$00,$00,$00,$00,$00;
1316
     db $00,$00,$00,$00,$00,$00;
1317
     db $00,$00,$00,$00,$00,$00;
1318
     db $00,$00,$00,$00,$00,$00;
1319
     db $00,$00,$00,$00,$00,$00;
1320
     db $00,$00,$00,$00,$00,$00;
1321
     db $00,$00,$00,$00,$00,$00;
1322
     db $00,$00,$00,$00,$00,$00;
1323
     db $00,$00,$00,$00,$00,$00;
1324
     db $00,$00,$00,$00,$00,$00;
1325
     db $00,$00,$00,$00,$00,$00;
1326
     db $00,$00,$00,$00,$00,$00;
1327
     db $00,$00,$00,$00,$00,$00;
1328
     db $00,$00,$00,$00,$00,$00;
1329
     db $00,$00,$00,$00,$00,$00;
1330
     db $00,$00,$00,$00,$00,$00;
1331
     db $00,$00,$00,$00,$00,$00;
1332
     db $00,$00,$00,$00,$00,$00;
1333
     db $00,$00,$00,$00,$00,$00;
1334
     db $00,$00,$00,$00,$00,$00;
1335
     db $00,$00,$00,$00,$00,$00;
1336
     db $00,$00,$00,$00,$00,$00;
1337
     db $00,$00,$00,$00,$00,$00;
1338
     db $00,$00,$00,$00,$00,$00;
1339
     db $00,$00,$00,$00,$00,$00;
1340
     db $00,$00,$00,$00,$00,$00;
1341
     db $00,$00,$00,$00,$00,$00;
1342
     db $00,$00,$00,$00,$00,$00;
1343
     db $00,$00,$00,$00,$00,$00;
1344
     db $00,$00,$00,$00,$00,$00;
1345
     db $00,$00,$00,$00,$00,$00;
1346
     db $00,$00,$00,$00,$00,$00;
1347
     db $00,$00,$00,$00,$00,$00;
1348
     db $00,$00,$00,$00,$00,$00;
1349
     db $00,$00,$00,$00,$00,$00;
1350
     db $00,$00,$00,$00,$00,$00;
1351
     db $00,$00,$00,$00,$00,$00;
1352
     db $00,$00,$00,$00,$00,$00;
1353
     db $00,$00,$00,$00,$00,$00;
1354
     db $00,$00,$00,$00,$00,$00;
1355
     db $00,$00,$00,$00,$00,$00;
1356
     db $00,$00,$00,$00,$00,$00;
1357
     db $00,$00,$00,$00,$00,$00;
1358
     db $00,$00,$00,$00,$00,$00;
1359
     db $00,$00,$00,$00,$00,$00;
1360
     db $00,$00,$00,$00,$00,$00;
1361
     db $00,$00,$00,$00,$00,$00;
1362
     db $00,$00,$00,$00,$00,$00;
1363
     db $00,$00,$00,$00,$00,$00;
1364
     db $00,$00,$00,$00,$00,$00;
1365
     db $00,$00,$00,$00,$00,$00;
1366
     db $00,$00,$00,$00,$00,$00;
1367
     db $00,$00,$00,$00,$00,$00;
1368
     db $00,$00,$00,$00,$00,$00;
1369
     db $00,$00,$00,$00,$00,$00;
1370
     db $00,$00,$00,$00,$00,$00;
1371
     db $00,$00,$00,$00,$00,$00;
1372
     db $00,$00,$00,$00,$00,$00;
1373
     db $00,$00,$00,$00,$00,$00;
1374
     db $00,$00,$00,$00,$00,$00;
1375
     db $00,$00,$00,$00,$00,$00;
1376
     db $00,$00,$00,$00,$00,$00;
1377
     db $00,$00,$00,$00,$00,$00;
1378
     db $00,$00,$00,$00,$00,$00;
1379
     db $00,$00,$00,$00,$00,$00;
1380
     db $00,$00,$00,$00,$00,$00;
1381
     db $00,$00,$00,$00,$00,$00;
1382
     db $00,$00,$00,$00,$00,$00;
1383
     db $00,$00,$00,$00,$00,$00;
1384
     db $00,$00,$00,$00,$00,$00;
1385
     db $00,$00,$00,$00,$00,$00;
1386
     db $00,$00,$00,$00,$00,$00;
1387
     db $00,$00,$00,$00,$00,$00;
1388
     db $00,$00,$00,$00,$00,$00;
1389
     db $00,$00,$00,$00,$00,$00;
1390
     db $00,$00,$00,$00,$00,$00;
1391
     db $00,$00,$00,$00,$00,$00;
1392
     db $00,$00,$00,$00,$00,$00;
1393
     db $00,$00,$00,$00,$00,$00;
1394
     db $00,$00,$00,$00,$00,$00;
1395
     db $00,$00,$00,$00,$00,$00;
1396
     db $00,$00,$00,$00,$00,$00;
1397
     db $00,$00,$00,$00,$00,$00;
1398
     db $00,$00,$00,$00,$00,$00;
1399
     db $00,$00,$00,$00,$00,$00;
1400
     db $00,$00,$00,$00,$00,$00;
1401
     db $00,$00,$00,$00,$00,$00;
1402
     db $00,$00,$00,$00,$00,$00;
1403
     db $00,$00,$00,$00,$00,$00;
1404
     db $00,$00,$00,$00,$00,$00;
1405
     db $00,$00,$00,$00,$00,$00;
1406
     db $00,$00,$00,$00,$00,$00;
1407
     db $00,$00,$00,$00,$00,$00;
1408
     db $00,$00,$00,$00,$00,$00;
1409
     db $00,$00,$00,$00,$00,$00;
1410
     db $00,$00,$00,$00,$00,$00;
1411
     db $00,$00,$00,$00,$00,$00;
1412
     db $00,$00,$00,$00,$00,$00;
1413
     db $00,$00,$00,$00,$00,$00;
1414
     db $00,$00,$00,$00,$00,$00;
1415
     db $00,$00,$00,$00,$00,$00;
1416
     db $00,$00,$00,$00,$00,$00;
1417
     db $00,$00,$00,$00,$00,$00;
1418
     db $00,$00,$00,$00,$00,$00;
1419
     db $00,$00,$00,$00,$00,$00;
1420
     db $00,$00,$00,$00,$00,$00;
1421
     db $00,$00,$00,$00,$00,$00;
1422
     db $00,$00,$00,$00,$00,$00;
1423
     db $00,$00,$00,$00,$00,$00;
1424
     db $00,$00,$00,$00,$00,$00;
1425
     db $00,$00,$00,$00,$00,$00;
1426
     db $00,$00,$00,$00,$00,$00;
1427
     db $00,$00,$00,$00,$00,$00;
1428
     db $00,$00,$00,$00,$00,$00;
1429
     db $00,$00,$00,$00,$00,$00;
1430
     db $00,$00,$00,$00,$00,$00;
1431
     db $00,$00,$00,$00,$00,$00;
1432
     db $00,$00,$00,$00,$00,$00;
1433
     db $00,$00,$00,$00,$00,$00;
1434
     db $00,$00,$00,$00,$00,$00;
1435
     db $00,$00,$00,$00,$00,$00;
1436
     db $00,$00,$00,$00,$00,$00;
1437
     db $00,$00,$00,$00,$00,$00;
1438
     db $00,$00,$00,$00,$00,$00;
1439
     db $00,$00,$00,$00,$00,$00;
1440
     db $00,$00,$00,$00,$00,$00;
1441
     db $00,$00,$00,$00,$00,$00;
1442
     db $00,$00,$00,$00,$00,$00;
1443
     db $00,$00,$00,$00,$00,$00;
1444
     db $00,$00,$00,$00,$00,$00;
1445
     db $00,$00,$00,$00,$00,$00;
1446
     db $00,$00,$00,$00,$00,$00;
1447
     db $00,$00,$00,$00,$00,$00;
1448
     db $00,$00,$00,$00,$00,$00;
1449
     db $00,$00,$00,$00,$00,$00;
1450
     db $00,$00,$00,$00,$00,$00;
1451
     db $00,$00,$00,$00,$00,$00;
1452
     db $00,$00,$00,$00,$00,$00;
1453
     db $00,$00,$00,$00,$00,$00;
1454
     db $00,$00,$00,$00,$00,$00;
1455
     db $00,$00,$00,$00,$00,$00;
1456
     db $00,$00,$00,$00,$00,$00;
1457
     db $00,$00,$00,$00,$00,$00;
1458
     db $00,$00,$00,$00,$00,$00;
1459
     db $00,$00,$00,$00,$00,$00;
1460
     db $00,$00,$00,$00,$00,$00;
1461
     db $00,$00,$00,$00,$00,$00;
1462
     db $00,$00,$00,$00,$00,$00;
1463
     db $00,$00,$00,$00,$00,$00;
1464
     db $00,$00,$00,$00,$00,$00;
1465
     db $00,$00,$00,$00,$00,$00;
1466
     db $00,$00,$00,$00,$00,$00;
1467
     db $00,$00,$00,$00,$00,$00;
1468
     db $00,$00,$00,$00,$00,$00;
1469
     db $00,$00,$00,$00,$00,$00;
1470
     db $00,$00,$00,$00,$00,$00;
1471
     db $00,$00,$00,$00,$00,$00;
1472
     db $00,$00,$00,$00,$00,$00;
1473
     db $00,$00,$00,$00,$00,$00;
1474
     db $00,$00,$00,$00,$00,$00;
1475
     db $00,$00,$00,$00,$00,$00;
1476
     db $00,$00,$00,$00,$00,$00;
1477
     db $00,$00,$00,$00,$00,$00;
1478
     db $00,$00,$00,$00,$00,$00;
1479
     db $00,$00,$00,$00,$00,$00;
1480
     db $00,$00,$00,$00,$00,$00;
1481
     db $00,$00,$00,$00,$00,$00;
1482
     db $00,$00,$00,$00,$00,$00;
1483
     db $00,$00,$00,$00,$00,$00;
1484
     db $00,$00,$00,$00,$00,$00;
1485
     db $00,$00,$00,$00,$00,$00;
1486
     db $00,$00,$00,$00,$00,$00;
1487
     db $00,$00,$00,$00,$00,$00;
1488
     db $00,$00,$00,$00,$00,$00;
1489
     db $00,$00,$00,$00,$00,$00;
1490
     db $00,$00,$00,$00,$00,$00;
1491
     db $00,$00,$00,$00,$00,$00;
1492
     db $00,$00,$00,$00,$00,$00;
1493
     db $00,$00,$00,$00,$00,$00;
1494
     db $00,$00,$00,$00,$00,$00;
1495
     db $00,$00,$00,$00,$00,$00;
1496
     db $00,$00,$00,$00,$00,$00;
1497
     db $00;
1498
 
1499
     dw .lab_10X               ;
1500
     dw .start                 ;
1501
     dw .lab_10Y               ;
1502
 
1503
 code
1504
 
1505
 
1506
 
1507
 
1508
 
1509
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.