{File name LispTrap.mc -- for extra banks
Created by don --  24-Jan-84 10:48:52
Last edited: XXX
}

SetTask[0];

LispTraps:
{ErrTrap:}
	Rx ← RRot1 ErrnIBnStkp, ClrIntErr, CANCELBR[$, 0F],	c1, at[0];
{ErrLoop:}
	Xbus ← Rx LRot0, XwdDisp,	c2;
	Xbus ← MStatus, XLDisp, DISP2[CSParErr],	c3;

{CSParErr:}
	Bank ← SinkBank, CANCELBR[$, 3],	c1, at[0, 4, CSParErr];
	Q ← 0+1, KCtl ← 0, GOTO[CrossToSink],	c2;{MP9001}

{LMemErr:}
	Bank ← SinkBank, DISP2[LispAddrErr, 1],	c1, at[1, 4, CSParErr];

{VirtAddrErr:}
	Q ← 4, GOTO[CrossToSink],	c2, at[1, 4, LispAddrErr];{MP9004}
{EmuMemErr:}
	Q ← 5, GOTO[CrossToSink],	c2, at[3, 4, LispAddrErr];{MP9005}

{StackErr:}
	Bank ← SinkBank, CANCELBR[$, 3],	c1, at[2, 4, CSParErr];
	Q ← 2, GOTO[CrossToSink],	c2;{MP9002}

{IBEmptyErr:}
	Bank ← SinkBank, CANCELBR[$, 3],	c1, at[3, 4, CSParErr];
	Q ← 3, GOTO[CrossToSink],	c2;{MP9003}

CrossToSink:
	CROSS[B1sink1],	c3;

	{ E N D }