6502tinymachines

中まで見える
チップ

ここには命令デコーダも、アドレッシングモード表も、サイクル数の一覧も無い。あるのは、実物のチップから撮影されたダイ上の 1725 本の配線と 3510 個のスイッチで、動作はそれらをシミュレートした結果として現れる。レジスタの値はその記憶ノードから読み戻したもので、サイクル数は書き留められた数字ではなく、生じた数字だ。

三つの入口

動いているところを見る

ページの中で動いている機械たちです。録画は一つもありません。フレームも波形もバイトも、見ているあいだに計算されています。動かしているのは、チップ自身のトランジスタから組んだ模型です。

ここから

どうやったのかを読む

物語と記録です。作業の流れを最初から一度きり語ったもの、長めの読みもの、計画と報告のノート、そして各プロジェクトの入口が並んでいます。

ここから

これを使って作る

使える部品です。HTTP で答えるチップ、カートリッジの形式、公開するものを自分で走らせ直すレジストリ、そして本物のガイガー管から出たバイト。

ここから

プロジェクト

この屋根の下には 4 件のプロジェクトがあり、合わせて 29 の部品を持つ。

hotbits

放射性崩壊から得る真の乱数バイト: カウントのひとつひとつをハードウェアで時刻付けするガイガーカウンターで、崩壊イベント間の時間からビットを取り出す。

The NES console

私たち自身の部品から組む動く NES: 二つのチップをスイッチごとに模擬し、チップ間のつながりはすべて記録済みのリファレンス走行と照らし合わせ、絵の経路はすでに実機で試してある。

The autopsy

ゲームを走らせて分解する: ゲームが入ったすべてのルーチン、コードにあるパターン、テーブルとメモリを、カートリッジへ組み立て直せるリスティングとして書き残す。

作る人はここから

The halfphi mark: a wave breaking off a DIP package

halfphi

スイッチレベルのエンジン: ダイデータのパーサ、ネットリスト、ソルバ。特定のチップを名指しせず、ダイデータを一切埋め込まない。それこそが自由に依存できる理由のすべて。6502 も 6800 も Z80 も、同一の呼び出しで読み込む。

提供中のリリース(v0.367)は halfphi 0.1.6 を積む。共有 6 ファイルのハッシュは 6102efce4863。二つのリポジトリで同一

6502 の仕事を、ピースごとに

どれも実在して動いている。6 個のうち 4 個は公開アドレスで応答し、残る 2 個はなぜアドレスを持たないかを述べる。

halfphi

スイッチレベルのエンジン: ダイデータのパーサ、ネットリスト、ソルバ。特定のチップを名指しせず、ダイデータを一切埋め込まない。それこそが自由に依存できる理由のすべて。6502 も 6800 も Z80 も、同一の呼び出しで読み込む。

形態
a Rust crate
コード
MIT
ダイデータ
none: embeds no die data

クレートは依存物であって、動いているサービスではない。HTTP に答えるものが無いのだから、このピースに報告すべき到達性は無い。

the 6502 info site

情報サイト: WebGL2 のダイレンダラ、25 種ほどの導出コンテナ、チップマップ、入門、ラボ、そして実測の表。

形態
built into a content-hashed dist/, served from a release symlink
コード
MIT
ダイデータ
CC BY-NC-SA 3.0, derived from visual6502 die data

the 6502 API

実チップ上のステートレス HTTP: マシン全体が毎リクエストに載って移動し、サーバはセッションを持たない。FastAPI と Pydantic、それにチップアトラス、カートリッジ鋳造所、MCP エンドポイント。

形態
uvicorn, with --root-path /api behind nginx
コード
MIT
ダイデータ
CC BY-NC-SA 3.0, derived from visual6502 die data

halfwave

API が話しかける常駐のエンジンプロセス: 行プロトコル、パース済みネットリスト一つ、マシン一台、依存ゼロ。加えて、レビュアーが建てたラボが自分の敷地に。

形態
a release binary, plus a static lab
コード
MIT
ダイデータ
CC BY-NC-SA 3.0, derived from visual6502 die data

Die Runner

コンソール: 6502 の ROM、画面はそのメモリの 1 ページ、描くのはブラウザ。カートリッジ、ビルダーページ、エディタ。

形態
static ES modules
コード
MIT
ダイデータ
CC BY-NC-SA 3.0, derived from visual6502 die data

Die Runner API

カートリッジ鋳造所、コンソール仕様、レジストリ。公開時には、ファイルに付いてきた verify ブロックを信じる代わりに、すべてのカートリッジをチップ上で走らせ直す。ファイルとは、作者が編集できるものだから。

形態
routes on the same FastAPI app as the 6502 API, not a service of its own
コード
MIT
ダイデータ
CC BY-NC-SA 3.0, derived from visual6502 die data

独立のサービスではない。6502 API 上のルートなので、これを監視すれば同じサービスの健全性を別名でもう一度報告するだけになる。chip-api のピースを参照。

読む場所