LPKKC 1.07 (2009-04-27)
というわけで更新して、とりあえず自分のページに上げておきました。ベクターに登録された分もそのうち更新されるでしょう。
1.04 までに存在していたかなり致命的なバグが 1.05 で修正されました(つまりこのバグ、12年近く放置されていたことになります…)。以前のバージョンをお使いだった方はなるべく最新版にアップデートしたほうがよいかと思われます。
調子こいてすこし拡張し、オプションを追加してみました(1.06→1.07)。オプション /S で内部スタックサイズを設定し、常駐サイズを削減することができます。必要以上にスタックサイズを削るとかなりヤバいので、サイズ設定には多少の調査(試行錯誤)が必要かもしれません。
というわけでちょっと調べてみることにします。まず LPKKC に以下のようなオプションを設定します
DEVICE=C:\DRIVER\LPKKC.SYS /S128 /V
/S128 でスタックサイズを 128 バイトに設定(デフォルトは 256)、/V はインストール時の内部状態を表示します。
うまくいくと、LPKKC 初期化時にはこんな感じのメッセージが表示されます。
"LPKKC Internal Stack" の部分が内部スタックの先頭アドレスとサイズです。適当なデバッガ(ここでは EXDEB を使いましたが、べつに DEBUG や SYMDEB でもかまいません)で該当するメモリを見てみます。
まだ DOS 起動直後で IME を一度も動かしていないので、スタックは初期値のままです。
すこし IME を動かして…
もういちど内部スタックをダンプ。
スタックは高位アドレス(画面下方)から低位(画面上方)に向かって進んでいくので、すくなくとも 66 バイト使用されていることがわかります(む、64 バイト超えてるぜ…やはり /S64 は危険か)。当然ながらスタック使用量は環境構成によって異なるので、各自の環境でご確認ください。
めも
- geocities 今年いっぱいで終了。
なんともヌルいことに FreeDOS のニュース投稿で知りますた。うはー。日本はどうすんだろ。
向こうにはサルベージしまくりな人(たち)もいるようですが、自前で保存しておきたいサイトをいちおう確認しなおしておくか…(というかこの先、本家 Yahoo の個人向け無料サービスは整理されていきそうな悪寒がしないでもない)。 - comp.lang.asm.x86 のモデレータが音信不通→新モデレータ就任(ってことでいいの?)
これも FreeDOS のニュース投稿で知りますたお。内容と関係ないけど or the selection and installation of a new moderator というくだりを読んで「インストールって人間相手にも使える言葉なんだ」とか思った。なるほどなー(←素直に辞書をひくべき)。つまり人材の任用というのはまさに「人間をインストールすること」だったんだよ! な、なん(ry - OS/2 の UCONV.DLL がなんかバグっぽいので修正してみたヨ、的なもの (2009-04-27)
ソースも付属しているので変更内容も確認できます…え、もしかして UCONV の API って thread-safe (MP-safe) じゃなかったりするの? ちょ、おま(ry
こじんてきめも for 2.4 pre1
2.4pre1…まだぜんぜん作ってないですサーセン
とりあえず CHANGES だけちろっと見た。2.3.7 からの変更点を configure のオプション的見地から眺めてみるとこんな感じでしょうか。
- --enable-vmx で VMX サポート有効。一部の仕様は(まだ)サポートしていない。
- --enable-configurable-msr で MSR レジスタサポート有効。設定例は .bochsrc と msrs.def 参照。
- --enable-movbe で Atom の MOVBE 命令サポート。
- --enable-1g-pages でロングモードで 1G バイトのページサイズサポート。
- --enable-long-phy-address で 32 ビット超の物理アドレス空間サポート。ただし、4G バイト以下の RAM を搭載した状態しかエミュレートできない。(たぶん 32 ビットホスト環境では無意味)
- --enable-debugger-gui で内蔵 GUI デバッガ有効。
- --disable-a20pin で A20 のハードウェアマスク機能無効化。すこしスピードアップするかも。
…えーとこれはよーするに、メモリアドレス算出時の & 演算がひとつ減る。具体的に変わるのはソース中だと bochs.h 内のマクロだけ。#if BX_SUPPORT_A20
リアルモード(DOS とか)での動作が重要な場合、--disable-a20 を指定してはいけない。
# define A20ADDR(x) )((bx_phy_address)(x) & bx_pc_system.a20_mask)
#else
# define A20ADDR(x) ((bx_phy_address)(x))(
#endif - --enable-guest2host-tlb オプション廃止(というか常に enable)。
- --enable-icache オプション廃止(というか常に enable)。
2.4 で追加された分だけでもこんぐらい。configure --help するとほかにもいっぱいオプション指定が出てきますが、明示的に指定しないと有効にならないオプションが実はけっこうあったりするのでメンドくさい。