Art without engineering is dreaming;
Engineering without art is calculating.

Steven K. Roberts, N4RVE

The Cromemco Z-2D – review in Kilobaud Microcomputing

During the late ’70s, I was making a living on the fringes of the burgeoning personal computer industry with a crazy mix of freelance writing, custom industrial control systems, surplus parts mail-order house, and computer store. The big lesson in this is that one can’t be all things to all people, but the activity that ended up lasting through the years was writing for tech magazines. Everything became research… from the details of engineering jobs to reviews of the tools.

This piece describes the S-100 bus Cromemco machine that had become my mainstay. It makes me kind of wistful now to read this and recall just how intimate we had to become with the innards of our computers back then… I could have told you every detail of the address space and what was on the bus. Now? What lurks behind the big screen of this 27″ iMac? Heck, I dunno…

The Cromemco Z-2D

by Steven K. Roberts
Kilobaud Microcomputing – June, 1979

A year of problem-free operation produced this
hardware/software review of the Z-2D.

I have wire-wrapped an 8008 system, written its monitor and spent lonely nights hand-assembling programs. As both a user and a dealer, I have done endless battle with a much-touted West Coast manufacturer of near-worthless hardware and nearly quit the microprocessor field as a result of the frustration. And, I have attempted to live entirely without a system.

The solution to the agonies of my existence (somewhere between the classifications of “serious hobbyist” and “microprocessor engineering firm”) has become clear in the last year—twelve months untroubled by downtime, inadequate system software and uninterested manufacturers. For one year, I have lived with a Cromemco Z-2D.

Cromemco has done an admirable job integrating various hardware and software components into an efficient computer system. Originally a producer of “add-ons” for the Altair and IMSAI markets, the company began in 1977 to produce its own S-100-based processor, the Z-2. It was instantly evident that they were addressing existing deficiencies in the field, as the mechanical design was not flimsy and the bus was quiet.

Encouraged by the Z-2’s initial enthusiastic acceptance, Cromemco added the two Wangco minifloppies and their controller, which turn the mainframe into a Z-2D. An operating system called CDOS (originally a derivative of CP/M, now an enhancement thereof) was provided, supporting an excellent assembler, a comprehensive disk BASIC, FORTRAN IV, and recently, COBOL, a word processor, and a data base management system. In late 1977, when it was incorrectly assumed that the majority of microprocessor customers were hobbyists, most manufacturers would have long since engaged in the popular art of laurel-resting.

Throughout my involvement with Cromemco, the two most notable characteristics of the company have been its technical competence and its interest in helping users with problems. The latter is almost dizzying (in light of my hundreds of telephone and UPS dollars spent in the past in fruitless pursuit of factory support from one of the major entities in this strange new industry). Unhomogenized by longevity and complacency, the range of attitudes sported by the system manufacturers ranges from the “You bought it, it’s yours” philosophy, which is most familiar, to Cromemco’s almost embarrassing willingness to devote considerable energy to a problem and, yes, even return phone calls. But enough plaudits; let’s look at specifics.

Hardware

Photo 1 shows the system, which includes an EPROM programming station, an extension of the Cromemco Bytesaver contained in the mainframe, This allows unrestricted programming of 2708s without tearing into the system to get at the board.

Photo 2 shows the basic system peripherals. The Hazeltine 1500 CRT is interfaced by the disk controller board, which conveniently includes a programmable serial I/O port for the console. Presently there are two CRTs on the system (the second is an HP 2645A). The Diablo printer on the right is interfaced with a carry-over from my past: an IMSAI PIO 4-4 Parallel I/O board (the printer needs three output ports and one input port).

The only items in the photograph that may give rise to questions are on top of the system cabinet. Under the oscilloscope is a unit I affectionately call the “Kludge Box,” a buffered and isolated S-100 bus extension that provides 180 wire-wrap sockets. This allows plenty of room for all those little odds and ends that seem to get added to the system, without the major surgery that is so often undertaken. (This, along with the EPROM panel, is probably a contributor to the exceptional repair history of this system — one year with not one glitch.)

The sloppy bit of hardware on the right is associated with an experimental music system that, undocumented, had to remain undisturbed for the photograph. (No, the system is rarely this neat.)

If you look inside the Z-2D, first from the back, you will see the view as shown in Photo 3. This power supply provides 30 Amps of +8 V and 15 Amps each of +18 V and -18 V. The vertically oriented backplane may be seen, adorned by various boards (21 are allowed).

Photo 4 is a view of the system from the front, after the front panel with its two drives has been removed. The configuration at the time of the photograph included: 48K of RAM (using three of Cromemco’s 16KZ dynamic RAM boards), disk controller, Processor Technology VDM-1, Cromemco Dazzler, Bytesaver, another 4K of RAM (noncontiguous), the interface to the Kludge Box, a custom development tool dubbed the RAMPORT and, of course, the Z-80 CPU board. The generally overworked bus lines with the system in action are unusually quiet, a major plus in the S-100 world.

The internal difference between the Z-2 and the Z-2D, apart from the presence of the disk drives and their controller, is that the entire card cage has been moved back from its original position near the front of the cabinet. This is not readily apparent in the photo, due to foreshortening, but it has the effect of changing airflow of the original design. Rather than pulling the air directly through the card cage, the fan now draws the air past the disk drives and over the top of the cards. This appears to be an adequate means of heat dissipation, but is probably less than optimal.

