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

Subversion Repositories tv80

[/] [tv80/] [trunk/] [tests/] [load_optest.ast] - Blame information for rev 112

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 112 ghutchis
; Test of load opcodes
2
;
3
; Goes through most varieties of load opcode and tests for
4
; correct behavior.
5
 
6
    .module load_optest
7
 
8
;--------------------------------------------------------
9
; special function registers
10
;--------------------------------------------------------
11
_sim_ctl_port   =       0x0080
12
_msg_port       =       0x0081
13
_timeout_port   =       0x0082
14
_max_timeout_low        =       0x0083
15
_max_timeout_high       =       0x0084
16
_intr_cntdwn    =       0x0090
17
_cksum_value    =       0x0091
18
_cksum_accum    =       0x0092
19
_inc_on_read    =       0x0093
20
stack_end       =       0xFFFF
21
 
22
    .area INIT (ABS)
23
    .org  0
24
 
25
    jp      init
26
 
27
 
28
init:
29
    ld      sp, #stack_end
30
    jp      start
31
 
32
 
33
passed:
34
                ld      a, #0x1
35
                out     (_sim_ctl_port), a
36
                halt
37
 
38
failed:
39
                ld      a, #0x2
40
                out     (_sim_ctl_port), a
41
                halt
42
 
43
 
44
 
45
 
46
        ;; subroutine to print a message
47
        ;; called from within the "print" macro
48
        ;; expects address to be printed in hl
49
        ;; preserves all other registers
50
print_sub:
51
        push    bc
52
        ld      b, a
53
 
54
print_sub_loop:
55
        ld      a, (hl)
56
        cp      #0x0
57
        jp      z, print_sub_exit
58
        out     (_msg_port), a
59
        inc     hl
60
        jp      print_sub_loop
61
 
62
print_sub_exit:
63
        ld      a, b
64
        pop     bc
65
        ret
66
 
67
        ;; print a hex number between 0-255, stored in the A register
68
print_number:
69
        push    bc
70
        ld      b, a            ; store number to be printed in b
71
 
72
        and     #0xf0
73
        sra     a
74
        sra     a
75
        sra     a
76
        sra     a
77
        cp      a, #10
78
        jp      p, alpha_0
79
        add     #48             ; ordinal value of '0'
80
        out     (_msg_port), a
81
        jp      second_digit
82
alpha_0:
83
        add     #55              ; 'A' - 10
84
        out     (_msg_port), a
85
 
86
second_digit:
87
        ld      a, b
88
        and     #0x0f
89
 
90
        cp      a, #10
91
        jp      p, alpha_1
92
        add     #48
93
        out     (_msg_port), a
94
        jp      print_number_exit
95
 
96
alpha_1:
97
        add     #55              ; 'A' - 10
98
        out     (_msg_port), a
99
 
100
print_number_exit:
101
        pop     bc
102
        ret
103
 
104
fail_text: .ascii   "Test failed at checkpoint #"
105
        .db     #0x00
106
 
107
; expects failing message number in B
108
fail_routine:
109
        ld      hl, #fail_text
110
        call    print_sub       ; print out boilerplate text
111
        ld      a, b
112
 
113
        call    print_number    ; print out error number
114
 
115
        ld      a, #0x0a                ; print carriage return
116
        out     (_msg_port), a
117
        jp      failed
118
 
119
 
120
 
121
starting_test:  .ascii "Starting test"
122
        .db 0x0A
123
        .db 0x00
124
 
125
error_cnt:
126
        .db     0
127
 
128
        ;; Ordering of segments for the linker.
129
        .area   _HOME
130
        .area   _CODE
131
        .area   _GSINIT
132
        .area   _GSFINAL
133
 
134
        .area   _DATA
135
        .area   _BSS
136
        .area   _HEAP
137
 
138
        .area   _CODE
139
 
140
;------------------------------------------------------------
141
;   Beginning of test
142
;------------------------------------------------------------
143
 
144
start:
145
 
146
                ld      hl, #starting_test
147
                call    print_sub
148
 
149
                ld      a, #1
150
                ld      hl,#error_cnt
151
                ld      (hl),a                  ;clear error count
152
nop_1:          nop
153
                nop
154
                ;print "Starting ld tests"
155
ld_167:         ld      a,#0x55
156
                cp      #0x55
157
                jr      z,ld_1
158
        ld      b, #167
159
        jp      fail_routine
160
 
161
ld_1:           ld      b,#0x7F
162
                ld      a,#0x7F
163
                cp      b
164
                jr      z,ld_2
165
        ld      b, #1
166
        jp      fail_routine
167
ld_2:           ld      c,#0x80
168
                ld      a,#0x80
169
                cp      c
170
                jr      z,ld_3
171
        ld      b, #2
172
        jp      fail_routine
173
ld_3:           ld      d,#0xAA
174
                ld      a,#0xAA
175
                cp      d
176
                jr      z,ld_4
177
        ld      b, #3
178
        jp      fail_routine
179
ld_4:           ld      e,#0x55
180
                ld      a,#0x55
181
                cp      e
182
                jr      z,ld_5
183
        ld      b, #4
184
        jp      fail_routine
185
ld_5:           ld      h,#0x7F
186
                ld      a,#0x7F
187
                cp      h
188
                jr      z,ld_6
189
        ld      b, #5
190
        jp      fail_routine
191
ld_6:           ld      l,#0x80
192
                ld      a,#0x80
193
                cp      l
194
                jr      z,ld_7
195
        ld      b, #6
196
        jp      fail_routine
197
ld_7:           ld      a,#0x55
198
                ld      b,a
199
                cp      b
200
                jr      z,ld_8
201
        ld      b, #7
202
        jp      fail_routine
203
ld_8:           ld      c,b
204
                cp      c
205
                jr      z,ld_9
206
        ld      b, #8
207
        jp      fail_routine
208
ld_9:           ld      d,c
209
                cp      d
210
                jr      z,ld_10
211
        ld      b, #9
212
        jp      fail_routine
213
ld_10:          ld      e,d
214
                cp      e
215
                jr      z,ld_11
216
        ld      b, #10
217
        jp      fail_routine
218
ld_11:          ld      h,e
219
                cp      h
220
                jr      z,ld_12
221
        ld      b, #11
222
        jp      fail_routine
223
ld_12:          ld      l,h
224
                cp      l
225
                jr      z,ld_13
226
        ld      b, #12
227
        jp      fail_routine
228
ld_13:          ld      l,#0x80
229
                ld      a,l
230
                cp      l
231
                jr      z,ld_14
232
        ld      b, #13
233
        jp      fail_routine
234
ld_14:          ld      h,l
235
                cp      h
236
                jr      z,ld_15
237
        ld      b, #14
238
        jp      fail_routine
239
ld_15:          ld      e,h
240
                cp      e
241
                jr      z,ld_16
242
        ld      b, #15
243
        jp      fail_routine
244
ld_16:          ld      d,e
245
                cp      d
246
                jr      z,ld_17
247
        ld      b, #16
248
        jp      fail_routine
249
ld_17:          ld      c,d
250
                cp      c
251
                jr      z,ld_18
252
        ld      b, #17
253
        jp      fail_routine
254
ld_18:          ld      b,c
255
                cp      b
256
                jr      z,ld_19
257
        ld      b, #18
258
        jp      fail_routine
259
ld_19:          ld      hl,#var1
260
                ld      a,(hl)
261
                cp      #0xFF
262
                jr      z,ld_20
263
        ld      b, #19
264
        jp      fail_routine
265
ld_20:          ld      hl,#var2
266
                ld      a,#0x55
267
                ld      b,(hl)
268
                cp      b
269
                jr      z,ld_21
270
                ld      a, #20
271
                jp      fail_routine
272
        ld      b, #20
273
        jp      fail_routine
274
ld_21:          ld      hl,#var1
275
                ld      c,(hl)
276
                ld      a,(hl)
277
                cp      c
278
                jr      z,ld_22
279
        ld      b, #21
280
        jp      fail_routine
281
ld_22:          ld      hl,#var2
282
                ld      d,(hl)
283
                ld      a,(hl)
284
                cp      d
285
                jr      z,ld_23
286
        ld      b, #22
287
        jp      fail_routine
288
ld_23:          ld      hl,#var1
289
                ld      e,(hl)
290
                ld      a,(hl)
291
                cp      e
292
                jr      z,ld_24
293
        ld      b, #23
294
        jp      fail_routine
295
ld_24:          ld      hl,#var2
296
                ld      a,(hl)
297
                ld      h,(hl)
298
                cp      h
299
                jr      z,ld_25
300
        ld      b, #24
301
        jp      fail_routine
302
ld_25:          ld      hl,#var1
303
                ld      a,(hl)
304
                ld      l,(hl)
305
                cp      l
306
                jr      z,ld_26
307
        ld      b, #25
308
        jp      fail_routine
309
ld_26:          ld      ix,#var3
310
                ld      a,-2(ix)
311
                cp      #0xFF
312
                jr      z,ld_27
313
        ld      b, #26
314
        jp      fail_routine
315
ld_27:          ld      a,2(ix)
316
                cp      #0x7F
317
                jr      z,ld_28
318
        ld      b, #27
319
        jp      fail_routine
320
ld_28:          ld      a,-1(ix)
321
                ld      b,-1(ix)
322
                cp      b
323
                jr      z,ld_29
324
        ld      b, #28
325
        jp      fail_routine
326
ld_29:          cp      #0x55
327
                jr      z,ld_30
328
        ld      b, #29
329
        jp      fail_routine
330
ld_30:          ld      a,1(ix)
331
                ld      c,1(ix)
332
                cp      c
333
                jr      z,ld_31
334
        ld      b, #30
335
        jp      fail_routine
336
ld_31:          cp      #0xAA
337
                jr      z,ld_32
338
        ld      b, #31
339
        jp      fail_routine
340
ld_32:          ld      d,-2(ix)
341
                ld      a,-2(ix)
342
                cp      d
343
                jr      z,ld_33
344
        ld      b, #32
345
        jp      fail_routine
346
ld_33:          cp      #0xFF
347
                jr      z,ld_34
348
        ld      b, #33
349
        jp      fail_routine
350
ld_34:          ld      e,2(ix)
351
                ld      a,2(ix)
352
                cp      e
353
                jr      z,ld_35
354
        ld      b, #34
355
        jp      fail_routine
356
ld_35:          cp      #0x7F
357
                jr      z,ld_36
358
        ld      b, #35
359
        jp      fail_routine
360
ld_36:          ld      h,(ix)
361
                ld      a,(ix)
362
                cp      h
363
                jr      z,ld_37
364
        ld      b, #36
365
        jp      fail_routine
366
ld_37:          cp      #0x80
367
                jr      z,ld_38
368
        ld      b, #37
369
        jp      fail_routine
370
ld_38:          ld      l,-1(ix)
371
                ld      a,-1(ix)
372
                cp      l
373
                jr      z,ld_39
374
        ld      b, #38
375
        jp      fail_routine
376
ld_39:          cp      #0x55
377
                jr      z,ld_40
378
        ld      b, #39
379
        jp      fail_routine
380
ld_40:          ld      iy,#var3
381
                ld      a,-2(iy)
382
                cp      #0xFF
383
                jr      z,ld_41
384
        ld      b, #40
385
        jp      fail_routine
386
ld_41:          ld      a,2(iy)
387
                cp      #0x7F
388
                jr      z,ld_42
389
        ld      b, #41
390
        jp      fail_routine
391
ld_42:          ld      b,-1(iy)
392
                ld      a,-1(iy)
393
                cp      b
394
                jr      z,ld_43
395
        ld      b, #42
396
        jp      fail_routine
397
ld_43:          cp      #0x55
398
                jr      z,ld_44
399
        ld      b, #43
400
        jp      fail_routine
401
ld_44:          ld      c,1(iy)
402
                ld      a,1(iy)
403
                cp      c
404
                jr      z,ld_45
405
        ld      b, #44
406
        jp      fail_routine
407
ld_45:          cp      #0xAA
408
                jr      z,ld_46
409
        ld      b, #45
410
        jp      fail_routine
411
ld_46:          ld      d,-2(iy)
412
                ld      a,-2(iy)
413
                cp      d
414
                jr      z,ld_47
415
        ld      b, #46
416
        jp      fail_routine
417
ld_47:          cp      #0xFF
418
                jr      z,ld_48
419
        ld      b, #47
420
        jp      fail_routine
421
ld_48:          ld      e,2(iy)
422
                ld      a,2(iy)
423
                cp      e
424
                jr      z,ld_49
425
        ld      b, #48
426
        jp      fail_routine
427
ld_49:          cp      #0x7F
428
                jr      z,ld_50
429
        ld      b, #49
430
        jp      fail_routine
431
ld_50:
432
                ld      h,(iy)
433
                ld      a,(iy)
434
                cp      h
435
                jr      z,ld_51
436
        ld      b, #50
437
        jp      fail_routine
438
ld_51:          cp      #0x80
439
                jr      z,ld_52
440
        ld      b, #51
441
        jp      fail_routine
442
ld_52:          ld      l,-2(iy)
443
                ld      a,-2(iy)
444
                cp      l
445
                jr      z,ld_53
446
        ld      b, #52
447
        jp      fail_routine
448
ld_53:          cp      #0xFF
449
                jr      z,ld_54
450
        ld      b, #53
451
        jp      fail_routine
452
ld_54:          ld      hl,#t_var1
453
                ld      a,#0xAA+1
454
                ld      (hl),a
455
                ld      b,(hl)
456
                cp      b
457
                jr      z,ld_55
458
        ld      b, #54
459
        jp      fail_routine
460
ld_55:          cp      #0xAA+1
461
                jr      z,ld_56
462
        ld      b, #55
463
        jp      fail_routine
464
ld_56:          ld      b,#0x80+1
465
                ld      (hl),b
466
                ld      a,(hl)
467
                cp      b
468
                jr      z,ld_57
469
        ld      b, #56
470
        jp      fail_routine
471
ld_57:          cp      #0x80+1
472
                jr      z,ld_58
473
        ld      b, #57
474
        jp      fail_routine
