Preliminary Information about New Z-Com v2.0 (NZ-COM)
                         by Joe Wright
                           4 June 88

                   ** NEW Z-COM RELEASED **

As  Murphy always knew, if a Manual can be late, it will be.   On �
the  other  hand  we expect it to be  worth  the  wait.   Initial �
purchasers of NZ-COM will have the following information and  the �
Manual  will  be mailed later.  Thank you  for  your  indulgence.  �
SYSOPs.   Please  distribute  this file as  widely  as  possible.  �
Thank you.

Most of you who are reading this may already have a fair grasp of �
the  Z-System and how its many features work so well for  us.   I �
won't go into a lengthy explanation of it here.  Z-System will be �
covered  more fully in the Manual.  In the meantime,  almost  any �
material  you read about Z-System is generally applicable to  New �
Z-Com v2.0.

1.  Introduction:

NZ-COM,  like  its  predecessor Z-Com, will  allow  the  user  to �
install  Z-System on his CP/M 2.2 system  automatically,  without �
any  programming or assembly.  You will have it running  on  your �
computer in seconds.  This is where the similarity ends.

NZ-COM  will  allow  you  to  customize  your  operating   system �
environment  in ways you could have only dreamed about.  You  can �
change  operating  systems at any time, even in the middle  of  a �
multiple  command line.  You can do it manually from the  command �
line  or automatically from within alias or menu command  scripts �
using flow controls depending on system conditions.

You can change the whole operating system or any part of it.  You �
can switch from one command processor to another or from one  DOS �
to another with a simple command.

Need more memory temporarily for a specific application?   Simply �
load  a new system without IOP or RCP and FCP if not needed,  run �
the  memory  hungry application (PerfectCalc comes to  mind)  and �
when you're finished, load up your normal system again.  All this �
is done in seconds with one multiple command.

Using NZ-COM is really simplicity itself.  You don't need  source �
code.   You don't have to assemble or link anything.   You  don't �
even need SYSGEN or DDT to get NZ-COM running.  You don't have to �
'hack' on anything (unless you really want to).

If  you  have a floppy system, copy the distribution files  to  a �
work disk at put the distribution disk away.  If you have a  hard �
disk system, I suggest you copy these files to the A0:  partition �
of  the hard disk.  NZ-COM will work from any drive and user  but �
A0: is preferred and will speed things up considerably.


Getting  NZ-COM  running  the first time is  a  two-step  process �
almost too easy to talk about.  First use MKZCM.COM to define the �
system  you  want to build and then use NZCOM.COM  to  build  it.  �
Here's how:

    A>MKZCM NZCOM<cr>

MKZCM  will present a full screen describing a  full-up  Z-System �
for your computer.  For the sake of argument, let's say you  like �
it like that.  Press 'S' for save and MKZCM will create two files �
for you, NZCOM.ZCM and NZCOM.ENV.  Second step:

    A>NZCOM<cr>

In  about  three shakes of the old lamb's tail, NZCOM  will  have �
loaded  seven or so modules, written two files and given you  the �
Z-System  A0:BASE>  prompt.   You are now in  the  world  of  the �
living.   You have a fully functional full-featured  Z-System  at �
your disposal.  You have arrived!

One  of  the  primary  features  of  Z-System  is  the   TERMinal �
CAPabilities  (TERMCAP or TCAP) segment in the  environment.   As �
delivered,  NZCOM  installs a minimum Lear-Siegler  ADM-3A  tcap.  �
This  will suffice for most Osborne and Kaypro computers and  for �
most  Televideo  and  Wyse terminals and many  others.   If  your �
terminal doesn't like ADM stuff or has more capability, now is  a �
good time to create your own NZCOM.Z3T file.  Use TCSELECT  NZCOM �
and choose your computer or terminal from the list.  You can load �
the resulting descriptor with NZCOM NZCOM.Z3T (or of course  with �
LDR or JetLDR).

NZ-COM  is  delivered with a minimal  NZCOM.NDR  Named  Directory �
module  naming  A0:BASE  and  A15:ROOT.   This  file  is   loaded �
automatically by NZCOM whenever there is space available for  it.  �
You  may use MKDIR NZCOM.NDR to modify this file to taste  or  to �
make new ones.

2.  Practice:

