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

Subversion Repositories socgen

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

powered by: WebSVN 2.1.0

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