ZCN - A CP/M Clone
By Jameel Siddiq
ZCN is a CP/M clone, or in other words an operating system for the NC100, in much the same way as MS-DOS was for PCs. It can't do much on its own, but opens up a whole world of computing to your NC100. It can be a goldmine but like the old prospectors you have to recognise what is valuable from what is not, or as far as your NC100 is concerned, what runs or runs well, and what doesn't.
In its time CP/M was a revolution for home computing as it meant, for the very first time, that a program written in CP/M would run on a variety of machines as long as they ran the CP/M operating system. It is this benefit that makes it so valuable to the NC100. Historically, there were still some awkward bits like disc format (which was different for different machines) and screen orientated programs needed to be configured, usually by running an install program, so that they would display correctly on your machine. For example, ZDE, which is bundled in with ZCN, has to be configured for the NC100, but don't let that put you off as the work only has to be done once (for any particular program) and then you have a tailored program for your machine. It is worth the effort - look at this screen shot of ZDE running with a drop down help screen showing (with colours slightly jazzed up):-
The documentation that comes with ZCN is very well written and clear and the author has done a brilliant job of including more advanced documentation for hardened programmers (too heady for me!). Remember the golden rule of computing - "RTFM" (Read The Flipping Manual!) - the ZCN documentation is no exception, as by reading it carefully you will avoid wasting time searching for answers that are already underneath your nose. I was in such a blinding hurry to install ZCN and when Mix-C (a C compiler) that I had installed would not compile any substantial programs, I wondered how on earth I could determine the memory available for a running program, the TPA; it was of course in the documentation which I found when I sat down to read it properly. I would urge anyone, even experienced CP/M users, to read the ZCN documentation thoroughly before installing as you'll have a much easier time and won't try re-inventing the wheel.
I decided, as I had a clear idea of what I wanted from a CP/M machine, that I would only install a minimal set of programs, even though I had a 1 Mb memory card, as I wanted as much work room as possible. So, though a simple GUI form of ZCN can be installed, I have gone for the more traditional command line - not glamorous I know, but functional. On my machine ZCN starts up from fresh with the screen shown (with colours slightly jazzed up) below:-
The welcome screen is deceptive and conceals the power of CP/M. What if I told you that I have installed and am successfully running Borland Turbo Pascal 3.0a, Ashton Tate's DBase II, a Z80 Macro Assembler and Linker and even an CP/M version of Lisp, all on the humble NC100?
How is the running of such programs possible? Well, CP/M or Control Program Monitor, is written to interact with the machines own internal routines but to the outside world or a running program shows the same set of controls for input and output and so whereas the NC100 may use a particular set of instructions to print a character to the screen and a CPC6128 (another Amstrad machine) uses another set of instructions, running through CP/M the same program can perform the same tasks on each of the machines.
Here is an example to print the letter 'a' on the screen .
The CP/M Z80 assembler routine (for all machines) is :-
and here is the NC100 specific routine:-
Don't worry that the CP/M routine uses an extra instruction, the valuable gain is having a choice of a whole range of CP/M software that exists out there. There are limitations though and you need to be aware of this. Hardware dependant programs, especially those that access a physical disc directly (by going to a particular sector and track) may not work on the NC100. I couldn't get ASM, LOAD or M80 (classical CP/M assembler tools) to work, although I ended up getting the much-better ZMAC and ZLINK from the SIG/M library. TPA, Transient Program Area or available memory for a running program could be another restriction. The NC100 will typically have 46kb which explains why Mix-C couldn't cope with any substantial program as (I recall) it needs over 50kb TPA. If you're short of space, or want space for other things, some programs may be too disc hungry; even though the HiTech C compiler is recommend, the total size of the required files put me off. The best way to find what's good for you is to be patient, search for software, load and experiment. You may see CP/M 3 or CP/M + programs, don't even try those as they wont be suitable. CP/M+ was the next and for Z80 machines the last version of CP/M from it's makers, Digital Research.
Where can you find CP/M software? Below are my two favourite links:-
The most famous CP/M link, the Oak Repository, doesn't seem to work anymore. I would suggest searching, finding and downloading the software you want before the sites no longer exist as it is questionable how long some of the sites will remain running for.
CP/M for the NC100 offers many treasures but like treasure you may have to dig for it. I downloaded DBaseII and am happy with the program but I know that to re-acquaint myself with the commands (which in our Windows-based times will seem archaic) I am going to have to dig deep to either find information on the net or should I be lucky a DBaseII book at a car-boot sale.
There's loads of gems out there, genealogy programs, Wordstar, Scrivner, Fortran, Cobol, Modula2 and loads of home-brew stuff on the various user-group libraries like SIG/M.