/MISC #1 PACKAGE 2/2/77 VERS=1 VERS2=1 VERS3=1 VERS4=1 / / /%RS MISC PAGKAGE #1 / /%TW A GROUP OF SHORT ULTILITY TASKS. / / TASK= INITZE CUR= MIS1FLD INIWT= 0 /INITIALLY RUNNABLE TASK2= ZERO CUR2= CUR INIWT2= 0 /INITIALLY RUNNABLE TASK3= LOGN CUR3= CUR INIWT3= 0 /INITIALLY RUNNNABLE TASK4= TRY CUR4= CUR3 INIWT4= RUNWT FIELD CUR%10 *MIS1LOC / / / /%RT INIT - RESET OR INITIALIZE THE SYSTEM / /%TW INIT CAUSES THE POWER FAIL - AUTO RESTART TASK / "PWRF" TO RUN. "PWRF" WILL RESET THOSE USER / TASKS WHICH HAVE SENT RESTART MESSAGES TO / "PWRF". "PWRF" HAS BEEN MODIFIED TO REMOVE THE / RUN WAIT AND MESSAGE WAIT BITS ALONG WITH / EVENT FLAG AND EVENT-MESSAGE WAIT BITS. / / START, CAL /PUT US IN RUN WAIT. SUSPND CLB CMA /GET THE ADDRESS OF THE POWER FLAG CDF 0 /RESTART EVENT FLAG. TAD I (3) CAL /GO POST THE POWER FAIL EVENT FLAG POST CDF 0 JMP START / / MODIFIED 10/8/75 / / /%RT ZERO - CLEAR THE SHEET DATA BUFFER / /%TW CALLED AT STARTUP, WHEN THE MEMORY/PQI / COMMUNICATIONS FAIL, AND WHEN MEMORY GOES / THROUGH A REBUILD. THIS TASK WILL ZERO / THE ENTIRE SHEET DATA BUFFER AND RESET THE / POINTER "CH3LOC" TO "DATBAS". / / START2, CLB CAL /TELL PWRF WHAT TO DO FOR US. SEND PWRF ZEROMG CLB /PWRF OVERHEAD. ZERO1, CLB TAD (DATBAS) /SET UP A POINTER TO THE SHEET DCA ZPTR1 /DATA AREA. TAD (-DATLEN) /SET UP A LOOP COUNTER. DCA ZPTR2 CDF DATFLD /SET THE DATA FIELD FOR THE BUFFER. DCA I ZPTR1 /CLEAR A LOCATION. ISZ ZPTR1 ISZ ZPTR2 /DONE ? JMP .-3 /NO, DO SOME MORE. CDF 10 /SET THE DATA FIELD TO COMMON AREA. CLB TAD (140) DCA I (CH3LOC) /RESET "CH3LOC". TAD (-5) DCA I (CH1OFL) /SET THE CHANNEL OFF LINE FLAGS. TAD (-5) DCA I (CH2OFL) TAD (-5) DCA I (CH3OFL) DCA I (SHDONE) /CLEAR THE SHEET DECISION ACTIVE /FLAG. DCA I (SHUTOP) /SAY THE LASER SHUTTER IS CLOSED. CDF CUR CAL /GO TO SLEEP TIL NEXT TIME. SUSPND JMP ZERO1 /DO IT AGAIN. ZEROMG, ZBLOCK 3 ZERO1-1 /PWRF RESTART ADDRESS ZPTR1, 0 ZPTR2, 0 / PAGE / / /%RT LOG - LOG THE PROGR^AM NAME ON STARTUP / /%RT CALLED AT STARTUP TO LOG THE PROGRAM NAME / AND VERSION NUMBER. ALSO REMINDS THE OPERATOR / TO ENTER THE TIME AND DATE. / / START3, CLB CAL /TELL PWRF WHAT TO DO FOR US. SEND PWRF LOGMG1 CLB /PWRF OVERHEAD. LOGN1, CLB TAD (MCR) /BLOCK THE MCR UNTIL WE HAVE A CAL /CHANCE TO LOG OUR NAME AND VERSION BLKARG /ON THE CONSOLE DEVICE. USERWT CAL /DO TWO LINE FEEDS. SENDW TTYS LOGMG2 CAL /SEND THE PROGRAM NAME TO TTY. SENDW TTYS LOGMG3 CAL /JUST A CR-LF. SENDW TTYS LOGMG4 CAL /SEND "ENTER TIME..." SENDW TTYS LOGMG5 TAD (MCR) /UNBLOCK THE MCR NOW THAT OUR NAME CAL /AND VERSION HAVE BEEN LOGGED. UNBARG USERWT CAL /NOW TO SLEEP. SUSPND JMP LOGN1 /GO AROUND AGAIN. LOGMG1, ZBLOCK 3 LOGN1-1 /PWRF RESTART ADDRESS. / LOGMG2, ZBLOCK 3 /3 LINE FEEDS. 4000 0 215 212 215 212 0 LOGMG3, ZBLOCK 3 0 0 TEXT " P Q I V " *.-1 PQIVERSION /THE CURRENT VERSION CODE 0 LOGMG4, ZBLOCK 3 /JUST DO CR-LF 5000 0 LOGMG2+7 LOGMG5, ZBLOCK 3 0 0 TEXT "ENTER TIME AND DATE" / / / /%RT TRY - CALL THE DATA COLLECTION TASKS / /%TW THIS TASK IS CALLED FROM THE MCR, AND CALLS / EACH OF THE THREE DATA COLLECTION TASKS ONCE. / IT IS USED TO TEST THESE TASKS WHEN PQI IS / NOT CONNECTED TO MEMORY. / / START4, CLB TAD (-1) /THIS COULD BE A LOOP COUNTER. DCA NUM2 ST1, CLB TAD (CH1EFG) /LET "CH1DAT" RUN. CAL POST CDF 10 CLB TAD (CH2EFG) /NOW LET "CH2DAT" RUN. CAL POST CDF 10 CLB TAD (CH3EFG) /AND "CH3DAT". CAL POST CDF 10 CLB ISZ TMEMDA /BUMP THE LOCAL DATA COUNTER. CDF 10 TAD TMEMDA /MOVE THE LOCAL COUNTER TO FUDGE DCA I (MEMDAT) /PRODUCT DATA FROM MEMORY. CDF CUR ISZ NUM2 JMP ST1 CAL SUSPND JMP START4 NUM2, 0 TMEMDA, 0 $=$=LHN=$=$