; AltoIIMRT4K.mu ; ; last modified December 1, 1977 1:14 AM ; ; This is the part of the Memory Refresh Task which ; is specific to Alto IIs WITHOUT Extended memory. ; ; Copyright Xerox Corporation 1979 $EngNumber $20000; ALTO 2 WITHOUT EXTENDED MEMORY MRT: SINK_ MOUSE, BUS; MOUSE DATA IS ANDED WITH 17B MRTA: L_ T_ -2, :TX0; DISPATCH ON MOUSE CHANGE TX0: L_ T_ R37 AND NOT T; UPDATE REFRESH ADDRESS T_ 3+T+1, SH=0; L_ REFIIMSK ANDT, :DOTIMER; NOTIMER:R37_ L; STORE UPDATED REFRESH ADDRESS TIMERTN:L_ REFZERO AND T; SH=0; TEST FOR CLOCK TICK :NOCLK; NOCLK: MAR_ R37; FIRST FEFRESH CYCLE L_ CURX; T_ 2, SH=0; MAR_ R37 XORT, :DOCUR; SECOND REFRESH CYCLE NOCUR: CURDATA_ L, TASK; MRTLAST:CURDATA_ L, :MRT; DOTIMER:R37_ L; SAVE REFRESH ADDRESS MAR_EIALOC; INTERVAL TIMER/EIA INTERFACE L_2 AND T; SH=0, L_T_REFZERO.T; ***V3 CHANGE (USED TO BE BIAS) CURDATA_L, :SPCHK; CURDATA_CURRENT TIME WITHOUT CONTROL BITS SPCHK: SINK_MD, BUS=0, TASK; CHECK FOR EIA LINE SPACING SPIA: :NOTIMERINT, CLOCKTEMP_L; NOSPCHK:L_MD; CHECK FOR TIME=NOW MAR_TRAPDISP-1; CONTAINS TIME AT WHICH INTERRUPT SHOULD HAPPEN MTEMP_L; IF INTERRUPT IS CAUSED, L_ MD-T; LINE STATE WILL BE STORED SH=0, TASK, L_MTEMP, :SPIA; TIMERINT:MAR_ ITQUAN; STORE THE THING IN CLOCKTEMP AT ITQUAN L_ CURDATA; R37_ L; T_NWW; AND CAUSE AN INTERRUPT ON THE CHANNELS MD_CLOCKTEMP; SPECIFIED BY ITQUAN+1 L_MD OR T, TASK; NWW_L; NOTIMERINT: T_R37, :TIMERTN; ;The rest of MRT, starting at the label CLOCK is unchanged