he    ZCPR2 -- An Enhanced Z80-Based Replacement for the CP/M CCP
fo Installation Instructions                          Page #


              Installation Instructions for ZCPR2

1.0 Introduction

    Installatio� o� ZCPR� i� � somewha� involve� process�� an� �
th� installe� shoul� hav� � fair-to-goo� workin� knowledg� o� th� �
following:

         1� 808� an� Z8� assembl� languag� programming
         2) CP/M 2.2
         3) the CP/M SYSGEN procedure and how to replace the
              operating system on the system tracks of the
              target system

    Th� memor� image� o� � CP/� syste� an� � ZCPR2-base� syste� �
ar� presente� belo� fo� � conventiona� CP/� system��  Th� actua� �
addresse� ma�� var�� fro� syste� t� system�� an� th� installe� �
shoul� b� awar� o� wha� thes� addresse� ar� fo� th� specifi� �
target system.


-- Diagram 1 --

Address        CP/M Image               ZCPR2 Image

              ---------------------    ----------------------
              | BIOS              |    | BIOS with Modified |
              |                   |    |   Cold Boot *      |
BDOS+0E00H-->  ---------------------    ----------------------
              | BDOS              |    | BDOS (No Change)   |
CCP +0800H-->  ---------------------    ----------------------
              | CP/M 2.2 CCP      |    | ZCPR2 *            |
BOOT+0080H-->  ---------------------    ----------------------
              | BOOT              |    | BOOT               |
BASE+xxxxH-->  ---------------------    ----------------------
              | Junk and SYSGEN   |    | Junk and SYSGEN    |
BASE= 100H-->  ---------------------    ----------------------


           CP/M and ZCPR2-based SYSGEN Memory Images

    Installatio� require� � modifie� BIO� imag� an� � ZCPR� �
imag� t� b� place� ove� th� origina� CP/� 2.�� BIOӠ an� CC� �
images��  Th� res� o� th� syste� ca� sta� th� same��  Thos� ne� �
image� ar� marke� wit� a� asteris� (*� above.


    Typical address values are indicated below:

                        SYSGEN Image             SYSGEN Image
Value                    Conventional CP/M        Morrow CP/M
xxxxH                         800H                   ~ 980H
BOOT  = BASE + xxxxH          900H                    1080H
ZCPR2 = BOOT + 80H            980H                    1100H
BDOS  = ZCPR2 + 800H         1180H                    1900H
BIOS  = BDOS + 0E00H         1F80H                    2700H
End of Operating System      ????H                    2DFFH

    Refer back to Diagram 1 for clarification.

    The installation process involves three steps:

         1) Configuring your BIOS and setting the ZCPR2 options
         2) Overlaying the CCP with ZCPR2 and the old BIOS with
              the new BIOS in the SYSGEN Image
         3) Placing the new SYSGEN Image onto the Operating
              System tracks of the disk

    Th� installe� i� invite� t� refe� t� th� CP/� 2.� Alteratio� �
Guide� b� Digita� Researc� fo� detail� i� procedure��  Thi� manua� �
specificall�� cover� installatio� o� � BOO� an� BIOS�� bu� thes� �
concept� ca� b� logicall� extende� t� th� CC� (ZCPR2� a� well.


1.1 Required Software for Installation

    ZCPR� i� t� b� installe� o� � workin� CP/� 2.� system��  Th� �
specific commercial software required to do this installation is:

         1) A working CP/M 2.2 System
         2) the MAC assembler of Digital Research
              (another assembler may be substituted, but source
               code modification to ZCPR2 may be required to do
               an installation with an assembler other than MAC)
         3) a debugger, like DDT, for the overlay process
         4) a disk utility, like SYSGEN, to be used to place the
              operating system image onto the operating system
              tracks on disk


   Th� non-commercia� softwar� require� fo� ZCPR� installatio� �
is:

      1) source to ZCPR2

      2�� th� CCPLOà progra� (ma�� b� required�� an� i� �
         provide� i� th� ZCPR� distribution)

      3�� sourc� t� th� BIO� o� th� targe� machin� o� th� �
         overla�� fo� th� BIO� Col� Boo� routin� fo� th� �
         targe� machin� (thi� ma� b� availabl� commercially)

      4�� th� ZCPR� utilitie� (sourc� i� typicall� no� re�
         quire� fo� installatio� sinc� th� GENINӠ progra� �
         ca� perfor� installatio� i� mos� cases)�� thes� �
         utilitie� an� thei� source� a� include� i� th� �
         ZCPR� distribution

    �� listin� o� th� ZCPR�� distributio� software�� wit� CR� �
value� s� tha� yo� ca� chec� t� se� tha� yo� hav� goo� copie� o� �
everything� i� include� i� Appendi� � o� thi� document.


1.2  Required Hardware for Installation and Running ZCPR2

    Th� hardwar� requirement� fo� th� installatio� o� ZCPR� ar� �
as follows:

         CP/M 2.2 - based system (or ZCPR2 - based system)
         8080 or Z80 microprocessor
         32K bytes of memory
         110K bytes of disk space for source, BAK, and HEX files
         computer terminal

    The hardware requirements for running ZCPR2 are:

         ZCPR2 - based system
         Z80 microprocessor
         48K bytes of memory
         110K bytes of disk space (recommended minimum)
         computer terminal



2.0 Installing ZCPR2

    I� orde� t� instal� ZCPR� o� � targe� microcomputer�� th� �
use� mus� kno�� tw� basi� thing� abou� hi� Consol� Comman� �
Processor (CCP):

         1) Where it is located when it is executed
         2� Wher� i� i� locate� i� th� SYSGE� Imag� or� fo�
              system� whic� don'� suppor� SYSGEN� wher� hi� CC�
              is located on disk and how to place the new ZCPR2
              on top of it

    Note Diagrams 1 and 2:

-- Diagram 1 --

Address        CP/M Image               ZCPR2 Image

              ---------------------    ----------------------
              | BIOS              |    | BIOS with Modified |
              |                   |    |   Cold Boot *      |
BDOS+0E00H-->  ---------------------    ----------------------
              | BDOS              |    | BDOS (No Change)   |
CCP +0800H-->  ---------------------    ----------------------
              | CP/M 2.2 CCP      |    | ZCPR2 *            |
BOOT+0080H-->  ---------------------    ----------------------
              | BOOT              |    | BOOT               |
BASE+xxxxH-->  ---------------------    ----------------------
              | Junk and SYSGEN   |    | Junk and SYSGEN    |
BASE= 100H-->  ---------------------    ----------------------

           CP/M and ZCPR2-based SYSGEN Memory Images


-- Diagram 2 --

Address        CP/M Image               ZCPR2 Image

              ---------------------    ----------------------
              | BIOS              |    | BIOS with Modified |
              |                   |    |   Cold Boot        |
BDOS+0E00H-->  ---------------------    ----------------------
              | BDOS              |    | BDOS (No Change)   |
CCP +0800H-->  ---------------------    ----------------------
              | CP/M 2.2 CCP      |    | ZCPR2              |
CCP Base  -->  ---------------------    ----------------------
              | Scratch Area      |    | Scratch Area       |
100H      -->  ---------------------    ----------------------
              | CP/M Buffers et al|    | ZCPR2 Buffers et al|
 0H      -->  ---------------------    ----------------------

             CP/M and ZCPR2-based Executing Images


Question 1:  Where is the CCP located when it is executed?

    �� progra� calle� CCPLO� i� provide� i� th� ZCPR�� distribu�
tion��  Thi� program� whos� CO� fil� i� se� u� t� ru� startin� a� �
100H�� wil� retur� t� yo� th� bas� addresse� o� you� CCP�� BDOS� �
an� BIOS��  Thi� progra� b� itsel� answer� th� firs� questio� fo� �
you.

    I� yo� ar� runnin� � non-OR� � CP/� system� yo� wil� hav� t� �
reassembl� CCPLO� i� orde� t� ru� it�  Thi� discussio� i� orient�
e� toward� OR� � CP/� systems�� bu� i� i� no� difficul� t� adjus� �
offset� fo� non-OR� � systems.


Questio� 2�  Wher� i� th� CC� locate� i� th� SYSGE� Imag� or� fo� �
system� whic� don'� suppor� SYSGEN�� wher� i� th� CC� locate� o� �
dis� an� ho� wil� th� ne� ZCPR� b� place� o� to� o� it?

    Thi� questio� i� no� answere� nearl� s� easily�  I� yo� hav� �
