{File name nInitLisp.mc; DandeLion Interlisp Emulator - Initialization Author: Purcell Last edited: 15-Jul-83 11:45:48 by don -- added uLispOptions ← 0 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 } EFCHaveLink: CANCELBR[$, 0F], {from StartMesa with dispatch pending} {************************************************** STALL to test display and maintpanel: **************************************************} Rx ← 040{~15 sec}{10/sec}, c1; rhTT ← 41, TT ← 41-1, c2; TT{14000} ← TT LRot8, c3; TT{14041} ← TT +41, c1; Noop, c2; Noop, c3; Stall: MAR ← [rhTT, TT+0], BRANCH[Stall0, Stall1], c1; Stall0: MDR ← Rx, GOTO[StallJn], c2; Stall1: MDR ← Rx ← Rx - 1, ZeroBr, GOTO[StallJn], c2; StallJn: Q ← Q - 1, ZeroBr, BRANCH[Stall, $], c3; SkipBurd: Noop, CANCELBR[SkipBurdock, 0F], c1; Burdock: IOPCtl ← 1, CANCELBR[$, 0F], c1; Noop, GOTO[Burd3], c2; SkipBurdock: Noop, c2; Burd3: Noop, c3; {ShowDisplay:} BegSD: Noop, CANCELBR[$, 0F], c1; Rx ← 1 RRot1, rhRx ← 1, {CANCELBR[$, 1],} c2; Rx{4000} ← Rx RShift1, c3; MAR ← [rhRx, 0EB+0], c1; Noop{MDR ← 0}, c2; TT ← 88, c3; MAR ← [rhRx, 0EC+0], c1; MDR ← 0{Q ← 41}, c2; TT ← TT LRot8, c3; MAR ← [rhRx, 0ED{0EF}+0], c1; MDR ← TT{88} or 22, c2; PC ← 1 + PC + PC16, c3; Noop, {MAR ← [rhRx, 0E9+0],} c1; Q ← 41, {MDR ← 0,} {IBDisp,} c2; DCtl←Q LRot0, {L2 ← L2.0, DISPNI[OpTable],} c3; Begin: Rx{182} ← 0C1 LRot1, c1; Rx ← Rx LRot1, c2; uPcBreak ← Rx{304}, c3; Rx ← VALspace, c1; uValHigh ← Rx, c2; stackP ← 0, c3; BegA: Rx ← Rx xor ~Rx, c1; unboundPvar ← Rx, c2; unboundFvar ← Rx, c3; BegB: 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; BegBB: uFxInCall ← Rx{400h}, c1; Rx ← 7F, c2; u7F ← Rx{7F}, c3; BegBBB: Rx ← ~0FF, c1; u0FF ← ~Rx{~0FF}, c2; uFF00 ← Rx{~0FF}, c3; BegC: TT ← Rx{0FF00} or 1, c1; TT ← TT LRot8, c2; u1FF ← TT{1FF}, c3; TT ← Rx{0FF00} or 3, c1; TT ← TT LRot8, c2; uTT3FF ← TT{3FF}, c3; TT ← Rx{0FF00} or 3, c1; TT ← TT LRot8, c2; u3FF ← TT{3FF}, c3; TT ← Rx{0FF00} or 0F, c1; TT ← TT LRot8, c2; u0FFF ← TT{0FFF}, c3; TT ← Rx{0FF00} or 1F, c1; TT ← TT LRot8, c2; u1FFF ← TT{1FFF}, c3; TT ← Rx{0FF00} or 3F, c1; TT ← TT LRot8, c2; uTT3FFF ← TT{3FFF}, c3; TT ← Rx{0FF00} or 3F, c1; TT ← TT LRot8, c2; u3FFF ← TT{3FFF}, c3; TT ← Rx{0FF00} or 7F, c1; TT ← TT LRot8, c2; u7FFF ← TT{7FFF}, c3; defered: TT ← Rx{0FF00} or 7, c1; TT ← TT LRot8, c2; u7FF ← TT{7FF}, c3; {TT}u7FF ← TT{7FF}, c1; TT ← TT xor 1, c2; u7FE ← TT{7FF}, c3; TT ← 0, c1; uLispOptions ← TT, c2; c3; {rCount}RCnt ← 0, c1; {rY}RAdr ← 0, c2; Rx ← 80, c3; BegD: Rx ← Rx LRot8, c1; Noop, c2; uBFmark ← Rx{8000}, c3; {compliance: using uSTACKspace with duplicated high byte for bind ptr} BegE: Rx ← STACKspace, c1; Rx ← Rx LRot8, c2; Rx ← Rx or STACKspace, c3; Noop, c1; uSTACKspace ← Rx, c2; Rx ← 0C0, c3; BegF: Rx ← Rx LRot8, c1; Noop, c2; uFXmark ← Rx{C000}, c3; Set[UFNTablePageHalf, Rshift[UFNTablebase, 9]]; BegFF: Rx ← UFNTablePageHalf, c1; Rx ← Rx LRot8, c2; uUFNTableBaseHalf ← Rx, c3; {Map IOPage to 0,FF00 %%why was it smashed?} rhTT ← 0, CANCELBR[$, 1], c1; TT ← 0FF, c2; TT{0FF00} ← TT LRot8, c3; Rx ← 40, c1; Rx ← Rx LRot8, c2; uPageFault ← 0{notFaulting}, c3; Map ← [rhTT,TT], c1; MDR ← Rx{4000} or 0B1, c2; Q ← 0, c3; {change to context Q{fxp}} FXP: rhTT ← INTERFACEspace, CANCELBR[$, 1], c1; TT ← INTERFACEbasePage{20'b}{INTERFACEbase=10000'b}, c2; TT ← TT LRot8, c3; FXP1: Map ← [rhTT,TT], c1; rhS ← nRhS, c2; Rx ← rhRx ← MD,{ XRefBr,} c3; TOSH ← 0,{sysout returns true} c1; TOS ← KTval, c2; Noop, c3; FXP2: MAR← [rhRx, Q + 0], c1; rhPV ← nRhS, c2; PV{FXP} ← MD, GOTO[RTN2], c3; Reset: Noop, {CANCELBR[$, 0F],} c1; Reset2: uPageFault ← 0, c2; Q ← 1, GOTO[FXP], c3; { E N D }