Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0134/focal.ctl
There are 2 other files named focal.ctl in the archive. Click here to see a list.
;Control File for DECsystem-20 FOCAL version 5J(345)-1 [19-Oct-76].

;C - THIS FILE CAN BE USED FOR THE FOLLOWING PURPOSES:
;C	1. ASSEMBLE AND LOAD FOCAL:	@SUBMIT FOCAL
;C	2. TEST FOCAL:			@SUBMIT FOCAL/TIME:55:00/TAG:TEST


;Assembly and Loading Instructions for DECsystem-20 FOCAL.
;FEATURE-TEST SWITCHES
;---------------------
;PROCESSOR TYPE.	PDP-6:	.CPU=1
;			KA-10:	.CPU=2
;			KI-10:	.CPU=3
;			KL-10:	.CPU=4  (DEFAULT)
;DEFAULT WAS CHANGED FOR DEC-20 PROCESSOR (JULY 80) (WAS KI-10)
;
;MONITOR TYPE (TO ALLOW USE UNDER MONITORS WITH SUNDRY MINOR DEFICIENCIES)
;MONITOR=3.27 OR 4.72 OR 5.03 OR 5.04 OR 5.05 OR 5.06 (DEFAULT 5.06)
;(THIS WAS LEFT ALONE FOR DEC-20 CONVERSION)
;
;ARITHMETIC PRECISION:	WPV=1 SINGLE PRECISION
;			WPV=2 DOUBLE PRECISION (DEFAULT)
;FACET:		FNEW UNDEFINED:	HIGH SEGMENT ONLY (NULL LOW SEGMENT)
;		EXTERNAL FNEW : LOW SEGMENT ONLY. (FOCALL.REL)
@EXECUTE FCLTMP.MAC
@DELETE FCLTMP.REL
@MACRO
*FOCALH,FOCALH/C=FCLTMP.PRM,FOCAL
*FOCALL,FOCALL/C=TTY:,DSK:FCLTMP.PRM,FOCAL
*EXTERNAL FNEW
*
*
@LOAD FOCALH
@SAVE FOCAL
@DELETE FOCALH.REL
@R CREF
*DSK:FOCALH=FOCALH/O
*DSK:FOCALL=FOCALL/O
@RUNOFF
*FOCAL.MEM=FOCAL.RNO/UNDERLINE:SEPARATE
*FOCAL.DOC=FOCAL.RND/UNDERLINE:SEPARATE
@LOGOUT
@IF(ERROR)@GOTO HANG
TEST::
@CHKPNT HANG
@DEFINE EDITOR: SYS:TV.EXE
@RENAME FOCAL.EXE FHOLD.EXE	;SAVE STANDARD FILE.
@IF(ERROR)			;IGNORE ERRORS
@RENAME FOCALL.REL FHOLD.REL	;SAVE STANDARD FILE.
@IF(ERROR)			;IGNORE ERRORS
@EXECUTE FCLTMP.MAC		;CREATE PARAMETER & COMMAND FILES
@DELETE FCLTMP.REL
@TV
*;RFOCAL.RPT;WFOCAL.RPT;YZJ
@IF(ERROR)*;WFOCAL.RPT
*IFOCAL report for  WDATE-AND-TIME2<I
*>;X
;CONVENTION:	"PERMANENT RECORDS IN FOCAL.RPT END WITH CRLF."
@LOAD FCLTMP.PRM+FOCAL.MAC/MACRO
@SAVE
@DELETE FOCAL.REL
@RUNOFF
*FOCAL.MEM=FOCAL.RNO/UNDERLINE:SEPARATE
*FOCAL.DOC=FOCAL.RND/UNDERLINE:SEPARATE
@EDIT FOCAL.MEM FNEW1.FOR
*_DOUBLE PRECISION FUNCTION0L0,.KS      END
*.,ZKJ6D<:R
*      
*; >
@IF (ERROR)	;COLON-MODIFIED SEARCHES DON'T ALWAYS WORK
*HP;X
@COPY FOCAL.MAC NUL:	;DOES THE MACRO SOURCE FILE EXIST?
@IF(NOERROR) @GOTO LOOP
@EDIT FOCAL.RPT FOCAL.RPT
*ZJISOURCE FILE ABSENT - NO ASSEMBLIES DONE
*;X
@DELETE FCLTMP.PRM
@GOTO FNEWT

CRASH::
@EDIT FOCAL.RPT FOCAL.RPT
*ZJI[RE-STARTED AFTER CRASH]
*;X

LOOP::
@REVIVE
@CHKPNT CRASH
@EDIT FOCAL.RPT FOCAL.RPT
*ZJ0KIASSEMBLE NEXT CONFIGURATION FOR TEST;X
@MACRO
*FCLTMP,FCLTMP=FCLTMP.PRM,FOCAL
*FOCALL=TTY:,DSK:FCLTMP.PRM,FOCAL
*EXTERNAL FNEW
*^Z
*^Z
@DELETE FOCAL.SAV,FOCAL.SHR,FOCAL.EXE,FOCAL.LOW
@LOAD FCLTMP/MAP:TTY:FOCAL
@SAVE
@TV
*;RFCLTMP.LST_PROGRAM<0>BREAK0LXBJS^EA-C0,.KS	MACRO-6C0XA
*HK;RFOCAL.RPT;YZJ0KITEST OF GAI
*-TGBITEST OF FNEW;WFOCAL.RPT;X
@DELETE FCLTMP.LST,FCLTMP.REL
FNEWT::
@LOAD FOCALL/REL,FNEW1.FOR
@DEFINE DSK: NUL:
@DEFINE SYS: NUL:
@DEFINE NEW: NUL:
@DEFINE OLD: NUL:
@START
@IF(ERROR)@GOTO FNEWU
;HERE IF PDP-6.
@DEFINE DSK:
@DEFINE SYS:
@DEFINE NEW:
@DEFINE OLD:
@GET FOCAL
@E 400000
@IF(NOERROR)@GOTO CHECK	;AHA! NOT PDP-6!
@LOAD FOCALL/REL,FNEW1.FOR
FNEWU::
@DEFINE OLD: DSK:
@START
;NEXT LINE HAS A RUBOUT AFTER THE Z, TO CHECK THAT FEATURE.
*ZIF (-FABS(FNEW("ABC")-3));QUIT
;NEXT LINE HAS A BACKSPACE AFTER THE Z, TO CHECK THAT FEATURE.
*Z^HIF (-FABS(FNEW("ABCD")-4));QUIT
;NEXT LINE HAS TWO BACKSPACES AFTER THE Z TO CHECK THAT FEATURE.
*Z^H^HIF (-FABS(FNEW("1234567890")-10));QUIT
@DEFINE DSK:
@DEFINE SYS:
@DEFINE OLD:
@DEFINE NEW:
@LOAD FOCALL/REL,FNEW1.FOR
@DEFINE DSK: NUL:
@DEFINE SYS: NUL:
@DEFINE NEW: DSK:
@DEFINE OLD: NUL:
@START
@DEFINE DSK:
@DEFINE SYS:
@DEFINE OLD:
@DEFINE NEW:
@LOAD FOCALL/REL,FNEW1.FOR
@DEFINE DSK: NUL:
@DEFINE SYS: DSK:
@DEFINE NEW: NUL:
@DEFINE OLD: NUL:
@START
@DEFINE DSK:
@DEFINE SYS:
@DEFINE OLD:
@DEFINE NEW:
@LOAD FOCALL/REL,FNEW1.FOR
@DEFINE SYS: NUL:
@DEFINE NEW: NUL:
@DEFINE OLD: NUL:
@START
@DEFINE DSK:
@DEFINE SYS:
@DEFINE OLD:
@DEFINE NEW:
@EDIT FOCAL.RPT FOCAL.RPT
*ZJ0KICORE SIZE CHECK AND GET/SAVE TEST;X
@GET FOCAL	;CHECK SIZE.
@E 404000	;HIGH SEG MUST BE LESS THAN OR EQUAL 2K.
@IF(NOERROR)@GOTO CHECK
@E 400000
@IF(NOERROR)@GOTO TWOSEG
@E 6000		;IF JUST LOW SEG, THEN IT MUST BE LESS THAN OR EQUAL 3K.
@IF(NOERROR)@GOTO CHECK
TWOSEG::@START
*1.01 IF(X+1) ,1.03;Z - X IS NOT NEGATIVE.
*1.03 QUIT
*SET X=-1
*GO;CHECK PROGRAM FIRST.
*SET QQ$="HOW-DO-YOU-DO",YY=4.7537
*LIBRA SAVE FCLTMP.A
@REENTER
*LIBRA SAVE FCLTMP.B
@SAVE FCLTMX
@IF(ERROR)@SAVE FCLTMX
@REENTER
@IF(NOERROR)@GOTO CHECK
*LIBRA SAVE FCLTMP.C
@START
@IF(NOERROR)@GOTO CHECK
*LIBRA SAVE FCLTMP.D
@RESET
@GET FCLTMX
@START
@IF(NOERROR)@GOTO CHECK
*LIBRA SAVE FCLTMP.E
*1.02 Z - CRASH HERE IF 1.01 DID NOT SKIP.
*GO
*SET X=3;LIBRA SAVE FCLTMP.F ALL;SET X=-1;LIBRA CALL FCLTMP.F
*LIBRA DELETE FCLTMP.F;GO;CHECK THAT IF LIST THEN NO SYMBOL TABLE.
@DELETE FCLTMX.SAV,FCLTMX.HGH,FCLTMX.LOW,FCLTMX.EXE
@EDIT FCLTMP.A FCLTMP.A
*SVS^ESKI
*;X
@EDIT FCLTMP.B FCLTMP.B
*SVS^ESKI
*;X
@EDIT FCLTMP.C FCLTMP.C
*SVS^ESKI
*;X
@EDIT FCLTMP.D FCLTMP.D
*SVS^ESKI
*;X
@EDIT FCLTMP.E FCLTMP.E
*SVS^ESKI
*;X
@FILCOM
*=FCLTMP.A,.B/Q/B
*=FCLTMP.A,.C/Q/B
*=FCLTMP.A,.D/Q/B
*=FCLTMP.A,.E/Q/B
@DELETE FCLTMP.A,FCLTMP.B,FCLTMP.C,FCLTMP.D,FCLTMP.E
@CREATE FOCAL.TMP
*I
*C - PLACE A NULL IN THE IMMEDIATE-MODE TEXT AREA PRIOR TO THIS COMMENT
*1.01	QUIT
*1.02	Z - CRASH LIBRA CALL.
*;X
@RUN FOCAL
*LIBRA CALL FOCAL.TMP
*GO;C - CHECK LIBRA CALL WITH INITIAL CRLF IN THE FILE.
@DELETE FOCAL.TMP
@EDIT FOCAL.RPT FOCAL.RPT
*ZJ0KIELEMENTARY AND D0AA TESTS;X
@RUN FOCAL
*D
*E
*F X=1
*G
*I X
*Q
*R
*S X=0
*T
*W
*W ALL
*X
*O I D0AA
@IF(ERROR)@GOTO CHECK
@EDIT FOCAL.RPT FOCAL.RPT
*ZJ0KILIBRA CALL/SAVE TESTS;X
@RUN FOCAL
*L C XSPEED
*FOR I=1,127;SET COUNT(I)=I,STR$(I)=FCHR$(I)
*L S FCLTMP.A
*e a,;l c FCLTMP.A;l s FCLTMP.B
*E A,;L C FCLTMP.B;L S FCLTMP.B
@EDIT FCLTMP.A FCLTMP.A
*SVS^ESKI
*;X
@EDIT FCLTMP.A FCLTMP.A
*SVS^ESKI
*;X
@FILCOM
*=FCLTMP.A,FCLTMP.B/Q/B
@RUN FOCAL
*L D FCLTMP.BAK
*L D FCLTMP.A
*l d FCLTMP.B
@EDIT FOCAL.RPT FOCAL.RPT
*ZJ0KITYPING AND STRING MANIPULATION CHECKOUT;X
@RUN FOCAL	;TYPING CHECKOUT.
*TYPE %E5.04
*OPERATE OUTPUT DSK:FCLTMP.A/6
*OPERATE OUTPUT DSK:FCLTMP.B/7
*TYPE /6,0!		,/7,"=    0.0000"!
*TYPE /6,.000049!	,/7,"=    0.0000"!
*TYPE /6,.000051!	,/7,"=    0.0001"!
*TYPE /6,.0001!		,/7,"=    0.0001"!
*TYPE /6,.1!		,/7,"=    0.1000"!
*TYPE /6,1!,/7,"=    1.0000"!
*TYPE /6,9999!,/7,"= 9999.0000"!
*TYPE /6,%,1!,/7,"= 1.0000E+0"!
*TYPE /6,%,0!,/7,"= 0.0000E+0"!
*TYPE /6,%,.1!,/7,"= 1.0000E-1"!
*TYPE /6,%,10!,/7,"= 1.0000E+1"!
*TYPE /6,%,-1!,/7,"=-1.0000E+0"!
*TYPE /6,%,$,  /7,!
*SET X=5,Q(76)=76
*TYPE /6,%,$,  /7,!"S Q(76)	= 7.6000E+1"!"S X	= 5.0000E+0"!
*TYPE /6,%,X,! /7,"= 5.0000E+0"!

