タイトル | : Re: 各社のDOS(割り込みベクタ) |
投稿日 | : 2023/01/10(火) 01:38 |
投稿者 | : konno | 番 号 | : 10478 10473 番 文太 さんへのコメント コメント数 1 |
> システムコールというものについての、雑駁なイメージを抱こうとして> もがいています。以下で終了ですが。なるほど、文太さんの疑問はそこでしたか。> (1) 数字はそのまま無変更で返るが、返り値に意味はない。「無効な数字を> しかし、【システムが落ちることはない。】> これが知りたかったのです。これは DOS2.0 から変わらないルール、仕組があって互換性を保ちながら拡張してきていると認識しています。> (1) 数字はそのまま無変更で返るが、返り値に意味はない。「無効な数字を> 入れても知らんよ」というところでしょう。AX がそのまま返る場合はその番号が使われていないということになります。 何かで使われている場合は AX が変わります。その場合下手な数字を入れると暴走して落ちる場合もあるので> まともなシステムコールではまず落ちないのだろう。これは間違いです。インストチェックで BX をゼロにしているのはそれを防ぐためかと想像します。> >PC-98判定にROMを見ているがある種のハードを使っていると、その判定は失敗すると> >指摘をいただく。PC-98やAT機やFM-R など、機種によってROMの内容が違いますが、偶然チェック部分が同じ場合があるということです。> >また、Int10Hを使う方法でPC-98とAT機を判定することが可能だが、これをFM-Rで使うと> >ハングアップする可能性あり。なので、まずFM-Rの判定を行ってからInt10Hを使うことを推奨。Int10h はBIOSコールですね。これは機種ごとに全く違う機能を割り当てられています。 間違って呼べば暴走します。なので、正しい機種の判定法を調べなければいけないわけです。> installation check によく使われる「INT 2F」の総論は以下。なるほど、INT 2F にもこんなルールがあったんですね。参考になりました。> > INT 2FH - VZ Editor の友 (VWX.COM) - INSTALLATION CHECK> > AX = E900h> > BX = 5657h('VW')> > CX = 0000hうーむ、予想は外れたか、BXとCX どちらかがゼロなら問題ないとかかな。 前回のまとレス> ところで、VTDOSがエミュレートしてるDOSのヴァージョンって何? という> 疑問がありまして(docのどっかに書いてある?)、あ、下ので調べればvtdos.txt には DOSエミュレーションはMS-DOS 6.3を参考に実装していますが、 開発目的上不要であったり、Win32コンソール上で動作する上で無意味であったり、 不可能である機能は省略しています。 一部DOS 7.0のAPIもサポートしています。 システムコールは最終的にVTDOSスーパーバイザー命令(NTVDMでいうところのBOP) が発行され多くは32bitコードでWin32APIコールに変換されます。 こう書いてあります。> とはいえですよ、もし、VTDOSがエミュってつくるベクターテーブルとcommnad.com> が違うヴァージョンだったら、なんか動きそうもないですね。同じでなければダメ、> って、普通な感じもする。基本的な互換性はあるのでだいたい動くと思いますよ。 ただ細かな違いがあるので、動作確認は大変ですよね。MSDOS Player は幅広い対応で凄いですね。 MSDOS Player といえば、more-k で、"Q" で中断出来るようになりました。行番号はムズイ。(^^;
- No.10478 一括表示へ - コメント元:10473 一括表示へ - [ 返信 ] [引用無し] pre