FILE 'CLOG6S' ! ! ! CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG ! CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG ! ! ! %CONTROL K'001001' ! ! %BEGIN ! ! ! !G.J.B. // J.C.A. STARTED 10:11:76 ! ??? LAST UPDATE 15:3:79 14:10 - FILE CLOG5S ! ! FOR ERTE MK.6 MK. 3 MODS MARKED !&& ! FOR ERTE MK.3 MK. 4 MODS MARKED !@@ ! SET UP FOR F1 STANDARD COMMANDS ! ! ! --- STACK NORMAL --- ! ! ! ! ! ######################################################## ! # # ! # ANALYSIS OF E.R.T.E. RUN-LOGS # ! # # ! ######################################################## ! ! ! ! !USES W.S.C.'S PATENT DOUBLE ARITHMETIC PACKAGE ! ! INPUT: ! STREAM 0 COMMAND STREAM ! STREAM 1 DATA LOG FROM STIMULATOR RUN ! ! OUTPUT: ! STREAM 1 RESULTS ! ! ! ! !************************************************************************** ! ! ! %OWNSTRING(64) HEAD='E.R.T.E. LOG ANALYSIS BY COMMAND - VERS 2.2 15:3:79' %OWNSTRING(6) PROMPT1='MODE :' ! ! !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! ! %CONSTINTEGER GREATEST=32767; !LARGEST POSSIBLE NUMBER(16 BITS) %CONSTINTEGER PERSEC=10; !TICKS PER SECOND %CONSTINTEGER RECTYPMAX=3; !TYPES OF INPUT RECORD ! %CONSTINTEGER FIXSKIP=480; !8 MINUTES IN SEC TICKS %CONSTINTEGER FIXTIME=1800; !30 MINUTES IN SEC TICKS %CONSTINTEGER FIXRECS=-1 ! %CONSTINTEGER NOT STARTED=-2 ;!PROCESS NOT RUNNING %CONSTINTEGER WAITING=-1 ;!PROCESS WAITING FOR COMMAND %CONSTINTEGER BORING=0 ! %CONSTINTEGER PROCS=128 ! %CONSTINTEGER EOF=4 %CONSTBYTEINTEGER END CHAR='+' %CONSTBYTEINTEGER START SYMB='*' %CONSTINTEGER MTEXTL=200 %CONSTINTEGER MCOMMS=5 ;!MAXIMUM COMMANDS FOR ANALYSI ! ! !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! ! ! %OWNINTEGERARRAY TEXT(0:MTEXTL) ! %OWNINTEGER INITIALISED='N' ! ! !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! ! %INTEGER H,MODE,I %INTEGER TIME,DIRECTION,TT,LENGTH, XLENGTH %INTEGER MAX TIME,MAX RECORDS,F,G,CHAR %INTEGER LAST TIME %INTEGER ZERO TIME %INTEGER SKIPTIME %STRING(64) TITLE ! ! !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! ! %RECORDFORMAT STATE(%INTEGER STATUS1,FLAG) ! ! %RECORD(STATE) %ARRAY PLIST(0:PROCS) ! ! %RECORD(STATE) %NAME STAT ! ! !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! ! !@@ %CONSTINTEGERARRAY COMMAND(1:2)='$',' '; !VAX-VMS PROMPT !&& %CONSTINTEGERARRAY COMMAND(1:10)=13,10,'C','O','M','M','A','N','D',':'; %OWNINTEGER COMMS=5 %OWNINTEGERARRAY CLEN(1:5)=3,5,4,3,4 ! %OWNINTEGERARRAY COMTOTS(0:1032) %INTEGERARRAY USED(0:PROCS) ! ! %INTEGERMAP COMMT(%INTEGER I,J) %RESULT==COMTOTS(7*I+J) %END ! %OWNINTEGERARRAY CS(0:39)='I','M','P',0(5),'F','O','R','T','E',0(3), 'E','D','I','T',0(4),'R','U','N',0(5),'L','I','S','T',0(4); ! %INTEGERMAP COMMANDS(%INTEGER NUMBER,CHAR) %RESULT==CS(8*(NUMBER-1)+CHAR-1) %END ! ! !MATCH ATTEMPS TO MATCH LEN CHARACTERS FROM STANDARD, STARTING AT !BASE, WITH THE FIRST CHARACTERS IN TEXT ! ! %PREDICATE MATCH(%INTEGERARRAYNAME STANDARD,%INTEGER BASE,LEN) %INTEGER F %FALSE %IF LENGTH0 %THEN %START %EXIT %IF H>MAX RECORDS %FINISH ! ! !READ LINE IN ! READ(TIME) !######## %IF TIME=0 %THEN TIME=LAST TIME; !SOME BAD TIMES IN TCPX91 LAST TIME=TIME !######## ! ! %IF H=1 %THEN %START ! !RECORD TIME OF FIRST TRANSACTION ! ZERO TIME=TIME %IF GREATEST-ZEROTIME>MAXTIME %THEN MAXTIME=MAXTIME+ZEROTIME %C %ELSE MAX TIME=GREATEST %FINISH ! ! %IF TIME>MAX TIME %THEN %EXIT ! %IF TIME>SKIPTIME %AND INITIALISED='N' %THEN %START ! !HAVE JUST GONE OVER 'SKIPTIME'S' WORTH OF FILE THROW EVERYTHING !GATHERED SO FAR AWAY (IS ALL WARM UP DATA) ! REINITIALISE SKIPTIME=GREATEST ZERO TIME=TIME MAX TIME=FIXTIME*PERSEC %IF GREATEST-ZEROTIME>MAXTIME %THEN MAXTIME=MAXTIME+ZERO TIME %C %ELSE MAX TIME=GREATEST ! %FINISH ! ! READ(DIRECTION) ! ! ! READ(TT) READ(LENGTH) %IF LENGTH#0 %START ! !READ IN TEXT OF MESSAGE PASSED ! SKIP SYMBOL; !ALWAYS A SPACE AT START SKIP SYMBOL; ! TWO IN MK.6 ! ! XLENGTH = LENGTH %IF XLENGTH > 90 %THEN XLENGTH = 90 %CYCLE F=1,1,XLENGTH READ SYMBOL(TEXT(F)) %REPEAT %FINISH ! ! ! !IGNORE ANY ERRONEOUS DATA. ALOG WILL GIVE FURTHER DETAILS ! %CONTINUE %IF TT<0 %OR TT>PROCS-1 %OR DIRECTION<1 %OR DIRECTION>RECTYPMAX ! ! ! !&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ! !ANALYSE AND STORE DATA ! !&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ! !GET PROCESS LIST ENTRY FOR THIS CONSOLE ! ! STAT==PLIST(TT) ! USED(TT)=1 ! ! ! ! %IF DIRECTION=1 %THEN %START ! ! !MESSAGE GOING TO EMAS ! %IF STAT_STATUS1=WAITING %THEN %START ! !WAITING FOR A COMMAND - SEE IF IT IS INTERESTING ! STAT_STATUS1=BORING %CYCLE F=1,1,COMMS %IF MATCH(CS,8*(F-1),CLEN(F)) %THEN STAT_STATUS1=F %AND %EXIT %REPEAT COMMT(TT,STAT_STATUS1)=COMMT(TT,STAT_STATUS1)+1 COMMT(TT,MCOMMS+1)=COMMT(TT,MCOMMS+1)+1 COMMT(PROCS,STAT_STATUS1)=COMMT(PROCS,STAT_STATUS1)+1 COMMT(PROCS,MCOMMS+1)=COMMT(PROCS,MCOMMS+1)+1 %FINISH ! %FINISH ! ! %IF DIRECTION=2 %THEN %START ! !MESSAGE ON WAY BACK TO CONSOLE - HAS REACHED TCP ! !&& %IF MATCH(COMMAND,1,5) %THEN STAT_FLAG=1 %ELSE STAT_FLAG=0; !MK.3 !@@@ %IF MATCH(COMMAND,1,1) %THEN STAT_FLAG=1; !MK.4 %FINISH ! ! %IF DIRECTION=3 %THEN %START ! !MESSAGE TO CONSOLE HAS FINISHED TYPING ! !COMMAND: PROMPT SWITCH TO WAITING STATUS ! !&& %IF STAT_FLAG=1 %THEN STAT_STATUS1=WAITING !@@ STAT_FLAG=0; !MK.4 STAT_STATUS1 = WAITING; ! MK.6 MOD (NO SUB PROMPTS) %FINISH ! XXY: I = NEXTSYMBOL %IF I=NL %OR I=' ' %THEN SKIPSYMBOL %AND ->XXY %EXIT %IF I<0 %OR I&X'FF' = 4 ! %REPEAT ! ! !*************************************************************************** ! ! ! !PRINT RESULTS ! ! !PRINT COMMAND ANALYSIS ! SELECT OUTPUT(1) NEWLINES(2) PRINT STRING('VIRTUAL CONSOLE/COMMAND TABLE') NEWLINES(2) PRINT STRING(' OTHER') %CYCLE F=1,1,COMMS SPACES(9-CLEN(F)) PRINT SYMBOL(COMMANDS(F,G)) %FOR G=1,1,CLEN(F) %REPEAT NEWLINE %CYCLE F=0,1,PROCS %IF USED(F)=1 %START %IF F=PROCS %THEN SPACES(4) %ELSE WRITE(F,3) WRITE(COMMT(F,G),8) %FOR G=0,1,COMMS WRITE(COMMT(F,6),8) NEWLINE %FINISH %REPEAT NEWLINE ! ! !************************************************************************** ! ! ! ! CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG ! CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG CLOG ! ! %ENDOFPROGRAM !