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

Subversion Repositories t400

[/] [t400/] [trunk/] [sw/] [verif/] [black_box/] [xis/] [test.asm] - Blame information for rev 179

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 arniml
        ;; *******************************************************************
2 179 arniml
        ;; $Id: test.asm 179 2009-04-01 19:48:38Z arniml $
3 2 arniml
        ;;
4
        ;; Checks the XIS instruction.
5
        ;;
6
 
7
        ;; the cpu type is defined on asl's command line
8
 
9
        org     0x00
10
        clra
11
 
12
 
13
        ;; *******************************************************************
14
        ;; XOR 0
15
        jsr     init_ram
16
 
17
        ;; xor 0 in digit 0
18
        lbi     0, 14
19
        ;;
20
        cba
21
        comp
22
        xis     0                ; 0, 0xe = 0x1
23
        ;;
24
        cba
25
        comp
26
        xis     0                ; 0, 0xf = 0x0
27
        jmp     fail
28
 
29
        ;; xor 0 in digit 1
30
        lbi     1, 14
31
        ;;
32
        cba
33
        comp
34
        aisc    1 << 2
35
        xis     0                ; 1, 0xe = 0x5
36
        ;;
37
        cba
38
        comp
39
        aisc    1 << 2
40
        xis     0                ; 1, 0xf = 0x4
41
        jmp     fail
42
 
43
        ;; xor 0 in digit 2
44
        lbi     2, 14
45
        ;;
46
        cba
47
        comp
48
        aisc    2 << 2
49
        xis     0                ; 2, 0xe = 0x9
50
        ;;
51
        cba
52
        comp
53
        aisc    2 << 2
54
        xis     0                ; 2, 0xf = 0x8
55
        jmp     fail
56
 
57
        ;; xor 0 in digit 3
58
        lbi     3, 14
59
        ;;
60
        cba
61
        comp
62
        aisc    3 << 2
63
        xis     0                ; 3, 0xe = 0xd
64
        ;;
65
        cba
66
        comp
67
        aisc    3 << 2
68
        xis     0                ; 3, 0xf = 0xc
69
        jmp     fail
70
 
71
        jsr     check_ram
72
 
73
 
74
        ;; *******************************************************************
75
        ;; XOR 1
76
        jsr     init_ram
77
 
78
        ;;
79
        ;; xor 1 in digit 0 & 1
80
        ;;
81
        lbi     0, 14
82
        ;;
83
        cba
84
        comp
85
        xis     1               ; 0, 0xe = 0x1
86
        ;;
87
        cba
88
        comp
89
        aisc    1 << 2
90
        xis     1               ; 1, 0xf = 0x4
91
        jmp     fail
92
        ;; check remaining Br == 0
93
        clra
94
        cab
95
        aisc    0x3             ; marker value
96
        ske
97
        jmp     fail
98
        ;; reload to Br = 1
99
        lbi     1, 14
100
        ;;
101
        cba
102
        comp
103
        aisc    1 << 2
104
        xis     1               ; 1, 0xe = 0x5
105
        ;;
106
        cba
107
        comp
108
        xis     1               ; 0, 0xf = 0x0
109
        jmp     fail
110
        ;; check remaining Br == 1
111
        clra
112
        cab
113
        aisc    0x7             ; marker value
114
        ske
115
        jmp     fail
116
        jmp     pass
117
 
118
        ;;
119
        ;; xor 1 in digit 2 & 3
120
        ;;
121
        lbi     2, 14
122
        ;;
123
        cba
124
        comp
125
        aisc    2 << 2
126
        xis     1               ; 2, 0xe = 0x9
127
        ;;
128
        cba
129
        comp
130
        aisc    3 << 2
131
        xis     1               ; 3, 0xf = 0xc
132
        jmp     fail
133
        ;; check remaining Br == 2
134
        clra
135
        cab
136
        aisc    0xb             ; marker value
137
        ske
138
        jmp     fail
139
        ;; reload to Br = 3
140
        lbi     3, 14
141
        ;;
142
        cba
143
        comp
144
        aisc    3 << 2
145
        xis     1               ; 3, 0xe = 0xc
146
        ;;
147
        cba
148
        comp
149
        aisc    2 << 2
150
        xis     1               ; 2, 0xf = 0x8
151
        jmp     fail
152
        ;; check remaining BR == 3
153
        clra
154
        cab
155
        aisc    0xf             ; marker value
156
        ske
157
        jmp     fail
158
 
159
        jsr     check_ram
160
 
161
 
162
        ;; *******************************************************************
163
        ;; XOR 2
164
        jsr     init_ram
165
 
166
        ;;
167
        ;; xor 2 in digit 0 & 2
168
        ;;
169
        lbi     0, 14
170
        ;;
171
        cba
172
        comp
173
        xis     2               ; 0, 0xe = 0x1
174
        ;;
175
        cba
176
        comp
177
        aisc    2 << 2
178
        xis     2               ; 2, 0xf = 0x8
179
        jmp     fail
180
        ;; check remainig Br == 0
181
        clra
182
        cab
183
        aisc    0xb             ; marker value
184
        ske
185
        jmp     fail
186
        ;; reload to Br == 2
187
        lbi     2, 14
188
        ;;
189
        cba
190
        comp
191
        aisc    2 << 2
192
        xis     2               ; 2, 0xe = 0x9
193
        ;;
194
        cba
195
        comp
196
        xis     2               ; 0, 0xf = 0x0
