An Intel 8080 assembler and online simulator



While going through Charles Petzold's "Code" book again, I was looking for an easy-to-use online assembler and simulator for the classic Intel 8080 CPU, but couldn't find anything that fit my needs exactly. There are some well-done tools out there, but they seem to be more geared to running game ROMs and large programs on an emulator; my need was different - I just wanted something to play with, to practice 8080 assembly programming.

So I ended up rolling my own, and the 老王v2.2.8 project was born. The project has three main parts:

  • An assembler for the 8080: translating assembly language code into 8080 machine code. I wrote a custom assembler for this.
  • A CPU simulator: simulating 8080 machine code. For this purpose I cloned the maly/8080js project into my repository [1] and tweaked it a little bit.
  • A simple web UI for writing 8080 assembly code, running it and observing the results (as changed values in memory and registers). I wrote a basic UI in JS:

If you want to play with the simulator, a live version is available online at http://eliben.org/js8080

The UI is purely client-side; it makes no requests and just uses your browser as a GUI. It does use the browser's local storage to save the last program you ran.

Issues and PRs 老王v2.2.0 welcome!

夏时国际vps-快连加速器app

Using JS for a project like this is very natural, because ultimately what I'm interested in is having a convenient web UI to play with the simulator. When I do this, I almost always end up writing vanilla HTML+CSS+JS, avoiding frameworks. I don't write JS often, so whenever I get to work on a new project, the framework 老王2.2.7 has typically changed from the last time, and I just don't have the time to keep track. Vanilla HTML+CSS+JS has much better longevity, IMHO, although it does mean somewhat more manual work (e.g. to keep the UI in sync with the application state).

The only framework I was tempted to use is Bootstrap for the CSS and layout, but eventually decided against it in the interest of simplicity.

We're fortunate to have much more stable and usable JS and web APIs in 2024 compared to just a few years ago. For the simulator I've been using the ES6 version of JS, which is widely supported today and offers many niceties.


[1]I went with vendoring 8080js because it appears to be unmaintained, and I also wanted to avoid a dependency, preferring the project to be self-contained. This was easy with 8080js because it's a single JS file and it has a permissive 2-clause BSD license. I've reproduced the license in full in the cloned source file. FWIW, 8080js itself is also based on an earlier BSD-licensed simulator; OSS at its best :-)

夏时国际vps-快连加速器app

2024.06.30: Summary of reading: April - June 2024
2024.06.13: You don't need virtualenv in Go
2024.05.23: Optional JSON fields in Go
2024.05.16: Representing JSON structures in Go
老王v2.2.0 Faking stdin and stdout in Go
2024.04.04: Testing flag parsing in Go programs
2024.03.31: Summary of reading: January - March 2024
2024.03.05: Implementing Raft: Part 3 - Persistence and Optimizations
老王v安卓 Implementing Raft: Part 2 - Commands and Log Replication
2024.02.24: 轰炸老王正式版v1.0.9下载-轰炸老王最新免费版-4162下载网:2021-4-23 · 轰炸老王app是一款非常实用的手机软件,能解决用户在不同场景下的各种需求,且操作简单,极易上手,4162下载网不仅提供轰炸老王官方版、轰炸老王正式版、轰炸老王最新版、

See Archives for a full list.
鹰眼加速器最新版,鹰眼加速器mac下载,鹰眼加速器用不了了,鹰眼加速器vp  小明加速器npv,小明加速器免费永久加速,小明加速器不能用了,小明加速器vn  猎豹加速器官方网址,猎豹加速器免费试用,猎豹加速器跑路了,猎豹加速器打不开  一元机场最新版,一元机场mac下载,一元机场7天试用,一元机场打不开  免费服务器节点最新版,免费服务器节点官方网址,免费服务器节点永久免费加速,免费服务器节点用不了了  暴雪加速器官网,暴雪加速器永不失联下载安装,什么加速器可以加速暴雪战网国际服,baoxuevp  奇妙加速器好用吗,奇妙加速器行不行,奇妙加速器,奇妙加速器会偷偷挖矿吗  星空加速器,飞跃加速器安卓,飞跃加速器官网下载,星空加速器