{bxLispIO4K.mc
Purcell 23-Jul-85 0:50:58
created by cal: 5-Nov-84 15:59:05
}
{*****************************************************************************
BITBLT
*****************************************************************************}
BBThru:
TOSH ← smallpl, GOTO[IB.pc1] ,c1;
{*****************************************************************************
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 ← 0, L2 ← L2.0, IBDisp, GOTO[MiscInEnd], c2, at[0,10,MiscIn]; {was ←EIData}
TOS ← 0, L2 ← L2.0, IBDisp, GOTO[MiscInEnd], c2, at[1,10,MiscIn]; {was ←EStatus}
TOS ← 0, L2 ← L2.0, IBDisp, GOTO[MiscInEnd], c2, at[2,10,MiscIn]; {was ←KIData}
TOS ← 0, L2 ← L2.0, IBDisp, GOTO[MiscInEnd], c2, at[3,10,MiscIn]; {was ←KStatus}
TOS ← uSTATE, L2 ← L2.0, IBDisp, GOTO[MiscInEnd], c2, at[4,10,MiscIn]; {uSTATE}
TOS ← 0, L2 ← L2.0, IBDisp, GOTO[MiscInEnd], c2, at[5,10,MiscIn]; {was ←MStatus}
TOS ← 0, L2 ← L2.0, IBDisp, GOTO[MiscInEnd], c2, at[6,10,MiscIn]; {was ←KTest}
TOS ← 0, L2 ← L2.0, IBDisp, GOTO[MiscInEnd], c2, at[7,10,MiscIn]; {was ←PPort}
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;
{TT ← MD, GOTO[OutEnd], c3, at[0,10,MiscOut]; {was IOPOData←}}
TT ← MD, GOTO[OutEnd], c3, at[1,10,MiscOut]; {was IOPCtl←}
TT ← MD, GOTO[OutEnd], c3, at[2,10,MiscOut]; {was KOData←}
TT ← MD, GOTO[OutEnd], c3, at[3,10,MiscOut]; {was KCtl←}
TT ← MD, GOTO[OutEnd], c3, at[4,10,MiscOut]; {was EOData}
TT ← MD, GOTO[OutEnd], c3, at[5,10,MiscOut]; {was EICtl←}
TT ← MD, GOTO[OutEnd], c3, at[6,10,MiscOut]; {was DCtl←}
TT ← MD, GOTO[OutEnd], c3, at[7,10,MiscOut]; {was Display Refresh}
TT ← MD, GOTO[OutSetOpt], c3, at[8,10,MiscOut];
TT ← MD, GOTO[OutEnd], c3, at[ 9,10,MiscOut]; {was PCtl←}
TT ← MD, GOTO[OutEnd], c3, at[0A,10,MiscOut]; {was MCtl←}
{%M} {TT ← MD, GOTO[OutEnd], c3, at[0B,10,MiscOut]; }
TT ← MD, GOTO[OutEnd], c3, at[0C,10,MiscOut]; {was EOCtl←}
TT ← MD, GOTO[OutEnd], c3, at[0D,10,MiscOut]; {was KCmd←}
TT ← MD, GOTO[OutEnd], c3, at[0E,10,MiscOut]; {was Out PPort}
TT ← MD, GOTO[OutEnd], c3, at[0F,10,MiscOut]; {was POData←}
OutEnd:
Noop, GOTO[IB.nop], c1;
OutSetOpt:
uLispOptions ← 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;
{*******************************************************************}
{ The following code is special for the Daybreak}
{ E N D }