Now  that we know we have Z-System, let's play around  a  little.  �
Type MKZCM<cr> again and get the system environment map  display.  �
You  will note that each of the segments have an address as  well �
as  a  definite  size.  MKZCM calculates  the  addresses  of  the �
segments  based on the CBIOS address (where your computer's  BIOS �
really starts) and the sizes of the various segments.  The  order �
of  the segments is fixed by MKZCM but their sizes are  definable �
by  you.   You may lengthen, shorten or  eliminate  a  particular �
segment by defining its size.

Let's  define  a really small (large TPA) system.  Note  the  TPA �
size report near the bottom of the screen.  We need CCP, DOS  and �
BIO segments as they are for the present.  Leave them alone.  The �
IOP  (12 records) is the first candidate for  elimination.   Type �
'4'.  Now type '0' and return.  The new display will show no  IOP �

and a TPA 1.5k larger.  Continue with selections 5, 6, and 7  for �
RCP,  FCP and NDR and notice how the addresses and the  TPA  size �
change.  Due to a technicality which requires our BIO segment  on �
a  page  rather than record boundary, you will not  gain  TPA  by �
eliminating the SHS Shell Stack segment.  Leave it at 4 x 32.

Now type 'S'.  You will be asked for a filename. Type 'SMALL' and �
return.  MKZCM will create SMALL.ZCM and SMALL.ENV in the current �
directory.  Now type NZCOM SMALL.ZCM and return.  Voila, mesdames �
et  messieurs,  the Minimum Z-System.  You will note  (run  MKZCM �
again) that the difference of the real CBIOS address and our  NZ-�
COM Bios address is 400h or only 1k.  That is the total  overhead �
of  Z-System.   Whithin  1k you get  multiple  commands,  the  Z3 �
messages,  external Path and FCB, the Wheel, the  Z3  environment �
and termcap as well as a full 4-entry shell stack.  Still a full-�
capability Z-System and only 1k larger than your old CP/M system.  �
Magic.  You return to the full-up system with NZCOM<cr>.

3.  What's Going On Here?

NZ-COM  (and Z3PLUS*) is a little more than just cute.  It  is  a �
true advance of the art.  Operating systems and segments  thereof �
have,  until now, been 'black' magic.  The OS was just  something �
you  learned  to live with.  From the largest mainframes  to  the �
most modest micros, users had to simply take what the got and  do �
the  best they could with it.  No more.  The New Z-System puts  a �
definite  end  to  that.   The User, not  just  HAL  or  BigSoft, �
determines his own operating system environment.  The User is not �
stuck, either, with his last best choice.  Any part of NZ-COM can �
be  modified  in many ways and at any time by the User  from  the �
command  line  or  from alias or menu command  script.   The  New �
World.

NZ-COM  consists  of  two  Major  command  files,  MKZCM.COM  and �
NZCOM.COM, a selection of Z-system ReLocatable (ZRL) files and  a �
number  of  utility command files.  We have  already  touched  on �
MKZCM  and NZCOM.  The ZRL files contain the building  blocks  of �
the system.  There are six of them contained in NZCOM.LBR:

NZCPR.ZRL      This is Jay Sage's ZCPR34 Command Processor

NZDOS.ZRL      This is Dennis Wright's ZRDOS at version 1.9c

NZBIO.ZRL      Mini-BIOS for warm-boot of NZ-COM (2 records)

NZIOP.ZRL      Dummy IOP structure

NZRCP.ZRL      The Resident Command Processor

NZFCP.ZRL      The Flow Control Processor�
ZRL files are actually REL files which can be produced by many of �
our  favorite assemblers.  They are renamed to ZRL to  avoid  the �
temptation  to run a standard linker on them.  These files use  a �
multiple  Named  COMMON  Block construct which  a  normal  linker �

simply  can't  handle.   Only NZCOM, Z3PLUS or  JetLDR  have  any �
chance at these files.

NZ-COM uses a data structure known as an environment  descriptor, �
Z3ENV  to  the initiated, for its operation.  Z3ENV  contains  or �
implies the addresses and sizes of all Z-System segments as  well �
as  other data used by the command processor and Z3 utilities  to �
determine  or  change  system status.  Z3ENV  fully  describes  a �
particular system for NZ-COM.

The  output  files  from MKZCM (name.ZCM or  name.ENV)  define  a �
complete  and  explicit  system  in  terms  of  the   environment �
descriptor.   NZCOM can read either of these files and  determine �
how (or whether) to make any changes to the current system.   You �
will note that .ZCM files are actually ASCII text in the form  of �
a standard symbol table.  You might edit this file to fine-tune a �
system more to your liking.

