|
|
1.1 ! root 1: #include "definitions" ! 2: ! 3: extern long *p_ptr, exp_par0, exp_par1, exp_par2, exp_par3; ! 4: char *Tname = "\n"; /* PTR to test name */ ! 5: ! 6: chk_pars(msg1) ! 7: char *msg1; ! 8: { char *msg2; ! 9: long *pcb_base, act_param; ! 10: ! 11: /* Check fault parameter words */ ! 12: act_param = *p_ptr++; ! 13: if (exp_par0 != act_param) ! 14: { msg2="** fault indicator (1st word) is not as expected !!\n"; ! 15: pverr_handler(msg1,msg2,exp_par0,act_param); } ! 16: act_param = *p_ptr++; ! 17: if (exp_par1 != act_param) ! 18: { msg2="** virtual addr in 2nd parameter is not as expected\n"; ! 19: pverr_handler(msg1,msg2,exp_par1,act_param); } ! 20: act_param = *p_ptr++; ! 21: if (exp_par2 != act_param) ! 22: { msg2="** PC in 3rd parameter word is not as expected\n"; ! 23: pverr_handler(msg1,msg2,exp_par2,act_param); } ! 24: act_param = (*p_ptr) & 0xffffffc0; /* Mask out PSW flags */ ! 25: if (exp_par3 != act_param) ! 26: { msg2="** PSL in 4th parameter word is not as expected \n"; ! 27: pverr_handler(msg1,msg2,exp_par3,act_param); } ! 28: ! 29: } ! 30: ! 31: pverr_handler(msg1,msg2,exp,act) ! 32: char *msg1, *msg2; ! 33: long exp, act; ! 34: { ! 35: ! 36: writes(Tname); ! 37: writes(msg1); writec('\n'); writes(msg2); writec('\n'); ! 38: writes("** Expected data : "); writeh(exp); writec('\n'); ! 39: writes("** Actual data : "); writeh(act); writec('\n'); ! 40: asm("halt"); ! 41: } ! 42: ! 43: ! 44: ! 45: print_params() ! 46: { ! 47: long *param_ptr; ! 48: ! 49: param_ptr = p_ptr; ! 50: writes(" Parameter 1 : "); writeh(*param_ptr++); writec('\n'); ! 51: writes(" Parameter 2 : "); writeh(*param_ptr++); writec('\n'); ! 52: writes(" Parameter 3 : "); writeh(*param_ptr++); writec('\n'); ! 53: writes(" Parameter 4 : "); writeh(*param_ptr); writec('\n'); ! 54: asm("halt"); ! 55: } ! 56: ! 57: ! 58: ! 59:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.