home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
ZCPR2
/
Z2INS.WS
< prev
next >
Wrap
Text File
|
2000-06-30
|
89KB
|
2,139 lines
.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Σ byte≤ ▒ 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 the 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 Intentionally 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