[comp.os.cpm] ZCPR and Z-System

sage@LL.MIT.EDU (Jay Sage) (02/19/91)

What a flood of questions and comments about ZCPR and Z-System!  Thorbjorn
Ravn Andersen asked:

>> Is there anyone who is willing to summarize the pro/cons of ZCPR?  I have
>> grown kind of tired of CCP (CP/M 2.2) and would like to get some opinions
>> before starting the big download/compile show.

The subject is much too big to try to answer here.  After all, I have been
writing a regular column in TCJ for close to 25 issues now, and the subject
has still not been exhausted.  I replied to Thorbjorn directly and will
repeat the same offer here.  If you send me a postal address, I can send a
selection of TCJ reprints and other information about Z-System.

Filip Gieszczykiewicz proposed flooding the net with uuencoded Z material, to
which Roger Hanscom replied:

>> Don't get me wrong....I'd dearly love to get my hands on the complete set
>> of ZCPR stuff (part of the problem with ZCPR is knowing what is necessary
>> and what is not!), but not at the expense of the Simtel mail feed.

Filip came back with:

>> P.S. If, however, someone can not get to Simtel or a BBS how is one
>> supposed to get these files? Perhaps I should tell people that if you want
>> a file, I can uuencode it and send it directly to them... :-) --

Here are my suggestions.

By far the best way to get Z-System running on one's computer is to purchase
NZCOM (if you currently operate with CP/M-2.2) or Z3PLUS (if you currently
operate with CP/M-Plus).  Believe me, I do not say this just so I can make
money.  These versions of Z-System not only configure easily and install
automatically but really offer sustantially superior performance over
manually installed versions of Z-System.  The only good excuse for not going
the NZCOM/Z3PLUS route is not being able to afford the $70.  In that case, if
you have a CP/M-2.2 system and know how to modify the BIOS, you can install
the ZCPR33 command processor, which has been released for public distribution
(though copyrighted).

With NZCOM/Z3PLUS you already get a good selection of support utilities.  The
best way to get the rest if you do not have convenient access to a Z-Node BBS
or to SIMTEL20 is to sign up for ZSUS, the Z-System Software Update Service. 
ZSUS offers a disk subscription service.  Roughly once a month, you get a
diskette with about 250K of newly released Z-System software collected from
Z-Nodes.  (Lately, new programs have been appearing in such volume that new
diskettes are appearing more often than once per month.)

ZSUS also offers some nonsubscription packages.  One includes about 350
programs in executable form.  Another includes a rather complete collection
of help/doc files for those programs.  A third package contains a collection
of articles from The Computer Journal by me, Bridger Mitchell, and others
about the Z-System and advanced CP/M topics.  Two new topical collections are
in the works (if not already available): a programming pack with tools for
assembly-language programming and a wordprocessing pack with tools for
writing.  These packages typically fill two to ten diskettes and cost between
$10 and $35.  ZSUS offers a way to get a lot of stuff very cheap.  For those
who want complete packages, ZSUS even offers a custom service that allows you
to order whatever packages (LBR files) you want from the complete archive of
Z material.

Eric A. Rasmussen asked:

>> Are you saying that ZCPR will ONLY work on a Kaypro with a hard disk, or
>> is it capable of running on non-Kaypro, non-hard disk systems? (Such as a
>> DEC Rainbow)

When I was developing ZCPR, through version 3.3, I DID NOT HAVE A COMPUTER
WITH A HARD DISK!  You better believe it will run on a floppy-only system. 
For sure it runs much better on a hard-disk system, and even better with a
RAM disk (I now have both), but what does not run better with such support?

In one of my first TCJ columns I described some tricks for making Z-System
work better on floppy-only systems.  On a slow computer, one will not make
heavy use of shells, which have to reload at every command prompt.  With my
RAM disk system, I live in the HSH history/command-line-editing shell.

Unfortunately, Eric then mentions the Rainbow, one of the most irritating
systems ever invented.  DEC was a master at violating standards!  The CP/M on
that machine is neither CP/M-2.2 nor CP/M-Plus, and as far as I know no one
has ever gotten any form of ZCPR running on it.  Other than the Rainbow,
there are very, very few machines on which NZCOM/Z3PLUS will not run with
ease.

Danny commented:

>> I believe this is not true [that ZCPR will run on any CP/M machine].  If
>> the cpu is an 8080 or 8085, Z-system not work - the cpu must be a Z80 (or
>> one of its variants).  Anyone know for certain?

That is largely correct.  Beginning with ZCPR33, we made the decision to stop
trying to support CPUs that do not recognize the full Z80 opcode set. 
ZCPR30, however, could be assembled for the 8080/8085.  I had an Intel MDS-
800 development system on which I ran ZCPR30 in the original autoinstall form
called ZCOM (we could probably still make this available to those who want to
have ZCPR but do not support the Z80 instruction set).  My brother had a
Sanyo MBC-3000, which also had 8080s, and we ran ZCOM on it.

Since the source code for ZCPR33 has been published, people are welcome to
make their own changes to work around the sections where Z80 codes are used. 
The source to ZCPR34 is also available, but not for free.  So far as I know,
no one has made a conversion of the Z33 code for the 8080.  They did make
changes to allow it to assemble with M80 instead of ZAS (with its stupid
square brackets -- sorry, but I wrote Z33 under contract to Echelon, which
sold ZAS as its standard assembler).  Z34 is written using sensible formats. 
The SLR assembler can handle the Z33 source as is, and I think the nice ZMAC
assembler can as well.

Will Rose answered:

>> Meanwhile, back in the real world, the Z-stuff (I can't think of a better
>> generic) started with a CCP replacement and went on from there to replace
>> the whole CP/M 2.2 and 3.0 OSs.  I use ZCPR 3.3 and ZRDOS: the former is
>> PD, and the latter is now probably outdated.  There are better BDOS
>> replacements around, including one sold by Jay Sage called ZSDOS.  The
>> current version of ZCPR is 3.4, and I *think* it's not much different from
>> 3.3.

This is mostly correct.  Z33, though not legally PD, is PD for most intents
and purposes.  Z34 offers a number of additional features, some of them
rather nice.  The differences are detailed in one of my TCJ columns.  The
main one that comes to mind now is the ability to run relocatable object
files.  The command processor typically loads so-called type-4 programs as
high in memory as possible.  In this way one can have two applications in
memory at the same time, which is nice for error handlers and shells and
extended command processors, all of which are loaded automatically by the
operating system.  It is nice if they don't clobber whatever program the user
was running so that the GO command can start it up again without a reload
from disk.  But Will is certainly right that you get all the really important
functionality in Z33.  You might want to get my "ZCPR33 Users Guide" to learn
more about the features in Z33.

Will is also right when he jokes about ZRDOS's status.  Frankly, I didn't
think very highly of its approach from the beginning.  The ZSDOS/ZDDOS BDOS
replacements really do things right!  They incorporate support for file
time/date stamping in a very efficient and flexible way (the hallmark of Z-
System).  The other spectacular feature is the support for finding files that
are not in the current subdirectory (drive/user).  ZDOS (my name for the
pair) has public-file support, as conceived by Plu*Perfect, and the ZSDOS
variant has a file search path like the command search path of ZCPR.

Hope all of this is helpful!

-- Jay Sage