.ENABLE QUIET
.ENABLE SUBSTITUTION
.DISABLE LOWERCASE
.SETT BSTP
.SETF MRTN
.SETF MLST
.SETF CKPT
.SETS RESN ""
.SETF FPPR
.SETS EACD ""
.SETS LDEV ""
.SETS IFEX ""
.SETS WKBK "/NOSN"
.SETS SYLB ""
.SETS TSTR ""
.SETS MACS ""
.SETS FPPS ""
.SETS CKPS "/-CP"
;
;
;                           IFTRAN V02.01
;                       TASKBUILD COMMAND FILE
;
;
; This command file will lead you through the building of  the  IFTRAN
;  precompiler.  Before you continue, the IFTRAN source files from the
;  distribution  kit  must  be loaded into this UIC.  In addition, the
;  boot version of the IFTRAN precompiler must have  been  built,  and
;  IFTran,  MACro,  FORtran,  PIP and TKB must be installed.  If these
;  conditions are not met, this file will abort,  as  the  precompiler
;  cannot be built otherwise.
;
.ASK FILS Are the required files loaded into this UIC
.IFT FILS .GOTO TASKS
;
; You cannot build the precompiler without the  source  files,  unless
;  you know something I don't.  Load the files and try again.
;
.STOP
.TASKS: .ASK TSKS Are the required tasks installed
.IFT TSKS .GOTO TCHEK
;
; You cannot build the precompiler  without  the  necessary  tasks  to
;  create it, so far as I know.  Install the tasks and try again.
;
.STOP
.TCHEK:
.; It's not that we don't believe him, but ...
.SETS NTSK "IFTran"
.IFNINS IFT .GOTO NTSKS
.SETS NTSK "MACro"
.IFNINS MAC .GOTO NTSKS
.SETS NTSK "FORtran"
.IFNINS FOR .GOTO NTSKS
.SETS NTSK "PIP"
.IFNINS PIP .GOTO NTSKS
.SETS NTSK "TKB"
.IFNINS TKB .GOTO NTSKS
.; OK, all tasks installed
.GOTO OPTNS
.NTSKS:
;
; Programmer speak with forked tongue.  Task 'NTSK' is not  installed.
;  Install it and try again.
;
.STOP
.OPTNS:
;
;
; TASKBUILD OPTION SELECTION
;
;
; The  IFTRAN  precompiler can be built using the bootstrap version on
;  the distribution kit which accepts all  80  columns  as  input,  or
;  using  itself,  in  which  case  you  not  only  must have built it
;  previously, but must use the /EX option due to  extended  lines  in
;  some of the source code.
;
.ASK BSTP Are you using the bootstrap version of IFTRAN
;
;
; The IFTRAN precompiler can be built using MACRO routines to  replace
;  some  of the original IFTRAN subroutines and functions.  While this
;  is highly recommended to save time, memory and disk,  if  you  feel
;  uncomfortable  about  it  (or  cannot  get it to build and run when
;  using them) you may substitute the original IFTRAN routines for the
;  MACRO routines.
;
.ASK MRTN Do you want to include the MACRO routines
;
; The IFTRAN precompiler is somewhat of a system hog  when  executing.
;  If  your  system  supports checkpointing, you may well want to make
;  it non-checkpointable so that it does not swap in  and  out  often.
;  The choice, however, is yours.
;
.ASK CKPT Do you want to make the task checkpointable
;
; We find that a run priority of 49. offers good results in  terms  of
;  time/memory  sharing  with  other tasks.  This will be dependent on
;  how much you use the precompiler and what priority you put on  fast
;  turnaround, so you will have to choose your own.
;
.ASKN [45.:65.:49.] DPRI What run priority do you want for the task
;
; The IFTRAN code has been extensively debugged at the  University  of
;  Wisconsin  on  the  Harris  Datacraft  computer;  however,  in this
;  incarnation, it is not guaranteed to be bugproof or crashproof.  It
;  is  possible  to  overflow  certain  internal  tables  in extensive
;  programs.  Additionally, to save space, the  short  error  messages
;  are  normally  loaded.   For  this  reason,  you  now may force the
;  inclusion of sequence numbers and long error messages in the task.
;
.ASK DEBG Do you want long error messages and walkbacks included
;
; If you have a resident  FORTRAN  or  FCS  library,  it  is  strongly
;  recommended that you use it.
;
.ASK RESL Do you have a resident FORTRAN or FCS library
.IFF RESL .GOTO FPPCK
.ASKS RESN What is the name of the resident library
.FPPCK:
;
.ASK FPPR Does your system have a floating point processor
.TCODE:
;
; Of the four types of code available from FORTRAN, the EIS option  or
;  the  FIS  option  are recommended.  THReaded code will take a long,
;  long time to execute.  EAE code is, of course, also very good.
;
.ASKS CODE What type of code do you want generated by FORTRAN
.IF CODE EQ "EIS" .GOTO OPTNS1
.IF CODE EQ "FIS" .IFT FPPR  .GOTO OPTNS1
.IF CODE EQ "FIS" .GOTO NOWAY
.IF CODE EQ "THR" .GOTO OPTNS1
.IF CODE EQ "EAE" .GOTO OPTNS1
;
; I have never seen a DEC FORTRAN compiler which put out 'CODE' code.
;  Try again.
.GOTO TCODE
.NOWAY:
;
; You can't use FIS code without a floating point processor, cretin!
;  Try again.
.GOTO TCODE
.OPTNS1:
;
.ASK ILST Do you want IFTRAN to list the source code
;
.ASK FLST Do you want FORTRAN to list the synthetic source code
.IFF MRTN .GOTO OPTNS2
;
.ASK MLST Do you want MACRO to list the source code
.OPTNS2:
;
.ASK TMAP Do you want TKB to produce a map
.IFF ILST .IFF FLST .IFF MLST .IFF TMAP .GOTO RECAP
;
.ASKS LDEV Device for source / map outputs [ddn:]
.RECAP:
;
;
; TASKBUILD OPTIONS IN EFFECT
;
;
.ENABLE LOWERCASE
.SETS STRN "bootstrap"
.IFF BSTP .SETS STRN "V02.01"
; Precompilation will be done using 'STRN' IFTRAN
;
.SETS STRN ""
.IFF MRTN .SETS STRN "not "
; MACRO routines will 'STRN'be included
;
.SETS STRN ""
.IFF CKPT .SETS STRN "not "
; Task will 'STRN'be built as checkpointable
;
; Default run priority will be 'DPRI'
;
.SETS STRN ""
.IFF DEBG .SETS STRN "not "
; Long error messages and walkbacks will 'STRN'be included
;
.SETS STRN ""
.IFF RESL .SETS STRN "out"
; Task will be built with'STRN' a resident library 'RESN'
;
.SETS STRN "does not have "
.IFT FPPR "has "
; Target system 'STRN'a floating point processor
;
; FORTRAN object modules will be of 'CODE' type code
.IFF ILST .IFF FLST .IFF MLST .IFF TMAP .GOTO READY
;
; The source / map listing device will be 'LDEV'
.IFF ILST .GOTO RECAP1
;
; A listing of the IFTRAN source will be produced
.RECAP1:
.IFF FLST .GOTO RECAP2
;
; A listing of the synthetic source code will be produced
.RECAP2:
.IFF MLST .GOTO RECAP3
;
; A listing of the MACRO routines will be produced
.RECAP3:
.IFF TMAP .GOTO READY
;
; A map will be produced by the task builder
.READY:
;
;
.DISABLE LOWERCASE
.ASK OKAY Are you satisfied with these options as listed
.IFF OKAY .GOTO OPTNS
;
;
;               THUS SAITH THE IMPLEMENTER:
;
; The building of the precompiler is now fully automatic.  You have
;  ten minutes or so to go get a Coke and something to munch. (More
;  if you are listing code or maps on your terminal.)
;
;
; IFTRAN SOURCE FILE PRODUCTION PHASE AT '<TIME>'
;
;
PIP IFT2.MAP;*,IFTRAN.TSK;*/NM/DE
PIP IFT2.IFT=IFTMAIN.IFT,GETFOR.IFT,PTAB.IFT,DECIDE.IFT,TOKEN.IFT/ME
.SETS STRN ""
.IFF MRTN .SETS STRN ",IFTSUBS.IFT"
PIP IFT2.IFT=PUTFOR.IFT'STRN',PAGEBK.IFT,ERRORS.IFT/AP
;
;
; IFTRAN TO SYNTHETIC CODE TRANSLATION PHASE AT '<TIME>'
;
;
.IFF BSTP .SETS IFEX "/EX"
.IFF ILST IFTRAN IFT2.FTN=IFT2.IFT'IFEX'
.IFT ILST IFTRAN IFT2.FTN,'LDEV'IFT2.LST=IFT2.IFT'IFEX'
PIP IFT2.IFT;*/NM/DE
.IFF MRTN .GOTO FORIT
;
;
; MACRO SUBROUTINES ASSEMBLY PHASE AT '<TIME>'
;
;
.IFF MLST MACRO MACSUBS.OBJ=MACSUBS.MAC
.IFT MLST MACRO MACSUBS.OBJ,'LDEV'MACSUBS.LST=MACSUBS.MAC
.FORIT:
;
;
; FORTRAN COMPILATION OF SYNTHETIC CODE PHASE AT '<TIME>'
;
;
.IFT DEBG .SETS WKBK "/SN"
.IFF FLST FORTRAN IFT2.OBJ=IFT2.FTN/CD:'CODE''WKBK'
.IFT FLST FORTRAN IFT2.OBJ,'LDEV'IFT2.LST=IFT2.FTN/CD:'CODE''WKBK'
PIP IFT2.FTN;*/NM/DE
;
;
; TASKBUILD PHASE AT '<TIME>'
;
;
.IFF RESL .IFF DEBG .SETS SYLB ",[1,1]SYSLIB/LB:$SHORT"
.IFT TMAP .SETS TSTR ","+LDEV+"IFTRAN.MAP"
.IFT MRTN .SETS MACS ",MACSUBS"
.IFT FPPR .SETS FPPS "/FP"
.IFT CKPT .SETS CKPS "/CP"
.IF CODE EQ "EAE" .SETS EACD "/EA"
.OPEN IFT2.CMD
.DATA IFTRAN.TSK'CKPS''EACD''FPPS''TSTR'=IFT2'MACS''SYLB'
; TKB IFTRAN.TSK'CKPS''EACD''FPPS''TSTR'=IFT2'MACS''SYLB'
.DATA /
; /
.DATA TASK=...IFT
; TASK=...IFT
.DATA PRI='DPRI'
; PRI='DPRI'
.DATA UNITS=5
; UNITS=5
.DATA ACTFIL=4
; ACTFIL=4
.DATA UIC=[1,54]
; UIC=[1,54]
.IFF RESL .GOTO TKB1
.DATA LIBR='RESN':RO
; LIBR='RESN':RO
.TKB1:
.DATA //
; //
.CLOSE IFT2.CMD
TKB @IFT2
;
;
; CLEANUP PHASE AT '<TIME>'
;
;
PIP IFT2.CMD;*,IFT2.OBJ;*,MACSUBS.OBJ;*/NM/DE
;
;
; Your new IFTRAN precompiler is now ready to install.
;
;
; END OF UW IFTRAN GENERATION AT '<TIME>'
;
;
