$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 3) PARAMETER FILES 4) RUNNING E.R.T.E. 5) ERROR MESSAGES 6) CONFIGURING E.R.T.E. 7) DATA ANALYSIS 8) SCRIPT FILE UTILITIES 9) OTHER RELEVANT DOCUMENTATION $B8 $I1 $L1CUI ISSUE NO. 6.0 (FOR ERTE MK.3 & ERTE MK.4) 16TH MARCH 1979 $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. @THE VERSIONS OF .ERTE DESCRIBED HAVE BEEN USED EXTENSIVELY ON .EMAS 4/75, VARIOUS .EMAS 2900's AND .DEC .VAX .VMS. @THIS DOCUMENT DESCRIBES PARTICULAR IMPLEMENTATIONS OF .ERTE SPECIFIC TO THE NEEDS OF THE ORIGINAL .SRC FUNDED RESEARCH PROJECT ( .SRC GRANTS .BRG 93968 AND .BRG 96084 ), A MORE GENERAL DISCUSSION OF .ERTE MAY BE FOUND IN .ADAMS ET AL 1977. $B $P @THE CURRENT SUPPORTED 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. $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 .TIME $T3 @STIMULATOR @CLOCK @TASK $I2 .DQS1 $T3 .DQS/11E SYNCHRONOUS LINE @COMMUNICATIONS @HANDLER ( MK.3 ) $I2 @D@Z@AN $T3 .DZ/11 @MULTIPLEXOR @HANDLERS ( MK.4 ) $I2 .PROT $T3 @LINE @PROTOCOL @HANDLER ( .HDLC ) ( MK.3 ) $I2 .CSLK $T3 @C.@S. @LINK @HANDLER AND .HDLC @PROTOCOL @HANDLER ( MK.3.1 ) $I2 .NSI $T3 @NETWORK @PROTOCOL @HANDLER ( TO .RCO .NSI ) ( MK.3 ) $I2 .TCP $T3 @TERMINAL @PROTOCOL @HANDLER ( TO .RCO .ITP ) ( MK.3 ) $I2 .TSIM $T3 @TERMINAL @SIMULATOR ( MK.4 ) $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" (CURRENTLY 16 SCRIPTS). ( MK.3 ) $I2 @T@S@CN $T3 N .SCRIPT @TASKS ( MK.4 VERSION OF .TSK ) $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 COMMAND LINE CHECK LINE DELAY TIME $A INDENT=1 $P .COMMAND .LINE:- @THIS IS PASSED ON VERBATIM TO THE SYSTEM (CURRENT MAX. 70 CHARACTERS). @NOTE THAT THE SCRIPT MUST START WITH THE USUAL SYSTEM STARTUP REQUIREMENTS (&, .EMAS, .USERNAME, .PASSWORD) $P .CHECK .LINE:- @MAY BE USED TO VERIFY THE SCRIPT. @IN .ERTE MK.3 THIS IS CURRENTLY NOT USED ( LINE USUALLY HOLDS A "0") EXCEPT THAT THE LAST CHECK DIGIT IN A USER SESSION .%MUST BE NEGATIVE. @IN .ERTE MK.4 THIS LINE IS USED TO HOLD THE EXPECTED SYSTEM PROMPT MESSAGE, OR A "0" IF THE PROMPT IS THE SAME AS THAT OF THE PREVIOUS INTERACTION. @ALL TEXT OUTPUT FROM THE TARGET WILL BE CHECKED AGAINST THIS MESSAGE FOR A MATCH. @ON A MATCH BEING FOUND, THE .TSIM TASK WILL INFORM THE .TSC TASK AND THE NEXT USER THINK TIME AND COMMAND WILL START. @THE FORMAT OF THIS LINE IS "0". @THE "PROMPT TEXT" SHOULD NOT CONTAIN A "0" AND SHOULD BE AS SHORT AS POSSIBLE TO IDENTIFY THE PROMPT. @N.@B. THE FIRST OCCURENCE OF THE "PROMPT TEXT" APPEARING IN THE OUTPUT FROM THE TARGET IS TAKEN TO BE THE PROMPT. @IF THE PROMPT IS UNCHANGED THEN THE .CHECK .LINE SHOULD CONTAIN A "0" ( SPACES BEFORE THE "0" ARE SIGNIFICANT ). @N.@B. ATTEMPTING TO CHANGE THE "PROMPT TEXT" TO THE SAME VALUE WILL USUALLY CAUSE THE .TSIM TASK (WHICH ACTUALLY DOES THE CHECKING FOR THE PROMPTS) TO SEND AN IMMEDIATE REPLY TO THE .TSC TASK INDICATING A PROMPT HAS BEEN FOUND. @THE .CHECK .LINE SHOULD ONLY CONTAIN A CHANGE OF "PROMPT TEXT" WHEN NECESSARY. $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 NORMALLY CALCULATED FROM THE END OF TYPING OF THE TARGET'S PROMPT. @HOWEVER FOR .ERTE MK.3.3 AND .ERTE MK.4 A "TYPE AHEAD" OPTION IS INCLUDED. @IF A MINUS SIGN PRECEDES THE USER THINK TIME THEN THE USER THINK TIME IS CALCULATED FROM THE LAST CHARACTER BEING INPUT FROM THE CURRENT COMMAND AND .ERTE DOES NOT WAIT FOR THE SYSTEM'S PROMPT TO APPEAR. $P @THERE SHOULD BE NO REDUNDANT BLANK LINES IN THE SCRIPT FILE AND NO TERMINATOR IS REQUIRED. @THE UTILITY .ANALY CAN BE USED TO TIDY UP SCRIPT FILES, VERIFY THEM AND PROVIDE A SUMMARY OF DELAY TIMES ETC. .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. $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 : $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 FOUR LINES OF DATA:- $A INDENT=2 $L4CI 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. $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.3.0 AND MK.3.2 : $b $A TAB=3,20,40 $I1 .%STIMULATOR $T2 .%USER $T3 .%COMMENTS $B1 $A INDENT=3 $T2 @E@R@T@ENN $T3 @LOADS THE CURRENT VERSION NN OF .ERTE ( NN USUALLY FOUND IN THE CURRENT EDITION OF THE .INSTANT .ERTE .GUIDE). $I1 .ERTE .VNN .DD/MM/YY $T3 @REPORTS THE VERSION NUMBER AND DATE OF ISSUE. @IF WRONG HALT MACHINE & START AGAIN. $I1 .TCP .UNIT: $T2 N $T3 @REQUESTS THE LOGICAL OUTPUT DEVICE FOR THE FILE ( .XOT ) PRODUCED BY THE .TCP TASK. @ON THE ORIGINAL CONFIGURATION N=2 OR 3 OR 0 (IF ONLY ONE DISC). $I1 .TIME .LOADED $T3 @TIMER @MODULE @LOADED. $I1 .DQSY .LOADED $T3 .DQS/11E @HANDLER. $I1 .PROT .LOADED $T3 @LINE @PROTOCOL @HANDLER. $I1 @T@C@PN .LOADED $T3 @TERMINAL @PROTOCOL @HANDLER. N='@X' - @THE NON .NSI VERSION. N='@Z' - @THE .NSI VERSION. $I1 .NSIZ .LOADED $T3 @NETWORK @PROTOCOL @HANDLER (IF USING .TCPZ). $I1 .CPUT .LOADED $T3 .CPU @UTILISATION @MONITORING TASK (SEE BELOW) $I1 .NSIZ: .PROT .UP $T3 @PHYSICAL LINE UP $I1 .NSIZ: .ATTACHED AS NN $T3 @SUCESSFULLY ATTACHED TO .RCO NETWORK $I1 .NSIZ: .CONNECTED TO NN $T3 @SUCESSFULLY CONNECTED TO TARGET $I1 .TCPZ: .BUFF .REM NN $T3 @SOMETIMES OUTPUT BY .ERTE MK.3.2. @MEANS THAT ONE OF THE .ITP MESSAGE BUFFER POOL SPANS A .PDP 11 SEGMENT BOUNDARY AND HAS BEEN REMOVED FROM THE FREE POOL. @THIS USUALLY ONLY HAPPENS IN VERSIONS WITH LARGE BUFFER POOLS @E.@G. MK.3.2. $I1 .TCPZ: .ITP .READY $T3 @ALL INITIALISATION COMPLETE AND NOW READY TO START. @IT IS NOW SAFE TO REPLY TO THE " .NUMBER .OF .TASKS" MESSAGE (@N.@B. THE .NSIZ, .TCPZ AND " .NUMBER .OF .TASKS" MESSAGES ARE OUTPUT BY 3 DIFFERENT TASKS AND SO MAY COME OUT IN ANY INTERLEAVED ORDER, .DO .NOT .REPLY TO THE " .NUMBER .OF .TASKS" MESSAGE UNTIL THE .ITP .READY MESSAGE HAS APPEARED) . $I1 .NUMBER .OF .TASKS $T2 @N $T3 @ASKS FOR THE NUMBER OF SCRIPT TASKS TO BE LOADED. @THIS NUMBER IS CURRENTLY 1,2, OR 3 (FOR 1-16, 1-32 OR 1-48 SCRIPTS) BUT WILL VARY ON CORE SIZE. $I1 $L1CI SCRIPT TASK 1 STARTED WITH X SCRIPTS @EACH SCRIPT TASK IS LOADED AND THE CORRESPONDING PARAMETER FILE IS READ. @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). $b $L @THE LOADING SEQUENCE OF .%ERTE MK.3.1 DIFFERS IN THE FOLLOWING TASKS : $i1 .CSLK .LOADED $T3 @C.@S. DEPARTMENTAL LINK HANDLER, REPLACES .PROT AND .DQSY. $b $L @THE LOADING SEQUENCE OF .%ERTE MK.4.0 DIFFERS IN THE FOLLOWING TASKS : $I1 @D@Z@AN .LOADED $T3 N .MULTIPLEXOR TASKS, REPLACES .PROT AND .DQSY OF MK.3.0. $I1 .TSIM .LOADED $T3 @TERMINAL SIMULATOR AND PROMPT CHECKING TASK REPLACES @T@C@P AND .NSI OF .ERTE MK.3.0. $I1 @THE .SCRIPT .TASKS LOADED IN MK.4.0 ARE ALSO DIFFERENT AND ARE CALLED @T@S@CN RATHER THAN @T@S@KN. @ALL THE QUERY MECHANISMS AND STATE NUMBERINGS WITHIN .TSC REMAINS THE SAME AS THAT IN .TSK HOWEVER. $A INDENT=1 $A TAB=5,10,20,30,40 $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 or int z tscn 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:- $L10CI 0 ABOUT TO SEND A COMMAND(TYPING ONE IN) 1 WAITING FOR TCP BUFFER(1ST TRY) 2 WAITING FOR TCP BUFFER(SUBSEQUENT TRY) 3 WAITING FOR EMAS TO RESPOND 4 IN THINK DELAY 5 WAITING FOR DISC TRANSFER TO COMPLETE 6 START UP STATE 7 END OF SCRIPT FILE REACHED 8 requesting prompt buffer from tsim ( MK.4 only ) 9 typing ahead (MK.3.3 and MK.4 only ) $P $I2 @Q : $T3 .FULL .STATUS - AS FOR ? PLUS INTERNAL SCRIPT BUFFER INFORMATION (SEE PROGRAM LISTING FOR DETAILS). $P $I2 @L : $T3 .ENTER .LOOP .MODE. @IF A SCRIPT REACHES STATE 7 IT IS RESTARTED FROM THE BEGINNING. $P $I2 @A : $T3 .ABORT THE TASK IMMEDIATELY $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 $A INDENT=1 $B3 $L1CUI CLOSING DOWN ERTE $P @THE .INT MECHANISM MAY BE USED WITH THE .INIT TASK (KNOWN IN .DEIMOS AS THE TASK .ERTE ) TO CLOSE DOWN .ERTE. @THIS IS QUICKER THAN DOING AN .INT @A TO EACH OF THE .SCRIPT TASKS. @THE SHUTDOWN COMMAND IS : $L .INT @A .ERTE $A INDENT=1 $P @ALTERNATIVELY .SCRIPTS TASKS WILL TERMINATE NATURALLY WHEN ALL THE SCRIPTS IN A TASK HAVE REACHED STATE 7 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 TASK WILL PRODUCE A SCRIPT STATUS REPORT AND THE MESSAGE .TASK NN .TERMINATED WILL APPEAR (TWICE). $P @WHEN ALL THE .SCRIPT TASKS HAVE TERMINATED THE .TCP OR .TSIM TASK IS STOPPED AND WILL PRODUCE DATA ON THE UTILISATION OF ITS INTERNAL QUEUES, THEN THE .TIME TASK IS STOPPED GIVING THE RUN TIME IN .MINS, AND .SECS, .1/10TH SECS. @FINALLY AFTER A PAUSE THE MESSAGE .ERTE .STOPPED WILL APPEAR. $P .N.B. @THIS STILL LEAVES THREE TASKS IN CORE, .DQS1 AND .PROT WHICH SHOULD BE KILLED IMMEDIATELY, AND .CPUT WHICH SHOULD BE SENT AN .INT .A. (@IT MAY BE REMOVED AT ANY TIME USING THIS METHOD). @HOWEVER .ERTE OFTEN CRASHES AT THIS POINT (BUT THIS SHOULD NOT BE A CAUSE FOR ALARM) SO RE .IPL ING THE SYSTEM MAY BE THE BEST COURSE OF ACTION. $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 @INTERNAL SCRIPT BUFFERS EXHAUSTED $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 @RUN OUT OF PROMPT BUFFERS - INCREASE THE NUMBER HELD, .PROMPTBMAX AND .PROMPTBTOTAL ( MK.4.0 ). @NOT USED IN MK.3. $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 $I2 -11 $T3 @PARAMETER FILE DOES NOT EXIST $I2 -12 $T3 @DISC READ ERROR ON FIRST BLOCK OF PARAMETER FILE $A INDENT=1 $B $I2 $L1CUI 5.3)TCP $P @ALL ERROR MESSAGES CAUSE THE .TCP TASK TO STOP AND ARE IN THE FORMAT $I3 $L1CI TCP