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 the 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 hun- gry 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 (un- less you really want to). If you have a floppy system, copy the distribution files to a work disk then 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 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 as now shown. Press 'S' for save and MKZCM will create two files for you: NZCOM.ZCM and NZCOM.ENV. Second step: A>NZCOM In about three shakes of the old lamb's tail, NZCOM will have loaded 7 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 func- tional 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 in- stalls 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 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 selec- tions 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 seg- ment 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 Min- imum 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 en- vironment 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 ZCOM. 3. What's Going On Here? ------------------------- NZ-COM (and Z3PLUS*) is a little more than just cute. It is a true ad- vance 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 ad- dresses 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 sen- sitive. 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 un- der 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: refer- ences under NZ-COM. Let's get really fancy and consider that we have a seperate LBR for de- scriptors, 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 re- quired 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 com- puter 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. ORDER FORM New Z-Com v2.0 (NZ-COM) $ 69.95 (+ Calif Sales Tax) Alpha Systems Corporation 711 Chatsworth Place San Jose, CA 95128 (408) 297-5594 Name: Company: Address: City/State/Zip: Disk Format: IBM 8 in. ___ Kaypro II ___ Ampro/SB180 DSDD ___ Other Format: _____________________________ (Please be explicit) Payment: Visa ___ MasterCard ___ Check ___ Money Order ___ Card Number and Exp Date: Thank you for your order. --------------------------------- end ----------------------------------