The  actual programs contained in the .ZRL modules use Z3ENV  for �
all inter-module references.  In this way a newly loaded RCP  can �
find  the address of the command processor and other segments  of �
interest.

NZCON.Z3T and NZCOM.NDR are binary segments which are not address �
sensitive.  They can be loaded anywhere.  If you already have Z3T �
and  NDR files for your current Z3 system, you may simply  rename �
them for use under NZ-COM.

4.  What's REALLY Going on Here?

Once  you play around a little and get used to what goes on,  you �
will  notice NZCOM searches an LBR for its files unless told  not �
to.   You may put any of these files into NZCOM.LBR or any  other �
LBR  and  get them from there.  Although it costs  one  directory �
search  to open an LBR, subsequent accesses of the LBR do not  go �
the  the  directory  and  are,  therefore,  quick.   If  you  get �
conscientious,  you  can  place the ZCM (or  ENV)  files  in  the �
library   and   eliminate  that  search.   If  you   get   really �
conscientious  and  ensure that the LBR occupies  contiguous  (or �
contemuous) allocation blocks on your disk, it flies.

For you 'speed at any cost' types, NZCOM will build your favorite �
system an create a single ZCI image file of it (name.ZCI).   This �
system  can  be  loaded  in the  twinkling  of  an  eye,  without �
reference  to  even the LBR.  No free lunch.  Each of  these  ZCI �
files are 10 or 12 k long, costing disk space.

NZCOM  is  also  a hot package loader.  It can load  any  of  the �
system modules individually or in groups.  As mentioned  earlier, �
NZCOM  looks for its packages in an LBR file unless you  tell  it �
otherwise.  You tell it 'otherwise' with an explicit DU: or  DIR: �
reference.  Consider the possibilities.

    NZCOM NZRCP.ZRL


NZCOM  will open NZCOM.LBR, read and load NZRCP.ZRL from  it.  If �
you want to load a file from disk, without reference to the  LBR, �
the command might be:

    NZCOM A6:NZRCP.ZRL  or  NZCOM WORK:NZRCP.ZRL

NZCOM  supports DU: references under CP/M and either DU: or  DIR: �
references under NZ-COM.

Let's  get really fancy and consider that we have a seperate  LBR �
for  descriptors, NZCOM.LBR for the modules and some loose  files �
on the disk.  We can build a system this way.

    NZCOM B0:DESC.LBR, TEST.ZCM, A0:NEWRCP.ZRL, A15:NZCOM.LBR

This will get TEST.ZCM from B0:DESC.LBR, get NEWRCP.ZRL as a disk �
file  from  A0: and then open A15:NZCOM.LBR for the rest  of  the �
modules required for the new system.

5.  Conclusion

This  short note is not complete, and is perhaps  too  technical.  �
We  will  wait  for  the Manual (75 pages by  now!)  for  a  more �
complete  description.  The real purpose of NZ-COM is to  present �
to  the  normal  user of Z80 computer systems, not  just  to  the �
'techie'   developer,  the  latest  and  best  operating   system �
environment possible.  I believe that it can do just that.


I am reminded that some of you don't actually own NZ-COM yet, and �
can't  really  follow  these  examples  on  your  own  computers.  �
Fortunately for both of us, this situation can be remedied almost �
at  once for the price of a good dinner.  At $69.95, NZ-COM  will �
not  upset  your  stomach,  is  high  in  nutrients  and  has  no �
cholesterol.   Unlike  a  good  dinner,  NZ-COM  will  keep   you �
satisfied  for  more  than  eight  hours.   Guaranteed.   Low-fat �
software..(Somebody, Stop him!).

If  none of this has whetted your appetite, then I  simply  don't �
know  what to tell you.  If, on the other hand, I have created  a �
certain longing or even hunger in the pit of your stomach, please �
send me the price of a good dinner and we will both be satisfied. �
(Ok, ok.  I quit.)

*   Z3PLUS by Bridger Mitchell of Plu*Perfect Systems is  similar �
in many respects to NZ-COM and presents the New Z-System to  CP/M �
3.0  users of Commodore 128, Osborne Executive, Morrow MD-11  and �
others.  Also $69.95 from Alpha Systems.