JP3869049B2 - コンピュータシステムにおけるスタンバイ中のデバイス構成のロス防止方法およびデバイス構成の捕捉のためのコントローラ回路 - Google Patents
コンピュータシステムにおけるスタンバイ中のデバイス構成のロス防止方法およびデバイス構成の捕捉のためのコントローラ回路 Download PDFInfo
- Publication number
- JP3869049B2 JP3869049B2 JP22036596A JP22036596A JP3869049B2 JP 3869049 B2 JP3869049 B2 JP 3869049B2 JP 22036596 A JP22036596 A JP 22036596A JP 22036596 A JP22036596 A JP 22036596A JP 3869049 B2 JP3869049 B2 JP 3869049B2
- Authority
- JP
- Japan
- Prior art keywords
- keyboard
- routine
- mouse
- input device
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Power Sources (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Computer And Data Communications (AREA)
Description
【産業上の利用分野】
本発明は、キィーボード、補助デバイスなどのフィジカルユーザ入力デバイスのための接続を有するパーソナルコンピュータなどのコンピュータに関し、特に好ましくは、上記キィーボードおよび補助デバイスの両方がディスエーブルされることができかつそれらの接続から取り外されることができる低減電源モードにおいて動作するコンピュータに関する。
【0002】
【従来の技術および発明が解決しようとする課題】
インタナショナルビジネスマシーンコーポレイション(IBM)のPC/ATと互換性のあるパーソナルコンピュータとその後継機は、キィーボードおよび補助デバイスのためのフィジカル(物理的)およびソフトウェアの両方のインタフェースを歴史的に備えてきた。今、これらのインタフェースが標準化され、そして、いかなるIBM互換機も、標準のI/Oポートを用いかつそれらのI/Oポートのために標準のコマンドおよびデータインタフェースを備えるキィーボードおよび補助のシリアルインタフェースを備え付けていなければならない。このソフトウェアおよびハードウェアのインタフェースは、キィーボードコネクタまたは補助コネクタと直接に交信(すなわち、通信)できるようにプログラムされたインテルコーポレイションによる8042周辺コントローラによってIBM PC互換性システムに歴史的に備えられてきた。この8042コマンド構造標準は、技術的に良く知られ、そして、コンパックDeskPro 386S パーソナルコンピュータテクニカルリファレンスガイドにおいてさらに記述されている。
【0003】
IBM互換性パーソナルコンピュータとともに動作するようにデザインされたキィーボードおよび補助デバイスは、データおよびコマンドの両方のための通信フォーマットを標準化した。IBM互換性キィーボードのための標準のデータおよびコマンド構造は、コンパックDeskPro 386S パーソナルコンピュータテクニカルリファレンスガイドの第11章において見ることができる。マウスおよびトラックボールのようなポインティングデバイスがしばしば補助デバイスとして選択して用いられる。補助デバイスとして典型的に用いられるシリアルマウスのための標準は、IBM PS/2マウスによって用いられているものである。
【0004】
キィーボードおよびマウスコマンドセットの標準化は、第3のパーティの製造業者にIBM互換性パーソナルコンピュータに直接に接続すれば直ちに適当に機能するキィーボードおよびマウスをデザインしかつ販売することを許容した。パーソナルコンピュータのハードウェアおよびファームウェアの標準化は、ソフトウェア開発者が異なるシステム通信ハードウェアのために彼らのプログラムをパッチする必要なしに、標準化された方法においてこれらのデバイスと通信することを許容した。
【0005】
しかし、これらの標準化されたインタフェースおよび標準化されたデバイスは、ポータブル、ラップトップ、ノートブックおよびノートパッド型のコンピュータの電流激増の間に特に明らかになった制限を含んでいる。オリジナルのIBMパーソナルコンピュータはデスクトップ型を基本としたマシーンであったし、そして、ソフトウェアおよびハードウェアの開発者はシステムがオンになった時点でキィーボードまたはマウスがすでにシステムに取り付けられていると仮定することができた。しかし、ポータブルのコンピュータの新しい発生によって、コンピュータの単独形動作を許容し、そして、ポータブルコンピュータのユーザが彼らのコンピュータをデスクトップ拡張ベースに接続するときのように、さらにキィーボードおよびマウスを異なる位置に取り付けることによってこれらのキィーボードおよびマウスの再配置を許容するために、キィーボードおよびマウスは取り外し可能であるのが好ましい。
【0006】
しかし、これらのデバイスの接続および取外しは操作システムBIOSおよび適用ソフトウェアにとって或る困難に帰着する。標準的なシステムが最初にオンになるとき、パワーオンセルフテスト(POST)および初期化ルーチンは、上記キィーボードおよび補助通信ポートに或るコマンドを送り、そして、キィーボードまたは補助デバイスが上記システムに取り付けられているかどうかを決定するために、特定の応答を探す。もしも応答が検出されれば、POSTおよび初期化ルーチンは適当なデバイスドライバをロードする。しかし、そのような応答が検出されなければ、上記ルーチンはそのようなドライバをオミットする。これは、取り付けられたキィーボードまたは補助デバイスを有さないデスクトップのマシーンにおいてメモリの使用を低減させる。
【0007】
しかし、標準のシステムソフトウェアは、追加のユーザアクションを必要とする特別のコマンドが実行されなければ、上記システムにその後に取り付けられるデバイスのためのデバイスドライバをダイナミックに加えることができない。したがって、ラップトップのユーザがそのようなデバイスの取り付けなしに上記マシーンをオンにすれば、標準のシステムソフトウェアは、適当なデバイスドライバをロードするのに失敗するだろう。もしもそのようなデバイスがその後に取り付けられれば、ユーザは、これらのデバイスと通信する方法を持たないか、さもなければ、特別なかつしばしば不明瞭な手続きなしでこれらのデバイスを用いるだろう。
【0008】
さらに、もしもドライバソフトウェアがロードされれば、上記キィーボードまたは補助デバイスをその後に非接続にすることは、システムソフトウェアをしばしばロックさせる。これは、ソフトウェアがこれらのデバイスからの決して来ない応答を待って無限ループに入るからである。
【0009】
ラップトップにおいても、取り付けられるキィーボードまたは補助デバイスに対する電源を全体的にディセーブルするように電源を考慮するのが望ましい。キィーボードまたは補助デバイスは、通常、そのクロックまたはデータラインをロウ(低)に引っぱることによって非活性化される。しかし、この非活性の方法は、上記キィーボードまたは補助デバイスに対する5ボルトの供給がそのときにプルアップ抵抗を通して流出するので、電源が有効ではない。したがって、プルアップ抵抗による電源消費を阻止するように、電源節減モードにおいて、取り付けられるキィーボードまたはデバイスに対する電源を全体的に切るのが望ましい。
【0010】
しかし、このようなデバイスに対する全ての電源を切ることは、そのランダムアクセスメモリに蓄えられるその構成データ(コンフィギュレーションデータ)の全てをそのデバイスにおける内部のコントローラにロスさせる。上記デバイスが再び電源をオンされるとき、それは、上記システムまたは適用ソフトウェアによって予めセットアップされるような構成状態を含まないだろう。さらに、上記キィーボードまたは補助デバイスに対する電源がディセーブルされるとき、上記システムにとっては、デバイスが「引き離された」状態と見られ、上述の問題を付属物にロックさせるだろう。
【0011】
キィーボードまたは補助デバイスがその関連するコネクタに取り付けられているか否かについてのPOSTおよび初期化ルーチンの間にデバイスドライバのローディングを有効にし、そして、キィーボードまたは補助デバイスがシステムの動作の間に取り外されているならば、システムがロックするのを防止し、そして、そのようなキィーボードまたは補助デバイスのために現在の構成情報をロスすることなしに、電源節減モードにおいてキィーボードまたは補助デバイスに対する電源を全体的にディセーブルするのが望ましい。
【0012】
【課題を解決するための手段】
本発明にしたがって構成されるコンピュータシステムは、そのデバイスがフィジカルにシステムに取り付けられていないとき、または、そのようなキィーボードまたは補助デバイスに対する電源がディセーブルされるときでも、取り付けられるキィーボードまたは補助デバイスを検出することを上記システムまたは適用ソフトウェアに効果的に行わせるようなキィーボードおよび補助デバイスエミュレーションルーチンを備えている。キィーボードまたは補助デバイスインタフェースコントローラハードウェアに備えられているこれらのルーチンは、上記システムがキィーボードまたは補助デバイスに向けるコマンドに対する適当な応答を備えているのが好ましい。
【0013】
さらに、これらのエミュレーションルーチンは、キィーボードまたは補助デバイスに送られる構成コマンドを捕捉し、そして、関連した構成情報を蓄える。次いで、上記システムまたは適用ソフトウェアは上記デバイスをディセーブルする前にこの情報を検索することができる。キィーボードまたは補助デバイスが取り外されるかまたはパワーダウン(電源ダウン)されることによってディセーブルされるとき、キィーボードおよび補助デバイス構成は上記システムによってまず得られ、そして、その後に再格納される。
【0014】
上記システムが電源節減のスタンバイ状態に入るとき、このシステムはこの構成データを得て蓄える。上記システムがこのスタンバイ状態から出るとき、このシステムは前もって検索されかつ蓄えられる構成データに基づいてキィーボードおよび補助デバイスを再構成する。たとえキィーボードおよび補助デバイスが取り付けられていなくても、上記システムは上記キィーボードまたは補助デバイスに通常送られるのと同じ再構成コマンドを送り、次いで、これらは、次のパワーダウンシーケンスのためにこの構成データに蓄えるエミュレーションルーチンによって捕捉されかつ応答される。
【0015】
たとえこれらのデバイスが取り付けられていても、上記構成コマンドは、それらがこの構成データをセーブすることができるように、上記エミュレーションルーチンを通される。しかし、デバイスが備え付けられると、構成コマンドに対する応答は、上記エミュレーションルーチンよりむしろ上記デバイス自体から生じる。
【0016】
好ましい実施例についての以下の詳細な記述が図面に関連して考慮されるとき、本発明のいっそう良好な理解が得られるだろう。
【0017】
【実施例】
図1には、本発明によるコンピュータCが示されている。好ましくはインテルコーポレイション(Intel)からの486SLプロセッサであるマイクロプロセッサ10は、コンピュータCの主要な演算要素を形成している。主メモリ12は、メモリバスを通してプロセッサ10に接続されている。バス14はプロセッサ10に接続され、そして、コンピュータCにおける種々な構成要素に対して主要通信バスを形成するために、アドレス、データおよび制御部分を含んでいる。そのような構成要素の1つは、好ましくはインテルからの82360SLであるコンビネーションI/Oチップ16である。486SLおよび82360SLの間に特別な接続を提供するために、プロセッサ10およびコンビネーションI/Oチップ16の間に独立した接続がなされるのが好ましい。シリアルポート18および拡張されたパラレルポート20はコンビネーションI/Oチップ16に設けられている。ビデオコントローラ22はプロセッサ10からコマンドを受けるためにバス14に接続され、そして、ビデオメモリ23はビデオコントローラ22に接続されている。内部液晶ディスプレイ(LCD)24はビデオコントローラ22に接続され、そして、或る場合には、典型的にはCRTである外部モニタ26がビデオコントローラ22に所望のように接続され得る。
【0018】
コンピュータCは、或る基礎的なシステム機能を上記コンピュータに役立たせかつ実行させるために、一般的にBIOSとして参照される或る基本的な操作ルーチンを含まなければならないので、フラッシュEEPROM28はこれらのルーチンを含むためにバス14に接続される。これは標準のROMで置き換えることができる。プログラミングおよび消去を行わせるのに必要な接続は、当業者によく知られているので、明確さのために示されていない。PCMCIAコントローラ30は、バス14に接続され、そして、それに接続されている2つのPCMCIAスロット33を有している。PCMCIAスロット33は、所望ならば付加的なメモリを備えるために、または、モデムおよびネットワークカードのような或る通信オプションを受けるために、コンピュータCのための拡張された性能を備えている。
【0019】
I/Oコントローラ適用特定集積回路(ASIC)32はバス14 に接続されている。I/OコントローラASIC32は、コンピュータCにおける多数の特殊機能を備えている。I/OコントローラASIC32は、マウスまたは他のポインティングデバイスがマウスコネクタ35に、また、キィーボードがキィーボードコネクタ34に、さらに、マウスまたは他のポインティングデバイスまたはキィーボードがマウス/キィーボードコネクタ36に接続されるようにするために、必要なシフトレジスタおよびクロックロジックを含んでいる。I/OコントローラASIC32は、これらの3つのフィジカルコネクタのうちの2つにロジカルキィーボードポートP KBDおよび補助ポートP AUXを接続するのに必要なハードウェアをさらに含んでいる。
【0020】
さらに、I/OコントローラASIC32は、フロッピィドライブ37およびデジタライザインタフェース38に接続するのに必要なインタフェースを含んでいる。デジタライザインタフェース38は、ペン入力情報がコンピュータCにおいて利用されるようにするために、デジタライザ40に接続される。また、I/OコントローラASIC32は、それが8051または8751マイクロコントローラ42と組み合せて用いられるようにするために、種々のレジスタを含んでいるのが好ましい。これは、マイクロコントローラがスタンバイ状態であっても割り込みに対して応答するように、インテルコーポレイションからの8751FBマイクロコントローラであるのが好ましい。8751コントローラ42とともに用いられるとき、I/OコントローラASIC32は、従来のデスクトップパーソナルコンピュータにおけるキィーボードおよび補助デバイスコントローラとして一般に用いられているような8042型マイクロコントローラのようにプロセッサ10には見える。このために、I/OコントローラASIC32は、8751コントローラ42によってアクセス可能であるレジスタセットを模擬するために、或る要素を含んでいる。この方法においては、8751コントローラ42は、キィーボードおよびAUXポートシリアル通信のような実際の従来の8042キィーボードコントローラロウレベル機能の多くを実行する必要がないが、それは、8751コントローラ42に関する負担を軽減するために、これらの機能がI/OコントローラASIC32においてなされるからである。
【0021】
8751コントローラ42は、シリアルEEPROM44に接続される。シリアルEEPROM44は、小さくても、コンビネーションI/Oチップ16に含まれるCMOSメモリ17におけるデータの全体のコピーのための十分なスペースをまだ含んでいるのが好ましい。シリアルEEPROM44は、128 16ビット記憶場所を含み、各記憶場所が個別にアドレス可能でかつ消去可能であるのが好ましい。8751コントローラ42は、プログラミングおよびデータのシリアル通信を許容するために、製造業者の指示によってシリアルEEPROM44に接続されるのが好適である。この構成のさらに詳細な記述のために、「分離したバッテリを有さないCMOSメモリを備えたパーソナルコンピュータ」と題する最近出願した米国特許出願を参照して戴きたい。
【0022】
ハードディスクインタフェース46は、プロセッサ10を大量記憶のためにハードディスクドライブ48とインタフェースさせるように、バス14にも接続されている。
【0023】
コンピュータCは、また電源装置を含んでいる。DC/DC電源装置50は、+3.3、+5、+12、−30ならびにCMOSメモリ17およびRTC19に供給される電圧のように、コンピュータCにおいて用いられる必要な電圧を供給する。CMOS/RTC電圧は、コンピュータCが非常に低い電源のスタンバイ状態に置かれるのを許容するために、コンピュータCの残りの構成要素をパワーオフ(電源オフ)できるように個別に供給される。DC/DC電源装置50は、コンピュータCの主バッテリ52および小さい補助バッテリ54に接続されている。
【0024】
図2は、I/OコントローラASIC32、キィーボードコネクタ34、マウスコネクタ35、マウス/キィーボードコネクタ36、デジタライザインタフェース38、デジタライザ40および8751コントローラ42のさらに詳細を示すブロック図である。I/OコントローラASIC32、8751コントローラ42およびデジタライザインタフェース38はコントローラバス100によって相互接続され、このコントローラバス100は、多数の信号の中で、アドレスデータ/信号AD<7..0>、活性ロウ読み出しおよび書き込み信号WR*およびRD*ならびにアドレスラッチイネーブル信号ALE(この信号ALEはデータバイトに対向するようにAD<7..0>上にアドレスをラッチする)を伝送する。さらに、8751コントローラ42は、I/OコントローラASIC32からそのゼロ割り込み信号INT0を受け、そして、デジタライザインタフェース38からその1つの割り込み信号INT1を受ける。また、8751コントローラ42は、プロセッサ10にデジタライザ事象信号EVDIGを供給する。その信号は、好ましくは、図示されていないグルー回路を通して、または、可能ならばコンビネーションI/Oチップ16を通してプロセッサ10に供給される。
【0025】
8751コントローラ42における信号は、インテルコーポレイションによる8−ビット組み込みコントローラ(コピーライト1990)において見ることができる8751仕様書に適合する。8751コントローラ42は、外部メモリアクセスを提供する。I/OコントローラASIC32およびデジタライザインタフェース38は、それらが外部メモリであるかのように8751コントローラ42がアクセスするメモリマップされたI/Oレジスタを含んでいるのが好ましい。コントローラバス100は、これらのメモリマップされたI/Oポートにアクセスするために備えられ、そして、8751コントローラ42は、これらのポートを通してI/OコントローラASIC32およびデジタライザインタフェース38と通信する。
【0026】
I/OコントローラASIC32は、シリアルデータラインMDAT、シリアルクロックラインMCLKおよびシリアルパワーラインMPWRを通してマウスにインタフェースするのに用いられるマウスコネクタ35に接続されている。対応する信号KDAT、KCLKおよびKPWRはキィーボードコネクタ34のために備えられる。さらに、I/OコントローラASIC32は、対応する信号MKDAT、MKCLKおよびMKPWRを再び通してマウス/キィーボードコネクタ36に接続される。この追加のインタフェースの機能は、以下の図3(A)および(B)ならびに図4についての説明で明らかになるだろう。
【0027】
この説明においては、補助デバイスは、IBM PS/2マウスと互換性のあるコマンドおよびデータ構造を有するのが好ましいマウスであるとして参照される。トラックボールのような他の互換性のあるポインティングデバイスまたは他のタイプの補助デバイスは、本発明の精神から離脱することなく、代りに用いられることができる。
【0028】
I/OコントローラASIC32は、FET104のゲートを駆動する活性ロウのキィーボード電源イネーブル信号KPWR EN*をも供給する。上記FETのドレインは、好ましくは5ボルトのVCCに接続され、そして、FETのソースは、簡略化のために単一の抵抗106として示されている直列抵抗を通してKDAT、KCLKおよびKPWRに接続されている。マウスコネクタ35およびマウス/キィーボードコネクタ36のために同様の回路が備えられ、この回路においては、I/OコントローラASIC32によってFET108に信号MKPWR EN*が供給される。上記FET108は、抵抗110として示される直列抵抗を通してMKDAT、MKCLKおよびMKPWRに、また、抵抗112として示される直列抵抗を通してMDAT、MCLKおよびMPWRにそれぞれ接続されている。これらの抵抗を備えるために用いられる好ましい回路は、図3(B)についての以下の説明においてさらに記述されている。
【0029】
マウス/キィーボードコネクタ36との、また、マウスコネクタ35との、さらに、キィーボードコネクタ34とのシリアル通信は、I/OコントローラASIC32によってハードウェアにおいて直接に行われる。しかし、8751コントローラ42は、それらのコネクタに接続されるデバイスとのロジカル通信を提供し、コントローラバス100を通してコマンドおよびデータを与えかつ受けることによってそれらにインタフェースする。8751コントローラ42がこれらのデバイスと通信するのを望むとき、それは、メモリマップされた外部I/Oアドレスにおけるパラレルコマンドおよびデータバイトの形でのコマンドおよびデータをI/OコントローラASIC32に送りかつそこから受ける。次いで、I/OコントローラASIC32は、デバイスへのまたはデバイスからのデータをシリアル化し、そして、それらのデバイスとのシリアル通信リンクを取り扱う。さらに、I/OコントローラASIC32は、MKPWR EN*およびKPWR EN*の活性化および非活性化に関して8751コントローラ42からコマンドを同様に受ける。プロセッサ10および8751コントローラ42の間の通信は、8751コントローラ42に対してメモリマップされたI/Oポートとして与えられるI/OコントローラASIC32においてメールボックスレジスタによって取り扱われる。
【0030】
図3(A)および(B)ならびに図4には、マウス/キィーボードコネクタ36、マウスコネクタ35およびキィーボードコネクタ34を備えていることがさらに詳細を示されている。図3(A)は、好適なベースDを有するコンピュータCのフィジカルセットアップを示す。コンピュータCが単独形モードにおいて操作されるとき、キィーボードは、キィーボードコネクタ34またはマウス/キィーボードコネクタ36に接続されることができる。もしもキィーボードがキィーボードコネクタ34に接続されれば、マウスはマウス/キィーボードコネクタ36に接続されることができる。
【0031】
コンピュータCが好適なベースにDに接続されているとき、キィーボードは、キィーボードコネクタ34にやはり接続されることができ、またはその代わりに、好適なベースD上のマウス/キィーボードコネクタ36に接続されることができる。さらに、マウスは、好適なベースD上のマウスコネクタ35に接続されることができる。
【0032】
BIOSにおけるの標準のシステムソフトウェアは、I/OポートP KBDおよびP AUXを通してキィーボードおよび補助デバイスと通信する。P KBDおよびP AUXは、IBM PC互換性コンピュータにおける標準8042において備えられるキィーボードおよび補助通信ポートに対応する。8751コントローラ42は、IBM互換性PCにおいて備えられるような8042コマンドセットに応答して、8042の機能を実行する。P KBDおよびP AUXは、I/Oアドレスとして備えられている技術的に実際のI/Oポートではなく、むしろ、データおよびコマンドが対応する取り付けのキィーボードまたは補助デバイスコネクタに書き込まれかつそれから読み出される8751コントローラ42に対する通信を表わす。IBM互換性パーソナルコンピュータにおける標準8042の導入において、そのような通信は、BIOSがI/Oポートアドレス64hに対してコマンドを送ることによって実行され、そして、I/Oポート60hに対してデータを送ることによって補足される。コマンドバイトにおける特定のビットは、上記キィーボードデバイスまたは上記補助デバイスのどちらかに対してデータを向ける。これとは逆に、これらのデバイスの1つからのデータはポート60hから読み出され、そして、そのデータのソースはポート64hからのステータスバイトを読むことによって決定される。したがって、「ポート」P KBDおよびP AUXは、8051コントローラ42において備えられるような「8042」に送られるコマンドおよびデータまたはそこから読み出されるステータスおよびデータバイトの適当なシリーズのための単なる短縮形である。これらのコマンドは、当該技術においてよく知られ、そしてさらに、すでに参照されたコンパックDeskpro386Sパーソナルコンピュータテクニカルリファレンスガイドにおいて記述されている。
【0033】
ロジカルキィーボードポートP KBDおよびロジカル補助ポートP AUXをキィーボードまたはマウスデバイスに接続されているように保持するために、システムは、それらのデバイスがどのコネクタに接続されているかに依存するこれらの信号を送らねばならない。これは、I/OコントローラASIC32でも取り扱われる。図3(B)は、この接続を行うために用いられるハードウェアを示す概略的なブロック図である。マウスコネクタ35はMDATおよびMCLKを通してI/OコントローラASIC32と通信し、また、キィーボードコネクタ34はKDATおよびKCLKを通してI/OコントローラASIC32と通信し、さらに、マウス/キィーボードコネクタ36はMKDATおよびMKCLKを通してI/OコントローラASIC32と通信する。
【0034】
マウスコネクタ35、キィーボードコネクタ34およびマウス/キィーボードコネクタ36と、システムI/OポートP AUXおよびP KBDとの間のフィジカルな経路付けは、I/OコントローラASIC32に対する内部の回路によって供給される。マルチプレクサ126は、選択された信号EXT MSE SELがロウ(低)であるとき、I/OコネクタASIC32における補助レジスタAUXからマウスコネクタ35に通信を差し向ける。その信号がハイ(高)であるとき、AUXを通しての通信は、第2のマルチプレクサ128に代わりに差し向けられる。このマルチプレクサ128に対するの他の入力は、キィーボードレジスタKBDに接続される。信号SHRE KBD SELがロウ(低)であるとき、マルチプレクサ126の出力は、マウス/キィーボードコネクタ36に結合される。その信号がハイ(高)であるとき、 KBDはマウス/キィーボードコネクタ36に代わりに結合される。インバータ130は、その後にKBDをキィーボードコネクタ34と接続するバッファ132に反転信号SHRE KBD SELを供給する。
【0035】
マルチプレクサ126および128が実際のフィジカルマルチプレクサよりもむしろロジカルブロックであることが認識されるだろう。これは、「マルチプレクサ」がマウスコネクタ35、キィーボードコネクタ34およびマウス/キィーボードコネクタ36に向けられる双方向性の通信を取り扱わなければならないためである。さらに、I/OコントローラASIC32における他の回路は、それらのコネクタとKBDおよびAUXとの間のデータの直列から並列への変換と直列から並列への変換とをを取り扱わなければならない。次いで、それらのデータは、KBDおよびAUXと8751コントローラとの間のパラレルデータとしてコントローラバス100を経由して通信される。
【0036】
したがって、EXT MSC SELおよびSHRE KBD SELを適当に構成することによって、I/OコントローラASIC32はAUXをマウスコネクタ35またはマウス/キィーボードコネクタ36のいずれかと結合する。同様に、I/Oコントローラ32は、KBDをキィーボードコネクタ34またはマウス/キィーボードコネクタ36のいずれかと結合する。EXT MSC SELおよびSHRE KBD SELは、8751コントローラ42によってコントローラバス100を通して供給され、そして、メモリマップされたI/Oレジスタにおいて備えられる。
【0037】
8751コントローラ42によってメモリマップされたI/Oレジスタを通してKPWP EN*およびMKPWR EN*がさらに供給される。これらのレジスタは、3つのコネクタに対して電源を全体的にイネーブルするかまたはディセーブルする。KPWR EN*は、ロウ(低)にアサートされるとき、FET104をオンにし、KPWRに電源を供給し、そして、KCLKおよびKDATを抵抗112および110を通してプルアップする。これらの抵抗112および110は図2の抵抗106に対応する。
【0038】
MKPWR EN*は、ロウ(低)にアサートされるとき、MKPWRおよびMPWRに対してVCCを接続し、そして、図2の抵抗110に対応する抵抗114および116を通してNKCLKおよびMKDATをまたプルアップし、そして、図2の抵抗112に対応する抵抗118および120を通してMCLKおよびMDATをプルアップする。抵抗111〜120は、約2.2kΩであるのが好ましい。
【0039】
図4は、プロセッサ10、I/OコントローラASIC32、8751コントローラ42、マウスコネクタ35、マウス/キィーボードコネクタ36およびキィーボードコネクタ34の間のロジカルな関係およびI/O通信データの流れを示す。上述の説明のように、「8042」型コマンドおよびデータは、プロセッサ10およびI/OコントローラASIC32の間で通信され、そしてそれから、8751コントローラ42に対してメイルボックスレジスタを通して進行する。
【0040】
8042型通信インタフェースを用いて、プロセッサ10は、標準「ポート」P KBDおよびP AUXを経由してコマンドおよびデータ文字を送りかつ受ける。したがって、プロセッサ10が標準のIBM PCシステムにおいて取り付けられたキィーボードデバイスまたはIBM PCシステムにおいて取り付けられた補助デバイスのどちらかに一般的に向けられる一連のコマンドを実行するとき、8751コントローラ42は、P AUXおよびP KBDに向けられるそれらのコマンドおよびデータ文字を処理し、そして、以下に説明するように、もしもエミュレーションモードにあれば、P KBDまたはP AUXを通して適当な応答を戻す。もしもエミュレーションモードになければ、8751コントローラ42は、構成コマンド文字および関連のデータ文字をトラップし、そして、その構成データを蓄え、そしてさらに、補助のレジスタAUXを通して補助デバイスに対して、または、キィーボードレジスタKBD(両方はI/OコントローラASIC32にある)を通してキィーボードに対して構成コマンドおよびデータ文字を通信する。次いで、図3(B)に関連して既述したように、これらのレジスタは、マウスコネクタ35またはマウス/キィーボードコネクタ36のいずれかに対して送られるAUXと、キィーボードコネクタ34またはマウス/キィーボードコネクタ36のいずれかに対して送られるKBDとともに、適当なコネクタに対してそのデータを送る。
【0041】
図5〜14は、低減された電源スタンバイモードに入ることおよびそれから出ることに対応するそれがスリープするかまたはウエークアップするときにシステムCが実行するシステムBIOSにおけるルーチンのフローチャートである。これらのルーチンは、接続されるキィーボードまたはマウスの状態、あるいは、何も接続されていなければエミュレートされたキィーボードおよびマウスの状態をセーブしかつ再格納し、そしてまた、P KBDまたはP AUXを通して向けられるコマンドについてのI/OコントローラASIC32および8751コントローラ42を通しての経路付けを構成する。
【0042】
システムは、ユーザ入力および或るタイムアウト(時間切れ)のような、システム活性に関する種々の出来事に対する応答においてスリープしかつウエークアップする。例えば、もしもシステムCが所定の時間量に対するハードディスクまたは入力デバイスの活性を検出しなければ、タイムアウトに基づくシステム管理割り込みは、スタンバイの低減された電源消費モードにシステムを典型的に入らせる。
【0043】
このスタンバイモードに入るときに、図5に示されるように、BIOSルーチンは、SLEEPルーチン200を実行する。このSLEEPルーチン200は、図6に関連して以下に説明するように、取り付けられるかまたはエミュレートされるキィーボードまたはマウスの構成状態をセーブするSAVE STATEルーチン207を呼び出すことによってステップ202で始まる。
【0044】
キィーボードおよびマウスの状態が一度セーブされれば、SLEEPルーチン200は、スタンバイモードに入ることを8751コントローラ42に指示するステップ204に進む。このモードは、8751コントローラ42が非常に少ない電源を用いる低減された電源消費モードである。次いで、システムCはステップ206で一時停止して、それ自体低減された電源消費モードに入る。システムCがそれ自体そのメモリ12に含まれるデータをロスしないことは留意されるべきである。
【0045】
その代わりに、SLEEPルーチン200は、8751コントローラ42をハイバネーション(不活発)モードに入らせることができる。コンピュータCは電源消費をさらに低減するためにこのモードに入るが、このモードは再スタートのためにより多くの時間を必要とする。SLEEPルーチンは、コンビネーションI/Oチップ16に対するコマンドにより8751コントローラ42に対する電源をシャットオフ(遮断)することによって、8751コントローラ42をこのモードに入らせる。しかし、ハイバネーションモードは、8751コントローラ42における全てのメモリを消去させる。これは、ステップ202でセーブ状態手順を実行する1つの理由であった。
【0046】
図6は、SAVE STATEルーチン207のフローチャートを示す。SAVE STATEルーチン207は、システムCが8751コントローラ42のキィーボード状態を主メモリ12において検索しかつセーブするステップ208で始まる。これは、8751コントローラ42に対して特別の拡張されたコマンドを向けることによって行われる。上述のように、8751コントローラ42は、標準のIBM PC互換性システムにおいて備えられるような標準の8042の機能を含む。それは、DOS世界においてよく知られているように、プロセッサ10によってポート64hに出される或るコマンドに応答する。このコマンドセットは、その後に多数の他のコマンドの1つによって追従される拡張されたコマンド命令を加えることによって、本発明にしたがって拡張される。これらのコマンドは、図15〜25に関連して以下に説明するキィーボードまたはマウスエミュレーションをイネーブルおよびディセーブルすることと、電源供給状態を読み出しかつ書き込むことと、電源をオフにすることと、ここで用いられるように、キィーボード状態を検索することとを含む。
【0047】
その現在の構成を検索するためのPC互換性キィーボードに対する直接的なコマンド文字はない。その代りに、図18〜21に関連して以下に説明する8751コントローラ42におけるキィーボードエミュレーションルーチンは、その構成を変えるコマンド文字がキィーボードに送られるように、現在のキィーボード構成のマップをセーブする。上記エミュレーションルーチンは、キィーボードが取り付けられていると否とかゝわらず、そのように行う。次いで、この状態は、8751コントローラ42に対して拡張されたコマンドを送ることによって検索される。この構成状態は、キィーボードがイネーブルされていると否とにかゝわらずキィーボードLEDがオンであることを反映するデータと、現在のキィーボードモードとを含む。これは、図18〜21に関連して以下に再び説明する。
【0048】
ステップ208においてSAVE STATEルーチン207がキィーボード構成を検索しかつセーブすれば、SAVE STATEルーチン207は、マウスから検索される対応するマウス構成を検索しかつセーブするステップ210に進む。標準のPS/2マウスは、その内部の状態または構成を送ることによって特別のコマンド文字に応答する。したがって、システムCがP AUXに対してこの特別なコマンド文字を送るとき、マウスがプロセッサ10にP AUXを通してその構成を送ることによって応答するか、あるいは、図22〜25に関連して以下に説明する8751コントローラ42におけるマウスエミュレーションルーチンが対応するマウス構成データでもって応答する。また、ステップ210でマウスの現在のフラグがセーブされて、マウスが実際にその構成データを戻したか否かを指示する。マウスエミュレーション性能はコンピュータCにおいて常にイネーブルされるのが好ましいので、このフラグは常に正しいとセットされるべきであり、事実かエミュレートされているかにかゝわらず、システムCは常にマウスを「見ている」。マウスエミュレーションがディセーブルされたときだけ、フラグは偽りにセットされるだろう。システムCが構成データをセーブした後に、SAVE STATEルーチン207は、SLEEPルーチン200に戻るステップ212に進む。
【0049】
図7は、WAKE UPルーチン214のフローチャートである。このWAKE UPルーチン214は、システムCがそのスタンバイモードから出るべきであるという活性またはウエークアップ指示をシステム管理ソフトウェアが受けるとき、システム管理ルーチンの一部として実行される。WAKE UPルーチン214は、8751コントローラ42をウエークアップするステップ215で始まる。もしも8751コントローラ42がステップ204でスタンバイモードにのみ置かれたならば、これは、INT0を経由して8751コントローラ42をウエークアップしかつそのウエークアップ手順を実行することをそれに指示するI/OコントローラASIC32のメールボックスレジスタを通して8751コントローラ42へ非スタンバイフラグを送ることを必要とする。しかし、もしも8751コントローラ42がハイバネーションモードに置かれれば、それは、コンビネーションI/Oチップ16を通してパワーアップ(電源アップ)され、そして、そのメモリ状態が再格納されなければならない。
【0050】
次いで、SAVE STATEルーチン207は、AUXおよびKBDの経路付けをセットアップするI/OコントローラASIC32にデータを供給するSET ACTIVE KEYBOARDルーチン223を実行するステップ216に進む。これは、キィーボードコネクタ34またはマウス/キィーボードコネクタ36のどちらかである正しいフィジカルコネクタにKBDを経路付けする。SET ACTIVE KEYBOARD223は、図8に関連して以下にさらに説明されている。ステップ216において活性なキィーボードを経路付けした後、WAKE UPルーチン214は、SET ACTIVE MOUSEルーチン280を実行する。SET ACTIVE MOUSEルーチン280は、SET ACTIVE KEYBOARDルーチン223のように、マウスコネクタ35またはマウス/キィーボードコネクタ36のいずれかにAUXを経路付けする。SET ACTIVE MOUSEルーチン280は、図10に関連して以下にさらに説明されている。
【0051】
ステップ218で活性なマウスを経路付けした後、WAKE UPルーチン214は、図12に関連して以下にさらに説明するRESTORE STATEルーチン220を実行する。これは、図6におけるステップ208および210でセーブされるデータを検索し、そして、取り付けられたマウスおよびキィーボードならびに8051コントローラ42におけるそれらの対応するエミュレーションルーチンを最後のスタンバイモードに入る前のそれらの状態に構成する。
【0052】
ステップ220でマウスおよびキィーボード状態を再格納した後、WAKE UPルーチン214は、スタンバイ状態からウエークアップに関連した他のシステム管理ルーチンでもって続くステップ222に進む。
【0053】
図8は、SET ACTIVE KEYBOARDルーチン223のフローチャートである。SET ACTIVE KEYBOARDルーチン223は、ステップ224で始まり、P KBDに送られるキィーボードコマンド文字に対して応答する8751コントローラ42においてキィーボードエミュレーションをまずディセーブルする。これは、上述のように、拡張されたコマンドを8751コントローラ42に送ることによって行われる。これは、キィーボードが応答していなければ、キィーボードからのエミュレートされた応答を供給することから8751コントローラ42を妨げ、したがって、キィーボードがキィーボードコネクタ34またはマウス/キィーボードコネクタ36のいずれかにフィジカルに接続されているか否かを直接に決定することをSET ACTIVE KEYBOARDルーチン223に許容する。
【0054】
ステップ224においてキィーボードエミュレーションをディセーブルした後、SET ACTIVE KEYBOARDルーチン223は、キィーボードコネクタ34にKBDを経路付けするステップ226に進む。それは、I/OコントローラASIC32における任意のポートに書き込み、EXT MSE SELをロウ(低)に、また、SHRE KBD SELをロウ(低)にセッティングすることによって、そのようにする。これは、P KBDを通しそのためにKBDを通しての全ての通信をキィーボードコネクタ34に向けさせる。
【0055】
この接続をした後、SET ACT KBDルーチン223は、ステップ228に進み、そして、KEYBOARD CHECKルーチン250を実行する。図9に関連して以下に説明するKEYBOARD CHECK250は、キィーボードが実際に存在しかつP KBDに対する読み出しおよび書き込みに応答可能であるか否かを指示するパラメータを戻す。次いで、SET ACTIVE KEYBOARDルーチン223は、キィーボードが取り付けられているか否かを決定するために、KEYBOARD CHECKルーチン250によって戻されるパラメータを調べるステップ230に進む。
【0056】
もしもそうであれば、SET ACTIVE KEYBOARDルーチン223は、キィーボードが存在していることを指示するフラグでもって戻るステップ232に進む。この時点で、キィーボードがP KBDに対するアクセスに応答可能であるので、KBDおよびそのためのP KBDは、キィーボードコネクタ34に正しく結合される。
【0057】
もしもステップ230でキィーボードが検出されなかったならば、SET ACTIVE KEYBOARDルーチン223は、マウス/キィーボードコネクタ36にKBDを経路付けするステップ234に進む。これは、EXT MSE SELをロウ(低)にかつSHRE KBD SELをハイ(高)にセッティングするI/OコントローラASIC32に対するI/O書き込みによって達成される。次いで、SET ACTIVE KEYBOARDルーチン223は、図9に関連して説明するように、P KBDを通しての通信によってキィーボードの存在をチェックするKEYBOARD CHECKルーチン250を再び実行するステップ236に進む。
【0058】
このチェックの後、SET ACTIVE KEYBOARDルーチン223は、ステップ236で戻されたパラメータを調べるステップ238に進む。もしもキィーボードが検出されたならば、キィーボードがP KBDを通しての通信に応答可能であるように、I/OコントローラASIC32はマウス/キィーボードコネクタ36にKBDを適当に結合し、そして、SET ACTIVE KEYBOARDルーチン223は、ステップ232に進んで、キィーボードが存在していることを指示するパラメータを戻す。
【0059】
もしもステップ238においてキィーボードが検出されなかったならば、SET ACTIVE KEYBOARDルーチン223は、上述のような拡張された8042型コマンドを送ることによって8751コントローラ42おいてキィーボードエミュレーションをイネーブルするステップ240に進む。次いで、SET ACTIVE KEYBOARDルーチン223は、KEYBOARD CHECKルーチン250を再び実行するステップ242に進む。KEYBOARD CHECKルーチン250の一部は、P KBDにリセットを送ることを含む。8751コントローラ42におけるキィーボードエミュレーションは、活性なエミュレーションを始めるためにそのようなリセットを必要とする。したがって、ステップ242でKEYBOARD CHECKルーチン250を実行することは、あたかもキィーボードが取り付けられていたかのようにP KBDを通しての通信にその後に応答する活性なキィーボードエミュレーションを8751コントローラ42に始めさせる。
【0060】
図9は、KEYBOARD CHECKルーチン250の概略を示す。KEYBOARD CHECKルーチン250は、KBDが現在経路付けられているコネクタにキィーボードが存在するか否かを決定する。
【0061】
ステップ252で始まるKEYBOARD CHECKルーチン250は、コマンドに応答するために取り付けられたキィーボード(もしもこれが存在すれば)をフィジカルにイネーブルするように、P KBDに標準のキィーボードイネーブルコマンド文字を送る。次いで、ステップ254で、KEYBOARD CHECKルーチン250は、P KBDにキィーボードリセットコマンド文字を送る。もしもキィーボードが存在していれば、それは、以下の説明において留意されるように、所定の肯定応答シーケンスでもって応答する。
【0062】
次いで、KEYBOARD CHECKルーチン250は、P KBDからの肯定応答文字を受けた否かを決定するステップ256に進む。もしそうであれば、それは、キィーボードパワーオンの完全な応答文字(「OK」)をそれがP KBDから受けたか否かを決定するステップ258に進む。もしそうであれば、KEYBOARD CHECKルーチン250は、より多くのデータがP KBDから入手し得るか否かを決定するステップ260に進む。より多くのデータは、マウスのような、キィーボード以外の他のデバイスが応答を送っていることを指示する。もしもより多くのデータが入手し得ないならば、KEYBOARD CHECKルーチン250は、キィーボードが現在経路付けされているコネクタに存在することを指示するパラメータを戻すステップ262に進む。
【0063】
もしもステップ258でキィーボード存在の肯定応答シーケンスが受けられなかったならば、または、ステップ260でより多くのデータが受けられたならば、KEYBOARD CHECKルーチン250は、キィーボードが現在経路付けされているコネクタに接続されていないことを指示するパラメータを戻すステップ264に進む。
【0064】
もしもステップ256でKEYBOARD CHECKルーチン250がP KBDから肯定応答を受けなかったならば、それは、ステップ266に進み、そして、P KBDから再送応答文字をそれが受けたか否かを決定する。もしもそうでなければ、KEYBOARD CHECKルーチン250は、P KBDにリセットを送ってから長時間が経過したか否かを決定するステップ268に進む。
【0065】
もしもそうであれば、KEYBOARD CHECKルーチン250は、キィーボードが存在しないことを指示するパラメータを戻すステップ270に進む。もしそうでなければ、KEYBOARD CHECKルーチン250は、肯定応答文字を再びチェックするために、ステップ256にループする。
【0066】
もしもステップ266でKEYBOARD CHECKルーチン250がP KBDから再送応答を受けたならば、それは、P KBDによって多すぎる再送が要求されたか否かを決定するステップ272に進む。もしもそうでなければ、KEYBOARD CHECKルーチン250は、P KBDに他のキィーボードリセットコマンド文字を送るためのステップ254へ進む。そうでなければ、それは上述のステップ258に進む。
【0067】
図10は、AUXを適当なコネクタに経路付けているけれども、SET ACTIVE KEYBOARDルーチン223と同様の機能を達成するSET ACTIVE MOUSEルーチン280のフローチャートである。
【0068】
SET ACTIVE MOUSEルーチン280は、8751においてマウスエミュレーションをディセーブルするステップ282で始まる。このステップは、図8のステップ224に対応する。
【0069】
SET ACTIVE MOUSEルーチン280は、ステップ284に進んで、KBDがマウス/キィーボードコネクタ36に接続されているか否かを決定する。もしもそうであれば、SET ACTIVE MOUSEルーチン280は、キィーボードがそのコネクタに接続されていることが知られているので、AUXがマウス/キィーボードコネクタ36に接続されているか否かの決定をスキップして、ステップ286に進む。
【0070】
もしもステップ284でKBDがマウス/キィーボードコネクタ36に接続されていなかったならば、SET ACTIVE MOUSEルーチン280は、マウス/キィーボードコネクタ36にAUXを経路付けるステップ288に進む。SET ACTIVE MOUSEルーチン280は、ステップ290に進んで、マウスがP AUXを通しての通信のために存在するか否かを決定するMOUSE CHECKルーチン310を実行する。SET ACTIVE MOUSEルーチン280は、ステップ292に続き、ステップ290で実行されたMOUSE CHECKルーチン310によって戻されるパラメータをチェックする。もしもマウスが検出されなかったならば、SET ACTIVE MOUSEルーチン280は、マウスコネクタ25にAUXを接続するステップ286に進む。
【0071】
次いで、SET ACTIVE MOUSEルーチン280は、MOUSE CHECKルーチン310を再び実行するステップ294に進む。ステップ296に進むと、ステップ294でMOUSE CHECKルーチン310によって戻されたパラメータがチェックされ、そして、もしもマウスが存在していなければ、SET ACTIVE MOUSEルーチン280は、8751コントローラ42においてマウスエミュレーションをイネーブルするステップ298に進み、次いで、MOUSE CHECKルーチン310を再び実行するステップ300に進む。ステップ298および300は図8のステップ240および242に対応する。
【0072】
もしもステップ292でマウスが検出されなかったか、または、ステップ296でマウスが検出され、そして、ステップ300から常に検出されたならば、SET ACTIVE MOUSEルーチン280は、マウスが現在経路付けられているAUXコネクタに存在するか否かを指示するパラメータでもって戻るステップ302に進む。
【0073】
図11は、MOUSE CHECKルーチン310のフローチャートである。MOUSE CHECKルーチン310の全てのステップは、P AUXがキィーボードとの通信のためのP KBDよりもむしろマウスとの通信のために用いられることと、図8のKEYBOARD CHECKルーチン250のステップ260に対応するステップ320において、もしもより多くのデータが検出されれば、MOUSE CHECKルーチン310がステップ322に進んでマウスの存在を指示するパラメータを戻すこととを除いて、KEYBOARD CHECKルーチン250のステップに対応している。そうでなければ、MOUSE CHECKルーチン310は、ステップ320からステップ324に進んで、マウスが存在しないことを指示するパラメータを戻す。これは、キィーボードが行うように、マウスがリセットコマンド文字に応答してより多くのデータを戻すという事実を反映している。この方法によって、キィーボードはマウスと区別され、そして、マウスの存在はMOUSE CHECKルーチン310によって決定される。それ以外では、ステップ312〜332は、図9のKEYBOARD CHECKルーチン250における対応するものと同一である。
【0074】
図12は、図7において示されるWAKE−UPルーチン214のステップ220で呼び出されるRESTORE STATEルーチン350のフローチャートである。RESTORE STATEルーチン350は、システムに取り付けられるキィーボードおよびマウスの状態または構成を再格納し、そのようなデバイスが取り付けられていると否とにかゝわらず、8751コントローラ42のキィーボードおよびマウスエミュレーションルーチンによる捕捉のための構成コマンドを供給するので、それらのエミュレーションルーチンは次のシャットダウン(遮断)のための構成データをセーブすることができる。
【0075】
RESTORE STATEルーチン350は、ステップ352で始まって、RESTORE KEYBOARDルーチン360を呼び出しする。これは、図13に関連して以下に説明されているが、要約すれば、それは、キィーボード(もしも取り付けられていれば)およびキィーボードエミュレーションルーチンに構成データを再格納する。
【0076】
RESTORE STATEルーチン350は、ステップ354に進んで、システムCに取り付けられるマウスの構成を同様に再格納し、そして、8751コントローラ42におけるマウスエミュレータによる捕捉のために構成データを供給する。次いで、RESTORE STATEルーチン350は、図7のWAKE UPルーチン214のためにステップ356で戻る。
【0077】
図13は、取り付けられたキィーボードのLED構成を再格納するか、または、8751コントローラ42におけるエミュレーションルーチンにその構成情報を少なくとも供給することによって、ステップ362で始まるRESTORE KEYBOARDルーチン360のフローチャートである。RESTORE KEYBOARDルーチン360は、図6において示されるSAVE STATEルーチン202によってセーブされるデータを検索することによってこれを行う。次いで、それは、P KBDを通して適当なキィーボードコマンド文字を送って、キィーボードLEDをそれらの前以ってのプレ−シャットダウン状態にセットさせる。
【0078】
RESTORE KEYBOARDルーチン360は、ステップ364に進んで、キィーボードのモード構成を再格納し、そして、ステップ366で、キィーボードがイネーブルされたかまたはディセーブルされたかを再格納し、キィーボードコマンド文字を書き込むことによって両方の機能を達成する。次いで、RESTORE KEYBOARDルーチン360は、ステップ368でRESTORE STATEルーチン350に戻る。
【0079】
図14は、RESTORE MOUSEルーチン370のフローチャートである。このルーチンは、RESTORE KEYBOARD360のそれと同様の機能を実行する。それは、SLEEPルーチン200が最後に実行されたときにマウスが存在したか否かを決定するステップ372で始まる。この存在は、ステップ210(図6)でセーブされたし、そして、上述のように、マウスエミュレーション性能がイネーブルされるときに常に真実である。もしもそうでなければ、マウスは再構成されるために存在しないので、RESTORE MOUSEルーチン370は、RESTORE STATEルーチン350に戻るステップ374に進む。もしもSLEEPルーチン200が最後に実行されたときにマウスが存在していたならば、RESTORE MOUSEルーチン370は、ステップ372から、マウスが今存在するか否かを決定するステップ376に進む。もしもそうでなければ、RESTORE MOUSEルーチン370は、ステップ374で再び戻る。
【0080】
さもなければ、RESTORE MOUSEルーチン370は、ステップ376からステップ378に進んでマウスポインティングモードを再格納し、ステップ380に進んでマウスリゾリューション(解像度)を再格納し、ステップ382に進んでマウスサンプリング率を再格納し、ステップ384に進んでスケーリングフアクタを再格納し、ステップ386に進んでストリーム/リモートモードを再格納し、そして、ステップ388に進んでラップモードを再格納する。RESTORE KEYBOARDルーチン360におけるように、RESTORE MOUSEルーチン370は、SET ACTIVE MOUSEルーチン280により適当なコネクタにすでにセットされたP AUXにマウスコマンド文字を書き込むことによって、これらの機能を実行する。
【0081】
図15〜25は、キィーボードがP KBDを通してI/Oに応答しかつマウスがP AUXを通してI/Oに応答しているとシステムCが信じているように、キィーボードおよびマウスエミュレーションを供給する8751コントローラ42に備えられているルーチンのフローチャートである。図15は、8751コントローラ42における主要処理ループであるMAIN8751ルーチン400のフローチャートである。MAIN8751ルーチン400は、連続的なループであって、割り込みルーチン指示システムおよびデバイスI/O活性からフラグを受ける。特に、コマンドおよびデータがプロセッサ10またはデバイスからを受けられたとき、割り込みがI/OコントローラASIC32から供給される。次いで、コマンドおよびデータは、以下に説明するコマンド解釈シーケンスにおいて処理される。
【0082】
当業者にとって明らかなように、図15に示されているMAIN8751ルーチン400は、8751コントローラ42が実行する多数の他の機能を省略した。フローチャートは、ハイレベルのP KBDおよびP AUXインタフェースと、ロウレベルの割込みルーチンを有するインタフェースと、取り付けられたキィーボードおよびマウスデバイスのパワーダウンとを示すことに特に向けられている。
【0083】
以下の説明において、フィジカルデバイス自体に対するキィーボードおよびマウスエミュレーションの関係に留意することは重要である。さらに、エミュレーションは、コマンド文字を捕捉することと、プロセッサ10にそれらの文字に対する応答を供給することとの2つの顕著な機能を含む。マウスおよびキィーボードエミュレーションは、以下に説明するルーチンがその結果として生じる構成状態をセーブするためにプロセッサ10からのマウスおよびキィーボード構成コマンド文字をトラップするセンスにおいて常に活性である。もしもマウスまたはキィーボードがフィジカルに存在すれば、これらのコマンド文字はそのデバイス自体にさらに送られる。
【0084】
しかし、マウスおよびキィーボード応答エミュレーションは、もしもシステムCがスタンバイから最後に出た後にマウスまたはキィーボードがプラグインされなかったならば、単に活性である。もしも応答のエミュレーションが活性でありかつマウスまたはキィーボードがそのときに備えられていれば、マウスおよびキィーボードからのデータは、やはりプロセッサ10に送り込まれる。しかし、マウスおよびキィーボードに対するコマンドは、エミュレーションルーチンによってトラップされかつ応答されて、マウスおよびキィーボードには送られない。
【0085】
MAIN8751ルーチン400は、ステップ402で始まって、可変のKBD RESPを真と比較する。KBD RESPは、8751コントローラ42がキィーボード応答をエミュレートすべきであるか否かを指示し、そして、図16に関連して以下に説明するデバイス割り込みルーチンDEVICE INT 8751 450と、図17に関連して以下に説明するシステム割り込みルーチンSYS INT 8751 500とによってセットおよびリセットされる。実際に接続されているキィーボードからのデータは、KBD RESPが真であると否とにかゝわらず、以下に説明するDEVICE INT 8751ルーチン450によってプロセッサ10に送られる。
【0086】
もしもKBD RESPが真であれば、MAIN 8751ル−チン400は、図18〜21に関連して以下に説明するキィーボードエミュレーションルーチンKBD EMULATE500からプロセッサ10に送るためにデータが入手可能であるか否かを決定するために、キィーボード応答データ列を調べるステップ404に進む。この列は、KBD EMULATEルーチン550に或るキィーボードコマンド文字に対する多重応答を提供することを許容する先入れ先出し列である。
【0087】
もしもデータがキィーボード応答データ列において入手可能であれば、MAIN 8751ルーチン400は、ステップ404からステップ406に進んで、キィーボード応答データ列における文字をプロセッサ10に送り、次いで、ループの初めのステップ402に進む。
【0088】
もしもステップ404でデータがキィーボード応答データ列に存在しなかったか、または、ステップ402でKBD RESPが偽りであったならば、MAIN 8751ルーチン400は、可変のAUX RESPを真と比較するステップ408に進む。AUX RESPはKBD RESPに対応する機能をAUXのために実行し、そして、ステップ402、404および406におけるように、もしもAUX RESPが真であれば、ルーチンは、補助応答データ列をチェックするためのステップ410に進み、そして、データが入手可能であれば、ステップ412で補助応答データ列からP AUXを通してプロセッサ10に文字を送り、次いで、ループの初めのステップ402に進む。
【0089】
もしもステップ410で補助応答がその列において入手できなかったか、または、ステップ408でAUX RESPが偽りであったならば、MAIN 8751ルーチン400は、フラグSTANDBYが真であるか否かを決定するステップ414に進む。
【0090】
STANDBYは、上述のように、I/Oデバイスへの電源をシャットオフし次いでパワーダウンすることを8751コントローラ42に指示するプロセッサ10からの拡張されたコマンドによってセットされる。プロセッサ10は、図5において示されるステップ204でスタンバイに入るために、8751コントローラ42に拡張されたコマンドを送る。もしもステップ204(図5)でシステムCがその代わりにハイバネーションモードに置かれたならば、8751コントローラ42は、その代わりにパワーダウンされ、そして、その状態を再格納する始動ルーチン(図示せず)を実行した後のみ、ステップ402でMAIN 8751ルーチン400に再び入る。もしもステップ414でSTANDBYが偽りであれば、MAIN 8751ルーチン400はループの初めのステップ402に進む。
【0091】
しかし、もしもSTANDBYが真であれば、MAIN 8751ルーチン400はステップ414からステップ416に進んで、キィーボードコネクタ34、マウスコネクタ35およびマウス/キィーボードコネクタ36をパワーダウンする。8751コントローラ42は、I/OコントローラASIC32におけるメモリマップされたI/Oレジスタに対する書き込みによりKPWR EN*およびMKPWR EN*をアサートすることによってこれを行って、それらのコネクタに対する電源をカットオフする。次いで、MAIN 8751ルーチン400は、ステップ418に進んで、8751コントローラ42自身における特別なレジスタにおける特定のI/Oビットに書き込むことによって、8751コントローラ42を中断した状態に行かせる。8751コントローラ42は、その種々の割り込みソースの1つから割り込みを受けるときまでこの低減された電源一時停止状態に留まり、このときには、MAIN 8751ルーチン400は、I/OコントローラASIC32に対するメモリマップされたI/O書き込みを通してKPWR EN*およびMKPWR EN*をこのときに否定することによって、キィーボードコネクタ34、マウスコネクタ35およびマウス/キィーボードコネクタ36に電源を戻すステップ420に進む。次いで、MAIN 8751ルーチン400は、ステップ422でSTANDBYフラグをリセットし、そして、その初めのステップ402にループする。
【0092】
図16は、KBDおよびAUXからの割り込みを特別に取り扱う8751コントローラ42における割り込みルーチンの一部であるDEVICE INT 8751ルーチン450のフローチャートである。これらの割り込みは、I/OコントローラASIC32からINT0を通して8751コントローラ42に送られる。
【0093】
DEVICE INT 8751ルーチン450は、ステップ452で始まって、KBDまたはAUXからのエラーをチェックする。これは、I/OコントローラASIC32がマウスコネクタ35、キィーボードコネクタ34またはマウス/キィーボードコネクタ36と通信することの試みにおいてエラーに遭遇したことを指示する。DEVICE INT 8751ルーチン450は、I/0コントローラASIC32におけるメモリマップされたI/Oレジスタを通してそのようなエラーの存在とタイプとを決定する。もしもエラーが存在しなければ、これは、それらのコネクタの1つに取り付けられているデバイスからの正常な応答を指示するので、DEVICE INT 8751ルーチン450は、ステップ454に進んで、例えば、KBDまたはAUXからP KBDまたはP AUXを通してプロッセッサ10にデータバイトまたはコマンド文字応答を伝送することによって、他のデバイス割り込みを取り扱う。
【0094】
もしもステップ452で、デバイスエラーがこの割り込みに起因していることをDEVICE INT 8751ルーチン450が検出したならば、それは、エラーが発送要求(RTS)エラーであったか否かを決定するステップ456に進む。I/OコントローラASIC32が経路付けされたコネクタにAUXまたはKBDのいずれかからデータを送ろうとするときにRTSエラーは発生し、そして、タイムアウトは取り付けられたデバイスが応答する前に発生する。これは、例えば、マウスまたはキィーボードがAUXまたはKBDに経路付けされたキィーボードコネクタ34、マウスコネクタ35またはマウス/キィーボードコネクタ36に取り付けられていなかったならば、発生する。
【0095】
もしもRTSエラーがなければ、DEVICE INT 8751ルーチン450は、通常は他のデバイスエラーを取り扱うステップ458に進む。しかし、もしもRTSデバイスエラーであれば、DEVICE INT 8751ルーチン450は、ステップ456からステップ460に進んで、最後に送られたデバイスデータがKBDに対してであったか否かを決定する。
【0096】
もしもそうであれば、DEVICE INT 8751ルーチン450は、2つの変数KBD RESETおよびKBD EMULATEが真であるか否かを決定するステップ462に進む。キィーボードリセットコマンド文字がプロセッサ10によってP KBDに送られるとき、KBD RESETは真にセットされ、そして、これは、キィーボードエミュレーションを始めるための有用な時間を提供する。KBD RESETは図18〜21に関連して以下にさらに説明されている。KBD EMULATEは、プロセッサ10からの特別の拡張されたコマンドによって真にセットされ、そして、プロセッサ10が8751コントローラ42のキィーボードエミュレーション特徴をイネーブルしたことを指示する。それは、さらに図17に関連して以下にさらに説明されている。
【0097】
ステップ462でKBD RESETおよびKBD EMULATEが真であれば、DEVICE INT 8751ルーチン450は、KBD RESPを真にセットするステップ464に進む。これは、キィーボードエミュレーション応答を始めるためのステップ402でMAIN 8751ルーチン400にフラグを供給する。
【0098】
もしもステップ460で最後に送ったデータがKBDにではなかって、最後のデータがAUXに送られたならば、DEVICE INT 8751ルーチン450は、2つの変数AUX RESETおよびAUX EMULATEが真であるか否かを決定するステップ466に進む。AUX RESETは、ステップ462において述べたようにキィーボードデバイスのためにKBD RESETを行うように、マウスデバイスへの書き込みに関してKBD RESETと同じ機能を実行し、そして、AUX EMULATEはKBD EMULATEに対応する。もしもAUX RESETおよびAUX EMULATEが真であれば、DEVICE INT 8751ルーチン450は、ステップ464でKBD RESETが真にセットされたのと同じ理由で、AUX RESPを真と等しくセットするステップ468に進む。AUX RESPは、MAIN 8751ルーチン400のステップ408で用いられる。
【0099】
もしもステップ462または466でKBD RESETまたはAUX RESETが真でなかったならば、DEVICE INT 8751ルーチン450は、エミュレーションがイネーブルされないならばRTSエラーのための通常の応答であるタイムアウトエラーをシステムに送るステップ470に進む。これは、デバイスが書き込みに応答しないときの標準のデバイスエラーを表わしている。
【0100】
KBD RESPおよびAUX RESPは、キィーボードまたはマウスに送られる最後のコマンドがリセットであったときに単に真にセットされるが、これは、そうでなければ、それらがいつ発生していたとしても、断続的なデバイスエラーが8751コントローラ42をエミュレーションモードに入らせることができたからである。
【0101】
DEVICE INT 8751ルーチン450は、ステップ454、458、464、468および470からステップ472に進んで、割り込みから戻る。
【0102】
図17は、プロセッサ10からの割り込みを取り扱うためのSYS INT 8751ルーチン500のフローチャートである。この割り込みルーチンは、プロセッサ10からI/OコントローラASIC32を通しての8042型書き込みによって活性化され、そして、データおよびコマンド文字と、IBM PC互換性システムにより典型的に取り扱われる他の8042型のコマンドとを含むことができる。I/0コントローラASIC32は、INT0を通してそのような書き込みを8751コントローラ32に知らせ、次いで、8751コントローラ42は、I/OコントローラASIC32におけるメモリマップされたI/Oレジスタを読み取ることによってプロセッサ10がその割り込みのソースであったことを決定する。この決定は、図示されていない割り込み処理ルーチンによってなされる。
【0103】
SYS INT 8751ルーチン500は、割り込みがP KBDへの書き込みまたはKBDにデータを送ることの要求によって起されたか否かを決定することによって、ステップ502で始まる。もしもそのような要求がなければ、SYS INT 8751ルーチン500は、P AUXへの書き込みまたはAUXにデータを送ることの要求によって割り込みが起されたか否かを決定するステップ504に進む。もしもそうでなければ、SYS INT 8751ルーチン500は、コマンドがイネーブルまたはディセーブルキィーボードあるいは補助デバイスエミュレーションコマンドであったか否かを決定するステップ505に進む。
【0104】
もしもそのようなコマンドであれば、SYS INT 8751ルーチン500は、キィーボードまたは補助デバイスエミュレーションをほゞイネーブルまたはディセーブルするステップ506に進む。ディセーブルのためには、それは、単にKBD RESPおよびKBD EMULATEか、あるいは、AUX RESPおよびAUX EMULATEかを単に誤りにセットする。イネーブルのためには、それは、KBD EMULATEか、あるいは、AUX EMULATEかを真にセットする。DEVICE INT 8751ルーチンは、ステップ464および468でキィーボードまたは補助エミュレーションがイネーブルされることを許容するために、これらのフラグを用いる。
【0105】
もしもステップ505でイネーブルまたはディセーブルでなければ、SYS INT 8751ルーチン500は、上述のような拡張されたコマンドを含む他のシステムコマンドを処理するステップ507に進む。これらの拡張されたコマンドは、8751コントローラ42をパワーダウンすることを含み、そしてまた、キィーボード構成データを戻すことも含む。
【0106】
もしもステップ502で割り込みを指示したデータがKBDに送られるべきであれば、SYS INT 8751ルーチン500は、KBD EMULATEルーチン550を実行するステップ508に進む。キィーボードデータは、エミュレーションモードが活性であると否とにかかわらず、KBD EMULATEルーチン550に送られる。なぜならば、もしもプロセッサ10が8751コントローラ42にパワーダウンすることを指示すれば、KBD EMULATEルーチン550はシステムに構成データを戻さなければならず、そして、それがこの構成データを予め捕捉したならば、それはこれを行うことのみができるからである。KBD EMULATEルーチン550は、図18〜21に関連して以下に説明されている。SYS INT 8751ルーチン500は、ステップ508からステップ510に進んで、KBD RESPが真であるか否かを決定する。もしもそうでなければ、SYS INT 8751ルーチン500は、コマンドまたはデータ文字をKBDに送って、取り付けられたキィーボードに応答することを許容するステップ512に進む。
【0107】
もしもステップ504でデータが補助デバイスに送られるべきであることを割り込みが指示したならば、SYS INT 8751ルーチン500は、AUXおよびその関連した変数のためにステップ508、510および512に対応する機能を実行するために、ステップ514、516および518に進む。
【0108】
SYS INT 8751ルーチン500は、ステップ506、507、510、512、516および518からステップ520に進んで、割り込みから戻る。
【0109】
キィーボードエミュレーションは、図18〜21にフローチャートを示すKBD EMULATEルーチン550によって取り扱われる。KBD EMULATEルーチン550は、ステップ508で図17に示されるSYS INT 8751ルーチン500からデータを受け、そして、2つの主要な機能を実行する。第1に、それは、構成コマンド文字を捕捉し、その結果として生じる構成状態をセーブするので、プロセッサ10は、その構成を検索することができ、そして、プロセッサ10が8751コントローラ42にスタンバイモードに入ることを指示するときにそれを蓄えることができる。第2に、それは、キィーボードエミュレーションがKBD RESPによって示されるようにイネーブルされるとき、標準のIBM PC互換性のキィーボードの応答をエミュレートする。
【0110】
KBD EMULATEルーチン550は、ステップ552で始まって、それが再送コマンド文字か否かを決定するためにKBDへ送られるべきデータをチェックする。もしもそうであれば、KBD EMULATEルーチン550は、KBDからキィーボード応答データ列に送られる最後のバイトを入れるステップ554に進む。次いで、この応答列は、図15に示されるように、データが次いでステップ406でプロセッサ10に送られるMAIN 8751ルーチン400のステップ404で読み出されるだろう。次いで、ステップ556で、KBD RESETが偽りにセットされて、プロセッサ10によってP KBDに送られる最後のコマンド文字がリセットコマンドでなかったことを指示する。
【0111】
もしもステップ552で、再送コマンドがP KBDに送られなかったことをKBD EMULATEルーチン550が決定したならば、KBD EMULATEルーチン550は、このデータが再開シーケンスとして取り扱われるべきであるか否かを決定するステップ558に進む。IBM PC互換性のキィーボードのために予定された或るコマンド文字は、1つよりも多くの情報バイトを必要とし、そして、そのようなコマンド文字が予め送られたならば、この文字は、それらに続く文字を取り扱うルーチンによって取り扱われなければならない。これは、図20に関連して以下にさらに説明されている。
【0112】
もしもそのような多重バイトコマンドシーケンスにおいてでなければ、KBD EMULATEルーチン550は、ステップ558からステップ560に進んで、コマンド文字が無効なコマンド文字または正常なデータ文字であるか否かを決定する。もしも無効であれば、それは、もしもコマンド文字が悪かったならば、キィーボード応答データ列に再送要求文字を入れ、そして、ステップ560でのデータが無効なコマンド文字ではなく、その代りに、P KBDに送られるまさに正常なデータであったならば、単に何も行われないステップ562に進む。次いで、ステップ564で、KBD EMULATEルーチン550は、ステップ556および562の両方から戻る。
【0113】
もしもプロセッサ10からI/OコントローラASIC32を通して送られるデータが悪いコマンド文字でなくかつデータではなかったことをステップ560でKBD EMULATEルーチン550が決定したならば、それは、図19に示されるステップ600に進む。ステップ600は、プロッセッサ10がP KBDに送ったコマンド文字に依存する種々のルーチンに分岐するジャンプ(飛越し)テーブルを示す。或るコマンドは次のデータバイトがステップ558において説明されたような再開コマンドシーケンスによって取り扱われることを必要とし、そして、或るコマンドはキィーボード構成を変え、そして、或るコマンドはプロセッサ10に送られるべき応答を必要とする。この分岐は、これらのコマンドの各々が実行されるべき他の標準の機能(図示せず)を必要とするかもしれないけれども、これらの要求に基づいている。
【0114】
もしもコマンドが状態セットコマンド、交互選択モードコマンド、キィーボード繰り返し率セットコマンドまたは個別キィーセットコマンドであるとき、KBD EMULATEルーチン550は、2バイトコマンドシーケンスであるように、再開ルーチンエントリーポイントを蓄えるステップ602に進み、次いで、キィーボード応答データ列に肯定応答文字を置くステップ604に進む。KBD EMULATEルーチン550は、それらのコマンドを含むかもしれない構成データのいくつかをセーブすることができるが、それらは滅多に用いられないので、この実施例においては考慮する必要がない。
【0115】
もしもコマンドがエコーコマンド、非動作コマンドまたはキィーボードインディケータ増強コマンドであるとき、KBD EMULATEルーチン550は、キィーボード応答データ列に適当な応答を置くステップ606に進む。これらのコマンドは、セーブされるべき構成データを必要としないが、送られる応答を必要とする。
【0116】
もしもコマンドがイネーブルキィーボードコマンド、デフォルト(省略時)ディセーブルコマンドまたはデフォルト状態セットコマンドであれば、KBD EMULATEルーチン550は、キィーボード応答データ列に肯定応答文字を置くステップ608に進み、次いで、特有のコマンドによってセットされるような構成状態をセーブするステップ610に進む。その状態は8751コントローラ42においてランダムアクセスメモリにセーブされ、そして、その状態は図17に示されるSYS INT 8751ルーチン500のステップ506で特別な拡張された8042コマンドシーケンスによって供給されることができる。これは、この拡張されたコマンドに対する応答においてプロセッサ10にセーブされたデータを送ることを必要とする。
【0117】
もしもコマンドが全キィーセットコマンドであれば、KBD EMULATEルーチン550は、キィーボード応答データ列に肯定応答文字を置くステップ612に進む。このコマンドの機能は、ステップ610でのように構成状態データに再びセーブされることができるが、このコマンドのまれな利用のために、その必要がないと考えられる。
【0118】
ステップ604、606、610および612から、KBD EMULATEルーチン550は、KBD RESETを偽りにセットして、P KBDへの最後のコマンドがリセットでなかったことを示すステップ614に進み、そして、ステップ616で戻る。
【0119】
もしもステップ600でコマンドが再送コマンドであれば、KBD EMULATEルーチン550は、ステップ600から、再送機能を実行するステップ554に進む。もしもステップ600でコマンドがリセットコマンドであれば、KBD EMULATEルーチン550は、ステップ500に進み、そして、図21に関連して以下に説明されているリセット機能を実行する。
【0120】
もしもステップ558でそれが再開コマンドシーケンスにおいてであったことをKBD EMULATEルーチン550が決定したならば、それは図20に示されているステップ650に進む。ステップ650は、それが中にあることをKBD EMULATEルーチン550が決定したコマンドシーケンスの第2の文字に基づく適当なジャンプを実行するジャンプテーブルを示す。
【0121】
もしもコマンドシーケンスが状態セットまたは交互モードセットコマンドシーケンスであれば、KBD EMULATEルーチン550は、ステップ650からステップ652に進んで、コマンドにしたがってセットされるような状態をセーブする。状態セットは、たとえば、LEDの状態をセットし、そして、交互モードセットは、キィーボードモードをセットする。次いで、ステップ654で、適当な応答または肯定応答がキィーボード応答データ列に置かれる。
【0122】
もしもステップ650で、キィー繰り返し率セットコマンドが決定されれば、それは可能であるけれども、その状態はセーブされない。その代わりに、KBD EMULATEルーチン550は、キィーボード応答データ列に肯定応答文字を置くステップ656に進む。
【0123】
もしもステップ650で、個別キィーセットコマンドシーケンスが実行されていると決定されれば、KBD EMULATEルーチン550は、個別キィーセットコマンドのために適当であるキィーボードディセーブル状態をセーブするステップ658に進み、次いで、ステップ656に進む。ステップ654および656の両方から、KBD EMULATEルーチン550は、KBD RESETを偽りにセットするステップ660に進み、次いで、戻りのステップ662に進む。
【0124】
もしもステップ600でリセットコマンドが決定されれば、KBD EMULATEルーチン550は、図21におけるステップ700に進む。このコマンド文字に対する応答において、それは、LEDをリセットし、3つの操作モードをセットし、そして、LEDの構成状態、そのモードおよびキィーボードのイネーブル/ディセーブル状態をセーブする。
【0125】
次いで、ステップ702でKBD EMULATEルーチン550は、リセットコマンドがそのようなコマンドシーケンスをキャンセルするように、それが予め存在したかもしれない再開コマンドシーケンスをクリアする。
【0126】
KBD EMULATEルーチン550は、ステップ704に続いて、キィーボード応答データ列をクリアし、ステップ706でキィーボード応答データ列に肯定応答を入れ、そして、ステップ708でキィーボード応答データ列にキィーボードOK応答を入れる。KBD EMULATEルーチン550は、これがリセットコマンドであったかのように、ステップ709でKBD RESETを真にセットし、そして、ステップ710で戻る。
【0127】
マウスまたは他のポインタデバイスは、図22〜25においてのフローチャートで示されているAUX EMULATEルーチン750によって取り扱われる。AUX EMULATEルーチン750は、ステップ518で図17に示されるSYS INT 8751ルーチン500からデータを受け、そして、KBD EMULATEルーチン550と同様の2つの主要な機能を実行する。第1に、それは、構成コマンド文字を捕捉し、そして、その結果として生じる構成状態をセーブするので、プロセッサ10は、このプロセッサ10がスタンバイモードを入ることを8751コントローラ42に指示するとき、その構成を検索し、そして、それを蓄えることができる。第2に、それは、AUX RESPによって示されるように、マウスエミュレーションがイネーブルされるとき、標準のIBM PS/2互換性のマウスの応答をエミュレートする。
【0128】
AUX EMULATEルーチン750は、ステップ752で始まって、マウスがラップモードにあることをAUXのための現在の構成セッティングが指示しているか否かを決定する。もしもそうであれば、AUX EMULATEルーチン750は、プロセッサ10がリセットコマンド文字を送ったか否かを決定するステップ754に進む。もしもそうでなければ、AUX EMULATEルーチン750は、プロセッサ10がラップモードリセットコマンド文字を送ったか否かを決定するステップ756に進む。もしもそうでなければ、ラップモードはイネーブルされるので、AUX EMULATEルーチン750は、ステップ758でシステムCからのデータを補助応答データ列に入れ、そして、ステップ760で戻る。そうでなければ、AUX EMULATEルーチン750は、以下に説明するステップ808に進む。
【0129】
もしも接続されたかまたはエミュレートされたマウスがラップモードにないことをステップ752でAUX EMULATEルーチン750が決定したならば、AUX EMULATEルーチン750は、それが再送コマンド文字であるか否かを決定するためにAUXに送られるべきデータをチェックするステップ762に進む。もしもそうであれば、AUX EMULATEルーチン750は、AUXから送られる最後のバイトを補助応答データ列に入れるステップ764に進む。次いで、この応答列は、図15に示されているように、データがステップ412でプロセッサ10に送られるMAIN 8751ルーチン400のステップ410で読み出されるだろう。次いで、ステップ766で、AUX RESETが偽りにセットされて、プロセッサ10によってP AUXに送られる最後のコマンド文字がリセットコマンドでなかったことが指示される。
【0130】
もしもステップ762で再送コマンドがP AUXに送られてこなかったことをAUX EMULATEルーチン750が決定したならば、AUX EMULATEルーチン750は、このデータが再開シーケンスとして取り扱われるべきであるか否かを決定するステップ768に進む。IBM PS/2互換性のマウスのために予定された或るコマンド文字は、1バイトよりも多い情報を必要とし、そして、もしもそのようなコマンドが予め送られた文字であったならば、この文字は、それらに続く文字を取り扱うルーチンによって取り扱われなければならない。これは、図24に関連して以下にさらに説明されている。
【0131】
もしもそのような多重バイトコマンドシーケンスにおいてでなければ、AUX EMULATEルーチン750は、ステップ768からステップ770に進んで、コマンド文字が無効なコマンド文字または正常なデータ文字であるか否かを決定する。もしもそうであれば、それは、コマンドが悪かったなら補助応答データ列に再送要求文字を入れ、そして、ステップ770でのデータが無効なコマンドではなくてP AUXに送られたまさに正常なデータなら単になにもしないステップ772に進む。次いで、ステップ774でAUX EMULATEルーチン550はステップ766および772の両方から戻る。
【0132】
もしもステップ770でプロセッサ10からI/OコントローラASIC32を通して送られるデータが悪いコマンド文字ではなくてデータでもなかったことをAUX EMULATEルーチン550が決定したならば、それは、図23に示されるステップ800に進む。ステップ800は、プロセッサ10がP AUXへ送るコマンド文字に依存している種々のルーチンに分岐するジャンプテーブルを示す。或るコマンドは次のデータバイトがステップ768において記述されたように再開コマンドシーケンスによって取り扱われることを必要とし、そして、或るコマンドはマウス構成を変え、そして、或るコマンドはプロセッサ10に送られるべき応答を必要とする。この分岐は、これらのコマンドの各々が実行されるべき他の標準の機能(図示せず)を必要とするかもしれないけれども、これらの必要性に基づいている。
【0133】
もしもコマンドがリゾリューションセットコマンドまたはサンプリング率セットコマンドであれば、AUX EMULATEルーチン750は、これが2バイトコマンドシーケンスであるかのように、再開ルーチンエントリーポイントを蓄えるステップ802に進み、次いで、補助応答データ列に肯定応答文字を置くステップ804に進む。
【0134】
もしもコマンドが状態要求コマンド、データ読み出しコマンドまたはデバイスタイプ読み出しコマンドであれば、AUX EMULATEルーチン750は、補助応答データ列に適当な応答を置くステップ806に進む。もしもコマンドが状態要求コマンドであったならば、これは、以下に説明するステップ810でセーブされるような3バイト構成状態データで応答することを必要とするだろう。これは、もしもマウスが接続されていなければエミュレーションルーチンによってセーブされるように、マウスの構成状態をシステムに供給する。
【0135】
もしもコマンドがスケーリングリセットコマンド、スケーリングセットコマンド、ストリームモードセットコマンド、ラップモードリセットコマンド、ラップモードセットコマンド、リモートモードセットコマンド、イネーブルコマンド、ディセーブルコマンドまたはデフォルトセットコマンドであれば、AUX EMULATEルーチン750は、補助応答データ列に肯定応答文字を置くステップ808に進み、次いで、特定のコマンドによって決定されるような構成状態をセーブするステップ810に進む。この状態は、8751コントローラ42においてのランダムアクセスメモリにセーブされ、次いで、その状態は、ステップ806に示されるようなP AUXに送られる状態要求コマンド文字によって供給されることができる。
【0136】
AUX EMULATEルーチン750は、ステップ804、806および810からステップ812に進んで、AUX RESETを偽りにセットして、P AUXに対する最後のコマンドがリセットでなかったことを示し、そして、ステップ814で戻る。
【0137】
もしもコマンドが再送コマンドであれば、AUX EMULATEルーチン750は、ステップ800から、再送機能を実行するステップ764に進む。もしもステップ800でコマンドがリセットコマンドであれば、AUX EMULATEルーチン750は、ステップ900に進み、そして、図25に関連して以下に説明されているようなリセット機能を実行する。
【0138】
もしもステップ768でそれが再開コマンドシーケンスにあったことをAUX EMULATEルーチン750が決定したならば、それは、図24に示されるステップ850に進む。ステップ850は、それが中にあることをAUX EMULATEルーチン550が決定した2バイトコマンドシーケンスに基づいて適当なジャンプを実行するジャンプテーブルを示す。
【0139】
もしもそのコマンドシーケンスがリゾリューションセットまたはサンプリング率セットコマンドシーケンスであれば、AUX EMULATEルーチン750は、ステップ850から、特有のコマンドにしたがって状態をセーブするステップ852に進む。次いで、ステップ854で、適当な応答または肯定応答が補助応答データ列に置かれる。次いで、AUX RESETがステップ856で偽りにセットされ、そして、AUX EMULATEルーチン750はステップ858で戻る。
【0140】
もしもリセットコマンドがステップ754またはステップ800で決定されれば、AUX EMULATEルーチン750は、図25におけるステップ900に進む。このコマンドに対する応答においては、それは、ステップ900で最初にデフォルト状態にリセットし、そして、その状態をセーブする。
【0141】
次いで、ステップ902で、AUX EMULATEルーチン750は、リセットコマンドがそのようなコマンドシーケンスをキャンセルするように、それが予めそこにあったかもしれない再開コマンドシーケンスをクリアする。
【0142】
ステップ904に続いて、AUX EMULATEルーチン550は、補助応答データ列をクリアし、ステップ906で補助応答データ列に肯定応答を入れ、そして、ステップ908で補助応答データ列に補助OK、OK応答を入れる。次いで、AUX EMULATEルーチン750は、ステップ909でAUX RESETを真にセットし、そして、ステップ910で戻る。
【0143】
当業者によっって容易に認識され得るように、本発明に従って構成されるシステムは、キィーボードおよびマウスエミュレーションルーチンを備えることによって多数の利益を提供する。それは、ラップトップまたはノートブックシステムのユーザに、それらのシステムを単にスタンバイに置き、次いで、キィーボードおよびマウスが接続されるコネクタを切替ることを許容する。システムがスタンバイから出るとき、8751コントローラ42エミュレーションルーチンと協働するBIOSルーチンは、キィーボードおよびマウスの存在を検出し、そして、それらのデバイスをKBDおよびAUXに対応するように適当にマップし、次いで、正常な実行が再開されるのを許容する。さらに、電源がキィーボードおよびマウスに対してシャットダウンされて、電源消費をセーブしても、これらのデバイスは、スタンバイに入ったのと同じ状態にあるように見えるだろう。これは、キィーボードまたはマウスがこの構成データを通常破壊するデバイスからフィジカルに取り外されていたと否とにかゝわらず、そのとおりである。
【0144】
さらに、システムの始動時に、たとえキィーボードまたはマウスが備えられていなくても、それは、(動作中のシステムソフトウェアが8751コントローラ42に備えられるようなデバイスエミュレーションのためにキィーボードおよびマウスドライバを備えることを強制されたであろうように)、スタンバイ状態における間に遅れて備えられ、そして、スタンバイを離れて活性になることができる。
【0145】
上述の実施例はI/OコントローラASIC32および8751コントローラ42においてキィーボードおよび補助制御回路を備えているけれども、それがその代わりにたくさんの異なるチップまたは単一のチップに備えられ得ることが認識されるだろう。デバイスの応答をエミュレートすることおよび構成データを捕捉することの原理は、同じである。
【0146】
そのようなシステムがキィーボードおよびマウスに限定されず、システム操作の間に備えられ、パワーアップされ、そして、パワーダウンされるいかなる補助デバイスにも適用され得ることは、容易に理解されるだろう。これは、P AUXを通しての通信に応答するために備えられる他のタイプのポインティングデバイスにとっては、特に真実である。
【0147】
上述の実施例においては、プロセッサ10はシャットダウンの前にキィーボードおよびマウスの構成を検索しかつセーブするけれども、このデータは、勿論、分離されているASIC、ディスクまたは不揮発性メモリのような他のどこかで検索されかつセーブされることができ、あるいは、8751に保持されることもできる。
【0148】
さらに、上述の実施例においては、構成データが8751キィーボードコントローラ42によって捕捉されるけれども、これは、勿論、I/Oコントローラ32、プロセッサ10または他の回路のような他のどこかで行われることができる。
【0149】
本発明の上述の開示および記載はそれを図示しかつ説明するものであるが、図示の回路、構成および操作方法と同様に、サイズ、形状、材質、構成要素、回路要素、配線接続および接点についての種々の変更は、本発明の精神から逸脱することなく行われることができる。
【図面の簡単な説明】
【図1】本発明による方法および回路を実施することができるコンピュータシステムのブロック図である。
【図2】本発明が典型的に実施されるコンピュータシステムの要部を詳細に示すブロック図である。
【図3】(A)は本発明によるキィーボードおよび補助デバイス接続のフィジカルデータパスを示す概略図であり、(B)は本発明によるキィーボードおよび補助デバイス接続のフィジカルデータパスを示す回路図である。
【図4】本発明によるキィーボードおよび補助デバイス接続のフィジカルおよびロジカルデータパスを示すブロック図である。
【図5】本発明によるシステムBIOSに備え付けられるスリープルーチンのフローチャートである。
【図6】本発明によるシステムBIOSに備え付けられるSAVE STATEルーチンのフローチャートである。
【図7】本発明によるシステムBIOSに備え付けられるWAKE UPルーチンのフローチャートである。
【図8】本発明によるシステムBIOSに備え付けられるSET ACTIVE KEYBOARDルーチンのフローチャートである。
【図9】本発明によるシステムBIOSに備え付けられるKEYBOARD CHECKルーチンのフローチャートである。
【図10】本発明によるシステムBIOSに備え付けられるSET ACTIVE MOUSEルーチンのフローチャートである。
【図11】本発明によるシステムBIOSに備え付けられるMOUSE CHECKルーチンのフローチャートである。
【図12】本発明によるシステムBIOSに備え付けられるRESTORE STATEルーチンのフローチャートである。
【図13】本発明によるシステムBIOSに備え付けられるRESTORE KEYBOARDルーチンのフローチャートである。
【図14】本発明によるシステムBIOSに備え付けられるRESTORE MOUSEルーチンのフローチャートである。
【図15】本発明によるキィーボードおよび補助デバイスコントローラに備え付けられるMAIN8751ルーチンのフローチャートである。
【図16】本発明によるキィーボードおよび補助デバイスコントローラに備え付けられるDEVICE INT 8751ルーチンのフローチャートである。
【図17】本発明によるキィーボードおよび補助デバイスコントローラに備え付けられるSYS INT 8751ルーチンのフローチャートである。
【図18】本発明によるキィーボードおよび補助デバイスコントローラに備え付けられるKBD EMULATEルーチンのフローチャートである。
【図19】図18に示すルーチンの部分的なフローチャートである。
【図20】図18に示すルーチンの別の部分的なフローチャートである。
【図21】図18に示すルーチンのさらに別の部分的なフローチャートである。
【図22】本発明によるキィーボードおよび補助デバイスコントローラに備え付けられるAUX EMULATEルーチンのフローチャートである。
【図23】図22に示すルーチンの部分的なフローチャートである。
【図24】図22に示すルーチンの別の部分的なフローチャートである。
【図25】図22に示すルーチンのさらに別のフローチャートである。
【符号の説明】
C コンピュータシステム
10 マイクロプロセッサ
12 主メモリ
14 バス
32 I/OコントローラASIC
34 キィーボードコネクタ
35 マウスコネクタ
36 マウス/キィーボードコネクタ
42 8751コントローラ
50 DC−DC電源装置
Claims (5)
- プロセッサと、第1のフィジカルユーザ入力デバイスに結合するための第1のデバイスポートと、上記プロセッサと上記第1のデバイスポートとの間における通信のためおよび上記プロセッサからの入力デバイス構成コマンド文字を受け取るためのコントローラ回路とを含んでおり、上記第1のデバイスポートがパワーダウンされ得る、コンピュータシステムにおけるスタンバイ中のデバイス構成のロスを防止する方法であって、
(a)上記プロセッサから上記第1のデバイスポートへ向けられる所定の入力デバイス構成コマンド文字を捕捉し、この入力デバイス構成コマンド文字の結果として生じる入力デバイス構成状態を上記コントローラ回路中に格納し、上記入力デバイス構成コマンド文字を上記第1のデバイスポートへ送信するステップと、
(b)上記ステップ(a)で格納された上記入力デバイス構成状態を上記コンピュータシステムのメモリ中にセーブするステップと、
(c)上記第1のデバイスポートをパワーダウンするステップと、
(d)上記第1のデバイスポートをパワーアップするステップと、
(e)上記入力デバイス構成状態を上記フィジカルユーザ入力デバイスに再格納するために、上記ステップ(b)でセーブされた上記入力デバイス構成状態に対応しており上記プロセッサから上記第1のデバイスポートへ向けられる上記入力デバイス構成コマンド文字について、上記捕捉、上記格納、および上記送信を行うステップと
を実行するように、上記プロセッサの制御のもとで上記コントローラ回路を動作させる方法。 - 上記コントローラ回路から上記プロセッサへ上記入力デバイス構成状態を送るステップを、上記ステップ(b)が含む請求項1の方法。
- 上記ステップ(c)の後に、上記コントローラ回路をパワーダウンし、次いで、上記コントローラ回路をパワーアップするように、上記プロセッサを動作させるステップをさらに備える請求項2の方法。
- 第2のフィジカルユーザ入力デバイスに結合するための、パワーダウンされ得る第2のデバイスポートを、上記コンピュータシステムがさらに含んでおり、
上記第2のデバイスポートおよび上記第2のフィジカルユーザ入力デバイスのために、上記プロセッサの制御のもとで、上記ステップ(a)〜(e)を繰り返すステップをさらに備える請求項1の方法。 - コマンドおよびデータ文字を送るためのプロセッサと、バスと、フィジカルユーザ入力デバイスの接続用であってこのフィジカルユーザ入力デバイスに対してパワーダウンが可能であるデバイスポートとを有しており、上記コマンドおよびデータ文字のうちの入力デバイス構成コマンド文字によって上記フィジカルユーザ入力デバイスが構成され得る、コンピュータシステムにおけるフィジカルユーザ入力デバイスのデバイス構成を捕捉するためのコントローラ回路であって、
上記デバイスポートを通して上記フィジカルユーザ入力デバイスへ向けられる所定の入力デバイス構成コマンド文字を捕捉して、この入力デバイス構成コマンド文字の結果として生じる入力デバイス構成状態を上記コントローラ回路中に格納するための捕捉手段と、
上記捕捉手段によって上記コントローラ回路中に格納された上記入力デバイス構成状態を上記コンピュータシステムのメモリ中にセーブするためのセーブ手段と、
上記デバイスポートをパワーダウンおよびパワーアップするための電源制御手段と、
上記デバイスポートのパワーアップ後に、上記セーブ手段によってセーブされた上記入力デバイス構成状態に従って、上記デバイスポートにおける上記フィジカルユーザ入力デバイスの構成を再格納するための再格納手段と
を備えるコントローラ回路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11943093A | 1993-09-10 | 1993-09-10 | |
US119,430 | 1993-09-10 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6243341A Division JP2608532B2 (ja) | 1993-09-10 | 1994-09-12 | コンピュータシステムにおけるユーザ入力デバイス存在のエミュレート方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09120385A JPH09120385A (ja) | 1997-05-06 |
JP3869049B2 true JP3869049B2 (ja) | 2007-01-17 |
Family
ID=22384378
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6243341A Expired - Fee Related JP2608532B2 (ja) | 1993-09-10 | 1994-09-12 | コンピュータシステムにおけるユーザ入力デバイス存在のエミュレート方法 |
JP22036596A Expired - Fee Related JP3869049B2 (ja) | 1993-09-10 | 1996-08-02 | コンピュータシステムにおけるスタンバイ中のデバイス構成のロス防止方法およびデバイス構成の捕捉のためのコントローラ回路 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6243341A Expired - Fee Related JP2608532B2 (ja) | 1993-09-10 | 1994-09-12 | コンピュータシステムにおけるユーザ入力デバイス存在のエミュレート方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5590315A (ja) |
EP (1) | EP0644477B1 (ja) |
JP (2) | JP2608532B2 (ja) |
AT (1) | ATE208919T1 (ja) |
CA (1) | CA2131235A1 (ja) |
DE (1) | DE69429050T2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802318A (en) * | 1995-07-25 | 1998-09-01 | Compaq Computer Corporation | Universal serial bus keyboard system |
US6336161B1 (en) * | 1995-12-15 | 2002-01-01 | Texas Instruments Incorporated | Computer configuration system and method with state and restoration from non-volatile semiconductor memory |
US5898861A (en) * | 1996-10-18 | 1999-04-27 | Compaq Computer Corporation | Transparent keyboard hot plug |
US6366877B1 (en) * | 1997-03-24 | 2002-04-02 | Seiko Epson Corporation | Method and device for emulation of peripheral input/output (I/O) controller of a computer system |
DE19714345A1 (de) * | 1997-03-27 | 1998-10-01 | Metec Multimedia Technik Gmbh | Simulation von Maus- und/oder Tastenoperation bei einem Computersystem |
US6081856A (en) * | 1997-12-02 | 2000-06-27 | Bellsouth Intellectual Property Corporation | Adapter and method for emulating the operation of a peripheral device of a computer |
US6145048A (en) * | 1998-09-17 | 2000-11-07 | Micron Technology, Inc. | Method of processing system management interrupt requests |
US6212592B1 (en) | 1998-09-17 | 2001-04-03 | Micron Technology, Inc. | Computer system for processing system management interrupt requests |
US6519714B1 (en) * | 1998-09-30 | 2003-02-11 | Netscout Service Level Corporation | Evaluating computer resources |
US6374145B1 (en) | 1998-12-14 | 2002-04-16 | Mark Lignoul | Proximity sensor for screen saver and password delay |
US6374208B1 (en) | 1999-03-11 | 2002-04-16 | Robert D. Ferris | System and method for adapting a PC-based application to an automated format |
US6732067B1 (en) | 1999-05-12 | 2004-05-04 | Unisys Corporation | System and adapter card for remote console emulation |
US6584499B1 (en) * | 1999-07-09 | 2003-06-24 | Lsi Logic Corporation | Methods and apparatus for performing mass operations on a plurality of managed devices on a network |
DE19937149C2 (de) * | 1999-08-06 | 2003-04-17 | Daimler Chrysler Ag | Vorrichtung zur Simulation eines Eingabegerätes |
US6373500B1 (en) | 1999-08-19 | 2002-04-16 | Micron Technology, Inc. | Method for implementing picture-in-picture function for multiple computers |
US6760785B1 (en) | 2000-03-29 | 2004-07-06 | Unisys Corporation | Method, apparatus, and computer program product for establishing communications between an adapter card and a host processor running in a bios supported environment |
US6560641B1 (en) | 2000-03-29 | 2003-05-06 | Unisys Corporation | System, method, and adapter card for remote console emulation including remote control of a peripheral device |
US6687744B1 (en) | 2000-05-02 | 2004-02-03 | International Business Machines Corporation | Data processing system and method for permitting a server computer system to function as a virtual keyboard to a client computer system |
US6919878B2 (en) * | 2001-12-28 | 2005-07-19 | Winbond Electronics Corp. | Keyboard/mouse switching controller |
US6976252B2 (en) * | 2002-05-17 | 2005-12-13 | Hewlett-Packard Development Company, L.P. | Systems and methods for driver installation |
US20060143209A1 (en) * | 2004-12-29 | 2006-06-29 | Zimmer Vincent J | Remote management of a computer system |
US20070299996A1 (en) * | 2006-06-27 | 2007-12-27 | Gideon Guy | Data Transfer Device |
US7884806B2 (en) * | 2007-05-14 | 2011-02-08 | Synaptics Incorporated | Proximity sensor device and method with keyboard emulation |
JP2010009453A (ja) * | 2008-06-30 | 2010-01-14 | Toshiba Corp | 情報処理装置およびデバイス設定制御方法 |
US9747225B2 (en) * | 2015-05-05 | 2017-08-29 | Microsoft Technology Licensing, Llc | Interrupt controller |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3810120A (en) * | 1971-02-12 | 1974-05-07 | Honeywell Inf Systems | Automatic deactivation device |
US4819205A (en) * | 1985-03-25 | 1989-04-04 | Motorola, Inc. | Memory system having memory elements independently defined as being on-line or off-line |
JPS62279431A (ja) * | 1986-05-28 | 1987-12-04 | Nec Corp | 入出力エミユレ−タ− |
JPH01279328A (ja) * | 1988-04-30 | 1989-11-09 | Toshiba Corp | 入出力エミュレート機構 |
JPH036538A (ja) * | 1989-06-02 | 1991-01-14 | Sumitomo Electric Ind Ltd | 有機非線形光学材料とそれを用いた非線形光学素子 |
US5241680A (en) * | 1989-06-12 | 1993-08-31 | Grid Systems Corporation | Low-power, standby mode computer |
US5056001A (en) * | 1989-12-20 | 1991-10-08 | Ge Fanuc Automation North America, Inc. | Method for configuring an input/output module coupled to a programmable logic controller |
US5034598A (en) * | 1989-12-29 | 1991-07-23 | Hewlett-Packard Company | Keyboard emulation system providing audible feedback without a built-in transducer |
JPH04102952A (ja) * | 1990-08-22 | 1992-04-03 | Mitsubishi Electric Corp | デバイスドライバ・ローディング方式 |
JPH04235655A (ja) * | 1991-01-09 | 1992-08-24 | Nec Eng Ltd | 周辺装置の管理方法 |
JPH0566883A (ja) * | 1991-09-09 | 1993-03-19 | Toshiba Corp | 座標入力装置 |
US5345347A (en) * | 1992-02-18 | 1994-09-06 | Western Digital Corporation | Disk drive with reduced power modes |
-
1994
- 1994-08-31 CA CA002131235A patent/CA2131235A1/en not_active Abandoned
- 1994-09-09 AT AT94306646T patent/ATE208919T1/de not_active IP Right Cessation
- 1994-09-09 DE DE69429050T patent/DE69429050T2/de not_active Expired - Lifetime
- 1994-09-09 EP EP94306646A patent/EP0644477B1/en not_active Expired - Lifetime
- 1994-09-12 JP JP6243341A patent/JP2608532B2/ja not_active Expired - Fee Related
- 1994-12-19 US US08/359,014 patent/US5590315A/en not_active Expired - Lifetime
-
1996
- 1996-08-02 JP JP22036596A patent/JP3869049B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07182073A (ja) | 1995-07-21 |
CA2131235A1 (en) | 1995-03-11 |
DE69429050T2 (de) | 2002-06-06 |
JPH09120385A (ja) | 1997-05-06 |
ATE208919T1 (de) | 2001-11-15 |
EP0644477A3 (en) | 1996-04-03 |
US5590315A (en) | 1996-12-31 |
EP0644477B1 (en) | 2001-11-14 |
DE69429050D1 (de) | 2001-12-20 |
EP0644477A2 (en) | 1995-03-22 |
JP2608532B2 (ja) | 1997-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3869049B2 (ja) | コンピュータシステムにおけるスタンバイ中のデバイス構成のロス防止方法およびデバイス構成の捕捉のためのコントローラ回路 | |
US6158000A (en) | Shared memory initialization method for system having multiple processor capability | |
US7447934B2 (en) | System and method for using hot plug configuration for PCI error recovery | |
US6453423B1 (en) | Computer remote power on | |
US5764968A (en) | Clock supply permission/inhibition control system | |
JP3301064B2 (ja) | 低電力モード・コンピュータ | |
US5987536A (en) | Computer system having flash memory bios which can be accessed while protected mode operating system is running | |
JP2986299B2 (ja) | 周辺装置接続検出システム | |
US5274816A (en) | Personal computer capable of changing boot priority | |
US5021983A (en) | Suspend/resume apparatus and method for reducing power consumption in battery powered computers | |
US5845134A (en) | Suspend/resume control method and system | |
KR100368079B1 (ko) | 컴퓨터 및 컴퓨터의 전원 제어 방법 | |
US20040073818A1 (en) | Computer system performing machine specific tasks before going to a low power state | |
JP3618878B2 (ja) | コンピュータシステムおよびバス接続方法 | |
JP4382108B2 (ja) | ソフトウェア制御のパワー管理機能を備えたコンピュータ・システム | |
JP2631085B2 (ja) | コンピュータのためのシステム管理モードアドレス訂正システムおよびコンピュータシステム | |
US6895517B2 (en) | Method of synchronizing operation frequencies of CPU and system RAM in power management process | |
US20040153811A1 (en) | Computer system equipped with a BIOS debugging card | |
US6016549A (en) | Peripheral unit having at least two sequencer circuits configured to control data transfers for power saving | |
US6567931B1 (en) | Preventing false remote system wake events following AC power loss | |
US5485585A (en) | Personal computer with alternate system controller and register for identifying active system controller | |
EP0575171B1 (en) | Enhanced system management method and apparatus | |
US5857116A (en) | Circuit for disabling an address masking control signal when a microprocessor is in a system management mode | |
JPH1173330A (ja) | コンピュータシステム | |
US5970237A (en) | Device to assist software emulation of hardware functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041112 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050214 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050921 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060405 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060704 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060712 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060824 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060915 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061012 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091020 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101020 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111020 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121020 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121020 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131020 Year of fee payment: 7 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |