16bit 最終形 — ブラウザで ELKS と FreeDOS が動く
·
653 commits
to main
since this release
16bit時代の完成形。この次のコミットからプロテクトモード (32bit化) が始まる。
試し方 (ダウンロードして2クリック)
rustx86-16bit-web.zipを落として展開START.command(macOS) /START.bat(Windows) をダブルクリック — サーバーが立ってブラウザが開く
index.html の直接ダブルクリックでは動かない (ESモジュールとwasmは file:// で読めない) ため、キャッシュを切る小さなサーバーを同梱してある。
OSのディスクイメージは同梱していない — 再頒布者になるとソース提供義務が恒久的に付くため、取得は同梱の fetch-images.sh に任せる方針 (理由の詳細)。イメージ無しでも実行速度ベンチとデバッガは試せる。
この時点に入っているもの
- 8086 リアルモードCPU — Unicorn Engine と毎命令突き合わせて検証 (94テスト)
- 装置: 8259 PIC / 8254 PIT / UART 16550 / 8042 / CMOS / CRTC / FDC
- BIOS 高位エミュレーション (INT 10h/13h/16h/1Ah ほか)
- ELKS 0.9.1 — ログインして tetris が動く
- FreeDOS 1.4 —
A:\>に到達し、DOSゲーム (ELIZA / ZMIY / ROW4T) が動く。ZMIY はCRTCのハードウェアスクロール込み - ブラウザ (wasm) で全部動く。ネイティブ比 約90% の実行速度
- gdb風デバッガ (CLI + ブラウザ) — 巻き戻し・「誰がこの番地を書いたか」・実行の足跡
- スナップショット (CPU・装置・メモリ・ディスクを丸ごと保存/復元)
解説
- 開発記 (ブログ連載): https://pocraft.net/category/16bit/
- 本 (Zenn): 「Rustで書くx86エミュレータ 16bit編」 — 説明しているのは正確にこのタグの状態
- 設計判断の記録: docs/adr/
🤖 Generated with Claude Code