;
                                   SNAP.COM                                   

             Size (recs) CRC   Version    Author/Latest Issue      Disk
SNAP.COM       1k (8)    5BD2  1.2        Rob Friefeld 4/90        Z3COM8
SNAP.CIM       1k (8)    BB78  1.2        Rob Friefeld 4/90        Z3COM8
SNAPRCP.COM    1k (4)    600A  1.1        Rob Friefeld 5/89        Z3COM8
SNAPRCP.CIM    1k (4)    67C8  1.1        Rob Friefeld 5/89        Z3COM8

  1- Usage  2- Notes  3- SNAPRCP                                              

   SNAP is  based on  Bob Andersson's LAP.COM.   It saves an image of the ENV,
TCAP, RCP, FCP,  IOP,  NDR, and PATH, together with a small loader to the file
named on the command line.   When the output file is run,  it  puts the images 
back where they came from, then calls the IOP initialization if present.   The
overhead for the loader  is less  than  2 records.   For  further flexibility, 
command line options permit saving only the segments wanted.   
:1


  Syntax   SNAP file[.typ] /oo...
           o = (T)cap, (R)cp, (F)cp, (I)op, (N)dr, or (P)ath

   Usage   SNAP SYS         <- Save current packages to file SYS.COM
           LDR OTHER.ENV,OTHER.RCP,OTHER.NDR,OTHER.FCP
           SNAP OTHER       <- Save this version to OTHER.COM
           SYS              <- Reload all original packages at once.
           OTHER            <- Run the other configuration.
           SNAP OTHERNDR /N <- Save only NDR
:2
 SNAP Notes - 1/3 

   a. SNAP is  not  a package relocator.   It just plugs  a  package setup back 
      into memory.   If you load  snap into  an incompatible  system configura-
      tion, you will crash.   (w/ NZCOM,  use  NZBLITZ or JETLDR.)   Note  that 
      SNAPRCP is now obsolete.

   b. Although the space allocated  to each package may vary,  you cannot load
      one size system over another with SNAP.

   c. The  same  scheme  is  followed  as  that  in  LAP.COM  -  disabling  of 
      interrupts, loading the image, calling the IOP initialization routine at
      IOPBASE+9, and enabling interrupts.
 SNAP Notes - 2/3 

   d. Vs. 1.2 updates:
      - As distributed,  SNAP will ask  whether or not to  erase  an  existing 
        file.   The default list of  segments to be automatically saved can be 
        configured.  (Use SNAP12.CFG with ZCNFG.COM by A. Hawley.)
      - Uses internal stack (lack of one caused a crash with Kaypro TurboROM).
      - New command line options.
      - The package loader does some mininal error checking before overwriting
        memory.   It makes sure that the current ENV descriptor is at the same 
        location as the one about to be loaded.   If  an  extended environment 
        has been installed, the loader then checks to see that the CCP,  BDOS, 
        and BIOS have not moved.   Finally,  if only  a few segments have been 
        saved, the loader insists that all of the  ENV  addresses  be the same 
        currently as when the snap was taken.  If all segments were saved, the
        user is allowed to load  a differently configured system.   This makes 
        sense only if the large system packages (RCP,  FCP,  IOP,  NDR) occupy 
        contiguous memory and are of constant total size.
 SNAP Notes - 3/3 

   e. Vs. 1.1 updates:
      - A patch byte at 10Dh (800Dh for CIM files) may  be set to  00 to cause
        SNAP to erase  an existing file without warning.  Any character on the
        command line at "o" reverses the sense of the default setting.  
      - The loader does  more error checking.   In addition to making sure the
        ENV descriptor is at the same address as when the image file was made,
        it adds up the total  memory allotted to the  RCP,  FCP,  IOP and  NDR
        packages to  make sure there's  enough room to overwrite them with the
        stored image (RCP, FCP, IOP and NDR must be contiguous in memory). The
        PATH size is checked separately. If a Z34 ENV is loaded, the addresses
        of the CCP, DOS, and BIOS are compared.   
      - The type3 version runs at 8000h and so does its output file.
:3

 SNAPRCP 

   SNAPRCP saves an image of the RCP segment to  an executable COM file.   The
output file will reload the RCP as long  as the system running at the time has
an RCP of the same or larger size at the same address.

   Usage   SNAPRCP RCP/SYS    - Save current RCP to file RCP/SYS.COM
           LDR CALC.RCP       - Load some other RCP
           SNAPRCP RCP/CALC   - Save this one
           RCP/SYS            - Origial RCP is back

   The advantage of using SNAPRCP is that the RCP loads very quickly.   Unless
you use  a huge RCP,  it is handy to  have several packages  to load - e.g., a 
file oriented  package (CP PROT  ERA REN  TYPE  LIST ...),  a  system-oriented
package (P POKE REG WHL Q MOVM FILL FIND ...), etc.