th� abilit� t� SYSGE� you� system�� i� i� muc� easie� (commonly� �
tha� i� yo� d� not��  Yo� must�� afte� assemblin� ZCPR� properly� �
integrat� i� int� th� SYSGE� (o� disk� imag� o� CP/M��  Thi� ca� �
b� don� b� obtainin� � SYSGE� imag� o� you� system�� scannin� i� �
vi� � debugge� suc� a� DD� t� fin� th� offse� fo� th� CCP� �
readin� ZCPR� i� o� to� o� th� CP/� 2.� CCP�� an� finall� runnin� �
SYSGEΠ agai� t� plac� th� resultan� syste� o� disk��  I� yo�� D� �
NO� hav� SYSGE� capability� � Dis� Utilit� progra� i� require� t� �
locat� th� CC� o� dis� an� the� writ� ZCPR� o� to� o� th� ol� �
one��  Th� ne� resul� o� thi� integratio� i� th� placemen� o� �
ZCPR�� ont� dis� i� th� prope� plac� s� tha� i� wil� b� loade� �
wit� th� res� o� CP/� o� col� boo� an� execute� properly.

    T� fin� th� origina� CP/� 2.� CCP�� yo� typicall� hav� t� �
locat� i� b� it� appearance��  I� ma� b� store� contiguousl�� o� �
disk� so� onc� i� i� found� � sequentia� overwrit� i� al� tha� i� �
required��  Thi� i� no� alway� th� case� however� an� you� parti�
cula� situatio� ma� b� different��  Probabilit� i� extremel� hig� �
tha� i� i� store� contiguousl� i� th� SYSGE� image.

    Th� CCР start� wit� tw� an� ONL٠ TWϠ jum� instruction� �
followe� b� � buffe� are� (possibl� containin� a� initia� comman� �
and/o� th� Digita� Researc� copyrigh� notice)��  Th� Digita� Re�
searc� manual� sho�� th� CC� t� resid� a� addres� 980Ƞ i� th� �
SYSGE� Image�� bu� thi� ma� var� wit� th� particula� syste� (not� �
previou� diagrams)��  T� fin� thi� image�� us� DD� o� som� othe� �
debugger�� loa� th� SYSGE� image�� an� examin� memor� startin� a� �
aroun� 900� fo� th� tw� (an� ONL� two� jump� describe� above�  I� �
yo� fin� a� are� wit� mor� tha� tw� jump� (� grou� o� them)�� yo� �
ar� probabl� lookin� a� th� BIO� an� shoul� g� lowe� fo� th� CCP�  �
Th� CC� wil� probabl� star� o� a� eve� pag� o� half-pag� addres� �
(lik� 900H� 980H� 1100H� etc).


    No� th� location� o� th� CC� i� th� SYSGE� imag� an� i� th� �
runnin� imag� ar� known��  Recor� thes� addresse� fo� later�  Yo� �
ar� no� read� fo� th� integratio� o� ZCPR� an� th� ne� BIO� int� �
you� system�  T� d� this� perfor� th� followin� steps:

         1�� Assumin� tha� yo� ca� us� SYSGEN�� obtai� � SYSGE� �
imag� o� you� curren� CP/� syste� an� sav� i� o� disk��  Als� ru� �
CCPLO� an� obtai� it� values.

         2�� Edi� ZCPRHDR.LI� an� se� th� CPRLO� equat� t� th� �
addres� o� th� runnin� CC� imag� obtaine� above��  Se� an�� flag� �
an� value� a� yo� desir� (se� th� ZCPR� Customizatio� section).

         3� Edi� you� BIO� o� BIO� Overla� an� se� u� you� Col� �
Boo� routin� t� perfor� th� necessar� initialization� fo� th� �
ZCPR� feature� yo� hav� selecte� (se� th� sectio� o� Modificatio� �
o� th� BIO� Col� Boo� Routin� below)��  Whe� satisfied�� en� th� �
edi� session.

         4�� Assembl� ZCPR� wit� MAà (o� equivalent)��  Thi� �
assemble� i� require� becaus� o� th� MACRO� used��  Onl�� th� �
resultan� HE� fil� i� require� fo� th� res� o� th� installatio� �
procedure�� s� yo� ca� ge� ri� o� ZCPR� sourc� i� yo� ar� runnin� �
shor� o� dis� space.

         5� Assembl� you� BIO� o� BIO� Overlay�  Again� onl� th� �
resultan� HE� fil� i� required�� s� yo� ca� ge� ri� o� th� sourc� �
onc� th� assembl� i� complete.

         6�� Loa� th� SYSGE� imag� int� memor�� wit� DDԠ (o� �
equivalent)�  Onc� loaded� verif� tha� th� origina� CC� i� a� th� �
IMAGŠ addres� foun� abov� an� comput� th� integratio� offse� �
usin� th� DD� � command:
                        H<IMAG� address>,<RUNNIN� address>

Th� secon� numbe� displaye� give� yo� th� OFFSE� valu� require� �
fo� step� � an� 8.

         7�� Integrat� ZCPR� int� you� SYSGE� imag� vi� DDT'� � �
an� ROFFSEԠ commands��  Us� IZCPR2.HE� (o� th� nam� o� you� �
versio� o� ZCPR2� t� loa� th� FC� an� ROFFSE� (wher� OFFSEԠ wa� �
compute� i� Ste� 6� t� loa� th� ZCPR2.HE� fil� int� memor� a� th� �
prope� location��  Chec� t� se� tha� ZCPR� i� indee� properl� �
loaded by examining the SYSGEN IMAGE area.

         8� Integrat� you� ne� ZCPR� BIO� int� you� SYSGE� imag� �
vi� DDT'� � an� ROFFSE� commands��  Us� IBIOS.HE� (o� th� nam� o� �
you� versio� o� th� BIOS� t� loa� th� FC� an� ROFFSEԠ (wher� �
OFFSEԠ wa� compute� i� Ste� 6� t� loa� th� BIOS.HEؠ fil� int� �
memor�� a� th� prope� location��  Chec� t� se� tha� th� BIOӠ i� �
indee� properl� loade� b� examinin� th� SYSGE� IMAG� area.

         9�� Plac� th� ne� syste� o� dis� b� runnin� SYSGEΠ an� �
NOT loading the system from disk (use the memory image). �
2.1 ZCPR2 Installation Example

    Fo� furthe� clarificatio� o� th� abov� procedure�� th� �
followin� i� � sampl� termina� sessio� whic� outline� th� step� �
taken��  I� i� ru� fro� � ZCPR� system�� an� th� scree� display� �
are edited to omit unnecessary detail and improve clarity.

B1>;
B1>;  Sample terminal session which illustrates ZCPR2 installation
B1>;   This is done from a running ZCPR2 system and shows some of
B1>; the extended features of ZCPR2
B1>;
B1>
B1>;
B1>;  Step 1a -- SYSGEN
B1>;
B1>hdsysgen
SYSGEN VER 2.2
SOURCE DRIVE NAME (OR RETURN TO SKIP)a
SOURCE ON A, THEN TYPE RETURN
FUNCTION COMPLETE
DESTINATION DRIVE NAME (OR RETURN TO REBOOT)

B1>save 45 cpzm.cpm
B1>;
B1>;  Step 1b -- Run CCPLOC to get addresses
B1>;
B1>ccploc
CCPLOC  Version 1.0

CP/M Element    Base Page       Base Address
------------    ---------       ------------
   CCP            BDH             BD00H
   BDOS           C5H             C506H
   BIOS           D3H             D300H


B1>;
B1>;  Note the files I am working with
B1>;
B1>xdir

XDIR III, Version 1.3    Vertical Listing by File Type and Name
Disk: B  User:   1, File Attributes:  Non-System

Filename.Typ Size K   Filename.Typ Size K   Filename.Typ Size K
-------- --- ------   -------- --- ------   -------- --- ------
CHBIOSZ .ASM     52   CPZM    .CPM     12   ZCPRHDR .LIB     12
ZCPR    .ASM     56   CBIOSHDR.LIB     12
   5 Files Occupying   144K,    33 Files on Disk and  4360K Free

B1>


B1>;
B1>;  Step 2 -- Edit ZCPRHDR.LIB and set all options and values
B1>;
B1>ed zcprhdr.lib
    -- Detail Left Out --
B1>
B1>;
B1>;  Step 3 -- Edit CHBIOSZ.ASM and CBIOSHDR.LIB and set Cold
B1>;      Boot Inits
B1>;      You will probably only have to deal with one BIOS file
B1>;
B1>ed chbiosz.asm
    -- Detail Left Out --
B1>ed cbioshdr.lib
    -- Detail Left Out --
B1>;  I'll erase the backup files now
B1>era *.bak
CHBIOSZ .BAK  |  ZCPRHDR .BAK  |  CBIOSHDR.BAK
B1>
B1>;
B1>;  Step 4 -- Assemble ZCPR2
B1>;        I will also run TIME to show you how long it takes
B1>;
B1>time;mac zcpr2 $pz sz;time
TIME  Version 1.1    1:43:38 AM on Thursday December 16, 1982
CP/M MACRO ASSEM 2.0
C4FC                <-- Note the ZCPR2 MUST end before BDOS
01CH USE FACTOR     <-- begins!
END OF ASSEMBLY

TIME  Version 1.1    1:45:18 AM on Thursday December 16, 1982
B1>
B1>;
B1>;  Step 5 -- Assemble BIOS
B1>;
B1>time;mac chbiosz $pz sz;time
TIME  Version 1.1    1:49:15 AM on Thursday December 16, 1982
CP/M MACRO ASSEM 2.0
FCE0
01AH USE FACTOR
END OF ASSEMBLY

TIME  Version 1.1    1:50:32 AM on Thursday December 16, 1982
B1>xdir

XDIR III, Version 1.3    Vertical Listing by File Type and Name
Disk: B  User:   1, File Attributes:  Non-System

Filename.Typ Size K   Filename.Typ Size K   Filename.Typ Size K
-------- --- ------   -------- --- ------   -------- --- ------
CHBIOSZ .ASM     52   CHBIOSZ .HEX      8   CBIOSHDR.LIB     12
ZCPR2   .ASM     56   ZCPR2   .HEX      8   ZCPRHDR .LIB     12

CPZM    .CPM     12
   7 Files Occupying   160K,    35 Files on Disk and  4344K Free �
B1>;
B1>;  Step 6 -- Run DDT and locate the CCP
B1>;
B1>ddt cpzm.cpm
DDT VERS 2.0
NEXT  PC
2E00 0100
-d900,90f      <-- Start looking around here
0900 31 80 E7 3E 06 3C 3C FE 1B CA 00 C2 DA 11 E7 D6
-da00,a0f
0A00 31 00 01 01 01 0C C5 CD 0F E4 21 00 BE 11 00 04
-db00,b0f
0B00 31 00 01 01 01 11 C5 CD 0F E4 21 00 C0 11 00 02
-db80,b8f
0B80 31 00 01 01 09 01 CD A8 00 21 00 D2 11 00 C2 0E
       -- Detail Left Out --
-d1100         <-- I found it at 1100H; note the 2 JMP's
1100 C3 FF BD C3 FB BD 50 10 20 20 20 20 20 20 20 20
1110 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00
1120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
       -- Detail Left Out --
-h1100,bd00
CE00 5400      <-- Integration Offset is 5400 for my system
-^�            <-- Retur� t� CP/M� � kno� tha� CPRLO� wil� be
                   BD00H and the IMAGE offset is 1100H

B1>
B1>;
B1>;  Steps 7 and 8 -- Perform integration of ZCPR2 and BIOS
B1>;
B1>ddt cpzm.cpm          <-- Edit CP/M Image
DDT VERS 2.0
NEXT  PC
2E00 0100
-h1100,800               <-- Compute End Address of CCP
1900 0900                <-- (CCP is 800H bytes long)
-f1100 18ff 0            <-- Zero Fill Area (I like to do this)
-izcpr2.hex              <-- Overlay ZCPR2
-r5400                   <-- Offset Computed Above
NEXT  PC
2E00 0000
-h1900,e00               <-- Compute Beginning of BIOS
2700 0B00
-f2700 2dff 0            <-- Zero Fill Area (I like)
-ichbiosz.hex            <-- Overlay BIOS
-r5400                   <-- Offset Computed Above
NEXT  PC
2E00 0000
-^C                      <-- Done


B1>;
B1>;  Step 9 -- Perform SYSGEN
B1>;
B1>save 2dh cpzm.cpm          <-- Save file (note HEX page count)
Erase CPZM    .CPM?y
B1>hdsysgen                   <-- SYSGEN to disk from memory
SYSGEN VER 2.2
SOURCE DRIVE NAME (OR RETURN TO SKIP)             <-- Skip
DESTINATION DRIVE NAME (OR RETURN TO REBOOT)a     <-- Select A
DESTINATION ON A, THEN TYPE RETURN
FUNCTION COMPLETE
DESTINATION DRIVE NAME (OR RETURN TO REBOOT)      <-- REBOOT!


B1>

3.0 ZCPR2 Customization

    Th� fil� ZCPRHDR.LI� contain� al� o� th� customizatio� equ�
ate� an� value� fo� ZCPR2�� an� i� i� typicall� no� necessar�� t� �
edi� ZCPR2.AS� i� orde� t� configur� i� t� you� desires�  Editin� �
ZCPRHDR.LI  i� th� onl� procedur� necessar�� t� perfor� suc� �
customization.

    I� thi� sectio� o� th� Installatio� Manua� � wil� g� throug� �
eac� o� th� equate� an� valu� setting� i� ZCPRHDR.LI� i� sequenc� �
(fro� beginnin� t� end)��  Thi� allow� yo� t� simpl� ste� throug� �
th� fil� wit� a� edito� whil� yo� ar� readin� thi� manual��  Th� �
documentatio� i� thi� manua� augment� th� documentatio� i� �
ZCPRHDR.LI  t� giv� yo� � fairl� complet� explanatio� o� eac� �
option.

    I� i� importan� tha� yo� hav� rea� th� Concept� Manua� �
befor� performin� thi� customization��  Knowledg� o� ho� CP/� 2.� �
work� an� th� content� o� th� Concept� Manua� i� assume� i� thi� �
sectio� o� th� Installatio� Manual.


    1�� RE� -- Configure� CPRLO� (CPRLO� eq� 0� fo� integratio� �
vi� MOVCP� rathe� tha� th� DDT/SYSGE� techniqu� outline� above� �
se� t� TRU� fo� MOVCP� integratio� o� FALS� fo� DDT/SYSGE� inte�
gration

    2�� BAS� -- Bas� addres� o� you� CP/� system�� standar� CP/� �
ha� � bas� o� 0�� bu� som� CP/� system� (suc� a� fo� th� TRS-8� �
Mode� I� star� physica� RA� memor� a� � highe� address�� equat� �
BAS� t� th� startin� RA� memor� addres� o� you� system

    3�  CPRLO� -- Thi� i� th� startin� addres� o� ZCPR2� se� th� �
secon� CPRLO� equat� t� th� addres� yo� obtai� fro� CCPLOC�� i� �
yo�� hav� � "standard� system�� yo� ma� wis� t� us� th� MSIZE� �
BIOSEX� an� CPRLO� equate� whic� ar� commente� ou� instea� o� th� �
simpl� CPRLO� � prefe� t� use

    4��  CPRҠ -- Thi� i� th� valu� o� OFFSET�� an� yo� ma�� se� �
thi� equat� accordin� t� you� syste� a� desired�� i� i� no� use� �
b� ZCPR2� bu� i� doe� provid� yo� wit� th� require� valu� withou� �
having to compute it via the H command in DDT

    5��  BIO� -- Thi� i� � standar� equat� an� usuall� doe� no� �
need to be changed

    6��  COMTYР an� SUBTY� -- Thes� MACRO� allo� yo� t� defin� �
th� fil� typ� o� th� CO� an� SU� files�� thi� i� a� optio� whic� �
improve� flexibility�� and�� i� som� environments�� i� ma�� b� �
desirable to type COM files as something else, like OBJ

    7��  SUBOΠ -- Thi� turn� o� th� SUBMIԠ fil� processin� �
facility of ZCPR2
�      8��  DRVPREFIؠ -- Thi� enable� o� disable� th� abilit�� t� �
specif� command� beginnin� wit� � disk/use� prefix�� lik� "A4:X� �
o� "B:RUNIT"

    �� sid� effec� o� DRVPREFI� bein� TRU� i� tha� th� curren� �
disk/use� i� automaticall� scanne� befor� th� pat� searc� begins.

     9��  DRVPFATԠ -- Thi� fla� allow� th� use� t� selec� th� �
attribute� o� th� file� i� th� curren� disk/use� t� b� examine� �
i� th� DRVPREFI� fla� i� TRUE�  Th� followin� value� ar� defined:

              DRVPFATT  Files Selected
              --------  --------------
                  0     System
                 80H    Directory
                  1     Both System and Directory

    10��  USERO� -- Thi� fla� enable� o� disable� th� abilit� o� �
the user to select different user areas via the DU: prefix.

    11��  xxxxO� -- Thes� flag� enabl� o� disabl� variou� ZCPR2-�
residen� commands��  MACRO� ar� availabl� late� i� ZCPRHDR.LI� t� �
defin� th� name� o� th� command� i� th� use� wishe� t� chang� �
them�  Thes� xxxxO� flag� are:

              Flag      Commands Affected
              ----      -----------------
              DIRON          DIR
              LTON           LIST, TYPE
              GOON           GO
              ERAON          ERA
              SAVEON         SAVE
              RENON          REN
              GETON          GET
              JUMPON         JUMP

    12�  INTPAT� -- Thi� fla� determine� i� ZCPR� use� a� inter�
na� pat� o� a� externa� pat� fo� CO� fil� searches��  I� INTPAT� �
i� FALSE�� the� Externa� Pat� i� selecte� an� th� nex� equate� �
PATH� define� th� bas� addres� o� thi� Externa� Path�  I� INTPAT� �
i� TRUE�� the� th� followin� IPAT� macr� i� use� t� defin� th� �
Interna� Path�� an� thi� pat� i� locate� withi� ZCPR�� itsel� �
(takin� u� space).


    13��  ERAx�� an� ERDFL� -- Thes� equate� dea� wit� th� ER� �
comman� specifically�� an� ar� simpl� ignore� i� ER�� i� turne� �
off�  The� wor� togethe� t� provid� th� followin� feature� t� th� �
ERA command:

         -- Settings --
         ERAOK     ERAV      Feature
         FALSE     anything  ERA will not ask to verify before
                               performing the erase
         TRU�      FALS�     ER� wil� alway� as� t� verif�
                               before performing the erase
         TRUE      TRUE      ERA will ask to verify before
                               performing the erase only if the
                               ERDFLG (recommended to be "V")
                               flag appears in the command line
                               after the file spec

    14��  DUPRMPԠ -- Thi� equat� enable� o� disable� th� "du>� �
prompt��  I� enabled�� th� promp� fo� use� inpu� wil� appea� a� �
"d>� o� "du>� (se� th� SUPRE� fla� belo� also)�  I� disabled� th� �
promp� wil� onl� appea� a� ">"��  Se� als� CPRMPԠ an� SPRMP� �
below.

    15��  MULTCMĠ e� a� -- Thi� equat� enable� o� disable� th� �
ZCPR� multipl� comman� lin� feature�  I� se� t� TRUE� th� featur� �
i� enable� an� th� CMDSEP�� CLBASE�� an� BUFLE� equate� tak� ef�
fect.

         These other equates mean the following:

              CMDSEP -- defin� th� characte� use� t� separat� �
�������������������������eac� entr� i� th� comman� line� i� chan�
�������������������������ge� fro� th� defaul� o� ";"�� al� th� �
�������������������������ZCPR� utilitie� hav� t� b� reinstalled

              CLBASE -- bas� addres� o� th� Multipl� Comman� �
�������������������������Lin� Buffer

              BUFLEN -- siz� o� th� Multipl� Comman� Lin� Buffe� �
�������������������������i� bytes�� MUS� b� les� tha� 25� (� hav� �
�������������������������foun� 20� t� b� quit� sufficient)


    16��  Whee� Byt� Selectio� -- Th� Whee� Byt� facilit�� o� �
ZCPR� i� use� t� mak� ZCPR� � mor� secur� syste� b� enablin� an� �
disablin� selecte� ZCPR� residen� commands��  Wit� thi� facilit� �
enabled� � Whee� Byte� whic� i� simpl� � byt� whos� valu� i� � o� �
0FF� tha� exist� somewher� i� memory� i� examine� befor� � wheel-�
base� comman� i� executed��  I� thi� byt� i� no� zero�� the� th� �
comman� executes�� i� i� i� zero� the� th� comman� i� no� allowe� �
t� execut� an� i� exite� wit� a� erro� message��  Th� ZCPR� �
transien� WHEE� i� employe� b� � privilege� use� t� se� an� rese� �
th� Whee� Byte�� wit� th� WHEE� command�� � passwor� i� require� �
before any action is taken.

         Th� nex� se� o� equate� i� use� t� (1�� defin� th� �
addres� o� th� Whee� Byt� an� (2� selec� th� command� whic� ar� �
t� respon� t� th� Whee� Byt� settin� an� abor� wit� erro� i� th� �
Wheel Byte is a zero.

              WHLADR - Address of Wheel Byte

              WERA, WREN, WLT, WGO, WSAVE, WGET, WJUMP, WDU -
                   If TRUE, these equates make their associated
                   commands respond to the Wheel Byte:

                   Equate  Association      Equate  Association
                   WERA      ERA            WSAVE     SAVE
                   WREN      REN            WGET      GET
                   WLT       LIST/TYPE      WJUMP     JUMP
                   WGO       GO             WDU       DU: Change


    17��  Th� nex� equate� ar� use� t� defin� th� stac� use� b� �
ZCPR2��  Th� stac� ma� b� place� interna� t� ZCPR�� (takin� u� �
space�� o� externa� t� ZCPR2��  Th� INTSTAC� equat� determine� i� �
th� stac� i� interna� t� ZCPR2�� i� TRUE�� suc� i� th� case��  I� �
INTSTAC� i� FALSE�� the� th� STKBAS� equat� determine� wher� th� �
botto� o� th� 48-byt� stac� i� locate� i� memory��  Th� installe� �
shoul� no� chang� th� STAC� equat� followin� STKBASŠ sinc� 4� �
byte� (an� n� more� ar� require� fo� th� stack��  Not� tha� th� �
stack grows DOWN to STKBASE.  Summary:

         INTSTACK - TRUE if stack is internal to ZCPR2
         STKBASE  - if INTSTACK is FALSE, then this is the
                        address of the bottom of the stack


    18��  Simpl� Customizatio� Symbol� -- Thes� symbol� provid� �
fo� furthe� customizatio� o� ZCPR� t� � user'� particula� taste� �
an� hardwar� facilities��  The� ar� covere� briefl� her� sinc� �
the� ar� al� quit� straight-forward.

Option Name    Function

  NLINES      Number of lines on the user's CRT for paging

  WIDE        Thi� equat� i� use� t� selec� � narro�� o� wid� �
���������������displa� unde� th� DI� command�� i� WID� i� equate� �
���������������t� TRUE�� eac� fil� nam� i� separate� b�� tw� �
���������������spaces�� � FENCE�� an� tw� mor� spaces� i� WID� i� �
���������������equate� t� FALSE�� eac� fil� nam� i� separate� b� �
���������������on� space� � FENCE� an� on� mor� space

  FENCE�������Thi� equat� define� th� characte� use� t� separat�
���������������entrie� i� � displa� cause� b� th� DIҠand� ER� �
���������������commands

  PGDFLT      Thi� i� th� Pagin� Defaul� fla� fo� th� TYP� �
���������������command�� i� PGDFL� i� se� t� TRUE�� th� TYP� com�
���������������man� wil� pag� it� outpu� b� defaul� an� th� � �
���������������optio� o� th� TYP� comman� (se� below� wil� pro�
���������������hibi� paging�� i� PGDFL� i� se� t� FALSE� th� TYP� �
���������������comman� wil� NO� pag� it� outpu� b�� defaul� an� �
���������������th� � optio� wil� enabl� paging

  PGDFLG      Thi� set� th� optio� characte� i� th� comman� lin� �
���������������fo� th� TYP� comman� (th� 'P� mentione� above)� i� �
���������������th� use� wishe� t� chang� thi� optio� character� �
���������������h� nee� onl� chang� thi� equate

  MAXUSR      Thi� i� th� larges� use� numbe� recognize� b� th� �
���������������use� numbe� processor�� i� th� use� wishe� t� pro�
���������������tec� th� highe� use� areas� h� ma� se� thi� symbo� �
���������������t� th� highes� are� normall� accessable� 3� i� th� �
���������������larges� permitte� valu� fo� MAXUSR�� i� an�� case� �
���������������1�� i� th� larges� use� numbe� on� ma�� lo� int� �
���������������(unles� MAXUS� i� les� tha� 15)� bu� i� i� no� th� �
���������������larges� use� numbe� tha� ma� b� reference� b� DIR� �
���������������ERA�� an� th� othe� ZCPR2-residen� command� (like� �
���������������"DIR A22:")

  MAXDISK�����Thi� equat� define� th� numbe� o� logica� disk� �
���������������th� use� support� o� hi� system�� i� ma�� no� b� �
���������������greater than 16


  SYSFLG�   ��Thi� i� th� optio� characte� fo� th� DIҠ comman� �
���������������lin� whic� i� use� t� specif� tha� DI� searc� Al� �
���������������File� (bot� $SY� an� $DIR� fo� it� display�� th� �
���������������distribute� defaul� fo� thi� i� 'A'
�   SOFLG       Thi� i� th� optio� characte� fo� th� DIҠ comman� �
���������������lin� whic� i� use� t� specif� tha� DI� searc� ONL� �
���������������th� $SY� file� fo� it� display�� th� distribute� �
���������������defaul� fo� thi� i� 'S'

  SUPRES      Se� SUPRE� t� TRU� t� suppres� printin� th� use� �
���������������numbe� whe� th� use� i� unde� Use� Numbe� � o� se� �
���������������SUPREӠ t� FALS� t� ALWAY� displa� th� Use� Numbe� �
���������������wit� th� ZCPR� prompt�� wit� SUPRE� se� t� TRUE� � �
���������������use� o� B�� i� use� � see� 'B>� a� th� prompt� bu� �
���������������wit� SUPRE� se� t� FALSE�� � use� o� B�� i� use� � �
���������������see� 'B0>� a� th� prompt

  SPRMPT      Thi� i� th� ZCPR� promp� characte� whic� indicate� �
���������������tha� � SUBMI� fil� i� i� execution�� b� defaul� i� �
���������������i� se� t� '$'�� s� prompt� lik� 'A$� appea� durin� �
���������������SUBMI� fil� execution

  CPRMPT      Thi� i� th� ZCPR� promp� characte� whic� indicate� �
���������������tha� ZCPR� i� awaitin� � use� consol� command�� b� �
���������������defaul� i� i� se� t� '>'�� s� prompt� lik� 'A>� �
���������������appea� durin� use� inpu� t� ZCPR2�� not� tha� � �
���������������hav� se� th� MS� o� thi� characte� s� tha� i� wil� �
���������������probabl�� b� uniqu� t� al� character� sen� t� th� �
���������������consol� -- th� reaso� fo� thi� i� s� tha� th� ZE� �
���������������utilit�� wil� hav� somethin� uniqu� t� loo� fo� i� �
���������������orde� t� resum� processin� fro� use� inpu� -- fo� �
���������������mor� details� refe� t� th� documentatio� o� ZEX

  NUMBASE     Thi� i� th� escap� characte� use� b� thos� com�
���������������mand� whic� requir� � DECIMA� numbe� a� a� argu�
���������������ment�� placin� thi� characte� afte� th� numbe� �
���������������argumen� switche� th� bas� t� HEXADECIMAL�� fo� �
���������������example�� 'SAVР1�� MYFILE� ca� b� expresse� a� �
���������������'SAVŠ FȠ MYFILE� i� NUMBAS� i� se� t� 'H�� (th� �
���������������default)

  SECTFLG     Thi� characte� constan� i� th� suffi� optio� fo� �
���������������th� SAV� comman� whic� specifie� tha� sectors�� a� �
���������������oppose� t� pages�� ar� t� b� saved�� th� defaul� �
���������������valu� i� 'S'

  CURIND������Thi� characte� define� th� symbo� use� t� repre�
���������������sen� th� curren� dis� o� curren� use� i� th� �
���������������comman� searc� path� it� recommende� valu� i� '$'

  COMMENT�����Thi� characte� i� use� t� mak� th� entir� ZCPR� �
���������������comman� lin� int� � commen� i� i� appear� a� th� �
���������������firs� characte� i� th� line� it� recommende� valu� �
���������������i� ';'



    19��  NCHARӠ an� CTABL� -- NCHAR� i� use� t� specif�� th� �
numbe� o� character� i� � ZCPR2-residen� command�  It� recommend�
e� valu� i� � (t� limi� th� overal� siz� o� th� commands)��  C�
TABLŠ i� � tabl� containin� th
� tex� o� eac� comman� nam� (eac� �
tex� entr� mus� b� NCHAR� long� an� th� addres� o� eac� comman� �
routine�  Th� tabl� i� structure� a� follows:

              DB   'TEXT'    ;Command Text
              DW   ADR       ;Command Address
              ...            ;And So On ...

Wit� thi� tabl� yo� ca� chang� th� nam� o� an�� ZCPR2-residen� �
comman� t� anythin� yo� want�� withi� reason��  'TYPE�� ma�� b� �
change� t� 'PRNT'�� fo� example�  A� � rule� d� no� chang� th� D� �
entrie� withou� � ver� goo� reason��  Thes� symbol� ar� fixe� �
withi� ZCP�2.ASM.

    20��  EXTFC  an� FCBAD� -- EXTFC� indicate� wher� th� FC� �
use� t� contai� intermediat� an� comman� fil� name� i� t� b� �
located��  I� EXTFC  i� TRUE�� thi� FC� i� locate� externa� t� �
ZCPR2�� an� it� addres� i� indicate� b� FCBADR��  I� EXTFC  i� �
FALSE�� thi� FC� i� locate� interna� t� ZCPR2�� an� mor� spac� i� �
take� u� withi� ZCPR� (3� byte� more� tha� woul� b� take� u� i� �
EXTFC� wa� TRUE.

    21��  CMDRUN�� ROOTONLY�� an� CMDFC� -- CMDRU� enable� th� �
abilit�� o� ZCPR� t� execut� a� extende� comman� processo� shoul� �
th� searc� fo� � CO� fil� alon� th� comman� searc� pat� fail�  I� �
CMDRUΠ i� TRUE�� thi� facilit� i� enabled��  Onc� i� i� TRUE� �
ROOTONLY and CMDFCB are active.

         ROOTONL٠ indicate� whethe� ZCPR� wil� searc� alon� th� �
pat� fo� th� extende� comman� processo� o� jum� directl� t� th� �
roo� (las� director� i� th� path)��  I� ROOTONL� i� FALSE�� th� �
pat� searc� i� done��  ROOTONL� bein� FALS� cause� th� executio� �
o� th� extende� comman� processo� t� tak� jus� � littl� bi� mor� �
tim� tha� i� woul� otherwise�� bu� mor� flexibilit� i� adde� t� �
th� system.

         CMDFC  i� � MACR� whic� define� th� firs� 1� byte� o� �
th� FC� whic� define� th� nam� o� th� extende� comman� processo� �
t� b� searche� for��  Yo� ma� nam� i� anythin� yo� desire� bu� i� �
i� recommende� tha� thi� nam� contai� a� leas� �� character� s� �
tha� comman� prefixin� ma� b� don� easil� i� s� desire� fo� �
furthe� chaining.

         Refe� t� th� sectio� o� th� Extende� Comman� Processo� �
in the Concepts Manual for more information.



3.1  Patching SUBMIT.COM

    SUBMIT.CO� ma� b� patche� t� ru� wit� ZCPR� b� th� followin� �
procedur� (thi� i� recommende� i� th� use� doe� no� hav� �
SUB.COM)��  Thi� patc� simpl� make� i� alway� plac� th� $$$.SU� �
fil� o� Driv� A:�  Illustrativ� termina� sessio� follows:


A>ddt b:submit.com
DDT VERS 2.0
NEXT  PC
0600 0100
-s5bb           <-- Patch is at 5BB Hex
05BB 00 1       <-- Change 0 (default drive) to 1 (drive A:)
05BC 24 .       <-- That's it!
-d5b0 5cf       <-- See change
05B0 00 00 00 00 00 00 30 30 31 20 24 01 24 24 24 20 ......001 $.$$$
05C0 20 20 20 20 53 55 42 00 00 00 1A 1A 1A 1A 1A 1A     SUB.........
-^C             <-- Done
A>save 5 newsubmt.com   <-- Save new SUBMIT.COM file


4.0  Special Installation Considerations

4.1  ZCPR2 Sizing

    Unlik� th� previou� comman� processor�� ZCP� 1.0� ZCPR� siz�
in� i� somewha� o� � problem��  Certai� combination� o� th� op�
tion� fo� th� TRUE/FALS� equate� symbol� ca� caus� th� siz� o� �
ZCPR�� t� excee� 2� bytes�� an� thi� i� typicall� o� concer� an� �
no� desire� (se� th� Rational� manual)��  I� th� installer�� fo� �
instance�� attempt� t� duplicat� th� ZCP� configuration� the� th� �
siz� o� ZCPR� wil� excee� 2� byte� b� abou� 3� bytes.

    T� hel� th� installe� t� kee� awar� o� th� impac� o� hi� �
selection�� th� followin� sizin� char� i� provided��  Thi� char� �
show� th� recommende� optio� setting� o� th� equate� i� questio� �
an� th� cost� (measure� i� byte� o� code� associate� wit� settin� �
thes� equates��  I� � cos� i� positive�� the� tha� say� tha� th� �
recommende� equat� settin� cause� th� indicate� numbe� o� byte� �
t� b� consumed�� an� i� thi� settin� wer� reverse� (i.e.�� i� �
currentl� TRUE�� se� i� t� FALSE)�� the� th� indicate� numbe� o� �
byte� woul� b� saved�  � negativ� cos� show� tha� th� recommende� �
settin� i� consumin� fewe� byte� tha� th� opposite.


                      ZCPR2 Sizing Chart
       Recommended                        Recommended
Symbol    Setting   Cost           Symbol    Setting   Cost

CMDRUN     TRUE       53           JUMPON     TRUE       11
DIRON      TRUE       41           LTON       TRUE      138
DRVPREFIX  TRUE       13           MULTCMD    TRUE      -67

DUPRMPT    TRUE       32           PGDFLT     TRUE        0
ERAOK      TRUE       40           RENON      TRUE       72
ERAON      TRUE       62           ROOTONLY   FALSE       0

ERAV       TRUE       19           SAVEON     TRUE       90
EXTFCB     TRUE      -33           SUBON      TRUE      142
GETON      TRUE       18           SUPRES     TRUE        3

GOON       TRUE       11           USERON     TRUE        3
INTPATH    FALSE      -9           WIDE       TRUE        2
INTSTACK   FALSE     -48           Wxxxx      FALSE     -8-3N*

�� Ther� ar� eigh� Wxxx� equate� whic� enabl� th� indicate� com�
mand� t� respon� t� th� Whee� Byte�  Ther� i� a� initia� overhea� �
o� eigh� byte� fo� an� on� equat� t� b� enable� an� ther� i� a� �
additiona� overhea� o� thre� byte� fo� eac� equat� whic� i� �
enabled��  Tha� is� t� enabl� on� equat� cost� 1� bytes� an� eac� �
additiona� equat� afte� tha� cost� thre� byte� more.


    A� a� installatio� trade-of� example�� i� th� use� decide� �
tha� h� doe� NO� wan� t� suppor� th� SU� fil� capabilit�� (wishe� �
t� us� ZE� exclusively)�� the� h� ca� se� SUBO� t� FALS� an� sav� �
14�� bytes��  I� h� als� decide� tha� h� doe� no� wan� t� hav� t� �
worr� abou� allocatin� buffe� spac� fo� a� externa� FCB�� h� ca� �
se� EXTFC� t� FALSE�� bu� thi� cost� hi� 3� byte� (3� mor� byte� �
ar� consume� b� havin� thi� FC� interna� t� ZCPR� tha� havin� i� �
external)��  Not� tha� du� t� som� overla� o� function� (suc� a� �
RENO� an� SAVEON)�� spac� saving� ma� var� dependin� o� th� com�
bination� o� th� option� selected.

4.2  Programs Which Try to Load the FCB Command Line

    On� thin� th� use� an� installe� shoul� b� concerne� wit� i� �
th� us� o� program� whic� emplo� interna� knowledg� o� th� CP/� �
2.�� CCР t� perfor� som� o� thei� functions��  Suc� program� �
typicall� tampe� wit� th� interna� comman� lin� buffe� o� th� CC� �
an� the� transfe� contro� t� th� CC� i� suc� � wa�� tha� th� �
comman� lin� the� store� ther� i� executed��  Unde� ZCPR2�� i� �
MULTCMĠ i� TRU� (th� Multipl� Comman� Lin� Buffe� Facilit�� i� �
enabled)�� the� program� lik� thi� wil� b� modifyin� code/dat� �
are� instea� o� th� intende� buffer�� whic� i� n� longe� there� �
and frequently cause bad things to happen.

    Anothe� exampl� i� wher� th� BIO� wishe� t� issu� � comman� �
o� War� o� Col� Boot� an� i� attempt� t� stor� sai� comman� i� �
th� CC� comman� lin� buffe� a� describe� above�  Simila� problem� �
will result.

    Thi� doe� no� mea� tha� ZCPR� i� removin� thi� capability� �
bu� i� doe� mea� tha� th� capabilit� i� no� invoke� i� th� sam� �
way��  I� orde� t� execut� � desire� comman� lin� se� b� � tran�
sien� program�� fo� example�� th� transien� nee� onl� stor� th� �
desire� comman� line�� terminate� b� � binar� zero� i� th� prope� �
Multipl� Comman� Lin� Buffe� an� se� th� nex� characte� pointe� �
t� th� firs� characte� t� b� executed��  Likewis� fo� th� BIO� �
case.


5.0  Modifications to the BIOS Cold Boot Routines

    T� full� instal� ZCPR� a� recommende� i� Sectio� 4.1�� th� �
Col� Boo� routin� i� th� BIO� mus� allocat� som� buffe� spac� an� �
perfor� som� initialization� whic� i� doe� no� normall� do�  A� � �
workin� exampl� o� wha� � a� referrin� to�� stud� th� sourc� cod� �
to the Cold Boot Routine in my BIOS:

;
;  Cold Boot Routine for CHBIOSZ
;    This routine allocates and initializes buffer space as
;    required to implement ZCPR2 as recommended.
;
cboot:
       lxi     sp,tpa          ;Set up stack

;
;  Section CB-1:  Init Multiple Command Line Buffer
;
       if      multcmd         ;Multiple Commands Allowed
       lxi     d,cmdset        ;Set buffers for Multiple
                               ;  Command Processing
       lxi     h,clbase        ;Command Line Base
       call    mover           ;Copy an arbitrary 128 bytes
       endif

;
;  Section CB-2:  Init Memory-Based Named Directory
;
       if      ndir            ;Named Directory Based in Memory
       lxi     d,ndvals        ;Initial Values in Directory
       lxi     h,ndbase        ;Named Directory Base
       call    mover           ;Copy an arbitrary 128 bytes
       endif

;
;  Section CB-3:  Init IOBYTE and Redirectable I/O Drivers
;
       mvi     a,intioby       ;Initialize the I/O Byte
       sta     iobyte
       lxi     d,iodrivers     ;Default I/O Drivers
       lxi     h,iobase        ;Base Address of Drivers
       call    mover           ;Copy an arbitrary 128 bytes

;
;  Section CB-4:  Init Default Command Search Path
;
       lxi     d,path          ;Copy Cold-Boot Path
       lxi     h,pathbase      ;Into System External Path Area
       mvi     b,9             ;Always 9 bytes
       call    movlop


;
;  Section CB-5:  Print Prompt and Select User/Disk
;
       lxi     h,prompt        ;Prep for sending signon message
       call    message         ;Send the prompt
       mvi     a,0             ;Select user 0 and disk A
       sta     cpmdrv
       sta     cdisk

       jmp     gocpm

    ...

;
;  Copy An Arbitrary 128 Bytes from DE to HL
;
mover:
       mvi     b,128
movlop:
       ldax    d
       mov     m,a
       inx     h
       inx     d
       dcr     b
       jnz     movlop
       ret

    ...


;
;  Primitive Redirectable I/O Drivers which are loaded to
;  initially support I/O.  They are copied into a reserved
;  area of memory (I have allowed 1K for this) starting at
;  IOBASE (my base address is 0DC00H).  These drivers
;  provide only console I/O and disable the redirection
;  facilities.  During the course of work, these primitive
;  drivers are overlaid by the IOLOADER program with much
;  more sophisticated drivers.
;
;  Note the I use Z80 Relative Jump Instructions here because
;  this code is not executed where it is stored.  Any absolute
;  jumps would have to have their addresses adjusted after
;  the routines had been copied.
;
uart equ  0E3F9H         ;UART Address
rda  equ  4              ;UART RDA Bit

iodrivers:
    jr   ioerror        ;set no Status Routine
    db   0              ;Fill 3 bytes
    jr   ioerror        ;set no Select Routine
    db   0              ;Fill 3 bytes
    jr   ioerror        ;set no Namer Routine
    db   0              ;Fill 3 bytes

    ret                 ;No Terminal Init Necessary
    db   0,0            ;Fill 3 bytes
    jr   ustat          ;Console Input Status
    db   0              ;Fill 3 bytes
    jmp  djcin          ;Console Input Char in PROM
    jmp  djcout         ;Console Output Char in PROM

    jmp  djcout         ;List Output Char in PROM

    jmp  djcout         ;Punch Output Char in PROM

    jmp  djcin          ;Reader Input Char in PROM

    mvi  a,0ffh         ;List Status Ready
    ora  a              ;Set Flags
    ret                 ;Done with List and No New I/O Routine

ioerror:
    xra  a              ;No Device Assignments May be Made
    ret
ustat:
    lda  uart           ;Get status byte
    cma                 ;Inverted Logic
    ani  rda            ;RDA?
    rz
    mvi  a,0ffh         ;OK Flag
    ret

    ...

;
;  Initial Command Line in Multiple Command Line Buffer
;  Only the first five bytes are required, the fifth byte being
;  a binary 0 to indicate an empty command line, if you do not
;  wish to have an initial command
;
    if   multcmd
clbase    equ  0ff00h    ;base address of buffer
buflen    equ  200       ;size of buffer in bytes
cmdset:
    dw   clbase+4  ;pt to first char
    db   buflen    ;size of buffer
    db   0         ;don't care value
    db   'STARTUP' ;command to run on Cold Boot
    db   0         ;end of Cold Boot Command
    endif

    ...

;
;  Initial Contents of Memory-Based Named Directory Buffer
;  Note:  this defines an empty Named Directory Buffer
;
    if   ndir      ;turned on?
ndbase    equ  0fd00h    ;base address of buffer
ndvals:
    db   50        ;allow 50 entries
    db   0         ;no entries stored (entry count)
    db   0         ;dummy for no disk
    db   0         ;dummy for no user
    db   0         ;dummy for no name
    endif

    ...

;
;  Initial External Path
;  The contents of the path are outlined in the comments
;
pathbase  equ  40h       ;base address of first byte of path
path:
    db   '$$'      ;current disk and current user
    db   '$',0     ;current disk and user 0
    db   1,'$'     ;disk A and current user
    db   1,0       ;disk A and user 0
    db   0         ;end of path

;
�  Note�  I� i� no� necessar� t� initializ� an� othe� buffers�
;    such as EXTFCB, since their values will be initialized by
;    ZCPR2
; �
    Thi� sampl� provide� � fairl� goo� mode� fo� configuratio� �
o� th� Col� Boo� Routin� i� orde� t� implemen� ZCPR�� a� recom�
mended�  Not� tha� fou� feature� requir� initialization:

         1) Multiple Command Line Buffer
         2) Memory-Based Named Directory Buffer
         3) Command Search Path
         4) Redirectable I/O Drivers

    O� course�� ɠ als� initialize� th� I/� Byt� a� locatio� � �
(th� ST� IOBYT� instruction)�� a� interna� curren� dis� flag� an� �
th� curren� user/curren� dis� fla� dow� a� locatio� �� (th� ST� �
CDIS� instruction).

    Also�� not� tha� � jus� use� a� arbitrar� transfe� routin� �
whic� di� no� conside� th� actua� siz� o� th� significan� dat� �
transferre� fo� th� initializatio� o� th� Multipl� Comman� Lin� �
Buffer�� th� Memory-Base� Name� Director� Buffer�� an� th� Redir�
ectabl� I/� Drivers��    Sinc� bot� buffer� an� th� driver� wer� �
unde� 12� byte� i� size� thi� wa� � quic� wa� out.


5.1  Installation Note:  Multiple Command Line Buffer

    The structure of the Multiple Command Line Buffer is:

         Bytes 0 and 1:  Address of Next Char in Buffer
         Byte 2:  Size of Buffer
         Byte 3:  Dummy used by BDOS Readln Function 10
         Bytes 4 to n:  Buffer Contents, terminated by binary 0

    Thi� buffe� MUS� b� initialize� b� th� Col� Boo� routin� i� �
th� Multipl� Comman� Lin� facilit� i� enabled��  Th� addres� o� �
Byt� � i� place� i� Byte� � an� � (low-orde� first)�� th� buffe� �
siz� i� place� i� byt� 2� an� an� valu� ma� b� place� i� Byt� 3.

    Th� comman� lin� t� b� execute� o� Col� Boo� ma� b� place� �
i� Byte� � t� n��  Not� tha� thi� lin� MUS� b� terminate� b�� � �
binar�� 0��  I� yo� hav� n� comman� lin� t� b� execute� o� Col� �
Boot, Byte 4 MUST be 0.

    Th� Multipl� Comman� Lin� Buffe� play� man� ke� role� i� th� �
ZCPR�� System��  I� m� opinion�� i� i� on� o� th� mos� importan� �
feature� t� implement�  Throug� thi� buffer� th� use� ca� perfor� �
th� "simple� functio� o� issuin� mor� tha� on� comman� o� � line� �
but�� mor� importantly�� program� ca� us� i� t� chai� t� � SERIE� �
o� othe� programs�  Th� MEN� comman� use� thi� buffe� t� chai� t� �
th� selecte� progra� an� the� t� retur� t� itsel� a� th� prope� �
place��  STARTU� use� i� t� execut� � comman� line�� and� i� con�
junctio� wit� CD�� STARTU� unde� th� nam� o� S� i� use� t� esta�
blis� � workin� environmen� onc� th� use� ha� logge� int� � �
directory��  Thi� workin� environmen� ma� hav� � ne�� comman� �
searc� path� � ne� name� director� structure� ne� devic� drivers� �
an� ma� eve� b� menu-driven. �
5.2  Installation Note:  Memory-Based Named Directories

    I� th� memory-base� name� director� facilit� i� enabled�� i� �
MUSԠ b� initialize� b� th� Col� Boo� Routine��  Th� structur� o� �
th堠 name� director�� buffe� (o� initialization�� shoul䠠 b� �
(assuming it is empty):

         Byte 0:  Maximum number of entries
         Byte 1:  Number of entries stored
         Byte 2:  First Disk Number
         Byte 3:  First User Number
         Bytes 4-11:  First Directory Name

    I� th� initialize� name� director� buffe� i� t� b� empty� �
Byt� � shoul� b� se� t� th� numbe� o� entrie� permitte� (base� o� �
th� siz� o� you� buffer� an� byt
e� � t� � shoul� b� se� t� 0�  I� �
computin� th� numbe� o� entrie� allowe� i� � memory-base� direct�
or� buffer� th� followin� simpl� equatio� applies:

         Byte 0 = (size of buffer)/10

I� th� remainde� o� thi� divisio� i� les� tha� 2� subtrac� � fro� �
Byt� � t� allo� fo� th� spac� take� b� byte� � an� 1��  Th� 1� i� �
th� numbe� o� byte� occupie� b� a� entr� (� byte� fo� disk/use� �
an� � fo� director� name).

    Th� memory-base� name� director� featur� wa� create� fo� tw� �
reasons�  t� spee� u� th� executio� o� � utilit� whe� i� need� t� �
kno�� th� director�� reference� b� � nam� an� t� establis� � �
"global� director� structure��  Rathe� tha� doin� � dis� search� �
th� utilit�� simpl�� look� i� th� memory-base� name� director� �
buffer� an� thi� save� th� tim� require� fo� th� dis� accesse� i� �
th� nam� i� foun� i� th� buffer��  A� � "global� directory�� thi� �
memory-base� name� director� i� alway� searche� first�� s� th� �
entrie� i� i� ar� examine� befor� th� "local� director� i� th� �
NAMES.DI� fil� o� dis� i� examined��  I� thi� way�� regardles� o� �
th� tre� o� mes� structur� impose� b� loggin� int� variou� en�
vironments�� � se� o� directorie� ca� remai� commo� t� al� en�
vironment� (unless�� o� course� S� load� � ne� memory-base� name� �
director� se� whe� th� use� log� int� � director� vi� CD).


5.3  Installation Note:  Redirectable I/O System

    I� you� ZCPR�� syste� i� t� emplo�� th� redirectabl� I/� �
syste� whic� ma�� b� implemente� b� th� IOLOADEҠ an� DEVICE� �
commands� the� th� Col� Boo� Routin� wil� hav� t� initializ� thi� �
system��  Rathe� tha� ente� � word� explanatio� o� wha� ha� t� b� �
done�� th� followin� i� th� sourc� t� m� initia� Redirectabl� I/� �
Driver� a� installe� b� th� Col� Boo� Routine��  Not� tw� things�  �
(1�� th� Col� Boo� Routin� simpl� copie� thes� driver� int� th� �
buffe� startin� a� IOBAS� an� (2� al� branche� t� routine� withi� �
thes� driver� ar� relativ� s� tha� � don'� hav� t� worr�� abou� �
adjustin� addresse� fo� thei� location.  Source Code follows: �
*****************************************************************
*                                                               *
* Primitive I/O Drivers which are loaded at Cold Boot time.     *
*                                                               *
* Note:  DJCIN and DJCOUT are in PROM, so their addresses are   *
*        fixed and need not be adjusted because of the copy.    *
*                                                               *
*****************************************************************
uart    equ     0e3f9h          ;UART address
rda     equ     4               ;UART RDA Bit

iodrivers:
       jr      ioerror         ;no Status Routine
       db      0               ;Fill 3 bytes
       jr      ioerror         ;no Select Routine
       db      0               ;Fill 3 bytes
       jr      ioerror         ;no Namer Routine
       db      0               ;Fill 3 bytes

       ret                     ;Initialize Terminal
       db      0,0             ;Fill 3 bytes
       jr      ustat           ;Console Input Status
       db      0               ;Fill 3 bytes
       jmp     djcin           ;Console Input Char
       jmp     djcout          ;Console Output Char

       jmp     djcout          ;List Output Char

       jmp     djcout          ;Punch Output Char

       jmp     djcin           ;Reader Input Char

       mvi     a,0ffh          ;List Status Ready
       ora     a               ;Set Flags

       ret                     ;New I/O Driver Installation Routine

ioerror:
       xra     a               ;No device assignments
       ret

ustat:
       lda     uart            ;Get status byte
       cma                     ;Inverted Logic
       ani     rda             ;RDA?
       rz
       mvi     a,0ffh          ;OK Flag
       ret


    Asid� fro� givin� th� use� � lo� o� flexibilit�� i� th� �
desig� o� hi� I/� system� th� Redirectabl� I/� Syste� als� offer� �
a� alternativ� t� th� Control-� (Consol� Print� functio� unde� �
CP/M��  Usin� Control-P�� th� use� ca� temporaril�� toggl� th� �
printe� o� t� prin� wha� i� comin� t� hi� display��  However� �
unde� certai� conditions�� whe� th� promp� reappeared� th� print�
ou� woul� continu� an� requir� anothe� Control-� t� tur� i� of� �
whil� unde� othe� conditions�� whe� th� promp� reappeared�� th� �
printou� woul� b� turne� of� b� itself.

    Usin� Redirectabl� I/O�� � devic� drive� fo� th� Consol� �
whic� consiste� o� CR� Inpu� an� CRT/Printe� Outpu� coul� easil� �
b� created�  Let'� sa� i� i� name� CRTPRIN� and� usin� DEVICE� i� �
woul� b� turne� o� wit� � comman� like:

         DEVIC� CON:=CRTPRINT

Turnin� i� of� woul� amoun� t� issuin� � comman� like:

         DEVIC� CON:=CRT

    Usin� suc� � devic� drive� solve� tw� problems��  (1�� th� �
use� ha� precis� contro� o� th� printe� an� (2� th� user� vi� th� �
devic� driver�� ca� contro� wha� goe� ou� t� th� printer�� an� �
specia� characte� sequence� whic� woul� normall� g� t� th� scree� �
ca� b� filtere� fro� goin� t� th� printe� a� well��  Som� concer� �
ha� bee� raise� abou� usin� � characte� wit� th� mos� significan� �
bi� se� t� promp� ZE� fro� ZCPR� sinc� suc� character� plac� �
certai� printer� int� � graphic� mode��  Suc� � devic� drive� �
coul� clea� th� mos� significan� bi� befor� i� i� sen� t� th� �
printer.


5.4  Installation Note:  Default Command Search Path

    I� th� externa� pat� featur� i� enabled�� the� th� Col� Boo� �
Routin� MUS� initializ� thi� path��  Th� pat� i� represente� b� � �
standar� pat� expression� wher� "$� indicate� th� curren� use� o� �
disk�� disk� ar� numbere� fro� � (dis� � � 1)�� an� user� ar� �
numbere� fro� 0�  Th� pat� MUS� b� terminate� b� � binar� 0.

    Searc� path� provid� WORLD� o� flexibilit�� t� th� user�  �
ZCPR� require� a� leas� on� pat� t� b� implemented��  Thi� i� th� �
comman� searc� path� whic� i� th� pat� alon� whic� ZCPR� searche� �
fo� command� (CO� files� whe� the� ar� issued��  Thi� pat� ma� b� �
placed internal to ZCPR2 or external to it.


    Th� comman� searc� pat� i� th� onl� pat� REQUIRE� i� � ZCPR� �
System�� bu� man�� mor� path� ma� b� established��  Eac� ZCPR� �
Syste� utilit� progra� i� se� u� t� dea� wit� path� i� on� o� tw� �
o� mor� ways��  (1� i� ma� follo� a� externa� pat� knowin� onl� �
th� addres� o� th� beginnin� o� th� path�� an� (2� i� ma�� follo� �
it� ow� interna� pat� knowin� exactl� wha� tha� pat� is��  Th� �
HELР progra� i� a� exceptio� t� thi� i� tha� i� follow� a� ex�
terna� pat� (i� ther� i� one� and�� i� tha� fails�� follow� a� �
interna� path��  Th� externa� path� followe� b� th� utilitie� i� �
th� ZCPR� Syste� ma� b� th� sam� a� th� comman� searc� path�� bu� �
the�� don'� hav� t� be��  ZEX�� fo� instance�� ma� b� se� u� t� �
ignor� th� comman� searc� pat� an� follo� � pat� whic� immediate�
l� goe� t� � director� containin� � hos� o� ZE� comman� files.

    Configuratio� note� ca� b� foun� i� th� User'� Guid� whic� �
provid� idea� a� t� ho� path� ma� b� establishe� fo� th� variou� �
ZCPR� Syste� utilities��  Remembe� tha� fo� eac� pat� establishe� �
whic� i� externa� t� � utilit� program�� thi� pat� mus� b� �
initialized in one way or another before the utility uses it.

    Thi� initializatio� o� externa� path� othe� tha� th� comman� �
searc� pat� use� b� ZCPR� itsel� ma� b� don� i� a� leas� tw� �
differen� ways��  (1� th� Col� Boo� Routin� ma� perfor� th� init�
ialization�� o� (2� PAT� (whic� ma� b� execute� o� col� boo� b� �
th� STARTU� program� ma� b� use� t� perfor� th� initialization�  �
I� mor� tha� on� externa� pat� i� define� an� th� use� i� t� b� �
abl� t� chang� th� content� o� thi� pat� i� h� wishes�� the� th� �
PATȠ utilit�� shoul� b� installe� mor� tha� onc� an� severa� �
version� o� PAT� shoul� b� create� (usin� differen� names�� o� �
course)��  On� versio� o� PAT� i� require� fo� eac� externa� pat� �
whic� i� t� b� manipulated�  GENIN� ca� b� use� t� quickl� creat� �
th� differen� version� o� PATH.


5.5  Installation Note:  Sample ZCPR2 Structure

    A� a� example�� th� followin� i� a� outlin� o� th� structur� �
o� m� ZCPR� system�  Al� addresse� ar� expresse� i� hexadecimal.

    Page 0 (Base Page):
         Location  Contents
          0 -  2   JMP to BIOS Warm Start at D300
          3        IOBYTE
          4        UDFLAG - User Number in Upper 4 Bits; Disk
                        Number (A=0) in Lower 4 Bits
          5 -  7   JMP to BDOS at C506
          8 - 37   Unused Interrupt Vectors
         38 - 3A   RST 7 used by DDT, ZSID, and others
         3B        Wheel Byte
         3C - 3F   Unused
         40 - 5B   Default Command Search Path (up to 13 elts
                        and terminating 0)
         5C - 6B   First FCB Half
         6C - 7B   Second FCB Half
         7C        CR Field if 5C-7B used as one complete FCB
         7D - 7F   Random Record Number
         80 - FF   Default DMA Buffer

    Belo� BD00�    Optiona� ZE� Monito� an� Tex� (Variabl� Size)
    Address BD00:  Beginning of ZCPR2
    Address C500:  Beginning of BDOS
    Address D300:  Beginning of BIOS
    Address DC00:  Reserved Buffer Area
    Address E000:  Disk PROM
    Address E400:  Disk RAM
    Address E800 - EFFF:  Redirectable I/O Drivers (2K Avail)
    Address F000 - F600:  Free Space Optionally Used by
                             Redirectable I/O Drivers
    Address F5D0 - F5FF:  ZCPR2 Stack (48 Bytes)
    Address F600 - FCFF:  Buffer Space Used by BIOS
    Address FD00 - FEFF:  Memory-Based Named Directory Buffer
                             (512 Bytes for 50 Entries)
    Address FF00 - FFCF:  Multiple Command Line Buffer
                             (200 Bytes for text + 4 for
                              initial buffers + Dead Space)
    Address FFD0 - FFFF:  ZCPR2 External FCB


6.0 Installing the ZCPR2 Utilities

    S� far�� � hav� bee� concentratin� o� ZCPR� itself��  ZCPR2� �
however� i� onl� � par� (les� tha� 1/1� i� term� o� cod� size� o� �
th� ZCPR� System�  Th� res� o� th� Syste� i� mad� u� o� th� ZCPR� �
utilities.

    Mos� o� th� ZCPR� Utilitie� nee� t� kno� somethin� abou� th� �
ZCPR�� environment��  I� particular�� thes� utilitie� nee� t� b� �
installe� i� orde� t� becom� a� integra� par� o� th� overal� �
system�� an� � program� GENIN� (fo� Genera� Install)� i� provide� �
to do this.

    GENIN� provide� te� basi� configuratio� option� t� th� user�  �
These are:

    0.  Named Directory Data

      a.  Address of Memory-based Named Directory Buffer
         Thi� i� th� startin� addres� o� th� Name� Director� �
Buffe� store� i� memory��  I� yo� d� no� hav� one� se� thi� valu� �
t� 0.

      b�  Numbe� o� Name� Directorie� Allowe� i� � Name� Direct�
or� File
         Thi� valu� i� initiall� se� b� th� MKDIҠ progra� b� �
creatin� th� Name� Director� Fil� wit� th� indicate� numbe� o� �
entries��  Al� program� usin� thi� fil� mus� b� se� t� respon� t� �
th� sam� numbe� o� entries�  An� numbe� les� tha� 25� i� allowed� �
an� 6� i� recommende� fo� standardizatio� purpose� (an� becaus� �
i� i� reasonabl� a� determine� throug� experience).

      c.  Name of the Named Directory File to Scan for on Disk
         Thi� i� th� nam� o� th� fil� t� b� scanne� fo� i� � �
director�� nam� i� no� foun� i� th� memory-base� Name� Director� �
Buffer��  Th� recommende� nam� (fo� standardizatio� purposes�� i� �
NAMES.DIR.

    1.  External and Internal Path Data

      a.  Enable or Disable External Paths
         Th� utilit� i� tol� whethe� i� ma� us� externa� path� �
fo� it� function� o� no� b� thi� option�  Externa� path� ar� use� �
fo� fil� searche� an� Name� Director� fil� searche� primarily� �
bu� the� ma� hav� othe� use� a� well�� dependin� o� th� utility�  �
I� externa� path� ar� available�� th� PAT� comman� ma� b� use� t� �
initializ� the� o� col� boo� o� t� chang� the� dynamicall� durin� �
� termina� session��  I� externa� path� ar� no� t� b� used�� the� �
interna� paths�� uniqu� t� eac� utility�� ma� b� define� an� �
employe� instead��  I� neithe� externa� no� interna� path� ar� t� �
b� used� the� th� utilit� (usually� wil� onl� examin� th� curren� �
director�� fo� wha� i� needs��  A� � genera� rule�� i� externa� �
path� ar� no� used�� defin� a� interna� path�� an� thi� interna� �
path may be as simple as current directory. �
      b.  If enabled, the Address of the External Path
         I� a� externa� pat� i� enabled�� thi� i� th� bas� �
addres� o� th� beginnin� o� th� path��  I� externa� path� ar� �
disabled�� GENINӠ doe� no� giv� th� use� th� optio� t� se� thi� �
value.

      c.  Enable or Disable Internal Paths
         GENINӠ give� th� use� th� optio� t� enabl� an� defin� �
a� interna� pat� regardles� o� hi� selectio� fo� externa� paths�  �
Som� commands� HEL� i� particular� ma� us� bot� path� i� the� ar� �
available�  I� th� cas� o� HELP� whe� lookin� fo� � HEL� file� i� �
searche� alon� th� externa� pat� first�� and�� failin� that� �
searches along its internal path.

      d�  I� enabled� defin� th� interna� pat� fo� tha� particu�
la� utility
         Th� interna� pat� i� define� i� th� use� selecte� t� �
enabl� interna� paths��  Symboli� notatio� i� use� t� defin� th� �
path� an� th� use� i� prompte� fo� eac� pat� elemen� i� sequence�  �
Name� Directorie� ma� NO� b� use� i� th� definition��  Hence�� � �
definitio� lik� $�� $� A� A� (fo� curren� disk/user�� curren� �
disk/use� 0�� dis� A/curren� user�� an� dis� A/use� 0�� ma�� b� �
specified.

    2.  Multiple Command Line Data

      a.  Enable or Disable the Multiple Command Line Buffer
         I� th� Multipl� Comman� Lin� facilit� i� enable� b� �
ZCPR� an� th� Col� Boo� Routin� i� th� BIOS� the� th� use� shoul� �
tel� th� utilit� tha� thi� facilit� i� available��  Not� tha� th� �
buffe� MUS� b� initialize� befor� use��  Severa� utilitie� emplo� �
th� Multipl� Comman� Lin� Buffe� fo� chainin� purposes�� an� som� �
utilities, like MENU and STARTUP, cannot run without it.

      b.  If enabled, address of Multiple Command Line Buffer
         Thi� specifie� wher� th� Multipl� Comman� Lin� Buffe� �
i� located��  Not� tha� onl� ON� Multipl� Comman� Lin� Buffe� ma� �
b� define� fo� � particula� system� unlik� th� externa� paths� i� �
whic� cas� ther� ma� b� a� man� a� desired��  ZCPR� i� desire� t� �
dea� wit� onl� on� suc� buffe� an� canno� accep� command� fro� �
more than one.
         Note�� however�� tha� man� buffe� area� ma� b� define� �
fo� th� purpos� o� passin� informatio� betwee utilities� �
particularl�� thos� wh� ma� b� chaine� togethe� vi� th� Multipl� �
Comman� Lin� Buffe� Facility��  Thes� utilitie� ar� chaine� vi� �
th� buffer� bu� ma� us� othe� buffer� t� pas� informatio� t� eac� �
other��  The�� ma�� als� pas� informatio� t� eac� othe� vi� th� �
command lines in the Multiple Command Line Buffer.


    3.  Maximum Disk which may be Referenced

         Thi� paramete� i� availabl� fo� th� purpose� o� pro�
tectin� th� syste� an� providin� � leve� o� security�  I� th� wa� �
o� protectin� th� system�� b� specifyin� th� maximu� dis� lette� �
(lik� � i� ther� ar� fou� drives)�� the� th� utilit� wil� fla� a� �
erro� i� � referenc� i� mad� t� an� driv� greate� tha� D� thereb� �
trappin� th� erro� befor� th� BDOS/BIO� see� it.
         I� th� wa� o� providin� � leve� o� security�� certai� �
program� ma�� b� mad� availabl� i� tw� versions��  XDIR�� fo� �
instance� ca� b� se� u� t� b� foun� alon� � use� pat� i� whic� i� �
onl�� know� o� drive� � an� � an� doe� no� permi� acces� t� C� �
while�� onc� � use� ha� logge� int� � syste� director� an� � new� �
syste� pat� i� established�� � differen� XDI� ma� b� encountere� �
alon� thi� syste� pat� whic� know� abou� driv� � also.

    4.  Maximum User which may be Referenced

         Thi� paramete� i� availabl� fo� th� purpos� o� pro�
vidin� � leve� o� securit� only��  Alon� th� line� o� (3�� above� �
tw� path� (use� an� system� an� tw� set� o� command� (lik� XDIR� �
ma�� b� establishe� i� whic� th� anyon� employin� th� use� pat� �
canno� acces� beyon� � give� use� numbe� whil� anyon� employin� �
th� syste� pat� can.

    5.  Allow the User to Reference a Disk

         Again�� t� provid� a� eve� furthe� leve� o� security� �
th� abilit� t� referenc� an� dis� othe� tha� th� curren� dis� ca� �
b� disabled��  Thi� mus� b� permitte� i� orde� fo� th� � par� o� �
th� D� for� t� b� effectiv� fo� th� particula� utility� an� Name� �
Directory references are affected as well.

    6.  Allow t
he User to Reference a User Area

         Thi� i� th� sam� a� (5)�� bu� th� abilit� t� referenc� �
any user area other than the current user can be disabled.


    7.  Privileged User Areas

      a.  Base Address (first priv user area)
         �� se� o� use� areas�� beginnin� a� � particula� use� �
area�� ca� b� declare� t� b� privileged��  Acces� t� the� i� �
grante� onl� i� th� correc� passwor� i� given��  Th� recommende� �
bas� addres� o� th� privilege� use� area� i� 10� s� use� area� 1� �
t� 3� ma� b� accesse� onl� whe� � passwor� i� given��  Not� tha� �
thi� optio� applie� ONL� t� th� ZCPR� utilitie� an� no� t� ZCPR� �
itself��  Onc� th� ZCPR� Syste� i� configure� fo� thi� for� o� �
security�� th� Dՠ for� shoul� b� disable� withi� ZCPR�� o� th� �
Wheel facility should be set up to control use of the DU form.
         Th� privilege� use� definition� appl� t� th� C� (Chang� �
Directory�� progra� i� particular��  Thi� progra� i� use� i� lie� �
o� th� DU� comman� t� lo� int� ne� directories�  I� alway� check� �
t� se� i� th� use� i� enterin� � privilege� director�� an� ask� �
for the password before it allows him to enter.

      b.  Password required to enter a priv user area
         This is the password required for access rights.

    8.  Current User/Disk Symbol

         I� th� installe� ha� opte� t� us� som� othe� symbo� �
(othe� tha� "$"� t� represen� th� curren� dis� o� curren� use� i� �
symboli� pat� expression� unde� ZCPR2�� th� utilit�� shoul� b� �
informe� o� thi� fact���  Naturally�� som� valu� ha� t� b� �
specified�� an� th� recommende� symbo� o� "$� i� preferre� fo� �
standardization purposes.

    9.  DMA Address for Disk I/O

         I� th� use� ha� � non-ORG-� system�� the� thi� mus� b� �
se� t� defin� th� DM� Addres� (Defaul� establishe� b� ZCPR2�� o� �
th� system��  Thi� addres� i� usuall� RA� bas� � 80H�� an� th� �
value for an ORG-0 system is 80H.



    Whil� runnin� GENINS�� whic� i� menu-oriented�� th� use� i� �
provided with the abilities to perform the following functions:

    1��  Se� an� combinatio� o� th� abov� characteristic� fo� � �
particula� utility

         Th� Ӡ optio� allow� th� use� t� sequentiall�� pas� �
throug� al� o� th� necessar� parameter� an� se� them��  I� th� �
use� wishe� t� selec� the� individually� typin� � digi� fro� � t� �
�� select� tha� particula� paramete� fo� installation��  I� � �
particula� optio� i� no� neede� b� th� utilit�� currentl�� bein� �
installed�� i� i� flagge� wit� a� asterisk� an� selectio� o� thi� �
optio� b� digi� perform� n� operatio� whatsoever��  Th� � option� �
i� selected�� simpl� skip� al� parameter� flagge� wit� a� aster�
isk.
         Som� utilitie� requir� parameter� t� b� se� whic� ar� �
no� covere� b� th� standar� group��  Knowledg� o� th� utilit� �
(refe� t� th� User'� Guide� i� require� t� mak� � goo� judgmen� �
o� th� prope� settin� fo� th� require� parameter��  I� additiona� �
parameter� ar� t� b� set� a� � optio� appear� i� th� menu�  Th� � �
optio� automaticall�� extend� t� cove� thos� utility-specifi� �
parameters�� an� th� � optio� ma� b� use� lik� � digi� optio� t� �
select just the utility-specific parameters to be set.

    2�  Displa� th� curren� setting� fo� � particula� utility

         Th� Р optio� display� th� curren� setting� o� al� �
parameter� fo� th� utilit� bein� installed��  I� utility-specifi� �
parameters are available, these are printed as well.

    3�  Sav� th� curren� setting� s� tha� anothe� utilit� ma� b� �
se� u� i� a� identica� wa� b� mean� o� � simpl� restor� command

         Th� � optio� save� al� o� th� standar� parameter� int� �
t� sav� buffe� fo� late� recal� b� th� �� option��  Usin� thes� �
option� i� th� menu�� th� use� ca� g� throug� th� tas� o� settin� �
al� o� th� option� o� � "complete� utilit� (on� i� whic� al� o� �
th� parameter� indicate� b� digit� ar� necessary� onl� once� the� �
sav� hi� selection� wit� th� � option�� writ� th� curren� utilit� �
t� disk�� rea� i� th� nex� utilit� withou� leavin� GENINS�� an� �
the� se� it� parameter� b� th� � option��  Th� nex� utilit�� i� �
the� writte� t� disk�� an� � thir� utilit� i� selecte� an� it� �
parameter� se� b� >��  Thi� ca� g� o� indefinitely�� an� thi� �
proces� significantl�� reduce� th� tim� require� t� instal� th� �
se� o� ZCPR� utilities.

         GENINӠ itsel� mus� b� installe� b�� GENINS�� and�� al�
thoug� GENIN� doe� no� requir� al� o� th� parameters�� � hav� se� �
i� u� t� declar� al� parameter� necessary��  Hence�� a� � genera� �
rule�� instal� GENIN� firs� an� sav� you� installatio� setting� �
vi� <��  Then�� simpl�� instal� eac� o� th� othe� utilitie� i� �
successio� b� usin� � t� se� th� digit-specifie� parameter� an� �
usin� th� � optio� t� se� th� utility-specifi� parameters.

    4��  Restor� th� setting� fro� th� las� sav� a� th� curren� �
setting� fo� � ne� utility

         Fro� before�� th� �� optio� i� use� t� restor� th� �
parameter� save� b� th� � optio� int� � ne� utility��  I� �� ha� �
no� bee� previousl� issue� durin� th� curren� GENIN� run� the� a� �
erro� messag� wil� b� printe� i� th� use� attempt� t� emplo�� th� �
> option.

    5��  Qui� an� D� NO� Updat� th� utilit� o� Exi� an� Updat� �
th� curren� utility

         I� th� use� reall� ble� th� proces� o� installin� th� �
curren� utility�� h� ca� simpl� thro� awa� everythin� h� di� �
without affecting the utility file on disk.

    6��  Se� othe� attribute� specifi� t� th� curren� utilit� �
whic� ar� no� commo� t� th� othe� ZCPR� utilities

         Thes� parameter� ar� note� whe� a� � optio� appear� i� �
th� menu��  Thes� ar� uniqu� t� � specifi� utilit� o� se� o� �
utilitie� an� ar� no� affecte� b� th� � an� � command� (onl�� th� �
digit-selected parameters are affected by these commands).

6.1  Sample GENINS Session

    Th� followin� GENINӠ sessio� illustrate� th� proces� o� �
utilit� installatio� extensively��  Comment� ar� note� ou� t� th� �
right side as text preceeded by the "<<" symbol.


B4>genins genins         << Install GENINS first
GENINS Version 2.1       << This is probably NOT the version
                             << number which will be distributed
                             << with the ZCPR2 System
GENINS -- General Installation Program for ZCPR2 Utilities
Ready to Set Default Values   << It has found and read in the
                             << parameter section of the file

File Being Installed: GENINS  .COM
** GENINS Flag/Value Setup **      << Menu Follows
       Select Standard Flags and Values
               (* indicates unnecessary option) --

       P  Print Flags and Values       S  Setup ALL Flags and Values
       <  Save All Flags/Values        >  Restore All Flags/Values
       Q  Quit and Do Not Update       X  Exit and Optionally Update

       0  Setup Named Directory Data     5  Set Disk Allowed Flag
       1  Setup External Path Data       6  Set User Allowed Flag
       2  Setup Multiple Command Line    7  Setup Priv User Data
       3  Set Max Disk                   8  Set Current User/Disk Data
       4  Set Max User                   9  Set File DMA Address
�Setup Command (? for Menu)? P      << Print current params
**** Default Flag/Value Settings ****
Enable External Paths: Yes  External Path Address: 0040 Hex
  Internal Path is -- Empty
Enable Multiple Command Line Buffer: Yes  Buffer Address: FF00 Hex
Maximum Disk: D   Maximum User Number:  31
Disk Specification Allowed: Yes   User Spec Allowed: Yes
Base of Privileged User Areas:  10   Password: chdir
Current User/Disk Indicator: $   DMA Address for Disk I/O: 0080 Hex
Address of Memory-Resident Named Directory Buffer: FD00 Hex
  Number of Named Dirs Allowed:  64   Named Dir File: NAMES   .DIR

Setup Command (? for Menu)? S      << Set ALL Params in sequence

Address of Memory-Resident Named Directory Buffer: FD00 Hex
  Number of Named Dirs Allowed:  64   Named Dir File: NAMES   .DIR
** Setup Questions **
1  Address of Memory-Resident Named Directory Buffer
       Enter Hex Number or <RETURN> = None? fd00
2  Number of Named Directories Permitted?
       Enter Decimal Number or <RETURN> =  64?
3  Name of Named Directory File?
       Enter only File Name and Type -- DIR: form will be ignored
       Directory File Name (<RETURN> = NAMES   .DIR)?

Enable External Paths: Yes  External Path Address: 0040 Hex
  Internal Path is -- Empty
** Setup Questions **
1  Enable External Paths (Y/N/other=Y)?
1a Address of External Path in Hex (<RETURN> = 0040 Hex)?
2  Enable Internal Path (Y/N/other=Y)?
2a Define Internal Path Using Symbolic Notation --
1.  Path Element (<CR>=Done)? a$
2.  Path Element (<CR>=Done)? a15
3.  Path Element (<CR>=Done)?

Enable Multiple Command Line Buffer: Yes  Buffer Address: FF00 Hex
** Setup Questions **
1  Enable Multiple Command Line Buffer (Y/N/other=Y)?
1a Address of Multiple Command Line Buffer
       Enter Hex Number or <RETURN> = FF00 Hex?

Maximum Disk: D   Maximum User Number:  31
** Setup Questions **
1  Maximum Disk Allowed? B

Maximum User Number:  31
** Setup Questions **
1  Maximum User Number Allowed (<RETURN> =  31)? 15

Disk Specification Allowed: Yes   User Spec Allowed: Yes
** Setup Questions **
1  Specification of Disk Allowed (Y/N/other=Y)?

�User Spec Allowed: Yes
** Setup Questions **
1  Specification of User Allowed (Y/N/other=Y)?

Base of Privileged User Areas:  10   Password: chdir
** Setup Questions **
1  Base of Privileged User Areas (<RETURN> =  10)?
2  Privileged User Password? chdir

Current User/Disk Indicator: $   DMA Address for Disk I/O: 0080 Hex
** Setup Questions **
1  Current User/Disk Indicator? $

DMA Address for Disk I/O: 0080 Hex
** Setup Questions **
1  DMA Address for Disk I/O
       Enter Hex Number or <RETURN> = 0080 Hex?


Setup Command (? for Menu)? P      << Print new settings
**** Default Flag/Value Settings ****
Enable External Paths: Yes  External Path Address: 0040 Hex
  Internal Path is -- A$: --> A 15:
Enable Multiple Command Line Buffer: Yes  Buffer Address: FF00 Hex
Maximum Disk: B   Maximum User Number:  15
Disk Specification Allowed: Yes   User Spec Allowed: Yes
Base of Privileged User Areas:  10   Password: chdir
Current User/Disk Indicator: $   DMA Address for Disk I/O: 0080 Hex
Address of Memory-Resident Named Directory Buffer: FD00 Hex
  Number of Named Dirs Allowed:  64   Named Dir File: NAMES   .DIR

Setup Command (? for Menu)? /      << Any invalid cmd gives menu
File Being Installed: GENINS  .COM << Reminder of file name
** GENINS Flag/Value Setup **
       Select Standard Flags and Values
               (* indicates unnecessary option) --

       P  Print Flags and Values       S  Setup ALL Flags and Values
       <  Save All Flags/Values        >  Restore All Flags/Values
       Q  Quit and Do Not Update       X  Exit and Optionally Update

       0  Setup Named Directory Data     5  Set Disk Allowed Flag
       1  Setup External Path Data       6  Set User Allowed Flag
       2  Setup Multiple Command Line    7  Setup Priv User Data
       3  Set Max Disk                   8  Set Current User/Disk Data
       4  Set Max User                   9  Set File DMA Address

Setup Command (? for Menu)? <      << Save params


Setup Command (? for Menu)? X      << Exit and Update
Do you want to save changes (Y/N/other=Y)? Y      << Yes, Update
Please Provide Name of Output File
Nam� o� Fil� (<CR>=GENIN�  .COM)�� genins�         <�� Ne�� fil� �
Nam� o� Outpu� Fil� i� GENINS� .CO� -- Verif� (Y/N/other=Y)�
Writing File GENINS2 .COM to Disk --

Reading Block    95      << Numbers flash by as GENINS works
Writing Block    95
Please Provide Name of File to Install       << Ready to Continue
Name of File (<CR>=Abort)? mcopy        << New File
Ready to Set Default Values

File Being Installed: MCOPY   .COM
** GENINS Flag/Value Setup **
       Select Standard Flags and Values
               (* indicates unnecessary option) --

       P  Print Flags and Values       S  Setup ALL Flags and Values
       <  Save All Flags/Values        >  Restore All Flags/Values
       Q  Quit and Do Not Update       X  Exit and Optionally Update

       0  Setup Named Directory Data     5  Set Disk Allowed Flag
       1  Setup External Path Data       6  Set User Allowed Flag
       2  Setup Multiple Command Line    7  Setup Priv User Data
       3  Set Max Disk                   8  Set Current User/Disk Data
       4  Set Max User                   9  Set File DMA Address

       A  Set MCOPY Special Default Values

Setup Command (? for Menu)? >           << Restore params from
                                       << previous setting

Setup Command (? for Menu)? P           << Print
**** Default Flag/Value Settings ****
Enable External Paths: Yes  External Path Address: 0040 Hex
  Internal Path is -- A$: --> A 15:
Enable Multiple Command Line Buffer: Yes  Buffer Address: FF00 Hex
Maximum Disk: B   Maximum User Number:  15
Disk Specification Allowed: Yes   User Spec Allowed: Yes
Base of Privileged User Areas:  10   Password: chdir
Current User/Disk Indicator: $   DMA Address for Disk I/O: 0080 Hex
Address of Memory-Resident Named Directory Buffer: FD00 Hex
  Number of Named Dirs Allowed:  64   Named Dir File: NAMES   .DIR
Verify by Default: Yes
Inspect by Default: No
Quiet by Default: No
Multiple Run by Default: No
Default Destination Disk/User: C  0:


Setup Command (? for Menu)? X      << OK, so exit and update
Do you want to save changes (Y/N/other=Y)? N      << No save
Please Provide Name of File to Install       << New file
Name of File (<CR>=Abort)? wheel        << File Name
Ready to Set Default Values

File Being Installed: WHEEL   .COM
** GENINS Flag/Value Setup **
       Select Standard Flags and Values
               (* indicates unnecessary option) --

       P  Print Flags and Values       S  Setup ALL Flags and Values
       <  Save All Flags/Values        >  Restore All Flags/Values
       Q  Quit and Do Not Update       X  Exit and Optionally Update

       0* Setup Named Directory Data     5* Set Disk Allowed Flag
       1* Setup External Path Data       6* Set User Allowed Flag
       2* Setup Multiple Command Line    7  Setup Priv User Data
       3* Set Max Disk                   8* Set Current User/Disk Data
       4* Set Max User                   9* Set File DMA Address

       A  Set WHEEL Byte Address       << Note all the un-
                                  << necessary options and the
                                  << A option

Setup Command (? for Menu)? P
**** Default Flag/Value Settings ****
Base of Privileged User Areas:  10   Password: chdir
Address of Wheel Byte: 003B Hex

Setup Command (? for Menu)? X
Do you want to save changes (Y/N/other=Y)?
Please Provide Name of Output File
Name of File (<CR>=WHEEL   .COM)? wheel2
Name of Output File is WHEEL2  .COM -- Verify (Y/N/other=Y)?
Writing File WHEEL2  .COM to Disk --

Reading Block    10
Writing Block    10
Please Provide Name of File to Install
Name of File (<CR>=Abort)?


B4>dif� genins2.com,genins.co�          <� DIF� i� goo� t�
                                        << compare with�
DIFF Versio� 1.6
Source File 1 -- B  4: GENINS2 .COM
Source File 2 -- B  4: GENINS  .COM
Rel Offset   B  4: GENINS2 .COM     B  4: GENINS  .COM
Hex    Dec       Hex  Dec Asc           Hex  Dec Asc
0006      6        01    1  .             00    0  .
0007      7        24   36  $             00    0  .
0008      8        01    1  .             00    0  .
0009      9        0F   15  .             00    0  .
001A     26        02    2  .             04    4  .
001B     27        0F   15  .             1F   31  .

B4>diff wheel2.com,wheel.com
DIFF  Version 1.6
Source File 1 -- B  4: WHEEL2  .COM
Source File 2 -- B  4: WHEEL   .COM
NO Differences Noted in Files
























              This Page Intenti
onally Left Blank







                          Appendix A

                   ZCPR2 Distribution Files

Disk 1 --

   1 File:  ZCPR2  .�1  -- Size:     0K -- CRC: 00 00
       Comment:
   2 File: SYSIO   .ASM -- Size:    29K -- CRC: 91 11
       Comment: Sample Redirectable I/O Driver Package
   3 File: ZCPR2   .ASM -- Size:    56K -- CRC: 4F D1
       Comment: Source to ZCPR2
   4 File: ZCPRHDR .LIB -- Size:    15K -- CRC: E6 29
       Comment: Header/Configuration File for ZCPR2

Disk 2 --

   1 File:  ZCPR2  .�2  -- Size:     0K -- CRC: 00 00
       Comment:
   2 File: DU2     .ASM -- Size:    72K -- CRC: 19 DA
       Comment: Disk Utility
   3 File: HELP2   .ASM -- Size:    33K -- CRC: 16 19
       Comment: Online Documentation System
   4 File: LRUNZ   .ASM -- Size:    26K -- CRC: B8 6F
       Comment: Library-Oriented Extended Command Processor
   5 File: SUB2    .ASM -- Size:    31K -- CRC: 57 FB
       Comment: Disk-Based Command File Processor/Ext Cmd Proc
   6 File: ZEX     .ASM -- Size:    45K -- CRC: 09 11
       Comment: Memory-Based Command File Processor/Ext Cmd Proc
   7 File: ZEX     .ZEX -- Size:     5K -- CRC: 53 28
       Comment: Command File Used to Assemble ZEX



Disk 3 --

   1 File:  ZCPR2  .�3  -- Size:     0K -- CRC: 00 00
       Comment:
   2 File: CCPLOC  .MAC -- Size:     5K -- CRC: FA DA
       Comment: CCP/BDOS/BIOS Locator Program
   3 File: CD      .MAC -- Size:     9K -- CRC: F5 5D
       Comment: Change Directory (Log Into Named Directory) Util
   4 File: COMPARE .MAC -- Size:    13K -- CRC: 2F 8A
       Comment: File Compare Utility
   5 File: CRC     .MAC -- Size:    20K -- CRC: 4C 09
       Comment: CRC Utility
   6 File: DEVICE  .MAC -- Size:    13K -- CRC: 92 0A
       Comment: Redirectable I/O Driver Select/Display Utility
   7 File: DIFF    .MAC -- Size:    17K -- CRC: 74 C2
       Comment: File Difference Listing Utility
   8 File: ECHO    .MAC -- Size:     6K -- CRC: 99 64
       Comment: Command Line Echo Utility
   9 File: ERASE   .MAC -- Size:    15K -- CRC: 25 6B
       Comment: File Erase Utility
  10 File: GENINS  .MAC -- Size:    43K -- CRC: B2 18
       Comment: Utility Installation Program
  11 File: IOLOADER.MAC -- Size:     7K -- CRC: 4F 23
       Comment: Redirectable I/O Driver Package Loader
  12 File: LD      .MAC -- Size:    10K -- CRC: 6C D4
       Comment: Memory-Based Named Directory Loader
  13 File: LDIRZ   .MAC -- Size:    12K -- CRC: FF 1B
       Comment: Library Directory Utility
  14 File: MCHECK  .MAC -- Size:    14K -- CRC: B1 12
       Comment: Menu Syntax Check Utility
  15 File: MCOPY   .MAC -- Size:    37K -- CRC: BA 14
       Comment: Multiple File Copy with Named Directories Utility



Disk 4 --

   1 File:  ZCPR2  .�4  -- Size:     0K -- CRC: 00 00
       Comment:
   2 File: MENU    .CPR -- Size:     1K -- CRC: 18 6F
       Comment: Sample MENU.CPR File
   3 File: MENU    .MAC -- Size:    24K -- CRC: 0D BE
       Comment: Menu Command Preprocessor
   4 File: MKDIR   .MAC -- Size:    21K -- CRC: BE 0A
       Comment: Named Directory Create/Edit Utility
   5 File: PATH    .MAC -- Size:    14K -- CRC: 9F 91
       Comment: Path Display/Set Utility
   6 File: PROTECT .MAC -- Size:    18K -- CRC: EB 24
       Comment: File Protect Utility
   7 File: PWD     .MAC -- Size:    12K -- CRC: 1A 64
       Comment: Named Directory Environment Print Utility
   8 File: RECORD  .MAC -- Size:     7K -- CRC: DB 87
       Comment: Disk-Oriented Redirectable I/O Control Utility
   9 File: RENAME  .MAC -- Size:    18K -- CRC: 68 15
       Comment: File Rename Utility
  10 File: SINSFORM.MAC -- Size:     3K -- CRC: 3B E7
       Comment: General Header for ZCPR2 Utilities
  11 File: STARTUP .MAC -- Size:    10K -- CRC: D6 3F
       Comment: Command Line Insertion Utility
  12 File: TEMPLATE.MAC -- Size:    11K -- CRC: C5 DA
       Comment: ZCPR2 Utility Template
  13 File: TINIT   .MAC -- Size:    13K -- CRC: 9F 1E
       Comment: Terminal Init Program for TVI 950 CRT (uses Paths)
  14 File: WHEEL   .MAC -- Size:     6K -- CRC: 32 B6
       Comment: Wheel Set/Reset Utility
  15 File: XDIR3   .MAC -- Size:    39K -- CRC: 8C D9
       Comment: Extended Directory Display Utility



Disk 5 --

   1 File:  ZCPR2  .�5  -- Size:     0K -- CRC: 00 00
   2 File: CCPLOC  .COM -- Size:     2K -- CRC: A0 7F
   3 File: CD      .COM -- Size:     4K -- CRC: CF FC
   4 File: COMPARE .COM -- Size:     6K -- CRC: 00 1D
   5 File: CONFIG  .COM -- Size:    20K -- CRC: 44 4F
   6 File: CRC     .COM -- Size:     8K -- CRC: BB 23
   7 File: DEVICE  .COM -- Size:     4K -- CRC: 76 53
   8 File: DIFF    .COM -- Size:     6K -- CRC: E3 AF
   9 File: DU2     .COM -- Size:    10K -- CRC: 30 22
  10 File: ECHO    .COM -- Size:     2K -- CRC: C1 E9
  11 File: ERASE   .COM -- Size:     8K -- CRC: 00 7B
  12 File: GENINS  .COM -- Size:    14K -- CRC: 97 4D
  13 File: HELP    .COM -- Size:     4K -- CRC: 34 47
  14 File: IOLOADER.COM -- Size:     4K -- CRC: D3 C7
  15 File: LD      .COM -- Size:     6K -- CRC: F2 FC
  16 File: LDIRZ   .COM -- Size:     6K -- CRC: 98 7F
  17 File: LRUNZ   .COM -- Size:     2K -- CRC: B2 4D
  18 File: MCHECK  .COM -- Size:     6K -- CRC: A1 1D
  19 File: MCOPY   .COM -- Size:    12K -- CRC: 5A 81
  20 File: MENU    .COM -- Size:     2K -- CRC: DB E8
  21 File: MKDIR   .COM -- Size:     8K -- CRC: 22 60
  22 File: PATH    .COM -- Size:     6K -- CRC: ED 05
  23 File: PROTECT .COM -- Size:     8K -- CRC: CB 21
  24 File: PWD     .COM -- Size:     6K -- CRC: B6 32
  25 File: RECORD  .COM -- Size:     2K -- CRC: 6E 42
  26 File: RENAME  .COM -- Size:     8K -- CRC: 5A 09
  27 File: STARTUP .COM -- Size:     4K -- CRC: 98 04
  28 File: SUB     .COM -- Size:     4K -- CRC: 46 9D
  29 File: TEMPLATE.MAC -- Size:    12K -- CRC: C5 DA
  30 File: TINIT   .COM -- Size:     6K -- CRC: 60 62
  31 File: WHEEL   .COM -- Size:     2K -- CRC: D5 A0
  32 File: XDIR    .COM -- Size:    12K -- CRC: 1B E1
  33 File: ZEX     .COM -- Size:     6K -- CRC: 08 3E


Disk 6 --

   1 File:  ZCPR2  .�6  -- Size:     0K -- CRC: 00 00
   2 File: CFILES  .HLP -- Size:    22K -- CRC: 10 97
   3 File: COMPARE .HLP -- Size:     7K -- CRC: B3 F0
   4 File: CPMTR   .HLP -- Size:    24K -- CRC: 63 7B
   5 File: DU2     .HLP -- Size:    35K -- CRC: 5F 7B
   6 File: HELP    .HLP -- Size:     1K -- CRC: 15 97
   7 File: HELP2   .HLP -- Size:    22K -- CRC: 2D E1
   8 File: IO      .HLP -- Size:    14K -- CRC: D5 CA
   9 File: LU      .HLP -- Size:    27K -- CRC: 48 F2
  10 File: MCOPY   .HLP -- Size:    11K -- CRC: 96 9E
  11 File: MENU    .HLP -- Size:    29K -- CRC: 1C 39



Disk 7 --

   1 File:  ZCPR2  .�7  -- Size:     0K -- CRC: 00 00
   2 File: NDIRS   .HLP -- Size:    35K -- CRC: F8 19
   3 File: XDIR3   .HLP -- Size:    22K -- CRC: 21 DA
   4 File: Z2ALT   .HLP -- Size:    22K -- CRC: 25 85
   5 File: Z2RES   .HLP -- Size:     7K -- CRC: FA D4
   6 File: ZCPR2   .HLP -- Size:     6K -- CRC: 73 08
























              This Page Intentionally Left Blank