What's Next for the 3B2 Simulator?

Published Monday, September 30 2019

It’s been a minute, hasn’t it! I’d like to talk about the state of the 3B2 Simulator and get everyone up to speed with where we are, and where we’re going.

In The Beginning

Way back in 2014, I set out on this adventure to build a 3B2/400 simulator because I wanted to play with a 3B2, but I couldn’t find one. Believe it or not, I knew very little about them at first. I eventually picked the 3B2/400 for my target because I could only find documentation for the 3B2/310 and 3B2/400 (which are, after all, exactly the same computer in slightly different boxes). The operating system source code I could find was for the 3B2/400. The processor manual on Bitsavers was for the 3B2/400. So, that’s what I went with.

Five years later, the 3B2/400 simulator is pretty darn complete. It does everything I want it to do. It runs SVR 2 and SVR 3 very well and I reguarly leave a simulator up and running for weeks at a time. (OK, there are still two very small bugs I’m hunting down, but apart from that…)

What’s Next

But the 3B2 line didn’t stop at the 3B2/400. In later years, the 3B2 line was expanded to a whole new family based around the Revision 3 system boards and bus.

Revision 3, which includes the 3B2/500, 3B2/600, 3B2/700, and 3B2/1000, is a whole different beast from Revision 2, which was the 3B2/300, 3B2/310, and 3B2/400.

The specific system board I’ve chosen to implement as the next step is the CM518B. This system board was used in the 3B2/622, 3B2/700, and the 3B2/1000-70 (these model numbers are case style and marketing distinctions, but they’re all functionally equivalent). As for why, well, it’s simply that this is the system board that I have the most documentation for. It’s also the system board that only uses a single MMU, as opposed to the CM518C system board, which uses two MMUs, and for which I have no useful documentation.

To get the CM518B system board working in the simulator, I’m going to need to do at least the following tasks:

That’s a lot of work! In short, it’s not going to be coming any time soon. I’m guessing this is at least a year of work, since emulator development isn’t a full time job for me.

The biggest challenge is likely going to be SCSI support. I have firmware for two different revisions of SCSI card, but it has not been disassembled, so I have no idea how those cards work.

Additionally, getting SCSI supported is going to be a Chicken-and-Egg problem, because while the 3B2/400 does technically support SCSI cards, I do not have any software that supports SCSI on the 3B2/400. That means I can’t just use the existing simulator to develop SCSI support, I actually need to get the new system board working before I can implement SCSI. But, since I need to try to boot System V Release 3.2.3 off the SCSI tape drive in order to test the new system board… well, you can see where that’s going.


I have a lot to do. This is going to be a slow, tedious, ongoing project, but by the end of 2020, I really do want to see a working 3B2/1000-70 emulator getting tested out in the wild.

Wish me luck!