home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 July
/
VPR9707B.ISO
/
DRIVER
/
IODATA
/
RSA3120
/
M120.EXE
/
DOS
/
MANUAL
/
TEXT
/
PRG0104.TXT
< prev
next >
Wrap
Text File
|
1996-09-10
|
2KB
|
55 lines
------------------------
BIOSファンクションの概要
------------------------
ここでは、実際にBIOSを使用する場合の手順・方法を説明します。
●BIOSの組み込みチェック
BIOSが組み込まれているかどうかのチェックは次の手順で行います。
(1).BIOSが使用するソフトウェア割り込みを、アプリケーションプログラムがわかっている場合
そのソフトウェア割り込みが使用する割り込みベクタに設定されているアドレスを確認します。確認したアドレスから16バイト下位(低い)アドレスから始まる8バイトに「RSABIOS.」という文字列が入っていれば、BIOSが組み込まれています。また、この文字列に続く3バイトにBIOSのバージョンが設定されており、例えば、「123」と続けば、バージョンは1.23となります。
例)BIOSが使用するソフトウェア割り込みが INT 60h であった場合
使用する割り込みベクタは、0000:0180(60h*4)ですから、そのアドレスに設定されているアドレスを確認します。このアドレスが1234:aaaaであったとすると、そのアドレスより16バイト下位のアドレスは1234:aa9aです。そこで次のように文字列が設定されていればBIOSが組み込まれていることになります。
1234:aa9a 'R'(52) 1234:aaa2 '1'(31)
1234:aa9b 'S'(53) 1234:aaa3 '0'(30)
1234:aa9c 'A'(41) 1234:aaa4 '0'(30)
1234:aa9d 'B'(42) 1234:aaa5 NULL(00)
1234:aa9e 'I'(49) 1234:aaa6 NULL(00)
1234:aa9f 'O'(4f) 1234:aaa7 NULL(00)
1234:aaa0 'S'(53) 1234:aaa8 NULL(00)
1234:aaa1 '.'(2e) 1234:aaa9 NULL(00)
(2).BIOSが使用するソフトウェア割り込みを、アプリケーションプログラムがわからない場合
ソフトウェア割り込みのINT 40h~7Fhまでを、わかっている場合の手順でサーチします。すべてのソフトウェア割り込みで文字列が発見されない場合、BIOSは組み込まれていません。もし、BIOSが組み込まれていた場合、アプリケーションプログラムは次のようにしてBIOSのファンクションを実行します。
BIOSのエントリーアドレスをアプリケーションプログラムのワークにコピーしておき、実行時にはフラグをプッシュした後、そのアドレスへファーコール(セグメント間コール)します。
例)BIOSのエントリーアドレスが1234:aaaaであった場合
アプリケーションのワーク(ds:[BIOSCALL])にコピーします。
BIOSCALL dd ?
1234:aaaa -> ds:[BIOSCALL]
実行時には
pushf
call dword ptr ds:[BIOSCALL]
とします。
● BIOSファンクション実行手順
BIOSファンクションは、以下の手順で実行します。
1.AHレジスタに機能コードをセット(以降、機能コードは全て10進数で記述)
2.その他の必要とするパラメータを各レジスタにセット
3.INT 60h(デフォルト)を実行
※この項以降の説明では、シリアルコントローラ(16550C)のことをUARTと表記します。