;CHECK STRING OPERATIONS TOO.
*SET X=5,X$="5",X6=6
*TYPE /6,X,X$,X6;TYPE X6;TYPE X$;TYPE X!;TYPE /7,"= 5.0000E+05= 6.0000E+0= 6.0000E+05= 5.0000E+0"!
*SET X$="A",X$(1)="BC",X$(2,0)="DEF",X$(3,0,0)="GHIJ",X$(4)="KLMNO", X$(5)= "PQRSTU"
*SET X$=X$+X$(1)+X$(2)+X$(3)+X$(4)+X$(5)
*SET Y$="ABCDEFGHIJKLMNOPQRSTU"+FCHR$(10)+FCHR$(13)
*TYPE /6,X$,!,/7,Y$
*SET X$="";TYPE /6 X$+X$
*SET X$="ABC"
*TYPE %2.01,/6,2.0,"HELLO","",2.0,X$,!/7"= 2.0HELLO= 2.0ABC"!
*TYPE /6,X,"HELLO",X,X$!/7"= 5.0HELLO= 5.0ABC"!
*TYPE /6 X "HELLO" X X$ /7 "= 5.0HELLO= 5.0ABC"
*TYPE /6 2.0 "HELLO" 2.0 X$ /7 "= 2.0HELLO= 2.0ABC"
*TYPE /6!"HELLO",2.0,X$,2.0,/7!"HELLO= 2.0ABC= 2.0"
*TYPE /6 "HELLO" 2.0 X$ 2.0!/7 "HELLO= 2.0ABC= 2.0"!
*TYPE /6 "HELLO",X , X$ , X ,!,/7, "HELLO= 5.0ABC= 5.0"!
*TYPE /6 "HELLO" X   X$   X  ! /7  "HELLO= 5.0ABC= 5.0"!
*ERASE
*ASK ;CHECK THAT NO COLON APPEARS IN THE OUTPUT.
*ASK "HOWDY";TYPE /6!/7!
*ASK X$;TYPE /6 X$! /7 "SPACEDELIMITER COMMA,"!
*SPACEDELIMITER COMMA,
*ASK W$,X$,Y$;TYPE /6 W$+X$+Y$!/7"SPACEDELIMITER COMMA,GREEN"!
*
*FOOYELLOW ^UA^U^RAB^RGAABABCABCDABCDEABCDEFREEN
*ASK W$,X$,Y$;TYPE /6 W$+X$+Y$!/7"SPACEDELIMITER COMMA,GREEN"!
*
*FOOYELLOW ^U^HA^U^RAB^H^H^RGA^HAB^H^HABC^H^H^HABCD^H^H^H^HABCDE^H^H^H^H^HABCDEF^H^H^H^H^H^HREEN
*ASK W$,X$,Y$;TYPE /6 W$+X$+Y$!/7"SPACEDELIMITER COMMA,GREEN"!
*
*FOOYELLOW ^U^HA^U^RAB^H^RGAAB^HABC^H^HABCD^H^HABCDE^H^HABCDEF^H^H^HREEN
*ERASE;SET X$="ALPHA"+FCHR$(10)+FCHR$(13)+"BETA"
*TYPE /6 $ /7 $$
*TYPE /6 $ /7 !"S X$	=	",FCHR$(34),"ALPHA",FCHR$(34),"+FCHR$(10)+",FCHR$(34),FCHR$(34),"+FCHR$(13)+",FCHR$(34),"BETA",FCHR$(34)!
*^UA^U^RAB^R^POAABABCABCDABCDEABCDEFPER^RATE OUTPUT TTY:/6;OPERATE OUTPUT TTY:/7
*^U^HA^U^RAB^R^POA^HAB^H^HABC^H^H^HABCD^H^H^H^HABCDE^H^H^H^H^HABCDEF^H^H^H^H^H^HPER^RATE OUTPUT TTY:/6;OPERATE OUTPUT TTY:/7
*^UA^U^RAB^R^POA^HAB^HABC^HABCD^H^HABCDE^H^H^HABCDEF^H^H^HPER^RATE OUTPUT TTY:/6;OPERATE OUTPUT TTY:/7
@FILCOM
*=FCLTMP.A,.B/Q/B
@DELETE FCLTMP.A,FCLTMP.B
@EDIT FOCAL.RPT FOCAL.RPT
*ZJ0KITELETYPE-SPECIFIC TESTS;X
;TELETYPE-SPECIFIC TESTS.
@RUN FOCAL
@REE
*1.1 C
*DO 1.1,1.1;DO 1.1
*
*?
*DO 1.1
*?
*L S TTY:
*1.1 C
*M 1.1
*
*O O TTY:
*O I TTY:
*T " ","?"
*	
@EDIT FOCAL.RPT FOCAL.RPT
*ZJ0KIINACCESIBLE-CODE TEST.;X
@EDIT FCLTMP.PRM FCLTMP.PRM
*:N.CPU=3"S
*?IT'S A KI-10!	GO MAN GO!
*'
@IF(NOERROR)@GOTO NOSIM		;ONLY SIMULATE VERSIONS WITH PURE HI-SEG.
@LOAD FOCALL/REL,SIMFCL
@START
*L C XACCES
*^Z
@START
@IF(NOERROR)@GOTO CHECK
*GO TO 1.01
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@IF(NOERROR)@GOTO CHECK
*GO
@TERMINAL HALFDUPLEX	;TO GET NO ECHO
@IF(ERROR);IGNORE BATCH'S INCAPACITY!
@START
@IF(NOERROR)@GOTO CHECK
*GO
=
@TERMINAL FULLDUPLEX	;TO RESTORE ECHO
@IF(ERROR);IGNORE BATCH'S INCAPACITY!
@REENTER
*GO
;WE CAN'T CONTROL-C, @CONT STAY, @DETACH, DELAY, @ATTACH, @CONT NORM IN BATCH.
@TV
*;RSIMFCL.RPTYAHXA;RFOCAL.RPT;WFOCAL.RPT;YZJ0LGA;X
@DELETE SIMFCL.RPT
NOSIM::
@EDIT FOCAL.RPT FOCAL.RPT
*ZJ0KIERROR-MESSAGE CHECKOUT.;X
@RUN FOCAL
*OPERATE CALL FOCAL.CTL
@IF(NOERROR)@GOTO CHECK
*OPERATE OUTPUT :
@IF(NOERROR)@GOTO CHECK
*LIBRA OUTPUT
@IF(NOERROR)@GOTO CHECK
*ERASE ALL
*12.34 ERASE ALL
*GO
*FOR X$=2,3,4;
@IF(NOERROR)@GOTO CHECK
*FOR X="FIVE",3;
@IF(NOERROR)@GOTO CHECK
*FOR X=2,"FIVE";
@IF(NOERROR)@GOTO CHECK
*FOR X=2,X$;
@IF(NOERROR)@GOTO CHECK
*FOR X=2,3,X$;
@IF(NOERROR)@GOTO CHECK
*SET Y=X$
@IF(NOERROR)@GOTO CHECK
*SET X$=Y
@IF(NOERROR)@GOTO CHECK
*SET X$=2
@IF(NOERROR)@GOTO CHECK
*SET X$=+Y$
@IF(NOERROR)@GOTO CHECK
*SET X$=-Y$
@IF(NOERROR)@GOTO CHECK
*SET X$=*5
@IF(NOERROR)@GOTO CHECK
@ERROR %
@RUN FOCAL
;ENSURE NO FOV ERROR FOR THE FOLLOWING TYPE-OUT:
*TYPE %%E25.18,1E-26
@RUN FOCAL
;ENSURE ERROR MESSAGE FOR SQUARE ROOT OF -1:
*SET X=FSQT(-1)
@IF(NOERROR)@GOTO CHECK
*TYPE %E3.03
@IF(NOERROR)@GOTO CHECK
*TYPE %3.04
@IF(NOERROR)@GOTO CHECK
*TYPE %100
@IF(NOERROR)@GOTO CHECK
*TYPE /1 ;CHANNEL 1 IS NEVER AVAILABLE.
@IF(NOERROR)@GOTO CHECK
@ERROR
@E 400000		;IS THIS THE PDP-6 VERSION?
@IF(ERROR)@GOTO NOFPT
@ERROR %
@RUN FOCAL
*TYPE 10^55
@IF(NOERROR)@GOTO CHECK
*TYPE 10^(-55)
@IF(NOERROR)@GOTO CHECK
NOFPT::@ERROR
@RUN FOCAL
*GO ..;CHECK LOOP WITH DOUBLE PERIODS.!
@IF(NOERROR)@GOTO CHECK
@RUN FOCAL
*OPERATE INPUT DSK:FOCAL.RNO/0
@IF(NOERROR)@GOTO CHECK
*OPERATE INPUT DSK:FOCAL.RNO/5;ASK /0;TYPE /0
@EDIT FOCAL.RPT FOCAL.RPT
*ZJ0KITEST COMPLETED.
*;X
@EDIT FCLTMP.PRM FCLTMP.PRM
@IF(ERROR)@GOTO DONE
*:SWPV=2"E-DI1;X':SWPV=1"N!A!
*?BAD PARAMETER FILE.
*;X'-DI2J:S.CPU="NOA'1A-1ID;X
@EDIT FCLTMP.PRM FCLTMP.PRM
*:S.CPU=0"E
*?END OF FOCAL TESTS.
*';X
@IF(ERROR)@GOTO DONE
@SILENCE
@BACKTO LOOP

