Tuesday, May 16, 2023

CMS 9639A Memory Management Processor

A while back I was fortunate enough to spot a CMS 9639A Memory Management Processor as part of a lot of boards in an eBay auction. This board sat on its box for a long while due to the extra cards I needed to interface with it. It does not have a debug ROM, no on-board system RAM, and the ROM is expecting a disk drive card (probably the CMS 9672 DMA Host Adapter) to actually boot from. At the time, I did not even have a proper backplane.

Since then, I built a backplane and re-purposed a relatively cheap MIKUL 6218 Memory and I/O card. After modifying the MIKUL card to have 1MiB of onboard RAM and reprogramming its address decoding to comply with the CMS 9639, I finally had something close to a usable system. Getting a disk drive working with the system was not something I was looking forward to. Fortunately, I had enough experience with NitrOS-9's 'DriveWire' disk emulation on my CMS 9619 port to know that it would be a good fit here too. Also, Søren Roug had done some great work disassmebling my CMS 9639's boot ROM and included it in his osnine-java project. This project includes lots of old Microware OS-9 source code from many systems. It has a very clever Java 6809 emulator that runs a native 6809 assembler to build all of the code.

First, I added the DriveWire module to the end of the boot ROM, in place of the normal disk drive boot module. After much experimentation, I was able to piece together a semi-working OS-9 system from the source code of other systems including the Dragon 128 and Positron 9000. Then, I struggled for quite a while as the computer did not seem to respond to my key input, even though it would send data to my terminal. Note that I had a similar problem with the CMS 9619 which came down to enabling interrupts. However, the CMS 9639 was designed to use OS-9, so it did not have interrupt enabling jumpers like the CMS 9619. I finally figured out that I had a flakey 6551 ACIA after swapping in a known good one. After using some of the NitrOS-9 tools to build a disk image, my CMS 9639 suddenly came to life! Some fine tuning of the modules and I was able to boot to the OS-9 shell and run some simple commands.

I stored all of my configuration to my fork of Søren's osnine-java repository.


Left Middle Right
CMS 9600A MPU CMS 9609 MPU
CMS 9642 SERIAL I/O PROC.
CMS 9619A ASBM CMS 9639A MMP