Morrow's MICRONIX Operating System

This document was last edited APri 18 2020 with new Morrow owners. To return to my S-100 home page click here.

Note: as of 2008, there are several firms which use the term "micronix" in their name or for a product or service. There are too many links to list here. If you are on this Web page in error, please use Web search engines to find the "micronix" you are looking for.

Micronix

Micronix was a multitasking operating system for Z80 systems, first offered by Morrow in 1983. It was written to be "Version 6 UNIX compatible". Written in C (probably Whitesmiths C), it has a 64KB kernel and supports process spaces of 16KB to 68KB. The Version 1.61 manual I have describes it as installed on Morrow brand Decision hardware, consisting of a DJDMA floppy controller, a hard drive controller of either an HDDMA (5.25-inch drives) or HDCA (8-inch drives), an MPZ80 CPU card, and a Wunderbus or MULTIO I/O card for serial and parallel ports. Memory was not specified, but is likely to have been Morrow's MM256K card with 256KB of DRAM.

The Micronix version 1.61 manual I have has a Forward page which lists the developers and is dated June 30 1983. Other dates in the manual are also mid-1983. There's just over 600 pages in this manual, with the following sections:
intro - 6 pgs
orientation - 14 pgs
installation & operation - 70
maintenance & admin - 95
tutorials - 16
programs - over 220
sub routines - 50
devices - 30
files - 30
other programs - 0

You can find a copy of the Micronix manual at bitsavers.org. They also have some diskette images and look for ROM images too.

Morrow history

My Web page on Morrow S-100 systems is is linked here. George Morrow was an early designer of S-100 cards, and with others established the IEEE-696 standard for S-100 designs of the late 1970's. "S-100" refers to the 100 pin bus for Intel 8080 and later computers, first established with the MITS Altair in 1975. This site lists over 100 manufacturers of S-100 boards and systems; here is the home page for S-100 on this site.

Micronix owners, developers

We hope to have more notes and discussions here, from the developers and other former Morrow staff. Please contact me if you wish to contribute.

Mike Radwick:

Dec 2019: I am the original owner of a Morrow [Decision 1 or] D1 with Micronix, purchased around early 1984. For sake of nostalgia, I have been thinking of restoring it. Then, maybe, extend the I/O to control a model railroad; who knows. The cabinet, S100 bus, cards, and interior are all clean and appear in good condition. It has been maybe 15-20 years since the last time the D1 was powered up and put to use.

