File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / mem / trap.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:24:19 2019 UTC (6 years, 11 months ago) by root
Branches: bsd, MAIN
CVS tags: v12b, v121, HEAD
Power 6/32 Unix version 1.2b


XTrap(code)
long code;
{	register long r12, r11, r10, r9;
	long tpc, tpsl;

	writes("\n** Unexpected exception type : ");
	writeh(code); writec('\n');
	asm("movl 8(fp),r12");		/* par 0 */
	asm("movl 12(fp),r11");		/* par 1 */
	asm("movl 16(fp),r10");		/* par 2 */
	asm("movl 20(fp),r9");		/* par 3 */

	if ((code==0x20) || (code==0x2f) || (code==0x30)) {
		writes("** Par0 :  "); writeh(r12); writec('\n');
		writes("** Par1 :  "); writeh(r11); writec('\n');
		if (code==0x20) Buser(r12,r11);
		tpc = r10;
		tpsl = r9; 
		}
	   else 	{
		if ((code==0x34) || (code==0x2b))  {
			writes("** Par. :  "); writeh(r12); writec('\n');
			tpc = r11;
			tpsl = r10;
			}
		    else 	{
			tpc = r12;
			tpsl = r11; }
		}
	writes("** PC   :  "); writeh(tpc); writec('\n');
	writes("** PSL  :  "); writeh(tpsl); writec('\n');
	asm("halt");
}

Buser(p0,p1)
long p0,p1;
{
	register long ix;
	register long *iy = (long *)0xffffb000;
	register long addr = 0;
	long board, bank, intl;

	ix = (p0 >> 23) & 0x7f;
	writes("Syndrome "); pt_hex(ix,2);
	p1 = ~((p1 >> 16) & 0xffff);
	addr |= ((p1 >> 12) & 0xc) ;
	addr |= ((p1 << 18) & 0x3ffc0000) ;
	locboard(addr,&board,&bank,&intl);
	writes("\nBoard # "); writed(board);
	writes("\nBank  # "); writed(bank);
	writes("\nMCR : "); pt_hex((*iy)&0xffff,4);
	writes("\n");
}


unix.superglobalmegacorp.com

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