タイトル | : 各社のDOS(割り込みベクタ) |
投稿日 | : 2023/01/08(日) 18:06 |
投稿者 | : 文太 | 番 号 | : 10473 10471 番 文太 さんへのコメント コメント数 2 |
システムコールというものについての、雑駁なイメージを抱こうとして もがいています。以下で終了ですが。 === test by B ===; * M 50 ^^ "test" ;AX = $7476, ;これらは、正しい数字 ;BX = $0000, ;#10454「VTDOS int2Fh」のまま ;CX = $6F64, ;DX = $0073, AX = $7477, ;76 -> 77 変更。わざと間違えてみる BX = $0000, CX = $6F64, DX = $0073, &i($2f) &m("AX: %04xh, BX: %04xh, CX: %04xh, DX: %04xh",AX,BX,CX,DX) * VTDOS AX: 7477 BX: 0000 CX: 6F64 DX: 0073 ;(1) MS-DOS 6.20 AX: 7477 BX: 0000 CX: 6F64 DX: 0073 MS-DOS 8 (WinME) AX: 7477 BX: 0000 CX: 6F64 DX: 0073 (1) 数字はそのまま無変更で返るが、返り値に意味はない。「無効な数字を 入れても知らんよ」というところでしょう。 しかし、【システムが落ちることはない。】 これが知りたかったのです。 まともなシステムコールではまず落ちないのだろう。しかし、ROMをみたりすれば、 場合によってはシステムコールでも、落ちるのだろう。こっちのシステムコールは どこまでDOSが管理してるのか分からない。というか、DOSの内部も、NEC, IBM, FMRで違いますね。OEMで提供され、各社、それぞれのマシンにあわせてDOS 作ってね、とMSは言っていたはずなので。 Win95あたりでも、NECはまだこれをやってましたね。NECが我侭だったという より、過去の継承という意味で仕方なかったんだろうな、と思うようになりました けれど。 #10459>PC-98判定にROMを見ているがある種のハードを使っていると、その判定は失敗すると>指摘をいただく。>また、Int10Hを使う方法でPC-98とAT機を判定することが可能だが、これをFM-Rで使うと>ハングアップする可能性あり。なので、まずFM-Rの判定を行ってからInt10Hを使うこと>を推奨。ここから引っかかり始めました。 installation check によく使われる「INT 2F」の総論は以下。 後半、えーと、となるけど。 INT 2F - Multiplex - NOTES AH = identifier of program which is to handle the interrupt 00h-3Fh reserved for IBM (for DOS) 40h-7Fh reserved for Microsoft (for DOS) 80h-B7h reserved for IBM B8h-BFh reserved for networks C0h-FFh reserved for applications AL is the function code This is a general mechanism for verifying the presence of a TSR and communicating with it. When searching for a free identifier code for AH using the installation check (AL=00h), the calling program should set BX/CX/DX to 0000h and must not depend on any registers other than CS:IP and SS:SP to be valid on return, since numerous programs now use additional registers on input and/or output for the installation check.> ● VWXの存在確認及びAPI ENTRYの取得> INT 2FH - VZ Editor の友 (VWX.COM) - INSTALLATION CHECK> AX = E900h> BX = 5657h('VW')> CX = 0000hここでもね。
- No.10473 一括表示へ - コメント元:10471 一括表示へ - [ 返信 ] [引用無し] pre