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

Subversion Repositories t48

[/] [t48/] [tags/] [rel_1_1/] [sw/] [verif/] [black_box/] [rb/] [misc/] [test.asm] - Blame information for rev 12

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 12 arniml
        ;; *******************************************************************
2
        ;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $
3
        ;;
4
        ;; Test several operations in conjunction with RB-switching.
5
        ;; *******************************************************************
6
 
7
        INCLUDE "cpu.inc"
8
        INCLUDE "pass_fail.inc"
9
 
10
        ORG     0
11
 
12
        ;; Start of test
13
 
14
        ;; fill data memory with 0
15
        clr     a
16
        mov     r0, a
17
fill_loop:
18
        mov     @r0, a
19
        djnz    r0, fill_loop
20
 
21
        ;; set up both register banks with indirect writes
22
        mov     r0, #01FH
23
        mov     r1, #008H
24
fill_rb1_loop:
25
        mov     a, r0
26
        mov     @r0, a
27
        dec     r0
28
        djnz    r1, fill_rb1_loop
29
 
30
        mov     r0, #007H
31
fill_rb0_loop:
32
        mov     a, r0
33
        mov     @r0, a
34
        djnz    r0, fill_rb0_loop
35
        mov     a, r0
36
        mov     @r0, a
37
 
38
        ;; check RB0
39
        call    check_rb0
40
 
41
        ;; check RB1
42
        sel     rb1
43
        call    check_rb1
44
 
45
        ;; check RB0 again
46
        sel     rb0
47
        call    check_rb0
48
 
49
        ;; check memory between RB0 and RB1 for 0
50
        mov     r0, #00EH       ; check 14 bytes
51
        mov     r1, #00AH       ; starting from address A
52
chk_loop1:
53
        mov     a, @r1
54
        jnz     fail
55
        inc     r1
56
        djnz    r0, chk_loop1
57
 
58
        ;; check memory above RB1 for 0
59
        mov     r0, #0100H - 0020H ; check 256-32 bytes
60
        mov     r1, #020H       ; starting from address 20H
61
chk_loop2:
62
        mov     a, @r1
63
        jnz     fail
64
        inc     r1
65
        djnz    r0, chk_loop2
66
 
67
        ;; now use RB1 to indirect address register 0-7
68
        mov     r1, #001H       ; restore r1
69
        mov     r0, #000H       ; restore r0, set trap
70
        sel     rb1
71
        mov     r0, #007H
72
ind_chk_loop:
73
        mov     a, @r0
74
        cpl     a
75
        add     a, r0
76
        cpl     a
77
        jnz     fail
78
        djnz    r0, ind_chk_loop
79
 
80
 
81
pass:   PASS
82
 
83
fail:   FAIL
84
 
85
 
86
 
87
        ORG     0300H
88
check_rb0:
89
        mov     a, r0
90
        jnz     fail_p3
91
        mov     a,r1
92
        add     a, #0FFH
93
        jnz     fail_p3
94
        mov     a,r2
95
        add     a, #0FEH
96
        jnz     fail_p3
97
        mov     a,r3
98
        add     a, #0FDH
99
        jnz     fail_p3
100
        mov     a,r4
101
        add     a, #0FCH
102
        jnz     fail_p3
103
        mov     a,r5
104
        add     a, #0FBH
105
        jnz     fail_p3
106
        mov     a,r6
107
        add     a, #0FAH
108
        jnz     fail_p3
109
        mov     a,r7
110
        add     a, #0F9H
111
        jnz     fail_p3
112
        ret
113
 
114
check_rb1:
115
        mov     a, r0
116
        add     a, #0E8H
117
        jnz     fail_p3
118
        mov     a,r1
119
        add     a, #0E7H
120
        jnz     fail_p3
121
        mov     a,r2
122
        add     a, #0E6H
123
        jnz     fail_p3
124
        mov     a,r3
125
        add     a, #0E5H
126
        jnz     fail_p3
127
        mov     a,r4
128
        add     a, #0E4H
129
        jnz     fail_p3
130
        mov     a,r5
131
        add     a, #0E3H
132
        jnz     fail_p3
133
        mov     a,r6
134
        add     a, #0E2H
135
        jnz     fail_p3
136
        mov     a,r7
137
        add     a, #0E1H
138
        jnz     fail_p3
139
        ret
140
 
141
fail_p3:
142
        FAIL

powered by: WebSVN 2.1.0

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