Commodore built this prototype UNIX workstation/server computer in the same time frame as the Amiga and their PC-Clone and then decided that they only had production capacity for two out of three, and the CBM900 lost.
All the approx 300-500 prototypes were recalled for destruction, but due to some kind of "mistake" this particular machine, which was on loan to a favored customer in Denmark, never made it back.
The machine resurfaced when this company cleaned up their basement, and sent 3 euro-pallets of Commodore artifacts our way.
The CBM-900 comes in two different configurations, the only difference being the graphics card and the monitor.
The "low-res" configuration uses a IBM PC compatible monochrome monitor, and has four serial ports for terminals.
The "hi-res" configuration uses a custom monochrome monitor with 1024x800 graphical resolution, and has only two serial ports for terminals.
In addition the machine has a PC-compatible parallel port, and an IEEE-488/GPIB connector.
The basic architecture is a pretty plain Z8001/Z8010 computer, but the storage subsystem is unique, almost but not quite entirely unlike SCSI: A custom bridge chip, the MOS8716, attaches to the Z8000 bus as a DMA controller/device on one side, and to a 40-pin "I/O-bus" on the other side. The floppy and harddisk controllers attach to this I/O bus.
When a disk operation is desired, the Z8001 CPU lays out a 8 byte command block in main memory, and sends a interrupt to the disk controllers which then read the request from main-memory with DMA via the MOS8716 chip. Once the transaction is finished, the disk-controller interrupts the Z8001 CPU, after updating the command block with status/error information.
That seems to be the theory at least, in practice at least the harddisk controller does not send any interrupt, and the Z8001 just spins on the command blocks "done" flag.
The boot-roms of the CBM900 has been reverse-engineered in the PyReveng project.
The floppy controller
The floppy controller is a MOS6508 CPU with 8KB EPROM and a MOS8237 floppy controller chip, and, like the CBM8xxx floppy drives with direct analog interface to two floppy mechanism, rather than the normal Shugart digital interfaces.
The 8237 looks like a chip originally destined for the CBM8xxx series, in that it supports the Commodore GCR floppy formats, but according to the schematic package for the CBM 900 it was also meant to support standard MFM floppy formats.
This probably explains why the CBM900 has a 96 TPI floppy drive, rather than the 100TPI typically found in the CBM8xxx series: A 100TPI drive would not be compatible with any other computer writing MFM format.
Because of the 100/96 TPI difference, and because the sector-size is 512 bytes, no other computer from Commodore can read or write floppies from a CBM900.
The floppy controller EPROM has been reverse-engineered in the PyRevEng project, which has revealed a number of interesting details.
For instance the format is not exactly as described in the schematic, and the 6508 is a version where pin 40 is connected to the overflow flag, allowing the CPU to react very fast to external stimuli.
The hard disk controller
The harddisk controller is a Western Digital 1003 OEM design, with a Intel 8049 microcontroller. We have tried substituting a standard Seagate 20MB harddisk, but the controller fails to read anything from it, indicating that also here a custom formatting has been used.
The hard disk controller EPROM has been reverse-engineered in the PyRevEng project.
Commodore chose the Mark-Williams "Coherent" clone for the CBM900 which is roughly UNIX System 7, but with a few twists and less features.
The operating system is delivered on four floopy disks: Low-res and Hi-res boot, and common volume 2 & 3 with more programs. All four floppies contain a filesystem. We have made bit-for-bit images of these floppies, both on the CBM900 harddisk and offline.
Software on floppies:
Schematics donated by Bo Zimmerman: media:CBM900_Schematics.pdf
Manuals donated by Bo Zimmerman: