|
|
1.1 root 1:
2:
3:
4: /* RELATIVE DEFERRED INDEXED ADDRESSING MODE TEST */
5: /* */
6: /* */
7: /* */
8: /* Syst.s - Constants */
9: /* */
10: .set IPL,8
11: .set HIGH,31
12: .set ZERO,0
13: .set ONES,0xffffffff
14: .set N,8
15: .set Z,4
16: .set V,2
17: .set C,1
18: .set T,16
19: .set IV,32
20: .set FU,64
21: .set DV,128
22: .set PSWMASK,0x003f
23:
24: .globl _reldi_mode
25: _reldi_mode:
26: callf $4,_setjmp /* save context */
27: movab _reldi_mode,_stpc
28: movl $1,_subtst /* subtest number */
29: movl $1,_no_opr /* number of operands in use */
30: 0: clrl r5
31: movb $3,r4 /*index */
32: movl r4,_opr /* first operand */
33: movb *dta[r4],r5 /*get third byte from data_table*/
34: cmpl r5,$0x44 /*which is 0x44 */
35: beql 1f
36: er1:
37: bbs $0,_scoplp,0b /* if set loop on error */
38: movl $1,_ercode /*error code data miscompare*/
39: movl r5,_actual /* actual data */
40: movl $0x0044,_expected /*expected; r5 = observed*/
41: jmp *badrtn /*display error */
42: 1: cmpl $3,r4 /*check index reg r4 unchanged */
43: beql 3f
44: er3:
45: bbs $0,_scoplp,0b /* if set loop on error */
46: movl $3,_ercode /*error code operand was modified */
47: movl r4,_actual /* actual data */
48: movl $3,_expected /*expected; r4 = observed*/
49: jmp *badrtn /*display error */
50: 3: bbs $0,_force_lp,0b /* if set loop on last subtest */
51: 3: callf $4,_setjmp /* save context */
52: movab 3b,_stpc /* save subtest pc */
53: movl $2,_subtst /* subtest number */
54: movl $1,_no_opr /* number of operands in use */
55: movl r4,_opr /* first operand */
56: 0: movw *dta[r4],r5 /*get third word from data_table*/
57: cmpl r5,$0x7788 /*which is 0x7788 */
58: beql 4f
59: er4:
60: bbs $0,_scoplp,0b /* if set loop on error */
61: movl $1,_ercode /*error code data miscompare*/
62: movl r5,_actual /* actual data */
63: movl $0x7788,_expected /*expected; r5 = observed*/
64: jmp *badrtn /*display error */
65: 4: bbs $0,_force_lp,0b /* if set loop on last subtest */
66: 4: callf $4,_setjmp /* save context */
67: movab 4b,_stpc /* save subtest pc */
68: movl $3,_subtst /* subtest number */
69: movl $1,_no_opr /* number of operands in use */
70: movl r4,_opr /* first operand */
71: 0: movl *dta[r4],r5 /*get third longword from table */
72: cmpl r5,$0xddeeff00 /*which is 0xddeeff00 */
73: beql 5f
74: er5:
75: bbs $0,_scoplp,0b /* if set loop on error */
76: movl $1,_ercode /*error code data miscompare*/
77: movl r5,_actual /* actual data */
78: movl $0xddeeff00,_expected /*expected; r5 = observed*/
79: jmp *badrtn /*display error */
80: 5:
81: bbs $0,_force_lp,0b /* if set loop on last subtest */
82: movl $0,_ercode /*no error*/
83: jmp *return /*end of test - goto monitor */
84:
85:
86: /* Variables */
87:
88: .align 2
89: disp: .space 4
90: data_table:
91: .fill 1,4,0x11223344 /*relative location 0*/
92: .fill 1,4,0x55667788 /*rl 4 */
93: .fill 1,4,0x99aabbcc /*rl 8 */
94: .fill 1,4,0xddeeff00 /*rl 12 */
95: .fill 1,4,0x00000000
96:
97: .align 2
98: dta: .long data_table
99: dta1: .long disp
100:
101: /* end of file */
102:
103:
104:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.