475
ld_58:          ld      c,#0x55-1
476
                ld      (hl),c
477
                ld      a,(hl)
478
                cp      c
479
                jr      z,ld_59
480
        ld      b, #58
481
        jp      fail_routine
482
ld_59:          cp      #0x55-1
483
                jr      z,ld_60
484
        ld      b, #59
485
        jp      fail_routine
486
ld_60:          ld      d,#0xFF-1
487
                ld      (hl),d
488
                ld      a,(hl)
489
                cp      d
490
                jr      z,ld_61
491
        ld      b, #60
492
        jp      fail_routine
493
ld_61:          cp      #0xFF-1
494
                jr      z,ld_62
495
        ld      b, #61
496
        jp      fail_routine
497
ld_62:          ld      e,#0x55+1
498
                ld      (hl),e
499
                ld      a,(hl)
500
                cp      e
501
                jr      z,ld_63
502
        ld      b, #62
503
        jp      fail_routine
504
ld_63:          cp      #0x55+1
505
                jr      z,ld_64
506
        ld      b, #63
507
        jp      fail_routine
508
ld_64:          ld      (hl),h
509
                ld      a,(hl)
510
                cp      h
511
                jr      z,ld_65
512
        ld      b, #64
513
        jp      fail_routine
514
ld_65:          cp      #0x80           ;bjp  guess  >t_#var1
515
                jr      z,ld_66
516
        ld      b, #65
517
        jp      fail_routine
518
ld_66:          ld      (hl),l
519
                ld      a,(hl)
520
                cp      l
521
                jr      z,ld_67
522
        ld      b, #66
523
        jp      fail_routine
524
ld_67:          cp      a, #0x00                ;bjp  guess 
525
                jr      z,ld_68
526
        ld      b, #67
527
        jp      fail_routine
528
ld_68:          ld      ix,#t_var3
529
                ld      a,#0x55
530
                ld      -2(ix),a
531
                ld      a,#0
532
                ld      a,-2(ix)
533
                cp      #0x55
534
                jr      z,ld_69
535
        ld      b, #68
536
        jp      fail_routine
537
ld_69:          ld      a,#0x80
538
                ld      2(ix),a
539
                ld      a,#0
540
                ld      a,2(ix)
541
                cp      #0x80
542
                jr      z,ld_70
543
        ld      b, #69
544
        jp      fail_routine
545
ld_70:          ld      b,#0x7F
546
                ld      -1(ix),b
547
                ld      a,-1(ix)
548
                cp      b
549
                jr      z,ld_71
550
        ld      b, #70
551
        jp      fail_routine
552
ld_71:          cp      #0x7F
553
                jr      z,ld_72
554
        ld      b, #71
555
        jp      fail_routine
556
ld_72:          ld      c,#0xAA
557
                ld      1(ix),c
558
                ld      a,1(ix)
559
                cp      c
560
                jr      z,ld_73
561
        ld      b, #72
562
        jp      fail_routine
563
ld_73:          cp      #0xAA
564
                jr      z,ld_74
565
        ld      b, #73
566
        jp      fail_routine
567
ld_74:          ld      d,#0x80
568
                ld      (ix),d
569
                ld      a,(ix)
570
                cp      d
571
                jr      z,ld_75
572
        ld      b, #74
573
        jp      fail_routine
574
ld_75:          cp      #0x80
575
                jr      z,ld_76
576
        ld      b, #75
577
        jp      fail_routine
578
ld_76:          ld      e,#0x55+2
579
                ld      -2(ix),e
580
                ld      a,-2(ix)
581
                cp      e
582
                jr      z,ld_77
583
        ld      b, #76
584
        jp      fail_routine
585
ld_77:          cp      #0x55+2
586
                jr      z,ld_78
587
        ld      b, #77
588
        jp      fail_routine
589
ld_78:          ld      h,#0xAA-2
590
                ld      2(ix),h
591
                ld      a,2(ix)
592
                cp      h
593
                jr      z,ld_79
594
        ld      b, #78
595
        jp      fail_routine
596
ld_79:          cp      #0xAA-2
597
                jr      z,ld_80
598
        ld      b, #79
599
        jp      fail_routine
600
ld_80:          ld      l,#0xAA+2
601
                ld      -1(ix),l
602
                ld      a,-1(ix)
603
                cp      l
604
                jr      z,ld_81
605
        ld      b, #80
606
        jp      fail_routine
607
ld_81:          cp      #0xAA+2
608
                jr      z,ld_82
609
        ld      b, #81
610
        jp      fail_routine
611
ld_82:          ld      iy,#t_var3
612
                ld      a,#0xFF
613
                ld      -2(iy),a
614
                ld      a,#0
615
                ld      a,-2(iy)
616
                cp      #0xFF
617
                jr      z,ld_83
