{mlisp4k.mc created by cal: 5-Nov-84 15:59:05 } {***************************************************************************** BITBLT *****************************************************************************} {@BBLT: opcode[166'b], Bank ← 0, c1; , c2; CROSS[BBEntry], c3; } TOSH ← smallpl, GOTO[IB.pc1] ,c1, at[BBExit]; {***************************************************************************** MISC Input *****************************************************************************} @MISC1: opcode[170'b], L2 ← L2.0, GOTO[Misc], c1; @MISC2: opcode[171'b], L2 ← L2.0, c1; Misc: PC ← PC + 1, Xbus ← ib, XDisp, c2; uTOS ← TOS, YDisp, DISP4[MiscDisp, 0C], c3; Misc0: Q ← 121'd, CANCELBR[sink2, 0F], c1, at[0C,10, MiscDisp];{MP9121} Misc3: Q ← 121'd, CANCELBR[sink2, 0F], c1, at[0F,10, MiscDisp];{MP9121} {***************************************************************************** INPUT Input *****************************************************************************} INPUT: DISP4[MiscIn], c1, at[0D,10, MiscDisp]; TOS ← EIData, IBDisp, L2 ← L2.0, GOTO[MiscInEnd], c2, at[0,10,MiscIn]; TOS ← EStatus, IBDisp, L2 ← L2.0, GOTO[MiscInEnd], c2, at[1,10,MiscIn]; TOS ← KIData, IBDisp, L2 ← L2.0, GOTO[MiscInEnd], c2, at[2,10,MiscIn]; TOS ← KStatus, IBDisp, L2 ← L2.0, GOTO[MiscInEnd], c2, at[3,10,MiscIn]; TOS ← uSTATE, IBDisp, L2 ← L2.0, GOTO[MiscInEnd], c2, at[4,10,MiscIn]; TOS ← MStatus, IBDisp, L2 ← L2.0, GOTO[MiscInEnd], c2, at[5,10,MiscIn]; TOS ← KTest, IBDisp, L2 ← L2.0, GOTO[MiscInEnd], c2, at[6,10,MiscIn]; TOS ← PPort, IBDisp, L2 ← L2.0, GOTO[MiscInEnd], c2, at[7,10,MiscIn]; TOS ← VersionHi, GOTO[MiscVers], c2, at[8,10,MiscIn]; Q ← 122'd, GOTO[sink3], c2, at[09,10,MiscIn];{MP9122} Q ← 122'd, GOTO[sink3], c2, at[0A,10,MiscIn];{MP9122} Q ← 122'd, GOTO[sink3], c2, at[0B,10,MiscIn];{MP9122} Q ← 122'd, GOTO[sink3], c2, at[0C,10,MiscIn];{MP9122} Q ← 122'd, GOTO[sink3], c2, at[0D,10,MiscIn];{MP9122} Q ← 122'd, GOTO[sink3], c2, at[0E,10,MiscIn];{MP9122} Q ← 122'd, GOTO[sink3], c2, at[0F,10,MiscIn];{MP9122} MiscInEnd: TOSH ← smallpl, L2 ← L2.0, DISPNI[OpTable], c3; MiscVers: TOS ← TOS LRot8, c3; TOS ← TOS or VersionLo, c1; IBDisp, L2 ← L2.0, GOTO[MiscInEnd], c2; {***************************************************************************** OUTPUT Output *****************************************************************************} OUTPUT: MAR ← S ← [rhS, S + 0], Xbus ← uTOS, XDisp, CANCELBR[$, 0F], c1, at[0E,10, MiscDisp]; S ← S - 2, DISP4[MiscOut], c2; IOPOData ← MD, GOTO[OutEnd], c3, at[0,10,MiscOut]; IOPCtl ← MD, GOTO[OutEnd], c3, at[1,10,MiscOut]; KOData ← MD, GOTO[OutEnd], c3, at[2,10,MiscOut]; KCtl ← MD, GOTO[OutEnd], c3, at[3,10,MiscOut]; EOData ← MD, GOTO[OutEnd], c3, at[4,10,MiscOut]; EICtl ← MD, GOTO[OutEnd], c3, at[5,10,MiscOut]; DCtl ← MD, GOTO[OutEnd], c3, at[6,10,MiscOut]; TT ← MD, GOTO[OutSetBBTime], c3, at[7,10,MiscOut]; TT ← MD, GOTO[OutSetOpt], c3, at[8,10,MiscOut]; PCtl ← MD, GOTO[OutEnd], c3, at[9,10,MiscOut]; TT ← MD, GOTO[OutMCtl], c3, at[0A,10,MiscOut]; Q ← 120'd, GOTO[sink1], c3, at[0B,10,MiscOut];{MP9120} EOCtl ← MD, GOTO[OutEnd], c3, at[0C,10,MiscOut]; KCmd ← MD, GOTO[OutEnd], c3, at[0D,10,MiscOut]; TT ← MD, GOTO[OutPPort], c3, at[0E,10,MiscOut]; POData ← MD, GOTO[OutEnd], c3, at[0F,10,MiscOut]; OutSetBBTime: uBBTime ← TT, GOTO[IB.nop], c1; OutEnd: Noop, GOTO[IB.nop], c1; OutPPort: PPort ← TT, GOTO[IB.nop], c1; OutSetOpt: uLispOptions ← TT, GOTO[IB.nop], c1; OutMCtl: MCtl ← TT, GOTO[IB.nop], c1; {*******************************************************************} logout: TT ← 55{password to mesa}, CANCELBR[$] c2; rhRx ← Rx ← uIOPage, c3; Off: MAR ← [rhRx, IOPage.ProcessorCommand+0], c1, at[LOGOUT]; MDR ← 4, c2; uLispBootMsg ← TT, GOTO[Off], c3; { E N D }