|
|
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.