$A PAGE=60;UND='#' $A JUST=1;PGAP=5;TAB=5,10,20,30 $A NLS=2;INDENT=1;LINE=70 $A PAGENO=1;START=1 $L1CUM E.R.T.E. USER MANUAL $B8 $L1CUM CONTENTS $A INDENT=3 $B2 $L9CI 1) INTRODUCTION 2) SCRIPT FORMATS AND PREPROCESSING 3) PARAMETER FILES 4) RUNNING E.R.T.E. 5) ERROR MESSAGES 6) CONFIGURING E.R.T.E. 7) DATA ANALYSIS 8) OTHER RELEVANT DOCUMENTATION $B8 $I1 $L1CUI ISSUE NO. 8.0 (FOR ERTE MK. 6) 15TH OCTOBER 1980 $N $I2 $L1CUI SECTION 1 : INTRODUCTION $A INDENT=1 $P2 @THE .EDINBURGH .REMOTE .TERMINAL .EMULATOR IS A SYSTEM DESIGNED TO SIMULATE TERMINAL USERS ON A @MULTI @ACCESS @SYSTEM. @IT OPERATES BY PASSING COMMANDS (HELD IN .SCRIPT .FILES) TO THE RECEIVING SYSTEM (REFERRED TO AS THE .TARGET IN THE REST OF THIS DOCUMENT) AS IF FROM ORDINARY TERMINALS. @THESE SCRIPT FILES AND THE CORRESPONDING PARAMETER FILES MAY BE GENERATED USING THE .MAVIS [@BREBNER 1977] SUITE OR MERELY BY EDITING APPROPRIATE TEXT FILES USING THE STANDARD SYSTEM EDITOR. @PREVIOUS VERSIONS OF .ERTE HAVE BEEN USED EXTENSIVELY ON .EMAS 4/75, VARIOUS .EMAS 2900's AND .DEC .VAX .VMS. @THIS DOCUMENT DESCRIBES A PARTICULAR IMPLEMENTATION OF .ERTE FOR @SOFTWARE @SCIENCES @LTD. TO SIMULATE .MAC AND .TP TERMINALS TO AN .IBM 4300 RUNNING THE .VM OPERATING SYSTEM. @A MORE GENERAL DISCUSSION OF .ERTE MAY BE FOUND IN .ADAMS ET AL 1977. $B $P @FOR COMPLETENESS THE CURRENT VERSIONS OF .ERTE ARE AS FOLLOWS: $A INDENT=3 $b $I2 .%ERTE MK.3.0 $T4 @SIMULATES A .TCP ON THE .RCO NET, TALKING .NSI AND .ITP PROTOCOLS DOWN 1 CONCENTRATED SYNCHRONOUS LINE. @UPTO 48 SIMULTANEOUS USERS ON A 32K WORD .PDP 11/40. $b $I2 .%ERTE MK.3.1 $T4 @SIMULATES A .TCP CONNECTED DIRECTLY TO THE TARGET .FRONT .END, TALKING .NSI AND .ITP PROTOCOLS DOWN 1 CONCENTRATED ASYNCHRONOUS LINE ( USUALLY A @C.@S. DEPT .LINK ). @UPTO 48 USERS ON A 32K WORD .PDP 11/40. $b $I2 .%ERTE MK.3.2 $T4 @SIMULATES A .TCP ON THE .RCO NET, TALKING .NSI AND .ITP PROTOCOLS DOWN 1 CONCENTRATED SYNCHRONOUS LINE. @UPTO 128 USERS HAVE BEEN HANDLED ON A 48K WORD .PDP 11/40, AND MORE MAY BE POSSIBLE. $b $I2 .%ERTE MK.4.0 $T4 @OUTPUTS CHARACTERS ONTO A NUMBER OF INDIVIDUAL ASYNCHRONOUS LINES, NO PROTOCOL IS USUALLY PLACED ON THESE AND .ERTE IS CONNECTED TO THE TARGET AS THOUGH IT WERE A NUMBER OF LOCAL TERMINALS. @CURRENTLY UP TO ONLY 7 USERS HAVE BEEN SIMULATED BY THIS METHOD DUE TO THE NON EXISTENCE OF ANY MORE MULTIPLEXOR LINES. @CAPACITY OF THE .PDP 11/40 UNDER THIS REGIME IS NOT KNOWN, BUT WILL NOT BE AS HIGH AS UNDER .ERTE MK.3 AS EXTRA PROCESSING IS REQUIRED TO IDENTIFY SYSTEM PROMPT MESSAGES ETC. $B $I2 .%ERTE MK.5.0 $T4 @SIMULATES SEVERAL @SIMPLE @INTERACTIVE @VIDEO @CLUSTERS USING THE .ICL 7181/2 PROTOCOL TO RUN .VME/B .MAC OR .TP SIMULATOR SCRIPTS. @THIS VERSION WAS DEVELOPED FOR @SOFTWARE @SCIENCES @LTD. $B$I2 .%ERTE MK.6.0 $T4 @SIMULATES SEVERAL .IBM 3270 @CONTROL @UNITS ON UP TO 5 SYNCHRONOUS LINES USING @BINARY @SYNCHRONOUS @PROTOCOLS. $a indent=1 $B $P @THE ENTIRE PACKAGE IS WRITTEN IN THE HIGH LEVEL LANGUAGE .IMP-77 [@ROBERTSON 1977] AND THE LISTINGS ARE INTENDED TO BE SELF DOCUMENTING. @THIS DOCUMENT IS INTENDED TO SUPLEMENT SAID LISTINGS AND GIVE A QUICK GUIDE TO RUNNING THE PACKAGE. .ERTE CONSISTS OF SEVERAL CO-OPERATING TASKS RUNNING UNDER THE .DEIMOS @OPERATING @SYSTEM ON A .PDP 11 WITH MEMORY MANAGEMENT AND AT LEAST .32K @CORE @MEMORY. @THE TASKS ARE AS FOLLOWS:- $A INDENT=3 $I2 .INIT $T3 @INITIALISE AND @CONTROL @TASK ( GIVEN THE .DEIMOS NAME OF .ERTE ) $I2 .COMMY $T3 @CONSOLE HANDLER $I2 .TIME $T3 @STIMULATOR @CLOCK @TASK $I2 .LOGY $T3 .XOT FILE HANDLING TASK $I2 .IBMX $T3 LOW LEVEL PROTOCOL HANDLER $I2 .CU32 $T3 @CU32 @CLUSTER @CONTROLER @TASK $I2 .CPUT $T3 @OPTIONAL .CPU @UTILISATION @MODULE $I2 @T@S@KN $T3 N .SCRIPT @TASKS, EACH OF WHICH CAN HANDLE UP TO A FIXED NUMBER OF SCRIPTS FOR THE "VIRTUAL TERMINALS" $A INDENT=1 $P @ALL THE DETAILS OF THE NUMBER OF SCRIPTS, ETC. ARE PASSED TO .ERTE IN .PARAMETER .FILES, ONE PER @SCRIPT @TASK. @THE LIMIT TO THE NUMBER OF SCRIPT TASKS AND VIRTUAL CONSOLES IS DETERMINED BY THE AVAILABLE CORE. $P1 @ALL MONITORING DATA FROM .ERTE IS OUTPUT TO A FIXED FILE , .XOT, ON A SPECIFIED DISC UNIT, AND THERE IS A SET OF UTILITIES FOR PROCESSING THIS DATA. (@SEE .SECTION 7) $N $I2 $L1CUI SECTION 2 : SCRIPT FORMATS $P2 @A SCRIPT FILE CONTAINS THE SIMULATED INPUT FROM A TERMINAL. @IT MAY BE OF ANY LENGTH AND CAN INCLUDE ANY NUMBER OF USER SESSIONS I$.E. LOGING ON AND OFF. $P @ITS FORMAT IS AS FOLLOWS $A INDENT=3 $L3CI SCREEN INPUT CHECK LINE DELAY TIME $A INDENT=1 $P .SCREEN .INPUT:- @THE .IBM 3270 PROTOCOL DEMANDS THAT INPUT BE IN A FORMAT CONSISTING OF THE .AID CHARACTER (@ATTENTION @INTERRUPT) AND CURRENT CURSOR POSITION,FOLLOWED BY THE FIELDS ON THE SCREEN WHICH HAVE BEEN MODIFIED. @EACH FIELD CONSISTS OF A FIELD DELIMETER, THEN THE START OF FIELD ADDRESS FOLLOWED BY TEXT. $P @THE SCRIPT FORMAT REFLECTS THE ABOVE AND CONSISTS OF:- $B$T2 [XX N $T3 FOR THE .AID HEADER WHERE XX IS THE .HEX VALUE OF THE .AID AND N IS THE DECIMAL CURSOR POSITION. $B1 @THIS IS FOLLOWED BY $B1$T2 [1@D N TEXT $T3 FOR EACH FIELD. 1@D IS THE FIELD DELIMETER( .SBA) N IS THE START OF FIELD ADDRESS IN DECIMAL AND IS FOLLOWED BY 1 SPACE THEN THE TEXT. $P@THE WHOLE SCREEN ENTRY IS TERMINATED BY THE CHARACTER ]. @THUS A TYPICAL ENTRY WILL READ:- $B2$T2 [7@D 1760 $B0$T2 [1@D 1600 THIS IS THE FIELD TEXT $B0$T2 [1@D 1700 A NEW FIELD] $B1$T2 @NOTE THAT NEWLINES ARE IGNORED . $B2$T2 .SHORT .READS ARE INPUT AS [XX -1] WHERE XX IS THE VALUE OF THE SHORT READ .AID. $B1$T2 @ON THE LINE FOLLOWING THE `]` CHARCATER COMES:- $P .CHECK .LINE:- @MAY BE USED TO VERIFY THE SCRIPT. @IN .ERTE MK.6 THIS IS USED TO INDICATE THE NUMBER OF WRITE COMMANDS WITH KEYBOARD ENABLE SET WHICH ARE EXPECTED IN RESPONSE TO THIS INPUT. @THE LAST OF THESE WRITES IS TAKEN AS A PROMPT IE. IT WILL TRIGGER MORE INPUT. @THE LAST CHECK DIGIT IN A USER SESSION .%MUST BE NEGATIVE. $P .DELAY .TIME:- @THE TIME IN SECONDS BETWEEN THE SYSTEM RESPONSE TO THE COMMAND AND THE INPUT OF THE NEXT COMMAND IN THE SCRIPT (I$.E. THE USER THINK TIME). @USER THINK TIMES ARE CALCULATED FROM THE RECIEPT OF THE LAST COUNTED WRITE WITH KEYBOARD ENABLE (SEE ABOVE). $P @THERE SHOULD BE NO REDUNDANT BLANK LINES IN THE SCRIPT FILE AND NO TERMINATOR IS REQUIRED. .SCRIPT FILES MAY EXIST ON ANY LOGICAL DISC UNIT UNDER ANY USER FILE SYSTEM NUMBER, BUT THE NAME .%MUST BE .%EXACTLY 6 CHARACTERS IN LENGTH. $P @BECAUSE .IBM 3270 DEMANDS .EBCDIC CHARACTERS AND .ERTE IS AN .ISO SYSTEM THE SCRIPTS MUST BE PASSED THROUGH A PREPROCESSING PROGRAM WHICH ALSO ENABLES THE CONVERSION OF THE ABOVE SCRIPT FORMAT INTO THE ACTUAL TRANSMITTED FORMAT. $P @THIS IS DONE BY THE PROGRAM .SCPROY WHICH HAS TWO PARAMETERS, THE SCRIPT FILE TO BE PROCESSED AS INPUT AND AN OUTPUT FILE NAME FOR THE PROCESSED SCRIPT. $P @A FURTHER UTILITY HAS BEEN PROVIDED FOR GENERATING MANY COPIES OF THE SAME SCRIPT BUT CHANGING THE NAME AND PASSWORD IN EACH. @THIS PROGRAM IS CALLED .SCPR1Y AND IS CALLED WITH THE SAME TWO PARAMETERS AS .SCPR0Y. @WHEN IT STARTS UP, THE PROGRAM PROMPTS ASKING FOR THE NUMBER OF COPIES TO BE GENERATED IN THIS FILE SYSTEM, CURRENTLY IT WILL PRODUCE ONE %MORE THAN THE NUMBER GIVEN. @THE PROGRAM THEN PROMTS FOR THE BASE ID TO BE USED, FOR EXAMPLE, IF IT HAS BEEN RUN WITH:- $L1C SCPR1Y SCPT01/PREP AND THE NUMBERS 3 AND 5 GIVEN IN RESPONSE TO THE PROMPTS, THE PROGRAM WILL GENERATE .PREP05, .PREP06, .PREP07 AND .PREP08. @IN ADDITION, THE PROGRAM SEARCHES FOR THE SEQUENCE '^^' AND REPLACES IT WITH THE CURRENT NUMBER. @THIS IS USED TO GENERATE DIFFERENT USER LOGON NUMBERS. $N $I2 $L1CUI SECTION 3 : PARAMETER FILES $P2 @THE PARAMETER FILES INFORM THE SCRIPT TASKS WITHIN .ERTE WHICH SCRIPT FILES ETC. TO USE. THE PARAMETER FILES .%MUST BE ON THE SAME UNIT AND FILE SYSTEM NUMBER AS .ERTE WHEN IT IS RUN AND THERE IS ONE SUCH FILE PER SCRIPT TASK. $P @PARAMETER FILE NAMES MUST BE OF THE FORM @T@K@P@A@RN WHERE N = @SCRIPT @TASK @NUMBER (1-9) AND HAVE THE FOLLOWING FORMAT $I2 $L1CI LINE 1 : STARTUP DELAY AFTER LOADING IN MINS. $I2 $L1CI LINE 2 : $P @THE .TYPING .RATE IS THE PERCENTAGE OF LINE SPEED TO BE USED AS A TYPING SPEED FOR INPUTING THE COMMAND LINES OF THE SCRIPT. $P @THE .START .UP .DELAY IS THE TIME IN SECONDS BETWEEN SENDING THE FIRST LOGON ATTEMPT FOR EACH SUCESSIVE SCRIPT. $P2 @FOR EACH SCRIPT THE TASK HAS TO HANDLE THERE ARE SEVEN ITEMS OF DATA:- $A INDENT=2 $L7CI 1 : SCRIPT FILE NAME (EXACTLY 6 CHARACTERS) 2 : FILE SYSTEM NUMBER FOR FILE (0-63 DECIMAL) 3 : DISC UNIT FOR FILE 4 : LINE SPEED IN CHARACTERS PER SECOND. 5 : GROUP ADDRESS FOR TERMINAL(0-4) 6 : TERMINAL ADDRESS(0-31) 7 : PHYSICAL LINE NUMBER $A INDENT=1 $P2 @NO TERMINATOR IS REQUIRED. $N $I2 $L1CUI SECTION 4 : RUNNING E.R.T.E. $P2 @TO SET UP ANY .TARGET TO RECEIVE .ERTE INPUT THE APPROPRIATE EXPERIMENTORS GUIDE SHOULD FIRST BE CONSULTED [SEE @SECTION 9]. @THE FOLLOWING PROCEDURE SHOULD THEN BE FOLLOWED:- $A INDENT=2 $L2CI 1)IPL DEIMOS 2)LOGON TO THE APPROPRIATE DEIMOS FILE SYSTEM @THE FOLLOWING TASKS ARE LOADED FOR .ERTE MK.5.0 : $b $A TAB=3,20,40 $I1 .%STIMULATOR $T2 .%USER $T3 .%COMMENTS $B1 $A INDENT=3 $T2 @E@R@T@E $T3 @LOADS THE CURRENT VERSION OF .ERTE $I1 .ERTE .VNN .DD/MM/YY $T3 @REPORTS THE VERSION NUMBER AND DATE OF ISSUE. @IF WRONG HALT MACHINE & START AGAIN. $I1 .COMMY .LOADED $T3 @CONSOLE HANDLER LOADED $I1 .TIME .LOADED $T3 @TIMER @MODULE @LOADED. $I1 .LOGY .LOADED $T3 @XOT FILE HANDLER $I1 .CU32 .LOADED $T3 .CU32 @CLUSTER MODULE LOADED $I1 .IBMX .LOADED $T3 @THE LOW LEVEL PROTOCOL HANDLER. $I1 .LNX:DUP .INITIALISED $T3 ( .DUP VERSIONS) MEANS ALL MODEM SIGNALS ARE PRESENT. $I1 .NUMBER .OF .TASKS $T2 @N $T3 @ASKS FOR THE NUMBER OF SCRIPT TASKS TO BE LOADED. @THIS NUMBER IS CURRENTLY UP TO 5. $I1 $L1CI SCRIPT TASK 1 STARTED WITH X SCRIPTS @EACH SCRIPT TASK IS LOADED AND THE CORRESPONDING PARAMETER FILE IS READ. @AFTER THE INITIAL START DELAY THE FIRST COMMANDS IN THE SCRIPTS ARE FOUND AND THE SCRIPTS ARE STARTED AFTER THE APPROPRIATE DELAY. @IT IS AT THIS POINT THAT MANY OF THE OBVIOUS ERRORS WILL OCCUR ( .SECTION 5). $A INDENT=1 $A TAB=5,10,20,30,40 $P @NOTE THAT EVERY MINUTE .CU32 WILL PRINT OUT THE MESSAGE $B0$T2 .INTS/MIN= X $B0 WHICH IS THE NUMBER OF INTERACTIONS IN THE LAST MINUTE. $P @FROM THIS POINT ON .ERTE RUNS AUTOMATICALLY BUT THE FOLLOWING CONTROLS ARE AVAILABLE BY USING THE .DEIMOS .INT MECHANISM. $I3 $L1CI INT Z TSKN WHERE Z MAY BE $P $A INDENT=3 $I2 ? : $T3 @PRINTS A STATUS REPORT FOR EACH SCRIPT UNDER THAT TASK. @IT IS A TABLE WITH SCRIPT NUMBER, STATE, NUMBER OF COMMAND LINES SENT AND THE NUMBER OF TIMES THAT THE SCRIPT HAS BEEN HELD UP DUE TO THE NEXT COMMAND NOT BEING BROUGHT OFF THE DISC IN TIME. @THIS NORMALLY ONLY HAPPENS WITH A ZERO THINK TIME, AS ON START UP AND THIS NUMBER SHOULD BE RELATIVELY SMALL COMPARED TO THE NUMBER OF COMMANDS. @STATE MAY BE ONE OF:- $L8CI 0 ABOUT TO SEND A COMMAND(TYPING ONE IN) 1 WAITING FOR TARGET TO RESPOND 2 IN THINK DELAY 3 WAITING FOR DISC TRANSFER TO COMPLETE 4 START UP STATE 5 END OF SCRIPT FILE REACHED $P $I2 @L : $T3 .ENTER .LOOP .MODE. @IF A SCRIPT REACHES STATE 5 IT IS RESTARTED FROM THE BEGINNING. $P $I2 @A : $T3 .ABORT THE TASK IMMEDIATELY $P$I2 @B : $T3 @PRINTS BUFFER DATA (SEE SECTION 6) $P$I2 @I : $T3 @PRINTS THE TOTAL INTERACTIONS SO FAR $P $A INDENT=1 $P .N.B. @THE .INT FLAG IS ONLY INSPECTED EVERY 5 SECONDS SO THERE MAY BE SOME DELAY. @A NEW .INT COMMAND WILL OVERWRITE THE OLD ONE (E$.G. @A WILL OVERWRITE @L BUT ? OVERWRITES ITSELF TO 0 AFTER TYPING THE REPORT). $P @THE .INT MECHANISM MAY BE USED WITH TASK .CPUT TO MEASURE THE .CPU @IDLE @TIME IN THE 11/40 WHILE .ERTE IS RUNNING. $I2 .INT @X .CPUT WHERE @X MAY BE:- $A INDENT=2 $L4CI T : MEASURE OVER 10 SECOND INTERVAL H : MEASURE OVER 30 SECOND INTERVAL M : MEASURE OVER 60 SECOND INTERVAL A : STOP $P @THE .INT MECHANISM CAN ALSO BE USED TO TRACE EVENTS IN .CU32 AND .IBMX THE DETAILS BEING IN THE EXPERIMENTERS GUIDE TO THE SYSTEM IN QUESTION. $A INDENT=1 $B3 $L1CUI CLOSING DOWN ERTE $P @THE .INT MECHANISM MAY BE USED WITH THE .CU32 TASK TO CLOSE DOWN .ERTE CLEANLY @THE SHUTDOWN COMMAND IS : $L .INT @A .CU32 $A INDENT=1 $P @THIS WILL CAUSE THE SCRIPT TASKS TO CLOSE DOWN AND THE .XOT FILE WILL BE CLOSED SOME 15 SECONDS AFTER THE COMMAND HAS BEEN INPUT. @THE MESSAGE " .XOT .FILE .CLOSED" SHOULD APPEAR. $P @ALTERNATIVELY .SCRIPTS TASKS WILL TERMINATE NATURALLY WHEN ALL THE SCRIPTS IN A TASK HAVE REACHED STATE 5 AND LOOP MODE IS NOT SET. .SCRIPT TASKS CAN OF COURSE ALSO BE HALTED BY AN .INT @A. @WHEN ALL THE SCRIPTS IN A TASK HAVE FINISHED OR .INT @A IS SENT THE MESSAGE .TASK NN .TERMINATED WILL APPEAR (TWICE). $P @WHEN ALL THE SCRIPT TASKS HAVE TERMINATED THE GROUP CONTROLLER IS REINITIALISED TO PERMIT THE SAME TERMINALS TO LOG IN AGAIN. $N $I2 $L1CUI SECTION 5 : ERROR MESAGES $P2 @MOST .ERTE ERROR MESSAGES ARE FATAL IN THAT THEY CAUSE AT LEAST PART OF .ERTE TO STOP. @THE MESSAGES BELOW ARE DIVIDED INTO THE TASKS FROM WHICH THEY ORIGINATE. $B1 $I2 $L1CUI 5.1)INIT $P .INIT REPORTS ALL ERROR MESSAGES COMING FROM THE SCRIPT TASKS (5.2) AND ITS ONLY OTHER ERROR CONDITION IS $I2 $L1CI UNEXPECTED MESSAGE A B C WHERE @A = .TASK .ID SENDING THE MESSAGE , .B= .P_A1, .C= .P_A3. @THIS USUALLY INDICATES A FAULTY START UP : RELOAD & TRY AGAIN. @N.@B. THE .INIT TASK USUALLY TAKES THE .DEIMOS NAME OF .ERTE. $B1 $I2 $L1CUI 5.2)SCRIPT TASKS $P @ALL THE .SCRIPT .TASK ERRORS ARE REPORTED BY .INIT WITH THE FOLLOWING FORMAT:- $I2 $L1CI FATAL ERROR NUMBER X TASK NUMBER N WHERE @N=@SCRIPT @TASK @NUMBER, @X=@ERROR @NUMBER AS FOLLOWS ( .N.B. ALL THESE ERRORS CAUSE THE SCRIPT TASK TO STOP) $A INDENT=3 $I2 -1 $T3 @NOT USED $I2 -2 $T3 @BAD DISC READ (SCRIPT FILE) $I2 -3 $T3 @BAD DISC READ AT START OF SCRIPT FILE (FILE MAY NOT EXIST) $I2 -4 $T3 @SCRIPT FILE CORRUPT-VERIFY THE FILE SYSTEM BEFORE RESTARTING $I2 -5 $T3 @NOT USED $I2 -6 $T3 @NOT @USED $I2 -7 $T3 @DISC QUEUE FULL $I2 -8 $T3 @PARAMETER FILE TOO SHORT (END OF FILE REACHED BEFORE ALL SCRIPTS FOUND OR FILE CORRUPT) $I2 -9 $T3 @PARAMETER FILE DISC READ ERROR $I2 -10 $T3 @SYMBOL IN PARAMETER DATA OF PARAMETER FILE $A INDENT=1 $B $I2 $L1CUI 5.3)IBMX $P @IF THE MESSAGE .DU11 .INITIALISED DOES NOT APPEAR THEN ONE OF THE FOLLOWING THREE MESSAGES WILL BE PRINTED AND THE TASK WILL LOOP WAITING ON THE A APPROPRIATE SIGNAL. $A INDENT=4 $I1 .WAITING .FOR .DSR $T4 @DATA @TERMINAL @READY HAS BEEN RAISED AND @DATA @SET @READY IS EXPECTED. $I1 .WAITING .FOR .CTS $T4 @READY TO @SEND HAS BEEN RAISED AND @CLEAR TO @SEND IS EXPECTED. $I1 .WAITING .FOR .DCD $T4 @DATA @CARRIER @DETECED IS EXPECTED. $P @THE FOLLOWING MESSAGES MAY ALSO OCCUR. $I1 .UNEXPECTED .SEG=X $T4 @SOFTWARE FAULT BETWEEN .ICL1 AND .SIVC. (POSSIBLY FATAL) $I1 @PROTOCOL VIOLATION N, OTHER INFO: N2 N3 $B0 @AN OUT-OF-SEQUENCE MESSAGE HAS BEEN RECEIVED FROM EITHER THE .IBM OR INTERNALLY, THE NUMBER 'N' DESCRIBES THE REASON, AND 'N1' AND 'N2' ARE FURTHER INFORMATION, FOR DETAILS SEE THE EXPERIMENTERS GUIDE. $B $I2 $L1CUI 5.4)CU32 $I1 .ILLEGAL .TERM .FROM .SCRIPT $T4 @MESSAGE FROM SCRIPT TASK IS FOR AN ILLEGAL TERMINAL (FATAL). $I1 .ILLEGAL .FN .FROM .PROT $T4 @SOFTWARE FAULT BETWEEN .IBMX ANS .CU32. (POSSIBLY FATAL) $I1 .INVALID .LINE .NUMBER $T4 @SOFTWARE FAULT AS ABOVE. $I1 .INVALID .READ $T4 @READ HAS BEEN SENT FROM TARGET WHEN NO TERMINAL IS SELECTED. $b $i2 $l1cui 5.5)SYSTEM MESSAGES $P $A INDENT=3 .DEIMOS MAY ITSELF PRODUCE ERROR MESAGES ESPECIALLY DURING SHUTDOWN WHEN .BAD .SER WILL APPEAR AND CAN BE IGNORED. @SEE .DEIMOS MANUAL FOR OTHER MESSAGES.[@GILMORE 1978] $N $I2 $L1CUI SECTION 6 : CONFIGURING E.R.T.E. $P @THE PRINCIPLE TASKS COMPRISING .ERTE (SEE .SECTION 1) EACH HAVE SEVERAL CONFIGURATION PARAMETERS TO ENABLE THE USER TO BUILD A SYSTEM FOR HIS REQUIREMENTS. @THESE PARAMETERS ARE NOW DESCRIBED ON A TASK BY TASK BASIS( .NB @IN ALL CASES RECOMPILATION OF THE TASK SOURCE IS REQUIRED). @FOR FURTHER DETAILS SEE THE SELF DOCUMENTING LISTINGS. $P $I2 $L1UI @THE @INITIALISE @TASK $P @THIS TASK AUTOMATICALLY LOADS THE NUMBER OF SCRIPT TASKS AS SPECIFIED BY THE USER. $P$I2$L1UI @THE @LOG @TASK $P @THIS WRITES THE .XOT FILE TO THE CURRENT FILE SYSTEM ON UNIT 2. @TO CHANGE THE UNIT NUMBER EDIT .LOG5S AND CHANGE THE CONSTANT .DRIVE TO THE REQUIRED UNIT NUMBER. $P $I2 $L1UI @THE @TIME @TASK $P @THE CONSTANT .ARSIZE IS THE SIZE OF THE REQUEST BUFFER AND THUS MUST BE LARGE ENOUGH TO COPE WITH A REQUEST FROM EACH SCRIPT PLUS SEVERAL OTHER REQUESTS.@THE FORMULA $L1CM ARSIZE = NUMBER OF SCRIPTS * 1.5 IS RECOMMENDED AS A MINIMUM BUFFER ALLOCATION. $P $I2 $L1UI @THE @SCRIPT @TASKS $P @THE NUMBER OF .SCRIPT TASKS REQUIRED FOR A PARTICULAR CONFIGURATION IS A FUNCTION OF THE NUMBER OF SCRIPTS. $P @TO SET UP A SCRIPT TASK EDIT THE FOLLOWING $A INDENT=3 $A TAB=5,10,20,30,40 $I2 .TEXTLIM $T3 @THE NUMBER OF BYTES IN EACH INPUT BUFFER (INPUT SCREEN SIZE) $I2 .NUMSCR $T3 @THE NUMBER OF SCRIPTS THIS TASK IS TO HANDLE. $I2 .SIZE $T3 @THIS IS THE TOTAL AREA AVAILABLE FOR INPUT BUFFERS. @THIS MUST BE AT LEAST .NUMSCR+1*TEXTLIM TO ALLOW FOR POSSIBLE WASTAGE AT SEGMENT BOUNDARIES AS THESE BUFFER CANNOT STRADDLE A SEGMENT BOUNDARY. @THE SCRIPT TASK WILL ALLOCATE BUFFERS WITHIN THIS SPACE AND AN .INT @I TO .TSK1 WILL PRODUCE TWO NUMBERS. @THE FIRST IS THE LAST BYTE OF THE LAST USED BUFFER. @IT MUST BE LESS THAN THE SECOND NUMBER WHICH IS THE END OF THE AVAILABLE SPACE. $P @NOTE THAT SIZE HAS TO FIT INTO THE STACK OF THE SCRIPT TASK WITH A BIT TO SPARE IE. 60000 OCTAL BYTES. @A .SIZE LIMIT OF 23000 DECIMAL IS RECOMMENDED. $i2 $A INDENT=1 $P @COMPILE THE REQUIRED SCRIPT TASKS WITH A STACK OF 60000 AND 1 STREAM. $N $P $I2 $L1UI .CU32 $P @THE NUMBER OF GROUPS,TERMINALS AND PHYSICAL LINES CAN BE VARIED AS FOLLOWS:- $A INDENT=3 $I1 .MAXGROUPS $T3 @NUMBER OF GROUPS $I1 .MAXTERMS $T3 @TOTAL TERMINALS TO BE HANDLED $I1 .MAXLINES $T3 @NUMBER OF PHYSICAL LINES-1. $N $I2 $L1CUI SECTION 7 : DATA ANALYSIS $P @THIS SECTION DESCRIBES SOME DATA ANALYSIS PROGRAMS WHICH OPERATE ON THE .XOT FILE PRODUCED BY THE .TCP (OR .TSIM) TASK. @.XOT FILES ARE STANDARD .DEIMOS TEXT FILES AND CAN BE INSPECTED USING THE STANDARD SYSTEM EDITOR. @THE .XOT FILE RECORDS, APPART FROM A HEADER, *< .TCP .VERSION> ,AND THE TERMINATOR '+',HAVE THE FORMAT:- $I2 $L1CI