1! IMUNIZ EDIT 01 26-JUL PETER MULLEN 20! This program is designed to operate with 'SYSMAN'. A user is able to make his terminal imune from the actions of 'SYSMAN'. 21! If a nonpriveleged user user runs this program, a message will be sent to 'SYSMAN' telling it not to watch this terminal. 22! A priveleged user is given his choice of options; IMUNIZE LIST RESET 23! IMUNIZE- works the same as above for a nonpriveleged user LIST- will list to a specified device the accumulated use data for each terminal on the system. RESET- will reset the data to zero. 24! LIST and RESET send a message to 'SYSMAN' asking it to dump it's larest information into the file (1,2)SYSMAN.DAT. 400 DIM #1%, K1(30%), A$(0%)=16% ! FORMAT OF STORAGE FILE ! K1()- TIME USED ! A$()- LAST RESET ! 990 ON ERROR GOTO 19000 ! SET UP STANDARD ERROR TRAP 1000 A%=PEEK(PEEK(PEEK(520%)+8%)+24%) \ A%=(SWAP%(A%) AND 255%)<>1% ! A% IS FALSE IF USER 1,* IS RUNNING IT 1010 GOTO 4000 IF A% \ INPUT 'IMUNIZE, RESET, LIST';T$ \ T$=CVT$$(T$,255%) \ IF T$='IMUNIZE' THEN 4000 ELSE IF T$<>'LIST' AND T$<>'RESET' THEN PRINT 'ILLEGAL COMAND ';T$ \ GOTO 1010 ! ASK USER HIS CHOICE OF OPTIONS 1020 K%=0% \ N%=1% \ GOSUB 10000 \ SLEEP 3% ! ASK SYSMAN TO DUMP INFORMATION, SLEEP TO GIVE HIM A CHANCE 1030 OPEN '(1,2)SYSMAN.DAT' FOR INPUT AS FILE 1% \ IF T$='RESET' THEN 2000 ELSE INPUT 'OUTPUT TO';T1$ ! GET LISTING MEDIUM 1040 OPEN T1$ FOR OUTPUT AS FILE 2% \ PRINT #2%, 'TERMINAL USE SINCE ';A$(0%) \ PRINT #2%, 'TERMINAL','CONNECT TIME (HOURS:MINUTES)' \ PRINT #2%, I%,FNP$(K1(I%)) FOR I%=0% TO 20% ! LIST INFORMATION 1050 CLOSE 1%,2% \ GOTO 32767 1060 PRINT 'DATA FILE DOES NOT EXIST' \ GOTO 32767 ! OPEN FOR INPUT ERROR 2000 K1(I%)=0. FOR I%=0% TO 20% \ A$(0%)=DATE$(0%) \ CLOSE 1% \ GOTO 32767 ! RESET COUNTERS 4000 K%=ASCII(RIGHT(SYS(CHR$(6%)+CHR$(9%)+CHR$(0%)),2%)) \ N%=3% \ GOSUB 10000 \ GOTO 32767 ! IMUNIZE THIS KEYBOARD 4010 PRINT "DO NOT WORRY 'SYSMAN' IS NOT RUNNING" \ GOTO 32767 ! ERROR SENDING MESSAGE 10000 I$=SYS(CHR$(6%)+CHR$(18%)+CHR$(-1%)+CHR$(0%)+ MID(SYS(CHR$(6%)+CHR$(-10%)+'SYSMAN'),7%,4%)+CHR$(N%)+CHR$(K%)) \ RETURN ! SEND MESSAGE TO SYSMAN ! N%- TYPE OF MESSAGE ! K%- TERMINAL NUMBER ! 19000 IF ERR<>5% THEN ON ERROR GOTO 0 ELSE RESUME 1060 IF ERL=1030 \ RESUME 4010 IF N%=3% \ RESUME 1030 ! IF NO 'SYSMAN THEN TELL USER 20000 DEF FNP$(X) \ O1=INT(X/60) \ O1$=CVT$$(NUM$(INT(X-O1*60)),255%) \ O1$=CVT$$(NUM$(O1),255%)+':'+ RIGHT('00'+O1$,LEN(O1$)+1%) \ FNP$=SPACE$(7%-LEN(O1$))+O1$ 20010 FNEND ! FUNCTION TO PUT X INTO STRING (HOURS:MINUTES) 32767 END