(57)【特許請求の範囲】
【請求項１】
システム構成情報の設定内容に応じてシステム動作環境が決定されるコンピュータシステムにおいて、
ハードウェア制御のためのＢＩＯＳプログラムを格納するプログラムメモリであって、前記ＢＩＯＳプログラムは、前記システム構成情報を取得／設定するシステムコンフィグレーションインタフェースプログラムを含み、このシステムコンフィグレーションインタフェースプログラムには、前記コンピュータシステムがパワーオンされた時にブートモードとレジュームモードのどちらのモードで動作するかを指定するパワーアップモード情報を取得／設定するファンクション実行ルーチンが含まれているプログラムメモリと、
前記コンピュータシステムで実行されるオペレーティングシステムまたはアプリケーションプログラムと前記ＢＩＯＳプログラムとの間のインタフェースを行うインタフェース手段であって、前記オペレーティングシステムまたはアプリケーションプログラムからの前記パワーアップモード情報の取得／設定要求に応答して、前記システムコンフィグレーションインタフェースプログラムに含まれている前記ファンクション実行ルーチンを呼び出して前記パワーアップモード情報の取得／設定を実行させるインタフェース手段とを具備することを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はラップトップタイプまたはノートブックタイプのポータブルパ−ソナルコンピュータシステムに関し、特にシステム動作環境の設定／変更のための機能を有するコンピュータシステムに関する。
【０００２】
【従来の技術】
近年、半導体技術の進歩によりマイクロプロセッサの高性能化が進み、ラップトップタイプまたはノートブックタイプのポータブルパ−ソナルコンピュータシステムにおいてもそのような高性能マイクロプロセッサがＣＰＵとして使用されている。
【０００３】
この種の典型的なＣＰＵとしては、米インテル社により製造販売されているＩｎｔｅｌ４８６やＰｅｎｔｉｕｍが良く知られている。これら各ＣＰＵは、リアルモードおよびプロテクトモ−ドとそれぞれ称され２つの動作モードを有している。リアルモードとプロテクトモ−ドは互いに異なるメモリアドレッシング方式を採用しており、リアルモードではアクセス可能な最大メモリ空間は１Ｍバイトであるのに対し、プロテクトモ−ドでは最大で１タスク当り４Ｇバイトのメモリ空間をアクセスできる。
【０００４】
パ−ソナルコンピュータの典型的なオペレーティングシステムは、リアルモードで動作するように構成されている。このため、現在使用されているアプリケーションプログラムやユーティリティプログラムについても、そのほとんどはリアルモードで動作するように構成されている。
【０００５】
最近では、オペレーティングシステムの高機能化も進み、マルチタスクをサポートするオペレーティングシステムが使用され始めている。この種の高機能オペレーティングシステムのほとんどは、プロテクトモ−ドで動作するように構成されている。
【０００６】
このため、最近のパーソナルコンピュータにおいては、ある特定のオペレーティングシステム環境下だけでなく、種々のオペレーティングシステム環境下でシステム内のハードウェアを正常にアクセスできるようにすることが要求されている。
【０００７】
ところで、通常、パ−ソナルコンピュータにおいては、システム内のハードウェア制御からオペレーティングシステムを解放するために、ハードウェアアクセス専用のシステムＢＩＯＳ（Ｂａｓｉｃ    Ｉ／Ｏ  Ｓｙｓｔｅｍ）と称されるプログラムが利用されている。このシステムＢＩＯＳは、システムホード上のＲＯＭによって提供されており、ハードウェアアクセスのための複数のファンクション実行ルーチンを含んでいる。これらファンクション実行ルーチンはオペレーティングシステムに各種のハードウェアアクセスのための機能を提供する。
【０００８】
システムＢＩＯＳのファンクション実行ルーチンは、ＣＰＵのソフトウェア割り込み命令（ＩＮＴ命令）によって実現されている。したがって、オペレーティングシステムは、ＩＮＴ命令によって所望のファンクション実行ルーチンを呼び出して、必要なハードウェア制御を行う事ができる。
【０００９】
また、オペレーティングシステムに対するハードウェアアクセスのための機能は、ユーティリティプログラムによって提供することもできる。
【００１０】
この種のユーティリティプログラムは、システムＢＩＯＳと同様に、ハードウェアを直接制御する。ハードウェア制御のために使用される代表的なユーティリティープログラムとしては、セップアッププログラムが知られている。
【００１１】
セップアッププログラムは、ＣＭＯＳメモリのシステム構成情報を書き換えてシステムコンフィグレーションの変更を行い、これによって拡張カードの利用を可能にしたり、動作モードの変更などを行うプログラムである。ＣＭＯＳメモリに格納されているシステム構成情報はハードウェア構成に対応しており、パーソナルコンピュータの機種毎にＣＭＯＳメモリに格納されるシステム構成情報の内容は異なる。このため、システム構成情報の設定／変更を行うためには、機能追加された新機種が開発される度にセップアッププログラムを作成し直すことが必要とされた。
【００１２】
この場合、セップアッププログラムの修正／変更作業だけでなく、場合によっては、そのセップアッププログラムとのインターフェースを維持するために、オペレーティングシステムについても修正／変更を加えなければならないこともある。
【００１３】
また、通常、リアルモードで動作するオペレーティングシステムとプロテクトモードで動作するオペレーティングシステムとでは異なるセットアッププログラムを利用している。すなわち、リアルモードで動作するオペレーティングシステム用のセップアッププログラムは、リアルモードで動作するように構成されており、通常、システムＢＩＯＳの一部としてＲＯＭに格納されている。一方、プロテクトモードで動作するオペレーティングシステム用のセップアッププログラムはプロテクトモードで動作するように構成されており、フロッピーディスクなどによって供給される。
【００１４】
このようにオペレーティングシステム毎に異なるセットアッププログラムを利用した場合においては、新機種が開発されると、実際には、それら全てのセップアッププログラムについて修正／変更作業を行う事が必要とされる。
【００１５】
以上のように、従来では、ハードウェア制御などに関する機能追加を図る度に、セップアッププログラムやオペレーティングシステムの修正／変更が必要とされ、その作業に多くの時間が必要とされる欠点があった。
【００１６】
また、ハードウェア制御に関する機能追加などのためにシステムＢＩＯＳに新たなファンクション実行ルーチンを追加する場合には、プロテクトモードで動作するオペレーティングシステムについては、そのファンクション実行ルーチンを使用できるようにするために次のようなプログラム変更を行う必要がある。
【００１７】
すなわち、システムＢＩＯＳはリアルモードで実行されるオペレーティングシステムを前提として構成されたものであるため、システムＢＩＯＳのファンクション実行ルーチンはすべてリアルモードで動作されるように構成されている。
【００１８】
このため、プロテクトモ−ドで動作されるオペレーティングシステム環境においては、ＣＰＵの動作モードを一旦プロテクトモードからリアルモードに切り替えた後にＩＮＴ命令を実行してファンクション実行ルーチンを呼び出し、そのファンクション実行ルーチンからリターンされた後に、再びリアルモードからプロテクトモードに切り替えることが必要とされる。
【００１９】
したがって、プロテクトモードで動作するオペレーティングシステムを利用する場合には、ＣＰＵの動作モードを切り替えるルーチンと、ＩＮＴ命令によってシステムＢＩＯＳのファンクション実行ルーチンを呼び出すルーチンとを、そのオペレーティングシステムのＢＩＯＳインタフェース部に組み込まなければならない。
【００２０】
このため、ハードウェア制御に関する機能拡張のためにシステムＢＩＯＳに新たなファンクション実行ルーチンを追加すると、プロテクトモードで動作するオペレーティングシステムのＢＩＯＳインタフェース部の修正／変更作業に多くの時間が必要となるという不具合が生じる。
【００２１】
【発明が解決しようとする課題】
従来では、機種毎にそのハードウェア構成に合わせてセップアッププログラムやオペレーティングシステムの修正／変更が必要とされ、その作業に多くの時間が必要とされる欠点があった。
【００２２】
また、プロテクトモ−ドで動作されるオペレーティングシステムからシステムＢＩＯＳを利用できるようにするためには、そのオペレーティングシステムのＢＩＯＳインタフェース部に、ＣＰＵ動作モードを切り替えるルーチンを組み込む必要があった。このため、ハードウェア制御に関する機能拡張のためにシステムＢＩＯＳに新たなファンクション実行ルーチンを追加すると、それに対応するＢＩＯＳインタフェース部のコーディング作業に多くの時間が必要となる欠点があった。
【００２３】
この発明はこのような点に鑑みてなされたものであり、システム動作環境に関する機能拡張に柔軟に対応できるプログラムインターフェースを実現して、各種オペレーティングシステム環境下でシステム動作環境の設定／変更を行えるようにし、これによってオペレーティングシステムやセットアッププログラムなどの修正／変更作業の低減を図る事ができるコンピュータシステムを提供することを目的とする。
【００２４】
【課題を解決するための手段】
この発明は、システム構成情報の設定内容に応じてシステム動作環境が決定されるコンピュータシステムにおいて、ハードウェア制御のためのＢＩＯＳプログラムを格納するプログラムメモリであって、前記ＢＩＯＳプログラムは、前記システム構成情報を取得／設定するシステムコンフィグレーションインタフェースプログラムを含み、このシステムコンフィグレーションインタフェースプログラムには、前記コンピュータシステムがパワーオンされた時にブートモードとレジュームモードのどちらのモードで動作するかを指定するパワーアップモード情報を取得／設定するファンクション実行ルーチンが含まれているプログラムメモリと、前記コンピュータシステムで実行されるオペレーティングシステムまたはアプリケーションプログラムと前記ＢＩＯＳプログラムとの間のインタフェースを行うインタフェース手段であって、前記オペレーティングシステムまたはアプリケーションプログラムからの前記パワーアップモード情報の取得／設定要求に応答して、前記システムコンフィグレーションインタフェースプログラムに含まれている前記ファンクション実行ルーチンを呼び出して前記パワーアップモード情報の取得／設定を実行させるインタフェース手段とを具備することを特徴とする。
【００２５】
このコンピュータシステムにおいては、システムコンフィグレーションインタフェースプログラムがＢＩＯＳプログラムの１部として格納されており、このシステムコンフィグレーションインタフェースプログラムを起動する事によって、システム構成情報の設定／変更を行うことができる。このシステムコンフィグレーションインタフェースプログラムには、パワーアップモード情報を取得／設定するファンクション実行ルーチンが含まれている。このため、オペレーティングシステムや、セップアッププログラムなどのアプリケーションプログラムは、システム構成情報を格納する記憶装置などのハードウェアを直接アクセスすることなく、システムコンフィグレーションインタフェースプログラムのファンクション実行ルーチンを呼び出すだけでシステムのパワーアップモードの参照／設定などを行う事ができる。
【００２６】
したがって、オペレーティングシステムやセップアッププログラムにシステム構成情報を直接アクセスするための機能を設ける必要がなくなり、各種オペレーティングシステム環境下でパワーアップモードの参照／設定を行うことが可能となる。
【００２７】
システムコンフィグレーションインタフェースプログラムに含まれるファンクション実行ルーチンとしては、前述したパワーアップモード情報を取得／設定する第１のファンクション実行ルーチンの代りまたはそれに追加して、電力消費量が互いに異なる複数の動作環境の中の１つを指定するバッテリーセーブモード情報を取得／設定する第２のファンクション実行ルーチン、ＣＰＵの処理スピードを指定するプロセッシングスピード情報を取得／設定する第３のファンクション実行ルーチン、ＣＰＵの処理速度を割り込み信号に応答して低速から高速に切り替えるスナップモードの有効／無効を指定するスナップモード設定情報を取得／設定する第４のファンクション実行ルーチンなど、システム動作環境やハードウェア制御に関する設定を行う様々なファンクション実行ルーチンを設けることができる。
【００２８】
また、システムコンフィグレーションインタフェースプログラムはＢＩＯＳプログラムと同様にリアルモードにおけるソフトウェア割り込み命令によって起動できるので、リアルモードのオペレーティングシステム環境下ではソフトウェア割り込み命令を実行するだけでシステム構成情報の設定／変更が可能となる。また、プロテクトモードのオペレーティングシステム環境下でも、ＣＰＵの動作モードをリアルモードに変換した後にソフトウェア割り込み命令を実行すれば、システム構成情報の設定／変更を行う事ができる。
【００２９】
また、システムコンフィグレーションインタフェースプログラムを呼び出すためのインターフェースとしては、Ｉ／ＯトラップＳＭＩによるプログラムインタフェースを利用する事もできる。
【００３０】
このシステムでは、例えば、プロテクトモードの環境下においてハードウェア制御プログラムの呼び出し要求が発生すると、ＣＰＵが自動的にシステム管理モードにスイッチされ、そしてハードウェア制御プログラムが実行された後に、システム管理モードからプロテクトモードに復帰される。したがって、プロテクトモードで動作するオペレーティングシステムにＣＰＵ動作モードを切り替えるルーチンを組み込むことなく、プロテクトモード環境下から直接的にハードウェア制御プログラムを呼び出して実行させることが可能となる。よって、ハードウェア制御に関する機能拡張などに柔軟に対応できるようになる。
【００３１】
また、Ｉ／Ｏトラップによる割り込み信号を利用しているので、割り込み信号を発生させるために必要な手続きは、インタフェース手段がＩＮまたはＯＵＴ命令を実行する事だけである。このため、ハードウェア制御プログラムの呼び出し要求の発生に応答して直ぐに割り込み信号を発生させる事ができるので、ハードウェア制御プログラムを高速に呼び出す事ができる。
【００３２】
【発明の実施の形態】
以下、図面を参照してこの発明の実施形態を説明する。
【００３３】
図１には、この発明の一実施形態に係わるコンピュータシステムの構成が示されている。このコンピュータシステムは、ラップトップタイプまたはノートブックタイプのパーソナルコンピュータシステムであり、ＣＰＵ１１、システムコントローラ１２、メインメモリ１３、ＳＭＲＡＭ（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  ＲＡＭ）１３Ａ、ＢＩＯＳ  ＲＯＭ１４、バス変換回路１５、リアルタイムクロック（ＲＴＣ）１６、および各種Ｉ／Ｏ装置を備えている。
【００３４】
ＣＰＵ１１およびメインメモリ１３は、６４ビット幅のデータバスを含むＣＰＵローカルバス１７に接続されている。ＣＰＵローカルバス１７は、バス変換回路１５などのブリッジ装置を介してシステムバス１８に接続されている。システムコントローラ１２、ＢＩＯＳ  ＲＯＭ１４、リアルタイムクロック（ＲＴＣ）１６、および各種Ｉ／Ｏ装置は、システムバス１８に接続されている。Ｉ／Ｏ装置としては、割込みコントローラ、キーボードコントローラ、システムタイマ、ハードディスク装置、フロッピーディスクコントローラなどがある。
【００３５】
ＣＰＵ１１は、このシステム全体の動作制御およびデータ処理を実行する。このＣＰＵ１１としては、システム管理割り込みＳＭＩ（ＳＭＩ；Ｓｙｓｔｅｍ    Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｒｕｐｔ）をサポートするもの、例えば、米インテル社により製造販売されているマイクロプロセッサＳＬ  Ｅｎｈａｎｃｅｄ  Ｉｎｔｅｌ４８６やＰｅｎｔｉｕｍが使用される。この場合、ＣＰＵ１１は、次のようなシステム管理機能を持つ。
【００３６】
すなわち、ＣＰＵ１１は、アプリケーションプログラムやオペレーティングシステム（ＯＳ）などのプログラムを実行するための動作モードとしてリアルモード、プロテクトモード、仮想８６モードを有する他、システム管理モード（ＳＭＭ；Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  ｍｏｄｅ）と称されるシステム管理機能を実現するための動作モードを有している。
【００３７】
リアルモードは、最大で１Ｍバイトのメモリ空間をアクセスできるモードであり、論理アドレスから物理アドレスへの変換は、セグメントレジスタで表されるベースアドレスからのオフセット値で物理アドレスを決定するアドレス計算形式によって行われる。
【００３８】
一方、プロテクトモードは１タスク当たり最大４Ｇバイトのメモリ空間をアクセスできるモードであり、ディスクプリタテーブルと称されるアドレスマッピングテーブルを用いてリニアアドレスが決定される。このリニアアドレスは、ページングによって最終的に物理アドレスに変換される。
【００３９】
このように、プロテクトモードとリアルモードとでは、互いに異なるメモリアドレッシングが採用されている。
【００４０】
システム管理モード（ＳＭＭ）は疑似リアルモードであり、このモードにおけるアドレス計算形式はリアルモードのアドレス計算形式と基本的に同一であり、ディスクプリタテーブルは参照されず、ページングも実行されない。
【００４１】
システム管理割込み（ＳＭＩ；Ｓｙｓｔｅｍ    Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｒｕｐｔ）がＣＰＵ１１に発行された時、ＣＰＵ１１の動作モードは、その時の動作モードであるリアルモード、プロテクトモード、または仮想８６モードから、ＳＭＭにスイッチされる。ＳＭＩによってＳＭＭにスイッチした時、ＣＰＵ１１はその時のＣＰＵレジスタの内容であるＣＰＵステータスをＳＭＲＡＭ１３Ａにセーブする。また、ＳＭＭにおいて復帰命令（ＲＳＭ命令）が実行されると、ＣＰＵ１１はＳＭＲＡＭ１３ＡからＣＰＵレジスタにＣＰＵステータスをリストアし、ＳＭＩ発生前の動作モードに復帰する。ＳＭＭでは、ＳＭＩハンドラなどのシステム管理プログラムが実行される。
【００４２】
ＳＭＩはマスク不能割込みＮＭＩの一種であるが、通常のＮＭＩやマスク可能割込みＩＮＴＲよりも優先度の高い、最優先度の割り込みである。このＳＭＩを発行することによって、システム管理プログラムを、実行中のアプリケーションプログラムやオペレーティングシステムの環境に依存せずに起動することができる。
【００４３】
ＣＰＵ１１は、このようなハードウェア割り込み機能の他、ソフトウェア割り込み機能を持つ。ソフトウェア割り込み機能は、ＯＳやアプリケーションプログラムによる割り込み命令（ＩＮＴ）の実行に応答して、ＢＩＯＳ  ＲＯＭ１４の各種ルーチンなどを実行する。この場合、どのルーチンが実行されるかは、割り込み命令（ＩＮＴ）によって指定される割り込みベクタアドレスによって指定される。割り込みベクタアドレスはＢＩＯＳ  ＲＯＭ１４のエントリポイントを示し、そのエントリポイントのルーチンが実行される。
【００４４】
システムコントローラ１２は、このシステム内のメモリやＩ／Ｏを制御するためのゲートアレイであり、ここにはＣＰＵ１１へのＳＭＩ信号の発生を制御するためのハードウェアが組み込まれている。
【００４５】
メインメモリ１３は、オペレーティングシステム、処理対象のアプリケーションプログラム（ユーティリティープログラムを含む）、およびアプリケーションプログラムによって作成されたユーザデータ等を格納する。
【００４６】
ＳＭＲＡＭ（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  ＲＡＭ）１３Ａは、メインメモリ１３のアドレス３００００Ｈから３ＦＦＦＦＨまでのアドレス空間にマッピングされるオ−バレイメモリであり、ＳＭＩ信号がＣＰＵ１１に入力された時だけアクセス可能となる。ここで、ＳＭＲＡＭがマッピングされるアドレス範囲は固定ではなく、ＳＭＢＡＳＥと称されるレジスタによって４Ｇバイト空間の任意の場所に変更することが可能である。ＳＭＢＡＳＥレジスタは、ＳＭＭ中でないとアクセスできない。ＳＭＢＡＳＥレジスタのデフォルト値は、アドレス３０００Ｈである。
【００４７】
ＣＰＵ１１がＳＭＭに移行する時には、ＣＰＵステータス、つまりＳＭＩが発生された時のＣＰＵ１１のレジスタ等が、ＳＭＲＡＭ１３Ａにスタック形式でセーブされる。このＳＭＲＡＭ１３Ａには、ＢＩＯＳ  ＲＯＭ１４のシステム管理プログラムを呼び出すための命令が格納されている。この命令は、ＣＰＵ１１がＳＭＭに入った時に最初に実行される命令であり、この命令実行によってシステム管理プログラムに制御が移る。
【００４８】
ＢＩＯＳ  ＲＯＭ１４は、システムＢＩＯＳ（Ｂａｓｉｃ    Ｉ／Ｏ  Ｓｙｓｔｅｍ  ）を記憶するためのものであり、プログラム書き替えが可能なようにフラッシュメモリによって構成されている。システムＢＩＯＳは、このシステム内の各種ハードウェアをアクセスするファンクション実行ルーチンを体系化したものであり、リアルモードで動作するように構成されている。
【００４９】
このシステムＢＩＯＳには、システムのパワーオン時に実行されるＩＲＴルーチンと、各種ハードウェア制御のためのＢＩＯＳドライバ群（ＩＮＴ１０ｈ〜１Ｆｈ、４０ｈ〜４Ｆｈ）が含まれている。各ＢＩＯＳドライバは、ハードウェア制御のための複数の機能をオペレーティングシステムやアプリケーションプログラムに提供するためにそれら機能に対応する複数のファンクション実行ルーチン群を含んでいる。
【００５０】
また、拡張ＢＩＯＳドライバ（ＩＮＴ１５ｈ）には、システムコンフィグレーションインタフェースプログラム（ＳＣＩ）が格納されている。ＳＣＩは、ＣＭＯＳメモリ１６Ａのシステム構成情報（システムコンフィグレーション）の設定／変更のためにＣＭＯＳメモリ１６Ａをリード／ライトアクセスするハードウェア制御プログラムである。ＯＳや、セットアッププログラムなどのアプリケーションプログラムは、ＳＣＩを用いてシステム動作環境の設定／変更を行う。
【００５１】
このＳＣＩには、図２に示されているように、以下の６つのファンクション実行ルーチンが含まれている。
【００５２】
0003626258.tif 000002
ＳＣＩサポートチェックルーチンは、このシステムがＳＣＩをサポートしているか否かをチェックするルーチンであり、ＣＰＵ１１のＡＸレジスタにファンクションコード４４Ｆ０ｈがセットされた状態でＩＮＴ１５ｈが実行された時に起動される。
【００５３】
オープンインタフェースルーチンは、システム構成情報のリード／ライトを可能にするためのルーチンであり、システム構成情報の読み書きの前にこのオープンインタフェースルーチンが起動される。オープンインタフェースルーチンが起動されるまでは、クローズインタフェースルーチン、システムコンフィグレーションゲットルーチン、システムコンフィグレーションセットルーチンは使用できない。オープンインタフェースルーチンは、ＣＰＵ１１のＡＸレジスタにファンクションコード４４Ｆ１ｈがセットされた状態でＩＮＴ１５ｈが実行された時に起動される。
【００５４】
クローズインタフェースルーチンは、システム構成情報のリード／ライトを禁止するためのクローズルーチンであり、ＣＰＵ１１のＡＸレジスタにファンクションコード４４Ｆ２ｈがセットされた状態でＩＮＴ１５ｈが実行された時に起動される。
【００５５】
システムコンフィグレーションゲットルーチンは、現在のシステム構成情報をＣＭＯＳメモリ１６Ａからリードするルーチンであり、ＣＰＵ１１のＡＸレジスタにファンクションコード４４Ｆ３ｈがセットされた状態でＩＮＴ１５ｈが実行された時に起動される。システムコンフィグレーションゲットルーチンはシステム構成情報の設定項目毎に６０以上のサブファンクションに別れており、これらサブファンクションはＣＰＵ１１のＢＸレジスタにセットされるサブファンクションコードによって選択される。
【００５６】
システムコンフィグレーションゲットルーチンのサブファンクションは、図３および図４の通りである。
【００５７】
図３および図４に示されているように、サブファンクションは、システムおよびパワー管理の設定、メモリ設定、ディスプレイ設定、ＨＤＤ／ＦＤＤ設定、Ｉ／Ｏポートおよびキーボード設定、およびパスワードに関するサブファンクションに大別される。
【００５８】
ＯＳやセットアッププログラムは、取得したい設定項目に対応するサブファンクションコード（例えば、パワーアップモードに関するサブファンクションコード０１００ｈ）をＢＸレジスタにセットすることにより、その設定項目に対応する現在の設定値（ブートモード／レジュームモード）を読み取る事ができる。
【００５９】
システムコンフィグレーションセットルーチンは、ＣＭＯＳメモリ１６Ａのシステム構成情報の変更のために新たなシステム構成情報をＣＭＯＳメモリ１６Ａに書き込むルーチンであり、ＣＰＵ１１のＡＸレジスタにファンクションコード４４Ｆ４ｈがセットされた状態でＩＮＴ１５ｈが実行された時に起動される。この場合、ＣＰＵ１１のＣＸレジスタにセットされた入力値が、新たなシステム構成情報としてＣＭＯＳメモリ１６Ａにライトされる。システムコンフィグレーションセットルーチンも、ゲートルーチンと同様に、システム構成情報の設定項目毎に６０以上のサブファンクションに別れており、これらサブファンクションはＣＰＵ１１のＢＸレジスタにセットされるサブファンクションコードによって選択される。サブファンクションの種類は、図３および図４で説明したシステムコンフィグレーションゲットルーチンのサブファンクションと基本的に同じであり、図５および図６に示すサブファンクション群から構成されている。
【００６０】
すなわち、これら各サブファンクションはシステムコンフィグレーションゲットルーチンの中ではシステム構成情報を取得するためのゲットルーチンとなり、システムコンフィグレーションセットルーチンの中ではシステム構成情報を設定するためのセットルーチンとなる。
【００６１】
ここで、これらサブファンクション（ゲット／セット）それぞれのサブファンクションコードとその機能の概要について説明する。
・０１００ｈ    Ｐｏｗｅｒ−ｕｐ  Ｍｏｄｅ
このサブファンクションは、コンピュータシステムがパワーオンされた時にブートモードとレジュームモードのどちらのモードで動作するかを指定するパワーアップモード情報を取得／設定するためのルーチンであり、ブートモード（レジューム無効）／レジュームモード（レジューム有効）の選択のために利用される。
・０１０１ｈ    Ｂａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ
このサブファンクションは、電力消費量が互いに異なる複数の動作環境（バッテリーセーブモード）の中の１つを指定するバッテリーセーブモード情報を取得／設定するためのものであり、指定されたバッテリセーブモードにより、バッテリセーブオプションの各項目（  表示自動停止、ＨＤＤ  自動停止等）  の設定が決定される。また、ユーザセッティングモードに設定した場合はユーザが前述の各項目を設定できる。
・０１０２ｈ    Ｐｒｏｃｅｓｓｉｎｇ  Ｓｐｅｅｄ
このサブファンクションは、ＣＰＵの処理スピード（Ｈｉｇｈ／Ｌｏｗなど）を指定するプロセッシングスピード情報を取得／設定するためのものである。
・０１０３ｈ    Ｓｎａｐ  Ｍｏｄｅ
このサブファンクションは、ＣＰＵの処理速度を割り込み信号に応答して低速から高速に切り替えるスナップモードの有効／無効を指定するスナップモード設定情報を取得／設定するためのものであり、有効を選択すると、スナップモードとなる。この場合、通常処理はＣＰＵの処理速度を低速にして行い、割り込み処理（ＳＭＩやＩＮＴｘｘｈなど）  は高速で行う。
・０１０４ｈ    Ｓｌｅｅｐ  Ｍｏｄｅ
このサブファンクションは、コンピュータシステムのアイドル状態に応答して前記コンピュータシステムを電力消費の少ない動作モードに移行させるスリープモードの有効／無効を指定するスリープモード設定情報を取得／設定するためのルーチンであり、有効を選択すると、ＣＰＵが処理待ち状態の時、ＣＰＵの処理速度を遅くして電力消費を減らす。
・０１０５ｈ    Ｄｉｓｐｌａｙ  Ａｕｔｏ  Ｏｆｆ  Ｍｏｄｅ
このサブファンクションは、システムのアイドル状態に応じてＬＣＤの画面のバックライトをオフするディスプレイオートオフ機能の有効／無効を指定するものであり、有効ならば、システムアイドル時、具体的には、設定した時間ＫＢおよびマウスが使用されない時にバックライトがオフされる。
・０１０６ｈ    ＨＤＤ  Ａｕｔｏ  Ｏｆｆ  Ｍｏｄｅ
このサブファンクションは、ハードディスクドライブを自動的に動作停止させるＨＤＤオートオフモードの有効／無効を指定するＨＤＤオートオフモード設定情報を取得／設定するルーチンであり、有効であれば、システムアイドル時、具体的には、設定した時間だけＨＤＤにアクセスが行われなかった時にＨＤＤのモータがオフされる。
・０１０７ｈ    ＦＤＤ  Ａｕｔｏ  Ｏｆｆ  Ｍｏｄｅ
このサブファンクションは、フロッピーディスクドライブを自動的に動作停止させるＦＤＤオートオフモードの有効／無効を指定するＦＤＤオートオフモード設定情報を取得／設定するルーチンであり、有効であれば、システムアイドル時、具体的には、設定した時間ＦＤＤにアクセスが行われたかった時に、ＦＤＤのモータがオフされる。
・０１０８ｈ    Ｃａｃｈｅ  Ｓｔａｔｕｓ
このサブファンクションは、ＣＰＵキャッシュの有効／無効を指定するキャッシュステータス設定情報を取得／設定するルーチンであり、これによりキャッシュメモリ使用の許可／禁止の設定が行われる。
・０１０９ｈ    Ｓｐｅａｋｅｒ  Ｖｏｌｕｍｅ
このサブファンクションは、スピーカ音量（アラーム音）を指定するスピーカボリューム設定情報を取得／設定するルーチンである。
・０１０Ａｈ    Ｓｙｓｔｅｍ  Ｓｐｅａｋｅｒ  Ｓｔａｔｕｓ
このサブファンクションは、スピーカの動作の有効／無効を指定するスピーカ設定情報を取得／設定するルーチンであり、有効の時は、スピーカ（ローバッテリ、パネルクローズアラームを除く）  が有効となり、スピーカが鳴る。
・０１０Ｂｈ    Ｌｏｗ  Ｂａｔｔｅｒｙ  Ａｌａｒｍ  Ｍｏｄｅ
このサブファンクションは、バッテリ残存容量の低下をアラーム音によって通知するローバッテリアラーム機能の有効／無効を指定するローバッテリアラームモード設定情報を取得／設定するルーチンであり、有効の時、ローバッテリ時にアラーム音が鳴る。
・０１０Ｃｈ    Ｐａｎｅｌ  Ｃｌｏｓｅ  Ａｌａｒｍ  Ｍｏｄｅ
このサブファンクションは、ディスプレイパネルが閉じられた時にアラーム音を発生するパネルクローズアラーム機能の有効／無効を指定するパネルクローズアラームモード設定情報を取得／設定するルーチンであり、有効の時、ディスプレイパネルが閉じられるとアラーム音が発生される。
・０１０Ｄｈ    Ｐａｎｅｌ  Ｐｏｗｅｒ  Ｏｎ／Ｏｆｆ  Ｍｏｄｅ
このサブファンクションは、ディスプレイパネルの開閉に応じてレジューム／サスペンド処理を実行するパネルパワーオン／オフモードの有効／無効を指定するパネルパワーオン／オフモード設定情報を取得／設定するルーチンであり、レジュームモードの時のみ有効となる。パネルパワーオン／オフモードが有効であれば、パネルを閉じた場合にサスペンドし、パネルを開くとレジュームする。
・０１０Ｅｈ    Ａｌａｒｍ  Ｐｏｗｅｒ  Ｏｎ  Ｄａｔｅ
このサブファンクションは、アラームパワーオン機能によってシステムを自動的にパワーオンさせる日付（月／日）を指定するアラームパワーオン設定日付情報を取得／設定するルーチンであり、設定した月／日になると、自動的にシステムの電源がオンされる。アラームパワーオン設定日付情報は通常は単独で使用されることはなく、アラームパワーオンタイム情報と併せて使用される。
・０１０Ｆｈ    Ａｌａｒｍ  Ｐｏｗｅｒ  Ｏｎ  Ｔｉｍｅ
このサブファンクションは、アラームパワーオン機能によってシステムを自動的にパワーオンさせる時間を指定するアラームパワーオンタイム情報を取得／設定するルーチンであり、設定した時／分になると、自動的にシステムの電源がオンされる。
・０１１０ｈ    Ｓｙｓｔｅｍ  Ａｕｔｏ  Ｏｆｆ  Ｍｏｄｅ
このサブファンクションは、システムのアイドル状態に応答してシステムをサスペンドさせるシステムオートオフ機能の有効／無効またはそのモードを実行させる条件を指定するシステムオートオフモード設定情報を取得／設定するルーチンであり、レジュームモードの時のみ有効となる。システムオートオフ機能が有効であれば、設定した時間ＫＢおよびマウスを使用せず、かつＨＤＤへのアクセスがなければ、自動的にシステムがサスヘ゜ント゛状態に設定される。
・０１１１ｈ    Ｒｅｍａｉｎｉｎｇ  Ｂａｔｔｅｒｙ  Ｐｏｗｅｒ  ａｓ  Ｐｅｒｃｅｎｔａｇｅ
このサブファンクションは、バッテリ残存容量をパーセンテージ単位で取得／設定するルーチンである。
・０１１２ｈ    Ｒｅｍａｉｎｉｎｇ  Ｂａｔｔｅｒｙ  Ｐｏｗｅｒ  ｉｎ  Ｔｉｍｅ
このサブファンクションは、バッテリ残存容量を使用可能時間単位で取得／設定するルーチンである。
・０１１３ｈ    Ｂａｔｔｒｙ  Ｓｔａｔｕｓ  Ｍｏｄｅ
このサブファンクションは、バッテリ残存容量をパーセンテージ表示と使用可能時間表示のどちらで行うかを指定するバッテリステータスモード設定情報を取得／設定するルーチンであり、たとえば、ステータス表示のためのサブＬＣＤを搭載するマシンにて、そのサブＬＣＤにおけるバッテリ残量表示をパーセント単位で行うか、時間単位で行うかを指定するために利用される。
・０１１４ｈ    Ｍｏｄｅｍ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ
このサブファンクションは、システムの内部モデムのパワーオン／オフを指定するモデムパワーステータス情報を取得／設定するルーチンであり、例えば、ＰＣカードスロットをＯｔｈｅｒｓの設定にした場合に内蔵モデムのパワーオン／オフをを設定するために使用される。
・０１１５ｈ    ＬＣＤ  Ｂｒｉｇｈｔｎｅｓｓ  Ｓｔａｔｕｓ
このサブファンクションは、ＬＣＤの輝度について高輝度および低輝度の一方を指定するＬＣＤ輝度ステータス設定情報を取得／設定するルーチンである。
・０１１６ｈ    Ｐｏｐｕｐ  Ｗｉｎｄｏｗ  Ｍｏｄｅ
このサブファンクションは、ポップアップウインドウ（ここで言うＰＯＰＵＰ  はＦｎキー＋Ｅｓｃ  キーにより画面右下に出るものを指す）表示機能の有効／無効を指定するポップアップウインドウモード設定情報を取得／設定するルーチンである。
・０１１７ｈ    Ｓｙｓｔｅｍ  Ｄａｔｅ
このサブファンクションは、システムの日付の取得／設定を行うルーチンである。
・０１１８ｈ    Ｓｙｓｔｅｍ  Ｔｉｍｅ
このサブファンクションは、システムの時間の取得／設定を行うルーチンである。
・０１１９ｈ    Ｔａｂｌｅｔ  Ａｕｔｏ  Ｏｆｆ  Ｍｏｄｅ
このサブファンクションは、設定した時間タブレット（ペン）を使用しなければ、タブレットの電源をＯＦＦ  する機能の有効／無効を指定する情報を取得／設定するルーチンである。
・０１１Ａｈ    Ｈｏｔｋｅｙ  Ｍｏｄｅ
このサブファンクションは、メモリ常駐またはＳＭＲＡＭのプログラムをキー操作によって直接呼び出すホットキー機能（Ｆｎ＋ファンクションキー／矢印キー）の有効／無効を指定するホットキーモード設定情報を取得／設定するルーチンである。
・０１１Ｂｈ    Ｍａｘ．ＬＣＤ  Ｂｒｉｇｈｔｎｅｓｓ  Ｓｔａｔｕｓ
このサブファンクションは、ＬＣＤの輝度の最大値を指定する最大ＬＣＤ輝度ステータス設定情報を取得／設定するルーチンであり、ＬＣＤパネルの輝度の最大値を設定するためなどに使用される。この場合、輝度は０  〜最大値の間で設定可能である。
・０１１Ｃｈ    ＤＡＣ  Ｄｉｇｉｔａｌ  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ
このサブファンクションは、カラールックアップテーブルを構成するＤＡＣ（Ｄｉｇｉｔａｌ  ｔｏ  Ａｎａｌｏｇ  Ｃｏｎｖｅｒｔｅｒ  ）のデジタル出力を許可／禁止を指定するＤＡＣデジタル出力ステータス設定情報を取得／設定するルーチンである。ＤＡＣからは通常カラーパレットによって色変換されたアナログ信号だけが出力されるが、ＬＣＤにカラー表示する時にはＤＡＣデジタル出力が使用される。
・０１１Ｄｈ    Ｂｏｏｔ  Ｐｒｉｏｒｉｔｙ
このサブファンクションは、システムを起動するディスク装置の順番を指定するブート優先度設定情報を取得／設定するルーチンであり、システムの起動方法をＦＤＤ  →ＨＤＤ  ／ＨＤＤ  →ＦＤＤ  のいずれかから選択できる。この設定で指定された順番にシステムが起動される。
・０１１Ｅｈ    Ｒｅｍａｉｎｉｎｇ  Ｂａｔｔｅｒｙ  Ｐｏｗｅｒ  ａｓ  Ｐｅｒｃｅｎｔａｇｅ（２ｎｄ）
このサブファンクションは、セカンドバッテリの残存容量をパーセンテージで示すバッテリ残存容量情報を取得／設定するルーチンである。
・０１１Ｆｈ    Ｃａｃｈｅ  Ｗｒｉｔｅ  Ｐｏｌｉｃｙ
このサブファンクションは、ＣＰＵキャッシュのライトポリシー（Ｗｒｉｔｅ−ｂａｃｋ、Ｗｒｉｔｅ−ｔｈｒｏｕｇｈ  ）を指定するキャッシュライトポリシー設定情報を取得／設定するルーチンであり、Ｗｒｉｔｅ−ｂａｃｋに設定すれば、書き込み内容が一時的にキャッシュメモリに保存され、その後タイミングを見て自動的にメモリに書き込まれる。Ｗｒｉｔｅ−ｔｈｒｏｕｇに設定すれば、キャッシュメモリとメモリの双方にデータが一緒に書き込まれる。
・０１２０ｈ    Ｅｊｅｃｔ  Ｐａｓｓｗｏｒｄ  Ｍｏｄｅ
このサブファンクションは、コンピュータ本体に装着された拡張ユニット（ＤｅｓｋＳｔａｔｉｏｎ  ）をそのコンピュータ本体から取り外すためのイジェクトスイッチが押下された時にパスワードチェックを行うイジェクトパスワードモードの有効／無効を指定するイジェクトパスワードモード設定情報を取得／設定するルーチンである。
・０１２１ｈ    Ｒｉｎｇ  Ｉｎｄｉｃａｔｏｒ  Ｍｏｄｅ
このサブファンクションは、モデムおよびシリアルポートからの着呼信号に応じてシステムをパワーオンさせるリングインジケータ機能の有効／無効を指定するリングインジケータモード設定情報を取得／設定するルーチンである。リングインジケータ機能は、レジュームモード時のみ有効となる。有効に設定すると、レジュームモードで電源オフ時、モデムやシリアルポートを使用して通信を行っている時、外部からＲｉｎｇ（  呼び出し）  が来ると、自動的にレジュームされる。
・０１２２ｈ    Ｃｏｏｌｉｎｇ  Ｍｅｔｈｏｄ
このサブファンクションは、ＣＰＵを冷却するために用意された複数種の冷却機能（Ｐｅｒｆｏｒｍａｎｃｅ  モード、Ｑｕｉｅｔ  モード）の中で使用する冷却機能を指定するクーリングメソッド設定情報を取得／設定するルーチンである。Ｐｅｒｆｏｒｍａｎｃｅ  モードに設定すると、ＣＰＵが高温になるとファンが回転され、温度が下げられる。Ｑｕｉｅｔ  モードに設定すると、ＣＰＵが高温になるとＣＰＵの動作率が低下され、これによって温度が下げられる。
・０２００ｈ    Ｈａｒｄ  ＲＡＭ  Ｓｉｚｅ
このサブファンクションは、メモリの中でハードＲＡＭとして使用するメモリサイズを示すハードＲＡＭサイズ（ＫＢ）情報を取得／設定するルーチンである。
・０２０１ｈ    Ｓｈａｄｏｗ  ＲＡＭ  Ｍｏｄｅ
このサブファンクションは、ＲＯＭの内容をＲＡＭにコピーして使用するシャドウＲＡＭモード（高速ＲＯＭ機能）の有効／無効を指定するシャドウＲＡＭモード設定情報を取得／設定するルーチンである。
・０２０２ｈ    Ｅｘｔｅｎｄｅｄ  Ｍｅｍｏｒｙ  Ｓｅｔｕｐ  Ｍｏｄｅ
このサブファンクションは、外部オプションＲＯＭについてのＲＯＭ／ＲＡＭコピーおよびキャッシュ制御に関する設定を指定する外部メモリセットアップモード情報を取得／設定するルーチンである。
・０３００ｈ    Ｄｉｓｐｌａｙ  Ｄｅｖｉｃｅ  Ｍｏｄｅ
このサブファンクションは、ディスプレイに関する各種モードを指定するディスプレイモード設定情報を取得／設定するルーチンであり、ディスプレイに関する次の設定に使用される。
【００６２】
Ｐｏｗｅｒ  Ｏｎ  Ｄｉｓｐｌａｙ：ブートモードで電源オン時に表示する装置を指定する。Ｉｎｔｅｒｎａｌ／Ｅｘｔｅｒｎａｌ  の設定では、ＣＲＴがあればＣＲＴ表示、なければＬＣＤ表示で起動し、Ｓｉｍｕｌｔａｎｅｏｕｓの設定では同時表示モードで起動する。
【００６３】
ＬＣＤ  Ｄｉｓｐｌａｙ  Ｍｏｄｅ：ＬＣＤ  のモード（Ｃｏｌｏｒ／Ｍｏｎｏｃｈｒｏｍｅ）  を選択する。
【００６４】
Ｄｉｓｐｌａｙ  Ａｄａｐｔｏｒ  ：ＤｅｓｋＳｔａｔｉｏｎ  の接続できるマシンで、ＶＧＡカードをインストールしたＤｅｓｋＳｔａｔｉｏｎ  を接続してシステムを使用する場合はＮｏｔ  Ｕｓｅｄとなる。
・８３００ｈ    Ｃｕｒｒｅｎｔ  Ｄｉｓｐｌａｙ  Ｄｅｖｉｃｅ  Ｍｏｄｅ
このサブファンクションは、現在表示対象となっているディスプレイを指定するカレントディスプレイデバイスモード設定情報を取得／設定するルーチンであり、表示装置の切り替えなどのために使用される。この機能は、Ｈｏｔｋｅｙ（Ｆｎ＋Ｆ５）  と同じ機能である。
・０３０１ｈ    Ｃｏｌｏｒ  Ｅｍｕｌａｔｉｏｎ  Ｍｏｄｅ
このサブファンクションは、ＬＣＤの表示色数を指定するカラーエミュレーション設定情報を取得／設定するルーチンであり、ＬＣＤパネルの表示可能な色の数を選択するために使用される。表示可能色数はシステムにより異なり、表示可能色数の中から決められた数の色だけが１  画面に表示できる。
・０３０２ｈ    Ｇｒａｙ  Ｓｃａｌｅ  Ｌｅｖｅｌ
このサブファンクションは、モノクロＬＣＤにおいて、白→黒色を何段階に分割するかを指定するグレースケール設定情報を取得／設定するルーチンである。
・０３０３ｈ    Ｄｉｓｐｌａｙ  Ｎｏｒｍａｌ／Ｒｅｖｅｒｓｅ  Ｍｏｄｅ
このサブファンクションは、モノクロＬＣＤの非反転／反転表示を指定するノーマル／リバースモード設定情報を取得／設定するルーチンである。
・０３０４ｈ    Ｄｉｓｐｌａｙ  Ｃｏｎｔｒａｓｔ
このサブファンクションは、ＬＣＤのコントラストを指定するディスプレイコントラスト設定情報を取得／設定するルーチンであり、コントラストの変更機能はＨｏｔｋｅｙ（Ｆｎ＋←→）と同様である。
・０３０５ｈ    Ｄｉｓｐｌａｙ  Ｂｒｉｇｈｔｎｅｓｓ
このサブファンクションは、ＬＣＤの輝度レベルを指定するディスプレイブライトネス設定情報を取得／設定するルーチンであり、輝度レベルの変更機能はＨｏｔｋｅｙの（Ｆｎ＋↓↑）と同様である。
・０３０６ｈ    Ｓｃａｎ  Ｍｏｄｅ
このサブファンクションは、ＣＲＴのスキャンモードとしてインターレースモードおよびノンインターレースモードの一方を指定するスキャンモード設定情報を取得／設定するルーチンである。インターレース方式を選択すると、走査線を奇数行、偶数行単位で表示するため、ちらつきが見えることがある。ノンインタレース方式を選択すると、走査線を順番に表示するため、ハードウェア的な負担が大きくなり、この方式に対応しているＣＲＴしか使用できない。
・０３０７ｈ    ＤＰＭＳ  Ｓｔａｔｕｓ
このサブファンクションは、ＣＲＴのパワーセーブ機能（ＤＰＭＳ：Ｄｉｓｐｌａｙ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｓｉｇｎａｌ  ）の有効／無効を指定するＤＰＭＳステータス設定情報を取得／設定するルーチンである。有効にすると、ＤＰＭＳ機能に対応しているＣＲＴを接続した際に、ＣＲＴにおけるパワーセーブが行われる。ＤＰＭＳ機能に対応していないＣＲＴを接続した際は機能しない。
・０３０８ｈ    Ｔａｌｌ  Ｆｏｎｔ  Ｍｏｄｅ
このサブファンクションは、テキスト表示モードにおいてフォントをストレッチする機能の有効／無効を指定するフォントモード設定情報を取得／設定するルーチンであり、有効にすると、英語のテキストモード表示時に６４０ｘ４８０  ドット表示となる。無効にすると、英語のテキストモード表示時に６４０ｘ４００  ドット表示となる。
・０３０９ｈ    ＶＧＡ  Ｓｅｇｍｅｎｔ  Ａｄｄｒｅｓｓ
このサブファンクションは、メモリ空間上におけるＶＧＡ  ＢＩＯＳの開始アドレス値を指定するＶＧＡセグメントアドレス設定情報を取得／設定するルーチンであり、デフォルトはＥ０００ｈ  であるが、Ｅ４００ｈ，Ｃ０００ｈ  に変更する事が出来る。
・０４００ｈ    ＨＤＤ  （＃０）  Ｔｙｐｅ
このサブファンクションは、システムに搭載された１台目のＨＤＤについてその有効／無効の設定およびその記憶容量を示す第１のＨＤＤタイプ設定情報を取得／設定する。
・０４０１ｈ    ＨＤＤ  ＃１  Ｔｙｐｅ
このサブファンクションは、システムに搭載された２台目のＨＤＤについてその有効／無効の設定およびその記憶容量を示す第２のＨＤＤタイプ設定情報を取得／設定する。
・０４０２ｈ    Ｍａｘ．ＨＤＤ  Ｎｕｍｂｅｒ
このサブファンクションは、システムに接続されているＨＤＤ台数を示す最大ＨＤＤ台数設定情報を取得／設定するものであり、ＨＤＤが何台装着されているかを読み出す場合などに使用される。
・０４０３ｈ    Ｅｘｔｅｒｎａｌ  ＨＤＤ  Ｍｏｄｅ
このサブファンクションは、外部ＨＤＤの許可／禁止を設定する情報を取得／設定すルーチンである。
・０４０４ｈ    ＨＤＤ  Ｍｏｄｅ
このサブファンクションは、ＨＤＤのモードをエンハンスドＩＤＥモードおよびスタンダードＩＤＥモードの一方に設定するＨＤＤモード設定情報を取得／設定する設定するルーチンであり、通常、マイクロソフト社のＤＯＳやＷＩＮＤＯＷＳで使用する場合はエンハンスドＩＤＥモードに設定される。この場合、ＢＩＯＳは、ＨＤＤのシリンダ数、ヘッド数を論理値に変換する。ＵＮＩＸ等で使用する場合は、ＨＤＤの情報を変換しない方が良いため、スタンダードＩＤＥの設定が用いられる。
・０４１０ｈ    ＦＤＤ  Ｔｙｐｅ
このサブファンクションは、ＦＤＤのタイプを指定するＦＤＤタイプ設定情報を取得／設定するルーチンである。設定は、２ＨＤのメディアに関するもので、１．４４ＭＢ、１．２ＭＢ、１．４４／１．２ＭＢ両方などがある。
・０４１１ｈ    Ｎｏ．２  ＦＤ  Ｄｒｉｖｅ
このサブファンクションは、２台目のＦＤＤのタイプを指定する第２のＦＤＤタイプ設定情報を取得／設定するルーチンであり、例えばＦＤＤ２連タイプのシステムにて、２台目のＦＤＤのタイプを３．５インチ／５．２５インチなどで設定するために使用される。
・０５００ｈ    Ｓｅｒｉａｌ  Ｐｏｒｔ  Ｍｏｄｅ
このサブファンクションは、シリアルポートの使用環境を指定するシリアルポートモード設定情報を取得／設定するルーチンであり、ＣＯＭ  ＝ＣＯＭ１（ＩＲＱ４／３Ｆ８Ｈ），ＣＯＭ２（ＩＲＱ３／２Ｆ８Ｈ），ＣＯＭ３（ＩＲＱ４／３Ｅ８Ｈ），ＣＯＭ４（ＩＲＱ３／２Ｅ８Ｈ），Ｎｏｔ  Ｕｓｅｄなどの設定のために使用される。
・０５０１ｈ    Ｐａｒａｌｌｅｌ  Ｐｏｒｔ  Ｍｏｄｅ
このサブファンクションは、パラレルポートの使用環境を指定するパラレルポートモード設定情報を取得／設定するルーチンであり、Ｐａｒａｌｌｅｌ＝ＬＰＴ１（３７８Ｈ），ＬＰＴ２（２７８Ｈ），ＬＰＴ３（３ＢＣＨ），Ｎｏｔ  Ｕｓｅｄ  などの設定のために使用される。また、パラレルポートのモードを出力専用か、双方向にするかの設定にも使用される。
・０５０２ｈ    Ｋｅｙｂｏａｒｄ  Ｔｙｐｅ
このサブファンクションは、キーボードに関する使用環境を指定するキーボードタイプ設定情報を取得／設定するルーチンであり、次の設定に利用される。
【００６５】
Ｆｎ代替えキー：外部ＫＢ使用時に内部ＫＢのＦｎキーを外部ＫＢのどのキーで代用するかを設定する。
【００６６】
３キー入れ替え：内部ＫＢのＣｔｒｌ／Ａｌｔ／Ｃａｐｓ  Ｌｏｃｋキーの位置を入れ替えるかどうかを設定する。
・０５０３ｈ    ＰＣＭＣＩＡ  Ｓｌｏｔ  Ｍｏｄｅ
このサブファンクションは、ＰＣカードスロットに関する使用環境を指定するＰＣカードスロットモード設定情報を取得／設定するルーチンであり、ＰＣＭＣＩＡ  Ｓｌｏｔ  のモードを指定する。ＰＣＭＣＩＡ（ＰＣＭＣＩＡカード使用時）  またはＯｔｈｅｒｓ（  東芝／インテル社のモデムカード使用時）  を選択するためなどに使用される。
・０５０４ｈ    Ｋｅｙｂｏａｒｄ  Ｉｎｉｔｉａｌ  Ｓｔａｔｅ
このサブファンクションは、システムの電源投入時におけるキーボードのＮｕｍＬｏｃｋ状態の有効／無効を指定するキーボード初期状態設定情報を取得／設定するルーチンである。
・０５０５ｈ    Ｐｏｉｎｔｉｎｇ  Ｓｔｉｃｋ  Ｍｏｄｅ
このサブファンクションは、ポインティングデバイスであるポインティングスティックおよびＰＳ／２マウスを選択的にまたは同時に使用することを指定するポインティングスティックモード設定情報を取得／設定するルーチンである。
【００６７】
Ａｕｔｏ−Ｓｅｌｅｃｔｅｄ  モードにすると、外部ＰＳ／２マウスがある場合は外部ＰＳ／２マウスのみ、ない場合はポインティングスティック（アキュポイント）のみが使用できる。Ｓｉｍｕｌｔａｎｅｏｕｓモードにすると、外部ＰＳ／２マウスとポインティングスティックとが使用できる。
・０５０６ｈ    ＤＳ  Ｐａｒａｌｌｅｌ  Ｐｏｒｔ  Ｍｏｄｅ
このサブファンクションは、コンピュータ本体に取り外し自在に装着される拡張ユニットのパラレルポートに関する使用環境を指定するＤＳパラレルポートモード設定情報を取得／設定するルーチンであり、ＤｅｓｋＳｔａｔｉｏｎ  をサポートするが、内部とＤＳのパラレルポートタイプが異なる場合に、パラレルポートの選択を行う。
・０５０７ｈ    Ｉｎｔ．Ｋｅｙｂｏａｒｄ  Ｋｅｙ  Ｌａｙｏｕｔ
このサブファンクションは、内部キーボードのキーレイアウトを入れ替える機能の有効／無効を指定するキーレイアウト設定情報を取得／設定するルーチンであり、内部ＫＢのＣｔｒｌ／Ａｌｔ／Ｃａｐｓ  Ｌｏｃｋキーの位置を入れ替えるかどうかを設定する（３キー入れ替え機能）  ために使用される。
・０５０８ｈ    Ｉｎｆｒａｒｅｄ  Ｍｏｄｅ
このサブファンクションは、赤外線通信インタフェースに関する使用環境を設定する赤外線通信モード設定情報を取得／設定するルーチンであり、赤外線通信機能インタフェースにシリアルポートを割り当てた場合のモードを選択する。シャープ社のモードの機器と通信するときはＡＳＫ  の設定にし、他のマシンやプリンタと通信する時はＩｒＤＡの設定にする。
・０５１０ｈ    ＳＣＳＩ  Ｍｏｄｅ
このサブファンクションは、ＳＣＳＩの割り込みレベルを指定するＳＣＳＩモード設定情報を取得／設定するルーチンである。
・０５２０ｈ    Ｓｏｕｎｄ  Ｓｙｓｔｅｍ  Ｍｏｄｅ
このサブファンクションは、システム内のサウンドシステムに関する使用環境（ＩＲＱ，ＤＭＡ，Ｉ／Ｏ  Ａｄｄｒｅｓｓ  など）を指定するサウンドシステムモード設定情報を取得／設定するルーチンである。
・０５２１ｈ    Ｓｏｕｎｄ  Ｓｙｓｔｅｍ  Ｐｏｗｅｒ
このサブファンクションは、システム内のサウンドシステムの電源オン／オフを指定するサウンドシステムパワー設定情報を取得／設定するルーチンである。電源オンにしないと、サウカドシステムは使用できない。
・０６００ｈ    Ｐａｓｓｗｏｒｄ  Ｉｎｔｅｒｆａｃｅ  Ｍｏｄｅ
このサブファンクションは、システムに対するパスワードの登録／削除を行うためのプログラムを実行可能なモードにするか否かを指定するパスワードインタフェースモード設定情報を取得／設定するルーチンであり、バスワードインタフェースの接続／切断の設定のために使用される。パスワード用アプリケーション（パスワードのの登録／削除等を行う）  をインストールる際に、本機能によりパスワードインタフェースが接続され、パスワード用アプリが使用可能となる。
・０６０１ｈ    Ｐａｓｓｗｏｒｄ  Ｃｈｅｃｋ  Ｒｅｑｕｅｓｔ  Ｆｌａｇ
このサブファンクションは、システムで実行されるプログラムにパスワードチェックを要求するパスワードチェック要求フラグを取得／設定するルーチンであり、フラグが設定されると、アプリはパスワードチェック（  有無等）  を行う。
・０６０２ｈ    Ｐａｓｓｗｏｒｄ
このサブファンクションは、システムに登録されているパスワードを取得／設定するルーチンであり、パスワードの設定／削除などのために使用される。
・０６０３ｈ    Ｖｅｒｉｆｙ  Ｐａｓｓｗｏｒｄ
このサブファンクションは、システムに登録されているパスワードと入力パスワードとを比較するベリファイパスワード機能を実行する。
・０６０４ｈ    Ｐａｓｓｗｏｒｄ  Ｌｅｖｅｌ
このサブファンクションは、システムで使用されているパスワードレベルに関する設定情報を取得／設定するルーチンであり、カレントパスワードのパスワードレベルを設定するためなどに使用される。レベルは制限有り／制限無しの２つ選択でき、制限有りの場合はマシン使用上、ＳＥＴＵＰ  が起動できないなどの制限が出来る。
【００６８】
ＳＣＩのデフォルトコンフィグレーションセットルーチンは、システム動作環境を標準の環境に戻すためにシステム構成情報のデフォルト値をＣＭＯＳメモリ１６Ａに書き込むルーチンであり、ＣＰＵ１１のＡＸレジスタにファンクションコード４４Ｆ５ｈがセットされた状態でＩＮＴ１５ｈが実行された時に起動される。
【００６９】
以上のように、ＳＣＩは、ハードウェアセットアップのために必要なＣＭＯＳメモリ１６Ａに対するアクセス機能を、ＯＳや、セップアッッププログラムなどのアプリケーションプログラムに提供する。
【００７０】
図１のＢＩＯＳ  ＲＯＭ１４には、さらに、ＳＭＩハンドラおよびＳＭＩサービスルーチンなどのＳＭＭの中で実行されるシステム管理プログラムも格納されている。
【００７１】
ＳＭＩハンドラは、ＳＭＩの発生要因に応じてＳＭＩサービスルーチンやＢＩＯＳドライバを起動するするためのものであり、Ｉ／ＯトラップによるＳＭＩが発生した場合にはＢＩＯＳドライバを起動し、他の要因によるＳＭＩが発生した場合にはその要因に対応するＳＭＩサービスルーチンを起動する。このように、Ｉ／ＯトラップによるＳＭＩは、ＢＩＯＳドライバを起動するためのプログラム・インタフェースとしても利用される。
【００７２】
従って、前述のＳＣＩは、ソフトウェア割り込み（ＩＮＴ１５ｈ）だけでなく、Ｉ／ＯトラップＳＭＩを利用しても起動する事ができる。
【００７３】
さらに、ＢＩＯＳ  ＲＯＭ１４には、リアルモード環境で動作するユーティリティーとして、セットアッププログラム、およびポップアッププログラムが格納されている。これらセットアッププログラムおよびポップアッププログラムは、キー入力操作によって所定のコマンドが入力された時に起動される。
【００７４】
ＢＩＯＳ  ＲＯＭ１４のセットアッププログラム（ＢＩＯＳセットアップ）は、リアルモード環境においてシステムコンフィグレーションの設定／変更を行う場合に利用される。
【００７５】
バス変換回路１５はＣＰＵローカルバス１７とシステムバス１８を接続するブリッジ回路であり、ＣＰＵローカルバス１７の３２ビットデータバスとシステムバス１８の１６ビットデータバスとの間のバス幅変換などを行う。
【００７６】
リアルタイムクロック（ＲＴＣ）１６は電池電源が常時供給されるＣＭＯＳメモリ１６Ａを有する。このＣＭＯＳメモリ１６Ａには、システム構成情報などが保存される。システムの動作環境は、ＣＭＯＳメモリ１６Ａのシステム構成情報によって決定される。
【００７７】
次に、システムコントローラ１２に設けられたＳＭＩ発生制御のためのハードウェア構成について説明する。
【００７８】
システムコントローラ１２は、図示のように、Ｉ／ＯトラップＳＭＩ発生回路１２１、他の要因によるＳＭＩ発生回路１２２，１２３、ＯＲ回路１２４、およびＳＭＩステータスレジスタ１２５を備えている。
【００７９】
Ｉ／ＯトラップＳＭＩ発生回路１２１は、プログラム・インタフェースとして利用されるＩ／ＯトラップＳＭＩ信号を発生させるための回路であり、予め決められたアドレス範囲に属するシステムバス１８上のＩ／ＯアドレスをトラップしてＩ／ＯトラップＳＭＩ信号を発生する。このＩ／ＯトラップＳＭＩ発生回路１２１は、図示のように、Ｉ／Ｏベースアドレスレジスタ１２６、アドレス比較回路１２７、およびマスクレジスタ１２８から構成されている。
【００８０】
Ｉ／Ｏベースアドレスレジスタ１２６はＣＰＵ１１がリード／ライト可能なレジスタであり、システムバス１８に接続されている。このＩ／Ｏベースアドレスレジスタ１２６は、Ｉ／Ｏベースアドレスを保持する。このＩ／Ｏベースアドレスは、システムのパワーオン時に実行されるＢＩＯＳのＩＲＴルーチンによってＩ／Ｏベースアドレスレジスタ１２６にセットされる。セットされるＩ／Ｏベースアドレスとしては、Ｉ／Ｏ装置に対して割り当てることが可能な複数のＩ／Ｏベースアドレスの中で実際に使用されてないアドレスが利用される。
【００８１】
比較回路１２７は、ＩＯリード／ライトサイクルにおいてシステムバス１８上に出力されるＩ／ＯアドレスとＩ／Ｏベースアドレスレジスタ１２６のＩ／Ｏベースアドレスとを比較し、Ｉ／ＯアドレスがＩ／Ｏベースアドレスによって指定されるアドレス範囲に属する時にＩ／ＯトラップＳＭＩ信号を発生する。
【００８２】
マスクレジスタ１２８は、ＣＰＵ１１がリード／ライト可能なレジスタであり、システムバス１８に接続されている。このマスクレジスタ１２８は、Ｉ／ＯトラップＳＭＩ信号の発生を許可または禁止するためのマスクデータを保持する。このマスクデータは、システムのパワーオン時にＩＲＴルーチンによってセットされる。Ｉ／ＯトラップＳＭＩをＢＩＯＳのファンクション実行ルーチンを呼び出すためのプログラム・インタフェースとして利用する場合には、Ｉ／ＯトラップＳＭＩ信号の発生を許可するマスクデータがセットされる。
【００８３】
Ｉ／ＯトラップＳＭＩ発生回路１２１には実際にはこのような回路が複数セット用意されており、その内の１つがＢＩＯＳドライバを呼び出すためのプロクラム・インタフェースとして利用され、他の回路セットからのＩ／ＯトラップＳＭＩはローカルスタンバイＳＭＩの発生などのために利用される。もちろん、２以上の回路セットをＢＩＯＳドライバを呼び出すためのプログラム・インタフェースとして利用することもできる。
【００８４】
この場合には、それら回路セットに互いに異なるＩ／Ｏベースアドレスをセットしておくことによって、複数のＢＩＯＳドライバを互いにトラップアドレスが異なる複数のＩ／ＯトラップＳＭＩを利用したインタフェースによって選択的に呼び出す事ができる。
【００８５】
他の要因によるＳＭＩ発生回路１２２，１２３は、例えば、ソフトウェアＳＭＩ、グローバルスタンバイＳＭＩ、ローカルスタンバイＳＭＩ、外部入力ＳＭＩ、電源からのサスペンドレジュームボタン信号によるＳＭＩなどを発生する。
【００８６】
ＯＲ回路１２４は、Ｉ／ＯトラップＳＭＩ発生回路１２１および他のＳＭＩ回路１２２，１２３のいずれかがＳＭＩ信号を発生した時、そのＳＭＩ信号をＣＰＵ１１に供給する。
【００８７】
Ｉ／ＯトラップＳＭＩ発生回路１２１および他のＳＭＩ回路１２２，１２３の各々は、ＣＰＵ１１がＳＭＭを抜けるまでＳＭＩ信号をアクティブステートに維持し続ける。このため、あるＳＭＩ信号に対するＳＭＩ処理中に他のＳＭＩ信号が発生された時は、ＣＰＵ１１は最初のＳＭＩ信号に対応するＳＭＭを抜けた後に、ＳＭＩ処理中に発生したＳＭＩ信号によって再びＳＭＭに移行する。
【００８８】
ＳＭＩステータスレジスタ１２５は、ＳＭＩ発生要因を示すステータスデータを保持するためのものであり、Ｉ／ＯトラップＳＭＩ発生回路１２１および他のＳＭＩ回路１２２，１２３それぞれの出力を保持する。
【００８９】
以下、この発明の特徴とするＳＣＩを用いたシステムコンフィグレーションの設定／変更動作を説明する。
【００９０】
まず、図７乃至図１０を参照して、ＩＮＴ１５ｈを用いてＳＣＩを起動する場合について説明する。
【００９１】
図７には、ＳＣＩを用いたシステムコンフィグレーションの設定／変更動作の原理が概念的に示されている。
【００９２】
この実施例のパーソナルコンピュータにおいては、リアルモード環境とプロテクトモード環境とでそれぞれ異なるセットアッププログラムが用いられる。すなわち、リアルモード環境ではＢＩＯＳ  ＲＯＭ１４に格納されているＢＩＯＳセットアッププログラムが使用され、プロテクトモード環境下ではフロッピーディスクやハードディスク装置から供給される“Ｍａｘ  Ｔｉｍｅ”などのセットアッププログラムが利用される。
【００９３】
“Ｍａｘ  Ｔｉｍｅ”は本出願人によって開発されたプロテクトモードＯＳ用のアプリケーションプログラムであり、プロテクトモード環境で実行することができる。“Ｍａｘ  Ｔｉｍｅ”は、ＳＣＩを利用してシステム構成情報の読み書きを行い、ハードウェア（ＣＭＯＳメモリ）を直接アクセスすることはない。“Ｍａｘ  Ｔｉｍｅ”を実行すると、図９のようなセットアップウインドウが画面表示され、各種環境設定項目についてそれぞれ現在の設定値が提示される。現在の設定値は、キー操作やマウス操作によって変更する事ができる。また、“ＤｅＦａｕｌｔｓ”アイコンを選択する事により、全ての環境設定項目をデフォルト値に一括変更する事もできる。
【００９４】
このようにしてシステム動作環境の変更操作が行われると、“Ｍａｘ  Ｔｉｍｅ”はＳＣＩを呼び出し、ＣＭＯＳメモリ１６Ａのシステム構成情報の変更などを行う。
【００９５】
“Ｍａｘ  Ｔｉｍｅ”がＳＣＩを呼び出す場合には、まず、ＣＰＵ１１の動作モードがプロテクトモードからリアルモードに切り替えられ、その後ＩＮＴ１５ｈのソフトウェア割り込み命令が実行される。
【００９６】
ＢＩＯＳセットアッププログラムは、リアルモードＯＳ用のプログラムであり、リアルモード環境で実行することができる。ＢＩＯＳセットアッププログラムも、ＳＣＩを利用してシステム構成情報の読み書きを行う事ができる。ＢＩＯＳセットアッププログラムはシステムボード上のＲＯＭに格納されたＢＩＯＳドライバの一種であるので、従来と同様に、ＢＩＯＳセットアッププログラムがハードウェア（ＣＭＯＳメモリ）を直接アクセスするように構成しても良い。ＢＩＯＳセットアッププログラムが実行された場合も、“Ｍａｘ  Ｔｉｍｅ”と同様の環境設定項目を持つ図８のようなセットアップウインドウが画面表示され、各種環境設定項目についてそれぞれ現在の設定値が提示される。
【００９７】
ＢＩＯＳセットアッププログラムがＳＣＩを呼び出す場合には、ＣＰＵ１１の動作モードを切り替えること無く、ＩＮＴ１５ｈのソフトウェア割り込み命令だけが実行される。
【００９８】
図１０には、ＳＣＩによるシステム構成情報のリード／ライト処理の手順が示されている。
【００９９】
ここでは、ＳＣＩが既にオープンされている場合を想定する。
【０１００】
前述したように、“Ｍａｘ  Ｔｉｍｅ”およびＢＩＯＳセットアッププログラムは、ＩＮＴ１５ｈのソフトウェア割り込み命令を実行する。この場合、ＳＣＩのファンクション実行ルーチンを指定するファンクションコードや、サブファンクションコードがＣＰＵ１１のレジスタにセットされる。
【０１０１】
ＩＮＴ１５ｈのソフトウェア割り込み命令の実行により、ＩＮＴ１５ｈのベクタアドレスで指定される拡張ＢＩＯＳが実行される。拡張ＢＩＯＳは、まず、ＳＣＩがサポートしているファンクションコードか否かを判断する（ステップＳ１０１）。具体的には、ファンクションコードが４４Ｆ２ｈ（クローズインタフェース）か、４４４Ｆ３ｈ（システムコンフィグレーションゲット）か、４４Ｆ４ｈ（システムコンフィグレーションセット）か、４４Ｆ５ｈ（デフォルトコンフィグレーションセット）かどうかを判断し、これらファンクションコードでなければ、拡張ＢＩＯＳに用意されたＳＣＩ以外の処理に移行する。
【０１０２】
一方、サポートするファンクションコードであれば、そのファンクションコードに対応するファンクション実行ルーチンが起動される（スップＳ１０２）。起動されたファンクション実行ルーチンは、ＣＰＵ１１のレジスタにセットされているサブファンクションコードをサポートしているか否かを判断する（ステップＳ１０３）。
【０１０３】
サポートしていないサブファンクションが指定されたときは、ファンクション実行ルーチンは、エラー値を出力値としてＣＰＵ１１のレジスタにセットした後にリターンする（ステップＳ１０４）。
【０１０４】
一方、サポートしているサブファンクションであれば、ファンクション実行ルーチンは、その指定されたサブファンクションを実行し、該当する環境設定項目の読み出し／書き込みなどを行い、ＣＰＵ１１の出力レジスタに戻り値を設定した後にリターンする（ステップＳ１０５，Ｓ１０６）。
【０１０５】
次に、前述した多数のサブファンクションについて、その機能の詳細とそれを実行した場合のＣＰＵ１１の入出力レジスタの一例について説明する。
【０１０６】
ＳＣＩのサブファンクション詳細
（１）Ｇｅｔ  Ｐｏｗｅｒ−ｕｐ  Ｍｏｄｅ
（１−１）機能
パワーアップモードの設定をＣＭＯＳからリードする。
（１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１００ｈ
・出力レジスタ
0003626258.tif 000003
すなわち、Ｇｅｔ  Ｐｏｗｅｒ−ｕｐ  Ｍｏｄｅのサブファンクションを実行する場合には、入力レジスタＡＸにはＳＣＩのシステムコンフィグレーションゲットルーチンを指定するファンクションコード（＝４４Ｆ３ｈ）、入力レジスタＢＸにはパワーアップモードを示すサブファンクションコード（＝０１００ｈ）がセットされる。
【０１０７】
システムコンフィグレーションゲットルーチンのサブファンクション（ＧＥＴＰＯＷＥＲ−ＵＰ  ＭＯＤＥ）が正常終了した場合には、出力レジスタＣＸには、ＣＭＯＳメモリ１６Ａからリードした現在のパワーアップモードがセットされる。この場合、ブートモードであれは００００ｈが戻り値となり、レジュームモードであれば０００１ｈが戻り値となる。また、出力レジスタＳＩにはパワーアップモードのデフォルト値（ブートモード）を示す００００ｈがセットされる。
【０１０８】
一方、エラー発生した場合には、エラーの内容を示す値が出力レジスタＡＨにセットされると共に、出力レジスタＣＦには１がセットされる。
【０１０９】
以下、他のサブファンクションについて同様に説明する。
（２）Ｇｅｔ  Ｂａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ
（２−１）機能
バッテリーセーブモードの設定をＣＭＯＳからリードする。
（２−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０１ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００１ｈ：Ｇｒａｄｕａｌデータタイプ
ＣＸ＝現在設定されているレベル
ＤＸ＝設定可能な最大レベル
ＳＩ＝レベルのデフォルト値
ＣＦ＝０
0003626258.tif 000004
（２−３）機能詳細
本サブファンクションは、バッテリセーブモードのレベルを返す。最大レベルは、システムによる。下の表は、最大レベル数と、各モードのレベル数を表す。
【０１１０】
例えば、Ｆｕｌｌ／Ｅｃｏｎｏｍｙ／Ｌｏｗ／ＵｓｅｒＳｅｔｔｉｎｇ  Ｍｏｄｅをサポートしているマシンでは、Ｌｏｗ  Ｍｏｄｅが設定されていれば、ＤＸ＝３、ＣＸ＝１が返され、ＳＩには０００２ｈが返される。
（３）Ｇｅｔ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｐｅｅｄ
（３−１）機能
処理スピードの設定をＣＭＯＳからリードする。
ａ）マシン１の場合
（３−２）ａ  入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０２ｈ
ＣＸ＝００００ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００３ｈ：Ｄｉｓｃｒｅｔｅデータタイプ
ＣＸ＝現在設定されている値
ＤＸ＝設定可能な値（インデックス）
ＳＩ＝インデックスのデフォルト値
ＣＦ＝０
0003626258.tif 000005
（３−３）ａ  機能詳細
本サブファンクションは、ＣＰＵのスピードをＭＨｚで返す。システムが、３３／１７／８／４ＭＨｚをサポートする場合は、１７ＭＨｚに設定されていれば、ＤＸ＝４、ＣＸ＝００１１ｈを返す。
【０１１１】
ユーザは、“インデックス”を使用することにより、全ての使用可能なモードを得ることができる。
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０２ｈ
ＣＸ＝インデックス（０・・・設定可能な値）
システムが、３３／１７／８／４ＭＨｚをサポートする場合、インデックスと処理スピードの対応は、下のようになる。
【０１１２】
0003626258.tif 000006
この場合の設定可能な値は４（まで）であるので、ＤＸ＝０００４ｈである。ｉｎｄｅｘ＝３とすれば、ＣＸ＝００１１ｈを返す。
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００３ｈ：Ｄｉｓｃｒｅｔｅデータタイプ
ＣＸ＝インデックスにより列挙される値
ＤＸ＝インデックスの最大値
0003626258.tif 000007
（３−３）ｂ  機能詳細
また、処理スピードのレベルを返してもよい。
（４）Ｇｅｔ  Ｓｎａｐ  Ｍｏｄｅ
（４−１）機能
スナップモードの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）を、ＣＭＯＳからリードする。
（４−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０３ｈ
・出力レジスタ
0003626258.tif 000008
（５）Ｇｅｔ  Ｓｌｅｅｐ  Ｍｏｄｅ
（５−１）機能
スリープモードの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）をＣＭＯＳからリードする。
（５−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０４ｈ
・出力レジスタ
0003626258.tif 000009
（５−３）機能詳細
ＳＥＴＵＰで本項目が“ＢＡＴＴＥＲＹ  ＳＡＶＥ  ＯＰＴＩＯＮＳ”内にあるシステムで、本ファンクションにより設定値を読み出す際は、ＢａｔｔｅｒｙＳａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ以外の時の設定はＣＭＯＳからリードせず、それぞれの固定の設定値を返すようにすること。（ＣＭＯＳにはＢａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ時の設定値しか格納されていないため。）
（６）Ｇｅｔ  Ｄｉｓｐｌａｙ  Ａｕｔｏ  ＯＦＦ  Ｍｏｄｅ
（６−１）機能
ディスプレイオートオフモードの設定をＣＭＯＳからリードする。
（６−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０５ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００６ｈ：Ｔｉｍｅｒデータタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000010
（６−３）機能詳細
１）Ｄｉｓａｂｌｅ，１，３，５，１０，１５，２０，３０，Ａｌｗａｙｓ  ＯＦＦをサポートするシステムでは、ＤＸ＝０２ＦＦｈを返す。
２）Ｄｉｓａｂｌｅ，３０ｍｉｎ．をサポートするシステムでは、ＤＸ＝０２０１ｈを返す。
３）Ｄｉｓａｂｌｅに設定されていれば、ＣＸ＝０００１ｈを返す。
４）Ａｌｗａｙｓ  ＯＦＦに設定されていれば、ＣＸ＝０００２ｈを返す。
５）２０ｍｉｎ．に設定されていれば、ＣＸ＝００８０ｈを返す。
６）３０ｍｉｎ．に設定されていれば、ＣＸ＝０２００ｈを返す。
【０１１３】
システムが、モノクロＬＣＤをサポートしない場合、“Ａｌｗａｙｓ  Ｏｆｆ”の設定はサポートされないので、出力ＤＸのＢｉｔｌ＝０となる。
【０１１４】
また、ＳＥＴＵＰで本項目が“ＢＡＴＴＥＲＹ  ＳＡＶＥ  ＯＰＴＩＯＮＳ”内にあるシステムで、本ファンクションにより設定値を読み出す際は、Ｂａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ以外の時の設定はＣＭＯＳからリードせず、それぞれの固定の設定値を返すようにする（ＣＭＯＳにはＢａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ時の設定値しか格納されていないため）。
（７）Ｇｅｔ  ＨＤＤ  Ａｕｔｏ  ＯＦＦ  Ｍｏｄｅ
（７−１）機能
ＨＤＤオートオフモードの設定をＣＭＯＳからリードする。
（７−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０６ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００６ｈ：Ｔｉｍｅｒデータタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000011
（７−３）機能詳細
１）Ｄｉｓａｂｌｅ，３，５，１０，１５，２０，３０をサポートするシステムでは、ＤＸ＝０２Ｆ９ｈを返す。
２）Ｄｉｓａｂｌｅに設定されていれば、ＣＸ＝０００１ｈを返す。
３）３  ｍｉｎｕｔｅｓに設定されていれば、ＣＸ＝０００８ｈを返す。
４）３０  ｍｉｎｕｔｅｓに設定されていれば、ＣＸ＝０２００ｈを返す。また、ＳＥＴＵＰで本項目が“ＢＡＴＴＥＲＹ  ＳＡＶＥ  ＯＰＴＩＯＮＳ”内にあるシステムで、本ファンクションにより設定値を読み出す際は、ＢａｔｔｅｒｙＳａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ以外の時の設定はＣＭＯＳからリードせず、それぞれの固定の設定値を返すようにする（ＣＭＯＳにはＢａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ時の設定値しか格納されていないため）。
（８）Ｇｅｔ  ＦＤＤ  Ａｕｔｏ  Ｏｆｆ  Ｍｏｄｅ
（８−１）機能
ＦＤＤオートオフモードの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）をＣＭＯＳからリードする。
（８−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０７ｈ
・出力レジスタ
0003626258.tif 000012
（９）Ｇｅｔ  Ｃａｃｈｅ  Ｓｔａｔｕｓ
（９−１）機能
キャッシュステータスの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）をＣＭＯＳからリードする。
（９−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０８ｈ
・出力レジスタ
0003626258.tif 000013
（１０）Ｇｅｔ  Ｓｐｅａｋｅｒ  Ｖｏｌｕｍｅ
（１０−１）機能
スピーカーボリュームの設定をＣＭＯＳからリードする。
（１０−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０９ｈ
正常終了する場合
・出力レジスタ
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００１ｈ：Ｇｒａｄｕａｌデータタイプ
ＣＸ＝現在設定されているレベル
ＤＸ＝設定可能な最大レベル
ＳＩ＝レベルのデフォルト値
ＣＦ＝０
0003626258.tif 000014
（１０−３）機能詳細
本サブファンクションは、ＣＸレジスタにレベルでスピーカーボリュームの設定を返す。最小レベルは０で、最大レベルはシステムにより、値をＤＸレジスタに返す。あるシステムでは、レベルは次のように返され、ＤＸおよびＳＩには０００３ｈが返る。
【０１１５】
0003626258.tif 000015
（１１）Ｇｅｔ  Ｓｙｓｔｅｍ  Ｓｐｅａｋｅｒ  Ｓｔａｔｕｓ
（１１−１）機能
システムスピーカーの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）をＣＭＯＳからリードする。
（１１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０Ａｈ
・出力レジスタ
0003626258.tif 000016
（１２）Ｇｅｔ  Ｌｏｗ  Ｂａｔｔｅｒｙ  Ａｌａｒｍ  Ｍｏｄｅ
（１２−１）機能
ローバッテリーアラームモードの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）をＣＭＯＳからリードする。
（１２−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０Ｂｈ
・出力レジスタ
0003626258.tif 000017
（１３）Ｇｅｔ  Ｐａｎｅｌ  Ｃｌｏｓｅ  Ａｌａｒｍ  Ｍｏｄｅ
（１３−１）機能
パネル閉時のアラーム音の設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）をＣＭＯＳからリードする。
（１３−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０Ｃｈ
・出力レジスタ
0003626258.tif 000018
（１４）Ｇｅｔ  Ｐａｎｅｌ  Ｐｏｗｅｒ  Ｏｎ／Ｏｆｆ  Ｍｏｄｅ
（１４−１）機能
パネル開閉時のサスペンド／リジュームの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）をＣＭＯＳからリードする。
（１４−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０Ｄｈ
・出力レジスタ
0003626258.tif 000019
（１４−３）機能詳細
本ファンクション実行時は、ブートモード／レジュームモードに関わらず、現在のＣＭＯＳの設定値を返すものとする。
（１５）Ｇｅｔ  Ａｌａｒｍ  Ｐｏｗｅｒ  Ｏｎ  Ｄａｔｅ
（１５−１）機能
アラームパワーオンの日付の設定をＣＭＯＳからリードする。
（１５−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０Ｅｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００５ｈ：Ｄａｔｅデータタイプ
ＣＸ＝現在設定されている日付
ＤＸ＝設定可能な日付
ＣＦ＝０
0003626258.tif 000020
（１５−３）機能詳細
本サブファンクションは、アラームパワーオンの日付の設定を返す。
【０１１６】
本サブファンクション実行時にＤＸレジスタに返される値は、年／月／日の設定がサポートされている場合はＤＸ＝０ＦＦＦＥｈとなるが、月／日の設定しかサポートされていない場合は、ＤＸ＝０３ＦＥｈとなる。
（１６）Ｇｅｔ  Ａｌａｒｍ  Ｐｏｗｅｒ  Ｏｎ  Ｔｉｍｅ
（１６−１）機能
オートリジューム（アラームパワーオン）の時間の設定をＣＭＯＳからリードする。
（１６−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１０Ｆｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００４ｈ：Ｔｉｍｅデータタイプ
ＣＸ＝現在設定されている時間
ＤＸ＝設定可能な時間：（１６−３）１）の表の通り各ビットは固定
ＳＩ＝設定のデフォルト値
ＣＦ＝０
0003626258.tif 000021
（１６−３）機能詳細
本サブファンクションは、アラームパワーオンの時間を返す。
１）例えば、Ｄｉｓａｂｌｅ，Ｅｎａｂｌｅ（ｈｈ：ｍｍ）をサポートするシステムでは、ＤＸ＝□ＦＦＦｈを返す。（□：Ｂｉｔ１５−Ｂｉｔ１２はＲｅｓｅｒｖｅｄ（ｒ）、各ビットは下表の通り）
0003626258.tif 000022
２）Ｄｉｓａｂｌｅに設定されていれば、ＣＸレジスタの各ビットは、以下のように返される。
【０１１７】
0003626258.tif 000023
３）１２：３４に設定されていれば、ＣＸレジスタの各ビットは、以下のように返される。
【０１１８】
0003626258.tif 000024
４）ＳＩは、以下のように返される。
【０１１９】
0003626258.tif 000025
（１７）Ｇｅｔ  Ｓｙｓｔｅｍ  Ａｕｔｏ  ＯＦＦ  Ｍｏｄｅ
（１７−１）機能
オートサスペンドの設定をＣＭＯＳからリードする。
（１７−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１０ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００６ｈ：Ｔｉｍｅｒデータタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000026
（１７−３）機能詳細
本サブファンクションは、オートサスペンドモードの設定を返す。
１）Ｄｉｓａｂｌｅ，３０，６０をサポートするとき、ＤＸ＝８２０１ｈを返す。
２）Ｄｉｓａｂｌｅが設定されていれば、ＣＸ＝０００１ｈを返す。
３）３０  ｍｉｎｕｔｅｓが設定されていれば、ＣＸ＝０２００ｈを返す。
【０１２０】
また、ＳＥＴＵＰで本項目が“ＢＡＴＴＥＲＹ  ＳＡＶＥ  ＯＰＴＩＯＮＳ”内にあるシステムで、本ファンクションにより設定値を読み出す際は、Ｂａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ以外の時の設定はＣＭＯＳからリードせず、それぞれの固定の設定値を返すようにする（ＣＭＯＳにはＢａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ時の設定値しか格納されていないため）。
（１８）Ｇｅｔ  Ｒｅｍａｉｎｉｎｇ  Ｂａｔｔｅｒｙ  Ｐｏｗｅｒ  ａｓ  Ｐｅｒｃｅｎｔａｇｅ
（１８−１）機能
バッテリー残量（パーセンテージ）をリードする。
（１８−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１１ｈ
0003626258.tif 000027
（１８−３）機能詳細
本サブファンクションは、残りのバッテリー容量（１ｓｔバッテリ／２ｎｄバッテリが共にある場合は１ｓｔバッテリの容量）をパーセンテージで表す。システムが残りの容量を読み取れなければ、ＣＸ＝０ＦＦＦＦｈを返す。また、乾電池が接続されている場合は、ＣＸ＝ＦＦＦＥｈを返す。
【０１２１】
例えば、あるシステムでは、最大レベルは１００であり、レベル０，１，２，・・・，９９，１００はそれぞれ０％，１％，２％・・・９９％，１００％に対応する。
（１９）Ｇｅｔ  Ｒｅｍａｉｎｉｎｇ  Ｂａｔｔｅｒｙ  Ｐｏｗｅｒ  ｉｎ  Ｔｉｍｅ
（１９−１）機能
バッテリー残量（時間）をリードする。
（１９−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１２ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０２ｈ
ＢＸ＝８００４ｈ：タイムデータタイプ
ＣＸ＝現在設定されている時間または０ＦＦＦＦｈ：不明
ＤＸ＝設定可能な時間
ＳＩ＝デフォルト値
ＣＦ＝０
0003626258.tif 000028
（１９−３）機能詳細
本サブファンクションは、残りのバッテリー容量を時間で表す。システムが残りの容量を読み取れなければ、ＣＸ＝０ＦＦＦＦｈを返す。
【０１２２】
尚、バッテリ残時間のリードはＡＣアダプタなし（バッテリ駆動）の時のみ可能である。ＡＣアダプタ有りの時に本ファンクションを実行した場合は読み出しＤｉｓａｂｌｅとして、ＣＸ＝０００１ｈを返す。
（２０）Ｇｅｔ  Ｂａｔｔｅｒｙ  Ｓｔａｔｕｓ  Ｍｏｄｅ
（２０−１）機能
バッテリーステータスモードの設定をＣＭＯＳからリードする。
（２０−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１３ｈ
・出力レジスタ
0003626258.tif 000029
（２１）Ｇｅｔ  Ｍｏｄｅｍ  Ｐｏｗｅｒ  Ｓｔａｔｕｓ
（２１−１）機能
モデムパワーステータスの設定をＣＭＯＳからリードする。
（２１−２）入出力ジレスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１４ｈ
・出力レジスタ
0003626258.tif 000030
（２１−３）機能詳細
本サブファンクションは、内部モデムパワーの設定（ＯＮ／ＯＦＦ）を返す。内部モデムがインストールされていないときは、ＣＦ＝１とＡＨ＝８Ｅｈを返す。（２１．１）Ｇｅｔ  ＬＣＤ  Ｂｒｉｇｈｔｎｅｓｓ  Ｓｔａｔｕｓ
（２１．１−１）機能
ＬＣＤ輝度の設定をＣＭＯＳからリードする。
（２１．１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１５ｈ
・出力レジスタ
0003626258.tif 000031
（２１．１−３）機能詳細
ＳＥＴＵＰで本項目が“ＢＡＴＴＥＲＹ  ＳＡＶＥ  ＯＰＴＩＯＮＳ”内にあるシステムで、本ファンクションにより設定値を読み出す際は、ＢａｔｔｅｒｙＳａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ以外の時の設定はＣＭＯＳからリードせず、それぞれの固定の設定値を返すようにする（ＣＭＯＳにはＢａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ時の設定値しか格納されていないため）。
（２２）Ｇｅｔ  Ｐｏｐｕｐ  Ｗｉｎｄｏｗ  Ｍｏｄｅ
（２２−１）機能
ポップアップの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）をＣＭＯＳからリードする。
（２２−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１６ｈ
・出力レジスタ
0003626258.tif 000032
（２３）Ｇｅｔ  Ｈｏｔｋｅｙ  Ｍｏｄｅ
（２３−１）機能
ホットキーの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）をＣＭＯＳからリードする。
（２３−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１Ａｈ
・出力レジスタ
0003626258.tif 000033
（２４）Ｇｅｔ  Ｍａｘ．ＬＣＤ  Ｂｒｉｇｈｔｎｅｓｓ  Ｓｔａｔｕｓ
（２４−１）機能
ＬＣＤの輝度設定をＣＭＯＳからリードする。
（２４−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１Ｂｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００１ｈ：Ｇｒａｄｕａｌデータタイプ
ＣＸ＝現在設定されているレベル
ＤＸ＝設定可能なレベル
ＳＩ＝デフォルト値
ＣＦ＝０
0003626258.tif 000034
（２４−３）機能詳細
本ファンクションについて、例えばシステムがＨｉｇｈ／Ｌｏｗをサポートする場合、レベルの割り当ては以下のようになり、またＤＸ＝０００１ｈが返される。
【０１２３】
0003626258.tif 000035
また、ＳＥＴＵＰで本項目が“ＢＡＴＴＥＲＹ  ＳＡＶＥ  ＯＰＴＩＯＮＳ”内にあるシステムで、本ファンクションにより設定値を読み出す際は、Ｂａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ以外の時の設定はＣＭＯＳからリードせず、それぞれの固定の設定値を返すようにする（ＣＭＯＳにはＢａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ時の設定値しか格納されていないため）。
（２４．１）Ｇｅｔ  ＤＡＣ  Ｄｉｇｉｔａｌ  Ｏｕｔｐｕｔ  Ｓｔａｔｕｓ
（２４．１−１）機能
ＤＡＣのデジタル出力の設定をスペシャルレジスタからリードする。
（２４．１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝００１１Ｃｈ
・出力レジスタ
0003626258.tif 000036
（２４．１−３）機能詳細
本サブファンクションは、ＤＡＣのデジタル出力の設定（ＯＮ／ＯＦＦ）を返す。
（２４．２）Ｇｅｔ  Ｂｏｏｔ  Ｐｒｉｏｒｉｔｙ
（２４．２−１）機能
ブートの優先度の設定をＣＭＯＳからリードする。
（２４．２−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１Ｄｈ
・出力レジスタ
0003626258.tif 000037
（２４．３）Ｇｅｔ  Ｒｅｍａｉｎｉｎｇ  Ｂａｔｔｅｒｙ  Ｐｏｗｅｒ  ａｓ
Ｐｅｒｃｅｎｔａｇｅ（２ｎｄ）
（２４．３−１）機能
２ｎｄバッテリーの残量（パーセンテージ）をリードする。
（２４．３−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１Ｅｈ
・出力レジスタ
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００１ｈ：Ｇｒａｄｕａｌデータタイプ
ＣＸ＝現在のバッテリー残量または０ＦＦＦＦｈ不明
ＤＸ＝最大レベル
ＳＩ＝デフォルト値
ＣＦ＝０
0003626258.tif 000038
（２４．３−３）機能詳細
本サブファンクションは、２ｎｄバッテリーの残りのバッテリー容量をパーセンテージで表す。システムが残量を読み取れなければ、ＣＸ＝０ＦＦＦＦｈを返す。
（２４．４）Ｇｅｔ  Ｃａｃｈｅ  Ｗｒｉｔｅ  Ｐｏｌｉｃｙ
（２４．４−１）機能
ＣＰＵキャッシュの書き込み手段の設定をＣＭＯＳからリードする。
（２４．４−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１１Ｆｈ
・出力レジスタ
0003626258.tif 000039
（２４．４−３）機能詳細
本ファンクション実行時は、キャッシュの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）に関わらず、現在のＣＭＯＳの設定値を返すものとする。
（２４．５）Ｇｅｔ  Ｅｊｅｃｔ  Ｐａｓｓｗｏｒｄ  Ｍｏｄｅ
（２４．５−１）機能
Ｅｊｅｃｔ−ＳＷを押した時のパスワードチェックの設定をリードする。
（２４．５−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１２０ｈ
・出力レジスタ
0003626258.tif 000040
（２４．５−３）機能詳細
本ファンクションにより、Ｅｊｅｃｔパスワードチェックの設定をＳＭ−ＲＡＭからリードする。
【０１２４】
本ファンクション実行時に、パスワードが登録されていなかった場合は８Ｅｈエラーを返すものとする。
（２４．６）Ｇｅｔ  Ｒｉｎｇ  Ｉｎｄｉｃａｔｏｒ  Ｍｏｄｅ
（２４．６−１）機能
モデムおよびシリアルポートからのＲＩ信号によるオートパワーオンの設定をＣＭＯＳからリードする。
（２４．６−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１２１ｈ
・出力レジスタ
0003626258.tif 000041
（２４．７）Ｇｅｔ  Ｃｏｏｌｉｎｇ  Ｍｅｔｈｏｄ
（２４．７−１）機能
ＣＰＵ熱対策のモードの設定をＣＭＯＳからリードする。
（２４．７−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０１２２ｈ
・出力レジスタ
0003626258.tif 000042
（２４．７−３）機能詳細
ＳＥＴＵＰで本項目が“ＢＡＴＴＥＲＹ  ＳＡＶＥ  ＯＰＴＩＯＮＳ”内にあるシステムで、本ファンクションにより設定値を読み出す際は、ＢａｔｔｅｒｙＳａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ以外の時の設定はＣＭＯＳからリードせず、それぞれの固定の設定値を返すようにする（ＣＭＯＳにはＢａｔｔｅｒｙ  Ｓａｖｅ  Ｍｏｄｅ＝Ｕｓｅｒ  Ｓｅｔｔｉｎｇ時の設定値しか格納されていないため）。
（２５）Ｇｅｔ  Ｈａｒｄ  ＲＡＭ  Ｓｉｚｅ
（２５−１）機能
ハードＲＡＭの現在設定されているサイズの設定をＣＭＯＳからリードする。
（２５−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０２００ｈ
ＣＸ＝００００ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００３ｈ：Ｄｉｓｃｒｅｔｅデータタイプ
ＣＸ＝現在設定されているサイズ
ＤＸ＝インデックスの最大値
ＳＩ＝デフォルト値
ＣＦ＝０
0003626258.tif 000043
（２５−３）機能詳細
本サブファンクションは、ハードＲＡＭのサイズをＫＢｙｔｅ単位で返す。例えば、０ＫＢ，５１２ＫＢ，１０２４ＫＢが設定可能なサイズで、１０２４ＫＢに設定すれば、ＤＸ＝０００３ｈ，ＣＸ＝０４００ｈを返す。
【０１２５】
ユーザは、“インデックス”を使用することにより、全ての使用可能なモードを得ることができる。
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０２００ｈ
ＣＸ＝インデックス（１…設定可能な値）
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８００３ｈ：Ｄｉｓｃｒｅｔｅデータタイプ
ＣＸ＝インデックスにより列挙される値
ＤＸ＝インデックスの最大値
ＳＩ＝ハードＲＡＭサイズのデフォルト値
ＣＦ＝０
0003626258.tif 000044
（２６）Ｇｅｔ  Ｓｈａｄｏｗ  ＲＡＭ  Ｍｏｄｅ
（２６−１）機能
Ｓｈａｄｏｗ  ＲＡＭの設定（Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅ）をＣＭＯＳからリードする。
（２６−２）入出力レジスタ
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０２０１ｈ
・出力レジスタ
0003626258.tif 000045
（２６−３）機能詳細
Ｓｈａｄｏｗ  ＲＡＭが常にＥｎａｂｌｅに固定されているマシンでは、ＣＸ、ＳＩには常に０００１ｈが返される。
【０１２６】
またＤＸにＳｈａｄｏｗ  ＲＡＭ容量が返される。
（２６．１）Ｇｅｔ  Ｅｘｔｅｎｄ  Ｍｅｍｏｒｙ  Ｓｅｔｕｐ  Ｍｏｄｅ
（２６．１−１）機能
外部オプションＲＯＭの設定（ＲＯＭ／ＲＡＭコピー制御およびキャッシュ制御）をＣＭＯＳからリードする。
（２６．１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０２０２ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００７ｈ：Ｅｘｔｅｎｄ  Ｍｅｍｏｒｙ  Ｓｅｔｕｐデータタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000046
（２６．１−３）機能詳細
本ファンクションは、外部オプションカードの有無に関わらず、ＣＭＯＳの設定を返すものとする。
（２７）Ｇｅｔ  Ｄｉｓｐｌａｙ  Ｄｅｖｉｃｅ  Ｍｏｄｅ
（２７−１）機能
内部ディスプレイの設定をＣＭＯＳからリードする。
（２７−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０３００ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８２００ｈ：Ｄｉｓｐｌａｙ  Ｓｐｅｃｉｆｉｃデータタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000047
（２７．１）Ｇｅｔ  Ｃｕｒｒｅｎｔ  Ｄｉｓｐｌａｙ  Ｄｅｖｉｃｅ  Ｍｏｄｅ
（２７．１−１）機能
内部ディスプレイのカレントセッティングをリードする。
（２７．１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝８３００ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８２００ｈ：Ｄｉｓｐｌａｙ  Ｓｐｅｃｉｆｉｃデータタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000048
（２７．１−３）機能詳細
本ファンクションは、ディスプレイモードの設定について、変更と同時にＣＭＯＳ内の設定情報を書き換えない（そのため、カレントセッティングとＣＭＯＳの値が異なる）システムにのみ使用される。本ファンクション実行時に得られるＣＸ、ＤＸ、ＳＩ各レジスタの値は、ビット１４〜１１のみ意味を持ち、その他のビットには０が返される。
（２８）Ｇｅｔ  Ｃｏｌｏｒ  Ｅｍｕｌａｔｉｏｎ  Ｍｏｄｅ
（２８−１）機能
内部ディスプレイの設定をＣＭＯＳからリードする。
（２８−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０３０１ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８２０１ｈ：Ｄｉｓｐｌａｙ  Ｓｐｅｃｉｆｉｃ（２）データタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000049
（２８−３）機能詳細
本サブファンクションは、内部ディスプレイの設定を返す。ただし、ディスプレイがモノクロＬＣＤの場合は、サポートされない（８Ｅｈエラーが返される）。  例えば、ＬＣＤ表示色として、５１２色／２４Ｋ色／１８０Ｋ色をサポートするシステムでは、Ｄｉｓｐｌａｙ  Ｓｐｅｓｉｆｉｃ（２）データタイプへの割り当ては、以下のようになる。
【０１２７】
Ｂｉｔ０…５１２色
Ｂｉｔ１…２４Ｋ色
Ｂｉｔ２…１８０Ｋ色
またＤＸは以下のように返される。
【０１２８】
0003626258.tif 000050
“１８０Ｋ”ｃｏｌｏｒ  ｍｏｄｅに設定されていれば、ＣＸレジスタの各ビットは、以下のように返される。
【０１２９】
0003626258.tif 000051
また、ＳＩは以下のように返される。
【０１３０】
0003626258.tif 000052
ハードウェア的に２４Ｋ  ｃｏｌｏｒ  ｍｏｄｅに固定されているシステムは、ＣＸ、ＤＸおよびＳＩレジスタには以下のように返される。
【０１３１】
0003626258.tif 000053
その他、システムがＬＣＤ表示色として、（ａ）５１２色／２４Ｋ色／１８０Ｋ色／２５６Ｋ色、（ｂ）４０９６色／２２６Ｋ色をサポートする場合、Ｄｉｓｐｌａｙ  Ｓｐｅｃｉｆｉｃ（２）データタイプへの割り当ては、それぞれ以下のようになる。
【０１３２】
0003626258.tif 000054
出力ＤＸは上記（ａ）の場合０００Ｆｈ、（ｂ）の場合０００３ｈとなる。
【０１３３】
また、ＬＣＤ表示色が固定の場合は、Ｂｉｔ０にその固定色を割り当てる。この場合の出力ＤＸ＝０００１ｈとなる。
（２９）Ｇｅｔ  Ｄｉｓｐｌａｙ  Ｎｏｒｍａｌ／Ｒｅｖｅｒｓｅ  Ｍｏｄｅ
（２９−１）機能
ディスプレイモードの設定（Ｎｏｒｍａｌ／Ｒｅｖｅｒｓｅ）をＣＭＯＳからリードする。
（２９−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０３０３ｈ
・出力レジスタ
0003626258.tif 000055
（２９−３）機能詳細
本サブファンクションは、ディスプレイがカラーＬＣＤの場合はサポートされない（８Ｅｈエラーを返す。）
（３０）Ｇｅｔ  Ｄｉｓｐｌａｙ  Ｃｏｎｔｒａｓｔ
（３０−１）機能
ディスプレイコントラストの設定をリードする。
（３０−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０３０４ｈ
・出力レジスタ
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００１ｈ：Ｇｒａｄｕａ１データタイプ
ＣＸ＝現在設定されているレベル
ＤＸ＝設定可能な最大レベル
ＳＩ＝レベルのデフォルト値
ＣＦ＝０
0003626258.tif 000056
（３０−３）機能詳細
本サブファンクションは、ＣＸレジスタに指定された整数値（レベル）でディスプレイコントラストを返す。最小レベルは０で、最大レベルはシステムにより、値はＤＸレジスタに返す。
（３１）Ｇｅｔ  Ｄｉｓｐｌａｙ  Ｂｒｉｇｈｔｎｅｓｓ
（３１−１）機能
ディスプレイ輝度の設定をリードする。
（３１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０３０５ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８００１ｈ：Ｇｒａｄｕａ１データタイプ
ＣＸ＝現在設定されているレベル
ＤＸ＝設定可能な最大レベル
ＳＩ＝レベルのデフォルト値
ＣＦ＝０
0003626258.tif 000057
（３１−３）機能詳細
本サブファンクションは、ＣＸレジスタに指定された整数値（レベル）でディスプレイ輝度を返す。最小レベルは０で、最大レベルはＦＦであり、ＤＸ＝００ＦＦｈが返される。
【０１３４】
Ｄｉｓｐｌａｙ  Ａｕｔｏ  ＯＦＦ  ＭｏｄｅがＡｌｗａｙｓ  ＯＦＦに設定されている場合は、ＡＬ＝０２ｈ、ＣＸ＝００００ｈが返される。
（３１．１）Ｇｅｔ  Ｓｃａｎ  Ｍｏｄｅ
（３１．１−１）機能
Ｓｃａｎ  Ｍｏｄｅの設定をＣＭＯＳからリードする。
（３１．１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０３０６ｈ
・出力レジスタ
0003626258.tif 000058
（３１．２）Ｇｅｔ  ＤＰＭＳ  Ｓｔａｔｕｓ
（３１．２−１）機能
ＤＰＭＳ（Ｄｉｓｐｌａｙ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｓｉｇｎａｌｉｎｇ）の設定をＣＭＯＳからリードする。
（３１．２−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０３０７ｈ
・出力レジスタ
0003626258.tif 000059
（３１．３）Ｇｅｔ  Ｔａｌｌ  Ｆｏｎｔ  Ｍｏｄｅ
（３１．３−１）機能
Ｔａｌｌ  Ｆｏｎｔの設定をＣＭＯＳからリードする。
（３１．３−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０３０８ｈ
・出力レジスタ
0003626258.tif 000060
（３１．４）Ｇｅｔ  ＶＧＡ  Ｓｅｇｍｅｎｔ  Ａｄｄｒｅｓｓ
（３１．４−１）機能
ＶＧＡ  ＢＩＯＳセグメントアドレスの設定をＣＭＯＳからリードする。
（３１．４−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０３０９ｈ
・出力レジスタ
0003626258.tif 000061
（３２）Ｇｅｔ  ＨＤＤ  （＃０）  Ｔｙｐｅ
（３２−１）機能
ＨＤＤ（＃０）の設定をＣＭＯＳからリードする。
（３２−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０４００ｈ
・出力レジスタ
0003626258.tif 000062
（３２−３）機能詳細
本サブファンクションは、ＨＤＤ（＃０）の設定（Ｄｉｓａｂｌｅ／ＥｎａｂｌｅとＨＤＤのサイズ：ＭＢｙｔｅ）を返す。ＳＨ４／１が１２０ＭＢのハードディスクをサポートし、現在Ｅｎａｂｌｅであれば、ＤＸ＝００７８ｈ，ＣＸ＝０００１ｈを返す。
（３３）Ｇｅｔ  ＨＤＤ  ＃１  Ｔｙｐｅ
（３３−１）機能
ＨＤＤ  ＃１の設定をＣＭＯＳからリードする。
（３３−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０４０１ｈ
0003626258.tif 000063
（３３−３）機能詳細
本サブファンクションは、ＨＤＤ＃１の設定（Ｄｉｓａｂｌｅ／ＥｎａｂｌｅとＨＤＤのサイズ：ＭＢｙｔｅ）を返す。ＮＹが２００ＭＢのハードディスクをサポートし、現在Ｅｎａｂｌｅであれば、ＤＸ＝００Ｃ８ｈ，ＣＸ＝０００１ｈを返す。
（３３．１）Ｇｅｔ  Ｍａｘ．ＨＤＤ  Ｎｕｍｂｅｒ
（３３．１−１）機能
接続されるＨＤＤの台数をＣＭＯＳからリードする。
（３３．１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０４０２ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８００１ｈ：Ｇｒａｄｕａｌデータタイプ
ＣＸ＝現在設定されているレベル
ＤＸ＝設定可能な最大レベル
ＳＩ＝レベルのデフォルト値
ＣＦ＝０
0003626258.tif 000064
（３３．１−３）機能詳細
本ファンクションは、現在接続されているＨＤＤの台数の設定をリードする。下表に最大レベル数と各ＨＤＤ台数が割り当てられるレベルを示す。
【０１３５】
0003626258.tif 000065
（３３．２）Ｇｅｔ  Ｎｏ．２  ＦＤ  Ｄｒｉｖｅ
（３３．２−１）機能
２台目のフロッピーディスクドライブのタイプをＣＭＯＳからリードする。
（３３．２−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０４１１ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８４００ｈ：ＦＤＤ  Ｓｐｅｃｉｆｉｃデータタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000066
（３３．２−３）機能詳細
本ファンクションは、ＦＤＤ２連モデルの場合に２台目のドライブタイプをＣＭＯＳからリードする。ＦＤＤ１連モデルの場合は８０ｈエラーを返す。
（３３．３）Ｇｅｔ  Ｅｘｔｅｒｎａｌ  ＨＤＤ  Ｍｏｄｅ
（３３．３−１）機能
Ｅｘｔｅｒｎａｌ  ＨＤＤの設定をＣＭＯＳからリードする。
（３３．３−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０４０３ｈ
・出力レジスタ
0003626258.tif 000067
（３３．４）Ｇｅｔ  ＨＤＤ  Ｍｏｄｅ
（３３．４−１）機能
ＨＤＤ  Ｍｏｄｅの設定をＣＭＯＳからリードする。
（３３．４−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０４０４ｈ
・出力レジスタ
0003626258.tif 000068
（３４）Ｇｅｔ  Ｓｅｒｉａｌ  Ｐｏｒｔ  Ｍｏｄｅ
（３４−１）機能
シリアルポートの設定をＣＭＯＳからリードする。
（３４−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０５００ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８１００ｈ：Ｉ／Ｏ  Ｓｐｅｃｉｆｉｃ  データタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000069
（３５）Ｇｅｔ  Ｐａｒａｌｌｅｌ  Ｐｏｒｔ  Ｍｏｄｅ
（３５−１）機能
パラレルポートの設定をＣＭＯＳからリードする。
（３５−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０５０１ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８１０１ｈ：Ｉ／Ｏ  Ｓｐｅｃｉｆｉｃ（２）データタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000070
（３５−３）機能詳細
本サブファンクションは、パラレルポートの設定を返す。ＤＸは次のように返される。
【０１３６】
0003626258.tif 000071
ＦＤＤ／ＰＲＴポートがＦＤＤ  Ａに割り当てられていれば、ＣＸレジスタの各ビットは、次のように返される。
【０１３７】
0003626258.tif 000072
ＳＩレジスタの各ビットは、以下のように返される。
【０１３８】
0003626258.tif 000073
ＤＸは次のように返されるマシンもある。
【０１３９】
0003626258.tif 000074
ＦＤＤ／ＰＲＴポートがＦＤＤ  Ａに割り当てられていれば、ＣＸレジスタの各ビットは、次のように返される。
【０１４０】
0003626258.tif 000075
ＳＩレジスタの各ビットは、以下のように返される。
【０１４１】
0003626258.tif 000076
内部／デスクステーションのパラレルポートが設定出来るマシンについては、デスクステーション接続時に本ファンクションを実行した場合でも、現在のＣＭＯＳの設定値がリードされる。
【０１４２】
また、例えば本ファンクション実行時の出力ＤＸは以下の通りとなる。但しパラレルポートの設定をＰｎＰ機能を用いて行う場合、本ファンクションではパラレルポートのモードの設定のみ行う。（下記Ｂｉｔ６、４のみ使用する、出力ＤＸは下記のＢｉｔ３〜０が０となる。）
0003626258.tif 000077
この場合、Ｐａｒａｌｌｅｌ  Ｐｏｒｔの設定が“Ｎｏｔ  Ｕｓｅｄ”であっても、Ｐａｒａｌｌｅｌ  Ｐｏｒｔ  Ｍｏｄｅ（Ｏｕｔｐｕｔ／Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ）の設定値はＣＭＯＳからリードすること。
（３６）Ｇｅｔ  Ｋｅｙｂｏａｒｄ  Ｔｙｐｅ
（３６−１）機能
キーボードの設定をＣＭＯＳからリードする。
（３６−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０５０２ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８３００ｈ：Ｋｅｙｂｏａｒｄ  Ｓｐｅｃｉｆｉｃデータタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000078
（３６−３）機能詳細
本ファンクションは、キーボードの設定を返す。
【０１４３】
設定可能なモード（ＤＸ）は、下表のようになる。
【０１４４】
0003626258.tif 000079
キーボードが１０１キーコンパチで、Ｆｎキーの代替えキーが、［ＬｅｆｔＣｔｒｌ］＋［Ｌｅｆｔ  Ａｌｔ］であるとき、ＣＸレジスタの各ビットは、以下のように返される。
【０１４５】
0003626258.tif 000080
また、ＳＩは以下のように返される。
【０１４６】
0003626258.tif 000081
（３７）Ｇｅｔ  ＰＣＭＣＩＡ  Ｓｌｏｔ  Ｍｏｄｅ
（３７−１）機能
ＰＣＭＣＩＡスロットの設定をＣＭＯＳからリードする。
（３７−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０５０３ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８１０２ｈ：ＰＣＭＣＩＡデータタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝デフォルト値
ＣＦ＝０
0003626258.tif 000082
（３７−３）機能詳細
本サブファンクションは、ＰＣＭＣＩＡスロットの設定を返す。１スロットの場合は、ＤＸは以下のようになる。
【０１４７】
0003626258.tif 000083
また、２スロットの場合のＤＸは以下のようになる。
【０１４８】
0003626258.tif 000084
（３８）Ｇｅｔ  Ｋｅｙｂｏａｒｄ  Ｂｉｔｍａｐ  Ｉｎｉｔｉａｌ  Ｓｔａｔｅ
（３８−１）機能
パワーＯＮ時のＫｅｙｂｏａｒｄの状態をＣＭＯＳからリードする。
（３８−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０５０４ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８３０１ｈ：ＫｅｙＢｏａｒｄ  Ｂｉｔｍａｐデータタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000085
（３８−３）機能詳細
本サブファンクションは、パワーＯＮ時のキーボードの設定を返す。ＤＸレジスタの各ビットは以下のようになる。
【０１４９】
0003626258.tif 000086
ＳＩレジスタの各ビットは以下のようになる。
【０１５０】
0003626258.tif 000087
パワーＯＮ時のＮｕｍＬｏｃｋ状態がＯＦＦに設定されているとき、ＣＸレジスタは以下のようになる。
【０１５１】
0003626258.tif 000088
（３８．１）Ｇｅｔ  Ｐｏｉｎｔｉｎｇ  Ｓｔｉｃｋ  Ｍｏｄｅ
（３８．１−１）機能
ポインティング・スティックの設定をＣＭＯＳからリードする。
（３８．１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０５０５ｈ
・出力レジスタ
0003626258.tif 000089
（３８．２）Ｇｅｔ  ＤＳ  Ｐａｒａｌｌｅｌ  Ｐｏｒｔ  Ｍｏｄｅ
（３８．２−１）機能
デスクステーションのパラレルポートの設定をＣＭＯＳからリードする。
（３８．２−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０５０６ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＢＸ＝８１０１ｈ：Ｉ／Ｏ  Ｓｐｅｃｉｆｉｃ（２）データタイプ
ＣＸ＝現在設定されているモード
ＤＸ＝設定可能なモード
ＳＩ＝モードのデフォルト値
ＣＦ＝０
0003626258.tif 000090
（３８．２−３）機能詳細
デスクステーションをサポートするが内部／デスクステーションでパラレルポートタイプが同じマシンの場合は、本ファンクションはサポートせず、Ｐａｒａｌｌｅｌ  Ｐｏｒｔ  Ｍｏｄｅにて共通にパラレルポートモードのリードを行う。  ＤＳ  Ｐａｒａｌｌｅｌ  Ｐｏｒｔがアドレス３７８ｈ固定であり、またＯｕｔｐｕｔ／Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌに設定でき、ＤＳ  Ｐａｒａｌｌｅｌ  Ｐｏｒｔ＝Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌに設定する場合には、ＤＳ  Ｐａｒａｌｌｅｌ  ＰｏｒｔがＥＣＰ  Ｈ／Ｗ機能を持たなければ、ＣＸレジスタは以下のように返される。またこの場合、ＤＸ＝００３２ｈが返される。
0003626258.tif 000091
内部／デスクステーションのパラレルポートが設定出来るマシンについては、デスクステーション未接続時に本ファンクションを実行した場合でも、現在のＣＭＯＳの設定値をリードすること。
（３８．３）Ｇｅｔ  Ｉｎｔ．Ｋｅｙｂｏａｒｄ  Ｋｅｙ  Ｌａｙｏｕｔ
（３８．３−１）機能
３キー入れ替えの設定をＣＭＯＳからリードする。
（３８．３−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０５０７ｈ
・出力レジスタ
0003626258.tif 000092
（３８．４）Ｇｅｔ  Ｉｎｆｒａｒｅｄ  Ｍｏｄｅ
（３８．４−１）機能
赤外線通信の通信方法の設定をＣＭＯＳからリードする。
（３８．４−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０５０８ｈ
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝００ｈ
ＢＸ＝８１０２ｈ：Ｉ／Ｏ  Ｓｐｅｃｉｆｉｃ（３）データタイプ
ＣＸ＝設定値
ＤＸ＝設定可能な値
ＳＩ＝デフォルト値
ＣＦ＝０
0003626258.tif 000093
（３８．４−３）機能詳細
本ファンクションは、赤外線通信方式の設定をリードするためのものである。例えば、システムが赤外線通信方式としてＩｒＤＡ（ＳＩＲ）／ＤＡＳＫをサポートし、現在ＩｒＤＡ（ＳＩＲ）が選択されている場合は、ＣＸレジスタは以下のように返される。また、この場合出力ＤＸ＝０００３ｈとなる。
【０１５２】
0003626258.tif 000094
本ファンクションを実行した時は、Ｉｎｆｒａｒｅｄ  Ｐｏｒｔの設定（ＣＯＭ１〜４、ＮｏｔＵｓｅｄ）に関わらず赤外線通信方式の設定が返される。
（３９）Ｇｅｔ  ＳＣＳＩ  Ｍｏｄｅ
（３９−１）機能
ＳＣＳＩの設定をＣＭＯＳからリードする。
（３９−２）入出力レジスタ仕様
0003626258.tif 000095
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＣＦ＝０
ａ）の場合
ＢＸ＝８５０１ｈ：Ｈ／Ｗ  Ｒｅｓｏｕｒｃｅ  Ｓｐｅｃｉｆｉｃ  データタイプ
ＣＸ＝現在設定されている設定値番号
ＤＸ＝設定可能な設定値の個数（設定値番号の最大値）
ＳＩ＝デフォルト値（設定値番号）
ｂ）の場合
ＢＸ＝８００３ｈ：Ｄｉｓｃｒｅｔｅ  データタイプ
ＣＸ＝各設定値番号に対する設定値
0003626258.tif 000096
（３９−３）機能詳細
本ファンクションでは、入力するＣＸレジスタの値により、出力ＣＸレジスタ値の持つ意味が異なる。例えば、システムがＳＣＳＩについて下記の設定をサポートする。
【０１５３】
・ＳＣＳＩ＝Ｅｎａｂｌｅｄ／Ｄｉｓａｂｌｅｄ
・割り込みレベル＝ＩＲＱ１１／１０／９／Ｄｉｓａｂｌｅｄ
他はなし
更にこの設定を、Ｈ／Ｗ  Ｒｅｓｏｕｒｃｅ  Ｓｐｅｃｉｆｉｃデータタイプ中に下記のように割り当てるとする。
【０１５４】
・Ｂｉｔ１５〜１２：割り込みレベル
０００１Ｂ：（設定値番号＝１）：Ｄｉｓａｂｌｅｄ
００１０Ｂ：（設定値番号＝２）：ＩＲＱ９
００１１Ｂ：（設定値番号＝３）：ＩＲＱ１０
０１００Ｂ：（設定値番号＝４）：ＩＲＱ１１
０１０１Ｂ〜１１１１Ｂ：Ｎｏｔ  Ｕｓｅｄ
・Ｂｉｔ１１〜１：Ｎｏｔ  Ｓｕｐｐｏｒｔ（＝０）
この場合に、例えば現在の設定がＳＣＳＩ＝Ｅｎａｂｌｅｄ、割り込みレベル＝ＩＲＱ１０であれば、
ａ）ＣＸ＝００００ｈの場合、現在の設定値が設定値番号により返される（出力ＣＸ＝３００１ｈ）。また、ＤＸには設定可能な設定値の個数（設定値番号の最大値）が返される（出力ＤＸ＝４００１ｈ）。サポートしない機能については、設定可能な設定値番号の個数＝０が返される。ＳＣＳＩ＝Ｅｎａｂｌｅｄ／Ｄｉｓａｂｌｅの設定をサポートするか否かは、出力ＤＸのＢｉｔ０により判別する。（Ｂｉｔ０＝１ならサポート、Ｂｉｔ０＝０なら未サポート）
ｂ）ＣＸ＝０００１ｈの場合、ＤＨに機能番号、ＤＬに設定値番号を入力することにより、各設定値番号に割り当てられている設定値が返される。上記の場合、入力ＤＨは００ｈ、ＤＬは０１ｈ〜０４ｈのみ有効、例えば入力ＤＨ＝００ｈ、入力ＤＬ＝０３ｈとすれば、出力ＣＸ＝０００Ａｈが返される。また、入力ＤＬ＝０１ｈとした場合は、出力ＣＸには、Ｄｉｓａｂｌｅｄを示す値としてＦＦＦＦｈが返される（他の機能でも同様）。この場合、入力データにサポートされていない値が入れられた場合は、８３ｈエラーを返す。
【０１５５】
各設定値番号に対する設定値の割り当ては、システムにより異なる。
（４０）Ｇｅｔ  Ｓｏｕｎｄ  Ｓｙｓｔｅｍ  Ｍｏｄｅ
（４０−１）機能
サウンドシステムの設定をＣＭＯＳからリードする。
（４０−２）入出力レジスタ仕様
0003626258.tif 000097
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＡＬ＝０１ｈ
ＣＦ＝０
ａ）の場合
ＢＸ＝８５０１ｈ：Ｈ／Ｗ  Ｒｅｓｏｕｒｃｅ  Ｓｐｅｃｉｆｉｃ  データタイプ
ＣＸ＝現在設定されている設定値番号
ＤＸ＝設定可能な設定値番号の個数（＝設定値番号の最大値）
ＳＩ＝デフォルト値（設定値番号）
ｂ）の場合
ＢＸ＝８００３ｈ：Ｄｉｓｃｒｅｔｅ  データタイプ
ＣＸ＝各設定値番号に対する設定値
0003626258.tif 000098
（４０−３）機能詳細
本ファンクションでは、入力するＣＸレジスタの値により、出力ＣＸレジスタ値の持つ意味が異なる。例えば、システムがサウンドシステムについて下記の設定をサポートするとする。
【０１５６】
・サウンドシステム＝Ｅｎａｂｌｅｄ／Ｄｉｓａｂｌｅｄ
・Ｉ／Ｏベースアドレス＝０２２０ｈ／０２３０ｈ／０２４０ｈ／０２５０ｈ
・割り込みレベル＝ＩＲＱ５／７／９／１１
・ＤＭＡ＝Ｃｈａｎｎｅｌ  ０／Ｃｈａｎｎｅｌ  １
更にこの設定を、Ｈ／Ｗ  Ｒｅｓｏｕｒｃｅ  Ｓｐｅｃｉｆｉｃデータタイプ中に下記のように割り当てるとする。
【０１５７】
・Ｂｉｔ１５〜１２：割り込みレベル
０００１Ｂ：（設定値番号＝１）：ＩＲＱ５
００１０Ｂ：（設定値番号＝２）：ＩＲＱ７
００１１Ｂ：（設定値番号＝３）：ＩＲＱ９
０１００Ｂ：（設定値番号＝４）：ＩＲＱ１１
０１０１Ｂ〜１１１１Ｂ：Ｎｏｔ  Ｕｓｅｄ
・Ｂｉｔ７〜４：Ｉ／Ｏベースアドレス
０００１Ｂ：（設定値番号＝１）：０２２０ｈ
００１０Ｂ：（設定値番号＝２）：０２３０ｈ
００１１Ｂ：（設定値番号＝３）：０２４０ｈ
０１００Ｂ：（設定値番号＝４）：０２５０ｈ
０１０１Ｂ〜１１１１Ｂ：Ｎｏｔ  Ｕｓｅｄ
・Ｂｉｔ３〜１：ＤＭＡの設定
００１Ｂ：（設定値番号＝１）：Ｃｈａｎｎｅｌ  ０
０１０Ｂ：（設定値番号＝２）：Ｃｈａｎｎｅｌ  １
０１１Ｂ〜１１１Ｂ：Ｎｏｔ  Ｕｓｅｄ
・Ｂｉｔ１１〜８：Ｎｏｔ  Ｓｕｐｐｏｒｔ（＝０）
この場合に、例えば現在の設定がサウンド＝Ｅｎａｂｌｅｄ、割り込みレベル＝ＩＲＱ９，Ｉ／Ｏベースアドレス＝０２５０ｈ、ＤＭＡ＝Ｃｈａｎｎｅｌ  １であれば、
ａ）ＣＸ＝００００ｈの場合、出力ＣＸには現在の設定値が設定値番号により返される（出力ＣＸ＝３０４５ｈ）。また、出力ＤＸには設定可能な設定値の個数（設定値番号の最大値）が返される（出力ＣＸ＝４０４５ｈ）。サポートしない機能については、設定可能な設定値番号の個数＝０が返される。ＳｏｕｎｄＳｙｓｔｅｍ＝Ｅｎａｂｌｅ／Ｄｉｓａｂｌｅの設定をサポートするか否かは、出力ＤＸのＢｉｔ０により判別する。（Ｂｉｔ０＝１ならサポート、Ｂｉｔ０＝０なら未サポート）
ｃ）ＣＸ＝０００１ｈの場合、ＤＨに機能番号、ＤＬに設定値番号を入力することにより、各設定値番号に割り当てられている設定値が返される。上記の場合、入力ＤＨは００ｈ、０２ｈ、０３ｈのみ有効で、例えば入力ＤＨ＝０２ｈ、入力ＤＬ＝０３ｈとすれば、出力ＣＸ＝０２４０ｈが返される。この場合、入力データにサポートされていない値が入力された場合は、８３ｈエラーを返す。
【０１５８】
また、サウンドカードがインストールされていない場合は、８Ｅｈエラーを返す。
【０１５９】
各設定値番号に対する設定値の割り当ては、システムにより異なる。
（４１）Ｇｅｔ  Ｓｏｕｎｄ  Ｓｙｓｔｅｍ  Ｐｏｗｅｒ
（４１−１）機能
サウンドシステムのパワーの設定（Ｏｎ／Ｏｆｆ）をＣＭＯＳからリードする。（４１−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０５２１ｈ
・出力レジスタ
0003626258.tif 000099
（４１−３）機能詳細
本ファンクションは、サウンドシステムモードがＤｉｓａｂｌｅの場合は機能せず、８Ｅｈエラーが返される。
（４２）Ｇｅｔ  Ｐａｓｓｗｏｒｄ  Ｉｎｔｅｒｆａｃｅ  Ｍｏｄｅ
（４２−１）機能
パスワードインタフェースの設定をリードする。
（４２−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０６００ｈ
・出力レジスタ
0003626258.tif 000100
（４２−３）機能詳細
本ファンクションは、パスワード登録の有無に関わらず、パスワードインタフェースの設定をＳＭ−ＲＡＭからリードする。
（４３）Ｇｅｔ  Ｐａｓｓｗｏｒｄ  Ｃｈｅｃｋ  Ｒｅｑｕｅｓｔ  Ｆｌａｇ
（４３−１）機能
パスワードチェック要求フラグの設定をリードする。
（４３−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０６０１ｈ
・出力レジスタ
0003626258.tif 000101
（４３−３）機能詳細
本ファンクションは、パスワードチェック要求フラグの状態をＳＭ−ＲＡＭからリードする。パスワード要求フラグがセットされている場合、アプリはパスワードチェックを行い、チェック終了時にパスワード要求フラグをリセットする。パスワードが登録されていない場合は、８Ｅｈエラーを返すものとする。
（４４）Ｇｅｔ  Ｐａｓｓｗｏｒｄ
（４４−１）機能
パスワード（ユーザパスワード／スーパーバイザパスワード）が登録されているか否かをチェックする。
（４４−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０６０２ｈ
ＣＸ＝パスワード種類
００００ｈ：ユーザパスワード
０００１ｈ：スーパーバイザパスワード
・出力レジスタ
0003626258.tif 000102
（４４−３）機能詳細
本ファンクションは、ユーザパスワード／スーパーバイザパスワードが登録されているか否かを、ＳＭ−ＲＡＭのパスワードデータエリアをチェックすることにより判別する。
【０１６０】
パスワード有りの場合、パスワードのベリファイ、削除をあと何回実行可能  （失敗してもＨＬＴしない）か、ＳＭ−ＲＡＭのカウンタ値を出力する。この回数カウンタは、パスワードのベリファイ、削除ファンクションで共通に使用され、ブートモードまたはレジュームモードで電源ＯＮ時、およびベリファイ／削除成功時に初期値３に戻される。
（４５）Ｖｅｒｉｆｙ  Ｐａｓｓｗｏｒｄ
（４５−１）機能
パスワードのベリファイを行う。
（４５−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０６０３ｈ
ＥＤＸ＝パスワード（スキャンコード）の第１文字〜第４文字
ＥＳＩ＝パスワード（スキャンコード）の第５文字〜第８文字
ＤＩ＝パスワード（スキャンコード）の第９文字〜第１０文字
・出力レジスタ
（ａ）カウントパスワード無し（パワーオンパスワード処理中）の場合
0003626258.tif 000103
0003626258.tif 000104
（４５−３）機能詳細
ＢＩＯＳは、本ファンクションを使用してパワーオンパスワードのチェックを行い、一致したユーザパスワードまたはスーパーバイザパスワードをカレントパスワードとする。これ以後、パスワードのベリファイを行う場合（Ｅｊｅｃｔ時等）は、カレントパスワードまたはスーパーバイザパスワードと一致すればＯＫとなる。
【０１６１】
パスワードの文字数が１０文字未満の場合は、最終コードの後ろに“００ｈ”を付ける。例えば、パスワードが“１２３４”の場合、ＥＤＸ＝０２０３０４０５ｈ、ＥＳＩ＝００ｘｘｘｘｘｘｈを入力する（ｘｘｘｘｘｘは任意）。
【０１６２】
ベリファイまたは削除のリトライの可能回数カウンタ値が０で、本ファンクションによるベリファイが失敗した場合は、ＨＬＴする。また、ブートモードまたはレジュームモードで電源ＯＮ時およびベリファイ成功時に、ベリファイまたは削除のリトライ可能回数のカウンタを初期値を戻す。
【０１６３】
本ファンクションのＳｅｔファンクション（ＡＸ＝４４Ｆ４ｈ、ＢＸ＝０６０３ｈ）にあたるものは存在しない。
【０１６４】
また、本ファンクションは、パスワードが存在することを確認した上で実行される。
（４６）Ｇｅｔ  Ｐａｓｓｗｏｒｄ  Ｌｅｖｅｌ
（４６−１）機能
パスワードのレベルをリードする。
（４６−２）入出力レジスタ仕様
・入力レジスタ
ＡＸ＝４４Ｆ３ｈ
ＢＸ＝０６０４ｈ
・出力レジスタ
0003626258.tif 000105
（４６−３）機能詳細
本ファンクションは、２レベルのパスワードが登録された状態でのユーザパスワードのパスワードレベル（マシン使用上の制限の有無）をＳＭ−ＲＡＭのパスワード属性内のフラグからリードする。
【０１６５】
以上、システムコンフィグレーションゲットルーチンのサブファンクションについて説明したが、システムコンフィグレーションセットルーチンについても同様のサブファンクションコードの設定により多数のサブファンクションを実行できる。ここでは、システムコンフィグレーションセットルーチンのサブファンクションを代表して、Ｓｅｔ  Ｐｏｗｅｒ−ｕｐ  Ｍｏｄｅについてその機能と入出力レジスタ値の一例を説明する。
（４７）Ｓｅｔ  Ｐｏｗｅｒ−ｕｐ  Ｍｏｄｅ
（４７−１）機能
パワーアップモードの設定をＣＭＯＳにライトする。
（４７−２）入出力レジスタ仕様
0003626258.tif 000106
以上説明したように、この実施例においては、ＳＣＩがシステムＢＩＯＳの１部としてＢＩＯＳ  ＲＯＭ１４に格納されており、そのＳＣＩをＩＮＴ１５ｈのソフトウェア割り込みによって起動する事によってシステム構成情報の設定／変更を行うことができる。このため、オペレーティングシステムや、“Ｍａｘ  Ｔｉｍｅ”またはＢＩＯＳセットアップなどのセップアッププログラムは、ＣＭＯＳメモリ１６Ａを直接アクセスすることなく、ＳＣＩを呼び出すだけでシステム構成情報の変更などを行う事ができる。
【０１６６】
したがって、機能追加された新機種が開発されてシステム構成情報の内容に変化が生じたとしても、オペレーティングシステムやセップアッププログラムはシステム構成情報を直接アクセスするわけではないので、それらオペレーティングシステムやセップアッププログラムに修正を加える必要はない。よって、ハードウェア構成の変更に柔軟に対応することが可能となる。
【０１６７】
また、ＳＣＩには前述したような多数のサブファンクションが予め用意されているので、機種が代り、ハードウェア構成に変化が生じても、そのＳＣＩのサブファンクションでサポートされる範囲の変化であれば、ＳＣＩを変更せずにそのハードウェア構成の変化に対応する事ができる。したがって、ＳＣＩには、将来拡張される可能性のある機能に対応するサブファンクションなど、多数のサブファンクションを予め用意しておく事が望ましい。
【０１６８】
次に、このＳＣＩを拡張したＣＭＯＳアクセスのためのインタフェース（ＣＡＩ：ＣＭＯＳ  Ａｃｃｅｓｓ  Ｉｎｔｅｒｆａｃｅ）について説明する。
【０１６９】
ＣＡＩは上述したＳＣＩの１つのファンクションとしてＢＩＯＳ  ＲＯＭ１４に格納されており、システム構成情報に限らず、ＣＭＯＳメモリ１６Ａの他のデータに対するリード／ライトアクセスのために利用される。どのＣＭＯＳエリアをアクセスするかは、ＣＰＵ１１の入力レジスタにセットされるたインデックス値によって決定される。
【０１７０】
すなわち、ＣＭＯＳメモリ１６Ａは、ＣＰＵ１１のＩ／Ｏアドレス空間の一部に割り付けられた記憶エリアを含んでおり、それらはインデックス修飾によってアドレス指定される。従来、プロテクトモードで動作するＯＳ等を起動した場合、ポート７０ｈ，７１ｈを使用してインデックス４０ｈ以降のＣＭＯＳエリアを正しくリード／ライトすることができなかったが、ＣＡＩはこれを可能にする。ＣＡＩは、ＣＭＯＳデータをリードするＣＭＯＳリードファンクションと、ＣＭＯＳデータをライトするＣＭＯＳライトファンクションとを有している。
【０１７１】
以下、ＣＡＩを用いたＣＭＯＳアクセス動作について説明する。
【０１７２】
ＣＭＯＳデータをリードする場合：
この場合には、オペレーティングシステムや各種アプリケーションプログラムは、レジスタＡＸにファンクションコード（＝４４ＦＣｈ）をセットし、レジスタＢＸにＣＭＯＳのインデックスをセットした後、ＩＮＴ１５ｈのソフトウェア割り込み命令を実行する。
【０１７３】
これにより、ＣＡＩのＣＭＯＳリードファンクションルーチンが起動され、指定されたインデックス値が割り当てられているＣＭＯＳエリアからデータをリードする。ＣＭＯＳリードが正常に終了した場合、出力レジスタＣＬにはＣＭＯＳデータが戻り値としてセットされる。
【０１７４】
ＣＭＯＳデータをライトする場合：
この場合には、オペレーティングシステムや各種アプリケーションプログラムは、レジスタＡＸにファンクションコード（＝４４ＦＤｈ）をセットし、レジスタＢＸにＣＭＯＳのインデックスをセットし、そしてレジスタＣＬにＣＭＯＳライトデータをセットした後、ＩＮＴ１５ｈのソフトウェア割り込み命令を実行する。
【０１７５】
これにより、ＣＡＩのＣＭＯＳライトファンクションルーチンが起動され、指定されたインデックス値が割り当てられているＣＭＯＳエリアにレジスタＣＬの値がライトされる。ＣＭＯＳライトが正常に終了した場合、出力レジスタＡＸには正常終了したことを示す値（＝００４４ｈ）が戻り値としてセットされる。
【０１７６】
このように、ＣＡＩをＢＩＯＳの一部として保持することにより、オペレーティングシステムやアプリケーションプログラムは、Ｉ／Ｏポートにインデックスをライトするというハードウェアアクセスを行うとなく、任意のインデックスのＣＭＯＳエリアをリード／ライトアクセスすることができる。
【０１７７】
次にハードウェア・コンフィグレーション・インタフェース（Ｈａｒｄｗａｒｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｉｎｔｅｒｆａｃｅ：ＨＣＩ）について説明する。
【０１７８】
ＨＣＩは、ＤＯＳやＷｉｎｄｏｗｓのアプリからハードウェアの構成（コンフィグレーション）を読んだり設定したりできるようにしたものであり、前述のＳＣＩと同様に拡張ＢＩＯＳ（ｉｎｔ１５ｈ）としてＢＩＯＳ  ＲＯＭ１４に格納されている。
【０１７９】
このＨＣＩには、図１１に示されているように、以下の２つのファンクション実行ルーチンが含まれている。
【０１８０】
0003626258.tif 000107
デバイスカレントステータスリードルーチンは、各ハードウェアデバイスの現在の構成（コンフィグレーション）をリードするルーチンであり、ＣＰＵ１１のＡＸレジスタにファンクションコード４４ＦＥｈがセットされた状態でＩＮＴ１５ｈが実行された時に起動される。
【０１８１】
デバイスＯＮ／ＯＦＦルーチンは、各ハードウェアデバイスをターンＯＮ／ターンＯＦＦするルーチンであり、ＣＰＵ１１のＡＸレジスタにファンクションコード４４ＦＦｈがセットされた状態でＩＮＴ１５ｈが実行された時に起動される。
【０１８２】
これらデバイスカレントステータスリードルーチンおよびデバイスＯＮ／ＯＦＦルーチンはそれぞれ１０個程度のサブファンクションを有しており、これらサブファンクションはＣＰＵ１１のＢＸレジスタにセットされるサブファンクションコードによって選択される。
【０１８３】
デバイスカレントステータスリードルーチンおよびデバイスＯＮ／ＯＦＦルーチンのサブファンクションは図１２の通りである。
【０１８４】
すなわち、これら各サブファンクションはデバイスカレントステータスリードルーチンの中ではハードウェア構成情報を取得するためのゲットルーチンとなり、デバイスＯＮ／ＯＦＦルーチンの中ではそのデバイスをＯＮ／ＯＦＦ設定するためのセットルーチンとなる。
【０１８５】
ここで、これらサブファンクション（ゲット／セット）それぞれのサブファンクションコードとその機能の概要について説明する。
・０００１ｈ    Ｍａｉｌ  Ｉｃｏｎ
このサブファンクションは、コンピュータシステムのステータスＬＣＤに対するメールアイコン表示のオン／オフ／ブリンクの設定およびその設定の読み出しを行う。ステータスＬＣＤは、システムの動作モードやハードウェアステータスなどをアンコンによって表示するというステータス表示専用のＬＣＤであり、所定のレジスタに対する設定値に応じてアイコンのオン／オフ／ブリンク制御が可能である。したがって、このサブファンクションは、そのレジスタの中のメールアンコンに対する制御情報をリード／ライトすることによって、メールアイコン表示のオン／オフ／ブリンクの設定およびその設定の読み出しを行う。
・０００２ｈ    Ｂａｃｋｌｉｇｈｔ
このサブファンクションは、コンピュータシステムのＬＣＤパネルのバックライトのオン／オフの設定及びその設定の読み出しを行う。ＬＣＤパネルのバックライトは、あるレジスタに設定されるバックライト制御情報によってオン／オフ制御されるように構成されているので、バックライトのオン／オフの設定及びその設定の読み出しは、バックライト制御情報をリード／ライトすることによって行われる。
・０００３ｈ    ＡＣ  Ａｄａｐｔｏｒ
このサブファンクションは、ＡＣフダプタの接続有無を示す情報を電源コントローラやＣＭＯＳメモリなどからリードする。
・０００４ｈ    Ｆａｎ
このサブファンクションは、所定のレジスタに設定されたファン制御情報をリードライトすることによって、システムに設けられた冷却用ファンのオン／オフ設定及びその設定の読み出しを行う。
・００１０ｈ    Ｓｏｆｔｗａｒｅ  Ｓｕｓｐｅｎｄ
このサブファンクションは、ソフトウェアサスペンドが実行可能かどうかを示すシステムステータスの読出し、およびソフトウェアサスペンドの実行を行う。この場合のシステムステータスは、ソフトウェアサスペンドが実行中か否かを示すものであり、実行中であれればソフトウェアサスペンドは実行できない状態であり、実行中でなければソフトウェアサスペンドが実行できる状態である。ソフトウェアサスペンドが実行されると、レジュームモード下でシステムの電源スイッチがオフされた時の同様のサスペンド処理が行われる。
・００１１ｈ    Ｆｌａｔ  Ｐａｎｅｌ
このサブファンクションは、内部ＬＣＤパネルを制御するためのハードウェアをチェックすること等によって、内部ＬＣＤパネルの解像度およびＬＣＤタイプの情報をリードする。
・００１２ｈ    Ｉｎｓｔａｎｔ  Ｓｅｃｕｒｉｔｙ
このサブファンクションは、所定のキー入力操作に応じて表示画面のオフまたはキーロックを行うインスタントセキャリティー機能が実行可能か否かを示すステータス情報のリード、およびそのインスタントセキュリティー機能をキーボードを使用せずにソフトウェア的に起動する。この場合のステータス情報は、インスタントセキュリティーが実行中か否かを示すものであり、実行中であれればインスタントセキュリティーは実行できない状態であり、実行中でなければインスタントセキュリティーが実行できる状態である。このサブファンクションによってインスタントセキュリティーが実行されると、ホットキー（Ｆｎ＋Ｆ１）を押した場合と同様のインスタントセキュリティー機能（表示画面のオフ、キーロック）が実行される。
・００１３ｈ    Ｐｏｗｅｒ  Ｏｆｆ  Ｆａｃｔｏｒ
このサブファンクションは、システムの電源オフの要因を示すパワーオフ要因情報をリードする。パワーオフ要因情報は、例えばＳＭＲＡＭなどに設定されている。
・００１４ｈ    Ｍｕｌｔｉｂｏｘ  Ｓｔａｔｕｓ
このサブファンクションは、ＣＤ−ＲＯＭドライブとＦＤＤなどの異なる種類のディスクドライブが選択的に装着可能なマルチボックスに現在接続されているドライブの種類を示す情報をリードする。これは、マルチボックスに要されたＣＤ−ＲＯＭドライブ用のコネクタとＦＤＤ用のコネクタの一方のコネクタの所定ピンの電圧に応じて“１”または“０”のフラグがセットされるレジスタからそのフラグを読み出すことによって実行される。
・００７０ｈ    Ｍｅｍｏｒｙ  Ｒｅａｄ／Ｗｒｉｔｅ
このサブファンクションは、メモリ内容をリード／  ライトする。本機能は、リアルモード時でもＳＭＭを使用することなどによって１ＭＢ以降のメモリ空間にアクセス出来るようにするためのものである。すなわち、このサブファンクションがＩＮＴ１５ｈで呼び出されると、Ｉ／ＯトラップＳＭＩを使用した後述のＥＨＣＩが再起動され、ＳＭＭのなかでメモリリード／  ライトの機能が実行される。
【０１８６】
以上のように、ＨＣＩは、ハードウェア構成に設定およびその設定状態の読出しのために必要なハードウェアアクセス機能を、ＯＳや、セットアッププログラムなどのアプリケーションプログラムなどに提供する。
【０１８７】
図１３には、ＨＣＩを用いたハードウェアコンフィグレーションの設定／変更動作の原理が概念的に示されている。
【０１８８】
この実施例のパーソナルコンピュータにおいては、リアルモード環境とプロテクトモード環境とでそれぞれ異なるセットアッププログラムが用いられる。すなわち、リアルモード環境ではＢＩＯＳ  ＲＯＭ１４に格納されているＢＩＯＳセットアッププログラムが使用され、プロテクトモード環境下ではフロッピーディスクやハードディスク装置から供給される“Ｍａｘ  Ｔｉｍｅ”などのセットアッププログラムが利用される。
【０１８９】
“Ｍａｘ  Ｔｉｍｅ”は前述したように本出願人によって開発されたプロテクトモードＯＳ用のアプリケーションプログラムであり、プロテクトモード環境で実行することができる。“Ｍａｘ  Ｔｉｍｅ”は、ＨＣＩを利用してハードウェア構成情報の読み書きを行い、ハードウェアを直接アクセスすることはない。
【０１９０】
“Ｍａｘ  Ｔｉｍｅ”がＨＣＩを呼び出す場合には、まず、ＣＰＵ１１の動作モードがプロテクトモードからリアルモードに切り替えられ、その後ＩＮＴ１５ｈのソフトウェア割り込み命令が実行される。
【０１９１】
ＢＩＯＳセットアッププログラムは、前述したようにリアルモードＯＳ用のプログラムであり、リアルモード環境で実行することができる。ＢＩＯＳセットアッププログラムも、ＨＣＩを利用してシステム構成情報の読み書きを行う事ができる。ＢＩＯＳセットアッププログラムはシステムボード上のＲＯＭに格納されたＢＩＯＳドライバの一種であるので、従来と同様に、ＢＩＯＳセットアッププログラムがハードウェアを直接アクセスするように構成しても良い。ＢＩＯＳセットアッププログラムが実行された場合も、“Ｍａｘ  Ｔｉｍｅ”と同様の環境設定項目を持つセットアップウインドウが画面表示され、各種環境設定項目についてそれぞれ現在の設定値が提示される。
【０１９２】
ＢＩＯＳセットアッププログラムがＨＣＩを呼び出す場合には、ＣＰＵ１１の動作モードを切り替えること無く、ＩＮＴ１５ｈのソフトウェア割り込み命令だけが実行される。
【０１９３】
このように、ＨＣＩは、ＯＳやアプリケーションプログラムからは同一のハードウェアアクセスインタフェースとして利用される。
【０１９４】
図１４には、ＨＣＩによるハードウェア構成情報のリード／ライト処理の手順が示されている。
【０１９５】
前述したように、“Ｍａｘ  Ｔｉｍｅ”およびＢＩＯＳセットアッププログラムは、ＩＮＴ１５ｈのソフトウェア割り込み命令を実行する。この場合、ＨＣＩのファンクション実行ルーチンを指定するファンクションコードや、サブファンクションコードがＣＰＵ１１のレジスタにセットされる。
【０１９６】
ＩＮＴ１５ｈのソフトウェア割り込み命令の実行により、ＩＮＴ１５ｈのベクタアドレスで指定される拡張ＢＩＯＳが実行される。拡張ＢＩＯＳは、まず、ＨＣＩがサポートしているファンクションコードか否かを判断する（ステップＳ１１１）。具体的には、ファンクションコードが４４ＦＥｈ（デバイスカレントステータスリード）か、４４ＦＦｈ（デバイスＯＮ／ＯＦＦ）かどうかを判断し、これらファンクションコードでなければ、拡張ＢＩＯＳに用意されたＨＣＩ以外の処理（ＨＣＩなどを含む）に移行する。
【０１９７】
一方、サポートするファンクションコードであれば、そのファンクションコードに対応するファンクション実行ルーチンが起動される（スップＳ１１２）。起動されたファンクション実行ルーチンは、ＣＰＵ１１のレジスタにセットされているサブファンクションコードをサポートしているか否かを判断する（ステップＳ１１３）。
【０１９８】
サポートしていないサブファンクションが指定されたときは、ファンクション実行ルーチンは、エラー値を出力値としてＣＰＵ１１のレジスタにセットした後にリターンする（ステップＳ１１４）。
【０１９９】
一方、サポートしているサブファンクションであれば、ファンクション実行ルーチンは、その指定されたサブファンクションを実行し、該当する環境設定項目の読み出し／書き込みなどを行い、ＣＰＵ１１の出力レジスタに戻り値を設定した後にリターンする（ステップＳ１１５，Ｓ１１６）。
【０２００】
次に、前述したＨＣＩのサブファンクション群について、各機能の詳細とそれを実行した場合のＣＰＵ１１の入出力レジスタの一例について説明する。
（５０）デバイス設定状態のリード
（５０−１）機能
デバイスの設定状態をリードする。
（５０−２）入出力レジスタ仕様
・入力レジスタ
ＡＨ＝４４ｈ
ＡＬ＝ＦＥｈ
ＢＸ＝装置ＩＤ
０００１ｈ…メールアルコン
０００２ｈ…バックライト
０００３ｈ…ＡＣアダプタ
０００４ｈ…ファン
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＣＸ＝００００ｈ…デバイスがＯＦＦである。
【０２０１】
０００１ｈ…デバイスがＯＮである。
【０２０２】
０００２ｈ…デバイスがブリンクである。
【０２０３】
０００３ｈ…デバイスがない。
【０２０４】
０００４ｈ…デバイスがある。
【０２０５】
ＣＦ＝０
エラー発生の場合
ＡＨ＝８０ｈ…サブファンクションエラーまたはシステムがファンクションをサポートしていない。
【０２０６】
８３ｈ…データの入力エラー
ＣＦ＝１
（５０−３）機能詳細
デバイスのＯＮ／ＯＦＦ／ブリンクの設定状態は、各機種によりスペシャルレジスタ等をリードする。
（５１）デバイス設定
（５１−１）機能
デバイスのＯＮ／ＯＦＦ／ブリンクの制御を行う。
（５１−２）入出力レジスタ仕様
・入力レジスタ
ＡＨ＝４４ｈ
ＡＬ＝ＦＦｈ
ＢＸ＝装置ＩＤ
０００１ｈ…メールアルコン
０００２ｈ…バックライト
０００３ｈ…ＡＣアダプタ
０００４ｈ…ファン
ＣＸ＝００００ｈ…デバイスをＯＦＦにする。
【０２０７】
０００１ｈ…デバイスをＯＮにする。
【０２０８】
０００２ｈ…デバイスをブリンクにする。
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＣＦ＝０
エラー発生の場合
ＡＨ＝８０ｈ…サブファンクションエラーまたはシステムがファンクションをサポートしていない。
【０２０９】
８３ｈ…データの入力エラー
８４ｈ…ライトプロテクトエラー
ＣＦ＝１
（５１−３）機能詳細
デバイスのＯＮ／ＯＦＦ／ブリンクの設定は、各機能によりスペシャルレジスタ等で設定する。ＡＣアダプタの設定を指定した場合（ＢＸ＝０００３ｈ）はライトプロテクトエラーを返す。
（５２）ソフトウェア・サスペンド状態のリード
（５２−１）機能
ソフトウェア・サスペンドの状態をリードする。
（５２−２）入出力レジスタ仕様
・入力レジスタ
ＡＨ＝４４ｈ
ＡＬ＝ＦＥｈ
ＢＸ＝００１０ｈ…ソフトウェア・サスペンド
・出力レジスタ
0003626258.tif 000108
エラー発生の場合
ＡＨ＝８０ｈ…サブファンクションエラーまたはシステムがファンクションをサポートしていない。
【０２１０】
ＣＦ＝１
（５２−３）機能詳細
本ファンクションは、ソフトウェア・サスペンドを実行する際に、ソフトウェア・サスペンドが実行可能であるかどうかを確認する為のファンクションである。（５３）ソフトウェア・サスペンドの実行
（５３−１）機能
ソフトウェア・サスペンドを開始する。
（５３−２）入出力レジスタ仕様
・入力レジスタ
ＡＨ＝４４ｈ
ＡＬ＝ＦＦｈ
ＢＸ＝００１０ｈ…ソフトウェア・サスペンド
ＣＸ＝０００１ｈ…ソフトウェア・サスペンドを開始する
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＣＦ＝０
エラー発生の場合
ＡＨ＝８０ｈ…サブファンクションエラーまたはシステムがファンクションをサポートしていない。
【０２１１】
0003626258.tif 000109
【０２１２】
ＣＦ＝１
（５３−３）機能詳細
本ファンクションが実行された場合には、電源スイッチからのＳＭＩ処理と同様にサスペンド要求フラグ（ＣＭＯＳ  ５ＤｈのＢｉｔ４）をセットし、終了する。この後、サスペンドシーケンスが開始される。この場合、ＢＯＯＴ／ＲＥＳＵＭＥモードに関係なく、サスペンドする。（次回電源ＯＮ時にはレジュームする。）
（５４）フラットパネル情報のリード
（５４−１）機能
フラットパネルの情報をリードする。
（５４−２）入出力レジスタ仕様
・入力レジスタ
ＡＨ＝４４ｈ
ＡＬ＝ＦＥｈ
ＢＸ＝００１１ｈ…フラット・パネル
・出力レジスタ
0003626258.tif 000110
エラー発生の場合
ＡＨ＝８０ｈ…サブファンクションエラーまたはシステムがファンクションをサポートしていない。
【０２１３】
ＣＦ＝１
（５４−３）機能詳細
本ファンクションは、システムに実装されているフラットパネルの解像度及びＬＣＤタイプの情報をリードするためのファンクションである。
【０２１４】
フラットパネルについては、情報のリードを行うファンクションのみ存在する。
（５５）インスタントセキュリティ状態のリード
（５５−１）機能
インスタントセキュリティ状態をリードする。
（５５−２）入出力レジスタ仕様
・入力レジスタ
ＡＨ＝４４ｈ
ＡＬ＝ＦＥｈ
ＢＸ＝００１２ｈ…インスタントセキュリティ
・出力レジスタ
0003626258.tif 000111
エラー発生の場合
ＡＨ＝８０ｈ…サブファンクションエラーまたはシステムがファンクションをサポートしていない。
【０２１５】
ＣＦ＝１
（５５−３）機能詳細
本ファンクションは、インスタントセキュリティを実行する際に、インスタントセキュリティが実行可能であるかどうかを確認する為のファンクションである。
【０２１６】
インスタントセキュリティ実行中かどうかは、ＳＭ−ＲＡＭのフラグよりリードする。
（５６）インスタントセキュリティの実行
（５６−１）機能
ソフトウェア・サスペンドを開始する。
（５６−２）入出力レジスタ仕様
・入力レジスタ
ＡＨ＝４４ｈ
ＡＬ＝ＦＦｈ
ＢＸ＝００１２ｈ…インスタントセキュリティ
ＣＸ＝０００１ｈ：インスタントセキュリティを実行する
・出力レジスタ
正常終了する場合
ＡＨ＝００ｈ
ＣＦ＝０
エラー発生の場合
ＡＨ＝８０ｈ…サブファンクションエラーまたはシステムがファンクションをサポートしていない。
【０２１７】
0003626258.tif 000112
【０２１８】
ＣＦ＝１
（５６−３）機能詳細
本ファンクションが実行された場合には、Ｆｎ＋Ｆ１キーが押された場合と同様の処理を実行し、インスタントセキュリティ状態にする。
【０２１９】
ファンクション実行時にインスタントセキュリティ中だった場合は、８４ｈエラーを返すものとする。
（５７）パワーオフ要因のリード
（５７−１）機能
パワーオフの要因が何であるかの情報をリードする。
（５７−２）入出力レジスタ仕様
・入力レジスタ
ＡＨ＝４４ｈ
ＡＬ＝ＦＥｈ
ＢＸ＝００１３ｈ…パワーオフ要因
・出力レジスタ
0003626258.tif 000113
エラー発生の場合
ＡＨ＝８０ｈ…サブファンクションエラーまたはシステムがファンクションをサポートしていない。
【０２２０】
ＣＦ＝１
（５７−３）機能詳細
本ファンクションは、パワーオフイベントについてソフトウェアにて何らかの制御を行いたい場合に、パワーオフ要因を判別するためのものである。パワーオフ要因は、ＳＭ−ＲＡＭのフラグから読み出す。このフラグの内容は、本ファンクションによるリードが行われるまではクリアされないものとする（リード後クリアされる）。
【０２２１】
例えば、１つのパワーオフ要因が読み出される前に、別のパワーオフ要因が発生した場合は、出力ＣＸレジスタの該当するＢｉｔを全て１とし、またどのパワーオフ要因も発生していない場合は、出力ＣＸ＝００００ｈとなる。
（５８）マルチボックスのステータスリード
（５８−１）機能
マルチボックスに何が接続されているかをリードする。
（５８−２）入出力レジスタ仕様
0003626258.tif 000114
エラー発生の場合
ＡＨ＝８０ｈ…サブファンクションエラーまたはシステムがファンクションをサポートしていない。
【０２２２】
ＡＨ＝８３ｈ…データの入力エラー
ＣＦ＝１
（５８−３）機能詳細
本ファンクションは、マルチボックスに何が接続されているか（ＣＤ−ＲＯＭ、ＦＤＤなど）をスペシャルレジスタ等からリードするためのものである。ステータスをリードするレジスタは、機種により異なる。
【０２２３】
尚、下記の場合は、８３ｈエラーを返すものとする。
（１）入力ＣＸレジスタにて定義外の値を入力した場合
（２）ＤＳ等本体外でマルチボックスをサポートしないマシンにて、本体外（ＤＳ等）のマルチボックスのステータスをリードした場合
（３）ＤＳ等本体外でマルチボックスをサポートするマシンにて、ＤＳ等が接続されていない場合。
【０２２４】
以上説明したように、この実施形態においては、ＳＣＩと一緒にＨＣＩがシステムＢＩＯＳの１部としてＢＩＯＳ  ＲＯＭ１４に格納されており、そのＨＣＩをＩＮＴ１５ｈのソフトウェア割り込みによって起動する事によってハードウェアデバイスの設定およびその設定状態の読み出しなどを行うことができる。
【０２２５】
次に、Ｉ／ＯトラップＳＭＩを用いてＳＣＩを起動する場合について説明する。
【０２２６】
以下では、Ｉ／ＯトラップＳＭＩを用いたＳＣＩを、ＥＳＣＩ（Ｅｎｈａｎｃｅｄ  ＳＣＩ）と称することにする。このＥＳＣＩは、プロテクトモード環境でシステムコンフィグレーションの設定／変更などを行う事ができるプログラムインタフェースである。
【０２２７】
まず、図１５および図１６を参照して、オペレーティングシステム、またはアプリケーションプログラムがＥＳＣＩを呼び出す場合の一連の動作を説明する。
オペレーティングシステムまたはアプリケーションプログラムには、特定のＢＩＯＳドライバ（ここでは、ＥＳＣＩ）に対する呼び出し要求に応じて、ＩＮＴ１５ｈではなく、ＩＮまたはＯＵＴのＩ／Ｏ命令を実行するＢＩＯＳインタフェースが組み込まれている。このＢＩＯＳインタフェースは、ＢＩＯＳドライバのファンクション実行ルーチンを指定するファンクションコードをＡＨレジスタにセットした後、Ｉ／ＯトラップＳＭＩを利用したプログラムインタフェースを起動するために、Ｉ／Ｏベースアドレスレジスタ１２６にセットされたＩ／Ｏベースアドレスのアドレス範囲に属するＩ／Ｏポートに対するＩＮまたはＯＵＴのＩ／Ｏ命令を実行する。
【０２２８】
このＩＮまたはＯＵＴ命令の実行によって、Ｉ／Ｏベースアドレスによって指定されたアドレス範囲に属するＩ／Ｏアドレスがシステムバス１８上に出力される。このＩ／ＯアドレスはＩ／ＯトラップＳＭＩ発生回路１２１によってトラップされ、Ｉ／ＯトラップＳＭＩ信号がＣＰＵ１１に供給される。
【０２２９】
ＣＰＵ１１にＩ／ＯトラップＳＭＩ信号が入力されると、ＣＰＵ１１は、その時の動作モード（例えば、プロテクトモード）からＳＭＭにスイッチされる。ＳＭＭに入ると、ＣＰＵ１１は、まず、ＳＭＲＡＭ１３Ａをメインメモリ１３のアドレス３００００Ｈから３ＦＦＦＦＨまでのアドレス空間にマッピングする（ステップＳ１）。これにより、メインメモリ１３のアドレス３００００Ｈから３ＦＦＦＦＨはアクセス不能となり、代わりにＳＭＲＡＭ１３Ａがオーバーレイメモリとしてアクセス可能となる。
【０２３０】
ＳＭＲＡＭ１３Ａには、ＣＰＵステート格納エリア、ＳＭＩハンドラ作業エリアなどが設けられており、またＢＩＯＳ  ＲＯＭ１４のＳＭＩハンドラを割り込み先として指定するジャンプコードがセットされている。前述したように、ＢＩＯＳ  ＲＯＭ１４には、ＩＲＴルーチン、ＳＭＩハンドラ、複数のＢＩＯＳドライバ（ＥＳＣＩを含む）、およびパワ−管理などのための各種ＳＭＩサービスルーチンが格納されている。
【０２３１】
次いで、ＣＰＵ１１は、ＳＭＩが入力された時のＣＰＵ１１の各種レジスタの内容であるＣＰＵステータス（または、コンテキストと称される）をＳＭＲＡＭ１３ＡのＣＰＵステート格納エリアにスタック形式でセーブする（ステップＳ２）。そして、ＣＰＵ１１は、ＳＭＭのスタートアドレス（３８０００Ｈ）のコード、つまりＳＭＲＡＭ１３Ａのアドレス３８０００Ｈにセットされているジャンプコードをフェッチし、そのジャンプコードで指定されるＢＩＯＳ  ＲＯＭ１４のＳＭＩハンドラを実行する（ステップＳ３）。ここまでのステップＳ１〜Ｓ３の処理は、ＣＰＵ１１自体つまりＣＰＵ１１のマイクロプログラムによって実行されるものである。
【０２３２】
ジャンプコードの実行によって呼び出されたＳＭＩハンドラは、どのような要因でＳＭＩが発生されたかを決定するために、ＳＭＩ発生要因をチェックする（ステップＳ４）。この処理では、システムコントローラ１２のＳＭＩステータスレジスタ１２４にセットされているＳＭＩステータス情報が参照される。Ｉ／ＯトラップによるＳＭＩであれば、ＳＭＩハンドラは、ＢＩＯＳ  ＲＯＭ１４の複数のＢＩＯＳドライバのなかの特定のＢＩＯＳドライバ（ＥＳＣＩ）のファンクション実行ルーチンの実行をリクエストする（ステップＳ５）。リクエストされたＢＩＯＳドライバのファンクション実行ルーチンは、ＳＭＭの中で実行される。
【０２３３】
Ｉ／ＯトラップＳＭＩに応答してどのＢＩＯＳドライバを呼び出すかは、予め決められており、例えば、ＥＳＣＩや、ＢＩＯＳ  ＲＯＭ１４に新たに追加された機能拡張用の他のＢＩＯＳドライバ（後述するＥＨＣＩを含む）などが呼び出される。もちろん、ＣＰＵ１１のソフトウェア割り込みを用いて実現されている既存のＢＩＯＳドライバ群（ＩＮＴ１０ｈ〜１Ｆｈ、４０ｈ〜４Ｆｈ）の１つを、Ｉ／ＯトラップＳＭＩに応答して呼び出すべきＢＩＯＳドライバとして定義する事もできる。また、そのＢＩＯＳドライバのどのファンクション実行ルーチンを実行するかは、オペレーティングシステムまたはアプリケーションプログラムによって指定されたファンクションコードの値によって決定される。
【０２３４】
ＢＩＯＳドライバの処理が終了すると、ＳＭＩハンドラはレジューム（ＲＳＭ）命令を実行する（ステップＳ６）。このＲＳＭ命令の実行によりＣＰＵステータスはＳＭＲＡＭ１３ＡからＣＰＵレジスタにリストアされ（ステップＳ７）、これによってＣＰＵ１１はＳＭＭから抜けてプロテクトモードに復帰し、割り込まれたオペレーティングシステムまたはアプリケーションプログラムに制御が戻る。
【０２３５】
このように、Ｉ／ＯトラップＳＭＩを用いたプログラム・インタフェースを利用した場合には、プロテクトモードで動作するオペレーティングシステムまたはアプリケーションプログラムは、Ｉ／ＯトラップＳＭＩを発生させるためにＩＮまたはＯＵＴ命令を実行するだけで良く、プロテクトモードからリアルモードに切り替える手続きを一切行う必要がない。
【０２３６】
次に、図１７のフローチャートを参照して、Ｉ／ＯトラップＳＭＩ発生回路１２１に対するセットアップ処理を説明する。
【０２３７】
このセットアップ処理は、システムのパワーオンまたはシステムリセット時にＩＲＴルーチンによって実行される。
【０２３８】
ＩＲＴルーチンは、まず、Ｉ／ＯトラップＳＭＩ発生回路１２１のマスクレジスタ１２８にＩ／ＯトラップＳＭＩ発生許可データをセットする（ステップＳ１１）。この後、ＩＲＴルーチンは、Ｉ／Ｏベースアドレスレジスタ１２６にＩ／Ｏベースアドレス（００ＸＹｈ）をセットする（ステップＳ１２）。このＩ／Ｏベースアドレスの値００ＸＹｈは、予め決められた未使用のＩ／Ｏポートのベースアドレス値である。
【０２３９】
次に、図１８のフローチャートを参照して、オペレーティングシステム、または前述の“Ｍａｘ  Ｔｉｍｅ”などのセットアッププログラムに組み込まれたＢＩＯＳインタフェースの処理を説明する。
【０２４０】
オペレーティングシステムまたは“Ｍａｘ  Ｔｉｍｅ”のＢＩＯＳインタフェースは、まず、ＣＰＵ１１のＡＨレジスタにＥＳＣＩの所定のファンクション実行ルーチンを指定するファンクションコードをセットする（ステップＳ２１）。ＥＳＣＩは、図２で説明したＳＣＩの６つのファンクション実行ルーチン（ＳＣＩサポートチェックルーチン、オープンインタフェースルーチン、クローズインタフェースルーチン、システムコンフィグレーションゲートルーチン、システムコンフィグレーションセットルーチン、デフォルトコンフィグレーションセットルーチン）をＳＣＩと共用しており、それらルーチンにはファンクションコード（Ｆ０ｈ，Ｆ１ｈ，Ｆ２ｈ，Ｆ３ｈ，Ｆ５ｈ）が割り当てられている。各ファンクション実行ルーチン機能は、図２で説明した通りである。
【０２４１】
次いで、ＢＩＯＳインタフェースは、Ｉ／Ｏ命令、例えば、
ＩＮ    ＡＬ  ，  ００ＸＹｈ
を実行する（ステップＳ２２）。この命令は、アドレス００ＸＹｈのＩ／Ｏポートの内容をＣＰＵ１１のＡＬレジスタに入力する命令である。このＩＮ命令の実行により、システムバス１８にはＩ／Ｏアドレス００ＸＹ２ｈが出力される。このＩ／Ｏアドレス００ＸＹｈの値は、Ｉ／Ｏベースアドレスレジスタ１２６にセットされているＩ／Ｏベースアドレスの値と一致する。従って、ステップＳ２２のＩＮ命令はＩ／ＯトラップＳＭＩ発生回路１２１にＩ／ＯトラップＳＭＩ信号を発生させ、これによってＳＭＩハンドラに制御が移行する。
【０２４２】
この後、ＳＭＩハンドラのＲＳＭ命令の実行によってオペレーティングシステムまたはアプリケーションプログラムに制御が戻ると、そのＢＩＯＳインタフェースは、ＣＰＵ１１の所定のレジスタの内容を参照してＥＳＣＩなどからのファンクション終了コードや出力結果などの戻り値のチェックを行う（ステップＳ２３）。終了コードはＡＸレジスタに設定される。エラーコードとエラーの内容は次の通りである。
【０２４３】
0003626258.tif 000115
次に、図１９のフローチャートを参照して、ＳＭＩハンドラのプログラム・インタフェース処理を説明する。
【０２４４】
ＳＭＩハンドラは、まず、システムコントローラ１２のＳＭＩステータスレジスタ１２４のＳＭＩステータス情報をリードし（ステップＳ３１）、そのＳＭＩステータス情報によってＳＭＩの発生要因がＩ／Ｏトラップによるものであるか否かを調べる（ステップＳ３２）。Ｉ／Ｏトラップ以外の要因によるＳＭＩであれば、ＳＭＩハンドラは、その要因に対応するＳＭＩサービスルーチンを実行する。一方、Ｉ／ＯトラップによるＳＭＩであれば、ＳＭＩハンドラは、以下の処理を行う。
【０２４５】
すなわち、ＳＭＩハンドラは、まず、ＳＭＩ発生時にＣＰＵ１１によってＳＭＲＡＭ１３ＡにセーブされたＣＰＵステータスの内容をＣＰＵレジスタに復帰する（ステップＳ３４）。次いで、ＳＭＩハンドラは、ＥＳＣＩのファンクション実行ルーチンの中でＡＨレジスタのファンクションコードによって指定されるファンクション実行ルーチンを呼び出して実行する（ステップＳ３４）。
【０２４６】
ファンクション実行ルーチンの処理が終了すると、ＳＭＩハンドラは、その時のＣＰＵレジスタの内容をＳＭＲＡＭ１３Ａにセーブした後（ステップＳ３５）、ＲＳＭ命令を実行する（ステップＳ３６）。
【０２４７】
このＲＳＭ命令の実行によりＣＰＵステータスはＳＭＲＡＭ１３ＡからＣＰＵレジスタにリストアされ、これによってファンクション実行ルーチンからの出力値はオペレーティングシステムまたはアプリケーションプログラムにＣＰＵレジスタを介して渡される。
【０２４８】
次に、図２０を参照して、ＥＳＣＩを用いたシステムコンフィグレーションの設定／変更動作の原理を説明する。
【０２４９】
図７で説明したように、この実施形態においては、リアルモード環境ではＢＩＯＳ  ＲＯＭ１４に格納されているＢＩＯＳセットアッププログラムが使用され、プロテクトモード環境下ではフロッピーディスクやハードディスク装置から供給される“Ｍａｘ  Ｔｉｍｅ”などのセットアッププログラムが利用される。
【０２５０】
プロテクトモード環境で動作する“Ｍａｘ  Ｔｉｍｅ”は、ＣＭＯＳメモリ１６Ａのシステム構成情報の変更などを行う場合には、ＩＮまたはＯＵＴ命令を実行してＩ／ＯトラップＳＭＩを発行し、これによってＥＳＣＩを起動する。この場合、ＣＰＵ１１の動作モードは、Ｉ／ＯトラップＳＭＩによってプロテクトモードからＳＭＭにスイッチされ、ＳＭＭの中でＥＳＣＩが実行される。
【０２５１】
このＩ／ＯトラップＳＭＩによるＥＳＣＩの起動は、リアルモード環境で動作するＢＩＯＳセットアッププログラムも利用する事ができる。
【０２５２】
この場合には、ＣＰＵ１１の動作モードは、Ｉ／ＯトラップＳＭＩによってリアルモードからＳＭＭにスイッチされ、ＳＭＭの中でＥＳＣＩが実行される。
【０２５３】
次に、図２１を参照して、ＥＳＣＩによるシステム構成情報のリード／ライト処理の手順を説明する。
【０２５４】
ここでは、ＥＳＣＩが既にオープンされている場合を想定する。
【０２５５】
前述したように、“Ｍａｘ  Ｔｉｍｅ”およびＢＩＯＳセットアッププログラムは、ＩＮまたはＯＵＴ命令を実行する。この場合、ＳＣＩを起動する場合と同様にして、ＥＳＣＩのファンクション実行ルーチンを指定するファンクションコードや、サブファンクションコードがＣＰＵ１１のレジスタにセットされる。
【０２５６】
ＩＮまたはＯＵＴ命令によるＩ／ＯトラップＳＭＩによって、拡張ＢＩＯＳが実行される。拡張ＢＩＯＳは、まず、ＥＳＣＩがサポートしているファンクションコードか否かを判断する（ステップＳ２０１）。具体的には、ファンクションコードがＦ２ｈ（クローズインタフェース）か、Ｆ３ｈ（システムコンフィグレーションゲット）か、Ｆ４ｈ（システムコンフィグレーションセット）か、Ｆ５ｈ（デフォルトコンフィグレーションセット）かどうかを判断し、これらファンクションコードでなければ、拡張ＢＩＯＳに用意されたＥＳＣＩ以外の他の拡張処理ルーチンに移行する（ステップＳ２０２）。
【０２５７】
一方、サポートするファンクションコードであれば、そのファンクションコードに対応するＥＳＣＩのファンクション実行ルーチンが起動される（スップＳ２０３）。起動されたファンクション実行ルーチンは、ＣＰＵ１１のレジスタにセットされているサブファンクションコードをサポートしているか否かを判断する（ステップＳ２０４）。
【０２５８】
サポートしていないサブファンクションが指定されたときは、ファンクション実行ルーチンは、エラー値を出力値としてＣＰＵ１１のレジスタにセットした後にリターンする（ステップＳ２０５）。
【０２５９】
一方、サポートしているサブファンクションであれば、ファンクション実行ルーチンは、その指定されたサブファンクションを実行し、該当する環境設定項目の読み出し／書き込みなどを行い、ＣＰＵ１１の出力レジスタに戻り値を設定した後にリターンする（ステップＳ２０６，Ｓ２０７）。
【０２６０】
以上説明したように、この実施形態においては、プロテクトモードで動作するＯＳ環境下においてシステムコンフィグレーションの設定／変更要求が発生すると、ＩＮまたはＯＵＴ命令の実行によるＩ／ＯトラップＳＭＩによってＣＰＵ１１が自動的にプロテクトモードからＳＭＭにスイッチされ、そしてそのＳＭＭの中でＥＳＣＩが実行される。そして、ＥＳＣＩの処理が終了されると、ＳＭＭからプロテクトモードに復帰され、ＯＳに制御が戻る。
【０２６１】
したがって、ＯＳや、セットアププログラムなどのアプリケーションプログラムにＣＰＵ動作モードを切り替えるルーチンを組み込むことなく、プロテクトモード上でＥＳＣＩを直接的に呼び出して実行させることが可能となる。
【０２６２】
また、Ｉ／ＯトラップによるＳＭＩを利用しているので、ＳＭＩ信号を発生させるために必要な手続きは、ＩＮまたはＯＵＴ命令を実行する事だけである。このため、システムコンフィグレーションの設定／変更要求の発生に応答して直ぐにＳＭＩ信号を発生させる事ができるので、ＥＳＣＩを高速に呼び出す事ができる。
【０２６３】
さらに、ＳＭＩハンドラは、ＥＳＣＩのファンクション実行ルーチンの実行完了時のＣＰＵステータスをＳＭＲＡＭ１３Ａに一旦セーブした後にＲＳＭ命令を実行しているので、ファンクション実行ルーチンにより得られた出力データなどをＣＰＵ１１のレジスタを介して効率良くオペレーティングシステムなどに引き渡すことが可能となる。
【０２６４】
なお、この実施形態では、ＥＳＣＩの呼び出しにのみＩ／ＯトラップＳＭＩによるプログラムインタフェースを利用したが、ＢＩＯＳ  ＲＯＭ１４にハードウェア制御のための各種機能拡張ルーチンを格納しておき、その機能拡張用のルーチンをＩ／ＯトラップＳＭＩによって呼び出す事も可能である。また、図１のＩ／ＯトラップＳＭＩ発生回路１２１の説明においても述べたように、互いに異なるＩ／Ｏアドレスをトラップする複数のＩ／ＯトラップＳＭＩ発生回路を利用することによって、複数のＢＩＯＳドライバをＩ／ＯトラップＳＭＩによって呼び出すことも可能である。この場合には、呼び出されるＢＩＯＳドライバは、Ｉ／ＯトラップＳＭＩの発生要因となったトラップアドレス、つまりＩ／ＯトラップＳＭＩを発生したＩ／ＯトラップＳＭＩ発生回路によって決定される。
【０２６５】
このように、ＢＩＯＳインターフェースとしてＩ／ＯトラップＳＭＩを利用する事により、プロテクトモードで動作するオペレーティングシステムやアプリケーションプログラム等にＣＰＵ動作モードを切り替えるルーチンを組み込むことなく、プロテクトモード環境下から直接的にＥＳＣＩなどのＢＩＯＳを呼び出して実行させることが可能となる。よって、オペレーティングシステム内のＢＩＯＳインタフェース部のコーディングが簡単化され、ハードウェア制御に関する機能拡張などに柔軟に対応できるようになる。
【０２６６】
次に、ＥＳＣＩを拡張したＣＭＯＳアクセスのためのインタフェース（ＥＣＡＩ：Ｅｎｈａｎｃｅｄ  Ｃｍｏｓ  Ａｃｃｅｓｓ  Ｉｎｔｅｒｆａｃｅ）について説明する。
【０２６７】
ＥＣＡＩは上述したＥＳＣＩの１つのファンクションとしてＢＩＯＳ  ＲＯＭ１４に格納されており、ＣＡＩと同様に、ＣＭＯＳメモリ１６Ａの各種データに対するリード／ライトアクセスのために利用される。どのＣＭＯＳエリアをアクセスするかは、ＣＰＵ１１の入力レジスタにセットされるたインデックス値によって決定される。
【０２６８】
すなわち、ＣＭＯＳメモリ１６Ａは、ＣＰＵ１１のＩ／Ｏアドレス空間の一部に割り付けられた記憶エリアを含んでおり、それらはインデックス修飾によってアドレス指定される。ＥＣＡＩは、ＣＭＯＳデータをリードするＣＭＯＳリードファンクションと、ＣＭＯＳデータをライトするＣＭＯＳライトファンクションとを有している。以下、ＥＣＡＩを用いたＣＭＯＳアクセス動作について説明する。
【０２６９】
ＣＭＯＳデータをリードする場合：
この場合には、オペレーティングシステムや各種アプリケーションプログラムは、レジスタＡＨにファンクションコード（＝ＦＣｈ）をセットし、レジスタＢＸにＣＭＯＳのインデックスをセットした後、ＩＮ  ＡＬ，００ＸＹｈなどのＩ／Ｏ命令を実行する。
【０２７０】
これにより、ＥＣＡＩのＣＭＯＳリードファンクションルーチンが起動され、指定されたインデックス値が割り当てられているＣＭＯＳエリアからデータをリードする。ＣＭＯＳリードが正常に終了した場合、出力レジスタＣＬにはＣＭＯＳデータが戻り値としてセットされる。
【０２７１】
ＣＭＯＳデータをライトする場合：
この場合には、オペレーティングシステムや各種アプリケーションプログラムは、レジスタＡＨにファンクションコード（＝ＦＤｈ）をセットし、レジスタＢＸにＣＭＯＳのインデックスをセットし、そしてレジスタＣＬにＣＭＯＳライトデータをセットした後、ＩＮ  ＡＬ，００ＸＹｈなどのＩ／Ｏ命令を実行する。
これにより、ＥＣＡＩのＣＭＯＳライトファンクションルーチンが起動され、指定されたインデックス値が割り当てられているＣＭＯＳエリアにレジスタＣＬの値がライトされる。ＣＭＯＳライトが正常に終了した場合、出力レジスタＡＸには正常終了したことを示す値（＝００４４ｈ）が戻り値としてセットされる。
このように、ＥＣＡＩをＢＩＯＳの一部として保持することにより、オペレーティングシステムやアプリケーションプログラムは、Ｉ／Ｏポートにインデックスをライトするというハードウェアアクセスを行うとなく、任意のインデックスのＣＭＯＳエリアをリード／ライトアクセスすることができる。
【０２７２】
次に、Ｉ／ＯトラップＳＭＩを用いてＨＣＩを起動する場合について説明する。
【０２７３】
以下では、Ｉ／ＯトラップＳＭＩを用いたＨＣＩを、ＥＨＣＩ（Ｅｎｈａｎｃｅｄ  ＨＣＩ）と称することにする。このＥＨＣＩは、プロテクトモード環境でハードウェアデバイスの環境設定などを行う事ができるプログラムインタフェースである。
【０２７４】
オペレーティングシステムまたはアプリケーションプログラムがＥＨＣＩを呼び出す場合の一連の動作は、使用されるファンクションコードおよびサブファンクションコードの値が異なるだけで、他の点は図１５および図１６で説明したＥＳＣＩの呼び出し動作と同一である。また、Ｉ／ＯトラップＳＭＩ発生回路１２１に対するセットアップ処理、オペレーティングシステムまたはセットアッププログラムに組み込まれたＢＩＯＳインタフェースの処理、およびＳＭＩハンドラのＢＩＯＳインタフェースの処理も、使用するファンクションコードおよびサブファンクションンコードの値が異なるだけで、他の点は図１７〜図１９で説明したＥＳＣＩに対する処理と同一である。
【０２７５】
次に、図２２を参照して、ＥＨＣＩを用いたハードウェアコンフィグレーションの設定動作の原理を説明する。
【０２７６】
プロテクトモード環境で動作する“Ｍａｘ  Ｔｉｍｅ”は、ハードウェアデバイスのコンフィグレーション設定やその設定情報の読出しなどを行う場合には、ＩＮまたはＯＵＴ命令を実行してＩ／ＯトラップＳＭＩを発行し、これによってＥＨＣＩを起動する。この場合、ＣＰＵ１１の動作モードは、Ｉ／ＯトラップＳＭＩによってプロテクトモードからＳＭＭにスイッチされ、ＳＭＭの中でＥＨＣＩが実行される。
【０２７７】
このＩ／ＯトラップＳＭＩによるＥＨＣＩの起動は、リアルモード環境で動作するＢＩＯＳセットアッププログラムも利用する事ができる。
【０２７８】
この場合には、ＣＰＵ１１の動作モードは、Ｉ／ＯトラップＳＭＩによってリアルモードからＳＭＭにスイッチされ、ＳＭＭの中でＥＨＣＩが実行される。
【０２７９】
次に、図２３を参照して、ＥＨＣＩによるハードウェアコンフィグレーション設定やその設定情報の読出しのためのリード／ライト処理の手順を説明する。
【０２８０】
前述したように、“Ｍａｘ  Ｔｉｍｅ”およびＢＩＯＳセットアッププログラムは、ＩＮまたはＯＵＴ命令を実行する。この場合、ＨＣＩを起動する場合と同様にして、ＨＣＩのファンクション実行ルーチンを指定するファンクションコードや、サブファンクションコードがＣＰＵ１１のレジスタにセットされる。
【０２８１】
ＩＮまたはＯＵＴ命令によるＩ／ＯトラップＳＭＩによって、拡張ＢＩＯＳが実行される。拡張ＢＩＯＳは、まず、ＥＳＣＩがサポートしているファンクションコードか否かを判断する（ステップＳ２１１）。ＥＨＣＩがサポートしているファンクションコードでなければ、拡張ＢＩＯＳに用意されたＥＨＣＩ以外の他の拡張処理ルーチンに移行する（ステップＳ２１２）。
【０２８２】
一方、サポートするファンクションコードであれば、そのファンクションコードに対応するＥＨＣＩのファンクション実行ルーチンが起動される（スップＳ２１３）。起動されたファンクション実行ルーチンは、ＣＰＵ１１のレジスタにセットされているサブファンクションコードをサポートしているか否かを判断する（ステップＳ２１４）。
【０２８３】
サポートしていないサブファンクションが指定されたときは、ファンクション実行ルーチンは、エラー値を出力値としてＣＰＵ１１のレジスタにセットした後にリターンする（ステップＳ２１５）。
【０２８４】
一方、サポートしているサブファンクションであれば、ファンクション実行ルーチンは、その指定されたサブファンクションを実行し、該当するハードウェア構成の設定／その設定情報の読出しなどを行い、ＣＰＵ１１の出力レジスタに戻り値を設定した後にリターンする（ステップＳ２１６，Ｓ２１７）。
【０２８５】
このようにＥＨＣＩについても、ＥＳＣＩと全く同様のインタフェースによって各種ＯＳ環境下から呼び出す事ができる。
【０２８６】
なお、この実施形態では、ＳＣＩとＨＣＩ（またはＥＳＣＩとＥＨＣＩ）とを別個に用意したが、これらは同一のファンクョン実行ルーチンとして実現しても良い。
【０２８７】
【発明の効果】
以上説明したように、この発明によれば、システムコンフィグレーションやハードウェアコンフィグレーションの設定／変更などのためのプログラムがＢＩＯＳプログラムの１部として用意されており、このプログラムを起動する事によって、システム構成情報の設定／変更やハードウェアデバイスの設定などを行うことができる。このため、オペレーティングシステムや、セップアッププログラムなどのアプリケーションプログラムは、システム構成情報を格納する記憶装置やハードウェアデバイスなどを直接アクセスすることなく、ＢＩＯＳを呼び出すだけでシステム構成やハードウェア構成の設定／変更／読出しなどを行う事ができる。よって、各種オペレーティングシステム環境下でシステム動作環境の設定／変更などを行えるようになり、これによってオペレーティングシステムやセットアッププログラムなどの修正／変更作業の低減を図る事ができる
また、ＢＩＯＳインターフェースとしてＩ／ＯトラップＳＭＩを利用する事により、プロテクトモードで動作するオペレーティングシステムやアプリケーションプログラム等にＣＰＵ動作モードを切り替えるルーチンを組み込むことなく、プロテクトモード環境下から直接的にＢＩＯＳを呼び出して実行させることが可能となる。よって、オペレーティングシステム内のＢＩＯＳインタフェース部のコーディングが簡単化され、ハードウェア制御に関する機能拡張などに柔軟に対応できるようになる。
【図面の簡単な説明】
【図１】この発明の一実施形態に係るコンピュータシステム全体の構成を示すブロック図。
【図２】同実施形態のシステムに設けられたＢＩＯＳ  ＲＯＭに格納されているＳＣＩの構成を示す図。
【図３】図２のＳＣＩに設けられたサブファンクション群を示す図。
【図４】図２のＳＣＩに設けられたサブファンクション群を示す図。
【図５】図２のＳＣＩに設けられたサブファンクション群を示す図。
【図６】図２のＳＣＩに設けられたサブファンクション群を示す図。
【図７】同実施形態のシステムにおけるＯＳのＢＩＯＳインタフェース部とＳＣＩとの関係を概念的に示す図。
【図８】同実施形態のシステムにおいて使用される第１のセットアッププログラムによって提供されるセットアップウインドウの一例を示す図。
【図９】同実施形態のシステムにおいて使用される第２のセットアッププログラムによって提供されるセットアップウインドウの一例を示す図。
【図１０】同実施形態のシステムにおけるＳＣＩの処理手順を示すフローチャート。
【図１１】同実施形態のシステムに設けられたＢＩＯＳ  ＲＯＭに格納されているＨＣＩの構成を示す図。
【図１２】図１１のＨＣＩに設けられたサブファンクション群を示す図。
【図１３】同実施形態のシステムにおけるＯＳのＢＩＯＳインタフェース部とＨＣＩとの関係を概念的に示す図。
【図１４】同実施形態のシステムにおけるＨＣＩの処理手順を示すフローチャート。
【図１５】同実施形態のシステムに設けられたＣＰＵにＩ／ＯトラップＳＭＩが発行された時のメモリマップを説明するための図。
【図１６】同実施形態のシステムに設けられたＣＰＵにＩ／ＯトラップＳＭＩが発行された時のＣＰＵの動作を説明するための図。
【図１７】同実施形態のシステムにおけるＩ／ＯトラップＳＭＩ発生のための準備処理を説明するためのフローチャート。
【図１８】同実施形態のシステムに設けられたＢＩＯＳ  ＲＯＭに格納されているＥＳＣＩ／ＥＨＣＩを起動する場合におけるＯＳのＢＩＯＳインタフェース部の動作を説明するフローチャート。
【図１９】同実施形態のシステムにおいてＳＭＩハンドラによって実行されるＯＳとＥＳＣＩ／ＥＨＣＩのプログラム・インタフェース処理を説明するフローチャート。
【図２０】同実施形態のシステムにおいてＥＣＳＩを利用する場合におけＯＳのＢＩＯＳインタフェース部とＥＳＣＩと関係を概念的に示す図。
【図２１】同実施形態のシステムにおけるＥＳＣＩの動作を説明するフローチャート。
【図２２】同実施形態のシステムにおいてＥＨＣＩを利用する場合におけＯＳのＢＩＯＳインタフェース部とＥＨＣＩと関係を概念的に示す図。
【図２３】同実施形態のシステムにおけるＥＨＣＩの動作を説明するフローチャート。
【符号の説明】
１１…ＣＰＵ、１２…システムコントローラ、１３…メインメモリ、１３Ａ…ＳＭＲＡＭ、１４…ＢＩＯＳ  ＲＯＭ、１５…バス変換回路、１６Ａ…ＣＭＯＳメモリ、１７…ＣＰＵローカルバス、１８…システムバス、１２１…Ｉ／ＯトラップＳＭＩ発生回路、１２４…ＯＲ回路、１２５…ＳＭＩステータスレジスタ。
【図１】
0003626258.tif 000116
【図２】
0003626258.tif 000117
【図３】
0003626258.tif 000118
【図４】
0003626258.tif 000119
【図５】
0003626258.tif 000120
【図６】
0003626258.tif 000121
【図７】
0003626258.tif 000122
【図８】
0003626258.tif 000123
【図９】
0003626258.tif 000124
【図１０】
0003626258.tif 000125
【図１１】
0003626258.tif 000126
【図１２】
0003626258.tif 000127
【図１３】
0003626258.tif 000128
【図１４】
0003626258.tif 000129
【図１５】
0003626258.tif 000130
【図１６】
0003626258.tif 000131
【図１７】
0003626258.tif 000132
【図１８】
0003626258.tif 000133
【図１９】
0003626258.tif 000134
【図２０】
0003626258.tif 000135
【図２１】
0003626258.tif 000136
【図２２】
0003626258.tif 000137
【図２３】
0003626258.tif 000138