DONE::
@CHKPNT HANG
@DELETE FOCAL.SHR,FOCAL.SAV,FOCAL.EXE,FOCAL.LOW,FOCALL.REL
@RENAME FHOLD.EXE FOCAL.EXE	;RESTORE STANDARD FILE.
@IF(ERROR)			;IGNORE ERRORS
@RENAME FHOLD.REL FOCALL.REL	;RESTORE STANDARD FILE.
@IF(ERROR)			;IGNORE ERRORS
@DELETE FCLTMP.PRM,FCLTMP.BAK,FNEW1.FOR,FNEW1.REL
@DELETE SIMFCL.MAC,SIMFCL.REL,FCLTMP.FCL
@DELETE D0AA.FCL,XACCESS.FCL,XSPEED.FCL
@DELETE FOCAL.MEM,FOCAL.DOC,FOCALH.LST,FOCALL.LST

@EDIT FOCAL.RPT FOCAL.RPT
*ZJI
*FOCAL SUCCESSFUL
*;X
@DELETE COMMANDS.TV
@VDIRECTORY
@SUBMIT FOCAL/TAG:STATS/TIME:03:00/OUTPUT:NOLOG
@LOGOUT
@IF(ERROR)@GOTO HANG
;CLOSE THE LOG FILE AND RE-OPEN IT.
;TO COMPLETE TESTS, YOU SHOULD ALSO FOLLOW THROUGH ALL EXAMPLES IN THE
;MANUAL AT THE KEYBOARD TO ENSURE THAT THERE ARE NO DISCREPANCIES.
%ERR::
CHECK::
@NOERROR
@DEFINE *
@INFO VERSION
@INFO MEMORY
@REENTER
*WRITE ALL;TYPE $
=^Z
%FIN::
FAILED::
@CHKPNT HANG
@DEFINE *
@INFO VERSION
@INFO MEMORY
@EDIT FOCAL.RPT FOCAL.RPT
*ZJI
*FOCAL FAILED
*HERE IS AN EXTRACT FROM THE LOG FILE:
*[ONE MOMENT PLEASE...];X
@SUBMIT FOCAL/TAG:FAIL2/TIME:03:00/OUTPUT:NOLOG
@ERROR
@LOGOUT
@IF(ERROR)@GOTO HANG
;CLOSE THE LOG FILE AND RE-OPEN IT.
FAIL2::
@CHKPNT HANG
@TV
*0UA;RFOCAL.LOG;Y:SERR:"LOA'J:SCHECK:"L!A!0L.,ZKJ'<:S^ED^ED:^ED^ED:^ED^ED; %A>HK
*;RFOCAL.RPT;WFOCAL.RPT;YZJ0KHXB
*;RFOCAL.LOGQA-10_^ED^ED:^ED^ED:^ED^ED0L0,.KGB;X
@LOGOUT
@IF(ERROR)@GOTO HANG
STATS::
@CHKPNT HANG
@EDIT FOCAL.RPT FOCAL.RPT
*;YZJI
*HERE ARE SOME STATISTICS OF THE TEST...
*;X
@TV
*;RFOCAL.LOG:_	RUNTIME "E;H'-8C.UJ0L.,.+8XIGIQJJ0,.KI
*
*TOTAL TEST LITEST CONCLUDED AT GII
*0,.XTHK;RFOCAL.RPT;WFOCAL.RPT;YZJGT;X
@DELETE COMMANDS.TV
@LOGOUT
@IF(ERROR)@GOTO HANG
%FIN::
@LOGOUT
@IF(ERROR)@GOTO HANG
HANG::
@CHKPNT HANG
@LOGOUT
@IF(ERROR)	;WELL IT WAS WORTH TRYING.
@DEFINE EDITOR: SYS:TV	;IN CASE NOT DONE THAT YET
@CREATE HANG.MAC
*	SEARCH MONSYM
*HANG:	RESET
*	MOVEI	1,^D6000	;6 SECONDS SLEEP
*	DISMS
*	MOVSI	1,(GJ%SHT+GJ%OLD)
*	HRROI	2,[ASCIZ/HANG.REL/]
*	GTJFN
*	 JRST	HANG
*	MOVEI	2,OF%RD
*	OPENF
*	 HALTF
*	JRST	HANG
*	END	HANG
*;X
@IF(ERROR)@BACKTO HANG
@EXECUTE HANG
@IF(ERROR)@BACKTO HANG
%FIN::
@LOGOUT
@IF(ERROR)@BACKTO HANG