NetBSD/vax (
makoto.umtec.com) (console)
login: root
Password:
Last login: Wed Jan 7 17:31:15 on console
Jan 8 14:10:57 makoto login: ROOT LOGIN (root) ON console
Jan 8 14:10:57 makoto login: ROOT LOGIN (root) ON console
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
NetBSD 1.3_ALPHA (GENERIC) #3: Sun Nov 9 18:38:01 PST 1997
Welcome to NetBSD!
Terminal type? [unknown] vt100
Don't login as root, use the su command.
makoto# telnet
minako.umtec.com
Trying 198.199.189.71...
Connected to
minako.umtec.com.
Escape character is '^]'.
VAX/VMS 5.5 on node MINAKO
DEC MicroVAX 3100 - KA41-D CPU, 36Meg RAM, 760Meg Online Storage
This is a private system. Unauthorized use
is discouraged. With a blunt object.
Username: SYSTEM
Password:
Welcome to VAX/VMS V5.5
Last interactive login on Saturday, 28-FEB-1998 19:41
Last non-interactive login on Friday, 11-FEB-1994 17:05
$ type
SYS$UPDATE:STABACKIT.COM
$ ! IDENT X-94 'f$verif
y(0)
$ !
$ !
$!***************************************************************************
$!* *
$!* COPYRIGHT (c) 1987, 1990, 1991 BY *
$!* DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS. *
$!* ALL RIGHTS RESERVED. *
$!* *
$!* 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. *
$!* *
$!* *
$!***************************************************************************
$ !
$ !++
$ ! Facility: System management <SYSUPD> -- Build a standalone kit
$ !
$ ! Module: STABACKIT
$ !
$ ! Abstract: This command procedure builds the standalone VMS system kit
$ ! for BACKUP and BAD. (S/A BAD not supported for V5.0) !*bad*
$ !
$ ! Inputs: P1 - Target device
$ ! P2 - Target directory, defaults to <SYS0.SYSEXE>. If target
$ ! device is SYS$SYSDEVICE:, the directory is forced to
$ ! <SYSE.SYSEXE> and the <SYSE> directory will be given
$ ! a SYSCOMMON root which points to common system files
$ ! (i.e. points to SYS$TOPSYS for normal systems and to
$ ! existing SYSCOMMON for shared system disks). Forced to
$ ! <SYS0.SYSEXE> for small media.
$ ! P3 - Source device and directory, defaults to SYS$SYSROOT:<SYSEX
E>
$ ! P4 - Application kit type, one of [BACKUP, BAD] (Forced to
$ ! BACKUP for V5.0) !*bad*
$ ! P5 - If run from VMSKITBLD, do not INITIALIZE tape or large disk
.
$ ! This parameter is unsupported, for internal use only.
$ !
$ ! Privileges required: SETPRV
$ ! Write access to SYS$UPDATE is also required.
$ !
$ ! Author: CW Hobbs (complete rewrite of V3 version)
$ !
$ ! Created: 28-Oct-1983
$ !
$ ! Modified by:
$ !
$ ! X-94 CTK004 Carl Kunkel 01-Oct-1991
$ ! Raise LOCKIDTBL to 127 reflecting the new SYSGEN minimum value.
$ !
$ ! X-93 CTK003 Carl Kunkel 23-Sep-1991
$ ! Raise NPAGEVIR for Magetape Boot only. New configurations
$ ! potentially can eat significantly into pool.
$ ! Keep NPAGEDYN small so small configurations do not break.
$ !
$ ! X-92 DDG066 Dean D. GAgne 05-Apr-1991
$ ! The ISL files require a file in the MFD and there is no
$ ! mechanism to copy a file to the MFD so this has to be done as a
$ ! separate file. The ISL files also have to have a unique name
$ ! for each Version of VMS so the Version of VMS will be appended
$ ! to the end of the current ISL filenames.
$ !
$ ! Also added TZK11 tape support.
$ !
$ ! X-91 JSSTU0019 John S. Simakauskas 5-Apr-1991
$ ! Modify mount command for TF85 to use cacheing.
$ ! MOUNT /CACHE=TAPE_DATA
$ !
$ ! X-90 CTK002 Carl Kunkel 04-Apr-1991
$ ! The RA60 user disk kit would not boot after the TF85 device spec
ific support was added.
$ ! The RA60 kit failed because the RA60 and TF85 share the same dev
ice type code, # 22.
$ ! The problem resolution requires:
$ ! 1) TF85 code to check both the device type and device class code
s.
$ !
$ ! X-89 CTK001 Carl Kunkel 25-Feb-1991
$ ! The VAX 11/780 RX0X kit will not build or boot.
$ ! The problem resolution requires:
$ ! 1) Setting the disk overhead slop value for the RX0X case to the
correct size, which is zero.
$ ! 2) Clearing the file count size and total size fields in the vol
ume switch code.
$ ! 3) In the RX01 case force a volume switch before the CPULOA/SYSI
NIT/STANDCONF files.
$ !
$ ! X-76 MCY005 Mary Yuryan 18-Feb-1991
$ ! Fix Device Symbol table lengths. The "and/or" limit
$ ! of 10 was exceeded.
$ !
$ ! X-75 MCY004 Mary Yuryan 14-Feb-1991
$ ! Add TZ85, TZ86, TZ87 SCSI tape support.
$ !
$ ! X-74 MCY003 Mary Yuryan 5-Feb-1991
$ ! Add TSZ07 & TLZ06 support.
$ !
$ ! X-73U12 JSSTU0004 John S. Simakauskas 19-Dec-1990
$ ! Mickey Lane 6-Aug-1990
$ ! Added TF85 support
$ !
$ ! X-73U11 KDS Ken Stumpf 5-Jul-1990
$ ! Change text to state 6 floppies are required, not 5.
$ !
$ ! X-73U10 EAD0001 Elliott A. Drayton 28-Jun-1990
$ ! Change invalid expression .NEQ. to .NE. near label
$ ! STA1$GET_ANOTHER_FILE.
$ !
$ ! X-73U9 KAB0041 Karen Barth 27-Jun-1990
$ ! Add the capability to parse a file with a .SYS
$ ! extension.
$ !
$ ! X-73U8 KGW0207 Keith Walls 18-Jun-1990 16:50
$ ! Raise NPAGEDYN for tape boot (again).
$ !
$ ! X-73U7 KAB0040 Karen Barth 6-Jun-1990
$ ! Change device code for TF70 from 18 to 23. Raise
$ ! GBLSECTIONS to the new minimum value of 60, to get
$ ! rid of informational message.
$ !
$ ! X-73U6 JAY0005 John A. Ywoskus 23-Apr-1990
$ ! Print out "it may take as long as 15 minutes to copy
$ ! the standalone BACKUP image to the console disk" for
$ ! the VAX 9000.
$ !
$ ! X-73U5 KAB0039 Karen Barth 19-Apr-1990
$ ! Fix undefined symbol.
$ !
$ ! X-73U4 CDO0001 Chuck O'Toole 02-Apr-1990
$ ! Add TF70 tape support.
$ !
$ ! X-73U3 JAY0004 John A. Ywoskus 01-Apr-1990
$ ! Raise NPAGEDYN and NPAGEVIR for Aquarius only, as
$ ! the potentially large I/O configurations can eat
$ ! significantly into pool.
$ !
$ ! X-73U2 MCY002 Mary Yuryan 29-Mar-1990
$ ! Add TZK10 (QIC) tape support.
$ !
$ ! X-73U1 KAB0038 Karen Barth 21-Feb-1990
$ ! Fix undefined symbol.
$ !
$ ! X-73 JAY0003 John A. Ywoskus 13-Jan-1990
$ ! Look for PSEUDOLOA.EXE in SYS$LOADABLE_IMAGES for
$ ! the DISK_IMAGE kit, not SYS$SYSTEM.
$ !
$ ! X-72 MCY001 Mary Yuryan 22-Dec-1989
$ ! Add TLZ04 (RDAT) tape support.
$ !
$ ! X-71 JAY0001 John A. Ywoskus 28-Nov-1989
$ ! Minor bugfixes to Aquarius support.
$ !
$ ! X-70 KAB0037 Karen Barth 8-Nov-1989
$ ! Merge TU58 fix from V5.3-1.
$ !
$ ! X-69 KAB0036 Karen Barth 13-Oct-1989
$ ! Add/merge Aquarius support.
$ ! Set PAGFILCNT to new minimum of 4.
$ !
$ ! X-68 HH0380 Hai Huang 23-Aug-1989
$ ! Set VECTOR_PROCessing SYSGEN parameter to 0 to disable
$ ! vector processing, so the VECTOR_PROCESSING.EXE image
$ ! can be omitted from the standlone backup kit.
$ !
$ ! X-67 KAB0035 Karen Barth 1-Jun-1989
$ ! Add support for TZ30 with new device code.
$ !
$ ! X-66 KAB0034 Karen Barth 12-Apr-1989
$ ! Raise TAPE_NPAGEDYN to 800000, allow PHYSICALPAGES
$ ! to be set to the default.
$ !
$ ! X-65 KAB0033 Karen Barth 8-Mar-1989
$ ! Fix errors in cleanup code.
$ !
$ ! X-64 KAB0032 Karen Barth 21-Feb-1989
$ ! Add P5 for VMS kit building.
$ !
$ ! X-63 KAB0031 Karen Barth 17-Feb-1989
$ ! Fix EOVMS.NUL problem.
$ !
$ ! X-62 KAB0030 Karen Barth 16-Jan-1989
$ ! Update media_count for RX33. Nullify any previous
$ ! definitions of DELETE.
$ !
$ ! X-61 KAB0029 Karen Barth 13-Jan-1989
$ ! Fix RX33 kit build.
$ !
$ ! X-60 KAB0028 Karen Barth 6-Jan-1989
$ ! Raise NPAGEDYN for tape kit. Fix a bug in the system
$ ! kit build.
$ !
$ ! X-59 KAB0027 Karen Barth 2-Dec-1988
$ ! Make changes to support new booting rules for small
$ ! console kits. This involves keeping CPULOA,
$ ! STASYSGEN (alias SYSINIT) and STANDCONF together,
$ ! and keeping all the drivers on the following volume.
$ ! Make the RX33 a small console kit.
$ ! Back out part of X-56.
$ !
$ ! X-58 KAB0026 Karen Barth 28-Oct-1988
$ ! Change a .NES. to .EQS., fix up an old area that
$ ! didn't have error and control Y handling, fix
$ ! some error handling that never worked, re-do an
$ ! old workaround for DEALLOCATE, add SYSPRV and
$ ! create a symbol for the tape value for NPAGEDYN.
$ !
$ ! X-57 KAB0025 Karen Barth 05-Oct-1988
$ ! Major rewrite of V5.0 version. Mainly make it table
$ ! driven. Table is STABACKIT-TABLE.DAT. Also make
$ ! more of the three kit build procedures into common
$ ! code, replace as many GOTO constructs as possible
$ ! with IF-THEN and IF-THEN-ELSE blocks. Merge
$ ! Mayfair II files into table. Take out some never-
$ ! referenced labels and routines. Replace all
$ ! F$LOGICAL with F$TRNLNM, get rid of references to
$ ! copyif_warnings and copyif, and use ORs and ANDs
$ ! to make some of the assignment statements easier
$ ! to read.
$ !
$ ! X-56 KAB0024 Karen Barth 8-Sept-1988
$ ! Add the parameter SA_APP, and delete the now
$ ! unneccessary setting of WSMAX, PHYSICALPAGES,
$ ! and all the PQL parameters.
$ !
$ ! X-55 MAS Mary A. Sullivan 31-Aug-1988
$ ! Merge the following 5.0-3 change:
$ !
$ ! X-50U1 RNG00MF2 Rod Gamache 27-Apr-1988
$ ! Add Mayfair II support.
$ !
$ ! X-54 KAB0023 Karen Barth 28-Jun-1988
$ ! Add $DECK and $EOD around SETSIZE to make it diet proof.
$ !
$ ! X-53 KAB0022 Karen Barth 7-June-1988
$ ! Increased NPAGEDYN to 300032 for all disk kits.
$ ! The previous value was too low to boot Calypso
$ ! from a disk.
$ !
$ ! X-52 KAB0021 Karen Barth 31-May-1988
$ ! Replace LMF$GROUP_TABLE.EXE with a stub.
$ !
$ ! X-51 KAB0020 Karen Barth 17-May-1988
$ ! Set SETTIME for all kits.
$ ! Exclude SYSLOA9CC.EXE from the RX33 kit.
$ !
$ ! X-50 KAB0019 Karen Barth 20-Apr-1988
$ ! Fix deletion of VAXVMSSYS.PAR on error cleanup. Bug
$ ! introduced in SLT0001.
$ ! As a workaround for another problem which could, if
$ ! the system crashes, cause a standalone backup
$ ! VAXVMSSYS.PAR to be on the system disk, set the
$ ! default directory to be SYS$MANAGER. This way,
$ ! any temporary files that remain after a crash
$ ! won't hurt anyone. Introduced same as above.
$ !
$ ! X-49 KAB0018 Karen Barth 06-Apr-1988
$ ! Add LPDRIVER to the tape kit.
$ !
$ ! X-48 KAB0017 Karen Barth 01-Apr-1988
$ ! Raise NPAGEVIR to 1000000, to allow pool expansion
$ ! when booting. The problem that this fixes is that
$ ! CI based Calypso's are not given enough pool to
$ ! configure all their devices.
$ !
$ ! X-47 KAB0016 Karen Barth 31-Mar-1988
$ ! Add LIDRIVER to the tape kit.
$ !
$ ! X-46 KAB0015 Karen Barth 24-Feb-1988
$ ! Move LOCKING.EXE to the third system volume on TU58
$ ! kit to make space on second volume.
$ !
$ ! X-45 KAB0014 Karen Barth 05-Feb-1988
$ ! Add percent sign to symbol deletion message.
$ !
$ ! X-44 KAB0013 Karen Barth 14-Jan-1988
$ ! Adjust switch_volume on TU58 kit.
$ !
$ ! X-43 KAB0012 Karen Barth 11-Jan-1988
$ ! Increase NPAGDYN on tape kit.
$ !
$ ! X-42 KAB0011 Karen Barth 07-Jan-1988
$ ! Add STANDCONF.EXE to the tape kit to support TK50s on
$ ! CI based Calypso/CVAX systems.
$ !
$ !
$ ! X-41 KAB0010 Karen Barth 06-Jan-1988
$ ! Fix TK50 kit. Needed an exit, to get around error handling
$ ! code for analyze/media in the subroutine SWITCH_VOLUME.
$ !
$ ! X-40 RKK0019 Robert K. Kosakowski 05-JAN-1988 13:25
$ ! Fix positioning of SYSLICENSE.EXE so that we could move
$ ! LMF$GROUP_TABLE.EXE back to the third volume. I moved
$ ! SYSLICENSE from volume four to volume three and positioned
$ ! it in front of LMF$GROUP_TABLE.
$ ! Added LIDRIVER to the list of line printer drivers loaded.
$ !
$ ! X-39 RKK0018 Robert K. Kosakowski 31-DEC-1987 10:25
$ ! Fix the positioning of file LMF$GROUP_TABLE.EXE for the media
$ ! RX0x and TU58. Move them from the third volume to the fourth.
$ !
$ ! X-38 KAB0009 Karen Barth 22-Dec-1987
$ ! Took out the phy_io workaround running SETSIZE (X-28)
$ ! and added PHY_IO to the required set of privileges.
$ !
$ ! X-37 KAB0008 Karen Barth 21-Dec-1987
$ ! Set the SYSGEN parameters PQL_MWSDEFAULT, PQL_MWSEXTENT
$ ! and PQL_MWSQUOTA to 2048, to match the defaults.
$ ! This fixes a problem that causes an ACCVIO when
$ ! running S/A BACKUP.
$ !
$ ! X-36 KAB0007 Karen Barth 04-Dec-1987
$ ! Add TSV05 support.
$ ! Clean up the indentation on the copy commands.
$ !
$ ! X-35 KAB0006 Karen Barth 01-Dec-1987
$ ! Removed SYSLOA65W from all kits because a decision
$ ! was made not to support it.
$ !
$ ! X-34 KAB0005 Karen Barth 17-Nov-1987
$ ! Add LMF$GROUP_TABLE.EXE to all kits. This is
$ ! necessary for the kits to boot on systems with LMF.
$ ! We intend to replace this with just a stub eventually
$ ! because licensing is not needed to run Standalone
$ ! Backup and this file is expected to grow quite large.
$ ! Add CPULOA.EXE to all kits. This is also necessary for
$ ! booting because of licensing.
$ ! Add PADRIVER to the tape kit because Calypso needs it.
$ ! Adjusted error path and message to reflect the proper
$ ! value for POOL_REQ. This was stopping the tape kit
$ ! from building with PADRIVER added.
$ ! Add SYSLOA9CC to create_index. In the shuffle of
$ ! various people changing STABACKIT, this was left
$ ! out, which causes a boot failure.
$ ! Fix RX33 build. The kit did not fit because Indexf.sys
$ ! was too large, so special cased the disk initialization
$ ! with the /headers qualifier instead of relying on defaults.
$ ! Change the message in the RX50 kit to reflect the
$ ! fact that it now requires 4 floppies instead of 3.
$ !
$ ! X-33 JAE0001 Jerry Eckert 2-Nov-1987
$ ! Add Polarstar (8PS) processor support:
$ ! o SYSLOA8PS and CWDRIVER on big disk kit
$ ! o SYSLOA8PS on tape kit
$ ! No changes were made to the small disk kitting
$ ! procedure because the Polarstar console does not
$ ! support devices in this category.
$ !
$ ! X-31 KABA004 Karen Barth 28-Oct-1987
$ ! Fix no priv error reporting. A label was mis-named
$ ! which caused the error "USGOTO, target of GOTO not
$ ! found".
$ !
$ ! X-30 KAB0003 Karen Barth 15-Oct-1987
$ ! Fix so TK70 is treated as a tape, not disk
$ !
$ ! X-29 SLT0002 Sarah Tappan 29-Sep-1987
$ ! Add ^Y exit support while creating open_index.dat
$ !
$ ! X-28 KAB0001 Karen Barth 28-Sep-1987
$ ! Fix SYS$LDR problem when upgrading from V4.x to V5.0.
$ ! Add Calypso support.
$ ! Exclude TVDRIVER from RX0x kits to create more space.
$ ! Fix RA60/small console problem.
$ ! Disallow switching to an RX33 diskette in the middle
$ ! of building an RX50 kit in an RX33 device.
$ ! Add phy_io to BUILD_PSEUDO_VOLUME (workaround for external
$ ! bug - insufficient privilege running SETSIZE).
$ ! Shuffle SWITCH_VOLUMEs so files fit on TU58s.
$ !
$ ! X-27 SLT0001 Sarah Tappan 22-Sep-1987
$ ! Add support to create file OPEN_INDEX.DAT when booting
$ ! from a TK50 and copy the file to tape cartridge
$ ! following SYSBOOT.EXE. This file is used to avoid opening
$ ! the files during the boot process and speeds up tape booting.
$ !
$ ! X-26 ELM0007 Eva MacKay 25-AUG-1987
$ ! Add support for TU81 1/2 inch mag tape (treated just
$ ! TK50 tape cartridge)
$ !
$ ! X-25 ROW0607 Ralph O. Weber 15-AUG-1987
$ ! Add copyright notice, as a comment.
$ !
$ ! X-24 KGW00122 Keith G. Walls 23-Jul-1987 17:19
$ ! Add LIDRIVER to all kits (except TK50 kit for now).
$ !
$ ! X-? DBM DB Mills 23-Jul-1987
$ ! Misc changes for increasing NPAGEDYN, merging V4.6
$ ! version into V5.0 version, reordering files for V5.0
$ ! EXEC changes. Fix edit history.
$ !
$ ! X-23 JTK Jim Klumpp 17-Apr-1987
$ ! Add Mayfair images.
$ !
$ ! X-22 HH0270 Hai Huang 15-Apr-1987
$ ! Clear LOAD_SYS_IMAGES SYSGEN parameter to disable
$ ! processing of system image data file.
$ !
$ ! X-21 HH0268 Hai Huang 3-Apr-1987
$ ! Set SYSGEN MULTIPROCESSING parameter to appropriate
$ ! value and put SYSTEM_SYNCHRONIZATION_UNI.EXE on the
$ ! standalone system kit.
$ !
$ ! X-20 BJT0073 Benjamin J. Thomas III 20-Mar-1987
$ ! Add proper RX33 support.
$ ! Add DVDRIVER for VAXstar (remove comments).
$ ! Shuffle RX50 floppy switch locations where necessary.
$ !
$ ! X-19 HH0262 Hai Huang 19-Mar-1987
$ ! Correctly copy VMS$SYSTEM_IMAGES.DATA (use CopyTC
$ ! since this is a binary file).
$ !
$ ! X-18 HH0260 Hai Huang 16-Mar-1987
$ ! Add VMS$SYSTEM_IMAGES.DATA.
$ !
$ ! X-17 CWH5017 CW Hobbs 24-Feb-1987
$ ! Use PSEUDOLOA instead of VMSD4.
$ !
$ ! X-16 BJT0067 Benjamin J. Thomas III 18-Feb-1987
$ ! Add TVDRIVER to large system disk kit
$ !
$ ! X-15 CRF001 Chris Franklin 13-Feb-1987
$ ! Remove references to MicroVMS in comments.
$ !
$ ! X-14 HH0238 Hai Huang 9-Jan-1987
$ ! Add support for loadable images in a separate directory,
$ ! i.e. <SYS$LDR> rather than <SYSEXE>.
$ !
$ ! X-13 KGW00054 Keith G. Walls 8-Dec-1986 03:34
$ ! Make the messages reflect the number (five) of pieces of
$ ! media required for TU58 and RX0x kits.
$ !
$ ! X-12 KGW00053 Keith G. Walls 8-Dec-1986 03:28
$ ! Fix file-split for TU58 and RX0X kits.
$ !
$ ! X-11 KGW00052 Keith G. Walls 7-Dec-1986 04:07
$ ! Generation numbers were out-of-synch because of
$ ! concurrent development.
$ !
$ ! X-7 KGW00048 Keith G. Walls 6-Nov-1986 00:32
$ ! Change to reflect Version 5's exec-reorg and SMP.
$ ! Differences:
$ ! (1) The new exec files from the split sys.exe must be
$ ! copied to the kit. There is no restriction on the number
$ ! of diskettes or files per volume with the following
$ ! exceptions:
$ ! (a) VAXVMSSYS.PAR must be on the same volume as SYS.EXE.
$ ! (b) Any file loaded before SYS.EXE (boot driver,
$ ! VMB.EXE, SYSBOOT.EXE) must be on the first volume.
$ ! (c) Any optional files must be on the same volume
$ ! as the most recently loaded mandatory file. (Not
$ ! used (yet) except the special case of VAXVMSSYS.PAR).
$ ! (2) SYS.EXE can no longer be split across volumes.
$ ! (3) The pseudo-device method of booting is supported only
$ ! for tapes. (I.e. no file may be split across volumes.)
$ ! (4) Change the way that volumes are changed in this routine
$ ! by calling a subroutine to do the volume switch.
$ ! (5) Change all symbol assignments to global.
$ ! (6) Delete all (inherited) global symbols.
$ ! (7) Back-out JJO0022.
$ ! Merge concurrent replacements:
$ !
$ ! X-6 WCT Ward C. Travis 15-Sep-1986
$ ! Updated to build with new 410 name for VAXstar processor.
$ !
$ ! X-5 CWH0005 CW Hobbs 8-Jul-1986
$ ! Support for the VAXstar.
$ !
$ ! X-? JJO0022 Jay J. Olson 27-Feb-1986
$ ! Allow RX50 kits to be built in such a way that the
$ ! pseudo-disk method of booting (used for TK50s) can
$ ! be used. This allows the standalone backup floppy
$ ! to be removed (and potentially be replaced by a
$ ! floppy containing a saveset) while the backup is in
$ ! progress. Also, track the SYSBOOT change which
$ ! removes the need for B/20000 when booting from TK50s.
$ !
$ ! X-4 CWH0004 CW Hobbs 21-Feb-1986
$ ! Place an incorrect copy of DSDRIVER on the system-
$ ! specific root, so that it will not be possible to
$ ! boot standalone systems from a shadow set.
$ !
$ ! X-3 CWH0003 CW Hobbs 6-Feb-1986
$ ! Add pedestal support
$ !
$ ! X-2 CWH0002 CW Hobbs 11-Nov-1985
$ ! Use SET SYMBOL instead of DELETE /SYMBOL. Use some
$ ! dummy file for EOVMS.NUL for the TK50 kit.
$ !
$ ! X-1 CWH0001 CW Hobbs 30-Oct-1985
$ ! For console kits, make a four volume kit. Add preliminary
$ ! Nautilus support to the RX50 kit. Do not ask about a
$ ! bad block scan on 750 console TU58s. Give the option
$ ! of data checking -- done by hand because the 750 console TU58
$ ! does not reliably handle data checking in the driver, and the
$ ! RX0x do not support it at all. (As long as you have to do it
$ ! manually, do it for all devices -- even those which do support
$ ! driver level data checking.) Remove all MicroVAX tests, the
$ ! kitting procedure is driven by media type and presence of
$ ! files (CopyIF it exists).
$ !
$ ! V04-007 CWH4007 CW Hobbs 20-Sep-1985
$ ! For V4.3, reduce the number of headers so that TU58
$ ! kits will work.
$ !
$ ! V04-006 EMB0158 Ellen M. Batbouta 07-Aug-1985
$ ! Modify this command procedure to build an RX50 kit which
$ ! supports both 8200 and MicroVAX systems.
$ !
$ ! V04-005 DGB0121 Donald G. Blair 31-May-1985
$ ! Omit VMB.EXE from MicroVMS standalone backup kits.
$ !
$ ! V04-004 EMB0130 Ellen M. Batbouta 11-Mar-1985
$ ! Add Scorpio support.
$ !
$ ! V04-003 JJO0004 Jay Olson 27-Feb-1985
$ ! Add TK50 support and provide hooks for other devices
$ ! which will use the same pseudo-disk scheme.
$ !
$ ! V04-002 BJT0003 B Thomas 12-Feb-1985
$ ! Add MicroVAX II support. This requires reworking the
$ ! RX50 distribution scheme such that two floppies are used
$ ! for the system. Remove old 1 floppy code.
$ !
$ ! V04-001 CWH4001 CW Hobbs 16-Jan-1985
$ ! Make sure that the MEDIA_NAME symbol is set in a common path,
$ ! so that it is always valid. Change determination of console
$ ! device so that large console devices (e.g. the RL02 on the
$ ! VAX8600) are properly dismounted and remounted. Consistently
$ ! use international directory delimiters "<" and ">" in all
$ ! directory strings. If the target disk is currently mounted
$ ! /NOWRITE, double-check to verify that the user really wants
$ ! to write to the disk.
$ !
$ !--
$ !
$ ! Delete all global symbols inherited by the procedure. Tell the user
$ ! we did this.
$ !
$ DELETE == ""
$ DELETE /SYMBOL /GLOBAL /ALL
$ WRITE SYS$OUTPUT "%STABACKIT-I-SYMDEL, all global symbols deleted"
$ STA0$START_TIME == F$CVTIME (,"ABSOLUTE")
$ !
$ ! Set up a few symbols for later. It is simpler to preset many flags
$ ! in this section than it is to verify that a flag will be set on
$ ! some particular route through the procedure. Many times errors have
$ ! been discovered because a flag had not been initialised under some
$ ! obscure condition, and the procedure died because of that.
$ !
$ FALSE == 0
$ TRUE == 1
$ !
$ ANAL_MED == FALSE
$ AT_END == FALSE
$ BEFORE_DRIVERS == TRUE
$ CONFIG_FILE_COUNT == 0
$ CONFIG_FILES == FALSE
$ BUILD_DISK_IMAGE == FALSE
$ BUILD_SYSTEM == TRUE
$ CBT == ""
$ CHECK_FOR_VOLUME_SWITCH == "CALL STA1$CHECK_FOR_VOLUME_SWITCH"
$ CMN_SYS_DIR == ""
$ CONSOLE_CONNECTED == FALSE
$ CONSOLE_DEVICE == FALSE
$ CopySB == "CALL STA0$COPY_SB"
$ CopyTC == "CALL STA0$COPY_TC"
$ COPY_VER == FALSE
$ CPU_780 == 1
$ CPU_750 == 2
$ CPU_730 == 3
$ CPU_8600 == 4
$ CPU_8200 == 5
$ CPU_8NN == 6
$ CPU_UV1 == 7
$ CPU_UV2 == 8
$ CPU_8PS == 17
$ CPU_9AQ == 14
$ CREATE_TAPE_INDEX == "CALL STA0$OPEN_INDEX"
$ CREATING_TAPE_INDEX == FALSE
$ DC_REMCSL_STORAGE == %XAA
$ DEFAULT_DIR == F$ENVIRONMENT ("DEFAULT")
$ DENS == ""
$ DEVICE_MOUNTED == FALSE
$ DEVICE_ORIGINALLY_MOUNTED == FALSE
$ DISK_FULL == FALSE
$ DISK_HEADERS == 12
$ DISK_IMAGE_NPAGEDYN == 5000000
$ DISK_IMAGE_NPAGEVIR == 8000000
$ DISK_OVERHEAD == 34
$ GLOBAL_RETURN_LABEL == ""
$ HEADER_PARAM == ""
$ KIT_DONE == FALSE
$ LARGE_DISK_KIT == FALSE
$ MEDIA_SWITCH == FALSE
$ MNTCACHE == ""
$ NUM == 0
$ NUM_OF_FILES == 0
$ P2_VERIFIED == FALSE
$ REMOTE_CONSOLE == FALSE
$ RX50_IN_RX33_DRIVE == FALSE
$ SAY == "WRITE SYS$OUTPUT"
$ SEPARATE_CONFIG_VOLUME == FALSE
$ SIZE_OF_FILES == 0
$ SMALL_CONSOLE == FALSE
$ STABACCOP == "$STABACCOP"
$ START_INDEX == FALSE
$ Switch_Volume == "CALL STA0$SWITCH_VOLUME"
$ TAPE_NPAGEDYN == 950000
$ TAPE_NPAGEVIR == 2000000
$ TRG_DEVICE == ""
$ TRGSAVE_DEVICE == ""
$ USES_PSEUDO_DISK == FALSE
$ VOLUME_COUNT == 0
$ VMS_KIT_BUILD == F$EDIT (P5, "UPCASE") .EQS. "KIT"
$ !
$ ! Unsupported debug tools. If DEBUG is defined, STABACKIT
$ ! will run in batch mode, building a disk, displaying the
$ ! disk, then erasing the disk and building the next one.
$ ! This is useful for a quick check of whether files fit on
$ ! console media.
$ !
$ DEBUG == 0
$ TRACE == 0
$ TRC == "!" ! TRC - execute this line if in trace mo
de
$ DBG == "!" ! DBG - execute this line if in debug mo
de, do not execute in normal mode
$ NDBG == "" ! NDBG - do not execute if in debug mode
, execute in normal mode
$ IF TRACE THEN TRC == ""
$ IF DEBUG THEN DBG == ""
$ IF DEBUG THEN NDBG == "!"
$ !
$ ! Don't let redefined symbols mess us up
$ !
$ SET :== SET
$ SET SYMBOL /SCOPE = (NOLOCAL)
$ !
$'ndbg' IF F$MODE() .NES. "INTERACTIVE" THEN GOTO STA0$ERR_NO_INT
$ !
$ SET RMS_DEFAULT /EXTEND_QUANTITY=10
$ ON WARNING THEN GOTO STA0$CLEAN_UP
$ ON CONTROL_Y THEN GOTO STA0$CLEAN_UP
$ !
$ ! Get necessary privileges and a system UIC
$ !
$ SAVED_PRIVS == F$SETPRV ("CMKRNL,CMEXEC,LOG_IO,SYSNAM,SYSPRV,VOLPRO,OPER
,BYPASS,PHY_IO")
$ IF .NOT. F$PRIVILEGE ("CMKRNL,CMEXEC,LOG_IO,SYSNAM,SYSPRV,VOLPRO,OPER,BY
PASS,PHY_IO") THEN GOTO STA0$ERR_NO_PRIVS
$ SAVED_PROT == F$ENVIRONMENT ("PROTECTION")
$ SAVED_UIC == F$USER ()
$ TEMP == F$SETPRV ("NOBYPASS") ! Don't want this all the time
$ SET PROTECTION = (SYSTEM=RWED,OWNER=RWED,GROUP=RWED,WORLD) /DEFAULT
$ SET UIC [1,4]
$ !
$ ! Create a special, unique subdirectory for STABACKIT to do it's work.
$ !
$ STABACKIT_DIR == "SYS$SPECIFIC:<SYSUPD.STABACKIT-TEMP-" + F$GETJPI
("",
"PID") + ">"
$ CREATE /DIRECTORY 'STABACKIT_DIR'
$ SET DEFAULT 'STABACKIT_DIR'
$ DEFINE /NOLOG STA$LOCAL_DIR 'STABACKIT_DIR'
$ !
$ ! Find out where to find the source files. Make sure that the source
$ ! directory exists and contains SYS.EXE
$ !
$ IF P3 .EQS. "" THEN P3 = "SYS$SYSROOT:<SYSEXE>"
$ SRC_DIRECTORY == P3
$ DEFINE /NOLOG STA$SOURCE 'SRC_DIRECTORY'
$ SRC_DEV == F$PARSE (SRC_DIRECTORY,,,"DEVICE")
$ SRC_DIR == F$PARSE (SRC_DIRECTORY,,,"DIRECTORY")
$ IF F$LOCATE ("S...and BACKUP. The files must be
$ ! in the order which SYSBOOT expects them, and all the drivers mus
t
$ ! be on the last volume.
$ !
$ ! Tape kits use the pseudo disk scheme. A file called PSEUDOLOA.
EXE
$ ! contains the standalone images as well as all the drivers. This
file
$ ! is loaded into nonpaged pool at boot time. The other system fil
es
$ ! and loadable images are copied to the tape media.
$ !
$ ! The files which are needed for each kit are stored in a table ca
lled
$ ! STABACKIT-TABLE.DAT. This table contains the name of each syste
m
$ ! file, as well as information on how to copy the files, and which
$ ! kit they belong on.
$ !
$ ! In order to conserve space, two different methods are used to co
py
$ ! the files. Normal VMS images are copied with the STABACCOP prog
ram,
$ ! which removes symbol table and patch text blocks. STABACCOP cre
ates
$ ! contiguous files. Non-VMS load images (such as VMB and SYSBOOT)
use
$ ! the COPY command with the /CONTIGUOUS and /TRUNCATE options. No
te
$ ! that all files copied to tape use COPY, because STABACCOP doesn'
t
$ ! work to tape.
$ !
$ ! INPUTS: STA$TARGET - logical name pointing to target device and dir
ectory
$ ! STA$LDR_TARGET - logical name pointing to target device and dir
ectory of loadable images
$ ! STA$SOURCE - logical name pointing to source directory
$ ! STA$LDR_SOURCE - logical name pointing to source directory of l
oadable images
$ ! APPL_KIT - application name, e.g. "BACKUP" or "BAD"
$ ! KIT_DONE - symbol to set after successful completion
$ ! TRG_DEVICE - target device name, e.g. "DYA0:"
$ ! DEV_TYPE - device type code
$ ! BUILD_SYSTEM - build system kit boolean, can only be false on
small console kit
$ ! BUILD_APPL - build application kit boolean, can only be fal
se on small console kit
$ ! ANAL_MED - ANALYZE /MEDIA boolean
$ !--
$ !
$ ! Set up a local error path
$ !
$ IF USES_PSEUDO_DISK .OR. BUILD_DISK_IMAGE
$ THEN
$ ON WARNING THEN GOTO TAPE$CLEAN_UP
$ ON CONTROL_Y THEN GOTO TAPE$CLEAN_UP
$ ELSE
$ ON WARNING THEN GOTO STA0$CLEAN_UP
$ ON CONTROL_Y THEN GOTO STA0$CLEAN_UP
$ ENDIF
$ !
$ ! Do any preliminary setup stuff needed before copying the files to the
kit.
$ !
$ IF BUILD_DISK_IMAGE
$ THEN
$ KIT_NAME == "PSEUDO"
$ PSEUDO_NAME == "PSEUDOLOA.EXE"
$ GOSUB STA1$PSEUDO_DISK_SETUP
$ COPY SYS$SYSTEM:PSEUDOLOA.EXE SYS$LOADABLE_IMAGES:
$ KIT_NAME == "DISK_IMAGE"
$ PSEUDO_NAME == "SABKUP.IMA"
$ GOSUB STA1$PSEUDO_DISK_SETUP
$ IF (F$SEARCH ("SYS$LOADABLE_IMAGES:PSEUDOLOA.EXE") .NES. "")
$ THEN DELETE /NOLOG SYS$LOADABLE_IMAGES:PSEUDOLOA.EXE;*
$ ENDIF
$ GOSUB STA1$DISK_IMAGE_FINISH
$ RETURN
$ ENDIF
$ IF USES_PSEUDO_DISK
$ THEN
$ KIT_NAME == "PSEUDO"
$ PSEUDO_NAME == "PSEUDOLOA.EXE"
$ GOSUB STA1$PSEUDO_DISK_SETUP
$ ENDIF
$ IF SMALL_CONSOLE THEN GOSUB STA1$SMALL_CONSOLE_SETUP
$ IF LARGE_DISK_KIT
$ THEN
$ IF CMN_SYS_DIR .NES. ""
$ THEN GOSUB STA1$SYSTEM_DISK_SETUP
$ ELSE GOSUB STA1$LARGE_DISK_SETUP
$ ENDIF
$ ENDIF
$ !
$ IF BUILD_SYSTEM .AND. (.NOT. TAPE) THEN GOSUB STA1$PARSE_TABLE
$ IF GLOBAL_RETURN_LABEL .NES. "" THEN GOTO 'GLOBAL_RETURN_LABEL
$ !
$ IF USES_PSEUDO_DISK THEN GOSUB STA1$PSEUDO_DISK_FINISH
$ IF SMALL_CONSOLE THEN GOSUB STA1$SMALL_CONSOLE_FINISH
$ IF LARGE_DISK_KIT
$ THEN
$ IF CMN_SYS_DIR .NES. ""
$ THEN GOSUB STA1$SYSTEM_DISK_FINISH
$ ELSE GOSUB STA1$LARGE_DISK_FINISH
$ ENDIF
$ ENDIF
$ !
$ RETURN ! To STA0$CLEAN_UP
$ !
$ STA1$PSEUDO_DISK_SETUP:
$ !
$ ! Calculate how much non-paged pool will be required for the
$ ! pseudo-disk (both as a check that the SYSGEN parameters for
$ ! the standalone system are OK and so that we can calculate
$ ! how much pool and disk space will be needed to build it).
$ !
$ REQUIRED_SIZE == DISK_OVERHEAD
$ IF KIT_NAME .EQS. "DISK_IMAGE" THEN REQUIRED_SIZE == 2*REQUIRED_SIZE+1
$ NUMBER_OF_FILES == 0
$ !
$ ! Calculate the required size for the pseudo disk.
$ !
$ GOSUB STA1$PARSE_TABLE
$ POOL_REQ == 512*REQUIRED_SIZE
$ SYSGEN :== $SYSGEN
$ ON WARNING THEN GOTO STA3$NO_CONNECT
$ IF .NOT. F$GETDVI ("PDA0:", "EXISTS") THEN -
SYSGEN CONNECT PDA0 /NOADAPTER /DRIVER=PDDRIVER
$ IF .NOT. F$GETDVI ("PDA0:","EXISTS") THEN GOTO STA3$NO_CONNECT
$ ON WARNING THEN GOTO STA3$NO_ALLOC
$ IF KIT_NAME .EQS. "PSEUDO" THEN ALLOCATE PDA0:
$ ON WARNING THEN GOTO TAPE$CLEAN_UP
$ MACRO /OBJECT=SETSIZE.OBJ /NOLIST SYS$INPUT
$ DECK
.TITLE SETSIZE
$IODEF
.PSECT $DATA,WRT,NOEXE,LONG
PD_DESCR:
.ASCID "PDA0:"
PD_CHAN:
.BLKL 1
PD_IOSB:
.BLKQ 1
QIO_ARGS:
$QIO IOSB=PD_IOSB
CMD_DESCR:
.LONG 4
.ADDRESS SIZ_ASC
SIZ_ASC:
.BLKB 6
PROMPT:
.ASCID "Size: "
PD_SIZE:
.BLKL 1
.PSECT $CODE,EXE,NOWRT
.ENTRY SETSIZE,^M<>
$ASSIGN_S DEVNAM=PD_DESCR,CHAN=PD_CHAN
BLBC R0,DONE
MOVZWL PD_CHAN,QIO_ARGS+QIO$_CHAN
PUSHAL CMD_DESCR
PUSHAQ PROMPT
PUSHAQ CMD_DESCR
CALLS #3,G^LIB$GET_FOREIGN
PUSHAL PD_SIZE
PUSHAL CMD_DESCR
CALLS #2,G^OTS$CVT_TI_L
MOVZBL #IO$_PACKACK,QIO_ARGS+QIO$_FUNC
$QIOW_G QIO_ARGS
BSBW ERRCHK
MOVZBL #IO$_FORMAT,QIO_ARGS+QIO$_FUNC
MOVL PD_SIZE,QIO_ARGS+QIO$_P1
$QIOW_G QIO_ARGS
BSBW ERRCHK
DONE: RET
ERRCHK:
BLBC R0,20$
BLBC PD_IOSB,10$
RSB
10$: MOVZWL PD_IOSB,R0
20$: RET
.END SETSIZE
$ EOD
$ LINK SETSIZE
$ DELETE /NOLOG SETSIZE.OBJ;
$ SETSIZE :== $'F$TRNLNM("SYS$DISK")''F$DIRECTORY()'SETSIZE
$ ON WARNING THEN GOTO STA3$POOL_FRAGMENTED
$ SETSIZE 'REQUIRED_SIZE'
$ ON WARNING THEN GOTO TAPE$CLEAN_UP
$ DELETE /NOLOG SETSIZE.EXE;
$ !
$ ! At this point we know that the pseudo disk has been sized ok,
$ ! so initialize the pseudo disk and copy the files to it.
$ !
$ IF F$GETDVI ("PDA0:","MNT") THEN DISMOUNT /NOUNLOAD PDA0:
$ IF (NUMBER_OF_FILES + DISK_HEADERS) .GT. 16
$ THEN
$ HEADERS = NUMBER_OF_FILES + DISK_HEADERS
$ ELSE
$ HEADERS = 16
$ ENDIF
$ INITIALIZE /SYSTEM /HEADERS = 'HEADERS' PDA0: 'KIT_NAME'
$ MOUNT /SYSTEM PDA0: 'KIT_NAME'
$ IF KIT_NAME .EQS. "PSEUDO"
$ THEN SAY "Copy special SYSINIT and application to PDA0:"
$ ELSE SAY "Copy application to virtual disk image"
$ ENDIF
$ CREATE /DIRECTORY /OWNER=[1,4] PDA0:<SYS0.SYSEXE>
$ CREATE /DIRECTORY /OWNER=[1,4] PDA0:<SYS0.SYS$LDR>
$ OPEN /READ COMMAND_FILE COMMAND.FILE
$ PSEUDO$GET_ANOTHER:
$ READ /END_OF_FILE=PSEUDO$ENDING COMMAND_FILE COMMAND_LINE
$ 'COMMAND_LINE'
$ GOTO PSEUDO$GET_ANOTHER
$ PSEUDO$ENDING:
$ CLOSE COMMAND_FILE
$ DISMOUNT /NOUNLOAD PDA0:
$ MOUNT /NOMESSAGE /FOREIGN PDA0:
$ IF REQUIRED_SIZE .LE. F$GETDVI ("STA$SOURCE","FREEBLOCKS")
$ THEN
$ SET NOON ! Temporary workaround for COPY bug
$ ASSIGN /USER_MODE NL: SYS$ERROR
$ ASSIGN /USER_MODE NL: SYS$OUTPUT
$ COPY PDA0: STA$SOURCE:'PSEUDO_NAME' /LOG
$ SAY "''PSEUDO_NAME' created in directory ''F$TRNLNM
(""STA$SOURCE"")
'"
$ ON WARNING THEN GOTO TAPE$CLEAN_UP
$ ENDIF
$ !
$ IF (KIT_NAME .EQS. "DISK_IMAGE") THEN RETURN
$ IF POOL_REQ .GT. TAPE_NPAGEDYN THEN GOTO STA3$INT_POOL_ERR
$ !
$ ! Slight adjustment to SYSGEN parameters for tape kits. Ensure sufficie
nt
$ ! nonpaged pool and set special parameter PSEUDOLOA, which triggers ever
ything.
$ !
$ TEMPNAME == "SYS$SYSROOT:<SYSUPD>STABACKIT-SYSGEN-" +
F$GETJPI("","PID")
+ ".COM"
$ OPEN /WRITE TEMPFILE 'TEMPNAME'
$ WRITE TEMPFILE "$ RUN SYS$SYSROOT:<SYSEXE>SYSGEN"
$ WRITE TEMPFILE "USE PARAMETER_FILE"
$ IF BUILD_DISK_IMAGE
$ THEN
$ WRITE TEMPFILE "SET NPAGEDYN ''DISK_IMAGE_NPAGEDYN'"
$ WRITE TEMPFILE "SET NPAGEVIR ''DISK_IMAGE_NPAGEVIR'"
$ ELSE
$ WRITE TEMPFILE "SET NPAGEDYN ''TAPE_NPAGEDYN'"
$ WRITE TEMPFILE "SET NPAGEVIR ''TAPE_NPAGEVIR'"
$ ENDIF
$ WRITE TEMPFILE "SET PSEUDOLOA ''REQUIRED_SIZE'"
$ WRITE TEMPFILE "WRITE PARAMETER_FILE"
$ CLOSE TEMPFILE
$ @'TEMPNAME'
$ DELETE /NOLOG 'TEMPNAME';
$ !
$ COPY PARAMETER_FILE STA$LOCAL_DIR:VAXVMSSYS.PAR
$ IF BUILD_DISK_IMAGE THEN RETURN
$ ! Initialize and mount the target device.
$ !
$ STA3$MOUNT_TARGET:
$ GLOBAL_RETURN_LABEL == ""
$ IF .NOT. VMS_KIT_BUILD
$ THEN
$ Switch_Volume "scratch" "SYSTEM"
$ IF GLOBAL_RETURN_LABEL .NES. "" THEN GOTO 'GLOBAL_RETURN_LABEL
$ ENDIF
$ !
$ KIT_NAME == "TAPE"
$ !
$ ! Prior to copying the rest of the files, create the file
$ ! OPEN-INDEX.DAT. OPEN_INDEX.DAT will be copied to the tape
$ ! directly following SYSBOOT.EXE. The file contains the name and
$ ! tape position of each of the files that go on the tape. This
$ ! information is used to avoid opening each file and speed up the
$ ! boot process.
$ !
$ CREATE OPEN_INDEX.MAR
$ TAPE_POSITION == 0
$ CREATING_TAPE_INDEX == TRUE
$ GOSUB STA1$PARSE_TABLE
$ !
$ OPEN /READ TAPE_INDEX_COMMAND_FILE TAPE_COMMAND.FILE
$ INDEX$GET_ANOTHER:
$ READ /END_OF_FILE=INDEX$ENDING TAPE_INDEX_COMMAND_FILE COMMAND_LINE
$ 'COMMAND_LINE'
$ GOTO INDEX$GET_ANOTHER
$ INDEX$ENDING:
$ CLOSE TAPE_INDEX_COMMAND_FILE
$ CREATING_TAPE_INDEX == FALSE
$ !
$ If F$SEARCH ("STA$SOURCE:PSEUDOLOA.EXE") .NES. ""
$ THEN
$ CREATE_TAPE_INDEX STA$SOURCE:PSEUDOLOA.EXE
$ ELSE
$ SET NOON ! Temporary workaround for COPY bug
$ ASSIGN /USER_MODE NL: SYS$ERROR
$ ASSIGN /USER_MODE NL: SYS$OUTPUT
$ COPY PDA0: PSEUDOLOA.EXE
$ CREATE_TAPE_INDEX PSEUDOLOA.EXE
$ DELETE /NOLOG PSEUDOLOA.EXE;
$ ON WARNING THEN GOTO TAPE$CLEAN_UP
$ ENDIF
$ ! Add the rest of the files.
$ ! Note: because of a BACKUP problem, EOVMS.NUL must not be
$ ! a zero length file. Use a naked copy because the COPYTC
$ ! call has problems with sys$input.
$ !
$ COPY /CONTIGUOUS /TRUNCATE SYS$INPUT: EOVMS.NUL
$ CREATE_TAPE_INDEX EOVMS.NUL
$ DELETE /NOLOG EOVMS.NUL;
$ !
$ OPEN /APPEND TMP OPEN_INDEX.MAR
$ WRITE TMP " .END"
$ CLOSE TMP
$ MACRO /NOLIST OPEN_INDEX
$ LINK /SYSTEM /EXE=OPEN_INDEX.DAT OPEN_INDEX
$ !
$ OPEN /READ COMMAND_FILE COMMAND.FILE
$ TAPE$GET_ANOTHER:
$ READ /END_OF_FILE=TAPE$ENDING COMMAND_FILE COMMAND_LINE
$ 'COMMAND_LINE'
$ GOTO TAPE$GET_ANOTHER
$ TAPE$ENDING:
$ CLOSE COMMAND_FILE
$ RETURN ! From subroutine PSEUDO_DISK_SETUP
$!+
$! Error routines
$!-
$ STA3$UNEXPECTED:
$ SAY "Unexpected eof or file read error * INTERNAL ERROR *"
$ CLOSE TEMP_FILE
$ GOTO STA3$ERR_COMMON
$ !
$ STA3$NO_CONNECT:
$ SAY "Cannot load or connect pseudo-disk."
$ GOTO STA3$ERR_COMMON
$ !
$ STA3$NO_ALLOC:
$ SAY "Cannot allocate pseudo-disk."
$ GOTO STA3$ERR_COMMON
$ !
$ STA3$INT_POOL_ERR:
$ SAY "* INTERNAL ERROR * non-paged pool requirement of
''POOL_REQ'"
$ SAY "bytes is greater than maximum expected (''TAPE_NPAGEDYN')."
$ GOTO STA3$ERR_COMMON
$ !
$ STA3$POOL_FRAGMENTED:
$ SAY ""
$ SAY "There is insufficient contiguous non-paged dynamic memory in which
to load the"
$ SAY "pseudo-disk. We need a single block of ''POOL_REQ' free bytes.
Pl
ease check"
$ SAY "the display for SHOW MEMORY /POOL /FULL and see the values which it
shows for"
$ SAY """Initial Size (NPAGEDYN)"", ""Maximum Size
(NPAGEVIR)"", and ""Siz
e of Largest"
$ SAY "Block""."
$ SAY ""
$ SAY "You should be able to add ''POOL_REQ' free bytes to the value of
NP
AGEVIR, and"
$ SAY "then reboot. To do this, add a line ""ADD_NPAGEVIR =
''POOL_REQ'""
to the file"
$ SAY "SYS$SYSTEM:MODPARAMS.DAT. You should then run AUTOGEN by issuing t
he following"
$ SAY "command:"
$ SAY ""
$ SAY " $ @SYS$UPDATE:AUTOGEN GETDATA REBOOT"
$ SAY ""
$ SAY "You can leave the value of NPAGEVIR at the larger value, so that yo
u will be"
$ SAY "able to make additional Standalone BACKUP kits in the future. Ther
e is a very"
$ SAY "small cost to leaving this value large."
$ SAY ""
$ SAY "If this does not work, and the system fails to expand pool to the r
equired"
$ SAY "maximum size, then it will be necessary to add ''POOL_REQ' bytes
to
the static"
$ SAY "parameter NPAGEDYN. Note that you should merely set NPAGEDYN to th
e new value"
$ OLDVAL = F$GETSYI("NPAGEDYN")
$ NEWVAL = OLDVAL + POOL_REQ
$ SAY "''NEWVAL', and reboot. After building the Standalone Backup kit,
y
ou should"
$ SAY "set the value of NPAGEDYN back to its current value of ''OLDVAL'
an
d"
$ SAY "reboot again. If you leave NPAGEDYN at ''NEWVAL' bytes, you will
a
lways be"
$ SAY "wasting the ''POOL_REQ' bytes which you only need when you build
St
andalone"
$ SAY "BACKUP. For the same reason, you do not want to raise NPAGEDYN in"
$ SAY "MODPARAMS.DAT."
$ SAY ""
$ SETSIZE 4
$ DELETE /NOLOG SETSIZE.EXE;
$ !
$ STA3$ERR_COMMON:
$ SAY ""
$ GOTO TAPE$CLEAN_UP
$ !
$ STA1$SMALL_CONSOLE_SETUP:
$ IF BUILD_SYSTEM
$ THEN
$ !
$ ! Define the kit type. This symbol will be used to search the table
.
$ !
$ 'ifRX50' KIT_NAME == "RX50"
$ 'ifTU58' KIT_NAME == "TU58"
$ 'ifRX0x' KIT_NAME == "RX0X"
$ 'ifRX33' KIT_NAME == "RX33"
$ CREATE VOLUME_SWITCH.INFO
$ ENDIF
$ RETURN
$ !
$ STA1$SYSTEM_DISK_SETUP:
$ !
$ CREATE /DIRECTORY /LOG STA$TARGET, STA$LDR_TARGET
$ !
$ KIT_NAME == "SYS_DISK"
$ RETURN
$ !
$ STA1$LARGE_DISK_SETUP:
$ !
$ CREATE /DIRECTORY /LOG STA$TARGET, STA$LDR_TARGET
$ !
$ ! Define the kit type. This symbol will be used to search the table.
$ !
$ KIT_NAME == "LARGE_DISK"
$ RETURN
$ !
$ STA1$PARSE_TABLE:
$ IF F$SEARCH ("STA$LOCAL_DIR:VAXVMSSYS.PAR") .EQS. "" -
.AND. (KIT_NAME .NES. "PSEUDO") THEN COPY PARAMETER_FILE STA$LOCAL_D
IR:VAXVMSSYS.PAR
$ IF F$SEARCH ("STA$LOCAL_DIR:SYSINIT.EXE") .EQS. "" THEN COPY
STA$SOURCE:
STASYSGEN.EXE STA$LOCAL_DIR:SYSINIT.EXE
$ IF (TAPE .OR. REMOTE_CONSOLE) THEN -
IF (F$SEARCH ("STA$LOCAL_DIR:STANDALON.EXE") .EQS. "") -
THEN COPY STA$SOURCE:STA'APPL_KIT'.EXE STA$LOCAL_DIR:STANDALON.EXE
$ !
$ ! Build the list of files that go on the kit and copy them. This list i
s
$ ! built from the table contained in STABACKIT-TABLE.DAT.
$ !
$ OPEN /READ LIST_OF_FILES SYS$UPDATE:STABACKIT-TABLE.DAT
$ OPEN /WRITE COPY_COMMAND_FILE COMMAND.FILE
$ IF CREATING_TAPE_INDEX
$ THEN
$ OPEN /WRITE TAPE_INDEX TAPE_COMMAND.FILE
$ ENDIF
$ STA1$GET_ANOTHER_FILE:
$ READ /END_OF_FILE=STA1$END_COPY LIST_OF_FILES FILE_STRING
$ IF ( F$EXTRACT (0, 1, FILE_STRING) .EQS. "!") -
.OR. (F$LOCATE ("''KIT_NAME'", FILE_STRING) .EQ. F$LENGTH
(FILE_STRI
NG) ) -
THEN GOTO STA1$GET_ANOTHER_FILE
$ !
$ ! Get the filename from the table. Note that if there are ever any
$ ! files added with a different extension, that extension will have
$ ! to be checked here also.
$ !
$ IF F$LOCATE (".EXE", FILE_STRING) .NE. F$LENGTH (FILE_STRING) -
THEN FILE_NAME = F$EXTRACT (0, F$LOCATE (".EXE", FILE_STRING) + 4, F
ILE_STRING)
$ IF F$LOCATE (".PAR", FILE_STRING) .NE. F$LENGTH (FILE_STRING) -
THEN FILE_NAME = F$EXTRACT (0, F$LOCATE (".PAR", FILE_STRING) + 4, F
ILE_STRING)
$ IF F$LOCATE (".DAT", FILE_STRING) .NE. F$LENGTH (FILE_STRING) -
THEN FILE_NAME = F$EXTRACT (0, F$LOCATE (".DAT", FILE_STRING) + 4, F
ILE_STRING)
$ IF F$LOCATE (".SYS", FILE_STRING) .NE. F$LENGTH (FILE_STRING) -
THEN FILE_NAME = F$EXTRACT (0, F$LOCATE (".SYS", FILE_STRING) + 4, F
ILE_STRING)
$ IF (F$LOCATE ("SYSEXE", FILE_STRING) .NES. F$LENGTH (FILE_STRING) )
$ THEN
$ TARGET_DIR = "STA$TARGET"
$ IF (F$LOCATE ("LOCAL", FILE_STRING) .NES. F$LENGTH (FILE_STRING) )
$ THEN SOURCE_DIR = "STA$LOCAL_DIR"
$ ELSE SOURCE_DIR = "STA$SOURCE"
$ ENDIF
$ PSEUDO_TARGET = "PDA0:<SYS0.SYSEXE>"
$ ELSE
$ 'ifnotMAGTAPE' TARGET_DIR = "STA$LDR_TARGET"
$ 'ifMAGTAPE' TARGET_DIR = "STA$TARGET"
$ SOURCE_DIR = "STA$LDR_SOURCE"
$ PSEUDO_TARGET = "PDA0:<SYS0.SYS$LDR>"
$ ENDIF
$ FILE_SPEC == ''SOURCE_DIR' + ":" + FILE_NAME
$ IF (KIT_NAME .NES. "PSEUDO" .AND. KIT_NAME .NES. "DISK_IMAGE")
$ THEN
$ !
$ ! If the file is optional, and it's not on the system, then get the
next file.
$ !
$ IF (F$LOCATE ("OPTIONAL", FILE_STRING) .NES. F$LENGTH (FILE_STRING)
) -
.AND. (F$SEARCH ("''FILE_SPEC'") .EQS. "")
$ THEN
$ GOTO STA1$GET_ANOTHER_FILE
$ ENDIF
$ !
$ ! Determine whether to use COPY or STABACCOP to copy the file.
$ !
$ IF (F$LOCATE ("COPYTC", FILE_STRING) .NES. F$LENGTH (FILE_STRING) )
.OR. TAPE
$ THEN
$ COPY_FILE = "COPYTC"
$ ELSE
$ COPY_FILE = "COPYSB"
$ ENDIF
$ IF SMALL_CONSOLE THEN CHECK_FOR_VOLUME_SWITCH
$ IF CREATING_TAPE_INDEX
$ THEN
$ IF FILE_NAME .EQS. "SYS.EXE" THEN START_INDEX == TRUE
$ IF START_INDEX THEN WRITE TAPE_INDEX "CREATE_TAPE_INDEX ", FILE_
SPEC
$ ENDIF
$ WRITE COPY_COMMAND_FILE COPY_FILE," ", FILE_SPEC," ",
TARGET_DIR, ":
", CBT
$ ELSE
$ ! Temporarily allow for optional images in the disk image.
$ !
$ IF (((KIT_NAME .EQS. "PSEUDO") .AND. -
(FILE_NAME .EQS. "PSEUDOLOA.EXE")) .OR. -
((KIT_NAME .EQS. "DISK_IMAGE") .AND. -
(F$LOCATE ("OPTIONAL", FILE_STRING) .NES. F$LENGTH (FILE_STRING
)) .AND. -
(F$SEARCH ("''FILE_SPEC'") .EQS. "")))
$ THEN
$ GOTO STA1$GET_ANOTHER_FILE
$ ENDIF
$ REQUIRED_SIZE == REQUIRED_SIZE + F$FILE_ATTRIBUTES (FILE_SPEC, "EOF"
) + 1
$ NUMBER_OF_FILES == NUMBER_OF_FILES + 1
$ WRITE COPY_COMMAND_FILE "COPY /LOG ", FILE_SPEC, " ",
PSEUDO_TARGET
$ ENDIF
$ GOTO STA1$GET_ANOTHER_FILE
$ !
$ STA1$END_COPY:
$ CLOSE LIST_OF_FILES
$ CLOSE COPY_COMMAND_FILE
$ IF CREATING_TAPE_INDEX
$ THEN
$ CLOSE TAPE_INDEX
$ RETURN
$ ENDIF
$ IF (KIT_NAME .EQS. "PSEUDO" .OR. KIT_NAME .EQS. "DISK_IMAGE") THEN
RETUR
N
$ OPEN /READ COMMAND_FILE COMMAND.FILE
$ IF SMALL_CONSOLE
$ THEN
$ AT_END == TRUE
$ CHECK_FOR_VOLUME_SWITCH
$ OPEN /READ SWITCH_INFO VOLUME_SWITCH.INFO
$ ENDIF
$ STA1$GET_ANOTHER:
$ READ /END_OF_FILE=STA1$ENDING COMMAND_FILE COMMAND_LINE
$ IF SMALL_CONSOLE .AND. (NUM .EQ. 0)
$ THEN
$ READ SWITCH_INFO NUM
$ READ SWITCH_INFO SWITCH_COMMAND
$ GLOBAL_RETURN_LABEL == ""
$ 'SWITCH_COMMAND'
$ IF GLOBAL_RETURN_LABEL .NES. "" THEN GOTO 'GLOBAL_RETURN_LABEL
$ ENDIF
$ 'COMMAND_LINE'
$ IF SMALL_CONSOLE THEN NUM = NUM - 1
$ GOTO STA1$GET_ANOTHER
$ STA1$ENDING:
$ CLOSE COMMAND_FILE
$ RETURN
$ !
$ STA1$CHECK_FOR_VOLUME_SWITCH:
$ SUBROUTINE
$ !
$ ! Calculate the size of the file and decide if we need to switch volumes
.
$ ! Also determine, by looking in the table, whether to copy using a conti
guous
$ ! best try, rather than contiguous or fail.
$ !
$ ON WARNING THEN EXIT $STATUS
$ ON CONTROL_Y THEN EXIT 44 ! SS$ABORT
$ IF F$LOCATE ("CBT", FILE_STRING) .NES. F$LENGTH (FILE_STRING) THEN CBT =
= " 1 99"
$ FILE_SIZE == F$FILE_ATTRIBUTES (FILE_SPEC, "EOF")
$ IF ((SEPARATE_CONFIG_VOLUME .EQ. TRUE) .AND. -
((FILE_NAME .EQS. "CPULOA.EXE") .OR. (FILE_NAME .EQS.
"SYSINIT.EXE")
.OR. (FILE_NAME .EQS."STANDCONF.EXE")))
$ THEN
$ FILE_SIZE == 0
$ NUM_OF_FILES == 0
$ ENDIF
$ SIZE_OF_FILES == SIZE_OF_FILES + FILE_SIZE
$ 'ifRX0x' DISK_OVERHEAD == 0
$ IF ((SIZE_OF_FILES + DISK_OVERHEAD + DISK_HEADERS + NUM_OF_FILES) .GT. S
IZE_OF_DISK) -
.AND. BEFORE_DRIVERS THEN DISK_FULL == TRUE
$ !
$ ! If we've hit the NEW_VOLUME string in the table file, and we haven't h
ad
$ ! to force a switch for the three boot files, then switch volumes for th
e
$ ! driver volume.
$ !
$ IF (.NOT. SEPARATE_CONFIG_VOLUME) .AND. -
(F$LOCATE ("NEW_VOLUME", FILE_STRING) .NES. F$LENGTH (FILE_STRING))
-
THEN DISK_FULL == TRUE
$ !
$ ! All the drivers must be on the last volume. CPULOA.EXE, STANDCONF.EXE
and
$ ! SYSINIT.EXE (alias STASYSGEN.EXE) must all be on the volume just previ
ous to
$ ! the driver volume.
$ !
$ IF (FILE_NAME .EQS. "CPULOA.EXE") THEN CONFIG_FILES == TRUE
$ IF DISK_FULL .OR. AT_END
$ THEN
$ WRITE_TO_SWITCH_FILE:
$ VOLUME_COUNT == VOLUME_COUNT + 1
$ IF VOLUME_COUNT .EQ. 1 THEN NUMBER = "first"
$ IF VOLUME_COUNT .EQ. 2 THEN NUMBER = "second"
$ IF VOLUME_COUNT .EQ. 3 THEN NUMBER = "third"
$ IF VOLUME_COUNT .EQ. 4 THEN NUMBER = "fourth"
$ IF VOLUME_COUNT .EQ. 5 THEN NUMBER = "fifth"
$ IF VOLUME_COUNT .EQ. 6 THEN NUMBER = "sixth"
$ IF VOLUME_COUNT .EQ. 7 THEN NUMBER = "seventh"
$ IF (NUM_OF_FILES + DISK_HEADERS) .GT. 16
$ THEN
$ HEADERS = NUM_OF_FILES + DISK_HEADERS
$ ELSE
$ HEADERS = 16
$ ENDIF
$ OPEN /APPEND SWITCH_INFO VOLUME_SWITCH.INFO
$ !
$ ! If we can't fit CPULOA, STANDCONF and SYSINIT on this volume, forc
e a
$ ! volume switch. This is a special case, because the volume switch
$ ! information will be one step ahead of the copy commands in the
$ ! temporary work files, so remember that we did this.
$ !
$ IF CONFIG_FILES .AND. (CONFIG_FILE_COUNT .LT. 3)
$ THEN
$ WRITE SWITCH_INFO NUM_OF_FILES - CONFIG_FILE_COUNT
$ CONFIG_FILE_COUNT == 0
$ SEPARATE_CONFIG_VOLUME == TRUE
$ WRITE SWITCH_INFO "SWITCH_VOLUME ", """",
NUMBER," system""", "
""SYSTEM_", VOLUME_COUNT, """ ", HEADERS
$ !
$ ! Prepare so that CPULOA, STANDCONF and SYSINIT will go onto the
next volume.
$ ! Loop again to write out the volume switch information for thos
e three files.
$ !
$ CONFIG_FILES == FALSE
$ DISK_FULL == FALSE
$ NUM_OF_FILES == 3
$ FILE_SIZE == 0
$ SIZE_OF_FILES == 0
$ GOTO WRITE_TO_SWITCH_FILE
$ ELSE
$ WRITE SWITCH_INFO NUM_OF_FILES
$ WRITE SWITCH_INFO "SWITCH_VOLUME ", """",
NUMBER," system""", "
""SYSTEM_", VOLUME_COUNT, """ ", HEADERS
$ ENDIF
$ CLOSE SWITCH_INFO
$ !
$ ! Clean up flags for next pass.
$ !
$ NUM_OF_FILES == 0
$ IF (FILE_NAME .EQS. "STANDCONF.EXE") THEN BEFORE_DRIVERS == FALSE
$ SIZE_OF_FILES == FILE_SIZE
$ DISK_FULL == FALSE
$ ENDIF ! End of full disk calculations.
$ NUM_OF_FILES == NUM_OF_FILES + 1
$ IF CONFIG_FILES THEN CONFIG_FILE_COUNT == CONFIG_FILE_COUNT + 1
$ EXIT
$ ENDSUBROUTINE ! STA1$CHECK_FOR_VOLUME_SWITCH
$ !
$ STA1$PSEUDO_DISK_FINISH:
$ !
$ If F$SEARCH("STA$SOURCE:PSEUDOLOA.EXE") .NES. ""
$ THEN
$ CopyTC STA$SOURCE:PSEUDOLOA.EXE STA$TARGET:
$ ELSE
$ SAY "Insufficient disk space to create PSEUDOLOA.EXE"
$ SAY "...copying directly to target device."
$ SET NOON ! Temporary workaround for COPY bug
$ ASSIGN/USER NL: SYS$ERROR
$ ASSIGN/USER NL: SYS$OUTPUT
$ COPY PDA0: STA$TARGET:PSEUDOLOA.EXE
$ ON WARNING THEN GOTO TAPE$CLEAN_UP
$ ENDIF
$ !
$ ! Note: because of a BACKUP problem, EOVMS.NUL must not be
$ ! a zero length file. Use a naked copy because the COPYTC
$ ! call has problems with sys$input.
$ !
$ ! Note that there must be a blank line after this copy. If
$ ! a dollar sign is detected, STABACKIT writes an extra tape
$ ! mark and the VMS kit duplication program will fail, thinking
$ ! it's at the end of the tape volume.
$ !
$ COPY /CONTIGUOUS /TRUNCATE SYS$INPUT: STA$TARGET:EOVMS.NUL
$ IF F$GETDVI("PDA0:","EXISTS")
$ THEN
$ IF F$GETDVI ("PDA0:","MNT") THEN DISMOUNT/NOUNLOAD PDA0:
$ IF F$GETDVI ("PDA0:","ALL") THEN DEALLOCATE PDA0:
$ ENDIF
$ ON WARNING THEN GOTO TAPE$CLEAN_UP
$ DISMOUNT /NOUNLOAD 'TRG_DEVICE'
$ KIT_DONE == TRUE
$ TAPE$CLEAN_UP:
$ IF F$GETDVI("PDA0:","EXISTS")
$ THEN
$ IF F$GETDVI ("PDA0:","MNT") THEN DISMOUNT /NOUNLOAD PDA0:
$ IF F$GETDVI ("PDA0:","ALL") THEN DEALLOCATE PDA0:
$ ENDIF
$ !
$ GOTO STA0$CLEAN_UP
$ RETURN
$ !
$ STA1$DISK_IMAGE_FINISH:
$ !
$ IF F$GETDVI ("PDA0:", "EXISTS")
$ THEN
$ IF F$GETDVI ("PDA0:", "MNT") THEN DISMOUNT/NOUNLOAD PDA0:
$ IF F$GETDVI ("PDA0:", "ALL") THEN DEALLOCATE PDA0:
$ ENDIF
$ IF (CPU_TYPE .EQS. CPU_9AQ)
$ THEN
$ SAY ""
$ SAY "Copying the standalone BACKUP image to the console hard disk."
$ SAY "This operation may take as long as 15 minutes."
$ SAY ""
$ COPY STA$SOURCE:SABKUP.IMA 'TRG_DEVICE'[USERFILES]/LOG
$ ENDIF
$ KIT_DONE == TRUE
$ RETURN
$ !
$ STA1$SMALL_CONSOLE_FINISH:
$ !
$'trc' CALL STA0$SHOW_DEVICE 'trg_device' 3_system
$ !
$ ! If we need to build the application kit, then switch volumes and
$ ! copy the application image.
$ !
$ IF BUILD_APPL
$ THEN
$ GLOBAL_RETURN_LABEL == ""
$ Switch_Volume "application" "''APPL_KIT'" 16
$ IF GLOBAL_RETURN_LABEL .NES. "" THEN GOTO 'GLOBAL_RETURN_LABEL
$ CopySB STA$SOURCE:STA'APPL_KIT'.EXE STA$TARGET:STANDALON.EXE 1 99
9
$ ENDIF
$'trc' CALL STA0$SHOW_DEVICE 'trg_device' 4_backup
$ KIT_DONE == TRUE
$ RETURN
$ !
$ STA1$SYSTEM_DISK_FINISH:
$ !
$ ! Point <SYSE.SYSCOMMON> to the common system directory.
$ !
$ SET FILE /LOG /ENTER='TRG_DEVICE'<SYSE>SYSCOMMON.DIR;1
'CMN_SYS_DIR'
$ !
$ ! Since very nasty things can happen if S/A Backup is run on a cluster w
ith shadowing,
$ ! place a copy of the non-shadowing DUDRIVER on this root with the name
of the shadowing
$ ! driver. This will ensure that an attempt to boot into a shadowing env
ironment will
$ ! produce system bugchecks rather than cause serious corruption of disks
. (Check for
$ ! the existence of some form of DSDRIVER so that we won't use the extra
space on µVMS.)
$ !
$ IF F$SEARCH ("STA$LDR_SOURCE:DSDRIVER.*") .NES. "" THEN -
CopyTC STA$LDR_SOURCE:DUDRIVER.EXE STA$LDR_TARGET:DSDRIVER.EXE
$ CopySB STA$SOURCE:STA'APPL_KIT'.EXE STA$TARGET:STANDALON.EXE
$ KIT_DONE == TRUE
$ RETURN
$ !
$ STA1$LARGE_DISK_FINISH:
$ @STA$SOURCE:VMS$INSTALL_UPG_DATA.COM
$ ISL_VER = F$EXTRACT(3,F$LENGTH(VMS$G_KIT_ID)-3,VMS$G_KIT_ID)
$ FILE_SPEC = "ISL_LVAX_''isl_ver'.SYS"
$ IF F$SEARCH ("STA$SOURCE:''FILE_SPEC'") .NES. "" THEN
GOTO COPY_LVAX
$ FILE_SPEC = "ISL_LVAX.SYS"
$ IF F$SEARCH ("STA$SOURCE:''FILE_SPEC'") .EQS. "" THEN
GOTO ERROR
$ COPY_LVAX:
$ COPY /TRUNCATE /CONTIGUOUS /LOG STA$SOURCE:'FILE_SPEC' STA$TARGET:ISL_L
VAX_'isl_ver'.SYS
$ FILE_SPEC = "ISL_SVAX_''isl_ver'.SYS"
$ IF F$SEARCH ("STA$SOURCE:''FILE_SPEC'") .NES. "" THEN
GOTO COPY_SVAX
$ FILE_SPEC = "ISL_SVAX.SYS"
$ IF F$SEARCH ("STA$SOURCE:''FILE_SPEC'") .EQS. "" THEN
GOTO ERROR
$ COPY_SVAX:
$ COPY /TRUNCATE /CONTIGUOUS /LOG STA$SOURCE:'FILE_SPEC' STA$TARGET:ISL_S
VAX_'isl_ver'.SYS
$ !
$ ! Build special ISL file. This files has pointers for the ISL files
$ ! that are located in [sysexe].
$ !
$ OPEN /WRITE SCRIPTFILE 'TRG_DEVICE'[000000]ISL_SCRIPT.ESS
$ WRITE SCRIPTFILE "! ====================================================
========"
$ WRITE SCRIPTFILE "! [000000]ISL_SCRIPT.ESS"
$ WRITE SCRIPTFILE "! Command file for ''VMS$G_VER_ID' CD, down-line
loadi
ng from InfoServer."
$ WRITE SCRIPTFILE "! ====================================================
========"
$ WRITE SCRIPTFILE "! Format:"
$ WRITE SCRIPTFILE "!"
$ WRITE SCRIPTFILE "! USE MOP file_spec /PAR=mop_id ""identification strin
g""
$ WRITE SCRIPTFILE "!"
$ WRITE SCRIPTFILE "! 1) The character ""!"" denotes a
comment"
$ WRITE SCRIPTFILE "!"
$ WRITE SCRIPTFILE "! 2) One command line can be up to 158 characters long
"
$ WRITE SCRIPTFILE "!"
$ WRITE SCRIPTFILE "! 3) One command must be specified on one line"
$ WRITE SCRIPTFILE "!"
$ WRITE SCRIPTFILE "USE MOP [SYS0.SYSEXE]ISL_LVAX_''ISL_VER'.SYS
/PAR=ISL_
LVAX_''ISL_VER' ""VMS ''VMS$G_VER_ID' ISL support
$ WRITE SCRIPTFILE "USE MOP [SYS0.SYSEXE]ISL_SVAX_''ISL_VER'.SYS
/PAR=ISL_
SVAX_''ISL_VER' ""VMS ''VMS$G_VER_ID' ISL support
$ CLOSE SCRIPTFILE
$ GOTO END_ISL
$ ERROR:
$ WRITE SYS$OUTPUT "CAN'T FIND FILE STA$SOURCE:''FILE_SPEC'"
$ END_ISL:
$ !
$ ! Write a boot block, only necessary for VAX-11/750 kit and VAX-11/8200
kit.
$ !
$ IF ( F$SEARCH ("STA$TARGET:VMB.EXE") .NES. "") -
.OR. F$SEARCH ("SYS$SYSTEM:WRITEBOOT.EXE") .NES. "")
$ THEN
$ RUN SYS$SYSTEM:WRITEBOOT
STA$TARGET:VMB.EXE
1
200
$ ENDIF
$ !
$ ! Copy the application image
$ !
$ STA2$COPY_APPL_FILE:
$ CopySB STA$SOURCE:STA'APPL_KIT'.EXE STA$TARGET:STANDALON.EXE
$ !
$ KIT_DONE == TRUE
$ RETURN
$ !
$ STA0$OPEN_INDEX:
$ SUBROUTINE
$ !
$ ! This subroutine will be called once for each file that goes to
$ ! tape. It creates the file information in OPEN_INDEX.DAT to
$ ! speed tape booting.
$ !
$ ON CONTROL_Y THEN EXIT 44 ! SS$_ABORT
$ ON WARNING THEN EXIT $STATUS
$ SIZE = 'F$FILE_ATTRIBUTES (P1, "EOF")
$ TAPE_POSITION == TAPE_POSITION + SIZE + 11 !11 BLOCKS TAPEHEADER /TAPEMA
RK OVERHEAD
$ FILE_NAME = F$PARSE (P1,,,"NAME") + F$PARSE (P1,,,"TYPE")
$ LENGTH = 'F$LENGTH (FILE_NAME)
$ OPEN/APPEND TMP OPEN_INDEX.MAR
$ WRITE TMP " .PSECT NOEXE,PAGE"
$ WRITE TMP " .LONG ''LENGTH'
$ WRITE TMP " .ASCII /''FILE_NAME'/
$ WRITE TMP " .ALIGN LONG"
$ WRITE TMP " .LONG ''SIZE'
$ WRITE TMP " .LONG ''TAPE_POSITION'
$ CLOSE TMP
$ EXIT
$ ENDSUBROUTINE ! STA0$OPEN_INDEX
$ !
$
$
$
$