Gadget Bochs
当初(2002年ぐらい。バージョン 1.4 の頃)Bochs で DOS/V がまともに使えねーから少しなんとかしてみようか、という感じでもさもさ作業をしていたページです。
基本的に Win32 以外は考慮していません。
というか最近のだと日本語キーボードまわり以外はそんな致命的でもないので、ぶっちゃけこのページの意義ももはやあんまりないかなあ、と…(速度的な意味での実用性には期待できないし…)。
作業進捗・結果
※ファイルがうまく落とせない場合は、
OneDrive(SkyDrive) の方から適当にみつくろってください。
※基本的に本体バイナリと修正パッチしか入っていないので、対応するバージョンの Win32 バイナリアーカイブを本家サイトの project page あたりから取ってくる必要があります。
パッチをあてるソースは tar.gz のほうです。
zip で固めてある方はよく知らんです。
関連ツール
- てきとうにこさえてみた Dev86 の bcc と as86
とりあえず bochs の rombios と vgabios 作成用(elks 方面はまったく関知しておりません)。
MSYS と mingw を別フォルダにインストールしている場合、バイナリを mingw 側の bin フォルダにつっこんだほうがいいかも。
ちなみに最近だと VirtualBox のビルドツール内に各プラットホーム向けのバイナリが入ってたりするので、そっちを使いまわしてみるというのもありかな…。
- cnttick.zip (→OneDrive)
DOS 時間と CMOS クロックを表示する。
bochs 内の DOS 上で動かします。
ips の調整にでも使ってください。
- bochs_shutdown_dos.zip (→OneDrive)
bochs をゲスト側から終了させるプログラム他(DOS 用)。
- 上記自作ツールと sb16ctrl をつっこんだ FD イメージ : bochs-addimg-20080712.zip (→OneDrive)
some experimentals...
作業進捗(2.6.1)
Win32(x86) バイナリ(32bitゲスト、64bitゲスト、デバッガあり), Win64(x64) バイナリ(デバッガなし・あり) + ROMBIOS + ソース修正パッチなど : bochs-2.6.1-jpfix-20130412-win32.zip
おおざっぱな変更内容:
作業進捗(2.6)
Win32(x86) バイナリ(32bitゲスト、64bitゲスト), Win64(x64) バイナリ + ROMBIOS + ソース修正パッチなど : bochs-2.6-jpfix-20120904-win32.zip
おおざっぱな変更内容:
- 日本語キー対応部分は以前と同じ(2.4.5 あたり参照)。
- CMOS クロックの実時間同期パッチはあててない(bochs 側に相当オプションがついた。bochsrc.txt の clock エントリに rtc_sync=1 を追加すると有効)
- osdep.cc: GetTickCount のかわりにパフォーマンスカウンタ使用
作業進捗(2.6.pre1)
Win32(x86) バイナリ(32bitゲスト、64bitゲスト), Win64(x64) バイナリ + ROMBIOS + ソース修正パッチなど : bochs-2.6.pre1-jpfix-20120821-win32.zip
おおざっぱな変更内容:
(2.6 のほうを参照のこと)
作業進捗(2.5.1)
Win32(x86) バイナリ(32bitゲスト、64bitゲスト), Win64(x64) バイナリ + ROMBIOS + ソース修正パッチなど : bochs-2.5.1-jpfix-20120109-win32.zip
おおざっぱな変更内容:
- 2.5 と同じ。つまり 2.5.pre1 と同じ(パッチは 2.5.pre1 のをそのまま適用)
作業進捗(2.5)
Win32(x86) バイナリ(32bitゲスト、64bitゲスト), Win64(x64) バイナリ + ROMBIOS + ソース修正パッチなど : bochs-2.5-jpfix-20111128-win32.zip
おおざっぱな変更内容:
作業進捗(2.5.pre1)
Win32(x86) バイナリ(32bitゲスト、64bitゲスト), Win64(x64) バイナリ + ROMBIOS + ソース修正パッチなど : bochs-2.5.pre1-jpfix-20111113-win32.zip
おおざっぱな変更内容:
- Win64 (x64) 版のバイナリ (x86_64-*.exe) も作ってみた。あまりチェックしていない。
- GetTickCount→timeGetTime(以前の修正ではパフォーマンスカウンタを使っていたが、処理が重そうな気がしてなんとなく戻してみた)
- それ以外は 2.4.5 とだいたい同じ
作業進捗(2.4.6)
Win32 バイナリ(i586+NoSMP, SMP+ACPI, x86_64+SMP+ACPI, x86_64+SMP+ACPI+GUIdebugger)+ ROMBIOS + ソース修正パッチ : bochs-2.4.6-jpfix-20110225-win32.zip
※レガシーな OS(Win9x 系とか)を動かす場合は 586-nosmp 版を使ったほうがいいかもしれません。586版は cpuid エントリの設定項目が少なくなっており、余計なオプションを書くと起動しません。
※ぶっちゃけ、あんまり動作確認していない…
おおざっぱな変更内容:
注意点(bochs 本体側の更新による変更点):
- display_library:win32 の legacyF12 オプションが廃止されました。マウスのキャプチャ/リリースのキーアサインを変更する場合は mouse エントリを編集してください。
(ただ、F12 キーに設定するとマウスのリリースができなくなるようです。デフォルトのまま使うのが無難かも…)
作業進捗(2.4.5)
Win32 バイナリ(i586+NoSMP, SMP+ACPI, x86_64+SMP+ACPI, x86_64+SMP+ACPI+GUIdebugger)+ ROMBIOS + ソース修正パッチ : bochs-2.4.5-jpfix-20100430-win32.zip
※レガシーな OS(Win9x 系とか)を動かす場合は 586-nosmp 版を使ったほうがいいかもしれません
※ぶっちゃけ、あんまり動作確認していない…
おおざっぱな変更内容:
- Win32 GUI で日本語固有キーボードを入力可能に(DADG A01 と AX キー)
- ついでにハングルキーも対応してみた(Hanguel/Hanja)。
動作はまったく確認してません。
- iodev/cmos.cc, cmos.h: CMOS の時計を実時間同期可能にしてみた。
bochsrc の clock: エントリに sync=realtime を書くと有効。つまり pit の実時間同期と連動。
- osdep.cc, main.cc: GetTickCount のかわりにパフォーマンスカウンタ使用。
- display_library: rfb で日本語 106 キーに対応してみた。
display_library エントリの options に keyboard=jp106 を追加すると日本語キー対応(正確な書法は添付の bochsrc.txt あたりからお察しください)。
漢字キー対応の vncviewer が必要です。
- mingw の gcc-4.4.0 でコンパイルしてみた(-mtune=pentium4 -march=pentium2)
- Win32 の GUI デバッガ有効版では、bochsrc の display_library で option に gui_debug を指定するとデバッガのウィンドウが開く(無指定時はコンソールデバッガ)。
記述例→ display_library: win32, options="legacyF12, gui_debug"
Progress/Memo
このへんに適当に書く予定。
「余計なネタうぜぇ」という人は
キーワード bochs で検索するといいかもしれません。
Links