|
|
1.1 root 1:
2:
3: /* DISPLACEMENT INDEXED 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: .globl _dispi_mode
24: _dispi_mode:
25: callf $4,_setjmp /* save context for error return */
26: movab _dispi_mode,_stpc /* save subtest pc */
27: movl $1,_subtst /* subtest number */
28: movl $3,_no_opr /*b number of operands used */
29: 0: bicpsw $PSWMASK
30: clrl r5
31: movl dta1,r3 /*data table address - base */
32: movb $3,r4 /*index */
33: movl r3,_opr /* first operand */
34: movl r4,_opr + 4 /* second operand */
35: movl r5,_opr + 8 /* third operand */
36: movb 4(r3)[r4],r5 /*get third byte from data_table*/
37: cmpl r5,$0x44 /*which is 0x44 */
38: beql 1f
39: er1:
40: bbs $0,_scoplp,0b /* if set scope loop on error */
41: movl $1,_ercode /*error code data miscompare */
42: movl r5,_actual /* actual data */
43: movl $0x0044,_expected /*expected; r5 = observed*/
44: jmp *badrtn /*display error */
45: 1: cmpl r3,dta1 /*check r3 did not changed */
46: beql 2f
47: er2:
48: bbs $0,_scoplp,0b /* if set scope loop on error */
49: movl $3,_ercode /*error code operand was modified */
50: movl r3,_actual /* actual data */
51: movl dta1,_expected /*expected; r3 = observed*/
52: jmp *badrtn /*display error */
53: 2: cmpl $3,r4 /*check index reg r4 unchanged */
54: beql 3f
55: er3:
56: bbs $0,_scoplp,0b /* if set scope loop on error */
57: movl $3,_ercode /*error code operand was modified */
58: movl r4,_actual /* actual data */
59: movl $3,_expected /*expected; r5 = observed*/
60: jmp *badrtn /*display error */
61: 3: bbs $0,_force_lp,0b /* if set loop on last subtest */
62: 3: callf $4,_setjmp /* save context for error return */
63: movab 3b,_stpc /* save subtest pc */
64: movl $2,_subtst /* subtest number */
65: movl $3,_no_opr /*b number of operands used */
66: movl r3,_opr /* first operand */
67: movl r4,_opr + 4 /* second operand */
68: movl r5,_opr + 8 /* third operand */
69: 0: movw 4(r3)[r4],r5 /*get third word from data_table*/
70: cmpl r5,$0x7788 /*which is 0x7788 */
71: beql 4f
72: er4:
73: bbs $0,_scoplp,0b /* if set scope loop on error */
74: movl $1,_ercode /*error code data miscompare */
75: movl r5,_actual /* actual data */
76: movl $0x7788,_expected /*expected; */
77: jmp *badrtn /*display error */
78: 4: bbs $0,_force_lp,0b /* if set loop on last subtest */
79: 4: callf $4,_setjmp /* save context for error return */
80: movab 4b,_stpc /* save subtest pc */
81: movl $3,_subtst /* subtest number */
82: movl $3,_no_opr /*b number of operands used */
83: movl r3,_opr /* first operand */
84: movl r4,_opr + 4 /* second operand */
85: movl r5,_opr + 8 /* third operand */
86: 0: movl 4(r3)[r4],r5 /*get third longword from table */
87: cmpl r5,$0xddeeff00 /*which is 0xddeeff00 */
88: beql 5f
89: er5:
90: bbs $0,_scoplp,0b /* if set scope loop on error */
91: movl $1,_ercode /*error code data miscompare */
92: movl r5,_actual /* actual data */
93: movl $0xddeeff00,_expected /*expected; */
94: jmp *badrtn /*display error */
95: 5:
96: bbs $0,_force_lp,0b /* if set loop on last subtest */
97: movl $0,_ercode /*no error*/
98: jmp *return /*end of test - goto monitor */
99:
100:
101: /* Variables */
102:
103: .align 2
104: disp: .space 4
105: data_table:
106: .fill 1,4,0x11223344 /*relative location 0*/
107: .fill 1,4,0x55667788 /*rl 4 */
108: .fill 1,4,0x99aabbcc /*rl 8 */
109: .fill 1,4,0xddeeff00 /*rl 12 */
110: .fill 1,4,0x00000000
111:
112: .align 2
113: dta1: .long disp
114:
115: /* end of file */
116:
117:
118:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.