197
        jmp     fail
198
        ;; check remainig Br == 2
199
        clra
200
        cab
201
        aisc    0x3             ; marker value
202
        ske
203
        jmp     fail
204
 
205
        ;;
206
        ;; xor 2 in digit 1 & 3
207
        ;;
208
        lbi     1, 14
209
        ;;
210
        cba
211
        comp
212
        aisc    1 << 2
213
        xis     2               ; 1, 0xe = 0x5
214
        ;;
215
        cba
216
        comp
217
        aisc    3 << 2
218
        xis     2               ; 3, 0xf = 0xc
219
        jmp     fail
220
        ;; check remaining Br == 1
221
        clra
222
        cab
223
        aisc    0x7             ; marker value
224
        ske
225
        jmp     fail
226
        ;; reload to Br = 3
227
        lbi     3, 14
228
        ;;
229
        cba
230
        comp
231
        aisc    3 << 2
232
        xis     2               ; 3, 0xe = 0xd
233
        ;;
234
        cba
235
        comp
236
        aisc    1 << 2
237
        xis     2               ; 1, 0xf = 0x4
238
        jmp     fail
239
        ;; check remaining Br == 3
240
        clra
241
        cab
242
        aisc    0xf             ; marker value
243
        ske
244
        jmp     fail
245
 
246
        jsr     check_ram
247
 
248
 
249
        ;; *******************************************************************
250
        ;; XOR 3
251
        jsr     init_ram
252
 
253
        ;;
254
        ;; xor 3 in digit 0 & 3
255
        ;;
256
        lbi     0, 14
257
        ;;
258
        cba
259
        comp
260
        xis     3               ; 0, 0xe = 0x1
261
        ;;
262
        cba
263
        comp
264
        aisc    3 << 2
265
        xis     3               ; 3, 0xf = 0xc
266
        jmp     fail
267
        ;; check remaining BR == 0
268
        clra
269
        cab
270
        aisc    0x3             ; marker value
271
        ske
272
        jmp     fail
273
        ;; reload BR = 3
274
        lbi     3, 14
275
        ;;
276
        cba
277
        comp
278
        aisc    3 << 2
279
        xis     3               ; 3, 0xe = 0xd
280
        ;;
281
        cba
282
        comp
283
        xis     3               ; 0, 0xf = 0x0
284
        jmp     fail
285
        ;; check remaining BR == 3
286
        clra
287
        cab
288
        aisc    0xf             ; marker value
289
        ske
290
        jmp     fail
291
 
292
        ;;
293
        ;; xor 3 in digit 1 & 2
294
        ;;
295
        lbi     1, 14
296
        ;;
297
        cba
298
        comp
299
        aisc    1 << 2
300
        xis     3               ; 1, 0xe = 0x5
301
        ;;
302
        cba
303
        comp
304
        aisc    2 << 2
305
        xis     3               ; 2, 0xf = 0x8
306
        jmp     fail
307
        ;; check remaining BR == 1
308
        clra
309
        cab
310
        aisc    0x7             ; marker value
311
        ske
312
        jmp     fail
313
        ;; reload BR = 2
314
        lbi     2, 14
315
        ;;
316
        cba
317
        comp
318
        aisc    2 << 2
319
        xis     3               ; 2, 0xe = 0x9
320
        ;;
321
        cba
322
        comp
323
        aisc    1 << 2
324
        xis     3               ; 1, 0xf = 0x4
325
        jmp     fail
326
        ;; check remaining BR == 2
327
        clra
328
        cab
329
        aisc    0xb             ; marker value
330
        ske
331
        jmp     fail
332
 
333
        jsr     check_ram
334
 
335
 
336
        jmp     pass
337
 
338
 
339
 
340
 
341
        org     0x150
342
 
343
        ;; preload digits of each data register
344
init_ram:
345
        ;; Br = 0
346
        lbi     0, 14
347
        stii    0x3
348
        stii    0x2
349
        stii    0x3             ; marker value
350
        ;; Br = 1
351
        lbi     1, 14
352
        stii    0x7
353
        stii    0x6
354
        stii    0x7             ; marker value
355
        ;; Br = 2
356
        lbi     2, 14
357
        stii    0xb
358
        stii    0xa
359
        stii    0xb             ; marker value
360
        ;; Br = 3
361
        lbi     3, 14
362
        stii    0xf
363
        stii    0xe
364
        stii    0xf             ; marker value
365
        ret
366
 
367
 
368
check   MACRO   dig
369
        ;; check dig, 14
370
        clra
371
        aisc    0xe
372
        cab
373
        comp
374
        IF      dig > 0
375
        aisc    dig << 2
376
        ENDIF
377
        ske
378
        jmp     fail
379
        ;; check 0, 15
380
        clra
381
        aisc    0xf
382
        cab
383
        comp
384
        IF      dig > 0
385
        aisc    dig << 2
386
        ENDIF
387
        ske
388
        jmp     fail
389
        ENDM
390
 
391
        ;; check contents of RAM entries
392
check_ram:
393
        ;; check digit 0
394
        lbi     0, 0
395
        check   0
396
 
397
        ;; check digit 1
398
        lbi     1, 0
399
        check   1
400
 
401
        ;; check digit 2
402
        lbi     2, 0
403
        check   2
404
 
405
        ;; check digit 3
406
        lbi     3, 0
407
        check   3
408
 
409
        ret
410
 
411
        include "pass_fail.asm"

powered by: WebSVN 2.1.0

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