Skip to content

16bit 最終形 — ブラウザで ELKS と FreeDOS が動く

Choose a tag to compare

@yoshiharu-ishii yoshiharu-ishii released this 09 Aug 00:41
· 653 commits to main since this release

16bit時代の完成形。この次のコミットからプロテクトモード (32bit化) が始まる。

試し方 (ダウンロードして2クリック)

  1. rustx86-16bit-web.zip を落として展開
  2. 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.4A:\> に到達し、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