At 11:03 PM 3/30/98 -0800, you wrote:
>I'm currently using a UMAX 300P that claims a maximum 24 bit color
>resolution of 300x600 dpi. I'm scanning into Photoshop4 and saving
I have the same scanner.
>in JPEG format. I'm trying to save as much information as I can, so
>pages that have any color besides black and white, I'm scanning
>at 299 (that's the max for color) dpi in RGB and and everything else in
>299 dpi grayscale. I'm averaging, for 8.5 x 11 pages, about 5.3 Mb
Actually, 300 is the max without interpolation. Stuff that's truly B&W
should be scanned in B&W mode. The problem is that grayscale picks up
variations in print strength, smudges, etc. B&W says "This dot is more
than x dark, it's black. This dot is less than x dark, it's white."
>for color and 2.1 Mb for grayscale. Just last weekend I burned
B&W will also save disk space.
> I printed two of the highest detailed B/W pages (schematics) today
>at 400 dpi. The results were disappointing. All of the fine details were
The details will get smudged if you scan in grayscale. Also, print at the
same dpi as you scanned; printing at a higher dpi won't do you any good,
and your document will print 1/3 smaller.
>lost. I assume I need to use a higher resolution for printing. I also have
same as scanned.
--------------------------------------------------------------------- O-
Uncle Roger "There is pleasure pure in being mad
roger(a)sinasohn.com that none but madmen know."
Roger Louis Sinasohn & Associates
San Francisco, California http://www.sinasohn.com/
On Thu, 2 Apr 1998, Scott McLauchlan wrote:
> I collect home micros, and I recently acquired a Mac 128K. However, it's
> been quite heavily modified with contemporary third-party add-ons. It's
> been taken up to 1M RAM and it's had a SCSI interface installed.
>
> The memory has been taken up to 512K by removing the 64K x 1 bit RAM chips
> and replacing them with 256K x 1 bit chips, plus adding a few discrete
> components (not hard, considering the 128K and 512K Macs shared the same PC
> board). It has then been taken up to 1M by adding a third-party 512K RAM
> expansion board, which plugs into one of the RAM sockets (the chip it
> displaces being installed onto the expansion board), and is connected to
> the address decoding by several flying leads.
>
> The SCSI interface has been installed by removing the ROM chips, plugging a
> daughterboard into the empty ROM sockets, and plugging the ROM chips into
> the daughterboard. The SCSI socket replaces the cover over the battery in
> the back of the Mac.
It sounds like you have a pretty amazing Mac 128K! Why the hell would you
want to tear it back down to its puny original configuration? This Mac is
a testament to the expandability of a machine that no one thought
expandable.
LEAVE IT BE!
Sam Alternate e-mail: dastar(a)siconic.com
-------------------------------------------------------------------------------
Computer Historian, Programmer, Musician, Philosopher, Athlete, Writer, Jackass
Coming Soon...Vintage Computer Festival 2.0
See http://www.siconic.com/vcf for details!
Hmm,
>> I collect home micros, and I recently acquired a Mac 128K. However, it's
>> been quite heavily modified with contemporary third-party add-ons. It's
>> been taken up to 1M RAM and it's had a SCSI interface installed.
>
Well from a preservation point of view, this makes a very interesting
machine as it stands - probably fairly unique. Maybe the thing to do
would be to collect together a bunch of 64Kx1 chips and keep them safe
somewhere so that the machine could easily be restored to original
condition (or as close as possible) at some point in the future, if that
were necessary.
Surely there's still quite a few Mac 128K's around, so they're not an
endangered species yet...
Just my 2p's worth (or $0.02, depending on which you prefer...)
cheers
Jules
>
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
$ !
$
$
$
$
Hi All:
The title says it all. I've installed VMS 5.2 from 4 RL02s and now the
installation procedure wants me to load the "mandatory update" volume.
Anyone have one kicking around? I'm not stuck on RL02 format, a TK50/70, 9
track, or
even an emailed copy would be fine!
Kevin
---
Kevin McQuiggin VE7ZD
mcquiggi(a)sfu.ca
Hi All:
I have acquired 4 RL02 packs with the VMS 5.2 distribution on them. The
first one boots into standalone backup (>>> B DLA0) but I need to know how
to start the installation procedure.
I have some very basic docs on standalone backup, but a simple
BACKUP DLA0: DUA0:
fails with a couple of "device not mounted" errors. There's apparently a
save set called VMS052.B on the first drive this filename is reported in
the two "device not mounted" errors. BACKUP DLA0:VMS052.B DUA0:
also fails as the /IMAGE qualifier is being assumed by the standalone
backup utility, and of course /IMAGE requires only a device name.
Any help appreciated!
Kevin
--
Kevin McQuiggin VE7ZD
mcquiggi(a)sfu.ca
At 19:26 1/04/98 -0600, Doug Yowza (yowza(a)yowza.com) wrote:
>On Thu, 2 Apr 1998, Scott McLauchlan wrote:
>
>> No it shouldn't. Listproc pulls the e-mail address from the header of the
>> subscription request, but it gets the subscribers name from the body.
>> "Your Name" should be your *real* name (eg. "Sam Ismail", "Scott
>> McLauchlan", "Bill Gates"). (Oh, and leave out the double quotes.)
>
>Hmm, I thought listproc would take the email address from the header if
>you only specify "subscribe classiccmp", but you can optionally include a
>different email address (e.g., "subscribe classiccmp joe(a)foo.com"), and
>the list maintainer can optionally refuse to accept the fully qualified
>subscribe command.
[Glances up at X-Listprocessor-Version: header..."8.1 beta". Hmmm]
Not exactly. Before version 8.1, if you only specified "subscribe
classiccmp" you would get an error message, and if you said "subscribe
classiccmp joe(a)foo.com" it would subscribe you at the address you sent the
request
from, and assume your real name was joe(a)foo.com. Depending on how the list
is set up, "subscribe classiccmp" will work on version 8.1 and later,
however, I'm pretty sure there still is no way to subscribe using an
address different from the one you are sending the request from.
>In any case, from the ClassicCmp FAQ (temporarily housed at
>http://www.yowza.com/classiccmp/faq.txt):
[Snip]
>SUBSCRIBE CLASSICCMP Your.Address
>
> Subscribes you to the list.
>
>UNSUBSCRIBE CLASSICCMP Your.Address
>
> Removes you from the list.
On Apr 2, 11:05, Scott McLauchlan wrote:
> At 16:05 1/04/98 -0800, Sam Ismail (dastar(a)wco.com) wrote:
>
> >Just to clarify...
> >
> >> Send a message to listproc(a)u.washington.edu with no subject and a
> >> message with only the line:
> >>
> >> subscribe classiccmp Your Name
> > ^^^^^^^^^ should be yourlogin(a)yourdomain.com
>
> No it shouldn't. Listproc pulls the e-mail address from the header of the
> subscription request, but it gets the subscribers name from the body.
> "Your Name" should be your *real* name (eg. "Sam Ismail", "Scott
> McLauchlan", "Bill Gates"). (Oh, and leave out the double quotes.)
No, Sam is correct. Here's an extract from the confirmation message I got when
I subscribed a while ago -- the message body was
SUBSCRIBE CLASSICCMP pete(a)dunnington.u-net.com
-----------------------------------------------------------------------------
NAQ (Never Asked Questions) 0.1
How do I subscribe?
Subscribing to this list is slightly more challenging than
most. Read the instructions below.
1. Send a message to listproc(a)u.washington.edu with the line
subscribe CLASSICCMP your-address
in the body of the message.
2. Send a message to bill(a)booster.u.washington.edu introducing
yourself and explaining why you wish to be added to the list.
-----------------------------------------------------------------------------
--
Pete Peter Turnbull
Dept. of Computer Science
University of York
Picked up the following Manuals:
(2) User's Manual for Level 1 -- TRS-80 Micro Computer System
Line Printer VIII
Level II Basic Reference Manual
They're available if anyone is interested. ($1 apiece, plus shipping.)
--------------------------------------------------------------------- O-
Uncle Roger "There is pleasure pure in being mad
roger(a)sinasohn.com that none but madmen know."
Roger Louis Sinasohn & Associates
San Francisco, California http://www.sinasohn.com/
Speaking of which, when did mailbombing first start? Were generals in
the Pentagon bombing each other over ARPANet?
>On Wed, 1 Apr 1998, Pete Joules wrote:
>
>> Does a 50k script with no comment count as mailbombing the list
>> or am I missing the point somewhere?
>>
>> Regards
>> Pete
>>
>>
>
>Nah! He's just elated!!!
> - don
>
>
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com