1000 ! LOGOFF.BAS / LOGOFF.B2S (BASIC-PLUS / BP2) & ! & ! Log off idle terminals. (V9.x PBS required) & ! & ! 9-Feb-87 F. Mitchell Erskine College & ! & ! 10-Feb-87 last edit *M & ! & ! Author: W. Franklin Mitchell, Jr. & ! Director of Computer Services & ! Erskine College, Due West, South Carolina & ! & ! Copyright (c) 1987 & ! Erskine College, Due West, South Carolina & ! & ! *********************************************************************** & ! * This software is furnished without charge by Erskine College and * & ! * may be copied only with the inclusion of the author's name and * & ! * copyright notice. No title to or ownership of this software is * & ! * hereby transmitted. Neither Erskine College nor the author assumes * & ! * any responsibility for the use or reliability of this software. The * & ! * author welcomes comments and/or bug reports mailed to Franklin * & ! * Mitchell, Erskine College, Box 86L, Due West, South Carolina 29639. * & ! *********************************************************************** & 1010 DIM M%(30%) & 1020 DIM #1%, TBL%(63, 3) & 1030 ON ERROR GOTO 19000 & \ PRINT IF CCPOS(0%) & \ PRINT "LOGOFF V1.0 "; TIME$(0%); " "; DATE$(0%); " "; & 1040 OPEN "V:[1,12]LOGOFF.DAT" AS FILE 1% & 1050 OPEN "_NL:" AS FILE 2%, RECORDSIZE 30% & 1060 FIELD #2%, 5% AS UU.SYS$ & \ FIELD #2%, 2% AS X1$, 1% AS JOB$, 27% AS X3$ & \ LSET X1$ = CHR$(6%) + CHR$(26%) & \ LSET X2$ = STRING$(27%, 0%) & \ T0% = PEEK(514%) & \ PRINT "Last RUN = "; TIME$(TBL%(0%,0%)) & \ PRINT & \ TBL%(0%, 0%) = T0% & 1070 OPEN "V:[1,12]LOGOFF.DO" FOR OUTPUT AS FILE 3% & 1080 JOB% = 6% - 1% & \ DETACHED% = 128% & ! & ! Start job scan with job 6 & 1090 JOB% = JOB% + 1% & \ LSET JOB$ = CHR$(JOB%) & \ CHANGE SYS(UU.SYS$) TO M% & 1100 KB.NR% = M%(4%) & \ GOTO 1240 IF (KB.NR% AND DETACHED%) <> 0% & \ GOTO 1240 IF TBL%(JOB%, 0%) <> KB.NR% & \ PK% = M%(5%) & \ GOTO 1240 IF PK% <> 0% & \ P% = M%(22%) & \ PN% = M%(21%) & \ PPN% = SWAP%(P%) + PN% & \ GOTO 1240 IF TBL%(JOB%, 1%) <> PPN% & \ LO.CPU% = 256% * M%( 8%) + M%(7%) & \ GOTO 1240 IF TBL%(JOB%, 2%) <> LO.CPU% & \ T% = TBL%(JOB%, 3%) - T0% & \ GOTO 1090 IF T% < 40% & \ CONNEC% = 256% * M%(10%) + M%(9%) & 1110 KB$ = "KB" + NUM1$(KB.NR%) + ":" & \ WHAT$ = RAD$(M%(17%)+SWAP%(M%(18%))) + RAD$(M%(19%)+SWAP%(M%(20%))) & \ RTS$ = RAD$(M%(27%)+SWAP%(M%(28%))) + RAD$(M%(29%)+SWAP%(M%(30%))) & 1120 PRINT USING "## ", JOB%; & \ PRINT "["; NUM1$(P%); ","; NUM1$(PN%); "]"; TAB(12%); & \ PRINT KB$; TAB(18%); WHAT$; & \ PRINT USING " #,### #,###.# ", CONNEC%, LO.CPU%/10.; & \ PRINT RTS$; " "; TIME$(TBL%(JOB%, 3%)); " "; & 1130 GOTO 1140 IF T% > 70% & \ PRINT "B" & \ PRINT #3%, "$_BROADCAST/BELL "; KB$ & \ PRINT #3%, ' Your terminal has been inactive since '; & \ PRINT #3%, TIME$(TBL%(JOB%, 3%)); '... PLEASE LOG OFF.' & \ GOTO 1090 & 1140 GOTO 1230 IF T% > 130% & \ PRINT "F" & \ PRINT #3%, "$_BROADCAST/BELL "; KB$ & \ PRINT #3%, ' Your terminal has been inactive since '; & \ PRINT #3%, TIME$(TBL%(JOB%, 3%)); '. Attempting auto logoff...' & \ GOTO 1150 IF WHAT$ = "W11EDT" & \ GOTO 1160 IF WHAT$ = "W11MEN" & \ GOTO 1170 IF WHAT$ = "...EDT" & \ GOTO 1180 IF LEFT(RTS$, 3%) = "W11" & \ GOTO 1220 IF RTS$ = "TECO" & \ PRINT #3%, "$_FORCE "; KB$; ' "^Z"' & \ PRINT #3%, "$_FORCE "; KB$; ' ""' & \ PRINT #3%, "$_FORCE "; KB$; ' "^C"' & \ GOTO 1220 & 1150 PRINT #3%, "$_FORCE "; KB$; ' "^Z"' & 1160 GOTO 1220 1170 PRINT #3%, "$_FORCE "; KB$; ' "^Z"' & \ PRINT #3%, "$_FORCE "; KB$; ' "EXIT"' & \ GOTO 1220 & 1180 PRINT #3%, "$ E=F$CHR(27)" & \ PRINT #3%, "$_FORCE "; KB$; ' "'; "''E'OPM"; '"' & \ GOTO 1220 & ! & ! GOLD-Menu & 1210 PRINT #3%, "$ E=F$CHR(27)" & \ PRINT #3%, "$_FORCE "; KB$; ' "'; "''E'''E'EX''E'''E'"; '"' & ! & ! EX & 1220 PRINT #3%, "$_FORCE "; KB$; ' "BYE"' & \ GOTO 1090 & 1230 PRINT "K" & \ PRINT #3%, "$_REMOVE/JOB"; JOB% & \ GOTO 1090 & 1240 TBL%(JOB%, 0%) = KB.NR% & \ TBL%(JOB%, 1%) = PPN% & \ TBL%(JOB%, 2%) = LO.CPU% & \ TBL%(JOB%, 3%) = T0% & \ GOTO 1090 & 1250 X% = (T0% - 2%)/30%*30% & \ X% = X% + 1440% IF X% < 0% & \ X% = 930% IF (X% > 931%) AND (X% <= 1260%) & \ NXT$ = TIME$(X% + 1%) & \ PRINT #3%, "$_SUBMIT/QUEUE=ADMIN/AFTER="; CVT$$(NXT$,-1%); " LOGOFF" & \ PRINT #3%, '$_DELETE V:[1,12]LOGOFF.DO' & \ CLOSE 1%, 2%, 3% & \ V$ = SYS(CHR$(14%) + "$ _@V:[1,12]LOGOFF.DO") & 19000 RESUME 20100 IF (ERR = 10%) AND (ERL = 1090) & \ RESUME 1250 IF (ERR = 18%) AND (ERL = 1090) & 19020 PRINT & \ PRINT "?Unexpected LOGOFF error: "; ERR & \ PRINT & \ ON ERROR GOTO 0 & 20100 KB.NR%, PPN%, LO.CPU% = -1% & \ GOTO 1240 & 32767 END