618
        ld      b, #82
619
        jp      fail_routine
620
ld_83:          ld      a,#0x7F
621
                ld      2(iy),a
622
                ld      a,#0
623
                ld      a,2(iy)
624
                cp      #0x7F
625
                jr      z,ld_84
626
        ld      b, #83
627
        jp      fail_routine
628
ld_84:          ld      b,#0x55
629
                ld      -1(iy),b
630
                ld      a,-1(iy)
631
                cp      b
632
                jr      z,ld_85
633
        ld      b, #84
634
        jp      fail_routine
635
ld_85:          cp      #0x55
636
                jr      z,ld_86
637
        ld      b, #85
638
        jp      fail_routine
639
ld_86:          ld      c,#0xAA
640
                ld      1(iy),c
641
                ld      a,1(iy)
642
                cp      c
643
                jr      z,ld_87
644
        ld      b, #86
645
        jp      fail_routine
646
ld_87:          cp      #0xAA
647
                jr      z,ld_88
648
        ld      b, #87
649
        jp      fail_routine
650
ld_88:          ld      d,#0x80
651
                ld      (iy),d
652
                ld      a,(iy)
653
                cp      d
654
                jr      z,ld_89
655
        ld      b, #88
656
        jp      fail_routine
657
ld_89:          cp      #0x80
658
                jr      z,ld_90
659
        ld      b, #89
660
        jp      fail_routine
661
ld_90:          ld      e,#0xFF-2
662
                ld      -2(iy),e
663
                ld      a,-2(iy)
664
                cp      e
665
                jr      z,ld_91
666
        ld      b, #90
667
        jp      fail_routine
668
ld_91:          cp      #0xFF-2
669
                jr      z,ld_92
670
        ld      b, #91
671
        jp      fail_routine
672
ld_92:          ld      h,#0x7F-3
673
                ld      2(iy),h
674
                ld      a,2(iy)
675
                cp      h
676
                jr      z,ld_93
677
        ld      b, #92
678
        jp      fail_routine
679
ld_93:          cp      #0x7F-3
680
                jr      z,ld_94
681
        ld      b, #93
682
        jp      fail_routine
683
ld_94:          ld      l,#0x55-5
684
                ld      -1(iy),l
685
                ld      a,-1(iy)
686
                cp      l
687
                jr      z,ld_95
688
        ld      b, #94
689
        jp      fail_routine
690
ld_95:          cp      #0x55-5
691
                jr      z,ld_96
692
        ld      b, #95
693
        jp      fail_routine
694
ld_96:          ld      hl,#t_var1
695
                ld      (hl),#0x80+10
696
                ld      a,(hl)
697
                cp      #0x80+10
698
                jr      z,ld_97
699
        ld      b, #96
700
        jp      fail_routine
701
ld_97:          ld      ix,#t_var3
702
                ld      -2(ix),#0x55-10
703
                ld      a,-2(ix)
704
                cp      #0x55-10
705
                jr      z,ld_98
706
        ld      b, #97
707
        jp      fail_routine
708
ld_98:          ld      2(ix),#0x55+10
709
                ld      a,2(ix)
710
                cp      #0x55+10
711
                jr      z,ld_99
712
        ld      b, #98
713
        jp      fail_routine
714
ld_99:          ld      iy,#t_var2
715
                ld      -1(iy),#0x80+17
716
                ld      a,-1(iy)
717
                cp      #0x80+17
718
                jr      z,ld_100
719
        ld      b, #99
720
        jp      fail_routine
721
ld_100:
722
                ld      1(iy),#0x80-17
723
                ld      a,1(iy)
724
                cp      #0x80-17
725
                jr      z,ld_101
726
        ld      b, #100
727
        jp      fail_routine
728
ld_101:         ld      hl,#t_var5
729
                ld      bc,#t_var5
730
                ld      (hl),#0xAA-10
731
                ld      a,(bc)
732
                cp      #0xAA-10
733
                jr      z,ld_102
734
        ld      b, #101
735
        jp      fail_routine
736
ld_102:         ld      hl,#t_var3
737
                ld      de,#t_var3
738
                ld      (hl),#0xAA+10
739
                ld      a,(de)
740
                cp      #0xAA+10
741
                jr      z,ld_103
742
        ld      b, #102
743
        jp      fail_routine
744
ld_103:         ld      hl,#t_var2
745
                ld      (hl),#0x7F-25
746
                ld      a,(t_var2)
747
                cp      #0x7F-25
748
                jr      z,ld_104
749
        ld      b, #103
750
        jp      fail_routine
751
ld_104:         ld      hl,#t_var4
752
                ld      bc,#t_var4
753
                ld      a,#0x55-20
754
                ld      (bc),a
755
                ld      b,(hl)
756
                cp      b
757
                jr      z,ld_105
758
        ld      b, #104
