{File name dbInitLisp4K.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],
{**************************************************
	init display stuff
	set value to MP
	STALL for burdock rendezvous 			
	start up lisp by a context switch to suspended frame
**************************************************}
	TT ← 88, CANCELBR[$, 0F],	c1;
	rhRx ← Rx ← uIOPage,	c2;
	TT ← TT LRot8,	c3;

	{display dcb in io page init}
	MAR ← [rhRx, PeriodicInterruptOffset{WakeupLoc}+0],	c1;
	MDR ← 0,	c2;
	uWP ← 0,	c3;

StallDone:
	TOSH ← 0, 	c1;
	TOS ← KTval,	c2;
	uPageFault ← Q ← 0,	c3;

{change to context Q{fxp}}
FXP:	rhTT ←  INTERFACEspace,	c1;
	TT ← INTERFACEbasePage,	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;

	{comes from nano-raid, STOP key}
Reset:	Noop,	c1;
Reset2:	rhRio ← oldIOPageHigh,	c2;
	Rio ← oldIOPageLow, c3;
	MAR ← [rhRio, Rio + PeriodicInterruptOffset], c1;
	MDR ← 0, CANCELBR[$,2], LOOPHOLE[wok], c2;
	Q ← 1, GOTO[FXP],	c3;

	{ E N D }