Google
 

Trailing-Edge - PDP-10 Archives - integ_tools_tops20_v7_30-apr-86_dumper - tools/tvaxv2/tv.com
There are 7 other files named tv.com in the archive. Click here to see a list.
$ VERIFY = F$VERIFY(0)
$!
$! TV.COM
$!	TV.COM is the main COM-file, to build/rebuild TV.EXE.
$!	The procedure will call the other COM-files, to perform
$!	specific actions. In case certain actions have to be
$!	left out of a special procedure, the sequence can be
$!	changed easily.
$!
$! Author: Jan Postmus, Digital SWS, Utrecht, The Netherlands.
$!
$! Tayloring procedure
$!	If certain programs don't need to be compiled,
$!	the specific step can be taken out of the sequence
$!	by placing a "!" after the "$"-sign.
$!
$! Calling TV.COM
$!	Normally TV.COM will run from time-sharing or batch.
$!	The following parameters can be specified:
$!		no parameters	NOLIST, NOMAP, NOCROSS
$!		LIST		LIST, MAP, NOCROSS
$!		CROSS		LIST, MAP, CROSS
$!
$!	LIST, NOLIST used in MACRO-statement of TVCOMP.COM
$!	MAP, NOMAP used in LINK-statement of TVLINK.COM
$!	CROSS, NOCROSS used in MACRO- and LINK-statements
$!	 of both TVCOMP.COM and TVLINK.COM.
$!
$! Error-handling
$!	In case an error is detected in one of the steps,
$!	the main procedure is notified (exit-code = 101),
$!	and the failure is saved in ERROR_CODE.
$!	At the end of the procedure, this is repeated.
$!	In order to detect, whether the step(s) are run
$!	individually or in stream, the list-parameter is
$!	used, therefore, care should be taken, when changing
$!	the procedure(s).
$!
$! Termination of procedure
$!	The procedure can be terminated by CTRL-Y.
$!	In case the procedure is terminated, while one of the
$!	steps is executed, this is reported by exit-code = 103
$!	to the main-procedure. At the end, a message is given
$!	to report this again.
$!
$ ON CONTROL_Y THEN GOTO TV_FATAL
$ SET NOON
$!
$! Check whether parameters were specified.
$!
$ TV_10:
$!
$ IF "''P1'" .NES. "" THEN GOTO TV_30
$!
$ TV_20:
$!
$! Set internal parameters to default.
$!
$ LST_PAR == "NOLIST"
$ MAP_PAR == "NOMAP"
$ GOTO TV_50
$!
$ TV_30:
$!
$ IF "''F$EXTRACT(0,1,P1)'" .NES. "L" THEN GOTO TV_40
$!
$! Set internal parameters to list, no cross-reference.
$!
$ LST_PAR == "LIST/NOCROSS"
$ MAP_PAR == "MAP/NOCROSS"
$ GOTO TV_50
$!
$ TV_40:
$!
$ IF "''F$EXTRACT(0,1,P1)'" .NES. "C" THEN GOTO TV_20
$!
$! Set internal parameters to list, cross-reference.
$!
$ LST_PAR == "LIST/CROSS"
$ MAP_PAR == "MAP/CROSS"
$ GOTO TV_50
$!
$ TV_50:
$!
$! Start procedure to build TV.
$!
$ WRITE SYS$OUTPUT " "
$ WRITE SYS$OUTPUT " * TV build procedure started."
$ WRITE SYS$OUTPUT " * Selected parameters: /''LST_PAR' /''MAP_PAR'"
$ WRITE SYS$OUTPUT " * If necessary, procedure can be terminated by CTRL-Y."
$!
$! First put TVMACROS in TV.MLB.
$!
$ @TVMACROS
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$! Compile subroutines GTVRxx, and place them into TV.OLB.
$!
$ @TVCOMP GTVR01
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR02
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR03
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR04
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR05
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR06
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR07
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR08
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR09
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR10
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$! Compile main TV-program, place object into TV.OLB.
$!
$ @TVCOMP TVMAIN
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$! Create TV.EXE, by linking all TV modules from TV.OLB.
$!
$ @TVLINK
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ TV_END:
$!
$! Normal (correct) end of procedure.
$!
$ WRITE SYS$OUTPUT " "
$ WRITE SYS$OUTPUT " * TV build procedure finished."
$ EXIT_CODE = 1
$ GOTO TV_LAST
$!
$ TV_ERROR:
$!
$! Error detected in one of the steps.
$!
$ WRITE SYS$OUTPUT " "
$ WRITE SYS$OUTPUT " * Error detected during TV build procedure."
$ WRITE SYS$OUTPUT " * Error: ''F$MESSAGE(ERROR_CODE)'."
$ EXIT_CODE = ERROR_CODE
$ DELETE /SYMBOL /GLOBAL ERROR_CODE
$ GOTO TV_LAST
$!
$ TV_FATAL:
$!
$! Procedure terminated by CTRL-Y
$!
$ WRITE SYS$OUTPUT " "
$ WRITE SYS$OUTPUT " * TV build procedure terminated by ^Y."
$ EXIT_CODE = 103
$ GOTO TV_LAST
$!
$ TV_LAST:
$!
$! Finishing the procedure.
$!
$! Get rid of used symbols.
$!
$ DELETE /SYMBOL /GLOBAL LST_PAR
$ DELETE /SYMBOL /GLOBAL MAP_PAR
$!
$! Restore verify-mode.
$!
$ IF VERIFY .EQ. 1 THEN SET VERIFY
$!
$ EXIT EXIT_CODE