/ USER COMMAND DISPATCH 19-APR-90 / / / THIS TASK DECODES AND EXECUTES USER / LEVEL TELETYPE COMMANDS / / / TASK= USERCD CUR= USERFLD INIWT= 0 VERS= 1 TASK2= EXIT CUR2= CUR INIWT2= 0 VERS2= 3 FIELD CUR%10 *USERLOC START, CLB CAL RECEIVE MADDR, 0 DCA MSGFLD+1 AC0002 TAD MADDR DCA MADDR JMS MSGFLD /IS THIS A NULL MESSAGE ? TAD I MADDR CDF CUR SPA SNA CLA JMP USERXT /YES, JUST EXIT. TAD (-13) DCA USERA /SET UP A LOOP COUNTER FOR SEARCH TAD (CMDLST-7) DCA USERB /SET UP A POINTER TO COMMAND LIST USER1, CLB TAD (7) /INCREMENT THE LIST POINTER TAD USERB /TO THE NEXT ENTRY. DCA USERB IAC TAD USERB DCA USERC TAD I USERC /AT END OF COMMAND LIST ? SNA CLA JMP USERER /YES, LOG ERROR. TAD MADDR /RESET THE MESSAGE POINTER. DCA USERD USER2, TAD I USERC /GET THE NEXT COMMAND CHARACTER. SNA CLA /THIS COMMAND FINISHED ? JMP USER1 /YES, TRY THE NEXT JMS MSGFLD /GET THE NEXT MESSAGE CHARACTER. TAD I USERD ISZ USERD CDF CUR CIA /NO, CHECK NEXT COMMAND CHARACTER. TAD I USERC ISZ USERC SZA CLA JMP USER1 /NO MATCH, TRY NEXT COMMAND. JMS MSGFLD /IS NEXT CHAR A TEN TAD I USERD CDF CUR SMA SZA CLA JMP USER2 /NO, GO ON STL /YES, MORE JMP I USERB / USERER, CDF CUR CAL SEND TTYST USERMG USERXT, CDF CUR CLB TAD MSGFLD+1 DCA USERX1 TAD (-5) TAD MADDR CAL POST USERX1, 0 JMP START MSGFLD, 0 HLT JMP I MSGFLD USERMG, ZBLOCK 3 0 0 TEXT "INVALID COMMAND" USERA, 0 /LOCAL STORAGE USERB, 0 USERC, 0 USERD, 0 PAGE / / / COMMAND LIST / / CMDLST, JMP CMDP1 "L /"LIST" A/D MAINTENANCE FORM "I "S "T 0 0 JMP CMDP2 "S /"S" FOR SAMPLE GATE ZBLOCK 5 JMP CMDP3 "R /"RA" FOR REJECT A GATE "A ZBLOCK 4 JMP CMDP4 "R /"RB" FOR REJECT B GATE "B ZBLOCK 4 JMP CMDP5 "P /"PC" FOR PRODUCT C GATE "C ZBLOCK 4 JMP CMDP6 "P /"PA" FOR PRODUCT B GATE "A ZBLOCK 4 JMP CMDP7 "P /"PB" FOR PRODUCT A GATE "B ZBLOCK 4 JMP CMDP8 "P /"PSM" TO RESTART ANALOG SELF CHECK "S "M ZBLOCK 3 JMP CMDP9 "C /"CH1" TO RESTART CHANNEL 1 SELF CHECK "H "1 ZBLOCK 3 / JMP CMDP10 "C /"CH2" TO RESTART CHANNEL 2 SELF CHECK "H "2 ZBLOCK 3 JMP CMDP11 "C /"CH3" TO RESTART CHANNEL 3 SELF CHECK "H "3 ZBLOCK 3 JMP CMDP12 "N /"NONE" TO GET OUT OF STACKER TEST "O "N "E ZBLOCK 2 / / / JMP USERER /END OF COMMAND LIST ZBLOCK 6 PAGE / / / COMMAND PROCESSOR SEQUENCES / / CMDP1, CLB TAD (LIST) /RUN THE LIST TASK CAL RUN JMP USERXT CMDP2, RAL /SAMPLE GATE CMDP3, RAL /REJECT A GATE CMDP4, RAL /REJECT B GATE CMDP5, RAL /PRODUCT C GATE CMDP6, RAL /PRODUCT A GATE CMDP7, RAL /PRODUCT B GATE CDF 10 DCA I (STAKWD) DBRI50 /ARE WE IN TEST MODE ? AND (0040) SZA CLA JMP USERER /NO, SAY ERROR. CLB IAC / YES, SET THE STACKER DCA I (STAKFG) /MAINTENANCE FLAG. JMP USERXT /AND EXIT. CMDP12, CLB CDF 10 DCA I (STAKWD) /TURN OFF STACKER TEST DCA I (STAKFG) JMP USERXT CMDP8, CLB /REENABLE ANALOG SELF CHECK CDF 50 DCA I (ADERRF) JMP USERXT CMDP9, CLB /RENNABLE CHANNEL 1 SELF CHECK CDF 50 DCA I (CH1ERF) JMP USERXT CMDP10, CLB /REENABLE CHANNEL 2 SELF CHECK CDF 50 DCA I (CH2ERF) JMP USERXT CMDP11, CLB /REENABLE CHANNEL 3 SELF CHECK CDF 50 DCA I (CH3ERF) JMP USERXT / / /%RT EXIT FROM MAST AND RETURN TO OS/8 / /%TW WHENEVER THE USER ENTERS THE "EXIT" COMMAND, / MCR WILL RUN THIS TASK. IF MAST IS IN TEST MODE, / CONTROL WILL BE RETURNED TO OS/8. IF MAST IS NOT / IN TEST MODE, THE COMMAND IS IGNORED. / / START2, CLB CAL SUSPND /SLEEP 'TIL NEEDED. DBRI50 /ARE WE IN TEST MODE ? AND (0040) SZA CLA JMP START2 /NO, IGNORE THE COMMAND. CAL /ASK "INLOCK" TO OPEN THE "MAST SEND / MONITOR" INTERLOCK INLOCK EXTINL CAL /ASK THE CRT HANDLER TO RESTORE SENDW / THE VT220 CURSOR CRT EXTCRT CAL /WAIT FOR .5 SECONDS TO BE SURE SENDW / THE VT220 CURSOR IS RESTORED CLOCK EXTCLK IOF /SHUT MAST DOWN AND RESTART OS/8 CAF CDF CIF 0 JMP I (7600) / EXTINL, ZBLOCK 3 2000 /OPEN "MAST MONITOR" INTERLOCK EXTCRT, ZBLOCK 3 CRTV02 /TEXT TO RESTORE THE VT220 CURSOR EXTCLK, ZBLOCK 3 /WAIT FOR .5 SECONDS 0 0 62 /500 MS -> .5 SECONDS / PAGE NOPUNCH /F4COMM FOLLOWS XLIST 1