Annotation of cci/d/mem/trap.c, revision 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.