|
|
1.1 root 1: /* (BYTE,WORD,LONGWORD) DISPLACEMENT DEFERED ADDRESSING MODES TEST */
2: /* */
3: /* */
4: /* */
5: /* Syst.s - Constants */
6: /* */
7: .set IPL,8
8: .set HIGH,31
9: .set ZERO,0
10: .set ONES,0xffffffff
11: .set N,8
12: .set Z,4
13: .set V,2
14: .set C,1
15: .set T,16
16: .set IV,32
17: .set FU,64
18: .set DV,128
19: .set PSWMASK,0x003f
20:
21: .globl _dispd_mode
22: _dispd_mode:
23: callf $4,_setjmp /* save context */
24: movab _dispd_mode,_stpc /* save pc of subtest start */
25: movl $1,_subtst /* subtest number */
26: movl $1,_no_opr /* number of operands in use */
27: movl base_add,_opr /* first operand */
28: 0: movl base_add,r3 /*base of the address_table*/
29: movl *b^4(r3),r4 /*byte disp deferred mode*/
30: cmpl r4,$0x33221100
31: beql 1f
32: bbs $0,_scoplp,0b /* if set scope loop on error */
33: movl $1,_ercode /*error code data miscompare*/
34: movl r4,_actual /* actual data */
35: movl $0x33221100,_expected /*expected data*/
36: jmp *badrtn
37:
38: 1: bbs $0,_force_lp,0b /* if set loop on last subtest */
39: 1: callf $4,_setjmp /* save context */
40: movab 1b,_stpc /* save pc of subtest start */
41: movl $2,_subtst /* subtest number */
42: movl $1,_no_opr /* number of operands in use */
43: 0: movl $0x55555555,r4
44: movl r4,*b^4(r3)
45: cmpl bbase1,$0x55555555 /*this is the actual location */
46: beql 2f /* changed by the previous inst. */
47: bbs $0,_scoplp,0b /* if set scope loop on error */
48: movl $1,_ercode /*error code data miscompare*/
49: movl bbase1,_actual /* actual data */
50: movl $0x55555555,_expected /*expected data*/
51: jmp *badrtn
52: 2:
53: bbs $0,_force_lp,0b /* if set loop on last subtest */
54: 2: callf $4,_setjmp /* save context */
55: movab 2b,_stpc /* save pc of subtest start */
56: movl $3,_subtst /* subtest number */
57: movl $1,_no_opr /* number of operands in use */
58: 0: movl $0x33221100,bbase1 /* Restore original value */
59: movl *w^32012(r3),r4 /*word disp deferred mode*/
60: cmpl r4,$0xaaaaaaaa
61: beql 3f
62: bbs $0,_scoplp,0b /* if set scope loop on error */
63: movl $1,_ercode /*error code data miscompare*/
64: movl r4,_actual /* actual data */
65: movl $0xaaaaaaaa,_expected /*expected data*/
66: jmp *badrtn /*byte disp def mode did not move right value*/
67: 3:
68: bbs $0,_force_lp,0b /* if set loop on last subtest */
69: 3: callf $4,_setjmp /* save context */
70: movab 3b,_stpc /* save pc of subtest start */
71: movl $4,_subtst /* subtest number */
72: movl $1,_no_opr /* number of operands in use */
73: 0: movl $0x55555555,r4
74: movl r4,*w^32012(r3)
75: cmpl bbase2,$0x55555555 /*this is the actual location */
76: beql 4f /* changed by the previous inst. */
77: bbs $0,_scoplp,0b /* if set scope loop on error */
78: movl $1,_ercode /*error code data miscompare*/
79: movl bbase2,_actual /* actual data */
80: movl $0x55555555,_expected /*expected data*/
81: jmp *badrtn /*byte disp def mode did not move right value*/
82: 4:
83: bbs $0,_force_lp,0b /* if set loop on last subtest */
84: 4: callf $4,_setjmp /* save context */
85: movab 4b,_stpc /* save pc of subtest start */
86: movl $5,_subtst /* subtest number */
87: movl $1,_no_opr /* number of operands in use */
88: 0: movl $0xaaaaaaaa,bbase2 /* Restore original value */
89: movl $0xbbbbbbbb,bbase3 /* rload bbase3 changed by subtst 5*/
90: movl *l^66020(r3),r4 /*longword disp deferred mode*/
91: cmpl r4,$0xbbbbbbbb
92: beql 5f
93: bbs $0,_scoplp,0b /* if set scope loop on error */
94: movl $1,_ercode /*error code data miscompare*/
95: movl r4,_actual /* actual data */
96: movl $0xbbbbbbbb,_expected /*expected data*/
97: jmp *badrtn /*byte disp def mode did not move right value*/
98: 5:
99: bbs $0,_force_lp,0b /* if set loop on last subtest */
100: 5: callf $4,_setjmp /* save context */
101: movab 5b,_stpc /* save pc of subtest start */
102: movl $6,_subtst /* subtest number */
103: movl $1,_no_opr /* number of operands in use */
104: 0: movl $0x55555555,r4
105: movl r4,*l^66020(r3)
106: cmpl bbase3,$0x55555555 /*this is the actual location */
107: beql 6f /* changed by the previous inst. */
108: bbs $0,_scoplp,0b /* if set scope loop on error */
109: movl $1,_ercode /*error code data miscompare*/
110: movl bbase3,_actual /* actual data */
111: movl $0x55555555,_expected /*expected data*/
112: jmp *badrtn /*byte disp def mode did not move right value */
113: 6:
114: bbs $0,_force_lp,0b /* if set loop on last subtest */
115: movl $0,r2 /*no error*/
116: jmp *return /*end of test */
117: #
118: #
119: #
120: /* LONGWORD DISPLACEMENT ADDRESSING MODE TEST */
121: /* */
122: /* */
123: /* */
124:
125: .globl _ldisp_mode
126: _ldisp_mode:
127: callf $4,_setjmp /* save context */
128: movab _ldisp_mode,_stpc /* save pc of subtest start */
129: movl $1,_subtst /* subtest number */
130: movl $1,_no_opr /* number of operands in use */
131: movl base_add,_opr /* first operand */
132: 0: movl base_add,r3 /*move address of label bbase1 */
133: movl $0xffffffff,lbasel /* initialize data changed by tst */
134: movb $0x55,l^65539(r3) /*change byte 127 of bbase1 */
135: cmpl lbasel,$0xffffff55 /*see if it happened */
136: beql 1f
137: bbs $0,_scoplp,0b /* if set scope loop on error */
138: movl $1,_ercode /*error code data miscompare*/
139: movl lbasel,_actual /* actual data */
140: movl $0xffffff55,_expected /*expected data*/
141: jmp *badrtn /*longword disp mode did not */
142: 1:
143: cmpl r3,$add_table /*check r3 did not changed */
144: beql 2f
145: bbs $0,_scoplp,0b /* if set scope loop on error */
146: movl $3,_ercode /*error code operand was changed*/
147: movl r3,_actual /* actual data */
148: movl $add_table,_expected /*expected data*/
149: jmp *badrtn /*longword disp changed base in r1*/
150: 2:
151: bbs $0,_force_lp,0b /* if set loop on last subtest */
152: 2: callf $4,_setjmp /* save context */
153: movab 2b,_stpc /* save pc of subtest start */
154: movl $2,_subtst /* subtest number */
155: movl $1,_no_opr /* number of operands in use */
156: 0: movb l^32768(r3),l^65538(r3)
157: cmpl lbasel,$0xffff1155
158: beql 3f
159: bbs $0,_scoplp,0b /* if set scope loop on error */
160: movl $1,_ercode /*error code data miscompare*/
161: movl lbasel,_actual /* actual data */
162: movl $0xffff1155,_expected /*expected data*/
163: jmp *badrtn /*longword disp mode did not */
164: /*changed byte correctly */
165: 3:
166: cmpl r3,$add_table
167: beql 4f
168: bbs $0,_scoplp,0b /* if set scope loop on error */
169: movl $3,_ercode /*error code operand was changed*/
170: movl r3,_actual /* actual data */
171: movl $add_table,_expected /*expected data*/
172: jmp *badrtn /*longword disp changed base in r1*/
173: 4:
174: bbs $0,_force_lp,0b /* if set loop on last subtest */
175: 4: callf $4,_setjmp /* save context */
176: movab 4b,_stpc /* save pc of subtest start */
177: movl $3,_subtst /* subtest number */
178: movl $1,_no_opr /* number of operands in use */
179: 0: movb l^32770(r3),l^65537(r3)
180: cmpl lbasel,$0xff111155
181: beql 5f
182: bbs $0,_scoplp,0b /* if set scope loop on error */
183: movl $1,_ercode /*error code data miscompare*/
184: movl lbasel,_actual /* actual data */
185: movl $0xff111155,_expected /*expected data*/
186: jmp *badrtn /*longword disp mode did not */
187: /*changed byte correctly */
188: 5:
189: bbs $0,_force_lp,0b /* if set loop on last subtest */
190: jmp *return /*end of test - goto monitor */
191: #
192: #
193: #
194: /* WORD DISPLACEMENT ADDRESSING MODE TEST */
195: /* */
196: /* */
197: /* */
198: .globl _wdisp_mode
199: _wdisp_mode:
200: callf $4,_setjmp /* save context */
201: movab _wdisp_mode,_stpc /* save pc of subtest start */
202: movl $1,_subtst /* subtest number */
203: movl $1,_no_opr /* number of operands in use */
204: movl base_add,_opr /* first operand */
205: 0: movl base_add,r3 /*move address of label bbase1 */
206: movl $0xffffffff,wbasel /* initialize wbasel */
207: movb $0x55,w^32767(r3) /*change byte 32767 of bbase1 */
208: cmpl wbasel,$0xffffff55 /*see if it happened */
209: beql 1f
210: bbs $0,_scoplp,0b /* if set scope loop on error */
211: movl $1,_ercode /*error code data miscompare*/
212: movl wbasel,_actual /* actual data */
213: movl $0xffffff55,_expected /*expected data*/
214: jmp *badrtn /* Word disp mode did not move right byte */
215: 1:
216: cmpl r3,$add_table /*check r3 did not changed */
217: beql 2f
218: bbs $0,_scoplp,0b /* if set scope loop on error */
219: movl $3,_ercode /*error code operand was changed*/
220: movl r3,_actual /* actual data */
221: movl $add_table,_expected /*expected data*/
222: jmp *badrtn /* Word disp mode changed base */
223: 2:
224: bbs $0,_force_lp,0b /* if set loop on last subtest */
225: 2: callf $4,_setjmp /* save context */
226: movab 2b,_stpc /* save pc of subtest start */
227: movl $2,_subtst /* subtest number */
228: movl $1,_no_opr /* number of operands in use */
229: 0: movb w^134(r3),w^32766(r3)
230: cmpl wbasel,$0xffff0055
231: beql 3f
232: bbs $0,_scoplp,0b /* if set scope loop on error */
233: movl $1,_ercode /*error code data miscompare*/
234: movl wbasel,_actual /* actual data */
235: movl $0xffff0055,_expected /*expected data*/
236: jmp *badrtn /* Word disp mode did not move right byte */
237: 3:
238: cmpl r3,$add_table
239: beql 4f
240: bbs $0,_scoplp,0b /* if set scope loop on error */
241: movl $3,_ercode /*error code operand was changed*/
242: movl r3,_actual /* actual data */
243: movl $add_table,_expected /*expected data*/
244: jmp *badrtn /* Word disp mode changed base */
245: 4:
246: bbs $0,_force_lp,0b /* if set loop on last subtest */
247: 4: callf $4,_setjmp /* save context */
248: movab 4b,_stpc /* save pc of subtest start */
249: movl $3,_subtst /* subtest number */
250: movl $1,_no_opr /* number of operands in use */
251: 0: movb w^132(r3),w^32765(r3)
252: cmpl wbasel,$0xff110055
253: beql 5f
254: bbs $0,_scoplp,0b /* if set scope loop on error */
255: movl $1,_ercode /*error code data miscompare*/
256: movl wbasel,_actual /* actual data */
257: movl $0xff110055,_expected /*expected data*/
258: jmp *badrtn /* Word disp mode did not move right byte */
259: 5:
260: bbs $0,_force_lp,0b /* if set loop on last subtest */
261: movl $0,_ercode /*no error*/
262: jmp *return /*end of test - goto monitor */
263:
264:
265: /* Variables */
266:
267: .align 2
268: bbase1: .long 0x33221100 /*relative location 0*/
269: bbase2: .long 0xaaaaaaaa /*rl 4 */
270: bbase3: .long 0xbbbbbbbb /*rl 8 */
271:
272: .align 2
273: base_add:
274: .long add_table
275:
276: .align 2
277: add_table:
278: .long 0
279: .long bbase1 /* relative location 4 */
280:
281: .space 124
282: .long 0x11110000 /*relative location 132 */
283:
284: .space (32004-128)
285: .long bbase2 /*relative location 32012 */
286:
287: .space 748
288: wbasel:
289: .long 0xffffffff /*relative location 32764 */
290: .long 0x11111111 /*relative location 32768 */
291:
292: .space 32764
293: lbasel:
294: .long 0xffffffff /*relative location 65536 */
295:
296: .space 480
297: .long bbase3 /*relative location 66020 */
298:
299: /*end of file */
300:
301:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.