<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Fri, 31 Dec 1982 22:23:08-EST (Fri)
From   : Rick Conn <rconn@Brl.arpa>
Subject: ZCPR2 Summary

        The following is a summary of some of the major  features
of ZCPR2.  It is not complete, and I tried to make it as brief as
possible.  Its purpose is to give you some  idea  of  what  ZCPR2
does  and,  if you are still interested, the Concepts Manual goes
into a complete description and much more detail with examples.

        Enjoy!

                Rick

---- Summary Follows ----

     A Brief Overview of ZCPR2 Features and Facilities    1




                          Overview of ZCPR2
                           by Richard Conn



       The   Z80-based  Command  Processor  Replacement  Version  2 
  (ZCPR2)  is a replacement for the CP/M Console Command  Processor 
  (CCP)  which creates an extremely capable and  flexible  environ-
  ment,  placing a totally new interface on the user's CP/M system.  
  The  primary  purpose of ZCPR2 is to improve the user's  product-
  ivity by giving him an environment which is much more  responsive 
  to  his needs and configurable to his specific desires than  CP/M 
  2.2 while still remaining CP/M 2.2 compatable and allowing him to 
  run  most,  if  not all,  of his CP/M software with little or  no 
  modification.

       ZCPR2 provides an interactive interface to the user's micro-
  computer  which  is significantly extended  over  that  interface 
  provided  by the CP/M 2.2 CCP.   The user is invited to refer  to 
  the  Rationale Manual for a detailed comparison between the  CP/M 
  2.2  CCP and ZCPR2.   A working knowledge of CP/M 2.2 is  assumed 
  for  the following discussion.   Also,  the following  discussion 
  pertains to ZCPR2 systems which are configured in the recommended 
  way (see the Installation Manual).  There are over 4,000,000 ways 
  (conceivably)  that one may configure a ZCPR2 system for his  own 
  uses, and, as a general rule, the features described below may be 
  turned on or off as the system manager desires.

       There  are  currently  four documents planned  to  accompany 
  ZCPR2.  These documents and their functions are:

            1) Installation Manual -- How to Install ZCPR2
            2) Concepts Manual (this teaser was derived from it) --
                 a tutorial on the basic concepts associated with
                 using ZCPR2, the ZCPR2 System of Programs, and
                 the ZCPR2 environments
            3) Rationale -- why things were done the way they
                 were done under ZCPR2
            4) User's Guide -- how to use ZCPR2, including details
                 on all of the ZCPR2 commands in the ZCPR2 System


  1. Directories under ZCPR2

       A directory under ZCPR2 is a user area on a disk,  and it is 
  identified  by the combination of the disk letter and the  number 
  of  the  user area (like A10 or B7) or by a mnemonic  name  (like 
  JEFF or ROOT).   The directory is a logical concept, and there is 
  only  one physical file directory (which keeps track of  all  the 
  files) on each logical disk.











     A Brief Overview of ZCPR2 Features and Facilities    2


       The  disk/user way of identifying a directory (called the DU 
  form from here on) is standard to the ZCPR2-resident commands and 
  the ZCPR2-specific utilities.   In all cases, these commands will 
  permit use of the DU:  form wherever the simpler D: form was used 
  under CP/M 2.2,  and the D part of the DU: form is optional.  For 
  instance,  the following ZCPR2-resident commands are valid  exam-
  ples  which  illustrate  the utility of this  extended  directory 
  specification:

            A>DIR A7:
            A>DIR A:
            A>DIR 7:
            A>ERA B22:MYFILE.TXT
            A>TYPE C31:README.TXT
            A>LIST 12:LOCAL.MSG
            A>SAVE 2DH C12:SYSTEM.CPM

       Hence,  the user can "sit" in any directory on any disk  and 
  readily  work  with  files in any other directory  on  any  disk.  
  Likewise,  where  the  user used to be able to prefix a COM  file 
  with a disk letter in order to temporarily log into another  disk 
  and  extract that file from it,  the ZCPR2 user can prefix a  COM 
  file with a DU form:

            A>7:MYPROG
            A>C31:RUNIT
            A>B:MYGO

       Finally,  the  third logical extension of this DU form is to 
  allow  the user to employ it to "log into" a directory,  like  he 
  used the D:  form before to simply change disks and the "USER  n" 
  command to change user areas:

            A>B7:
            B7>12:
            B12>C:
            C12>0:
            C>

       As  a side note,  because of the flexibility of the DU form, 
  the  USER  command is no longer necessary and  is  not  available 
  under ZCPR2 unless a programmer implements it as a transient.

       ZCPR2 is a replacement for the CP/M 2.2 CCP,  but it is only 
  a part of the ZCPR2 SYSTEM.   The ZCPR2 System is a collection of 
  programs  consisting  of ZCPR2 itself and a series  of  utilities 
  designed  to  augment the capabilities of ZCPR2.   All  of  these 
  utilities  respond  to the ZCPR2 DU form,  just like  the  ZCPR2-
  resident commands,  while the conventional CP/M utilities do not.  
  For example,  the following commands show examples of some of the 
  ZCPR2 utilities available in the ZCPR2 distribution:












     A Brief Overview of ZCPR2 Features and Facilities    3


            A>XDIR B7:
            A>ERASE C4:FILE1.TXT,B31:FILE2.TXT,FILE3.TXT
            A>RENAME B12:*.BAS=*.BAK,14:MYFILE.TXT=HISFILE.TXT
            A>MCOPY C22:=A11:*.*

       These  ZCPR2 utilities,  however,  support a second form  of 
  directory  specification  as well.   This is the named  directory 
  specification,  called the DIR form from now on.  The DIR form is 
  a  logical  association between a mnemonic name and  a  disk/user 
  area.  For example, the directory name of ROOT may be assigned to 
  mean A0,  JEFF to mean C4,  BACKUP to mean C0,  etc.   All of the 
  ZCPR2 utilities (by and large) recognize this form as  well;  the 
  following are examples:

            A>XDIR WORK1:*.ASM
            A>ERASE TEXT1:FILE1.TXT,TEXT2:FILE2.TXT,FILE3.TXT
            A>RENAME JEFF:*.BAS=*.BAK
            A>MCOPY BACKUP:=*.*

       With the named directory environment fully implemented,  the 
  user's  ZCPR2 system can be configured in a number  of  different 
  ways  beyond even the 4,000,000+ basic ways ZCPR2 can be  config-
  ured.   In particular,  a directory tree structure can be set up, 
  similar to the UNIX concept but much more flexible.  For example, 
  the  following environment is one such working environment  which 
  can be created under ZCPR2:



         ----------------- ROOT -----------------------
         |                /    \                      |
       ROBERT         JEFF      LINDA               BOSS
         |           / |  \    / | | \              | ||
      HARDWORK      JA CB JC  LA CB LC LD      WATCHJ |WATCHL
                   /          |        |           WATCHR
                  GAMES      SCHOOL   GAMES
   

               Sample ZCPR2 Named Directory Structure


  2. ZCPR2 Resident Commands

       Like  the CP/M 2.2 CCP,  ZCPR2 contains some commands within 
  itself.   It contains all of the CCP commands (except USER, which 
  isn't needed anymore) and a few more,  but all of the ZCPR2 resi-
  dent  commands are different with logical extensions to  the  CCP 
  commands.   We  have already seen the DU form,  which can be used 
  with  any  ZCPR2 resident command.   Note that the DU form  is  a 
  logical extension of the D: prefix under CP/M 2.2.

       The  following is a comparison of the various resident  com-
  mand forms under the CP/M 2.2 CCP and ZCPR2:










     A Brief Overview of ZCPR2 Features and Facilities    4



                Comparison of ZCPR2 and CP/M 2.2 CCP
                          Resident Commands

  Function                      ZCPR2 Command       CCP Command
  Display $DIR File Names       DIR DU:afn          DIR D:afn
  Display $SYS File Names       DIR DU:afn S        No Equivalent
  Display All File Names        DIR DU:afn A        No Equivalent

  Erase Specified Files         ERA DU:afn          ERA D:afn
  Erase with Verify             ERA DU:afn V        No Equivalent

  Rename File                   REN DU:ufn=ufn2     REN DU:ufn=ufn2
  Rename Over Existing File     REN DU:ufn=ufn2     No Equivalent

  Print File on Console         TYPE DU:ufn P       TYPE D:ufn
    Without Paging
  Print File on Console         TYPE DU:ufn         No Equivalent
    With Paging
  Print File on Printer         LIST DU:ufn         No Equivalent

  Save Memory into File         SAVE n DU:ufn       SAVE n D:ufn
  Save Memory into File         SAVE n DU:ufn       No Equivalent
    With Overwrite Warning
  Save Memory into File         SAVE nH DU:ufn      No Equivalent
    and Specify Size in Hex
  Save Memory into File         SAVE n DU:ufn S     No Equivalent
    and Specify Number of        or
    Blocks                      SAVE nH DU:ufn S

  Load File Anywhere Into       GET adr DU:ufn      No Equivalent
    Memory

  Reexecute Last Transient      GO params           No Equivalent
    Without Reloading It

  Call Subroutine Anywhere in   JUMP adr            No Equivalent
    Memory

  Change Disk                   D:                  D:
  Change User                   U:                  USER n
  Change Disk and User at       DU:                 No Equivalent
    Same Time




















     A Brief Overview of ZCPR2 Features and Facilities    5


  3. ZCPR2 Standard Transient Commands

       All  of the CP/M-supplied transient commands will work  with 
  ZCPR2, and ZCPR2 supplies several additional ZCPR2-specific tran-
  sients, as indicated in the following tables:


  Program   Function
  -------   ---------
  CD        Log Into Named Directory with Extended Preprocessing
  COMPARE   Utility to Compare Two Files
  CRC       Cyclic Redundancy Check Utility
  DIFF      Utility to List File Differences
  DUTIL     Disk Utility, based on DU
  ECHO      Utility to Echo Its Command Line
  ERASE     File Erase Utility
  FINDBAD   Bad Block Scanner, based on FINDBD
  GENINS    Utility to Install Itself and Other Utilities
  HELP      Online Documentation System
  LD        Load Named Directory Buffer
  LU/LRUNZ  Command Library Utility and Extended Command Processor
  MCHECK    Menu File Syntax Checker
  MCOPY     File Copy Utility which can replace PIP in many cases
  MENU      Extended Command PreProcessor designed to create menus
  MKDIR     Create Named Directory File
  PATH      Define/Display ZCPR2 Paths
  PROTECT   Utility to Set File Attributes
  PWD       Print Current Named Directory Environment
  RENAME    File Rename Utility
  STARTUP   Initial Command Line Generator
  SUB2      Extended SUBMIT Indirect Command File Facility
  XDIR      Directory Display and Scan Utility
  ZEX       Memory-Based Indirect Command File Facility and Monitor


  4. Multiple Command Lines

       Another major feature of ZCPR2 is the Multiple Command Line.  
  Unlike  CP/M 2.2,  ZCPR2 will allow you to specify a sequence  of 
  commands  to  be executed on one  line.   Under  the  recommended 
  configuration,  each  command is separated by a  semicolon.   For 
  example:

            A>B:;DIR A7:*.TXT;DIR C22:*.COM A;C7:;ERA *.COM;DIR
            A>1:;TINIT ASM;B7:;WS TEST.TXT;ERA *.BAK;XDIR


















     A Brief Overview of ZCPR2 Features and Facilities    6


  5. Command Processing and Paths

       Command processing under CP/M 2.2 is really quite simple:
            1) Input and Parse Command Line from User or File
            2) Determine if it is a CCP-resident command and
               run it if so
            3) Determine if there is a COM file in the current
               disk/user area and load it and run it if so
            4) Print error message if 2 and 3 fail

       Command processing under ZCPR2, however, is quite different:
            1) Input and Parse Command Line from User or File
            2) Determine if it is a ZCPR2-resident command and
               run it if so
            3) Search along the command search path, logging into
               the disks and user areas indicated in the path until
               either the bottom of the path is reached or the
               desired COM file is found; run program if found
            4) Invoke an Extended Command Processor, passing the
               Command Line to it
            5) Print error message if 2, 3, and 4 fail


       As the reader can see,  the concept of a path is fundamental 
  to  ZCPR2.   In  the ZCPR2 vernacular,  a Path is a  sequence  of 
  directories  to be searched for a file.   The specification of  a 
  path  is  as  a sequence of DU forms which are  extended  by  the 
  introduction  of the "$" character to indicate a current disk  or 
  current user area.  A sample path is:

            $$ $0 A$ A0 -- Path From Current Disk/Current User 
                 to Current Disk/User 0 to Disk A/Current User to
                 Disk A/User 0 (Current Disk/User is the disk/user
                 area that the user is logged into)

       If  the  user is logged into B7,  for  instance,  then  this 
  symbolic path would be translated into the absolute path of B7 B0 
  A7 A0.

       When ZCPR2 searches for a file, it follows such a path.  Two 
  extremely flexible features about the ZCPR2 design are:

            1) the command search path may be redefined dynamically
               by the user
            2) several ZCPR2 transients use paths also, and these
               paths may be the same path used by command search or
               they may be unique to each transient
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>