{File name FloatInit.mc
Description:  DandeLion InterLisp Initialization
Author: Charnley
Last modified: Charnley              5-Jun-84 14:12:42
Created:  31-May-84 11:52:00
}

{	ask the floating point chip to FLOAT 2 and check the result }
{RegDef[ufloat, U, 042],}

LispFloatInit:
	stackP ← 2,	c1;
	TT ← 2,	c2;
	STK ← TT,	c3;

	ufloat ← 0,	c1;
	FloatMode.RN.AI.FAST, FloatFLOW,	c2;
	FloatA ← ufloat, FLFloatA,	c3;

	FloatA ← STK,	c1;
	FloatStartFlow,	c2;
	Rx ← 4,	c3;

	Rx ← Rx LRot12,	c1;{4000 = High Half Floating Point 2.0}
	Noop,	c2;
	FloatUMS,	c3;

	FloatULS,	c1;
	TT ← FloatResult,	c2;
	Xbus ← FloatResult,	c3;

	Ybus ← TT xor Rx, ZeroBr,	c1;
	BRANCH[NoChips, ChipsPresent],	c2;

NoChips:
	uCHIP ← PV xor ~PV, GOTO[LispFloatInitDone],	c3;
ChipsPresent:
	uCHIP ← 0, GOTO[LispFloatInitDone],	c3;

	{ E N D }