Article View: fj.os.msdos
Article #1Q. Interrupt vector table
From: WAKAI Hirohisa
Date: Tue, 27 Oct 1992 10:27
Date: Tue, 27 Oct 1992 10:27
53 lines
2999 bytes
2999 bytes
若井@シャープ と申します。
DOSに関しては(も!?)、まだまだ若輩ものです。
“DOS”のソフトウェアで、ソフトウェア割り込みを使って、
プログラム間のリンクをとることがよくあるようですが、
その際、割り込み番号がぶつかってトラブルを起こすということを
たまに聞きます。
これは、割り込み番号を決めうちしているためかと思うのですが、
いずれにせよ、あまり好ましいことではないような気がします。
このようなことを回避するには、ある割り込み番号を
使ってもよいか否かを判断すべきだと思うのですが....
そこで、質問なんですが、
1) ある割り込み番号が与えられた時に、それが既に使用されているか
否かのチェックは可能か
2) もし可能ならば、どのような方法が有効(もしくは一般的)か
→ 下記、c)参照
3) 割り込みベクタが、0000:0000 に特別な意味はあるのか
4) 割り込み番号の割り振りは“DOS”の仕様として決まっているのか
また、それは公開されているのか
5) 1)~4)について記述されている参考資料・書籍等はあるか
を、DOSエキスパートの皆様に、是非お聞きしたいと思います。
ちょこっと調べた、もしくは聞いた話では、
a) 60h~66h は各種プログラムで使ってよいらしい
b) 60h~66h は 0000:0000 に初期化されている
→ 近くにある、IBM-DOS J5.0/V, DR-DOS 6.0, MS-DOS 3.X で、
調べてみた結果、いずれも60h~66h は 0000:0000 であった
よって、仮に、いろんなソフトウェアが使用可能な割り込み番号が
60h~66h ならば、
c) INT 21(AH=35,AL=??)でとってきた 割り込みベクタ(ES:BX)が、
0000:0000 ならば、少なくともその割り込み番号は使われて
いないので、使って良い
というのは、正しいのでしょうか??
もっとも、使われていないものは、IRETするだけのルーチンに飛んで行く
べきで、本来ならば、0000:0000 に初期化するなんぞは、
あまりよくないような気はしますが....
ASCIIの応用MS-DOSや、MS-DOSエンサイクロペディアなどを
斜め読みしてみたのですが、残念ながら、知りたい情報は
得られませんでした。
何卒、宜しくお願いします。
--
(DOSの文化をもっと知りたいような、知りたくないような....)
シャープ株式会社 技術本部 情報技術開発センター 第4開発部 若井 裕久
E-Mail wakai@shpcsl.sharp.co.jp Nifty PDD02452
Technical Details
Message-ID:
<gxH6X.wakai@shpcsl.sharp.co.jp>Path:
arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!news.hawaii.edu!sh.wide!wnoc-kyo!shpwide!shpcsl!wakaiShow Full Headers
Complete Article Headers
Newsgroups: fj.os.msdos Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!news.hawaii.edu!sh.wide!wnoc-kyo!shpwide!shpcsl!wakai From: wakai@shpcsl.sharp.co.jp (WAKAI Hirohisa) Subject: Q. Interrupt vector table Content-Type: text/plain; charset=ISO-2022-JP Message-ID: <gxH6X.wakai@shpcsl.sharp.co.jp> Sender: news@shpcsl.sharp.co.jp Nntp-Posting-Host: buddha Reply-To: wakai@shpcsl.sharp.co.jp (WAKAI Hirohisa) Organization: Info. Sys. R&D Center Dept.4, SHARP Corporation Mime-Version: 1.0 Distribution: fj Date: Tue, 27 Oct 1992 10:27:19 GMT Lines: 53