豊田 孝

 本日は,BIOSを取り上げます。BIOSというのは,Basic Input Output System(基本入出力システム)の略語です。一般にBIOSは,電源投入直後にコンピュータ・システムによって実行されるプログラムであり,システムを構成する基本周辺装置を初期化するプログラムと考えてよいでしょう。BIOSとWindowsをはじめとするOSとの基本的な関係は,矢沢久雄氏のこちらの記事を参照してください。

 ところで皆さん,先ほど「BIOSは基本周辺装置を初期化する」と書きましたが,基本周辺装置とはいったい何でしょうか? ご承知のように,私たちのコンピュータにはハード・ディスクやCD-ROMなど,さまざまな周辺装置が接続されています。BIOSはいったいどのような周辺装置をサポートしているのでしょうね。それではさっそくサンプル・プログラムを実行し,調べてみましょう。

本日のサンプル・プログラム

 まずはいつものように,こちらからサンプル・プログラムをダウンロードし,実行してみましょう。プログラムを実行すると,"C:\Win32_BIOS.htm"というHTMLファイルが作成され,自動的に表示されます。

 また,表示される情報が文字化けしているような場合,「表示>エンコード>日本語(自動選択)」をクリックしてください。正常に表示されるようになるはずです。

図1●筆者の環境でのサンプル・プログラムの実行結果(Windows XP)
図2●筆者の環境でのサンプル・プログラムの実行結果(Windows Server 2003)
 サンプル・プログラムを実行すると,私の環境では次のような情報が返されました。参考のために,2台のコンピュータ・システムから返された結果を示します(図1[拡大表示],図2[拡大表示])。

 さて,皆さんのコンピュータ・システムはどのような結果を返してくるでしょうか? 一部の古いマシンでは,もしかすると,SMBIOS?欄がFalseになっているかもしれません。SMBIOSは「System Management BIOS」を意味し,DMTF(Distributed Management Task Force)という業界団体が定めているBIOS標準仕様です。SMBIOSの詳細に興味ある方は,こちらからPDF仕様書をダウンロードしてみるとよいでしょう。

 図1,図2の画面から,私のコンピュータはSMBIOSバージョン2.3をサポートしていることが分かります。しかし,2つの画面を比較してみると,太字で表示される数字の個数が微妙に異なっています。皆さんのコンピュータは何個の太字数字を返してきますか?実は,SMBIOSバージョン2.3と一口にいっても,2.3.1や2.3.4などのいろいろなバージョンがあるのです。先に紹介したPDF仕様書を読んでみると,バージョン2.3は1998年8月12日に策定されています。現在の正式なバージョンは,2002年12月6日に承認された2.3.4です。私のコンピュータから返されたリリース日付は2002年12月以前となっていますから,いずれのBIOSも最新のSMBIOS仕様には従っていないようです。

 それではここで,次の表示結果の活用法を紹介しておきましょう。

Total Count(25)=> 4 7 9 10 11 12 14 15 16 17 19 22 23 24 25 26 27 29 30 32 33 34 36 37 40

 この数字の意味はこちらを参考してください。例えば,11という数字は,「11 BIOS is Upgradable (Flash)」と定義されていますから,書き換えの面倒なEPROMに格納されているのではなく,フラッシュ・メモリーに格納されていることがわかります。NECのPC-98シリーズをお使いの方は,31という数字も返されているかもしれません。後日お時間のあるときに,数字と定義文を照らし合わせながら,自分のBIOS性能を調査してみてはいかがでしょう。特に,起動ディスクなどを作成する場合には,数字の20から25のフロッピ・ディスク・サポートに注意するとよいかもしれません。Windowsがサポートしていても,BIOSがサポートしていない場合,せっかく作成した起動ディスクがアクセスされない可能性があります。

サンプル・プログラム拡張のためのヒント

 本日のサンプル・プログラムはリスト1のようになっています。かなり乱雑なソース・コードになっていますから,これまでのサンプル・プログラムを参考にしながら,プログラムの見通しを自分なりに改善してみるとよいでしょう。プログラミングに初めて挑戦される方は,次のソース行の一部を変更してみてください。

'''拡張のためのヒント
strTempFile = "IT Pro & Takashi Toyota" & retCode & "Finish time: " & time & "<P>"

 "IT Pro & Takashi Toyota"の部分に自分の名前などを記述してみてください。ちょっとした変更ですが,自分の名前が表示されてきますから,結構気分がよいものです。さらにお時間のある方は,ソース・コードを自分なりに検討し,次のようなコードを適切な箇所に追加してみるとよいでしょう。

oHelper_2.Description
oHelper_2.Version

 oHelper_2.DescriptionはBIOSに関する簡単な説明文字列,oHelper_2.VersionはBIOS製造元が付けたバージョン情報(SMBIOSバージョンではない)が返されます。返される情報はシステムごとに異なります。ぜひ試してください。

 本日は以上で終了です。次回からはプログラミング初心者向けのプログラミング情報を少し増やしていこうと考えています。それでは,次回またお会いいたしましょう。ごきげんよう!