Running modern code on a 1960s UNIVAC via RISC-V emulator
A developer successfully ran complex modern programs—including a Minecraft server, NES emulator, OCaml, and encryption—on a 1960s UNIVAC 1219B computer with only 90kb RAM by building a RISC-V emulator and compiler toolchain.
Score breakdown
Developers working on cross-platform compilation, embedded systems, or constraint-driven optimization can study how LLVM/GCC toolchains adapt to radically different architectures, and how emulation layers enable modern software ecosystems on legacy hardware.
- 01The UNIVAC 1219B uses 18-bit words (not a power of two), ones' complement arithmetic, and only 40,960 words of memory split across 10 banks, making it hostile to modern programming
- 02A custom instruction set compiler (`wee`) consumed ~27k words (67% of total memory) for a trivial fizzbuzz program and took a full minute to compute 100 lines
- 03The team built a Rust-based RISC-V emulator that runs 400x faster than real UNIVAC hardware and 40,000x faster than a prior VB.NET emulator
A developer and collaborators successfully compiled and executed modern C programs on a UNIVAC 1219B, one of only two operational examples of the 1960s Navy computer. The machine operates at 250kHz with 90kb total RAM and uses 18-bit words with ones' complement arithmetic—a hostile environment for contemporary software. Initial attempts using a custom instruction set (`wee`) proved inefficient, consuming 67% of memory for a simple fizzbuzz program and taking a full minute to compute 100 lines.
The team pivoted to building a RISC-V emulator in Rust (400x faster than real hardware, 40,000x faster than an earlier VB.NET implementation) that runs on the UNIVAC itself.
The team pivoted to building a RISC-V emulator in Rust (400x faster than real hardware, 40,000x faster than an earlier VB.NET implementation) that runs on the UNIVAC itself. This emulator, combined with LLVM/GCC and picolibc, enabled compilation of real programs directly from GitHub. The resulting system successfully ran a Minecraft server, a NES emulator rendering game frames, OCaml programs, a webserver, Curve25519 and AES encryption, a BASIC interpreter, and games including Oregon Trail, Wordle, and Battleship—all within the 90kb memory constraint. The project took approximately eight months and represents a significant engineering achievement in pushing 1960s hardware beyond its original design parameters.
Key facts
- 01The UNIVAC 1219B uses 18-bit words (not a power of two), ones' complement arithmetic, and only 40,960 words of memory split across 10 banks, making it hostile to modern programming
- 02A custom instruction set compiler (`wee`) consumed ~27k words (67% of total memory) for a trivial fizzbuzz program and took a full minute to compute 100 lines
- 03The team built a Rust-based RISC-V emulator that runs 400x faster than real UNIVAC hardware and 40,000x faster than a prior VB.NET emulator
- 04Only two UNIVAC 1219s exist today; this is the only operational one, rescued from Johns Hopkins University by the Vintage Computer Federation
- 05The project successfully ran Minecraft server, NES emulator, OCaml programs, webserver, Curve25519 + AES encryption, BASIC interpreter, and games on the 250kHz computer with 90kb RAM