{PokeDevice.mc, HGM, 4-Nov-84 6:29:45} Reserve[0F5F, 0FFF]; { section used by the CP Kernel } SetTask[7]; StartAddress[Go]; RegDef[R0,R,0]; RegDef[RH0,RH,0]; Go: ClrIntErr, c1, at[0]; Noop, c2, at[00FF]; Noop, c3, at[0F00]; Loop: IB ¬ 0, {Scope sync} c1; stackP ¬ 8, c2; Noop, c3; IOXIn: R0 ¬ EIData, {0} c1; R0 ¬ EStatus, {1} c2; R0 ¬ KIData, {2} c3; R0 ¬ KStatus, {3} c1; KStrobe, {4} c2; R0 ¬ MStatus, {5} c3; R0 ¬ KTest, {6} c1; EStrobe, {7} c2; R0 ¬ IOPIData, {8} c3; R0 ¬ IOPStatus, {9} c1; R0 ¬ ErrnIBnStkp, {A} c2; R0 ¬ RH0, {B} c3; R0 ¬ ibNA, {C} c1; R0 ¬ ib, {D} c2; R0 ¬ ibLow, {E} c3; R0 ¬ ibHigh, {F} c1; Noop, c2; Noop, c3; FYOut: IOPOData ¬ 0, c1; IOPCtl ¬ 0, {1} c2; KOData ¬ 0, {2} c3; KCtl ¬ 0, {3} c1; EOData ¬ 0 {4} c2; EICtl ¬ 0, {5} c3; DCtlFifo ¬ 0, {6}, c1; DCtl ¬ 0, {7} c2; DBorder ¬ 0, {8} c3; PCtl ¬ 0, {9} c1; MCtl ¬ 0, {A} c2; R0 ¬ TStatus, {B} c3; EOCtl ¬ 0, {C} c1; KCmd ¬ 0, {D} c2; R0 ¬ TIData, {E} c3; POData ¬ 0, {F} c1; Noop, c2; Noop, c3; FZNorm: Refresh, {0} MesaIntRq, {to use FY} c1; IBPtr ¬ 1, {1} c2; IBPtr ¬ 0, {2} c3; R0 ¬ R0 + PC16, {3} L0 ¬ 0, {use FX} c1; Noop, {4} {¬DES, Beware, Bank¬ in book} c2; fZpop, {5} c3; push {fZpush}, {6} L0 ¬ 0, MesaIntBr, c1; Ybus ¬ 0, AltUaddr, {7} CANCELBR[$], c2; Noop, {8} c3; Noop, {9} {DES¬} c1; Noop, {A} {Port¬, But Mass isn't ready} c2; Noop, {B} {¬Port} c3; Xbus ¬ R0 LRot0, {C} c1; Xbus ¬ R0 LRot12, {D} c2; Xbus ¬ R0 LRot8, {E} c3; Xbus ¬ R0 LRot4, {F} c1; Noop, c2; Noop, c3; Noop, c1; Noop, c2; GOTO[Loop], c3;