|
|
1.1 root 1:
2:
3: /* RELATIVE DEFERRED ADDRESSING MODE TEST */
4: /* */
5: /* */
6: /* */
7: /* Syst.s - Constants */
8: /* */
9: .set IPL,8
10: .set HIGH,31
11: .set ZERO,0
12: .set ONES,0xffffffff
13: .set N,8
14: .set Z,4
15: .set V,2
16: .set C,1
17: .set T,16
18: .set IV,32
19: .set FU,64
20: .set DV,128
21: .set PSWMASK,0x003f
22:
23:
24: .globl _reld_mode
25: _reld_mode:
26: /*byte relative deferred */
27: callf $4,_setjmp /* save context */
28: movab _reld_mode,_stpc /* save subtest pc */
29: movl $1,_subtst /* subtest number */
30: movl $1,_no_opr /* number of operands in use */
31: movl *bloc1,_opr /* first operand */
32: 0: movl *bloc1,r3 /*r3 = (bloc) */
33: cmpl r3,$0xaaaaaaaa /*r3 = literal value? */
34: beql 1f /*if yes, goto next test */
35: er1:
36: bbs $0,_force_lp,0b /* if set loop on subtest */
37: movl $1,_ercode /*error code data miscompare*/
38: movl r3,_actual /* actual data */
39: movl $0xaaaaaaaa,_expected /*expected; r3 = observed*/
40: jmp *badrtn /*error - dislay error */
41: 1:
42: /*word relative deferred */
43: bbs $0,_force_lp,0b /* if set loop on last subtest */
44: 1: callf $4,_setjmp /* save context */
45: movab 1b,_stpc /* save subtest pc */
46: movl $2,_subtst /* subtest number */
47: movl $1,_no_opr /* number of operands in use */
48: movl *wloc1,_opr /* first operand */
49: 0: bicpsw $PSWMASK /*psw = 0 */
50: movl *wloc1,r3 /*r3 = (wloc) */
51: cmpl r3,$0xbbbbbbbb /*r3 = literal value? */
52: beql 2f /*if yes, goto next test */
53: er2:
54: bbs $0,_force_lp,0b /* if set loop on subtest */
55: movl $1,_ercode /*error code data miscompare*/
56: movl r3,_actual /* actual data */
57: movl $0xbbbbbbbb,_expected /*expected; r3 = observed*/
58: jmp *badrtn /*error - dislay error */
59: 2:
60: /*long word relative deferred */
61: bbs $0,_force_lp,0b /* if set loop on last subtest */
62: 2: callf $4,_setjmp /* save context */
63: movab 2b,_stpc /* save subtest pc */
64: movl $3,_subtst /* subtest number */
65: movl $1,_no_opr /* number of operands in use */
66: movl *lloc1,_opr /* first operand */
67: 0: bicpsw $PSWMASK /*psw = 0 */
68: movl $0x55555555,lloc
69: movl *lloc1,r3 /*r3 = (lloc) */
70: cmpl r3,$0x55555555 /*r3 = literal value? */
71: beql 3f /*if yes, goto next test */
72: er3:
73: bbs $0,_force_lp,0b /* if set loop on subtest */
74: movl $1,_ercode /*error code data miscompare*/
75: movl r3,_actual /* actual data */
76: movl $0x55555555,_expected /*expected; r3 = observed*/
77: jmp *badrtn /*error - dislay error */
78: 3:
79: bbs $0,_force_lp,0b /* if set loop on last subtest */
80: 3: callf $4,_setjmp /* save context */
81: movab 3b,_stpc /* save subtest pc */
82: movl $4,_subtst /* subtest number */
83: movl $1,_no_opr /* number of operands in use */
84: movl $-1,_opr /* first operand */
85: 0: bicpsw $PSWMASK /*relativedeferred addressing in*/
86: /*second operand */
87: movl $-1,*lloc1
88: cmpl lloc,$-1
89: beql 4f
90: er4:
91: bbs $0,_force_lp,0b /* if set loop on subtest */
92: movl $1,_ercode /*error code data miscompare*/
93: movl lloc,_actual /* actual data */
94: movl $-1,_expected /*expected; r3 = observed*/
95: jmp *badrtn /*error - dislay error */
96: 4:
97: bbs $0,_force_lp,0b /* if set loop on last subtest */
98: movl $0,_ercode /*no error*/
99: jmp *return /*end of test - goto monitor */
100:
101:
102: /* Variables list */
103: .align 2
104: bloc: .fill 4,1,0xaa
105: bloc1: .long bloc
106: empty1: .space 255 /*255 bytes of zeros */
107: /*to force word addressing */
108: .align 2
109: wloc: .fill 1,4,0xbbbbbbbb
110: wloc1: .long wloc
111: empty2: .space 16565 /*to force long word addressing */
112: .align 2
113: lloc: .fill 1,4,0x55555555
114: lloc1: .long lloc
115:
116:
117: /* End of file */
118:
119:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.