;
                                   PPIP.COM                                   

             Size (recs) CRC   Version    Author/Latest Issue      Disk
               5k (37)   EEC7  1.9        Rick Charnes 11/88       Z3COM7

  1- Syntax/Options  2- Notes  3- Error Messages  4- Examples of Use          



   PPIP  is  a file copy  program  for  use  across  user  areas,  written  to
supplement SWEEP,  NSWP,  and PIP.  PPIP is best used to copy or backup just a
few files (eliminating the wait for SWEEP,  VFILER,  etc. to load  and start).
Version 1.0 (12/85) by David Jewett, III.
:1

  Syntax:  PPIP [du: or dir]<source.typ>[ [du: or dir:][<dest.typ>][ /options]

      or   PPIP [[du: or dir:]<dest.typ>=][du: or dir:]<source.typ>[ /options]


 Options:  /A (off)  <-- copy only unarchived files
(default)  /C (off)  <-- print the CRC value
           /E (off)  <-- delete (Erase) R/W files without asking
           /M (off)  <-- move a file (erase source file after copy)
           /V (off)  <-- do CRC verification
           /W (off)  <-- delete (Wipe) R/W & R/O files without asking

   When the 'move' mode is endabled, the /V option is forced on to provide CRC
verification.   If the /V or /M switch is on and the CRC fails,  the copy will 
be retried.
:2


PPIP Notes:

   a. Vs 1.5 has optional DateStamper support to copy datestamp of source file
      to destination.   This is noted in  the  built-in help screen and in the
      verify 'OK' message.

   b. Vs 1.8 adds Z80DOS support.  Vs 1.9 provides an interface with the ZCPR3
      error handler.  Aborting with Ctrl-C will set the ZCPR3 error flag to 7,
      if the destination disk is full, the ZCPR3 flag will be set to 8, and if
      the  directory on the destination disk is full,  PPIP will set the error
      flag to 9. 

   c. The following patch points are for the NON-ZCPR3 version of PPIP vs 1.8.
      For ZCPR3 versions, add 08H to all addresses.


    LABEL	 LOCATION		  PURPOSE		 DEFAULT
    ------------------------------------------------------------------------
    TRIGGER equate	specifies the trigger you want to use to	 '~'
    in source code      in enter literal control character from the
            	        CON:  Note, don't use '^; as trigger since
                 	doing so will prevent you from entering
	                the control character '^^'.

    SWID	        equateyour screen width in characters 		 80

    RETRY  0103H	the number of retrys you want PPIP to attempt	  3
		        if CRC verification fails.

    MAXDRV 0104h	your maximum accessible drive letter in caps	 'P'

    MAXUSR 0105H	your maximum accessible user number		  15



    SWITCH 0106H	specifies the character to be used to activate	 '/'
         		options in the command line
		        line

    VERIFY 0108H	the CRC verification option			V - off

    REPORT 010AH	the CRC report option (shows value in hex)	C - off

    ARCHIV 010CH	the archive option				A - off

    EMEND 010EH	        the option to allow overwriting R/W  files	E - off
		        without asking

    WIPE 0110H	        the option to allow erasing of all files	W - off
		        (both R/W and R/O) without asking

    MOVF 0112H          the move option				        M - off


    OPTIONS
    ------------------------------------------------------------------------
    A note regarding the options:  The options table is terminated
    with a zero in the options-character position.  If you want to
    "hard-wire" the options, you can simply terminate the table at
    the appropriate place.  The options status bytes must remain
    intact and must be set the way you want.  For instance, to turn
    the EMEND and WIPE options off permanently, you would substitute
    a zero for the 'E' at 0110H.
:3

Error Messages

	    MESSAGE			      MEANING
--------------------------------   ------------------------------
"<?> - unrecognized option"	   you have used an option
				   character that is invalid

"Archived"			   a copy operation is being
				   skipped because a file has
				   already been archived

"bad drive/user spec in <filename>" either the drive or the user
				   area you have specified is out
				   of bounds

"Can't close destination"	   the destination file has been
				   written but can't be closed


Error Messages (continued):

"Can't copy to same drive/user"    an attempt has been made to
				   write the destination file on
				   top of the source file

"can't open source"		   the source file has been
				   located but can't be opened

"Directory is full"		   there is no room left for
				   another entry in the disk
				   directory

"Disk full. Deleting file."	   the destination file is too
"Disk full. Copy deleted."	   big to fit on the specified
				   disk. The partial file will be
				   deleted.


Error Messages (continued):

"Duplicate!"			   a copy operation is being
				   skipped because it will over-
				   write the file just written

"Exists! Delete?"		   the file about to be written
"R/O! Delete?"			   exists. You should enter the
				   single character 'Y' or 'N' to
				   indicate whether the file
				   should be deleted.

"Ignoring:"			   the program will list and
				   ignore all arguments other
				   than the source and
				   destination file names and
				   options.


Error Messages (continued):

"invalid characters in <filename>" you have used an illegal
				   character in the file name.
				   Unacceptable characters are
				   the comma, semi-colon, colon,
				   equals sign, and single and
				   double quotes

"No destination file specified"    issued only when CON: is the
				   source file and a destination
				   file name must be specified

"no file <filename>"		   the file name you have used
				   cannot be found on the
				   specified drive and user area


Error Messages (continued):

"Ok"				   tells you how the CRC check
"failed"			   came out

"Out of memory" 		   PPIP puts all the expanded
				   source file names in memory
				   and uses all memory above that
				   for disk buffering. If no
				   memory is left after the
				   source file name is expanded
				   you will get this error
				   message

"Please check your disk"	   CRC has failed retry + 1 times
				   so something is seriously
				   wrong


Error Messages (continued):

"User abort"			   you have used control-C to
				   abort the copy process

"verify file open error"	   the destination file has been
				   written but can't be reopened
				   for verification

"Verifying"			   tells you that CRC
				   verification is being done

"Wildcards not allowed" 	   issued only when CON: is the
				   source file. The destination
				   file name must be unambiguous
:4


Examples of Use:

   a. A0>PPIP                           <-- print help menu

   b. A0>PPIP B0:*.*                    <-- copy all files on B0: to A0:

   c. C8>PPIP A:*.COM 5:*.OBJ           <-- (MS-DOS) copy all .COM files on
                                            A8: to .OBJ files with the same
                                            names on C5:

   d. A0>PPIP B15:X*.* C0:Z*.*          <-- (MS-DOS) copy all files on B15:
                                            that start with 'X' to files with
                                            the same names, except starting
                                            with 'Z', on C0:



Examples of Use (continued):

   e. B14>PPIP *.* C0:?????BAK.*        <-- (MS-DOS) copy all files on B14:
                                            to C0: and insert the letters
                                            'BAK' at the end of the filename

   f. B8>PPIP D0:=A0:KMD.COM            <-- copy the KMD.COM file on A0: to
                                            D0:

   g. A0>PPIP D0:=B11:*.?Q?             <-- copy all files with a 'Q' in the
                                            extension that appear on B11: to
                                            D0:

   h. A15>PPIP COPY.COM=0:PPIP.COM      <-- copy PPIP.COM on A0: to COPY.COM
                                            on A15:

   i. D5>PPIP B0:MYFILE.DOC=CON:        <-- copy console input to MYFILE.DOC
                                            on B0:
