A Hands-On 8080 Assembler and Simulator
Revisiting Charles Petzold’s Code inspired a search for a lightweight, online assembler and simulator for the Intel 8080 CPU. Existing options lean heavily toward running full ROMs and large programs on emulators, but the goal here was simpler: a tool for practicing 8080 assembly by hand. Since nothing matched that need, js-8080-sim was built to fill the gap.
The project is split into three components:
- A custom 8080 assembler that translates assembly source into machine code.
- A CPU simulator built by cloning and lightly modifying the maly/8080js project.
- A minimal web UI for editing assembly, running it, and inspecting changes in memory and registers.
A live version is available at https://eliben.org/js8080. The interface is entirely client-side—no network requests are made—and it saves your last program using the browser’s local storage. Contributions via GitHub issues or pull requests are welcome.
Deliberate Framework Minimalism
JavaScript is a natural fit for this project since the core requirement is a convenient browser-based UI. When building such tools, vanilla HTML, CSS, and JS are almost always preferred over frameworks. Web frameworks tend to shift rapidly between projects, and keeping up is impractical without frequent JS work. Vanilla code offers better longevity, even if it means handling UI state synchronization manually.
Bootstrap was the only framework seriously considered—purely for CSS and layout—but it was dropped in favor of simplicity. The project takes advantage of modern, widely supported ES6 JavaScript, which is a significant improvement over the web APIs available just a few years ago.



