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

Subversion Repositories socgen

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

powered by: WebSVN 2.1.0

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