Assembly of the kit system was a surprise: It worked the first time, 48K of RAM included. Cromemco replaced a Wangco drive with a bad write-protect sensor within four days, and I had a couple of minor problems interpreting their early documentation (that was late 1977 — it has long since been polished).

The architecture of the system is well defined by the Z-80 itself; the details of interfacing, interrupts, direct memory access and the like are better gleaned from the wealth of S-100 and Z-80 literature with which our industry abounds. The only comment I can make, as a microprocessor system designer, is that they did it well.

Software

Once a computer system is implemented and screwed into its cabinet, it should become more or less invisible to the user. When I am sitting at the terminal writing an article, I am not really concerned with the hardware; I merely have faith in its function. The real strength of a system lies in its software. Clumsily written code in crucial areas of an operating system has been the death of many a hot new product.

I should preface the discussion of the Z-2D’s software with a few comments about my use of the system, lest I be accused of esoterica-mongering or even wanton purism. Apart from all the fun things (music, graphics, games, etcetera, ad nauseam), I use my system heavily and daily for two types of tasks: the generation of article manuscripts and the development/simulation of software for custom products with single board computers inside. (The latter is the output of the microprocessor engineering firm known as Cybertronics, Inc.)

Word processing on the Z-2D was recently made possible by an impressive software package called the Text Formatter, a stand-alone program that accepts a raw text file (prepared with the Text Editor) as input and produces formatted pages as output. Title centering, underlining, page numbering, right-justification (tailored either to matrix or Diablo/Qume/NEC printers) and multi-diskette files are all handled with ease. (My typewriter, dusty, fallen from glory, now dozes under the inevitable stack of papers, awaiting the occasional opportunity to address an envelope. I don’t miss it, or the chalk paper.)

But word processing is a fairly pedestrian business function, associated with offices and IBM commercials. The area in which I am most frequently amazed at the quality of the software is in the system’s use as a development tool.

It can be frustrating to develop code for single board processors. The ones we most frequently use—Intel SBC 80/04—have no resident monitor, take their instructions from 4K of ROM space and offer a whopping 256 bytes of scratchpad RAM. At $195, the SBC 80/04 is a multifaceted device, but devoid of frills. Obviously, a development system is necessary.

Intel suggests the MDS, an excellent product which, with the software known as ISIS and its partners, makes a superb development tool for the single board processors. The only problem is the near-$20,000 price tag.

The Z-80 assembler provided by Cromemco, along with a package called, appropriately, DEBUG, is a good start. Software can be produced on the system with the editor, assembled and burned into EPROMs, which are then plugged into the single board computer. However, I don’t know about you, but a successful piece of custom software around here usually has a revision number between 30 and 60. That’s a lot of EPROM burning.

So, the RAMPORT was born. 2K of RAM is wire-wrapped onto a Vector 8800V prototype card, along with some multiplexing and control logic. Normally, it looks like any other RAM in the system, but when a certain output instruction is issued, it becomes—voila!—an exact imitation of a 2716 EPROM on the end of a 24 conductor DIP cable, which happens to be plugged into the SBC 80/04.

Issuance of a RESET to the SBC causes it to begin executing the code in what it assumes is its ROM, allowing revision after revision to be generated without using the EPROM programmer. And since it is RAM, its mode can be toggled back and forth between internal and external, allowing patches and something more: Simple modification of the SBC allows it to write into its ROM (the 2K RAM), and a few short utilities under system control cause the SBC to transfer its scratchpad and all of its registers into memory visible to the development system.

Now, with this effective little interface, the Z-2D can take the place of a system costing more than twice as much. With the ability to produce relocatable code via an assembler, which allows such niceties as conditional assemblies and disk macro libraries, it is almost fun (well, let’s not get carried away) to develop software for external processors or, of course, for the Z-2D itself.

A quick comment on macros is justified. With such a large portion of most assembly-level programs consisting of utilities and blocks of code that are universally handy, it is worthwhile to build a macro library of utilities and incorporate it on the assembler disk. When the assembler encounters a macro call, it checks for reference to the external file, then wanders off to the library and extracts the needed code. As the library grows, it becomes more and more possible to write entire programs consisting of nothing but macro calls. This is an ideal way to write your own high-level language, exquisitely tailored to your specific requirements.

It’s easy to stray into the finer points of computer use when talking about the Cromemco system, and while questionable from a literary standpoint, that is a good sign. The best index of a computer system’s value is the extent to which it makes its presence felt: the less the better. The operation of the Z-2D is smooth, reducing to almost zero the occasions when it is necessary to pay attention to the system itself.

We’re into this, most of us, because we see potential in the use of microprocessors as “thought amplifiers.” We are aware that the marriage of the human mind, with all its abstraction and pattern-recognition capability, to the computer, with its swiftness of calculation and flawless memory, offers unprecedented opportunities for creative expression and practical enrichment of our lives.

The less we have to fiddle around with the interface between ourselves and our machines, the better we can address ourselves to the tasks at hand.

In the never-ending asymptotic approach to the ideal, the Cromemco Z-2D remains refreshingly in step with the state of the art.