{File name InitLisp4K.mc;    DandeLion Interlisp Emulator - Initialization
Author: Purcell
Last edited: 31-Jan-84 17:37:00 by don -- deleted u reg init
Last edited: 24-Jan-84 11:27:34 by don -- restored u reg init
Last edited: 19-Jan-84 15:35:14 by don -- added org for LCS and put kernel reserves here
Last edited: 17-Jan-84  9:59:07 by don -- removed u reg init
Last edited: April 6, 1983  1:35 PM; dont move display in new sysout
Created: January 17, 1983 out of NewLisp.mc
Last edited: February 5, 1983  11:42 AM
}

Reserve[0F6F]; Reserve[0F78]; Reserve[0F7F,0FFF];	{Kernel}

EFCHaveLink:  	at[LispStart],
{**************************************************
STALL to test display and maintpanel: 			
**************************************************}
	TT ← 88, CANCELBR[$, 0F],	c1;
	Rx ← 1 RRot1, rhRx ← 1,	c2;
	Rx{4000} ← Rx RShift1,	c3;

	MAR ← [rhRx, 0EC+0],	c1;
	MDR ← uFF00{was 0},	c2;
	TT ← TT LRot8,	c3;

	MAR ← [rhRx, 0ED+0],	c1;
	MDR ← TT{8800} or 22,	c2;
	PC ← 1 + PC + PC16,	c3;

	Q ← 71{was 41},	c1;
	DCtl←Q LRot0,	c2;
	,	c3;

	Rx ← 080{~15 sec}{10/sec},	c1;
	rhTT ← 41, TT ← 41-1,	c2;
	TT{14000} ← TT LRot8,	c3;

	TT ← TT{14000} +IOPage.MP,	c1;
	TOS ← LH.FMP,	c2;
	TOS ← TOS LRot8,	c3;

Stall:	MAR ← [rhTT, TT+0], BRANCH[Stall0, StallContinue],	c1;
Stall0:	MDR ← TOS or RH.FMP,	c2;
StallJn:	Q ← Q  - 1, ZeroBr, GOTO[Stall],	c3;

StallContinue:
	Rx ← Rx - 1, ZeroBr,	c2;
	TOSH ← 0, BRANCH[Stall, SkipBurdock],	c3;

Burdock:
	IOPCtl ← 1, CANCELBR[NoMoreWait, 0F],	c1;
SkipBurdock:
	,	c1;
NoMoreWait:
	rhTT ←  0,	c2;
	TT ← uFF00,	c3;

	Rx ← 40,	c1;
	Rx ← Rx LRot8,	c2;
	TOS ← KTval,	c3;

	Map ← [rhTT,TT],	c1;
	MDR ← Rx{4000} or 31{0B1},	c2;
	uPageFault ← Q ← 0,	c3;

{change to context Q{fxp}}
FXP:	rhTT ←  INTERFACEspace,	c1;
	TT ← INTERFACEbasePage{20'b} {INTERFACEbase=10000'b},	c2;
	TT ← TT LRot8,	c3;

FXP1:	Map ← [rhTT,TT],	c1;
	rhS ← nRhS,	c2;
	Rx ← rhRx ← MD,	c3;

FXP2:	MAR← [rhRx, Q + 0],	c1;
	rhPV ← nRhS,	c2;
	PV{FXP} ← MD, GOTO[RTN2],	c3;

Reset:	Noop,	c1;
Reset2:	uPageFault ← 0,	c2;
	Q ← 1, GOTO[FXP],	c3;

	{ E N D }