TIM
.ENABLE SUBSTITUTION
.IFINS SHL REM SHL
.IFINS FEL REM FEL
.IFINS RT4 REM RT4
.IFINS CHS REM CHS
.ASKS DEV DEVICE AND UNIT FOR TOOLS SYSTEM [ DDN ]:
.SETS DISK DEV+":"
ASN 'DISK'=ST0:
.ASKS GRP GROUP FOR TOOLS SYSTEM [ OCTAL R:000-377 D:105 ]:
.IF <STRLEN> = 0 .SETS GRP "105"
.ASKS MEM MEMBER FOR TOOLS BINARY DIR [OCTAL R:001-370 D:1 ]:
.IF <STRLEN> = 0 .SETS MEM "1"
.SETN BASE 'MEM'
.SETS NBASE "'BASE'"
.SETS BIN GRP+","+NBASE
.INC BASE
.SETS NBASE "'BASE'"
.SETS USR GRP+","+NBASE
.INC BASE
.SETS NBASE "'BASE'"
.SETS TMP GRP+","+NBASE
.INC BASE
.SETS NBASE "'BASE'"
.SETS LPR GRP+","+NBASE
.INC BASE
.SETS NBASE "'BASE'"
.SETS MAL GRP+","+NBASE
.INC BASE
.SETS NBASE "'BASE'"
.SETS MAN GRP+","+NBASE
;
;	NOW CREATING NECESSARY UIC'S ON THE TARGET DISK WITH THE
;	APPROPRIATE PROTECTION
;
UFD 'DISK'['BIN']/PRO=[RWE,RWE,RE,RE]
UFD 'DISK'['USR']/PRO=[RWE,RWE,RE,RE]
UFD 'DISK'['TMP']/PRO=[RWE,RWE,RWE,RWE]
UFD 'DISK'['LPR']/PRO=[RWE,RWE,RWE,RWE]
UFD 'DISK'['MAL']/PRO=[RWE,RWE,RE,RE]
UFD 'DISK'['MAN']/PRO=[RWE,RWE,RE,RE]
ASN 'DISK'=SY0:
.ASK IFTAPE BUILDING DIRECTLY FROM DISTRIBUTION TAPE?
.IFF IFTAPE .GOTO ADISK
.ASKS IDEV TAPE DEVICE AND UNIT NUMBER [DDN]:
.IFNINS FLX INS $FLX
.GOTO START
.ADISK:
.ASKS IDEV DISK DEVICE AND UNIT NUMBER [DDN]:
.IFNINS PIP INS $PIP
.START:
.SETS TAPE IDEV+":"
.ASK COMPLR DO YOU WISH TO USE THE F4P COMPILER?
.SETS FORTRN "F4P"
.SETS FORTSW "/NOTR/NOCK/CO:19."
.IFT COMPLR .GOTO DOOTS
.SETS FORTRN "FOR"
.SETS FORTSW "/NOSN/NOVA/NOLO"
.DOOTS:
.IFNINS 'FORTRN' INS $'FORTRN'
.ASK SYSOTS IS THE FORTRAN OTS IN LB:[1,1]SYSLIB.OLB?
.SETS OTSFIL "lb:[1,1]syslib"
.IFF SYSOTS .ASKS OTSFIL FILE SPEC FOR OTS LIB [EG. LB:[1,1]F4POTS.OLB]:
.SETT FPP
.IFF COMPLR .ASK FPP DO YOU WISH THE TASKS BUILT /FP?
.SETS LDFIL "LDFP"
.IFF FPP .SETS LDFIL "LDNOFP"
.SETS FPSW "/FP"
.IFF FPP .SETS FPSW "/-FP"
.ASK FCSRES DO YOU WISH TO LINK TO AN FCS RESIDENT LIBRARY
.SETS RESLIB ";"
.IFT FCSRES .ASKS RESLIB INPUT THE NAME OF THE LIBRARY [EG. FCSRES]
;
;
;	THE FOLLOWING TWO QUESTIONS ALLOW THE USER TO CONTROL THE AMOUNT
;	OF SPACE THAT THE COMPLETED SYSTEM WILL TAKE UP ON THE TARGET DISK.
;
;	IF NONE OF THE FILES ARE DELETED DURING THE PROCESSING, THE ENTIRE
;	SYSTEM OCCUPIES ~ 8800 DISK BLOCKS.
;
;	IF THE FORTRAN AND MACRO SOURCE FILES ARE DELETED ALONG THE WAY,
;	A SAVINGS OF ~ 1100 BLOCKS ENSUES.
;
;	DELETING THE .OBJ FILES AFTER USE RESULTS IN A SAVINGS OF
;	~ 1600 BLOCKS.
;
;	DELETED		SPACE OCCUPIED
;	-------		--------------
;	 NONE               8800
;	  .F                7700
;	 .OBJ               7200
;	 BOTH		    6100
;
.ASK CLEANF DELETE THE FORTRAN AND MACRO SOURCES AS WE GO ALONG
.ASK CLEANO DELETE .OBJ FILES AS WE GO ALONG
;
;	COPY FILES FROM 'TAPE' TO BUILD SYSTEM
;
.IFF IFTAPE .GOTO 10
FLX ['BIN']/RS='TAPE'[307,31]*.*/DO
.GOTO 20
.10:
PIP ['BIN']*.*='TAPE'[307,31]*.*
.20:
.IFNINS PIP INS $PIP
;
;	ASSURE CONTIGUOUSNESS OF .TSK FILES
;
PIP ['BIN']/NV/CO=['BIN']*.TSK;1
PIP ['BIN']*.TSK/PU
PIP ['BIN']*.TSK;1=['BIN']*.TSK;*/RE
.IF GRP <> "105" .GOTO NBUILD
.IF MEM <> "1" .GOTO NBUILD
.GOTO CRUNCH
.NBUILD:
;
;	INSTALL VERSIONS OF RAT4 AND CH TO REBUILD ALL TASKS TO USE
;	['BIN'] --> ['MAN']
;
.IFINS CHS REM CHS
INS 'DISK'['BIN']CHS/TASK=...CHS
.IFINS RT4 REM RT4
INS 'DISK'['BIN']RT4/TASK=...RT4
;
;	SITEPR.R HAS RAT4 SOURCE OF ROUTINES REFERENCING [105,*].  USE CHS TO
;	CONVERT TO THE CORRECT UIC'S
;
CHS <['BIN']SITEPR.R >['BIN']TEMP1.R 105,1 'BIN'
CHS <['BIN']TEMP1.R >['BIN']TEMP2.R 105,2 'USR'
CHS <['BIN']TEMP2.R >['BIN']TEMP1.R 105,3 'TMP'
CHS <['BIN']TEMP1.R >['BIN']TEMP2.R 105,4 'LPR'
CHS <['BIN']TEMP2.R >['BIN']TEMP1.R 105,5 'MAL'
CHS <['BIN']TEMP1.R >['BIN']SITEPR.R 105,6 'MAN'
CHS <['BIN']BSPAWN.SRC >['BIN']TEMP1.R 105,1 'BIN'
CHS <['BIN']TEMP1.R >['BIN']BSPAWN.SRC 105,3 'TMP'
PIP ['BIN']TEMP1.R;*/DE,['BIN']TEMP2.R;*/DE
;
;	NOW PREPROCESS SITEPR.R TO FORTRAN
;
RT4 ['BIN']SYMBOLS ['BIN']SITEPR.R >['BIN']SITEPR.F ?NL:
REM RT4
.CRUNCH:
.IFNINS CHS INS 'DISK'['BIN']CHS/TASK=...CHS
PIP ['BIN']LD.F/NV=['BIN']'LDFIL'.F
PIP ['BIN']FC.F/NV=['BIN']FC'FORTRN'.F
.OPEN ['BIN']TOOLS.TKB
.DATA 'OTSFIL'/LB:$SHORT
.IFF SYSOTS .DATA 'OTSFIL'/LB
.DATA /
.DATA UNITS=8
.DATA ACTFIL=6
.IFT FCSRES .DATA LIBR='RESLIB':RO
.DATA //
.CLOSE
;
;	HERE IS THE TEMPLATE TKB COMMAND FILE WHICH WILL BE USED TO
;	TASK BUILD THE TOOLS
;
PIP TI:=['BIN']TOOLS.TKB
;
;
;	IT IS NOW TIME TO BUILD THE TOOLS LIBRARY
;
;	FIRST WE ASSEMBLE ALL OF THE .MAC FILES
;
.IFINS LSS REM LSS
INS ['BIN']LSS/TASK=...LSS
LSS /'BIN'/.MAC >/'BIN'/TEMP.CMD
REM LSS
CHS </'BIN'/TEMP.CMD >/'BIN'/ASSEMBLE.CMD %??*. ['BIN']&OBJ=['BIN']&
PIP TI:=['BIN']ASSEMBLE.CMD
MAC @['BIN']ASSEMBLE
PIP ['BIN']ASSEMBLE.OBS=['BIN']*.OBJ
.IFNINS LBR INS $LBR
LBR ['BIN']RLIB.OLB/CR:400.:1024.:1024.=['BIN']ASSEMBLE.OBS
PIP ['BIN']*.OBS;*/DE
.IFT CLEANF PIP ['BIN']*.MAC;*/DE
.IFT CLEANO PIP ['BIN']*.OBJ;*/DE
;
;
;	NOW COMPILE THE FORTRAN PRIMITIVE FUNCTIONS AND PLACE IN THE
;	LIBRARY
;
'FORTRN' ['BIN']OSPRIM=['BIN']OSPRIM.F'FORTSW'
'FORTRN' ['BIN']LIB=['BIN']LIB.F'FORTSW'
'FORTRN' ['BIN']SPAWN=['BIN']SPAWN.F'FORTSW'
'FORTRN' ['BIN']DIRPRIM=['BIN']DIRPRIM.F'FORTSW'
'FORTRN' ['BIN']SITEPR=['BIN']SITEPR.F'FORTSW'
LBR ['BIN']RLIB/RP=['BIN']OSPRIM,LIB,SPAWN,DIRPRIM,SITEPR
.IFT CLEANF PIP ['BIN']OSPRIM.F;*/DE,LIB.F;*,SPAWN.F;*,DIRPRIM.F;*
.IFT CLEANO PIP ['BIN']OSPRIM.OBJ;*/DE,LIB.OBJ;*,SPAWN.OBJ;*
.IFT CLEANO PIP ['BIN']DIRPRIM.OBJ;*/DE,SITEPR.OBJ;*/DE
;
;
;	NOW BUILD LD AND FC, WHICH WILL AUTOMATE THE REST OF THE SYSTEM
;	GENERATION
;
'FORTRN' ['BIN']LD=['BIN']LD.F'FORTSW'
'FORTRN' ['BIN']FC=['BIN']FC.F'FORTSW'
.IFT CLEANF PIP ['BIN']LD.F;*/DE,FC.F;*,FCFOR.F;*,FCF4P.F;*,LDFP.F;*,LDNOFP.F;*
.OPEN ['BIN']LD.TKB
.DATA ['BIN']LD.TSK/CP'FPSW'=
.DATA ['BIN']LD.OBJ
.DATA ['BIN']RLIB/LB:.MAIN.
.DATA ['BIN']RLIB/LB
.CLOSE
PIP ['BIN']LD.TKB/AP=['BIN']TOOLS.TKB
TKB @['BIN']LD.TKB
.IFINS LDS REM LDS
INS ['BIN']LD/TASK=...LDS
LDS -V ['BIN']FC
REM LDS
.IFT CLEANO PIP ['BIN']LD.OBJ;*/DE,FC.OBJ;*
.IFINS FCS REM FCS
INS ['BIN']FC/TASK=...FCS
.OPEN ['BIN']FEL.TKB
.DATA ['BIN']FEL.TSK/CP/-FP=['BIN']RLIB/LB:FEL
.DATA /
.DATA UNITS=1
.DATA TASK=...FEL
.IFT FCSRES .DATA LIBR='RESLIB':RO
.DATA //
.CLOSE
TKB @['BIN']FEL.TKB
.;.OPEN ['BIN']SHL.TKB
.;.DATA ['BIN']SHL.TSK/CP/-FP=['BIN']RLIB/LB:SHL
.;.DATA /
.;.DATA UNITS=2
.;.DATA TASK=...SHL
.;.IFT FCSRES .DATA LIBR='RESLIB':RO
.;.DATA //
.;.CLOSE
.;TKB @['BIN']SHL.TKB
;
;
;	NOW BUILD THOSE TASKS WHOSE OBJECT MODULES MUST BE PLACED
;	IN RLIB
;
;
FCS -V ['BIN']FIND.F
.IFT CLEANF PIP ['BIN']FIND.F;*/DE
LBR ['BIN']RLIB/RP=['BIN']FIND.OBJ
.IFT CLEANO PIP ['BIN']FIND.OBJ;*/DE
FCS -V ['BIN']CH.F
.IFT CLEANF PIP ['BIN']CH.F;*/DE
LBR ['BIN']RLIB/RP=['BIN']CH.OBJ
.IFT CLEANO PIP ['BIN']CH.OBJ;*/DE
FCS -V ['BIN']ED.F
.IFT CLEANF PIP ['BIN']ED.F;*/DE
LBR ['BIN']RLIB/RP=['BIN']ED.OBJ
.IFT CLEANO PIP ['BIN']ED.OBJ;*/DE
FCS -V ['BIN']RAT4.F
.IFT CLEANF PIP ['BIN']RAT4.F;*/DE
LBR ['BIN']RLIB/RP=['BIN']RAT4.OBJ
.IFT CLEANO PIP ['BIN']RAT4.OBJ;*/DE
FCS -V ['BIN']DETAB.F
.IFT CLEANF PIP ['BIN']DETAB.F;*/DE
LBR ['BIN']RLIB/RP=['BIN']DETAB.OBJ
.IFT CLEANO PIP ['BIN']DETAB.OBJ;*/DE
;
;
;	NOW BUILD ALL OF THE OTHER TASKS
;
;
fcs ['BIN']addr.f
.IFT CLEANO PIP ['BIN']addr.obj;*/DE
.IFT CLEANF PIP ['BIN']addr.f;*/DE
fcs ['BIN']alist.f
.IFT CLEANO PIP ['BIN']alist.obj;*/DE
.IFT CLEANF PIP ['BIN']alist.f;*/DE
fcs ['BIN']ar.f
.IFT CLEANO PIP ['BIN']ar.obj;*/DE
.IFT CLEANF PIP ['BIN']ar.f;*/DE
fcs ['BIN']args.f
.IFT CLEANO PIP ['BIN']args.obj;*/DE
.IFT CLEANF PIP ['BIN']args.f;*/DE
fcs ['BIN']asplit.f
.IFT CLEANO PIP ['BIN']asplit.obj;*/DE
.IFT CLEANF PIP ['BIN']asplit.f;*/DE
fcs ['BIN']cat.f
.IFT CLEANO PIP ['BIN']cat.obj;*/DE
.IFT CLEANF PIP ['BIN']cat.f;*/DE
fcs ['BIN']ccnt.f
.IFT CLEANO PIP ['BIN']ccnt.obj;*/DE
.IFT CLEANF PIP ['BIN']ccnt.f;*/DE
fcs ['BIN']cmp.f
.IFT CLEANO PIP ['BIN']cmp.obj;*/DE
.IFT CLEANF PIP ['BIN']cmp.f;*/DE
fcs ['BIN']comm.f
.IFT CLEANO PIP ['BIN']comm.obj;*/DE
.IFT CLEANF PIP ['BIN']comm.f;*/DE
fcs ['BIN']convrt.f
.IFT CLEANO PIP ['BIN']convrt.obj;*/DE
.IFT CLEANF PIP ['BIN']convrt.f;*/DE
fcs ['BIN']cpress.f
.IFT CLEANO PIP ['BIN']cpress.obj;*/DE
.IFT CLEANF PIP ['BIN']cpress.f;*/DE
fcs ['BIN']crt.f
.IFT CLEANO PIP ['BIN']crt.obj;*/DE
.IFT CLEANF PIP ['BIN']crt.f;*/DE
fcs ['BIN']crypt.f
.IFT CLEANO PIP ['BIN']crypt.obj;*/DE
.IFT CLEANF PIP ['BIN']crypt.f;*/DE
fcs ['BIN']date.f
.IFT CLEANO PIP ['BIN']date.obj;*/DE
.IFT CLEANF PIP ['BIN']date.f;*/DE
fcs ['BIN']dc.f
.IFT CLEANO PIP ['BIN']dc.obj;*/DE
.IFT CLEANF PIP ['BIN']dc.f;*/DE
fcs ['BIN']dspc.f
.IFT CLEANO PIP ['BIN']dspc.obj;*/DE
.IFT CLEANF PIP ['BIN']dspc.f;*/DE
fcs ['BIN']echo.f
.IFT CLEANO PIP ['BIN']echo.obj;*/DE
.IFT CLEANF PIP ['BIN']echo.f;*/DE
fcs ['BIN']entab.f
.IFT CLEANO PIP ['BIN']entab.obj;*/DE
.IFT CLEANF PIP ['BIN']entab.f;*/DE
fcs ['BIN']expand.f
.IFT CLEANO PIP ['BIN']expand.obj;*/DE
.IFT CLEANF PIP ['BIN']expand.f;*/DE
fcs ['BIN']fb.f
.IFT CLEANO PIP ['BIN']fb.obj;*/DE
.IFT CLEANF PIP ['BIN']fb.f;*/DE
fcs ['BIN']field.f
.IFT CLEANO PIP ['BIN']field.obj;*/DE
.IFT CLEANF PIP ['BIN']field.f;*/DE
fcs ['BIN']form.f
.IFT CLEANO PIP ['BIN']form.obj;*/DE
.IFT CLEANF PIP ['BIN']form.f;*/DE
fcs ['BIN']incl.f
.IFT CLEANO PIP ['BIN']incl.obj;*/DE
.IFT CLEANF PIP ['BIN']incl.f;*/DE
fcs ['BIN']isam.f
.IFT CLEANO PIP ['BIN']isam.obj;*/DE
.IFT CLEANF PIP ['BIN']isam.f;*/DE
fcs ['BIN']kwic.f
.IFT CLEANO PIP ['BIN']kwic.obj;*/DE
.IFT CLEANF PIP ['BIN']kwic.f;*/DE
fcs ['BIN']lam.f
.IFT CLEANO PIP ['BIN']lam.obj;*/DE
.IFT CLEANF PIP ['BIN']lam.f;*/DE
fcs ['BIN']lcnt.f
.IFT CLEANO PIP ['BIN']lcnt.obj;*/DE
.IFT CLEANF PIP ['BIN']lcnt.f;*/DE
fcs ['BIN']ll.f
.IFT CLEANO PIP ['BIN']ll.obj;*/DE
.IFT CLEANF PIP ['BIN']ll.f;*/DE
fcs ['BIN']ls.f
.IFT CLEANO PIP ['BIN']ls.obj;*/DE
.IFT CLEANF PIP ['BIN']ls.f;*/DE
fcs ['BIN']macro.f
.IFT CLEANO PIP ['BIN']macro.obj;*/DE
.IFT CLEANF PIP ['BIN']macro.f;*/DE
fcs ['BIN']mail.f
.IFT CLEANO PIP ['BIN']mail.obj;*/DE
.IFT CLEANF PIP ['BIN']mail.f;*/DE
fcs ['BIN']malfix.f
.IFT CLEANO PIP ['BIN']malfix.obj;*/DE
.IFT CLEANF PIP ['BIN']malfix.f;*/DE
fcs ['BIN']man.f
.IFT CLEANO PIP ['BIN']man.obj;*/DE
.IFT CLEANF PIP ['BIN']man.f;*/DE
fcs ['BIN']mcol.f
.IFT CLEANO PIP ['BIN']mcol.obj;*/DE
.IFT CLEANF PIP ['BIN']mcol.f;*/DE
fcs ['BIN']msg.f
.IFT CLEANO PIP ['BIN']msg.obj;*/DE
.IFT CLEANF PIP ['BIN']msg.f;*/DE
fcs ['BIN']msplit.f
.IFT CLEANO PIP ['BIN']msplit.obj;*/DE
.IFT CLEANF PIP ['BIN']msplit.f;*/DE
fcs ['BIN']os.f
.IFT CLEANO PIP ['BIN']os.obj;*/DE
.IFT CLEANF PIP ['BIN']os.f;*/DE
fcs ['BIN']pack.f
.IFT CLEANO PIP ['BIN']pack.obj;*/DE
.IFT CLEANF PIP ['BIN']pack.f;*/DE
fcs ['BIN']pl.f
.IFT CLEANO PIP ['BIN']pl.obj;*/DE
.IFT CLEANF PIP ['BIN']pl.f;*/DE
fcs ['BIN']postmn.f
.IFT CLEANO PIP ['BIN']postmn.obj;*/DE
.IFT CLEANF PIP ['BIN']postmn.f;*/DE
fcs ['BIN']pr.f
.IFT CLEANO PIP ['BIN']pr.obj;*/DE
.IFT CLEANF PIP ['BIN']pr.f;*/DE
fcs ['BIN']pwd.f
.IFT CLEANO PIP ['BIN']pwd.obj;*/DE
.IFT CLEANF PIP ['BIN']pwd.f;*/DE
fcs ['BIN']rc.f
.IFT CLEANO PIP ['BIN']rc.obj;*/DE
.IFT CLEANF PIP ['BIN']rc.f;*/DE
fcs ['BIN']resolve.f
.IFT CLEANO PIP ['BIN']resolve.obj;*/DE
.IFT CLEANF PIP ['BIN']resolve.f;*/DE
fcs ['BIN']rev.f
.IFT CLEANO PIP ['BIN']rev.obj;*/DE
.IFT CLEANF PIP ['BIN']rev.f;*/DE
fcs ['BIN']rm.f
.IFT CLEANO PIP ['BIN']rm.obj;*/DE
.IFT CLEANF PIP ['BIN']rm.f;*/DE
fcs ['BIN']roff.f
.IFT CLEANO PIP ['BIN']roff.obj;*/DE
.IFT CLEANF PIP ['BIN']roff.f;*/DE
fcs ['BIN']ruler.f
.IFT CLEANO PIP ['BIN']ruler.obj;*/DE
.IFT CLEANF PIP ['BIN']ruler.f;*/DE
fcs ['BIN']sedit.f
.IFT CLEANO PIP ['BIN']sedit.obj;*/DE
.IFT CLEANF PIP ['BIN']sedit.f;*/DE
fcs ['BIN']sh.f
.IFT CLEANO PIP ['BIN']sh.obj;*/DE
.IFT CLEANF PIP ['BIN']sh.f;*/DE
fcs ['BIN']sndmsg.f
.IFT CLEANO PIP ['BIN']sndmsg.obj;*/DE
.IFT CLEANF PIP ['BIN']sndmsg.f;*/DE
fcs ['BIN']sort.f
.IFT CLEANO PIP ['BIN']sort.obj;*/DE
.IFT CLEANF PIP ['BIN']sort.f;*/DE
fcs ['BIN']spell.f
.IFT CLEANO PIP ['BIN']spell.obj;*/DE
.IFT CLEANF PIP ['BIN']spell.f;*/DE
fcs ['BIN']split.f
.IFT CLEANO PIP ['BIN']split.obj;*/DE
.IFT CLEANF PIP ['BIN']split.f;*/DE
fcs ['BIN']tail.f
.IFT CLEANO PIP ['BIN']tail.obj;*/DE
.IFT CLEANF PIP ['BIN']tail.f;*/DE
fcs ['BIN']tee.f
.IFT CLEANO PIP ['BIN']tee.obj;*/DE
.IFT CLEANF PIP ['BIN']tee.f;*/DE
fcs ['BIN']tr.f
.IFT CLEANO PIP ['BIN']tr.obj;*/DE
.IFT CLEANF PIP ['BIN']tr.f;*/DE
fcs ['BIN']tsort.f
.IFT CLEANO PIP ['BIN']tsort.obj;*/DE
.IFT CLEANF PIP ['BIN']tsort.f;*/DE
fcs ['BIN']uniq.f
.IFT CLEANO PIP ['BIN']uniq.obj;*/DE
.IFT CLEANF PIP ['BIN']uniq.f;*/DE
fcs ['BIN']unrot.f
.IFT CLEANO PIP ['BIN']unrot.obj;*/DE
.IFT CLEANF PIP ['BIN']unrot.f;*/DE
fcs ['BIN']users.f
.IFT CLEANO PIP ['BIN']users.obj;*/DE
.IFT CLEANF PIP ['BIN']users.f;*/DE
fcs ['BIN']wc.f
.IFT CLEANO PIP ['BIN']wc.obj;*/DE
.IFT CLEANF PIP ['BIN']wc.f;*/DE
fcs ['BIN']wcnt.f
.IFT CLEANO PIP ['BIN']wcnt.obj;*/DE
.IFT CLEANF PIP ['BIN']wcnt.f;*/DE
fcs ['BIN']xref.f
.IFT CLEANO PIP ['BIN']xref.obj;*/DE
.IFT CLEANF PIP ['BIN']xref.f;*/DE
REM FCS
.IFINS SHL REM SHL
INS ['BIN']SH/TASK=...SHL
;
;	NOW FIXUP THOSE SCRIPT FILES WITH [105,*] REFERENCES
;
SHL -X ['BIN']FIXUP 'BIN' 'TMP'
PIP ['MAL']*.*/NV=['BIN']MSGHLP.
PIP ['BIN']*.*/PR/WO:RE/FO
;
;	FIXUP THOSE FILES NEEDING TO KNOW THE VALUE OF ST0:
;
SHL -X ['BIN']MFIXUP 'DISK'
;
;
;	now build index to dictionary for spell tool
;
;
SHL -C "ISAM -D20 <~BIN/DICT >~BIN/DICTDX"
;
;
;	NOW BUILD DOCUMENTATION DIRECTORY ['MAN']
;
;
.IFF IFTAPE .GOTO 50
FLX ['MAN']/RS='TAPE'[307,32]*.*/DO
.GOTO 60
.50:
PIP ['MAN']*.*/NV='TAPE'[307,32]*.*
.60:
PIP ['MAN']*.*/PR/WO:RE/FO
;
;	NOW SET UIC TO [1,1] 
;
SET /UIC=[1,1]
;
;	THE NEXT FEW LINES BUILD THE MAIL SYSTEM.  ADDR READS 
;	LB0:[0,0]RSX11.SYS AND GENERATES THE MAIL DATABASE FILE ON
;	ST0:['MAL']ADDRESS
;
;	WE THEN SORT THE DATABASE FILE
;
;	MYMAIL.BLD GENERATES AN MCR COMMAND FILE TO PLACE A DUMMY VERSION
;	OF MYMAIL. IN EACH ACCOUNTS HOME DIRECTORY WITH THE APPROPRIATE
;	PROTECTION.
;
SHL -C "ADDR | SORT +O'DISK'['MAL']ADDRESS"
PIP 'DISK'['MAL']*.*/PR/WO:RE/FO
SHL -V 'DISK'['BIN']MYMAIL.BLD
@'DISK'['BIN']MYMAIL.CMD
.;PIP 'DISK'['BIN']MYMAIL.CMD;*/DE/NM
;
;	NOW REMOVE ALL INSTALLED TOOLS
;
.IFINS SHL REM ...SHL
.IFINS CHS REM ...CHS
.IFINS FEL REM ...FEL
PIP ST0:['BIN']RT4.TSK;*/DE,CHS.TSK;*,LSS.TSK;*
ASN =ST0:
;
;
;	HERE IS A LISTING OF THE SUGGESTED TOOLS SPECIFIC STARTUP
;
;	THIS FILE WAS COPIED TO LB0:[1,2] ON THE AUTHORS MACHINE
;	AND STARTUP.CMD HAD THE FOLLOWING LINE ADDED
;
;	@LB0:[1,2]TOOLS
;
;
PIP TI:='DISK'['BIN']TOOLS.CMD
;
;	THE SUGGESTED PROCEDURE FROM HERE IS AS FOLLOWS
;
;	>@'DISK'['BIN']TOOLS		! GET TOOLS RUNNING NOW
;	>SET /UIC=[1,2]
;	>PIP *.*/NV='DISK'['BIN']TOOLS.CMD	! COPY STARTUP FILE TO [1,2]
;	>NOW EDIT STARTUP.CMD TO INVOKE  @LB0:[1,2]TOOLS
;
;
;	IF YOU WISH TO SUPPORT BACKGROUND PROCESSING FROM THE SHELL,
;	IT WILL BE NECESSARY FOR YOU TO RUN A SEPARATE COMMAND FILE
;	NOW.  SIMPLY TYPE
;
;	>@'DISK'['BIN']BSPBLD
;
;	AT THE COMPLETION OF THIS COMMAND FILE
;
TIM
