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