1 ! ! RSTS/E SYSTEM PERFORMANCE MEASUREMENT V5B-24 ! WRITTEN BY: I.F. (BUD) DAWSON MACMILLAN BLOEDEL LTD. 1075 W. GEORGIA STREET VANCOUVER, B.C. CANADA V6E3R9 2! RELATED PROGRAMS: LOGTIM - CREATES INPUT FILES FOR THIS PROGRAM GRAPH - READS SAME INPUT FILES AS THIS PROGRAM, WITH GRAPH OUTPUT SUMGPH - READS SAME INPUT FILES AS THIS PROGRAM, SUMMARIZES THEM AND PRINTS GRAPH OUTPUT 3! DATE WRITTEN: MARCH, 1975 'LOGTIM' WILL HAVE CREATED A VIRTUAL ARRAY OF SYSTEM STATISTICS FOR EACH DAY THAT IT WAS RUNNING. THIS PROGRAM WILL PRINT THOSE STATISTICS IN TABULAR FORM, PERMITTING A RANGE OF DAYS IN A MONTH 4! OR AN ENTIRE MONTH TO BE PRINTED. OUTPUT FROM THIS PROGRAM IS A FORMATTED ASCII DISK FILE, WHICH MAY BE SUBMITTED TO THE 'LPSPOOL' FOR PRINTING, OR IT MAY BE PRINTED ON ANY TERMINAL VIA '$PIP'. 100 DIM #1%, T$(32%) = 128% 110 INPUT 'ENTER MONTH TO DUMP AS XXX'; M$ : IF LEN(M$) <> 3% THEN &'INVALID MONTH - USE JAN FOR JANUARY, FOR EXAMPLE' : GOTO 110 120 INPUT 'FULL MONTH (F) OR PARTIAL MONTH (P)'; M1$ : IF LEFT(M1$,1%) = 'F' THEN 130 ELSE IF LEFT(M1$,1%) <> 'P' THEN 120 ELSE INPUT 'START DAY'; S8% : INPUT 'STOP DAY '; S9% : GOTO 140 130 S8% = 1% : S9% = 31% ! PRINT FULL MONTH 140 IF S8% > S9% THEN &'STOP DAY MUST BE GREATER THAN START DAY' : GOTO 120 ! LET HIM TRY AGAIN 150 FOR J% = S8% TO S9% : GOSUB 1000 ! FOR RANGE OF DAYS REQUESTED 160 IF E% = 1% THEN E% = 0% : GOTO 240 ! NO FILE FOR THAT DAY - CONTINUE 170 FOR I% = 1% TO 32% 180 P$ = T$(I%) : IF LEFT(P$,4%) = '****' THEN GOTO 210 ! NO DATA FOR THAT HOUR 190 R% = INSTR(1%,P$,':') : IF R% > 3% AND R% < 10% THEN PRINT #2%, RIGHT(P$,3%) ELSE PRINT #2%, P$ ! DON'T PRINT AVG # OF USERS FROM POSN 1-2, WHICH ARE USED IN GRAPH 200 IF R% > 3% AND R% < 10% THEN PRINT #2% ! NEED A BLANK LINE WHEN PRINTING LINES WITH AVG # OF USERS, AS CR/LF IS LOST 210 NEXT I% 220 CLOSE 1%, 2% ! CLOSE INPUT AND OUTPUT FILES 230 GOSUB 32100 ! SEND TEMP. FILE TO SPOOLER 240 NEXT J% ! GET NEXT DAY'S FILE 250 GOTO 260 1000 ! ! ESTABLISH NAMES OF FILES USING MONTH FROM M$ AND DATES FROM ! 1 TO 31 IN FORMAT 'MMMDD.'. ALSO OPEN CORRESPONDING TEMP. DISK ! FILE TO SEND TO SPOOLER FOR EACH DAY, IN FORMAT 'MMMDD.TMP' ! 1010 J$ = NUM$(J%) : J$ = RIGHT(J$,2%) : IF J% < 10% THEN J$ = '0' + J$ 1012 J$ = M$ + LEFT(J$,2%) ! PUT MONTH AND DAY TOGETHER FOR NAME 1015 ON ERROR GO TO 1100 1020 OPEN '[10,2]' + J$ FOR INPUT AS FILE 1% 1030 L$ = J$ + '.TMP' 1040 OPEN L$ FOR OUTPUT AS FILE 2% 1050 PRINT #2%, CHR$(12%) ! SKIP TO NEW PAGE 1099 RETURN 1100 ! ! TRAP IF NO INPUT FILE FOR A CERTAIN DAY ! 1110 IF ERR = 5% AND ERL = 1020 THEN E% = 1% : RESUME 1099 ! SET SWITCH TO SAY 'NO FILE' 1120 ON ERROR GO TO 0 32100 ! THIS ROUTINE SUBMITTED THE PRINTED OUTPUT TO A SPOOLER. 32110 ! THE NECESSARY LOGIC MAY BE INSERTED IN HERE, OR THE OUTPUT 32111 ! DISK FILE MAY BE DUMPED TO ANY HARD-COPY TERMINAL VIA '$PIP'. 32250 RETURN 32767 END