Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99r-bb - ftn111.ctl
There are 7 other files named ftn111.ctl in the archive. Click here to see a list.
;
;   FTN111.CTL -- Patch and rebuild FORTRAN-10-V11
;   Version 2(1)
;
;	April 1985 /TGS / MRB 
;	16-JUN-88 HAH ADD BRANCH FOR NO UPDATE
; 
;
;		    COPYRIGHT (c) 1982, 1987 BY
;	    Digital Equipment Corporation, Maynard, MA.
;
;   This software is furnished under a license and may be  used
;   and  copied  only  in  accordance  with  the  terms of such
;   license and with  the  inclusion  of  the  above  copyright
;   notice.   This software or any other copies thereof may not
;   be provided  or  otherwise	made  available  to  any  other
;   person.   No  title  to  and  ownership  of the software is
;   hereby transferred.
;
;   The information in	this  software	is  subject  to  change
;   without  notice and should not be construed as a commitment
;   by Digital Equipment Corporation.
;
;   Digital  assumes  no  responsibility   for	 the   use   or
;   reliability  of  its  software  on	equipment  which is not
;   supplied by Digital.
;
;
;   This .CTL  file  applies  the  patches  to the  modules  of
;   FORTRAN-10-V11 and rebuilds the Fortran Compiler, FORLIB.REL,
;   FORO11.EXE and FORDDT.REL.
;
;   For this .CTL file to run, the connected directory must  be
;   the patching directory (Logical name PAT:).
;
;   NOTE: If the dummy file FTNDBM.FLG is present on PAT:, this
;   .CTL file will build FORTRAN-10 with DBMS.
;


START::

.R PEPB
*INITIALIZE FORTRAN-10-V11
*EXIT
;

.PA REL:=

;
;	Delete any source modules that may be left in PAT:
;
.NOERROR
.DELETE PAT:BLIO.BLI,PAT:BUILD.BLI,PAT:DEFLT.BLI,PAT:ERROR0.BLI,PAT:ERROVA.BLI
.DELETE PAT:ERROVB.BLI,PAT:ERROVC.BLI,PAT:ERROVD.BLI,PAT:ERROVG.BLI
.DELETE PAT:ERROVR.BLI,PAT:ERRTB3.MAC,PAT:F72BNF.SYN,PAT:FMTLEX.BLI
.DELETE PAT:FRMBNF.SYN,PAT:LEFT72.BLI,PAT:LEFTFM.BLI,PAT:NUMIO1.BLI
.DELETE PAT:OUTZ.BLI,PAT:OWNDM.MAC,PAT:QTAB1.MAC,PAT:SCAN0.BLI,PAT:SCNR.BLI
.DELETE PAT:TBL.BLI,PAT:TRACE1.BLI,PAT:ACT0.BLI,PAT:ACT1.BLI,PAT:ALCBLO.BLI
.DELETE PAT:ARRXPN.BLI,PAT:ASHELP.BLI,PAT:CANNON.BLI,PAT:CGDO.BLI
.DELETE PAT:CGEXPR.BLI,PAT:CGSTMN.BLI,PAT:CMPBLO.BLI,PAT:CMPLEX.BLI
.DELETE PAT:CNSTCM.MAC,PAT:CODETA.BLI,PAT:COMMAN.MAC,PAT:COMSUB.BLI
.DELETE PAT:DATAST.BLI,PAT:DEBUG.BLI,PAT:DEFPT.BLI,PAT:DGCMN.MAC
.DELETE PAT:DNPT.MAC,PAT:DOPT.MAC,PAT:DOALC.BLI,PAT:DOXPN.BLI,PAT:DRIVER.BLI
.DELETE PAT:ERR3.MAC,PAT:ERROUT.BLI,PAT:EXOSUP.MAC,PAT:EXPRES.BLI
.DELETE PAT:FAZ1.BLI,PAT:FDDT.MAC,PAT:FIRST.BLI,PAT:FLTGEN.MAC,PAT:FORMAT.BLI
.DELETE PAT:GCMNSB.BLI,PAT:GFOPDF.MAC,PAT:GLOBAL.BLI,PAT:GNRCFN.BLI
.DELETE PAT:GOPT2.BLI,PAT:GOPTIM.BLI,PAT:GRAPH.BLI,PAT:INOUT.BLI,PAT:INPT.BLI
.DELETE PAT:IOFLG.BLI,PAT:IOPT.BLI,PAT:JOBD.MAC,PAT:LEXAID.BLI,PAT:LEXICA.BLI
.DELETE PAT:LEXNAM.BLI,PAT:LEXSUP.BLI,PAT:LISTNG.BLI,PAT:LISTOU.BLI,LEXCLA.BLI
.DELETE PAT:MAIN.BLI,PAT:MEMCMP.BLI,PAT:MOVA.BLI,PAT:OPGNTA.MAC,PAT:OPTAB.BLI
.DELETE PAT:OPTMAC.BLI,PAT:OUTMOD.BLI,PAT:P2S1.BLI,PAT:P2S2.BLI,PAT:P3R.BLI
.DELETE PAT:PEEPOP.BLI,PAT:PH2S.BLI,PAT:PH3G.BLI,PAT:PHA2.BLI,PAT:PHA3.BLI
.DELETE PAT:PNROPT.BLI,PAT:REGAL2.BLI,PAT:REGUTL.BLI,PAT:RELBUF.BLI
.DELETE PAT:REQREL.BLI,PAT:REVHST.MAC,PAT:SKSTMN.BLI,PAT:SRCA.BLI,PAT:STA0.BLI
.DELETE PAT:STA1.BLI,PAT:STA2.BLI,PAT:STA3.BLI,PAT:STREGA.BLI,PAT:TABLES.BLI
.DELETE PAT:TSTR.BLI,PAT:UNEND.BLI,PAT:UTIL.BLI,PAT:VER5.BLI,PAT:VLTPPR.BLI

