Sticky Post

Cromemco 68000 System

At its core this is a Cromemco 68000 system. It lacks the Cromemco chassis and Cromemco disk drives but it has a complete card set including:

  • a DPU Dual Processor Card with Z80 and 68000
  • a MCU Memory Control Unit
  • a 512MSU Memory Storage Unit connected to MCU via a MBus ribbon cable.
  • a 16FDC Floppy Drive Controller
  • 2x TUART Twin UART

The chassis is an Australian made SME unit. I constructed the drive chassis based on an old STD chassis. It includes two Mitsubishi 8″ drives, a Mitsubishi 5.25 77 track drive and a gotek.

I have since added a modern IDE/CF Card for solid state storage and a modern 8MB RAM card.

It runs a very impressive unix-esque operating system called Cromix Plus. It supports up to 5 users via serial terminals. It can run 68000 programs and most programs written for CP/M. Each user can run multiple tasks.

I will probably do a lot of posts on this machine because it is fairly unusual and involved a lot of work. I do want to mention upfront that the solid state solution in this machine was made possible by the ever innovative John Monahan and software efforts of Damian Wildie.

Cromemco 68000 System – Getting Started

Andrew, a friend from the ARC Group, has supplied me with a lot of funky gear including a box of S-100 cards, a couple of chassis, several 8″ floppy disk drives, and about 500 8″ floppy disks.

I never imagined that i would get an opportunity to work with S-100 bus. Components are difficult to find and, when they do appear, people expect an arm and a leg for them.

I had no idea if any of the cards were related to a particular system so all i could do was catalogue them and see if any patterns emerged. One pattern did emerge – there were several Cromemco cards including:

  • a Single Card Computer (SCC)
  • a 64KZ Dynamic Memory Card
  • a DPU Dual Processor Card with Z80 and 68000
  • a MCU Memory Control Unit
  • a 512MSU Memory Storage Unit connected to MCU via a MBus ribbon cable.
  • a 16FDC Floppy Drive Controller
  • a TUART Twin UART

Not knowing much about Cromemco, i started reading and a new world opened up. The Cromemco community seems to exist primarily as a Google Group with a huge repository on GIT. This proved critical because i did not have a skerrick of software or doco. There was nothing related on any of the 8″ disks that i had.

The repository includes a vast array of manuals, disk images, software etc.

I realised that there were sufficient cards to be able to build a system capable of running Cromix (a Unix look alike). It would consist of:

  • a DPU Dual Processor Card with Z80 and 68000
  • a MCU Memory Control Unit
  • a 512MSU Memory Storage Unit connected to MCU via a MBus ribbon cable.
  • a 16FDC Floppy Drive Controller
  • a TUART Twin UART (optional)

I’m not sure where these cards came from. Perhaps they had been used in a bespoke design or stripped out of a Cromemco system. If the latter, then the chassis and drives have not made it into my hands. I will need to use a third party chassis, drive enclosure, and drives. Also, notably missing from the list, is a hard disk controller such as the Cromemco WDI-II but i did see that it was possible to run a skeleton Cromix system from floppy disks. That would be good enough for me (until it wasn’t).

It was also possible to build a system capable of running Cromemco DOS (a CP/M look alike) and that seemed like a less intimidating option to start with. It would consist of the following:

  • a DPU Dual Processor Card with Z80 and 68000
  • a 64KZ Dynamic Memory Card or an MCU Memory Control Unit and a 512MSU Memory Storage Unit connected to MCU via a MBus ribbon cable.
  • a 16FDC Floppy Drive Controller

And there was an even simpler machine that could be built using just the SCC.

I started with the SCC and then used it to help locate faults in other boards. Then i moved onto the CDOS system which was also handy for finding faults in the 68000 system.

Cromemco CDOS Build

Cromemco CDOS is a lot like CP/M and can run CP/M programs.

There were sufficient cards to build a simple CDOS system. This is an interesting system in itself but is also a stepping stone to a Cromix system.

The cards are:

  • a DPU Dual Processor Card with Z80 and 68000
  • a 64KZ Dynamic Memory Card
  • a 16FDC Floppy Drive Controller

The DPU is overkill for CDOS but there is one very important CDOS program that is useful to the DPU: the 68000 memory test. That would prove to be handy later.

The 16FDC floppy disk controller has some handy bonus features: a serial port for a terminal and a monitor ROM running Cromemco RDOS.

A TUART can be added to provide parallel interfaces or additional serial interfaces for printers or other devices.

The RDOS Monitor version in the ROM is 2.01 which is capable of booting an operating system from a 5.25″ double density floppy disk – but not from an 8″ disk. The card itself has a 34 pin interface for 5.25″ drives and a 50 pin interface for 8″ floppy disk drives.

I connected a 40 track drive and created a disk from a CDOS image retrieved from the Cromemco GIT repository.

Continuing what had so far been a good run, the RDOS monitor came up after a few key taps (to autodetect the baud rate)and giving a b (boot) command initiated a successful CDOS boot.

I really should have stopped and had a good play with CDOS, because my lucky run came to a halt shortly after this.

More Users and TUARTs

Cromix Plus is a multiuser system, but to support more users requires more serial lines and terminals.

I had a Twin UART (TUART) card that would fit the bill and i’d purchased one more for another project, but it can be plugged into this rack for now. This would give a total of 5 users.

As for terminals – well they are hard to find so i have to be satisfied with a Windows machine with several serial ports and multiple instances of kermit.

The TUART is installed as TUART #1 as per the Cromix Plus Administrator’s Guide.  This puts the ports at 20h and 50h and makes them 2 and 5 in the sysdefs file.

Cromix has been regenerated to enable the two TUART serial ports as devices tty2 and tty3.  The disk controller serial port remains at tty1.

The TUARTs support interrupts, so the 16FDC no longer has the interrupt line to itself. Priority is established by a daisy chain that connects from the OUT on the 16FDC to the IN on the TUART. Just to mess with everyone’s heads, the IN and OUT positions on the TUART are the reverse of the 16FDC.

The serial ports can be configured as terminal ports by editing /etc/ttys:

Along the way, I stumbled on a Software Update Note for 20.14 that said:

This means that if no terminal is connected, the port should not be configured as a terminal port.

A second TUART was setup as TUART#2, but this clashed with the IDE card, so it was moved to TUART #3.  These are 8 and 9 in the sysdefs file used to rebuild cromix.

The second TUART also needed to join the interrupt priority chain: OUT from the first TUART to IN on the second TUART.

Here’s an example of multiple users (3) and multiple processes (9):

(This pic is from after i increased the memory.)