{mlisp12k.mc created by cal: 5-Nov-84 15:59:32 } {***************************************************************************** BITBLT *****************************************************************************} @BBLT: opcode[166'b], Bank _ 2, c1; , c2; CROSS[BBEntry], c3; PC _ PC + PC16{***1}, GOTO[IBDispOnly] ,c1, at[BBExit]; IBDispOnly: IBDisp, L2 _ L2.0, c2; TOSH _ smallpl, L2 _ L2.0, DISPNI[OpTable], c3; {***************************************************************************** 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: TOSH _ smallpl, 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}Q _ 122'd, GOTO[sink3], 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} TOS _ uFLmode, IBDisp, L2 _ L2.0, GOTO[MiscInEnd], c2, at[0B,10,MiscIn]; 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, TOS _ TOS or 1, 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];} TT _ MD, GOTO[OutSetFPmode], 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]; OutSetFPmode: uFLmode _ TT, GOTO[IB.nop], c1; 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; {******************************************************************* READPRINTERPORT 3 clicks *******************************************************************} @READPRINTERPORT: opcode[164'b], MAR _ S _ [rhS, S + 1], c1; ReadRet: MDR _ TOSH, S _ S + 1, BRANCH[$, ReadCarry, 1], c2; Ybus _ S xor uStkLimO, ZeroBranch, c3; MAR _ [rhS, S + 0], BRANCH[$, ReadStkLim], c1; MDR _ TOS, c2; TOSH _ smallpl, c3; TOS _ PPort, GOTO[IB.pc1], c1; {page cross:} ReadCarry: S _ S + 0FF, c3; MAR _ [rhS, S + 0], GOTO[ReadRet], c1; {Stack Limit:} ReadStkLim: MDR _ TOS, c2; TOSH _ smallpl, c3; TOS _ PPort, c1; , c2; PC _ PC + PC16, GOTO[StackOverflow], c3; {******************************************************************* WRITEPRINTERPORT 1 click *******************************************************************} @WRITEPRINTERPORT: opcode[165'b], PPort _ TOS, L2 _ L2.0, c1; PC _ PC + PC16, IBDisp, c2; uPPsave _ TOS, L2 _ L2.0, DISPNI[OpTable], c3; {*******************************************************************} logout: TT _ 55{password to mesa}, c2; uLispBootMsg _ TT, c3; Bank _ LOGOBank , c1; {MPL 1-Jan-84 13:20:12 Changed for Domino 10} TT _ 0, c2; rhRx _ Rx _ uIOPage, CROSS[LOGOUT] c3; Off: MAR _ [rhRx, IOPage.ProcessorCommand+0], c1, at[LOGOUT]; MDR{4} _ 4, c2; Noop, GOTO[Off], c3; Burdx: Rx _ 41, CANCELBR[$, 0F], c1; DCtl _ Rx LRot0, c2; IOPCtl _ 1, GOTO[Reset], c3; { E N D }