759
        jp      fail_routine
760
ld_105:         ld      a,b
761
                cp      #0x55-20
762
                jr      z,ld_106
763
        ld      b, #105
764
        jp      fail_routine
765
ld_106:         ld      hl,#t_var5
766
                ld      de,#t_var5
767
                ld      a,#0x55+20
768
                ld      (de),a
769
                ld      c,(hl)
770
                cp      c
771
                jr      z,ld_107
772
        ld      b, #106
773
        jp      fail_routine
774
ld_107:         ld      a,c
775
                cp      #0x55+20
776
                jr      z,ld_108
777
        ld      b, #107
778
        jp      fail_routine
779
ld_108:         ld      hl,#t_var4
780
                ld      a,#0xFF-24
781
                ld      (t_var4),a
782
                ld      e,(hl)
783
                cp      e
784
                jr      z,ld_109
785
        ld      b, #108
786
        jp      fail_routine
787
ld_109:         ld      a,e
788
                cp      #0xFF-24
789
                jr      z,ld_110
790
        ld      b, #109
791
        jp      fail_routine
792
 
793
; commented out ld_110 so test can continue
794
; may depend on side-effect in original Z80
795
ld_110:         ld      a, #0x55
796
                jp      ld_125
797
;ld_110:                ld      a,#0x55
798
;               ld      i,a
799
;               ld      a,#0
800
;               ld      a,i
801
;               jr      nz,ld_111
802
        ld      b, #110
803
        jp      fail_routine
804
;ld_111:                jp      p,ld_112
805
        ld      b, #111
806
        jp      fail_routine
807
;ld_112:                cp      #0x55
808
;               jr      z,ld_113
809
        ld      b, #112
810
        jp      fail_routine
811
;ld_113:                ld      a,#0x80
812
;               ld      i,a
813
;               ld      a,#0
814
;               ld      a,i
815
;               jr      nz,ld_114
816
        ld      b, #113
817
        jp      fail_routine
818
;ld_114:                jp      m,ld_115
819
        ld      b, #114
820
        jp      fail_routine
821
;ld_115:                cp      #0x80
822
;               jr      z,ld_116
823
        ld      b, #115
824
        jp      fail_routine
825
;ld_116:                ld      a,#0
826
;               ld      i,a
827
;               ld      a,#0x55
828
;               ld      a,i
829
;               jr      z,ld_125
830
        ld      b, #116
831
        jp      fail_routine
832
;   refresh register not implemented
833
;   test for ie ?
834
;ld_117:                ld      a,#0x55
835
;               ld      r,a
836
;               ld      a,#0
837
;               ld      a,r
838
;               jp      p,ld_118
839
;               inc_error_cnt
840
;ld_118:                jr      nz,ld_119
841
;               inc_error_cnt
842
;ld_119:                ld      a,#0xFF
843
;               ld      r,a
844
;               ld      a,#0
845
;               ld      a,r
846
;               jp      m,ld_120
847
;               inc_error_cnt
848
;ld_120:                ld      a,4                     ;totally sequence dependent
849
;               ld      r,a
850
;               ld      a,#0x55
851
;               ld      a,r
852
;               jr      z,ld_121
853
;               inc_error_cnt
854
;ld_121:                ei                              ;set iff2
855
;               ld      a,i
856
;               jp      pe,ld_122               ;iff2 was set
857
;               inc_error_cnt
858
;ld_122:                di                              ;clear iff2
859
;               ld      a,i
860
;               jp      po,ld_123               ;iff2 was cleared
861
;               inc_error_cnt
862
;ld_123:                ei                              ;set iff2
863
;               ld      a,r
864
;               jp      pe,ld_124               ;iff2 was set
865
;               inc_error_cnt
866
;ld_124:                di                              ;clear iff2
867
;               ld      a,r
868
;               jp      po,ld_125               ;iff2 was cleared
869
;               inc_error_cnt
870
;
871
ld_125:         ld      bc,#0x1234
872
                ld      a, #0x12                        ;bjp  guess >data_1234
873
                cp      b
874
                jr      z,ld_126
875
        ld      b, #125
876
        jp      fail_routine
877
ld_126:         ld      a, #0x34                        ;bjp  guess  
878
                cp      c
879
                jr      z,ld_127
880
        ld      b, #126
881
        jp      fail_routine
882
ld_127:         ld      de,#0x55aa
883
                ld      a,#0x55
884
                cp      d
885
                jr      z,ld_128
886
        ld      b, #127
887
        jp      fail_routine
888
ld_128:         ld      a,#0xAA
889
                cp      e
890
                jr      z,ld_129
891
        ld      b, #128
892
        jp      fail_routine
893
ld_129:         ld      hl,#0x7Fff
894
                ld      a,#0x7F
895
                cp      h
896
                jr      z,ld_130