My intuition suggests I should power up the supply stand-alone for testing to avoid risking the bus and other cards. While I have all the original material from Morrow (manuals, floppies, etc; yes I'm a pack-rat), I do not have drawings or specifications for the power-supply (other than it supplies +8, +/-16V to the bus, perhaps other voltages for the drives). From inspection, the supply appears to be a switching design, so I'm concerned that using a variac to slowly bring up the AC might not be a good idea. [I called out to Mike that, as a switching supply, it needs a load to run.]

After vetting the supply, I'd like to test the cards one-by-one, starting with the MPZ80 (and Wunderbus) and finish with booting from hard-drive (or floppy). Of course I'm also concerned about the integrity of the hard-drive and floppies, but I'll cross that bridge when I get there. I guess I'll learn how to deal with them if I have to.

Here are the boards I have:
(1) MPZ80 CPU running 4MHz Z80B labeled "DECISION CPU REV.1" on the front with MON 4.47 F4F6 EEPROM. The back of the board shows "MPZ80 Rev 3".
(1) WB16 16-slot Wunderbus backplane, rev 1.
(1) Disk Jockey/DMA board, rev 3a with EPROM "DJDMA 2.5 2602".
(1) HDC/DMA rev 4 hard-drive controller (the manual I have appears older than the board, indicating "Revision 1 April 1982" on the cover, although the layout and schematics say "Winchester DMA Controller Rev 2").
(1) Mult/IO rev 4(B) (in addition to the 3 serial ports on the WB16, the Mult/IO adds 3 more ports, allowing up to six simultaneous users to login).
(2) MM256K rev 3 Memory board (for a total of 512K of RAM)

I also have four different hard-drives, used at different times during the life of the system. None are connected at this time, so I don't remember which is the "latest" and which is the "original". Here are the models:
MiniScribe Model 8438 (1/2 height, probably the latest one)
Computer Memories, Inc Model CM5619 (judging from date, 6-83, probably the original drive).
MiniScribe Model 4020 (sticker on this one says Oct 11, 1983)
MiniScribe Model 6085 (sticker says Feb 11, 1988).

Just so you know, I am an experienced computer/electronics/software engineer having developed embedded systems (mostly software) for the automotive industry for some 35 years. I worked with S100 based computers (designing serial and parallel I/O cards, then driver s/w for CP/M) very early in my career. Except for worn sectors in my brain, I hope restoration to be straight forward. At least the technology and tools should not be a big problem for me. - Mike Radwick

Apr 2020:So I have some news to report: I can boot and operate the Morrow for both CP/M and Micronix! The first image shows the command for booting to single-user mode from CP/M (which boots from the floppy drive).{then] I exit single-user to start multi-user [in the 2nd image]. Now, I can log in, browse the file-system, edit files, compile, and so on. So the machine is looking pretty good right now.

I have also a photo of the internals of the Morrow. I have currently installed (from front to back): MM256K (256K RAM board); MM256K (255K RAM board) ; DJ/DMA (Floppy Disk Controller); MPZ80 (CPU Board); HDC/DMA (Hard-Drive Controller). I also have a Mult/IO Interface card that I have yet to test.

I have been extremely lucky with the restoration. In short, the power-supply and all boards checked out. So the process went as follows:

[On the power supply:] 1) Remove power-supply from cabinet and figure out connections. Order parts to build wire-harnesses and load-box. 2) Build load-box and test-power supply (at roughly 1.5 - 6A on +8V, 0.5A on +/-16, 0.5A on +5, and 0.5A on +12). 3)At low load (1.5A), the +8 measured 7.99V. As I increased the +8V load, the +8 dropped (to about 7.6V, and the +/- 16V rails went from about 15.2 V to 16.5V). The scope shows a switching hash of about 220mv Vpp at max load at 38uS (~26KHz).

I figured it was good enough, so I proceeded to test the backplane power input and regulator output for shorts. No problem. Then tested MPZ80 power input and regulator output for shorts, again no problem.

