|
|
1.1 ! root 1: ! 2: XTrap(code) ! 3: long code; ! 4: { register long r12, r11, r10, r9; ! 5: long tpc, tpsl; ! 6: ! 7: writes("\n** Unexpected exception type : "); ! 8: writeh(code); writec('\n'); ! 9: asm("movl 8(fp),r12"); /* par 0 */ ! 10: asm("movl 12(fp),r11"); /* par 1 */ ! 11: asm("movl 16(fp),r10"); /* par 2 */ ! 12: asm("movl 20(fp),r9"); /* par 3 */ ! 13: ! 14: if ((code==0x20) || (code==0x2f) || (code==0x30)) { ! 15: writes("** Par0 : "); writeh(r12); writec('\n'); ! 16: writes("** Par1 : "); writeh(r11); writec('\n'); ! 17: if (code==0x20) Buser(r12,r11); ! 18: tpc = r10; ! 19: tpsl = r9; ! 20: } ! 21: else { ! 22: if ((code==0x34) || (code==0x2b)) { ! 23: writes("** Par. : "); writeh(r12); writec('\n'); ! 24: tpc = r11; ! 25: tpsl = r10; ! 26: } ! 27: else { ! 28: tpc = r12; ! 29: tpsl = r11; } ! 30: } ! 31: writes("** PC : "); writeh(tpc); writec('\n'); ! 32: writes("** PSL : "); writeh(tpsl); writec('\n'); ! 33: asm("halt"); ! 34: } ! 35: ! 36: Buser(p0,p1) ! 37: long p0,p1; ! 38: { ! 39: register long ix; ! 40: register long *iy = (long *)0xffffb000; ! 41: register long addr = 0; ! 42: long board, bank, intl; ! 43: ! 44: ix = (p0 >> 23) & 0x7f; ! 45: writes("Syndrome "); pt_hex(ix,2); ! 46: p1 = ~((p1 >> 16) & 0xffff); ! 47: addr |= ((p1 >> 12) & 0xc) ; ! 48: addr |= ((p1 << 18) & 0x3ffc0000) ; ! 49: locboard(addr,&board,&bank,&intl); ! 50: writes("\nBoard # "); writed(board); ! 51: writes("\nBank # "); writed(bank); ! 52: writes("\nMCR : "); pt_hex((*iy)&0xffff,4); ! 53: writes("\n"); ! 54: } ! 55:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.