897
        ld      b, #129
898
        jp      fail_routine
899
ld_130:         ld      a,#0xFF
900
                cp      l
901
                jr      z,ld_131
902
        ld      b, #130
903
        jp      fail_routine
904
ld_131:         ld      sp,#0xAA55
905
                ld      hl,#0
906
                add     hl,sp
907
                ld      a,#0xAA
908
                cp      h
909
                jr      z,ld_132
910
        ld      b, #131
911
        jp      fail_routine
912
ld_132:         ld      a,#0x55
913
                cp      l
914
                jr      z,ld_133
915
        ld      b, #132
916
        jp      fail_routine
917
ld_133:         ld      ix,#0xFFff
918
                ld      hl,#0
919
                ld      sp,ix
920
                add     hl,sp
921
                ld      a,#0xFF
922
                cp      h
923
                jr      z,ld_134
924
        ld      b, #133
925
        jp      fail_routine
926
ld_134:         cp      l
927
                jr      z,ld_135
928
        ld      b, #134
929
        jp      fail_routine
930
ld_135:         ld      iy,#0x1234
931
                ld      hl,#0
932
                ld      sp,iy
933
                add     hl,sp
934
                ld      a,#0x12      ;bjp was >data_1234
935
                cp      h
936
                jr      z,ld_136
937
        ld      b, #135
938
        jp      fail_routine
939
ld_136:         ld      a,#0x34      ;bjp was >data_1234
940
                cp      l
941
                jr      z,ld_137
942
        ld      b, #136
943
        jp      fail_routine
