;
                                                   
                          ---  N Z B L I T Z  ---  
                                                   
                                Version 1.5

                       An NZCOM System Clone Utility


                          C -->  Configuration   
                          S -->  Syntax          
                          O -->  Operation       


         NZBLITZ is Copyright (c) 1988,89,90  Cameron W. Cotrill,
                           All Rights Reserved.

   NZBLITZ is released to the public domain for non-commercial use only.
      Please back up all files before using NZBLITZ and remember that
                     you use NZBLITZ at your own risk.
:C
Configuration

ZCNFG.COM and NZBLITZ.CFG may be used to configure NZBLITZ to allow saving
the system image up to the start of the CBIOS (the default), or up to a
fixed, specified top-of-save address.

If you specify saving to top-of-memory, the system image from the CCP all
the way up to the top of memory, including the CBIOS is saved.  This allows
those of us running custom NZCOM systems that use the existing standard
Ampro Z-system buffers that reside above the CBIOS to also save systems
with NZBLITZ at the cost of a slightly larger NZBLITZ image file.  See
AMPRO.ZCM for a sample ZCM file for Ampros that uses the standard Ampro
above-CBIOS Z-system buffers in an NZCOM system.

You may also configure a lower top-of-save address if you wish to save the
CBIOS but your system has other features at the top of memory that you
don't wish to save, such as dedicated ROM space.

While the drive, user and filename for the NZCOM.CCP file are taken
directly from the NZCOM NZBIOS, you may configure NZBLITZ so that the
system loader files write the NZCOM.CCP file as a system and/or archived
file, which is handy for those of us operating on RAM disk workspaces.
:S
Syntax

To save a system image, the NZBLITZ command line syntax is:

     NZBLITZ [dir:]sysname[.com][;trailing;commands]

Enter those trailing commands that you always want executed after the
system is loaded, such as clock or other initialization commands.


The resulting NZBLITZ system loader file command line syntax is:

     SYSNAME [/f]

     The /F option suppresses the write of the NZCOM.CCP file in the
     interest of reduced loading time.  If you choose to use this option,
     be CERTAIN that your current NZCOM.CCP runs at the same address as the
     system you are going to load does.  Otherwise, the system will crash -
     and quickly!
:O
Operation

NZBLITZ is an NZCOM utility that permits saving and direct loading of
system images.  NZBLITZ started life during development of NZCOM.  In
greatly expanded form, it became the /C (clone) option.

NZBLITZ is a very simple minded utility.  It doesn't look to see what
elements of the running system can or should be saved (TCAPS, MCL, Shell
Stack, etc).  It simply captures everything from the CCP (or lowest loaded
RSX) up to the CBIOS (or above) into a system loader utility.  When the
system loader utility is run, it replaces the entire saved system, as
specified by its configuration, writes NZCOM.CCP to disk to the drive and
user specified in the NZCOM NZBIOS, then boots the new system.

This strategy has several very significant side effects.  First, the ENTIRE
user environment is replaced - this includes Shells, RCP, FCP, IOP, TCAPS,
DOS, CCP, and in the case of ZSDOS and ZDDOS the clock and stamp drivers
that live in the NZCOM user area!  This allows a cold load of a system -
full up with drivers, shells, path, and options set as you want in very
short order - 4 seconds on my hard disk system.  By comparison, a startup
alias to load the same system by "traditional" methods would take 14
seconds.  If the CBIOS is saved as well, installed hard disk, RAM disk and
other special drivers no longer need be loaded or initialized at each cold
boot, saving even more time.  Completely configured systems can be loaded
or replaced almost instantly.

The system loader files created by NZBLITZ are stand-alone COM files,
complete with loader.  These COM files also respond to ZCPR style help.
Though these files contain a ZCPR header, they do not require a Z-system in
order to run.  This is no accident, as one primary purpose for the NZBLITZ
is to cold start NZCOM systems.  Aside from speed in loading a fully
configured system, NZBLITZ system loader files can be very useful for
saving space on floppy systems.  Because NZCOM or NZCOM.LBR are not needed
once the COM file is created, there can be a savings in disk space if you
typically use one standard system.

When you run an NZBLITZ system loader file, you may suppress the write of
the NZCOM.CCP file by including the "/F" option on the command line.  If
you use this option, be CERTAIN that your current NZCOM.CCP runs at the
same address as the system you are going to load does.  Otherwise, the
system will crash - and quickly!  The system loader uses a function 37
reset, then exits directly to the CCP (which issues a function 13 reset
right away) to reset all disks.

See your NZCOM documentation for more information on customizing your NZCOM
systems.
Saving an NZCOM System

Saving your current NZCOM system is a simple as typing:

     NZBLITZ sysnam[.com].

If you forget the syntax, NZBLITZ responds to the usual ZCPR help request,
as well as "?" or a null command tail.  If the filetype is blank, NZBLITZ
will assume "COM.".  If you always want to run a specific series of commands
after the system image loads, simply enter the desired commands after the
NZBLITZ invocation.  NZBLITZ will save these commands and flush the
multiple command line after saving the system to the file SYSNAME.COM or
whatever you chose to call it.

For example, if you wanted to save the system to a file called SYSNAME.COM
and always wanted to set the clock and display the directory each time you
loaded that system, you would enter:

     NZBLITZ sysname;clock;dir

When you run SYSNAME, the CLOCK and DIR commands will run after the system
image is loaded.
Including an NZBLITZ System Loader File in an Alias Script

When an NZBLITZ system loader file is run in a ZCPR3 system, it will check
the multiple command line of the current system for any pending commands
before it loads the new system.  If there are any pending commands, they
will be saved and after the new system is loaded, they will be appended to
the new system's multiple command line.  The first commands to run will be
the commands you specified on the NZBLITZ command line when you created
your system loader file.  Finally, after these original commmands have run,
any old system pending commands will be run.

This means that you can now include NZBLITZ system loader files in alias
scripts.  You can change NZCOM systems quickly and automatically in order
to customize any or all of your system features specifically for whatever
application you wish to run.  You can now change the size and composition
of your system about as quickly and easily as loading a new RSX or IOP.
Adventures in Customized NZCOM/NZBLITZ Systems

As a simple example, if your usual "full-featured" 46k system has a TPA
that is too small to run your full-up version of WS4, you can write an alias
script called WS:

     WS tpa50;ws4 $*;tpa46

where TPA46.COM and TPA50.COM are NZBLITZ system loader files containing
system images for customized 46k and 50k systems respectively.  Let's assume
that your normal "full-featured" 46k system is loaded using TPA46.COM and
that a 50k system, customized for use with WS4 and perhaps including an RSX
such as the HPC calculator, is loaded using TPA50.COM.  When the WS alias
script is run, the special 50k system is loaded, WS4 is run to edit the
specified filename from the command line, and finally, the "full-featured"
46k system is automatically reloaded when you leave WS4.
