一括表示

− 野ざらし言 −

[3134] MZ.DEF

としき 2009/02/26(Thu) 14:03
http://www.hinocatv.ne.jp/~toshiki/
最近、FGALDC の16階掲載のもので遊んでいます。
めざらさんのところの巨大一覧表で旧版扱いになっているものの、発言本文
やドキュメント部分をつまみ食いさせていただくことが主目的なんですが、
別にそれに専念しているわけではありません。

さて、MES/16/#1921 に掲載されている高橋さん作の mz.def です。
発言本文によると、シフト実行での詳細モードは DOSV 依存だとのことです。
が、具体的に、どの部分が機種異存なのでしょうか。
「#if HIRO」という判定部分は見つけましたが「#if DOSV」とか「#if 98」
というようなブロックIF文はないようですし、別形式の機種判別ルーチン
が入っているのでしょうか。もしかして、マシン語の部分でしょうか。
試しに PC-98 やポケ3でシフト実行してみましたが、いずれも、ハングする
といったような致命的な現象は起きないようです。

どなたか、おわかりの方がいらっしゃったらご教示ください。
 

[3135] Re: MZ.DEF

めざら 2009/02/27(Fri) 08:03
[3134]へのコメント http://homepage3.nifty.com/mezala/
解らないのに当てずっぽうで応えることは、としきさんの最も嫌うところであれば申し訳ないのですが、何となく
io.sysの中身が異なるのでPC/AT以外ではウソをついてくる可能性があるということなのではないでしょうか。動作が依存というか結果が依存、みたいな。

[3136] Re^2: MZ.DEF

としき 2009/02/27(Fri) 11:41
[3135]へのコメント http://www.hinocatv.ne.jp/~toshiki/
> 解らないのに当てずっぽうで応えることは、としきさんの最も嫌うところ

ではありません。
私の最も嫌うところは、意図的なウソでございます。
例えば、当てずっぽうに近いものかもしれませんが、書かれているコードか
ら類推した結果などというものは大歓迎。なにせ、類推の基盤となる知識と
か経験が全く異なるわけですから。
うぅん、他の人にはわかり難い思考パターンかも。

えぇと、うろ覚えな記憶で申し訳ないのですが、シフト起動時か何かの場合、
DOS/VとPC-98でキーコードだかフラグだかが異なって、それで分岐するよう
なコードってかけましたよね。私にはわからないけど、それに類するものが
あるのではないか、と妄想したのでした。

> 動作が依存というか結果が依存、みたいな。

こっちの方が可能性が高いのかなぁ。
   

[3137] Re^3: MZ.DEF

めざら 2009/02/27(Fri) 19:13
[3136]へのコメント http://homepage3.nifty.com/mezala/
> DOS/VとPC-98でキーコードだかフラグだかが異なって、それで分岐するようなコード

 ksで判断するのは、やや苦しいように思いますが、機種判別を行う方法は色々あると思います。内部情報に詳しい人ならそれこそ山のように思いつくのではないでしょうか。

 まぁ、そんなことをしなくても、通常のセグメントにある情報としては pc.9 というのがあります。これはわずか1ビットであることからも類推されるように、各ビットにハードウェアIDが割り当ててあるようです。雰囲気的には出力能みたいな。

 例えば、
98が0h、
98Hiが1h
AXが2h
J31が10h
IBMが20h
EGAが21h
DOSVが24h
…なんだそうです。
詳しくは、ソースの vz.inc にある hardware ID を見てください。



[3138] Re^4: MZ.DEF

としき 2009/02/27(Fri) 20:27
[3137]へのコメント http://www.hinocatv.ne.jp/~toshiki/
> 機種判別を行う方法は色々あると思います。

でもって、めざらさんの見た範囲では、あからさまに機種判別を行っている
コードも含まれていない、と、まぁ、こういうことでよろしいですね。
それだけわかれば、とりあえずは結構でございます。
あとは、その他に気付かれた方が居られれば嬉しいですが、ちと難しいでし
ょうか。
 

↑ このページの先頭