/ STUFF #1 UTILITY PACKAGE 1-SEP-91 / / / / SSSS TTTTT U U FFFFF FFFFF 1 / S T U U F F 11 / S T U U F F 1 1 / SSS T U U FFFF FFFF 1 / S T U U F F 1 / S T U U F F 1 / SSSS T UUU F F 11111 / / / / /EDIT HISTORY: / /30-AUG-90 (LHN) / 1) CHANGED INLOCK TO PASS MESSAGE CODE TO / 'CRTMSG' / 2) ADDED 'MRESET' TASK TO REMOVE SOME OPERATOR / MESSAGES WHEN INTERLOCK RESET IS PRESSED. THE / IS CALLED BY 'DIGINP'. / /04-APR-91 (LHN) / 1) ADDED MOPM23 TO MRESET LIST / / /12-JUN-91 (LHN) FOR VERSION 4A / 1) DELETED CALL TO SLFRST TASK / 2) CHANGED TTYST CALL TO TTY / / /1-SEP-92 (LHN) FOR VERSION 4B / 1) ADDED MOPM24 AND MOPM25 TO MRESET / / /%RS STUFF PAGKAGE #1 / /%TW A GROUP OF SHORT ULTILITY TASKS. / / TASK= LOGNAM CUR= STUF1FLD INIWT= 0 /INITIALLY RUNNNABLE VERS= 1 TASK2= INITZE CUR2= CUR INIWT2= 0 /INITIALLY RUNNABLE VERS2= 1 TASK3= INLOCK CUR3= CUR INIWT3= 0 /INITIALLY RUNNABLE VERS3= 3 TASK4= MRESET CUR4= CUR INIWT4= 0 /INITIALLY RUNNABLE VERS4= 4 FIELD CUR%10 *STUF1LOC / / / / / L OOO GGG N N AAA M M / L O O G G N N A A MM MM / L O O G NN N A A M M M / L O O G N N N A A M M / L O O G GGG N NN AAAAA M M / L O O G G N N A A M M / LLLLL OOO GGG N N A A M M / / / / /%RT LOGNAM - LOG THE PROGRAM 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. / / START, 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 TTY LOGMG2 TAD LOGMG6 /COLD START FLAG SET ? SNA CLA JMP LOGN2 /NO, GO ON. CAL /SAY POWER FAIL RESTART. SENDW TTY LOGMG5 CAL /ADD 1 LINE FEED SENDW TTY LOGMG4 LOGN2, CLB IAC /SET THE COLD START FLAG. DCA LOGMG6 CAL /SEND THE PROGRAM NAME TO TTY. SENDW TTY LOGMG3 / CAL /JUST A CR-LF. SENDW TTY LOGMG4 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 " M A S T V " *.-1 MSTVERSION /THE CURRENT VERSION CODE 0 LOGMG4, ZBLOCK 3 /JUST DO CR-LF 5000 0 LOGMG2+7 LOGMG5, ZBLOCK 3 0 0 TEXT "POWER FAIL RESTART" LOGMG6, 0 /COLD START FLAG / / / / / IIIII N N IIIII TTTTT ZZZZZ EEEEE / I N N I T Z E / I NN N I T Z E / I N N N I T Z EEEE / I N NN I T Z E / I N N I T Z E / IIIII N N IIIII T ZZZZZ EEEEE / / / / /%RT INITZE - 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. / / START2, 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 START2 PAGE / / / / / IIIII N N L OOO CCCC K K / I N N L O O C K K / I NN N L O O C K K / I N N N L O O C KK / I N NN L O O C K K / I N N L O O C K K / IIIII N N LLLLL OOO CCCC K K / / / / / INLOCK - OPEN THE REQUESTED M A S T INTERLOCK / / INLOCK IS CALLED BY TASKS THAT WANT TO STOP THE / MACHINE. TASKS SEND A MESSAGE TO THIS TASK / CONTAINING A SINGLE DATA WORD THAT INDICATES THE / INTERLOCK TO OPEN AND THE NUMBER OF THE CRT / MESSAGE TO DISPLAY TO TELL THE OPERATOR WHY THE / MACHINE STOPPED. THE OPERATOR MESSAGE CODE IS / PASSED TO 'CRTMSG'. / / START3, CLB /WAIT 'TIL SOMEONE NEEDS US. CAL RECEIVE MADDR, 0 DCA .+1 /SAVE THE CDF TO THE MESSAGE. MCDF, HLT TAD I MADDR /GET THE MESSAGE WORD AND AND (3600) /OPEN THE REQUESTED INTERLOCK DBCO54 CLB TAD INLMSG /IS OUR MESSAGE TO CRTMSG BUSY ? SZA CLA JMP INL1 /YES, FORGET IT... TAD I MADDR /GET THE OPERATOR MESSAGE CODE AND (0077) DCA INLMSG+3 /PUT IT IN A MESSAGE AND SEND IT CAL / TO CRTMSG SEND CRTMSG INLMSG INL1, CLB TAD MCDF /NOW POST THE MESSAGE DCA PCDF AC7775 TAD MADDR CAL POST PCDF, 0 JMP START3 INLMSG, ZBLOCK 3 0 / / / / / M M RRRR EEEEE SSSS EEEEE TTTTT / MM MM R R E S E T / M M M R R E S E T / M M RRRR EEEE SSS EEEE T / M M R R E S E T / M M R R E S E T / M M R R EEEEE SSSS EEEEE T / / / / / MRESET - REMOVE MESSAGES WHEN RESET IS PUSHED / / THIS TASK IS RUN FROM 'DIGINP' WHEN THE OPERATOR / PRESSES THE INTERLOCK RESET PUSHBUTON. WE TELL / 'CRTMSG' TO CLEAR THE OPERATOR MESSAGES WHICH / COULD HAVE STOPPED THE MACHINE. / / START4, CLB CAL /GO TO SLEEP 'TIL NEEDED SUSPND CLB TAD (MRETBL) /GET THE ADDRESS OF THE LIST OF DCA MREPTR / MESSAGES TO REMOVE. MRE1, TAD I MREPTR /GET THE NEXT MESSAGE NUMBER ISZ MREPTR SNA /IS IT ZERO ? JMP MRE2 /YES, ALL DONE, GO ON. DCA MREMSG+3 /SAVE THE MESSAGE NUMBER AND CAL / SEND IT TO 'CRTMSG' SENDW CRTMSG MREMSG JMP MRE1 MRE2, CLB JMP START4 /GO BACK TO SLEEP.... MREPTR, 0 /POINTER TO MESSAGE NUMBER LIST MREMSG, ZBLOCK 3 /MESSAGE TO 'CRTMSG' 0 MRETBL, MOPM04+4000 /LIST OF MESSAGES TO REMOVE MOPM09+4000 MOPM10+4000 MOPM13+4000 MOPM14+4000 MOPM15+4000 MOPM16+4000 MOPM17+4000 MOPM18+4000 MOPM20+4000 MOPM21+4000 MOPM23+4000 MOPM24+4000 MOPM25+4000 0 PAGE $=$