.DELETE FORBOT.MAC,FORCNV.MAC,FORCOM.MAC,FORCHR.MAC,FORDBM.MAC
.DELETE FORDST.MAC,FORDUM.MAC,FORERR.MAC,FORFMT.MAC,FORHST.MAC
.DELETE FORINI.MAC,FORIO.MAC,FORMEM.MAC,FORMSC.MAC,FORMSG.MAC
.DELETE FORNML.MAC,FOROP.MAC,FOROPN.MAC,FOROTS.MAC,FORPSE.MAC
.DELETE FORPL2.MAC,FORRMS.MAC,FORRTF.MAC,FORSRT.MAC,FORXIT.MAC
.DELETE FORPL1.FOR,MTHTRP.MAC,MTHSNG.MAC,MTHDBL.MAC
.DELETE MTHGDB.MAC,MTHCPX.MAC,MTHCDX.MAC,MTHCGX.MAC,MTHMSG.MAC
.DELETE MTHDUM.MAC,MTHARG.MAC,MTHCNV.MAC,FDBML5.MAC,FDBMH5.MAC
.DELETE FORDDT.MAC,FORPRM.MAC
.ERROR
.PATH UNV:=ASL:
.PATH ASL:/SEARCH

;
;	Apply patches to the source modules
;

.ERROR %
.DIR PAT:FTN111.SUP
.IF (ERROR) .GOTO NOUPD
.TYPE PAT:FTN111.SUP

.R UPDATE
*@PAT:FTN111.SUP
NOUPD::
.ERROR


BUILC::

;
; Make sure any REQUIRE files are on the patching directory
;

.COPY =F72BNF.SYN
.COPY =FRMBNF.SYN
.COPY =LOOK72.BLI
.COPY =LOOKFM.BLI
.COPY =ASHELP.BLI
.COPY =FIRST.BLI
.COPY =FMTLEX.BLI
.COPY =IOFLG.BLI
.COPY =LEXAID.BLI
.COPY =LEXNAM.BLI
.COPY =OPTMAC.BLI
.COPY =REQREL.BLI
.COPY =TABLES.BLI


;	FIRST BUILD THE SYNTAX TABLE BUILDERS AND SYNTAX TABLES



;	COMPILE AND LOAD THE TABLE BUILDING PROGRAM.

.R BLIS10
*BUILD=BUILD.BLI

;	COMPILE ALL I/O UTILITIES.

.R MACRO
*ERRTB3=ERRTB3.MAC
*QTAB1=QTAB1.MAC

.R BLIS10
*BLIO=BLIO.BLI
*DEFLT=DEFLT.BLI
*ERROR0=ERROR0.BLI
*NUMIO1=NUMIO1.BLI
*OUTZ=OUTZ.BLI
*SCAN0=SCAN0.BLI
*SCNR=SCNR.BLI
*TBL=TBL.BLI
*TRACE1=TRACE1.BLI


BLDCK::

;	LOAD THE BUILDER WITH I/O UTILITIES AND EXECUTE



;	LOAD IT

.TYPE BLD.CMD

.R LINK
*@BLD.CMD

;	BUILD STATEMENT SYNTAX TABLES
;	  BUILD REQUIRES _ NOT =

.RUN BUILD
*META72.BLI,F72BNF.BLI_F72BNF.SYN
*0
*N

;	BUILD FORMAT SYNTAX TABLES
;	  BUILD REQUIRES _ NOT =

.RUN BUILD
*METAFM.BLI,FRMBNF.BLI_FRMBNF.SYN
*0
*N

;	DO THE COMPILATIONS FOR THE LOOK AHEAD TABLE BUILDERS.

.R BLIS10
*LEFT72=LEFT72.BLI
*LEFTFM=LEFTFM.BLI


PKLOD::

;	LOAD, SAVE, AND EXECUTE THE GENERAL SYNTAX LOOK AHEAD BUILDER



;	LOAD IT

.TYPE LEFT72.CMD
.R LINK
*@LEFT72.CMD


.RUN LEFT72
*3=LOOK72.BLI
*0

;	LOAD, SAVE, AND EXECUTE THE FORMAT LOOK AHEAD TABLE BUILDER

.TYPE LEFTFM.CMD
.R LINK
*@LEFTFM.CMD


.RUN LEFTFM
*3=LOOKFM.BLI
*0

;	REMOVE THE TABLES FROM FRMBNF.BLI AND F72BNF.BLI THAT ARE
;	  UNNECESSARY FOR PHASE 1

