Annotation of cci/d/mem/trap.c, revision 1.1.1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.