{NewInit.mc Lichtenberg 13-Jul-84 18:42:06 changed to initialize both versions of u1FFF Last modifiedby don: 9-Sep-83 9:51:57 Created by don: 2-Sep-83 13:38:39 Purcell 1-Jul-84 23:23:09 disabled writes to IOPage which moves from init{2000} to lisp{14000} } {SetTask[0];} RegDef[uLisp1FFF,U,2E]; {Lisp's u1FFF} StartNewInit: uRx ← Rx, c1; UQSave ← Q, c2; Q ← rhRx, c3; UGsave ← Q, c1; , c2; , c3; Rx{182} ← 0C1 LRot1, c1; Rx ← Rx LRot1, c2; uPcBreak ← Rx{304}, c3; Rx ← VALspace, c1; uValHigh ← Rx, c2; {stackP ← 0,} c3; Rx ← Rx xor ~Rx, c1; unboundPvar ← Rx, c2; unboundFvar ← Rx, c3; uStkLimO ← Rx, c1; uWP ← 0, c2; uWDC ← 0{uWDC inited by mesaInit}, c3; Rx ← ~0FD, c1; Rx ← Rx LRot8, c2; uBfResidualRhmask ← Rx{2FF}, c3; Rx ← 0A0, c1; Rx ← Rx LRot8, c2; uFreeStackBlock ← Rx{0A000}, c3; Rx ← 0FF + 1, c1; uFxNoPushReturn ← Rx{100h}, c2; Rx ← LShift1(Rx + Rx), SE←0, c3; uFxInCall ← Rx{400h}, c1; Rx ← 7F, c2; u7F ← Rx{7F}, c3; Rx ← ~0FF, c1;{OK} u0FF ← ~Rx{~0FF}, c2; uFF00 ← Q ← Rx{~0FF}, c3; Rx ← Q{0FF00} or 1, c1; Rx ← Rx LRot8, c2; u1FF ← Rx{1FF}, c3; Rx ← Q{0FF00} or 3, c1; Rx ← Rx LRot8, c2; uTT3FF ← Rx{3FF}, c3; Rx ← Q{0FF00} or 3, c1; Rx ← Rx LRot8, c2; u3FF ← Rx{3FF}, c3; Rx ← Q{0FF00} or 0F, c1; Rx ← Rx LRot8, c2; u0FFF ← Rx{0FFF}, c3; Rx ← Q{0FF00} or 1F, c1; Rx ← Rx LRot8, c2; u1FFF ← Rx{1FFF}, c3; uLisp1FFF {called u1FFF in lisp code} ← Rx, c1; , c2; , c3; Rx ← Q{0FF00} or 3F, c1; Rx ← Rx LRot8, c2; uTT3FFF ← Rx{3FFF}, c3; Rx ← Q{0FF00} or 3F, c1; Rx ← Rx LRot8, c2; u3FFF ← Rx{3FFF}, c3; Rx ← Q{0FF00} or 7F, c1; Rx ← Rx LRot8, c2; u7FFF ← Rx{7FFF}, c3; Rx ← Q{0FF00} or 7, c1; Rx ← Rx LRot8, c2; u7FF ← Rx{7FF}, c3; , c1; Rx ← Rx xor 1, c2; u7FE ← Rx{7FF}, c3; Rx ← 0, c1; uLispOptions ← Rx, c2; c3; { {rCount}RCnt ← 0, } c1; { {rY}RAdr ← 0, } c2; Rx ← 80, c3; Rx ← Rx LRot8, c1; Noop, c2; uBFmark ← Rx{8000}, c3; {compliance: using uSTACKspace with duplicated high byte for bind ptr} Rx ← STACKspace, c1; Rx ← Rx LRot8, c2; Rx ← Rx or STACKspace, c3; Noop, c1; uSTACKspace ← Rx, c2; Rx ← 0C0, c3; Rx ← Rx LRot8, c1; Noop, c2; uFXmark ← Rx{C000}, c3; Set[UFNTablePageHalf, Rshift[UFNTablebase, 9]]; Rx ← UFNTablePageHalf, c1; Rx ← Rx LRot8, c2; uUFNTableBaseHalf ← Rx, c3; Rx ← 88, c1; Rx ← Rx LRot8, c2; Q ← Rx, c3; , c1; Rx ← 1 RRot1, rhRx ← 1, c2; Rx{4000} ← Rx RShift1, c3; {MAR ← [rhRx, 0EC+0], c1; MDR ← 0, c2; , c3; MAR ← [rhRx, 0ED+0], c1; MDR ← Q{88} or 22, c2; , c3;} Rx ← uRx, c1; Q ← UQSave, c2; rhRx ← UGsave, GOTO[BackFromNewInit], c3; { E N D }