.TECO F72BNF.BLI
*NLEFTBUILD^[JSBIND^[0L.U0S;^[0L
*<I!^[0LQ0-."E0;'-L>
*NLEFTBUILD^[N^[-L.U0S;^[-L
=<I!^[0LQ0-."E0;'-L>EX^[^[

.DELETE F72BNF.BAK

.TECO FRMBNF.BLI
*NLEFTBUILD^[JSBIND^[0L.U0S;^[0L
=<I!^[0LQ0-."E0;'-L>EX^[^[

.DELETE FRMBNF.BAK


;	IT IS RECOMMENDED THAT IF AN INSTALLATION IS NOT MODIFYING THE SYNTAX
;	  TABLES THAT THE BUILDING PROCESS BE STARTED HERE AT P0BEG.




P0BEG::

;	**********	PHASE 0		**********	FORTRA



;	MAKE THE COMPILATION AND ASSEMBLY SWITCH DEFINITION FILES
;	  TO GENERATE THE COMPILER FOR TOPS-10, MULTIPLE SEGMENT

.COPY DBUGIT.REQ = TTY:
*BIND DBUGIT=0;		! NO DEBUG CODE IN PHASE 1
*^Z

.COPY FT1SEG.REQ = TTY:
*GLOBAL BIND FT1SEG=0;		! NOT SINGLE SEGMENT
*^Z

.COPY FTTENX.REQ = TTY:
*GLOBAL BIND FTTENEX=0;	! TOPS-10
*^Z

.COPY FTTENX.MAC = TTY:
*UNIVERSAL FTTENX
*	.DIRECTIVE .NOBIN
*	FTTENX==0		; TOPS-10
*	END
*^Z


;	START THE COMPILES
;	USE FIELD IMAGE MACTEN, UUOSYM, SCNMAC, SCAN, WILD, AND HELPER

.R MACRO
*FTTENX=FTTENX.MAC
*GFOPDF=GFOPDF.MAC

.R MACRO
*COMMAN=COMMAN.MAC
*ERR3=ERR3.MAC
*EXOSUP=EXOSUP.MAC
*JOBD=JOBD.MAC
*OWNDM=OWNDM.MAC
*REVHST=REVHST.MAC

.R BLIS10
*ERROVA=ERROVA.BLI
*GLOBAL=GLOBAL.BLI
*INOUT=INOUT.BLI
*MAIN=MAIN.BLI
*UNEND=UNEND.BLI


P0END::

;	LOAD PHASE 0



;	BUILD DEBUGGING VERSION OF FORTRA.EXE

.TYPE DA.CMD

.DELETE DORTRA.EXE
.R LINK
*@DA.CMD
.RENAME DORTRA.EXE=FORTRA.EXE

;	BUILD SHARABLE FORTRA.EXE

.TYPE A.CMD

.R LINK
*@A.CMD
.GET FORTRA
.CORE




P1BEG::

;	**********	PHASE 1		**********	FORTB



.R MACRO
*CNSTCM=CNSTCM.MAC
*FLTGEN=FLTGEN.MAC

.R BLIS10
*ARRXPN=ARRXPN.BLI
*DOXPN=DOXPN.BLI
*ERROUT=ERROUT.BLI
*ERROVB=ERROVB.BLI
*EXPRES=EXPRES.BLI
*FAZ1=FAZ1.BLI
*GNRCFN=GNRCFN.BLI
*SRCA=SRCA.BLI
*VLTPPR=VLTPPR.BLI


FORMC::



.R BLIS10
*ACT0=ACT0.BLI
*ACT1=ACT1.BLI
*CODETA=CODETA.BLI
*DRIVER=DRIVER.BLI
*FORMAT=FORMAT.BLI
*LEXSUP=LEXSUP.BLI
*LISTNG=LISTNG.BLI
*STA0=STA0.BLI
*STA1=STA1.BLI
*STA2=STA2.BLI
*STA3=STA3.BLI

;	LEXICA.BLI REQUIRES 75K OF CORE TO COMPILE

.R BLIS10
*LEXCLA=LEXCLA.BLI
*LEXICA=LEXICA.BLI


P1END::

;	LOAD PHASE 1



;	BUILD DEBUGGING VERSION OF FORTB.EXE

.DELETE DORTB.EXE
.TYPE DB.CMD
.R LINK
*@DB.CMD
.RENAME DORTB.EXE=FORTB.EXE


;	BUILD SHARABLE FORTB.EXE

.TYPE B.CMD
.R LINK
*@B.CMD
.GET FORTB
.CORE




P2SBE::

;	**********	PHASE 2S	**********	FORTC



.R MACRO
*DOPT=DOPT.MAC

.R BLIS10
*ERROVC=ERROVC.BLI
*GOPT2=GOPT2.BLI
*INPT=INPT.BLI
*MEMCMP=MEMCMP.BLI
*P2S1=P2S1.BLI
*SKSTMN=SKSTMN.BLI


P2S2C::



.R MACRO
*DGCMN=DGCMN.MAC

.R BLIS10
*CANNON=CANNON.BLI
*COMSUB=COMSUB.BLI
*GOPTIM=GOPTIM.BLI
*P2S2=P2S2.BLI
*PH2S=PH2S.BLI
*UTIL=UTIL.BLI


P2SEN::

;	LOAD PHASE 2S



;	BUILD DEBUGGING VERSION OF FORTC.EXE

.TYPE DC.CMD

.DELETE DORTC.EXE
.R LINK
*@DC.CMD
.RENAME DORTC.EXE=FORTC.EXE

;	BUILD SHARABLE FORTC.EXE

.TYPE C.CMD

.R LINK
*@C.CMD
.GET FORTC
.CORE




P2BEG::

;	**********	PHASE 2		**********	FORTD



.R MACRO
*DNPT=DNPT.MAC

.R BLIS10
*DEFPT=DEFPT.BLI
*ERROVD=ERROVD.BLI
*GCMNSB=GCMNSB.BLI
*GRAPH=GRAPH.BLI
*IOPT=IOPT.BLI
*MOVA=MOVA.BLI
*PHA2=PHA2.BLI
*PNROPT=PNROPT.BLI
*TSTR=TSTR.BLI
*VER5=VER5.BLI


P2END::

;	LOAD PHASE 2



;	BUILD DEBUGGING VERSION OF FORTD.EXE

.TYPE DD.CMD

.DELETE DORTD.EXE
.R LINK
*@DD.CMD
.RENAME DORTD.EXE=FORTD.EXE

;	BUILD SHARABLE FORTD.EXE

.TYPE D.CMD

.R LINK
*@D.CMD
.GET FORTD
.CORE




P3GBE::

;	**********	PHASE 3G	**********	FORTE



.R BLIS10
*ALCBLO=ALCBLO.BLI
*CMPBLO=CMPBLO.BLI
*CMPLEX=CMPLEX.BLI
*DATAST=DATAST.BLI
*DOALC=DOALC.BLI
*ERROVR=ERROVR.BLI
*OUTMOD=OUTMOD.BLI
*PH3G=PH3G.BLI
*REGAL2=REGAL2.BLI
*REGUTL=REGUTL.BLI
*RELBUF=RELBUF.BLI
*STREGA=STREGA.BLI


P3GEN::

;	LOAD PHASE 3G



;	BUILD DEBUGGING VERSION OF FORTE.EXE

.TYPE DE.CMD

.DELETE DORTE.EXE
.R LINK
*@DE.CMD
.RENAME DORTE.EXE=FORTE.EXE

;	BUILD SHARABLE FORTE.EXE

.TYPE E.CMD

.R LINK
*@E.CMD
.GET FORTE
.CORE




P3RBE::

;	**********	PHASE 3R	**********	FORTF



.R BLIS10
*P3R=P3R.BLI

;	LOAD PHASE 3R

;	BUILD DEBUGGING VERSION OF FORTF.EXE

.TYPE DF.CMD

.DELETE DORTF.EXE
.R LINK
*@DF.CMD
.RENAME DORTF.EXE=FORTF.EXE

;	BUILD SHARABLE FORTF.EXE

.TYPE F.CMD

.R LINK
*@F.CMD
.GET FORTF
.CORE




P3BEG::

;	**********	PHASE 3		**********	FORTG



.R MACRO
*OPGNTA=OPGNTA.MAC

.R BLIS10
*CGDO=CGDO.BLI
*CGEXPR=CGEXPR.BLI
*CGSTMN=CGSTMN.BLI
*DEBUG=DEBUG.BLI
*ERROVG=ERROVG.BLI
*LISTOU=LISTOU.BLI
*OPTAB=OPTAB.BLI
*PEEPOP=PEEPOP.BLI
*PHA3=PHA3.BLI


P3END::

;	LOAD PHASE 3



;	BUILD DEBUGGING VERSION OF FORTG.EXE

.TYPE DG.CMD

.DELETE DORTG.EXE
.R LINK
*@DG.CMD
.RENAME DORTG.EXE=FORTG.EXE

;	BUILD FORTG.EXE

.TYPE G.CMD

.R LINK
*@G.CMD
.GET FORTG
.CORE


;	**********	MULTI-SEGMENT BUILDING PHASES COMPLETE	**********




PSNGL::

;	MAKE THE SINGLE SEGMENT TOPS-10 COMPILER



.COPY FT1SEG.BAK = FT1SEG.REQ

.COPY FT1SEG.REQ = TTY:
*GLOBAL BIND FT1SEG = 1;	! SINGLE SEGMENT
*^Z

;	RECOMPILE MAIN.BLI AS ONESEG.REL

.R BLIS10
*ONESEG=MAIN.BLI

;	CLEAN UP

.COPY FT1SEG.REQ = FT1SEG.BAK
.DELETE FT1SEG.BAK

;	BUILD SHARABLE SINGLE SEGMENT COMPILER

.TYPE ALL.CMD

.R LINK
*@ALL
.GET SINGLE
.CORE

BOTS::
CREL::

MTHLIB::

.RUN MACRO
*=M10REL.MAC,MTHPRM.MAC
*MTHTRP.REL=MTHTRP.MAC
*MTHSNG.REL=MTHSNG.MAC
*MTHDBL.REL=MTHDBL.MAC
*MTHGDB.REL=MTHGDB.MAC
*MTHCPX.REL=MTHCPX.MAC
*MTHCDX.REL=MTHCDX.MAC
*MTHCGX.REL=MTHCGX.MAC
*MTHMSG.REL=MTHMSG.MAC
*MTHDUM.REL=MTHDUM.MAC
*MTHARG.REL=MTHARG.MAC
*MTHCNV.REL=MTHCNV.MAC


; Compile FOROTS

.R MACRO
*FORPRM=F10REL.MAC,FORPRM.MAC
*FORBOT.REL=FORBOT.MAC
*FORCNV.REL=FORCNV.MAC
*FORCOM.REL=FORCOM.MAC
*FORCHR.REL=FORCHR.MAC
*FORDBM.REL=FORDBM.MAC
*FORDST.REL=FORDST.MAC
*FORDUM.REL=FORDUM.MAC
*FORERR.REL=FORERR.MAC
*FORFMT.REL=FORFMT.MAC
*FORHST.REL=FORHST.MAC
*FORINI.REL=FORINI.MAC
*FORIO.REL=FORIO.MAC
*FORMEM.REL=FORMEM.MAC
*FORMSC.REL=FORMSC.MAC
*FORMSG.REL=FORMSG.MAC
*FORNML.REL=FORNML.MAC
*FOROP.REL=FOROP.MAC
*FOROPN.REL=FOROPN.MAC
*FOROTS.REL=FOROTS.MAC
*FORPSE.REL=FORPSE.MAC
*FORPL2.REL=FORPL2.MAC
*FORRMS.REL=FORRMS.MAC
*FORRTF.REL=FORRTF.MAC
*FORSRT.REL=FORSRT.MAC
*FORXIT.REL=FORXIT.MAC

.RUN DSK:FORTRA
*FORPL1.REL=FORPL1.FOR/OPT/NOWARN:CHO
*^Z


; Create FORLIB

.TYPE F10LIB.CCL
.R MAKLIB
*@F10LIB.CCL


MFOTS::

; Create FOROTS

.TYPE F10OTS.CCL
.R LINK
*@F10OTS.CCL
.GET FORO11
.CORE


BDDT::

; Generate FORDDT for the 10

.COPY FDDT.MAC=TTY:
*	TOPS20==0	;TOPS-10
*^Z


; Build FORDDT

.R MACRO
*FORDDT=FDDT.MAC,FORDDT.MAC




;
;	If flag file FTNDBM.FLG is present on PAT:, make DBMSF.EXE and
;	DBMSF.REL for FORTRAN-10 with DBMS.
;
.ERROR %
.PRO<777>FTNDBM.FLG
.IF (ERROR) .GOTO CHECK		



;
;	The DBMS flag file was found. Build DBM/Fortran.
;
;
; These files must exist to be built into DBMSF.EXE.  Signal an
; error if these are not found.
;
.ERROR %
.DIR DBSFOR.REL, DBSANY.REL, DBS10.REL, SCHIO1.REL, FORDBM.REL

.TYPE FDBM5.CCL
.R MAKLIB
*@FDBM5.CCL

.EX FDBM5.FOR

.TYPE DBCS1F.CMD
.R LINK
*@DBCS1F

;
;See what we got
;
.DIR /CHECKSUM DBMSF.EXE



CHECK::
;
;	DELETE UNNEEDED OUTPUT FILES
;
.DELETE FORBOT.REL,FORCNV.REL,FORCOM.REL,FORCHR.REL,FORDBM.REL
.DELETE FORDST.REL,FORDUM.REL,FORERR.REL,FORFMT.REL,FORHST.REL
.DELETE FORINI.REL,FORIO.REL,FORMEM.REL,FORMSC.REL,FORMSG.REL
.DELETE FORNML.REL,FOROP.REL,FOROPN.REL,FOROTS.REL,FORPSE.REL
.DELETE FORPL2.REL,FORRMS.REL,FORRTF.REL,FORSRT.REL,FORXIT.REL
.DELETE FORPL1.REL,MTHTRP.REL,MTHSNG.REL,MTHDBL.REL
.DELETE MTHGDB.REL,MTHCPX.REL,MTHCDX.REL,MTHCGX.REL,MTHMSG.REL
.DELETE MTHDUM.REL,MTHARG.REL,MTHCNV.REL


;
;	Signal success
;
.R PEPB
*SIGNAL-SUCCESS FORTRAN-10-V11
*EXIT
.GOTO EXIT



;
;	Signal failure on error
;
%ERR:: .GOTO ERROR
%CERR::.GOTO ERROR
%TERR::.GOTO ERROR
ERROR::

.R PEPB
*SIGNAL-FAILURE FORTRAN-10-V11
*EXIT


EXIT::
%FIN::
     
;	[END OF FTN111.CTL]