So I set the MPZ80 switches to boot to the ROM Monitor, connected an RS232 cable to port-1 and powered-up. Upon first power-up, the MPZ80 reported "M0BAD". Actually this was Very Good; it showed the serial interface on the backplane was working and the CPU powered up successfully. The M0BAD indicated that no memory was found (which was expected since none was installed at that point.

So I tested the power input and regulator output of the MM256 boards for shorts. No problem. I installed the first board only and upon power-up the MPZ80 reported "FFFF". Also Good News (saying that at least 0x000000 - 0x00FFFF was accessible to the processor. I used the ROM Monitor to write memory-map registers so I could switch in the memory and test it. Everything passed. I repeated the process by installing the second MM256. Again, everything passed.

Next I tested the DJ/DMA Floppy Controller power-input and regulator output for shorts. No problem. So I installed the card, and started looking for my master (5 1/4") disks. A story in itself, as for a while I was afraid I was going to need to build a MS-DOS computer so that I can create disks from images I found on the web. A couple of weeks later I found my master disks, along with their backup disks. The drive lit up and the monitor did not report an error, So I commanded it to boot and viola! CP/M booted just fine!

The next step, connecting the hard-drives and booting Micronix was a little more tricky. I'll save the rest of the story for [the next time I contact you, Herb]. - Mike Radwick

Curt Mayer

Curt Mayer contacted me in June 2018. He says: "I've managed to get the whitesmith's compiler to run on my CP/M hosts, and built the micronix 1.61 kernel. There are a few other source files to micronix on the Rlee Peters archive, and the forensics kinda stop there. I need more puzzle pieces. Are there any micronix install disks or boot disks in existence to your knowledge?"

"P.S. I have 6 (!) [Morrow] mpz80's, and 4 (!) djdma [floppy controllers]. I'm trying to get an HDC-DMA, and I have enormous amounts of ram. I'll be able to build at least one [Morrow] decision 1, since I have a couple of multi/o's. too. [But] all my mpz80's are cranky, and I clearly need to get those to the point where they are reliable. Ever have the feeling that there aren't enough hours in the day? --curt"

Curt has established a github site for his Micronix archives and notes. Also, he has a Web page on the Micronix and says "you might find the simulator particularly amusing."

Some Micronix history

Marc Kupperand and I discussed Micronix in 2006. More of Marc's discussion is on my Morrow Web page.

> Iirc, The Micronix project was started around 1979 with the first
> systems being sold in 1980 or 1981.  The MPZ80 was designed for
> and used for Micronix. Micronix was a full port of Berkeley Unix 
> and not just "Unix Like." I know by 1980 we had
> Micronix running....We used the Whitesmith C compiler both for
> Micronix and for the CP/M utilities.  

> In those days we [offered code as] what is now called
> "open source" meaning we gave people the source code to stuff,
> schematics, etc. when they bought hardware.  Probably the main
> exception was Micronix as Unix belonged to Bell Labs. 

> In a nutshell the Unix source code was free to universities and was
> $25,000 iirc for commercial users.  Morrow bought a commercial license
> meaning the base [Unix] V6 code's license would have been from Bell Labs...

- end quote -

Gary Fitts contacted me in late 2008. He says: "I no longer have any [Micronix] memorabilia, but I can tell you a bit about Micronix, which I wrote in the late '70s and early 80's."

"[My work began with writing] a very humble text editor and assembly language compiler for my Altair 8080. (It used a cassette tape recorder for file storage, driven by a TTL-level voltage output through a single diode -- everything else was in software.) I showed it to George [Morrow], whom I knew as a fellow grad student in mathematics at Cal Berkeley, and he adopted it to sell along with a 4K memory board. I believed we called it ATE (for Assembler and Text Editor, or something like that)."

"Meanwhile I was working on some numerical analysis problems, and I wanted more time than I could get on Cal's new Unix system. I wondered if it would be possible to build a powerful enough microcomputer system to host some version of a Unix-like operating system that I could dedicate to my research. I talked this over with George, and he began to design the hardware while I tackled the software. I did not port any existing Unix code. Rather, I designed a Unix "work alike" from the ground up, based on the system-interface specifications for Unix "version 6" and whatever public information I could find. "

"The best source, if I remember correctly, was "The Unix Implementation" by Ken Thompson in the Bell System Technical Journal, 1978. Meanwhile George designed a memory management scheme that intercepted the address bus of a Z-80 processor, and allowed us to allocate and map 4K chunks of physical memory into 64K virtual address spaces. When it all came together, we had a system that would reasonably support three users and dozens of independent processes. (Remember that this in the pre-GUI days, when it didn't take a lot of CPU power just to communicate with the user.)"

"Len Edmondson ported the Whitesmith's C compiler, and then most all of the publicly available Unix software tools. I remember the day when Len brought up YACC with almost no changes to its source. One of Len's most impressive achievements was a CPM emulator that ran on top of Micronix, allowing us to run popular CPM programs (such as Word Star) in our multiuser environment. This was a precursor to today's "virtual machine" world, where we can even host Windows on a Mac."

"As far as I know, Micronix was the only Unix-like multiuser system ever to run on an 8 bit processor."

"Those were the days!" - Gary Fitts

Micronix code and docs

A number of Web or private archives of "CP/M" files and disks or disk images, especially Morrow files, also include some Micronix files. As of 2010, I didn't have a particular distribution set of disks or images that are verified; I'm aware of some resources. But contact me if you are interested, or if you have Micronix disks available for imaging. It's a potential restoration project of mine to revive a Morrow and Micronix system.

But I believe, there's a Micronix manual at amaus.net and bitsavers now has versions 1.3 and 1.4 as disk images; and Morrow hardware docs in the "pdf" section.

Thank you. - Herb Johnson

Herb Johnson
New Jersey, USA
here is how to email @ me

Copyright © 2020 Herb Johnson