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

Subversion Repositories socgen

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

powered by: WebSVN 2.1.0

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