944
ld_137:         ld      hl,(#w_var2)   ;gth changed from ,(w_var2)
945
                ld      a,#0x55
946
                cp      h
947
                jr      z,ld_138
948
        ld      b, #137
949
        jp      fail_routine
950
ld_138:         ld      a,#0xAA
951
                cp      l
952
                jr      z,ld_139
953
        ld      b, #138
954
        jp      fail_routine
955
ld_139:         ld      bc,(#w_var1)   ;gth changed from ,(w_var1)
956
                ld      a,#0x12      ;bjp was >data_1234
957
                cp      b
958
                jr      z,ld_140
959
        ld      b, #139
960
        jp      fail_routine
961
ld_140:         ld      a,#0x34      ;bjp was >data_1234
962
                cp      c
963
                jr      z,ld_141
964
        ld      b, #140
965
        jp      fail_routine
966
ld_141:         ld      de,(w_var3)
967
                ld      a,#0x7F
968
                cp      d
969
                jr      z,ld_142
970
        ld      b, #141
971
        jp      fail_routine
972
ld_142:         ld      a,#0xFF
973
                cp      e
974
                jr      z,ld_143
975
        ld      b, #142
976
        jp      fail_routine
977
ld_143:         ld      hl,(w_var4)
978
                ld      a,#0x80
979
                cp      h
980
                jr      z,ld_144
981
        ld      b, #143
982
        jp      fail_routine
983
ld_144:         ld      a,#0
984
                cp      l
985
                jr      z,ld_145
986
        ld      b, #144
987
        jp      fail_routine
988
ld_145:         ld      sp,(w_var5)
989
                ld      hl,#0
990
                add     hl,sp
991
                ld      a,#0xAA
992
                cp      h
993
                jr      z,ld_146
994
        ld      b, #145
995
        jp      fail_routine
996
ld_146:         ld      a,#0x55
997
                cp      l
998
                jr      z,ld_147
999
        ld      b, #146
1000
        jp      fail_routine
1001
ld_147:         ld      ix,(w_var6)
1002
                ld      hl,#0
1003
                ld      sp,ix
1004
                add     hl,sp
1005
                ld      a,#0xFF
1006
                cp      h
1007
                jr      z,ld_148
1008
        ld      b, #147
1009
        jp      fail_routine
1010
ld_148:         cp      l
1011
                jr      z,ld_149
1012
        ld      b, #148
1013
        jp      fail_routine
1014
ld_149:         ld      iy,(#w_var1)
1015
                ld      hl,#0
1016
                ld      sp,iy
1017
                add     hl,sp
1018
                ld      a,#0x12      ;bjp was >data_1234
1019
                cp      h
1020
                jr      z,ld_150
1021
        ld      b, #149
1022
        jp      fail_routine
1023
ld_150:
1024
                ld      sp, #stack_end ; reset stack pointer to EOM
1025
                ld      a,#0x34      ;bjp was >data_1234
1026
                cp      l
1027
                jr      z,ld_151
1028
        ld      b, #150
1029
        jp      fail_routine
1030
ld_151:         ld      hl,#0x1234
1031
                ld      (#tw_var1),hl
1032
                ld      bc,(#tw_var1)
1033
                ld      a,#0x12      ;bjp was >data_1234
1034
                cp      b
1035
                jr      z,ld_152
1036
        ld      b, #151
1037
        jp      fail_routine
1038
ld_152:         ld      a,#0x34      ;bjp was >data_1234
1039
                cp      c
1040
                jr      z,ld_153
1041
        ld      b, #152
1042
        jp      fail_routine
1043
ld_153:         ld      bc,#0x55aa
1044
                ld      (#tw_var2),bc
1045
                ld      hl,(#tw_var2)
1046
                ld      a,#0x55
1047
                cp      h
1048
                jr      z,ld_154
1049
        ld      b, #153
1050
        jp      fail_routine
1051
ld_154:         ld      a,#0xAA
1052
                cp      l
1053
                jr      z,ld_155
1054
        ld      b, #154
1055
        jp      fail_routine
1056
ld_155:         ld      de,#0x7Fff
1057
                ld      (tw_var3),de
1058
                ld      hl,(tw_var3)
1059
                ld      a,#0x7F
1060
                cp      h
1061
                jr      z,ld_156
1062
        ld      b, #155
1063
        jp      fail_routine
1064
ld_156:         ld      a,#0xFF
1065
                cp      l
1066
                jr      z,ld_157
1067
        ld      b, #156
1068
        jp      fail_routine
1069
ld_157:         ld      hl,#0x8000
1070
                ld      (tw_var4),hl
1071
                ld      bc,(tw_var4)
1072
                ld      a,#0x80
1073
                cp      b
1074
                jr      z,ld_158
1075
        ld      b, #157
1076
        jp      fail_routine
1077
ld_158:         ld      a,#0
1078
                cp      c
1079
                jr      z,ld_159
1080
        ld      b, #158
1081
        jp      fail_routine
1082
ld_159:         ld      sp,#0xAA55
1083
                ld      (tw_var5),sp
1084
                ld      hl,(tw_var5)
1085
                ld      a,#0xAA
1086
                cp      h
1087
                jr      z,ld_160
1088
        ld      b, #159
1089
        jp      fail_routine
1090
ld_160:         ld      a,#0x55
1091
                cp      l
1092
                jr      z,ld_161
1093
        ld      b, #160
1094
        jp      fail_routine
1095
ld_161:         ld      ix,#0xFFff
1096
                ld      (tw_var6),ix
1097
                ld      hl,(tw_var6)
1098
                ld      a,#0xFF
1099
                cp      h
1100
                jr      z,ld_162
1101
        ld      b, #161
1102
        jp      fail_routine
1103
ld_162:         cp      l
1104
                jr      z,ld_163
1105
        ld      b, #162
1106
        jp      fail_routine
1107
ld_163:         ld      iy,#0x1234
1108
                ld      (tw_var7),iy
1109
                ld      hl,(tw_var7)
1110
                ld      a,#0x12      ;bjp was >data_1234
1111
                cp      h
1112
                jr      z,ld_164
1113
        ld      b, #163
1114
        jp      fail_routine
1115
ld_164:         ld      a,#0x34      ;bjp was >data_1234
1116
                cp      l
1117
                jr      z,ld_165
1118
        ld      b, #164
1119
        jp      fail_routine
1120
ld_165:         ld      hl,#0x55aa
1121
                ld      sp,hl
1122
                ld      hl,#0
1123
                add     hl,sp
1124
                ld      a,#0x55
1125
                cp      h
1126
                jr      z,ld_166
1127
        ld      b, #165
1128
        jp      fail_routine
1129
ld_166:         ld      a,#0xAA
1130
                cp      l
1131
                jr      z,end_of_test
1132
        ld      b, #166
1133
        jp      fail_routine
1134
end_of_test:
1135
 
1136
        jp      passed
1137
 
1138
 
1139
var1:           .db     #0xFF
1140
var2:           .db     #0x55
1141
var3:           .db     #0x80
1142
var4:           .db     #0xAA
1143
var5:           .db     #0x7F
1144
 
1145
w_var1:         .dw     #0x1234
1146
w_var2:         .dw     #0x55aa
1147
w_var3:         .dw     #0x7fff
1148
w_var4:         .dw     #0x8000
1149
w_var5:         .dw     #0xaa55
1150
w_var6:         .dw     #0xffff
1151
 
1152
.area    _DATA
1153
 
1154
 
1155
t_var1:         .db     0
1156
t_var2:         .db     0
1157
t_var3:         .db     0
1158
t_var4:         .db     0
1159
t_var5:         .db     0
1160
 
1161
 
1162
tw_var1:        .dw     0
1163
tw_var2:        .dw     0
1164
tw_var3:        .dw     0
1165
tw_var4:        .dw     0
1166
tw_var5:        .dw     0
1167
tw_var6:        .dw     0
1168
tw_var7:        .dw     0

powered by: WebSVN 2.1.0

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