1!!!! LOGOUT VERSION 5 EDIT 6 03/04/73 2!!!! !!!!! Copyright (C) 1975 !!!!! Digital Equipment Corporation !!!!! !!!!! !!!!! This software is furnished under a license for use only on a !!!!! single computer system and may be copied only with the inclusion 3!!!! of the above copyright notice. This software, or any other !!!!! copies thereof, may not be provided or otherwise made available !!!!! to any other person except for use on such system and to one who 4!!!! agrees to these license terms. Title to and ownership of the !!!!! software shall at all times remain in Digital. !!!!! !!!!! The information in this document is subject to change without 5!!!! notice and should not be construed as a commitment by Digital !!!!! Equipment Corporation. !!!!! !!!!! Digital assumes no responsibility for the use or reliability of !!!!! its software on equipment which is not supplied by Digital. 6!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7 ! MODIFIED SUMMER 76 BY PETER MULLEN ! "P" OPTION ADDED 8 ! MODIFIED FALL 76 BY TOM CLEMENT ! ASKS CONFIRMATION ON AN ATTEMPT TO DELETE A WRITE PROTECTED FILE 9 ! MODIFIED SUMMER 77 BY JIM CONDICT ! SETS NO LC INPUT FOR DECWRITERS (EXCEPT KB0:) AND ADDS TERMINAL ! JUST BEFORE LOGOUT SYS CALL 100 DIM M%(30),N%(30) ! LOGOUT FOR RSTS V05 200 L$=SYS(CHR$(7%)) \ L$=RIGHT(L$,2%) IF ASCII(L$)=47% \ IF ASCII(L$)=80% THEN L$=RIGHT(L$,2%) \ IF ASCII(L$)<>80% THEN L$='' ELSE L$=CHR$(208%) 1000 ON ERROR GOTO 9000 : PRINT "CONFIRM: "; IF LEN(L$)=0% : L9%=0%: KILL "TEMP"+RIGHT(NUM$(100%+ASCII(CHR$(PEEK(518%)))/2%), 3%)+".TMP" 1010 CHANGE SYS(CHR$(6%)+CHR$(14%)) TO M% : Q=256.*M%(28%)+M%(27%) : T=256.*M%(6%)+M%(5%) : IF LEN(L$)=0% THEN OPEN "KB:" AS FILE 1% : INPUT #1%,L$ : L$=CVT$$(L$,-1%) : CLOSE 1% 1020 P%=ASCII(L$) \ IF P%=78% THEN 9100 ELSE IF P%=73% THEN 1100 ELSE IF P%=63% THEN 1040 ELSE IF P%=89% THEN 2000 ELSE IF (P% AND 127%)=80% THEN 10000 ELSE IF P%=70% THEN L9%=-1%\ GOTO 2000 ! BRANCH TO ROUTINE 1030 PRINT "Type '?' For Help" \ L$='' \ GOTO 1000 ! NO LEGAL OPTION FOUND TRY AGAIN 1040 ON ERROR GOTO 1050 \ OPEN 'LOGOUT.TXT(1,2)' FOR INPUT AS FILE 2% \ WHILE -1% \ INPUT LINE #2%, L$ \ PRINT CVT$$(L$,4%) \ NEXT ! PRINT HELP MESSAGE 1050 L$='' \ I$=SYS(CHR$(0%)) \ CLOSE 2% \ RESUME 1000 ! ERROR HANDLING FOR HELP 1100 N%(I%)=0% FOR I%=0% TO 30% : N%(3%)=-1% 1110 ON ERROR GOTO 9000 : N%(3%)=N%(3%)+1% : IF N%(3%)>255% THEN N%(3%)=0% : N%(4%)=N%(4%)+1% 1120 N%(0%)=30% : N%(1%)=6% : N%(2%)=15% : ON ERROR GOTO 1900 : CHANGE N% TO L$ : CHANGE SYS(L$) TO N% : ON ERROR GOTO 9000 1130 A$=RAD$(N%(7%)+SWAP%(N%(8%)))+RAD$(N%(9%)+SWAP%(N%(10%)))+ "."+RAD$(N%(11%)+SWAP%(N%(12%))) : PRINT A$" "256.*N%(14%)+N%(13%)" "N%(15%)" "; DATE$(N%(17%)+SWAP%(N%(18%)))" "; 1140 INPUT L$ \L$=CVT$$(L$,255%) \IF L$<>"K" THEN 1110 ELSE IF (2% AND N%(15%)) THEN INPUT "? REALLY KILL ";L1$ \L1$=CVT$$(L1$,255%) \IF L1$<>"YES" THEN PRINT "Whew!" \GOTO 1110 ! CHECK WRITE PROTECTION AND ASK CONFIRMATION 1150 ON ERROR GOTO 1800 \KILL A$ \ON ERROR GOTO 9000 \GOTO 1120 1800 PRINT "ERROR DELETING FILE - "A$ \RESUME 1110 1900 IF ERR<>5% THEN RESUME 9010 ELSE L$="" : RESUME 1000 ! TAKE CARE OF END OF DIRECTORY. 2000 CHANGE M% TO L$ : L$=RIGHT(L$,7%) : CHANGE SYS(CHR$(6%)+CHR$(4%)+" "+L$) TO N% 2010 I%=N%(3%)-1% : IF I% THEN 7000 ELSE IF Q=0 THEN 7000 ELSE IF T<=Q OR (P% AND 127%)=80% THEN 7000 2020 PRINT "DISK QUOTA OF"Q"EXCEEDED BY"T-Q"BLOCKS" : PRINT "SOME FILE(S) MUST BE DELETED BEFORE LOGGING OUT" : GOTO 1000 7000 CHANGE SYS(CHR$(6%)+CHR$(9%)+CHR$(0%)) TO N% : IF L9%=0% THEN PRINT "SAVED ALL DISK FILES;"T"BLOCKS IN USE"; : PRINT ","Q-T"FREE"; IF Q-T>=0 AND Q<>0 : PRINT : Q=TIME(0%) : T=TIME(1%) : Q0=TIME(2%) 7005 L$=SYS(CHR$(6%)+CHR$(5%)) : IF L9% THEN PRINT : GOTO 7060 7010 L$=NUM$(M%(8%)) : PRINT "JOB"N%(1%)/2%"USER"LEFT(L$,LEN(L$)-1%); ","RIGHT(NUM$(M%(7%)),2%)"LOGGED OFF KB"; RIGHT(NUM$(N%(2%)/2%),2%)"AT "DATE$(0%)" "TIME$(0%) 7020 PRINT RIGHT(NUM$(I%),2%)"OTHER USER(S) STILL LOGGED IN UNDER"; " THIS ACCOUNT" IF I% : PRINT "SYSTEM "; : PRINT CHR$(N%(I%)); FOR I%=3% WHILE N%(I%)<>0% : PRINT : PRINT "RUN TIME WAS"; : GOSUB 8000 : PRINT "ELAPSED TIME WAS"; 7040 T=Q0*600.+10.*(Q-60.*INT(Q/60.)) : GOSUB 8000 7050 PRINT "GOOD "; : IF Q<43200 THEN PRINT "MORNING" ELSE IF Q<64800 THEN PRINT "AFTERNOON" ELSE PRINT "EVENING" 7060 PRINT CHR$(10%); FOR I%=1% TO 12% : I%=N%(2%)/2% : M$=SYS(CHR$(6%)+CHR$(16%)+CHR$(0%)+CHR$(255%)+STRING$(7%,0%)+CHR$(128%)) IF (I%>7% AND I%<13%) OR I%=5% OR I%=15% : M$=SYS(CHR$(5%)) !WAS SYS(CHR$(9)) SYS CALL 8000 I%=T/36000. : IF I%<>0% THEN PRINT I%"HOUR"; : IF I%=1% THEN PRINT ","; ELSE PRINT "S,"; 8010 T=T-36000.*I% : I0%=T/600. : IF I%<>0% OR I0%<>0% THEN PRINT I0%"MINUTE"; : IF I0%=1% THEN PRINT ","; ELSE PRINT "S,"; 8020 T=INT(T-600.*I0%) : PRINT T/10"SECOND"; : IF T/10==1 THEN PRINT ELSE PRINT "S" 8030 RETURN 9000 RESUME 9010 9010 IF ERR=27% THEN CLOSE 1% : M$=SYS(CHR$(9%)) : STOP 9020 IF ERL=1000% THEN RESUME 1010 9100 CLOSE 1% : PRINT : L$=SYS(CHR$(9%)) : STOP 10000 GOTO 2000 IF T<=Q OR Q=0.\ ON ERROR GOTO 10100 \ A1$=CHR$(13%)+CHR$(10%) \ DIM#2%,N8%(1%),A$(10000) \ IF P% AND 128% THEN H$=' ##SYSMNG## '+SPACE$(20%) \ H1$=' THE COMPUTER DID IT' \ GOTO 10030 ! SPECIAL CASE IF BYE FORCED BY SYSMNG 10010 PRINT 'The advisors have agreed to consider your request' \ H$='' \ WHILE LEN(H$)<1% \ PRINT 'Your Name'; \ INPUT LINE H$ \ H$=CVT$$(H$,4%) \ NEXT \ H$=H$+SPACE$(32%-LEN(H$)) 10020 H1$='' \ WHILE LEN(H1$)<1% \ PRINT 'Why have you made this request?' \ INPUT LINE H1$ \ H1$=CVT$$(H1$,4%) \ NEXT 10030 OPEN 'GRIPE.TXT(1,2)' FOR INPUT AS FILE 2% \ IF STATUS AND 1024% THEN CLOSE 2% \ PRINT 'Your request has been denied'+A1$+ 'It is being appealed, There is hope!' IF (P% AND 128%)=0% \ SLEEP 8%\ GOTO 10030 10040 I1%=PEEK(PEEK(PEEK(520%)+8%)+24%) \ I2%=SWAP%(I1%) AND 255% \ I1%=I1% AND 255% \ H$='*** LOGOUT *** '+H$+' ('+NUM$(I2%)+','+NUM$(I1%)+ ')'+A1$+' LOGGED OUT AT '+DATE$(0%)+' '+TIME$(0%)+ ' WITH QUOTA' 10045 H$=H$+' OF'+NUM$(Q)+'EXCEEDED BY'+NUM$(T-Q)+'BLOCKS'+A1$+H1$+A1$+A1$ \ IF(P% AND 128%)=0% THEN PRINT 'Your request has been granted'+A1$+A1$ 10050 N%=N8%(0%)+1% \ L%=LEN(H$)-1% \ N8%(0%)=N%+L%/16% \ A$(I%+N%)=RIGHT(H$,I%*16%+1%) FOR I%=0% TO L%/16% \ CLOSE 2% \ ON ERROR GOTO 9000\ GOTO 2000 ! PUT NOTICE IN GRIPE FILE 10100 IF ERR<>5% THEN ON ERROR GOTO 0 ELSE OPEN 'GRIPE.TXT(1,2)' FOR OUTPUT AS FILE 2% \ N8%(0%)=-1% \ RESUME 10040 ! ERROR HANDLING FOR P OPTION 32767 END