2025-06-06
MSX-BACONで生成したコードの動きを追いかけるために、昔のCPU、Z80のバイナリを読みたくなって、オープンソース「z80js」を発見。

6年前のソースコードだったので、まずは再利用性の高いJavaScriptにするため、ESモジュール化。1命令をディスアセンブル(マシン語のバイナリからアセンブリ言語に変換すること)する関数を足し、z80disasmという外から使える関数を実装できたので、目的は達成!


下記のように書くことで、Z80のバイナリをアセンブリ言語のニーモニックにできます。 import { z80disasm } from "https://code4fukui.github.io/z80js/z80disasm.js"; const bin = new Uint8Array([0x21, 0, 1, 0xc9, 0, 0xff, 0xff]); console.log(z80disasm(bin, 0)); console.log(z80disasm(bin, 3));


「A JavaScript based Z80 Disassembler and Simulator」
src on GitHub
z80js」は、Wikimedia Commonsの図「Z80アーキテクチャ」をベース、コンピューターの動きが分かりやすく表示してくれるシミュレーターにもなっていたので、ESモジュール対応でも動くようにしてみました。OUT命令で出力される値が見えるのも良い感じです!


「code4fukui/z80js: z80js - A Javascript based Z80 Disassembler and Simulator」

シミュレーターとしては未完成ですが、実行部分は「Z80.js」を使ってちゃんとしたシミュレーターにするのも良さそうです。

オープンソースで遊ぼう、学ぼう、コンピューター!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS