{File name: Protected.mc Description: Protected microcode for Initial, Author: Jarvis, Created: December 5, 1980, Last Edited: Jarvis, March 23, 1981 9:52 AM} Set[OverlayStart, Add[ProtectFence, 1]]; Reserve[OverlayStart, 0FFF]; SetTask[0]; {clobber only rC before going to external fault handler} Trap: rC ← RRot1 ErrnIBnStkp, ClrIntErr, CANCELBR[$, 0F], c1, at[0]; [] ← passTraps, ZeroBr, c2; BRANCH[$, Trap1], c3; GOTOABS[ErrorHandlerLoc], c1; {pass the trap on} Trap1: acR ← bootTrap, GOTO[catchAll2], c1; catchAll1: Noop, c1, at[Maintenance1Loc]; catchAll2: Noop, c2, at[Maintenance2Loc]; catchAll3: rB ← 0, rBrh ← 0, c3, at[Maintenance3Loc]; MAR ← [rBrh, rB+1], c1; MDR ← acR and 0FF, CANCELBR[$, 0], c2; IOPCtl ← IOPInMode, c3; {enable IOP} infinite: GOTO[infinite], c*, at[IdleLoc]; SetTask[1]; StartAddress[Refresh]; Refresh: Refresh, CANCELBR[$, 0F], c1; Noop, c2; Noop, c3; Refresh, c1; Noop, c2; ClrDPRq, GOTO[Refresh], c3;