Loom Communications

Portfolio of Projects

This is a non-exhaustive list of projects I've had the privilege of working on over the years, roughly ordered by date.

Preserving the History of the AT&T 3B2 Computer

The AT&T 3B2 was a line of UNIX computers produced in the early 1980s. It was the base porting platform for AT&T UNIX System V Release 3. For as yet unexplained reasons, I became interested in them a few years ago, only to discover that information and hardware was very hard to come by.

I took it upon myself to do a lot of research, archiving, and reverse engineering to understand the 3B2/400, a popular early model.

The end result is a full system emulator for the 3B2/400 computer, written in C, using the SIMH simulation framewwork.

ContrAltoJS Xerox Alto Emulator

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

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.


IttyChat is a light-weight internet chat room built on Node.js and CoffeeScript. When I say "chat room", I mean it in the very retro sense of a Telnet-based chat room. None of this fancy web business, no sir!

To use IttyChat, you need to start the server, then telnet in and create a character. Characters are saved in a SQLite3 database between sessions. There’s a lot more I'd like to do with this, but with so much going on, it's been a low priority.

Retrochallenge Summer 2013

As always, the purpose of Retrochallenge is to play around with vintage computer technology in some way. This year, I chose to build a VT100 keyboard to USB keyboard converter, so I could use a real VT100 keyboard on my Mac. The firmware was written in AVR C, and I learned a lot about the inner workings of a vintage serial terminal.

I'm very honored that my project was chosen as the winner for Retrochallenge 2013. More details than you could ever possibly want are on my weblog.

Home Brew Computers

I built a simple 6502-based personal computer from the ground up, using a handful of ICs. It's not a complex design, but it offers simple terminal-based IO and cassette storage. It's built around a Rockwell R65C02, a 6522 VIA, a 6551 ACIA, 32KB of EPROM, and 32KB of SRAM.

Next plans include a Z80-based system, but it's still in the breadboard stages.

Retrochallenge Winter Warmup 2013

This was a fun project. My home-brewed 6502 computer had no capability for mass storage, so I had no way to save programs. For 2013's Winter Warmup, I chose to build a cassette storage interface so I could re-live the awful old days of PRESS PLAY ON TAPE

I documented the whole process on my weblog.

PDP-11/35 Restoration

I've had an unhealthy love for the PDP-11 since college, when I first laid hands on one that was destined for the scrappers. Some friends and I nursed it back to life and played with it over the course of a couple of semesters.

When I was offered a complete PDP-11/35 last year, I jumped at the chance. Unfortunately, the machine had been left in a barn for over a decade and became infested with mice. It was severely damaged, but I spent a few months carefully restoring it.