[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2919] from OSASK BOARD



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい。


http://www.imasy.or.jp/~mone/osask/index.cgi?REFER=3c3fb614_a100

From: 川合秀実
Message-ID: 3c3fb614_a100
Date: 2002/01/12 13:05
Subject: Re: bochs20b on bochs1.2.1

[OSASK 2915]へのレスです。

>川合さんの書き込みどおりosat20b.binからの直接起動を試して
>みましたが、やはり同じように動きません。pokonまで表示され、

 ご報告ありがとうございます。

>>これなんですが、bochs1.2.1では、動かないようです(少なくともうちのwin98では)
>>自分は仕方ないので、bochs1.3をダウンロードしたら、動くようになりました。
>>bochs1.2.1だと、pokonが表示されるところまでは行くのですが、何もしないうちに、左上部にエラーのメッセージが表示されます。
>>報告したほうがいいのか迷っていたんですが、だれも1.2.1使ってないみたいだったので。(^^;;
>やはりbochsのバージョンの問題なんでしょうか。OSX版のver1.3
>のバイナリはまだ配付されてないみたいなので、とりあえづ配付開始まで待ってみます。あ〜楽しみ。:)

 らっきょさんのご報告に基づき、僕も追試してみました。そしてらっきょさん
のご指摘通り、win32版のBochs 1.2.1では動きませんでした(ipsをもっと増やし
てみたりもしましたが駄目でした)。らっきょさん、ご報告ありがとうございま
す。

 しかしその後、意地になって原因を突き止め、動かす方法を発見しました。

(註)なぜ意地になったのかというと、DOSが動くのにOSASKが動かないなんて、な
んか非常にくやしかったからです。それに、実に惜しいところまでは動いていた
わけですし。

 うまくいかない原因は、BochsがHLT命令をうまくエミュレーションできないせ
いでした。したがって、この命令をNOPに変えることで、動くようになります。

 具体的な改変方法は以下の通りです。

 osat20b.lzhの中のosask20.exeのオフセット0xA430をF4→90に変更します。変
更後は以下のようになるはずです。

  offset  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
  -------------------------------------------------------
  00A420  00 D0 FF E8 30 01 00 00 59 0F 20 D8 0F 22 D8 C3
  00A430  90 EB FD 53 8D 5E 28 3B 0B 76 0A 8B 43 08 83 C3

 このosask20.exeをDOS経由で起動すれば、うまく動きます。ipsがデフォルト
の100万のままでも動きました(osat20b.lzh内のbochsrcではうまくいきませんで
した。多分設定項目で違う部分があるのでしょう)。・・・ちなみにこの変更を
しても、Bochs 1.3ではipsを600万や700万にしないと起動できませんでした。

 ただしうちでBochs 1.2.1を試した範囲では、Shift+カーソルキーの入力がで
きませんでした。Bochs 1.3ではできるんですが・・・。またinvader2.binで自
機を左右に動かすこともできませんでした(ミサイルは撃てるんですが)。

 ということで、Bochs 1.2.1でも少しは遊べるレベルになりました。でもやっ
ぱり、受験生さんにとっての本命はOSX版のBochs 1.3ですね。