Selected Projects

AT&T 3B2 Minicomputer Emulator

2014–current

The AT&T 3B2 was a line of UNIX mini- and microcomputers produced in the early 1980s. It was the base porting platform for AT&T UNIX System V Release 3. Unfortunately, AT&T’s entry into the minicomputer world is barely remembered these days. To help preserve this little piece of history, I wrote a 3B2 emulator capable of running unmodified system software directly from disk and tape images.

This project involved a tremendous amount of research, archiving, and reverse engineering to understand the 3B2/400, a popular early model.

DMD 5620 Terminal Emulator

2018–current

The DMD 5620 was an innovative graphical windowing terminal produced jointly by AT&T and Teletype Corp starting in 1984. It was a commercial product derived from earlier research work done by Rob Pike and Bart Locanthi Jr. at AT&T Bell Labs.

The DMD 5620 was often used with the AT&T 3B2 line of computers, so it felt appropriate to write a DMD terminal emulator to go along with my 3B2 emulator.

The emulator currently runs on macOS and Linux, with a Windows version planned for the future. The core is written in Rust; the Linux version uses GTK for its user interface.

Farnsworth Morse Code Trainer

2019

A small, pure JavaScript web application that can be used as an instructional aid to learn morse code using the Farnsworth training method. No frameworks were used.

ContrAltoJS Xerox Alto Emulator

2016

ContrAltoJS is a port of the excellent ContrAlto Xerox Alto emulator from C#/.Net to JavaScript. The goal was to run Xerox Alto software in a web browser, and it’s succeeded pretty well. The project involved examining the C#/.Net architecture and porting it to JavaScript piece by piece. I learned a lot about the Alto’s internals along the way.

Symon 6502 Simulator

2010–2019

Symon is a 6502 system simulator, written in Java. At its core is a 6502 CPU emulator, but the simulated system also includes RAM, ROM, and a simulated 6551 ACIA. It has a virtual serial terminal connected for I/O. Programs and ROM images can be loaded and executed. There’s a simple suite of debugging tools, as well.

Symon is fairly rigorously tested, and should be extremely accurate. At this time there are no known core 6502 emulator bugs, so it can serve as a platform for 6502 software development and testing.