.TITLE OPRMON --OPERATOR MONITOR .IDENT /V01.0/ ; EDIT # 0015 1 Apr 1981 8:53:14 DR0:[2,7]OPRMON.MAC;23 ; PREVIOUS EDIT 27 Feb 1981 12:07:42 DR0:[2,7]OPRMON.MAC;22 ; BY RAY VAN TASSLE 12/29/80 ; THERE IS A SPECIAL PRIVILEGED USER, THE OPERATOR, WHO IS ; ALLOWED TO DO A LIMITED NUMBER OF SPECIAL THINGS, LIKE ; A DISK BACKUP, CHANGE PRINTER FORMS, SHUT THE SYSTEM DOWN, ETC. ; WHAT HE CAN DO IS LIMITED BY DOING IT IN AN INDIRECT COMMAND ; FILE, "OPERATOR.CMD". ;THE KMS-FUSION LOGIN ENHANCEMENTS ARE USED TO LOG ON THE TERMINAL AS ; SLAVE AND TO RUN THIS TASK WHEN HELLO IS DONE. ; THIS TASK RENAMES ITSELF (CLEVER!!!) SO THAT SEVERAL PEOPLE ; CAN LOG IN AS THE OPERATOR. ; ;IF YOU HAVE CCL, INCLUDE "MON" IN THE USERCCL.CCL ;IF YOU DON'T HAVE CCL, OPRMON MUST BE INSTALLED AS ; "MONXXX" AND "...MON" ;IF YOU DON'T HAVE THE LOGIN ENHANCEMENTS, MAKE A LOGIN.CMD ; TO SLAVE THE TERMINAL AND KICK OFF THIS PROGRAM. ; THE ORIGINAL TASK NAME IS "MONXXX" THE NEW ; NAME IS ...MON OR MONTNN. ; ;BEFORE IT STARTS UP AT., IT SETS INVOKES "SETNOPRIV.CMD" TO SET ; THE TERMINAL AS NON-PRIV (IF "SETPRV" IS INSTALLED). THEREFORE ; AT. WILL SET ITSELF AS NON-PRIV, SO THAT IT WILL BE ABORTED ; BY "BYE". IN OUR SYSTEM, "TT.KGB" WILL FORCE A "BYE" IF THE TERMINAL ; IS IDLE WITH NO TASKS DOING ANYTHING FOR A PERIOD OF 10 MINUTES. ;THE FIRST THING IN THE COMMAND FILE SHOULD BE A "RUN SETPRV" WHICH ; WILL SEE THAT YOUR LOGIN UIC IS PRIVILEGED, AND SET THE TERMINAL AS ; PRIVILEGED WITHOUT BOTHERING YOU FOR THE PASSWORD. ;IT THEN STARTS UP @, AND WHEN IT IS DONE, LOGS OFF. .MCALL GTSK$S,SPWN$S,EXIT$S,STSE$S,MRKT$S,CLEF$S TSKBUF: .BLKW 20. ; THIS TASKS PARMS INDCMD: .ASCII "@OPERATOR/-LI" INDL=.-INDCMD NPRVCM: .ASCII "@SETNOPRIV/-LI" NPRVL=.-NPRVCM BYECMD: .ASCII "BYE"<15> BYEL=.-BYECMD MONCMD: .ASCII "MON" MONL=.-MONCMD .EVEN MCR: .RAD50 "MCR..." OPRMON: GTSK$S #TSKBUF CMP TSKBUF+2,#^RXXX ; INITIAL SHOT? BNE 20$ ; YES--RUN AS ...MON TO ALLOW MULTI-USERS SPWN$S #MCR,,,,,#2,,#TSKBUF,#MONCMD,#MONL BCS 20$ EXIT$S IOT ; OH! YE OF LITTLE FAITH ; MAIN PART--SET NON-PRIV & START UP THE COMMAND FILE 20$: SPWN$S #MCR,,,,,#2,,,#NPRVCM,#NPRVL BCS 100$ ; N.F.G, SO BYE-BYE STSE$S #2 SPWN$S #MCR,,,,,#2,,,#INDCMD,#INDL BCS 100$ ; N.F.G, SO BYE-BYE STSE$S #2 ; AT THIS POINT, AT. IS DONE 100$: SPWN$S #MCR,,,,,#2,,,#BYECMD,#BYEL EXIT$S .END OPRMON