JPH07182073A - コンピュータシステムにおけるユーザ入力デバイス存在のエミュレート方法、スタンバイ中のデバイス構成のロス防止方法、デバイス存在のエミュレートのためのコントローラ回路およびデバイス構成の捕捉のためのコントローラ回路 - Google Patents

コンピュータシステムにおけるユーザ入力デバイス存在のエミュレート方法、スタンバイ中のデバイス構成のロス防止方法、デバイス存在のエミュレートのためのコントローラ回路およびデバイス構成の捕捉のためのコントローラ回路

Info

Publication number
JPH07182073A
JPH07182073A JP6243341A JP24334194A JPH07182073A JP H07182073 A JPH07182073 A JP H07182073A JP 6243341 A JP6243341 A JP 6243341A JP 24334194 A JP24334194 A JP 24334194A JP H07182073 A JPH07182073 A JP H07182073A
Authority
JP
Japan
Prior art keywords
keyboard
routine
command
mouse
port
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.)
Granted
Application number
JP6243341A
Other languages
English (en)
Other versions
JP2608532B2 (ja
Inventor
Randall L Hess
ランドル・エル・ヘス
Drew S Johnson
ドリュー・エス・ジョンソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JPH07182073A publication Critical patent/JPH07182073A/ja
Application granted granted Critical
Publication of JP2608532B2 publication Critical patent/JP2608532B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements 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

Abstract

(57)【要約】 (修正有) 【目的】コンピュータシステムにおいて、キィーボード
およびマウス等のエミュレーションを行ない、システム
構成における融通性を高める。 【構成】システムが始動するとき、システムによる適当
なデバイスドライバの備え付けが可能である。もしもキ
ィーボードまたはマウスがあとで備え付けられれば、エ
ミュレーション応答は中止され、そして、キィーボード
およびマウスはデバイスドライバにより正常に動作す
る。システムがスタンバイ状態に置かれるとき、キィー
ボードおよびマウスのコネクタ34、35、36は全体
的にパワーダウンされる。このパワーダウン前に、BI
OSルーチンは、これらのデバイスが動作しているとき
でもこれらのデバイスに送られるコマンドを追跡してい
たエミュレーションルーチンによって記録されるよう
に、キィーボードおよびマウスの構成状態をセーブす
る。電源がキィーボードおよびマウスのコネクタ34、
35、36に対して再イネーブルされるとき、これらの
デバイスの構成は、そのセーブされた構成データから再
格納される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キィーボード、補助デ
バイスなどのフィジカルユーザ入力デバイスのための接
続を有するパーソナルコンピュータなどのコンピュータ
に関し、特に好ましくは、上記キィーボードおよび補助
デバイスの両方がディスエーブルされることができかつ
それらの接続から取り外されることができる低減電源モ
ードにおいて動作するコンピュータに関する。
【0002】
【従来の技術および発明が解決しようとする課題】イン
タナショナルビジネスマシーンコーポレイション(IB
M)の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が示
されている。好ましくはインテルコーポレイション(I
ntel)からの486SLプロセッサであるマイクロ
プロセッサ10は、コンピュータCの主要な演算要素を
形成している。主メモリ12は、メモリバスを通してプ
ロセッサ10に接続されている。バス14はプロセッサ
10に接続され、そして、コンピュータCにおける種々
な構成要素に対して主要通信バスを形成するために、ア
ドレス、データおよび制御部分を含んでいる。そのよう
な構成要素の1つは、好ましくはインテルからの823
60SLであるコンビネーション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として参照される或る基本的な操
作ルーチンを含まなければならないので、フラッシュE
EPROM28はこれらのルーチンを含むためにバス1
4に接続される。これは標準のROMで置き換えること
ができる。プログラミングおよび消去を行わせるのに必
要な接続は、当業者によく知られているので、明確さの
ために示されていない。PCMCIAコントローラ30
は、バス14に接続され、そして、それに接続されてい
る2つのPCMCIAスロット33を有している。PC
MCIAスロット33は、所望ならば付加的なメモリを
備えるために、または、モデムおよびネットワークカー
ドのような或る通信オプションを受けるために、コンピ
ュータCのための拡張された性能を備えている。
【0019】I/Oコントローラ適用特定集積回路(A
SIC)32はバス14 に接続されている。I/Oコン
トローラASIC32は、コンピュータCにおける多数
の特殊機能を備えている。I/OコントローラASIC
32は、マウスまたは他のポインティングデバイスがマ
ウスコネクタ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または8
751マイクロコントローラ42と組み合せて用いられ
るようにするために、種々のレジスタを含んでいるのが
好ましい。これは、マイクロコントローラがスタンバイ
状態であっても割り込みに対して応答するように、イン
テルコーポレイションからの8751FBマイクロコン
トローラであるのが好ましい。8751コントローラ4
2とともに用いられるとき、I/OコントローラASI
C32は、従来のデスクトップパーソナルコンピュータ
におけるキィーボードおよび補助デバイスコントローラ
として一般に用いられているような8042型マイクロ
コントローラのようにプロセッサ10には見える。この
ために、I/OコントローラASIC32は、8751
コントローラ42によってアクセス可能であるレジスタ
セットを模擬するために、或る要素を含んでいる。この
方法においては、8751コントローラ42は、キィー
ボードおよびAUXポートシリアル通信のような実際の
従来の8042キィーボードコントローラロウレベル機
能の多くを実行する必要がないが、それは、8751コ
ントローラ42に関する負担を軽減するために、これら
の機能がI/OコントローラASIC32においてなさ
れるからである。
【0021】8751コントローラ42は、シリアルE
EPROM44に接続される。シリアルEEPROM4
4は、小さくても、コンビネーション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およびRTC
19に供給される電圧のように、コンピュータCにおい
て用いられる必要な電圧を供給する。CMOS/RTC
電圧は、コンピュータCが非常に低い電源のスタンバイ
状態に置かれるのを許容するために、コンピュータCの
残りの構成要素をパワーオフ(電源オフ)できるように
個別に供給される。DC/DC電源装置50は、コンピ
ュータCの主バッテリ52および小さい補助バッテリ5
4に接続されている。
【0024】図2は、I/OコントローラASIC3
2、キィーボードコネクタ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ポートにアクセスするために備えられ、そして、8
751コントローラ42は、これらのポートを通してI
/OコントローラASIC32およびデジタライザイン
タフェース38と通信する。
【0026】I/OコントローラASIC32は、シリ
アルデータラインMDAT、シリアルクロックラインM
CLKおよびシリアルパワーラインMPWRを通してマ
ウスにインタフェースするのに用いられるマウスコネク
タ35に接続されている。対応する信号KDAT、KC
LKおよびKPWRはキィーボードコネクタ34のため
に備えられる。さらに、I/OコントローラASIC3
2は、対応する信号MKDAT、MKCLKおよびMK
PWRを再び通してマウス/キィーボードコネクタ36
に接続される。この追加のインタフェースの機能は、以
下の図3(A)および(B)ならびに図4についての説
明で明らかになるだろう。
【0027】この説明においては、補助デバイスは、I
BM PS/2マウスと互換性のあるコマンドおよびデ
ータ構造を有するのが好ましいマウスであるとして参照
される。トラックボールのような他の互換性のあるポイ
ンティングデバイスまたは他のタイプの補助デバイス
は、本発明の精神から離脱することなく、代りに用いら
れることができる。
【0028】I/OコントローラASIC32は、FE
T104のゲートを駆動する活性ロウのキィーボード電
源イネーブル信号KPWR EN*をも供給する。上記
FETのドレインは、好ましくは5ボルトのVCCに接
続され、そして、FETのソースは、簡略化のために単
一の抵抗106として示されている直列抵抗を通してK
DAT、KCLKおよびKPWRに接続されている。マ
ウスコネクタ35およびマウス/キィーボードコネクタ
36のために同様の回路が備えられ、この回路において
は、I/OコントローラASIC32によってFET1
08に信号MKPWR EN*が供給される。上記FE
T108は、抵抗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は、MK
PWR 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つからのデータはポート6
0hから読み出され、そして、そのデータのソースはポ
ート64hからのステータスバイトを読むことによって
決定される。したがって、「ポート」P KBDおよび
AUXは、8051コントローラ42において備え
られるような「8042」に送られるコマンドおよびデ
ータまたはそこから読み出されるステータスおよびデー
タバイトの適当なシリーズのための単なる短縮形であ
る。これらのコマンドは、当該技術においてよく知ら
れ、そしてさらに、すでに参照されたコンパックDes
kpro386Sパーソナルコンピュータテクニカルリ
ファレンスガイドにおいて記述されている。
【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コントローラASI
C32に対する内部の回路によって供給される。マルチ
プレクサ126は、選択された信号EXT MSE SE
Lがロウ(低)であるとき、I/OコネクタASIC3
2における補助レジスタAUXからマウスコネクタ35
に通信を差し向ける。その信号がハイ(高)であると
き、AUXを通しての通信は、第2のマルチプレクサ1
28に代わりに差し向けられる。このマルチプレクサ1
28に対するの他の入力は、キィーボードレジスタKB
Dに接続される。信号SHRE KBD SELがロウ
(低)であるとき、マルチプレクサ126の出力は、マ
ウス/キィーボードコネクタ36に結合される。その信
号がハイ(高)であるとき、 KBDはマウス/キィー
ボードコネクタ36に代わりに結合される。インバータ
130は、その後にKBDをキィーボードコネクタ34
と接続するバッファ132に反転信号SHRE KBD
SELを供給する。
【0035】マルチプレクサ126および128が実際
のフィジカルマルチプレクサよりもむしろロジカルブロ
ックであることが認識されるだろう。これは、「マルチ
プレクサ」がマウスコネクタ35、キィーボードコネク
タ34およびマウス/キィーボードコネクタ36に向け
られる双方向性の通信を取り扱わなければならないため
である。さらに、I/OコントローラASIC32にお
ける他の回路は、それらのコネクタとKBDおよびAU
Xとの間のデータの直列から並列への変換と直列から並
列への変換とをを取り扱わなければならない。次いで、
それらのデータは、KBDおよびAUXと8751コン
トローラとの間のパラレルデータとしてコントローラバ
ス100を経由して通信される。
【0036】したがって、EXT MSC SELおよ
びSHRE KBD SELを適当に構成することによ
って、I/OコントローラASIC32はAUXをマウ
スコネクタ35またはマウス/キィーボードコネクタ3
6のいずれかと結合する。同様に、I/Oコントローラ
32は、KBDをキィーボードコネクタ34またはマウ
ス/キィーボードコネクタ36のいずれかと結合する。
EXT MSC SELおよびSHRE KBD SE
Lは、8751コントローラ42によってコントローラ
バス100を通して供給され、そして、メモリマップさ
れたI/Oレジスタにおいて備えられる。
【0037】8751コントローラ42によってメモリ
マップされたI/Oレジスタを通してKPWP EN*
およびMKPWR EN*がさらに供給される。これら
のレジスタは、3つのコネクタに対して電源を全体的に
イネーブルするかまたはディセーブルする。KPWR
EN*は、ロウ(低)にアサートされるとき、FET1
04をオンにし、KPWRに電源を供給し、そして、K
CLKおよびKDATを抵抗112および110を通し
てプルアップする。これらの抵抗112および110は
図2の抵抗106に対応する。
【0038】MKPWR EN*は、ロウ(低)にアサ
ートされるとき、MKPWRおよびMPWRに対してV
CCを接続し、そして、図2の抵抗110に対応する抵
抗114および116を通してNKCLKおよびMKD
ATをまたプルアップし、そして、図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を通して適当な応答を
戻す。もしもエミュレーションモードになければ、87
51コントローラ42は、構成コマンド文字および関連
のデータ文字をトラップし、そして、その構成データを
蓄え、そしてさらに、補助のレジスタAUXを通して補
助デバイスに対して、または、キィーボードレジスタK
BD(両方は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ルーチン20
0は、図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をこのモード
に入らせる。しかし、ハイバネーションモードは、87
51コントローラ42における全てのメモリを消去させ
る。これは、ステップ202でセーブ状態手順を実行す
る1つの理由であった。
【0046】図6は、SAVE STATEルーチン2
07のフローチャートを示す。SAVE STATEル
ーチン207は、システムCが8751コントローラ4
2のキィーボード状態を主メモリ12において検索しか
つセーブするステップ208で始まる。これは、875
1コントローラ42に対して特別の拡張されたコマンド
を向けることによって行われる。上述のように、875
1コントローラ42は、標準のIBM PC互換性シス
テムにおいて備えられるような標準の8042の機能を
含む。それは、DOS世界においてよく知られているよ
うに、プロセッサ10によってポート64hに出される
或るコマンドに応答する。このコマンドセットは、その
後に多数の他のコマンドの1つによって追従される拡張
されたコマンド命令を加えることによって、本発明にし
たがって拡張される。これらのコマンドは、図15〜2
5に関連して以下に説明するキィーボードまたはマウス
エミュレーションをイネーブルおよびディセーブルする
ことと、電源供給状態を読み出しかつ書き込むことと、
電源をオフにすることと、ここで用いられるように、キ
ィーボード状態を検索することとを含む。
【0047】その現在の構成を検索するためのPC互換
性キィーボードに対する直接的なコマンド文字はない。
その代りに、図18〜21に関連して以下に説明する8
751コントローラ42におけるキィーボードエミュレ
ーションルーチンは、その構成を変えるコマンド文字が
キィーボードに送られるように、現在のキィーボード構
成のマップをセーブする。上記エミュレーションルーチ
ンは、キィーボードが取り付けられていると否とかゝわ
らず、そのように行う。次いで、この状態は、8751
コントローラ42に対して拡張されたコマンドを送るこ
とによって検索される。この構成状態は、キィーボード
がイネーブルされていると否とにかゝわらずキィーボー
ドLEDがオンであることを反映するデータと、現在の
キィーボードモードとを含む。これは、図18〜21に
関連して以下に再び説明する。
【0048】ステップ208においてSAVE STA
TEルーチン207がキィーボード構成を検索しかつセ
ーブすれば、SAVE STATEルーチン207は、
マウスから検索される対応するマウス構成を検索しかつ
セーブするステップ210に進む。標準のPS/2マウ
スは、その内部の状態または構成を送ることによって特
別のコマンド文字に応答する。したがって、システムC
がP AUXに対してこの特別なコマンド文字を送ると
き、マウスがプロセッサ10にP AUXを通してその
構成を送ることによって応答するか、あるいは、図22
〜25に関連して以下に説明する8751コントローラ
42におけるマウスエミュレーションルーチンが対応す
るマウス構成データでもって応答する。また、ステップ
210でマウスの現在のフラグがセーブされて、マウス
が実際にその構成データを戻したか否かを指示する。マ
ウスエミュレーション性能はコンピュータCにおいて常
にイネーブルされるのが好ましいので、このフラグは常
に正しいとセットされるべきであり、事実かエミュレー
トされているかにかゝわらず、システムCは常にマウス
を「見ている」。マウスエミュレーションがディセーブ
ルされたときだけ、フラグは偽りにセットされるだろ
う。システムCが構成データをセーブした後に、SAV
STATEルーチン207は、SLEEPルーチン
200に戻るステップ212に進む。
【0049】図7は、WAKE UPルーチン214の
フローチャートである。このWAKE UPルーチン2
14は、システムCがそのスタンバイモードから出るべ
きであるという活性またはウエークアップ指示をシステ
ム管理ソフトウェアが受けるとき、システム管理ルーチ
ンの一部として実行される。WAKE UPルーチン2
14は、8751コントローラ42をウエークアップす
るステップ215で始まる。もしも8751コントロー
ラ42がステップ204でスタンバイモードにのみ置か
れたならば、これは、INT0を経由して8751コン
トローラ42をウエークアップしかつそのウエークアッ
プ手順を実行することをそれに指示するI/Oコントロ
ーラASIC32のメールボックスレジスタを通して8
751コントローラ42へ非スタンバイフラグを送るこ
とを必要とする。しかし、もしも8751コントローラ
42がハイバネーションモードに置かれれば、それは、
コンビネーションI/Oチップ16を通してパワーアッ
プ(電源アップ)され、そして、そのメモリ状態が再格
納されなければならない。
【0050】次いで、SAVE STATEルーチン2
07は、AUXおよびKBDの経路付けをセットアップ
するI/OコントローラASIC32にデータを供給す
るSET ACTIVE KEYBOARDルーチン2
23を実行するステップ216に進む。これは、キィー
ボードコネクタ34またはマウス/キィーボードコネク
タ36のどちらかである正しいフィジカルコネクタにK
BDを経路付けする。SET ACTIVE KEYB
OARD223は、図8に関連して以下にさらに説明さ
れている。ステップ216において活性なキィーボード
を経路付けした後、WAKE UPルーチン214は、
SET ACTIVE MOUSEルーチン280を実
行する。SET ACTIVE MOUSEルーチン2
80は、SET ACTIVE KEYBOARDルー
チン223のように、マウスコネクタ35またはマウス
/キィーボードコネクタ36のいずれかにAUXを経路
付けする。SET ACTIVE MOUSEルーチン
280は、図10に関連して以下にさらに説明されてい
る。
【0051】ステップ218で活性なマウスを経路付け
した後、WAKE UPルーチン214は、図12に関
連して以下にさらに説明するRESTORE STAT
Eルーチン220を実行する。これは、図6におけるス
テップ208および210でセーブされるデータを検索
し、そして、取り付けられたマウスおよびキィーボード
ならびに8051コントローラ42におけるそれらの対
応するエミュレーションルーチンを最後のスタンバイモ
ードに入る前のそれらの状態に構成する。
【0052】ステップ220でマウスおよびキィーボー
ド状態を再格納した後、WAKE UPルーチン214
は、スタンバイ状態からウエークアップに関連した他の
システム管理ルーチンでもって続くステップ222に進
む。
【0053】図8は、SET ACTIVE KEYB
OARDルーチン223のフローチャートである。SE
ACTIVE KEYBOARDルーチン223
は、ステップ224で始まり、P KBDに送られるキ
ィーボードコマンド文字に対して応答する8751コン
トローラ42においてキィーボードエミュレーションを
まずディセーブルする。これは、上述のように、拡張さ
れたコマンドを8751コントローラ42に送ることに
よって行われる。これは、キィーボードが応答していな
ければ、キィーボードからのエミュレートされた応答を
供給することから8751コントローラ42を妨げ、し
たがって、キィーボードがキィーボードコネクタ34ま
たはマウス/キィーボードコネクタ36のいずれかにフ
ィジカルに接続されているか否かを直接に決定すること
をSET ACTIVE KEYBOARDルーチン2
23に許容する。
【0054】ステップ224においてキィーボードエミ
ュレーションをディセーブルした後、SET ACTI
VE KEYBOARDルーチン223は、キィーボー
ドコネクタ34にKBDを経路付けするステップ226
に進む。それは、I/OコントローラASIC32にお
ける任意のポートに書き込み、EXT MSE SEL
をロウ(低)に、また、SHRE KBD SELをロ
ウ(低)にセッティングすることによって、そのように
する。これは、P KBDを通しそのためにKBDを通
しての全ての通信をキィーボードコネクタ34に向けさ
せる。
【0055】この接続をした後、SET ACT KB
Dルーチン223は、ステップ228に進み、そして、
KEYBOARD CHECKルーチン250を実行す
る。図9に関連して以下に説明するKEYBOARD
CHECK250は、キィーボードが実際に存在しかつ
KBDに対する読み出しおよび書き込みに応答可能
であるか否かを指示するパラメータを戻す。次いで、S
ET ACTIVE KEYBOARDルーチン223
は、キィーボードが取り付けられているか否かを決定す
るために、KEYBOARD CHECKルーチン25
0によって戻されるパラメータを調べるステップ230
に進む。
【0056】もしもそうであれば、SET ACTIV
KEYBOARDルーチン223は、キィーボード
が存在していることを指示するフラグでもって戻るステ
ップ232に進む。この時点で、キィーボードがP
BDに対するアクセスに応答可能であるので、KBDお
よびそのためのP KBDは、キィーボードコネクタ3
4に正しく結合される。
【0057】もしもステップ230でキィーボードが検
出されなかったならば、SET ACTIVE KEY
BOARDルーチン223は、マウス/キィーボードコ
ネクタ36にKBDを経路付けするステップ234に進
む。これは、EXT MSE SELをロウ(低)にかつ
SHRE KBD SELをハイ(高)にセッティング
するI/OコントローラASIC32に対するI/O書
き込みによって達成される。次いで、SET ACTI
VE KEYBOARDルーチン223は、図9に関連
して説明するように、P KBDを通しての通信によっ
てキィーボードの存在をチェックするKEYBOARD
CHECKルーチン250を再び実行するステップ2
36に進む。
【0058】このチェックの後、SET ACTIVE
KEYBOARDルーチン223は、ステップ236
で戻されたパラメータを調べるステップ238に進む。
もしもキィーボードが検出されたならば、キィーボード
がP KBDを通しての通信に応答可能であるように、
I/OコントローラASIC32はマウス/キィーボー
ドコネクタ36にKBDを適当に結合し、そして、SE
ACTIVE KEYBOARDルーチン223
は、ステップ232に進んで、キィーボードが存在して
いることを指示するパラメータを戻す。
【0059】もしもステップ238においてキィーボー
ドが検出されなかったならば、SET ACTIVE
KEYBOARDルーチン223は、上述のような拡張
された8042型コマンドを送ることによって8751
コントローラ42おいてキィーボードエミュレーション
をイネーブルするステップ240に進む。次いで、SE
ACTIVE KEYBOARDルーチン223
は、KEYBOARD CHECKルーチン250を再び
実行するステップ242に進む。KEYBOARD
HECKルーチン250の一部は、P KBDにリセッ
トを送ることを含む。8751コントローラ42におけ
るキィーボードエミュレーションは、活性なエミュレー
ションを始めるためにそのようなリセットを必要とす
る。したがって、ステップ242でKEYBOARD
CHECKルーチン250を実行することは、あたかも
キィーボードが取り付けられていたかのようにP KB
Dを通しての通信にその後に応答する活性なキィーボー
ドエミュレーションを8751コントローラ42に始め
させる。
【0060】図9は、KEYBOARD CHECKル
ーチン250の概略を示す。KEYBOARD CHE
CKルーチン250は、KBDが現在経路付けられてい
るコネクタにキィーボードが存在するか否かを決定す
る。
【0061】ステップ252で始まるKEYBOARD
CHECKルーチン250は、コマンドに応答するた
めに取り付けられたキィーボード(もしもこれが存在す
れば)をフィジカルにイネーブルするように、P KB
Dに標準のキィーボードイネーブルコマンド文字を送
る。次いで、ステップ254で、KEYBOARD
HECKルーチン250は、P KBDにキィーボード
リセットコマンド文字を送る。もしもキィーボードが存
在していれば、それは、以下の説明において留意される
ように、所定の肯定応答シーケンスでもって応答する。
【0062】次いで、KEYBOARD CHECKル
ーチン250は、P KBDからの肯定応答文字を受け
た否かを決定するステップ256に進む。もしそうであ
れば、それは、キィーボードパワーオンの完全な応答文
字(「OK」)をそれがP KBDから受けたか否かを決
定するステップ258に進む。もしそうであれば、KE
YBOARD 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から再送応答文字をそれが受けたか
否かを決定する。もしもそうでなければ、KEYBOA
RD CHECKルーチン250は、P KBDにリセ
ットを送ってから長時間が経過したか否かを決定するス
テップ268に進む。
【0065】もしもそうであれば、KEYBOARD
CHECKルーチン250は、キィーボードが存在しな
いことを指示するパラメータを戻すステップ270に進
む。もしそうでなければ、KEYBOARD CHEC
Kルーチン250は、肯定応答文字を再びチェックする
ために、ステップ256にループする。
【0066】もしもステップ266でKEYBOARD
CHECKルーチン250がP KBDから再送応答を
受けたならば、それは、P KBDによって多すぎる再
送が要求されたか否かを決定するステップ272に進
む。もしもそうでなければ、KEYBOARD CHE
CKルーチン250は、P KBDに他のキィーボード
リセットコマンド文字を送るためのステップ254へ進
む。そうでなければ、それは上述のステップ258に進
む。
【0067】図10は、AUXを適当なコネクタに経路
付けているけれども、SET ACTIVE KEYB
OARDルーチン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は、キィーボードがそのコ
ネクタに接続されていることが知られているので、AU
Xがマウス/キィーボードコネクタ36に接続されてい
るか否かの決定をスキップして、ステップ286に進
む。
【0070】もしもステップ284でKBDがマウス/
キィーボードコネクタ36に接続されていなかったなら
ば、SET ACTIVE MOUSEルーチン280
は、マウス/キィーボードコネクタ36にAUXを経路
付けるステップ288に進む。SET ACTIVE
MOUSEルーチン280は、ステップ290に進ん
で、マウスがP AUXを通しての通信のために存在す
るか否かを決定するMOUSE CHECKルーチン3
10を実行する。SET ACTIVE MOUSEル
ーチン280は、ステップ292に続き、ステップ29
0で実行されたMOUSE CHECKルーチン310
によって戻されるパラメータをチェックする。もしもマ
ウスが検出されなかったならば、SET ACTIVE
MOUSEルーチン280は、マウスコネクタ25に
AUXを接続するステップ286に進む。
【0071】次いで、SET ACTIVE MOUS
Eルーチン280は、MOUSE CHECKルーチン3
10を再び実行するステップ294に進む。ステップ2
96に進むと、ステップ294でMOUSE CHEC
Kルーチン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 CHE
CKルーチン310の全てのステップは、P AUXが
キィーボードとの通信のためのP KBDよりもむしろ
マウスとの通信のために用いられることと、図8のKE
YBOARD CHECKルーチン250のステップ2
60に対応するステップ320において、もしもより多
くのデータが検出されれば、MOUSE CHECKル
ーチン310がステップ322に進んでマウスの存在を
指示するパラメータを戻すこととを除いて、KEYBO
ARD CHECKルーチン250のステップに対応し
ている。そうでなければ、MOUSE CHECKルーチ
ン310は、ステップ320からステップ324に進ん
で、マウスが存在しないことを指示するパラメータを戻
す。これは、キィーボードが行うように、マウスがリセ
ットコマンド文字に応答してより多くのデータを戻すと
いう事実を反映している。この方法によって、キィーボ
ードはマウスと区別され、そして、マウスの存在はMO
USE CHECKルーチン310によって決定され
る。それ以外では、ステップ312〜332は、図9の
KEYBOARD CHECKルーチン250における対
応するものと同一である。
【0074】図12は、図7において示されるWAKE
−UPルーチン214のステップ220で呼び出される
RESTORE STATEルーチン350のフローチ
ャートである。RESTORE STATEルーチン3
50は、システムに取り付けられるキィーボードおよび
マウスの状態または構成を再格納し、そのようなデバイ
スが取り付けられていると否とにかゝわらず、8751
コントローラ42のキィーボードおよびマウスエミュレ
ーションルーチンによる捕捉のための構成コマンドを供
給するので、それらのエミュレーションルーチンは次の
シャットダウン(遮断)のための構成データをセーブす
ることができる。
【0075】RESTORE STATEルーチン35
0は、ステップ352で始まって、RESTORE
EYBOARDルーチン360を呼び出しする。これ
は、図13に関連して以下に説明されているが、要約す
れば、それは、キィーボード(もしも取り付けられてい
れば)およびキィーボードエミュレーションルーチンに
構成データを再格納する。
【0076】RESTORE STATEルーチン35
0は、ステップ354に進んで、システムCに取り付け
られるマウスの構成を同様に再格納し、そして、875
1コントローラ42におけるマウスエミュレータによる
捕捉のために構成データを供給する。次いで、REST
ORE STATEルーチン350は、図7のWAKE
UPルーチン214のためにステップ356で戻る。
【0077】図13は、取り付けられたキィーボードの
LED構成を再格納するか、または、8751コントロ
ーラ42におけるエミュレーションルーチンにその構成
情報を少なくとも供給することによって、ステップ36
2で始まるRESTORE KEYBOARDルーチン3
60のフローチャートである。RESTORE KEY
BOARDルーチン360は、図6において示されるS
AVE STATEルーチン202によってセーブされ
るデータを検索することによってこれを行う。次いで、
それは、P KBDを通して適当なキィーボードコマン
ド文字を送って、キィーボードLEDをそれらの前以っ
てのプレ−シャットダウン状態にセットさせる。
【0078】RESTORE KEYBOARDルーチ
ン360は、ステップ364に進んで、キィーボードの
モード構成を再格納し、そして、ステップ366で、キ
ィーボードがイネーブルされたかまたはディセーブルさ
れたかを再格納し、キィーボードコマンド文字を書き込
むことによって両方の機能を達成する。次いで、RES
TORE KEYBOARDルーチン360は、ステッ
プ368でRESTORE STATEルーチン350
に戻る。
【0079】図14は、RESTORE MOUSEル
ーチン370のフローチャートである。このルーチン
は、RESTORE KEYBOARD360のそれと
同様の機能を実行する。それは、SLEEPルーチン2
00が最後に実行されたときにマウスが存在したか否か
を決定するステップ372で始まる。この存在は、ステ
ップ210(図6)でセーブされたし、そして、上述の
ように、マウスエミュレーション性能がイネーブルされ
るときに常に真実である。もしもそうでなければ、マウ
スは再構成されるために存在しないので、RESTOR
MOUSEルーチン370は、RESTORE
TATEルーチン350に戻るステップ374に進む。
もしもSLEEPルーチン200が最後に実行されたと
きにマウスが存在していたならば、RESTORE
OUSEルーチン370は、ステップ372から、マウ
スが今存在するか否かを決定するステップ376に進
む。もしもそうでなければ、RESTORE MOUS
Eルーチン370は、ステップ374で再び戻る。
【0080】さもなければ、RESTORE MOUS
Eルーチン370は、ステップ376からステップ37
8に進んでマウスポインティングモードを再格納し、ス
テップ380に進んでマウスリゾリューション(解像
度)を再格納し、ステップ382に進んでマウスサンプ
リング率を再格納し、ステップ384に進んでスケーリ
ングフアクタを再格納し、ステップ386に進んでスト
リーム/リモートモードを再格納し、そして、ステップ
388に進んでラップモードを再格納する。RESTO
RE KEYBOARDルーチン360におけるよう
に、RESTORE MOUSEルーチン370は、SE
ACTIVE MOUSEルーチン280により適
当なコネクタにすでにセットされたP AUXにマウス
コマンド文字を書き込むことによって、これらの機能を
実行する。
【0081】図15〜25は、キィーボードがP KB
Dを通してI/Oに応答しかつマウスがP AUXを通
してI/Oに応答しているとシステムCが信じているよ
うに、キィーボードおよびマウスエミュレーションを供
給する8751コントローラ42に備えられているルー
チンのフローチャートである。図15は、8751コン
トローラ42における主要処理ループであるMAIN8
751ルーチン400のフローチャートである。MAI
N8751ルーチン400は、連続的なループであっ
て、割り込みルーチン指示システムおよびデバイスI/
O活性からフラグを受ける。特に、コマンドおよびデー
タがプロセッサ10またはデバイスからを受けられたと
き、割り込みがI/OコントローラASIC32から供
給される。次いで、コマンドおよびデータは、以下に説
明するコマンド解釈シーケンスにおいて処理される。
【0082】当業者にとって明らかなように、図15に
示されているMAIN8751ルーチン400は、87
51コントローラ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 87
51 450と、図17に関連して以下に説明するシス
テム割り込みルーチンSYS INT 8751 50
0とによってセットおよびリセットされる。実際に接続
されているキィーボードからのデータは、KBD RE
SPが真であると否とにかゝわらず、以下に説明するD
EVICE INT 8751ルーチン450によって
プロセッサ10に送られる。
【0086】もしもKBD RESPが真であれば、M
AIN 8751ル−チン400は、図18〜21に関
連して以下に説明するキィーボードエミュレーションル
ーチンKBD EMULATE500からプロセッサ1
0に送るためにデータが入手可能であるか否かを決定す
るために、キィーボード応答データ列を調べるステップ
404に進む。この列は、KBD EMULATEルー
チン550に或るキィーボードコマンド文字に対する多
重応答を提供することを許容する先入れ先出し列であ
る。
【0087】もしもデータがキィーボード応答データ列
において入手可能であれば、MAIN 8751ルーチ
ン400は、ステップ404からステップ406に進ん
で、キィーボード応答データ列における文字をプロセッ
サ10に送り、次いで、ループの初めのステップ402
に進む。
【0088】もしもステップ404でデータがキィーボ
ード応答データ列に存在しなかったか、または、ステッ
プ402でKBD RESPが偽りであったならば、M
AIN 8751ルーチン400は、可変のAUX
ESPを真と比較するステップ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に拡張されたコマンドを送る。もしもステップ2
04(図5)でシステムCがその代わりにハイバネーシ
ョンモードに置かれたならば、8751コントローラ4
2は、その代わりにパワーダウンされ、そして、その状
態を再格納する始動ルーチン(図示せず)を実行した後
のみ、ステップ402でMAIN 8751ルーチン4
00に再び入る。もしもステップ414でSTANDB
Yが偽りであれば、MAIN 8751ルーチン400
はループの初めのステップ402に進む。
【0091】しかし、もしもSTANDBYが真であれ
ば、MAIN 8751ルーチン400はステップ41
4からステップ416に進んで、キィーボードコネクタ
34、マウスコネクタ35およびマウス/キィーボード
コネクタ36をパワーダウンする。8751コントロー
ラ42は、I/OコントローラASIC32におけるメ
モリマップされたI/Oレジスタに対する書き込みによ
りKPWR EN*およびMKPWR EN*をアサー
トすることによってこれを行って、それらのコネクタに
対する電源をカットオフする。次いで、MAIN 87
51ルーチン400は、ステップ418に進んで、87
51コントローラ42自身における特別なレジスタにお
ける特定のI/Oビットに書き込むことによって、87
51コントローラ42を中断した状態に行かせる。87
51コントローラ42は、その種々の割り込みソースの
1つから割り込みを受けるときまでこの低減された電源
一時停止状態に留まり、このときには、MAIN 87
51ルーチン400は、I/OコントローラASIC3
2に対するメモリマップされたI/O書き込みを通して
KPWR EN*およびMKPWR EN*をこのとき
に否定することによって、キィーボードコネクタ34、
マウスコネクタ35およびマウス/キィーボードコネク
タ36に電源を戻すステップ420に進む。次いで、M
AIN 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またはA
UXからのエラーをチェックする。これは、I/Oコン
トローラASIC32がマウスコネクタ35、キィーボ
ードコネクタ34またはマウス/キィーボードコネクタ
36と通信することの試みにおいてエラーに遭遇したこ
とを指示する。DEVICE INT 8751ルーチ
ン450は、I/0コントローラASIC32における
メモリマップされたI/Oレジスタを通してそのような
エラーの存在とタイプとを決定する。もしもエラーが存
在しなければ、これは、それらのコネクタの1つに取り
付けられているデバイスからの正常な応答を指示するの
で、DEVICE INT 8751ルーチン450
は、ステップ454に進んで、例えば、KBDまたはA
UXからP KBDまたはP AUXを通してプロッセ
ッサ10にデータバイトまたはコマンド文字応答を伝送
することによって、他のデバイス割り込みを取り扱う。
【0094】もしもステップ452で、デバイスエラー
がこの割り込みに起因していることをDEVICE
NT 8751ルーチン450が検出したならば、それ
は、エラーが発送要求(RTS)エラーであったか否か
を決定するステップ456に進む。I/Oコントローラ
ASIC32が経路付けされたコネクタにAUXまたは
KBDのいずれかからデータを送ろうとするときにRT
Sエラーは発生し、そして、タイムアウトは取り付けら
れたデバイスが応答する前に発生する。これは、例え
ば、マウスまたはキィーボードがAUXまたはKBDに
経路付けされたキィーボードコネクタ34、マウスコネ
クタ35またはマウス/キィーボードコネクタ36に取
り付けられていなかったならば、発生する。
【0095】もしもRTSエラーがなければ、DEVI
CE INT 8751ルーチン450は、通常は他の
デバイスエラーを取り扱うステップ458に進む。しか
し、もしもRTSデバイスエラーであれば、DEVIC
INT 8751ルーチン450は、ステップ45
6からステップ460に進んで、最後に送られたデバイ
スデータがKBDに対してであったか否かを決定する。
【0096】もしもそうであれば、DEVICE IN
8751ルーチン450は、2つの変数KBD
ESETおよびKBD EMULATEが真であるか否
かを決定するステップ462に進む。キィーボードリセ
ットコマンド文字がプロセッサ10によってP KBD
に送られるとき、KBD RESETは真にセットさ
れ、そして、これは、キィーボードエミュレーションを
始めるための有用な時間を提供する。KBD RESE
Tは図18〜21に関連して以下にさらに説明されてい
る。KBD EMULATEは、プロセッサ10からの
特別の拡張されたコマンドによって真にセットされ、そ
して、プロセッサ10が8751コントローラ42のキ
ィーボードエミュレーション特徴をイネーブルしたこと
を指示する。それは、さらに図17に関連して以下にさ
らに説明されている。
【0097】ステップ462でKBD RESETおよ
びKBD EMULATEが真であれば、DEVICE
INT 8751ルーチン450は、KBD RES
Pを真にセットするステップ464に進む。これは、キ
ィーボードエミュレーション応答を始めるためのステッ
プ402でMAIN 8751ルーチン400にフラグ
を供給する。
【0098】もしもステップ460で最後に送ったデー
タがKBDにではなかって、最後のデータがAUXに送
られたならば、DEVICE INT 8751ルーチ
ン450は、2つの変数AUX RESETおよびAU
EMULATEが真であるか否かを決定するステッ
プ466に進む。AUX RESETは、ステップ46
2において述べたようにキィーボードデバイスのために
KBD RESETを行うように、マウスデバイスへの
書き込みに関してKBD RESETと同じ機能を実行
し、そして、AUX EMULATEはKBD EMU
LATEに対応する。もしもAUX RESETおよび
AUX EMULATEが真であれば、DEVICE
INT 8751ルーチン450は、ステップ464で
KBD RESETが真にセットされたのと同じ理由で、
AUX RESPを真と等しくセットするステップ46
8に進む。AUX RESPは、MAIN 8751ル
ーチン400のステップ408で用いられる。
【0099】もしもステップ462または466でKB
RESETまたはAUX RESETが真でなかっ
たならば、DEVICE INT 8751ルーチン4
50は、エミュレーションがイネーブルされないならば
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ルーチン50
0のフローチャートである。この割り込みルーチンは、
プロセッサ10からI/OコントローラASIC32を
通しての8042型書き込みによって活性化され、そし
て、データおよびコマンド文字と、IBM PC互換性
システムにより典型的に取り扱われる他の8042型の
コマンドとを含むことができる。I/0コントローラA
SIC32は、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】もしもそのようなコマンドであれば、SY
INT 8751ルーチン500は、キィーボード
または補助デバイスエミュレーションをほゞイネーブル
またはディセーブルするステップ506に進む。ディセ
ーブルのためには、それは、単にKBD RESPおよ
びKBD EMULATEか、あるいは、AUX RE
SPおよびAUX EMULATEかを単に誤りにセッ
トする。イネーブルのためには、それは、KBD EM
ULATEか、あるいは、AUX EMULATEかを
真にセットする。DEVICE INT 8751ルー
チンは、ステップ464および468でキィーボードま
たは補助エミュレーションがイネーブルされることを許
容するために、これらのフラグを用いる。
【0105】もしもステップ505でイネーブルまたは
ディセーブルでなければ、SYS INT 8751ルー
チン500は、上述のような拡張されたコマンドを含む
他のシステムコマンドを処理するステップ507に進
む。これらの拡張されたコマンドは、8751コントロ
ーラ42をパワーダウンすることを含み、そしてまた、
キィーボード構成データを戻すことも含む。
【0106】もしもステップ502で割り込みを指示し
たデータがKBDに送られるべきであれば、SYS
NT 8751ルーチン500は、KBD EMULA
TEルーチン550を実行するステップ508に進む。
キィーボードデータは、エミュレーションモードが活性
であると否とにかかわらず、KBD EMULATEル
ーチン550に送られる。なぜならば、もしもプロセッ
サ10が8751コントローラ42にパワーダウンする
ことを指示すれば、KBD EMULATEルーチン5
50はシステムに構成データを戻さなければならず、そ
して、それがこの構成データを予め捕捉したならば、そ
れはこれを行うことのみができるからである。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は、A
UXおよびその関連した変数のためにステップ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 EMU
LATEルーチン550は、ステップ508で図17に
示されるSYS INT 8751ルーチン500から
データを受け、そして、2つの主要な機能を実行する。
第1に、それは、構成コマンド文字を捕捉し、その結果
として生じる構成状態をセーブするので、プロセッサ1
0は、その構成を検索することができ、そして、プロセ
ッサ10が8751コントローラ42にスタンバイモー
ドに入ることを指示するときにそれを蓄えることができ
る。第2に、それは、キィーボードエミュレーションが
KBD RESPによって示されるようにイネーブルさ
れるとき、標準のIBM PC互換性のキィーボードの
応答をエミュレートする。
【0110】KBD EMULATEルーチン550
は、ステップ552で始まって、それが再送コマンド文
字か否かを決定するためにKBDへ送られるべきデータ
をチェックする。もしもそうであれば、KBD EMU
LATEルーチン550は、KBDからキィーボード応
答データ列に送られる最後のバイトを入れるステップ5
54に進む。次いで、この応答列は、図15に示される
ように、データが次いでステップ406でプロセッサ1
0に送られるMAIN 8751ルーチン400のステ
ップ404で読み出されるだろう。次いで、ステップ5
56で、KBD RESETが偽りにセットされて、プロ
セッサ10によってP KBDに送られる最後のコマン
ド文字がリセットコマンドでなかったことを指示する。
【0111】もしもステップ552で、再送コマンドが
KBDに送られなかったことをKBD EMULA
TEルーチン550が決定したならば、KBD EMU
LATEルーチン550は、このデータが再開シーケン
スとして取り扱われるべきであるか否かを決定するステ
ップ558に進む。IBM PC互換性のキィーボード
のために予定された或るコマンド文字は、1つよりも多
くの情報バイトを必要とし、そして、そのようなコマン
ド文字が予め送られたならば、この文字は、それらに続
く文字を取り扱うルーチンによって取り扱われなければ
ならない。これは、図20に関連して以下にさらに説明
されている。
【0112】もしもそのような多重バイトコマンドシー
ケンスにおいてでなければ、KBD EMULATEルー
チン550は、ステップ558からステップ560に進
んで、コマンド文字が無効なコマンド文字または正常な
データ文字であるか否かを決定する。もしも無効であれ
ば、それは、もしもコマンド文字が悪かったならば、キ
ィーボード応答データ列に再送要求文字を入れ、そし
て、ステップ560でのデータが無効なコマンド文字で
はなく、その代りに、P KBDに送られるまさに正常
なデータであったならば、単に何も行われないステップ
562に進む。次いで、ステップ564で、KBD
MULATEルーチン550は、ステップ556および
562の両方から戻る。
【0113】もしもプロセッサ10からI/Oコントロ
ーラASIC32を通して送られるデータが悪いコマン
ド文字でなくかつデータではなかったことをステップ5
60でKBD EMULATEルーチン550が決定し
たならば、それは、図19に示されるステップ600に
進む。ステップ600は、プロッセッサ10がP KB
Dに送ったコマンド文字に依存する種々のルーチンに分
岐するジャンプ(飛越し)テーブルを示す。或るコマン
ドは次のデータバイトがステップ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に進む。このコマンドの機能は、ステップ61
0でのように構成状態データに再びセーブされることが
できるが、このコマンドのまれな利用のために、その必
要がないと考えられる。
【0118】ステップ604、606、610および6
12から、KBD EMULATEルーチン550は、
KBD RESETを偽りにセットして、P KBDへ
の最後のコマンドがリセットでなかったことを示すステ
ップ614に進み、そして、ステップ616で戻る。
【0119】もしもステップ600でコマンドが再送コ
マンドであれば、KBD EMULATEルーチン55
0は、ステップ600から、再送機能を実行するステッ
プ554に進む。もしもステップ600でコマンドがリ
セットコマンドであれば、KBD EMULATEルー
チン550は、ステップ500に進み、そして、図21
に関連して以下に説明されているリセット機能を実行す
る。
【0120】もしもステップ558でそれが再開コマン
ドシーケンスにおいてであったことをKBD EMUL
ATEルーチン550が決定したならば、それは図20
に示されているステップ650に進む。ステップ650
は、それが中にあることをKBD EMULATEルー
チン550が決定したコマンドシーケンスの第2の文字
に基づく適当なジャンプを実行するジャンプテーブルを
示す。
【0121】もしもコマンドシーケンスが状態セットま
たは交互モードセットコマンドシーケンスであれば、K
BD EMULATEルーチン550は、ステップ65
0からステップ652に進んで、コマンドにしたがって
セットされるような状態をセーブする。状態セットは、
たとえば、LEDの状態をセットし、そして、交互モー
ドセットは、キィーボードモードをセットする。次い
で、ステップ654で、適当な応答または肯定応答がキ
ィーボード応答データ列に置かれる。
【0122】もしもステップ650で、キィー繰り返し
率セットコマンドが決定されれば、それは可能であるけ
れども、その状態はセーブされない。その代わりに、K
BD EMULATEルーチン550は、キィーボード応
答データ列に肯定応答文字を置くステップ656に進
む。
【0123】もしもステップ650で、個別キィーセッ
トコマンドシーケンスが実行されていると決定されれ
ば、KBD EMULATEルーチン550は、個別キ
ィーセットコマンドのために適当であるキィーボードデ
ィセーブル状態をセーブするステップ658に進み、次
いで、ステップ656に進む。ステップ654および6
56の両方から、KBD EMULATEルーチン55
0は、KBD RESETを偽りにセットするステップ
660に進み、次いで、戻りのステップ662に進む。
【0124】もしもステップ600でリセットコマンド
が決定されれば、KBD EMULATEルーチン55
0は、図21におけるステップ700に進む。このコマ
ンド文字に対する応答において、それは、LEDをリセ
ットし、3つの操作モードをセットし、そして、LED
の構成状態、そのモードおよびキィーボードのイネーブ
ル/ディセーブル状態をセーブする。
【0125】次いで、ステップ702でKBD EMU
LATEルーチン550は、リセットコマンドがそのよ
うなコマンドシーケンスをキャンセルするように、それ
が予め存在したかもしれない再開コマンドシーケンスを
クリアする。
【0126】KBD EMULATEルーチン550
は、ステップ704に続いて、キィーボード応答データ
列をクリアし、ステップ706でキィーボード応答デー
タ列に肯定応答を入れ、そして、ステップ708でキィ
ーボード応答データ列にキィーボードOK応答を入れ
る。KBD EMULATEルーチン550は、これが
リセットコマンドであったかのように、ステップ709
でKBD RESETを真にセットし、そして、ステッ
プ710で戻る。
【0127】マウスまたは他のポインタデバイスは、図
22〜25においてのフローチャートで示されているA
UX EMULATEルーチン750によって取り扱わ
れる。AUX EMULATEルーチン750は、ステ
ップ518で図17に示されるSYS INT 875
1ルーチン500からデータを受け、そして、KBD
MULATEルーチン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 EMU
LATEルーチン750は、ステップ758でシステム
Cからのデータを補助応答データ列に入れ、そして、ス
テップ760で戻る。そうでなければ、AUX EMU
LATEルーチン750は、以下に説明するステップ8
08に進む。
【0129】もしも接続されたかまたはエミュレートさ
れたマウスがラップモードにないことをステップ752
でAUX EMULATEルーチン750が決定したな
らば、AUX EMULATEルーチン750は、それ
が再送コマンド文字であるか否かを決定するためにAU
Xに送られるべきデータをチェックするステップ762
に進む。もしもそうであれば、AUX EMULATE
ルーチン750は、AUXから送られる最後のバイトを
補助応答データ列に入れるステップ764に進む。次い
で、この応答列は、図15に示されているように、デー
タがステップ412でプロセッサ10に送られるMAI
8751ルーチン400のステップ410で読み出
されるだろう。次いで、ステップ766で、AUX
ESETが偽りにセットされて、プロセッサ10によっ
てP AUXに送られる最後のコマンド文字がリセット
コマンドでなかったことが指示される。
【0130】もしもステップ762で再送コマンドがP
AUXに送られてこなかったことをAUX EMUL
ATEルーチン750が決定したならば、AUX EM
ULATEルーチン750は、このデータが再開シーケ
ンスとして取り扱われるべきであるか否かを決定するス
テップ768に進む。IBM PS/2互換性のマウス
のために予定された或るコマンド文字は、1バイトより
も多い情報を必要とし、そして、もしもそのようなコマ
ンドが予め送られた文字であったならば、この文字は、
それらに続く文字を取り扱うルーチンによって取り扱わ
れなければならない。これは、図24に関連して以下に
さらに説明されている。
【0131】もしもそのような多重バイトコマンドシー
ケンスにおいてでなければ、AUX EMULATEルー
チン750は、ステップ768からステップ770に進
んで、コマンド文字が無効なコマンド文字または正常な
データ文字であるか否かを決定する。もしもそうであれ
ば、それは、コマンドが悪かったなら補助応答データ列
に再送要求文字を入れ、そして、ステップ770でのデ
ータが無効なコマンドではなくてP AUXに送られた
まさに正常なデータなら単になにもしないステップ77
2に進む。次いで、ステップ774でAUX EMUL
ATEルーチン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
は、補助応答データ列に適当な応答を置くステップ80
6に進む。もしもコマンドが状態要求コマンドであった
ならば、これは、以下に説明するステップ810でセー
ブされるような3バイト構成状態データで応答すること
を必要とするだろう。これは、もしもマウスが接続され
ていなければエミュレーションルーチンによってセーブ
されるように、マウスの構成状態をシステムに供給す
る。
【0135】もしもコマンドがスケーリングリセットコ
マンド、スケーリングセットコマンド、ストリームモー
ドセットコマンド、ラップモードリセットコマンド、ラ
ップモードセットコマンド、リモートモードセットコマ
ンド、イネーブルコマンド、ディセーブルコマンドまた
はデフォルトセットコマンドであれば、AUX EMU
LATEルーチン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は、ステップ8
00から、再送機能を実行するステップ764に進む。
もしもステップ800でコマンドがリセットコマンドで
あれば、AUX EMULATEルーチン750は、ス
テップ900に進み、そして、図25に関連して以下に
説明されているようなリセット機能を実行する。
【0138】もしもステップ768でそれが再開コマン
ドシーケンスにあったことをAUX EMULATEルー
チン750が決定したならば、それは、図24に示され
るステップ850に進む。ステップ850は、それが中
にあることをAUX EMULATEルーチン550が
決定した2バイトコマンドシーケンスに基づいて適当な
ジャンプを実行するジャンプテーブルを示す。
【0139】もしもそのコマンドシーケンスがリゾリュ
ーションセットまたはサンプリング率セットコマンドシ
ーケンスであれば、AUX EMULATEルーチン7
50は、ステップ850から、特有のコマンドにしたが
って状態をセーブするステップ852に進む。次いで、
ステップ854で、適当な応答または肯定応答が補助応
答データ列に置かれる。次いで、AUX RESETが
ステップ856で偽りにセットされ、そして、AUX
EMULATEルーチン750はステップ858で戻
る。
【0140】もしもリセットコマンドがステップ754
またはステップ800で決定されれば、AUX EMU
LATEルーチン750は、図25におけるステップ9
00に進む。このコマンドに対する応答においては、そ
れは、ステップ900で最初にデフォルト状態にリセッ
トし、そして、その状態をセーブする。
【0141】次いで、ステップ902で、AUX EM
ULATEルーチン750は、リセットコマンドがその
ようなコマンドシーケンスをキャンセルするように、そ
れが予めそこにあったかもしれない再開コマンドシーケ
ンスをクリアする。
【0142】ステップ904に続いて、AUX EMU
LATEルーチン550は、補助応答データ列をクリア
し、ステップ906で補助応答データ列に肯定応答を入
れ、そして、ステップ908で補助応答データ列に補助
OK、OK応答を入れる。次いで、AUX EMULA
TEルーチン750は、ステップ909でAUX RE
SETを真にセットし、そして、ステップ910で戻
る。
【0143】当業者によっって容易に認識され得るよう
に、本発明に従って構成されるシステムは、キィーボー
ドおよびマウスエミュレーションルーチンを備えること
によって多数の利益を提供する。それは、ラップトップ
またはノートブックシステムのユーザに、それらのシス
テムを単にスタンバイに置き、次いで、キィーボードお
よびマウスが接続されるコネクタを切替ることを許容す
る。システムがスタンバイから出るとき、8751コン
トローラ42エミュレーションルーチンと協働するBI
OSルーチンは、キィーボードおよびマウスの存在を検
出し、そして、それらのデバイスをKBDおよびAUX
に対応するように適当にマップし、次いで、正常な実行
が再開されるのを許容する。さらに、電源がキィーボー
ドおよびマウスに対してシャットダウンされて、電源消
費をセーブしても、これらのデバイスは、スタンバイに
入ったのと同じ状態にあるように見えるだろう。これ
は、キィーボードまたはマウスがこの構成データを通常
破壊するデバイスからフィジカルに取り外されていたと
否とにかゝわらず、そのとおりである。
【0144】さらに、システムの始動時に、たとえキィ
ーボードまたはマウスが備えられていなくても、それ
は、(動作中のシステムソフトウェアが8751コント
ローラ42に備えられるようなデバイスエミュレーショ
ンのためにキィーボードおよびマウスドライバを備える
ことを強制されたであろうように)、スタンバイ状態に
おける間に遅れて備えられ、そして、スタンバイを離れ
て活性になることができる。
【0145】上述の実施例はI/OコントローラASI
C32および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 87
51ルーチンのフローチャートである。
【図18】本発明によるキィーボードおよび補助デバイ
スコントローラに備え付けられるKBD EMULAT
Eルーチンのフローチャートである。
【図19】図18に示すルーチンの部分的なフローチャ
ートである。
【図20】図18に示すルーチンの別の部分的なフロー
チャートである。
【図21】図18に示すルーチンのさらに別の部分的な
フローチャートである。
【図22】本発明によるキィーボードおよび補助デバイ
スコントローラに備え付けられるAUX EMULAT
Eルーチンのフローチャートである。
【図23】図22に示すルーチンの部分的なフローチャ
ートである。
【図24】図22に示すルーチンの別の部分的なフロー
チャートである。
【図25】図22に示すルーチンのさらに別のフローチ
ャートである。
【符号の説明】
C コンピュータシステム 10 マイクロプロセッサ 12 主メモリ 14 バス 32 I/OコントローラASIC 34 キィーボードコネクタ 35 マウスコネクタ 36 マウス/キィーボードコネクタ 42 8751コントローラ 50 DC−DC電源装置
───────────────────────────────────────────────────── フロントページの続き (54)【発明の名称】 コンピュータシステムにおけるユーザ入力デバイス存在のエミュレート方法、スタンバイ中のデ バイス構成のロス防止方法、デバイス存在のエミュレートのためのコントローラ回路およびデバ イス構成の捕捉のためのコントローラ回路

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】プロセッサと、第1のフィジカルユーザ入
    力デバイスと結合するための第1のデバイスポートと、
    上記プロセッサおよび上記第1のデバイスポートの間に
    おいてコマンドおよびデータ文字を通信するためのコン
    トローラ回路とを含むコンピュータシステムにおいてユ
    ーザ入力デバイスの存在をエミュレートする方法であっ
    て、 (a)フィジカルユーザ入力デバイスが上記第1のデバ
    イスポートに結合されているか否かを決定すること、 (b)上記ステップ(a)においてフィジカルユーザ入
    力デバイスが上記第1のデバイスポートに結合されてい
    ると決定されたならば、 (1)上記プロセッサから上記第1のデバイスポートに
    コマンドまたはデータ文字を送ること、および、 (2)上記第1のデバイスポートから上記プロセッサに
    その後に受けるコマンドまたはデータ文字を送ること、 のステップを実行すること、および、 (c)上記ステップ(a)においてフィジカルユーザ入
    力デバイスが上記第1のデバイスポートに結合されてい
    ることが決定されなかったならば、 (1)上記プロセッサからのコマンドまたはデータ文字
    が応答を必要とするか否かを決定すること、および、 (2)上記ステップ(c)(1)において応答が必要で
    あると決定されたならば、上記コントローラ回路から上
    記プロセッサにコマンドまたはデータ文字の応答を送る
    こと、 のステップを実行すること、のステップを備える方法。
  2. 【請求項2】上記コンピュータシステムが所定の状態を
    出るときに上記ステップ(a)が実行される請求項1の
    方法。
  3. 【請求項3】上記第1のフィジカルユーザ入力デバイス
    がキィーボードである請求項1の方法。
  4. 【請求項4】上記第1のフィジカルユーザ入力デバイス
    がポインティングデバイスである請求項1の方法。
  5. 【請求項5】上記コンピュータシステムが第2のフィジ
    カルユーザ入力デバイスと結合するための第2のデバイ
    スポートをさらに含み、 上記ステップ(a)の後に、上記デバイスコマンドまた
    はデータ文字が上記第1のデバイスポートまたは上記第
    2のデバイスポートに向けられているかを決定し、次い
    で、第1のデバイスポートまたは第2のデバイスポート
    に向けられているものを用いて上記ステップ(b)〜
    (d)を実行するか、あるいは、第1のデバイスポート
    または第2のデバイスポートに向けられているものから
    生じるときの応答を送ることのステップをさらに備える
    請求項1の方法。
  6. 【請求項6】上記第1のデバイスポートがキィーボード
    に結合されることを意図され、そして、上記第2のデバ
    イスポートがポインティングデバイスに結合されること
    を意図されている請求項5の方法。
  7. 【請求項7】上記ステップ(c)が、 (3)上記デバイスコマンドまたはデータ文字が上記第
    1のフィジカルユーザ入力デバイスの構成を変えること
    を意図されている所定数のコマンドの1つであるか否か
    を決定すること、および、 (4)上記ステップ(c)(3)において上記デバイス
    コマンドまたはデータ文字が上記構成を変えることを意
    図されていると決定されたならば、上記第1のフィジカ
    ルユーザ入力デバイスの新しい構成をセーブすること、
    のステップをさらに備える請求項1の方法。
  8. 【請求項8】プロセッサと、第1のフィジカルユーザ入
    力デバイスと結合するためのパワーダウン可能な第1の
    デバイスポートと、上記プロセッサおよび上記第1のデ
    バイスポートの間における通信のためおよび上記プロセ
    ッサからのデバイス構成コマンド文字を受けるためのコ
    ントローラ回路とを含むコンピュータシステムにおいて
    スタンバイ中のデバイス構成のロスを防止する方法であ
    って、 (a)上記プロセッサから上記第1のデバイスポートに
    向けられる所定のデバイス構成コマンド文字を捕捉する
    こと、 (b)上記ステップ(a)において捕捉される上記デバ
    イス構成コマンド文字によって指示されるような上記コ
    ンピュータシステムの第1の部分にデバイス構成状態を
    セーブすること、 (c)上記デバイスポートをパワーダウンすること、 (d)上記デバイスポートをパワーアップすること、お
    よび、 (e)上記デバイス構成状態を再格納するために、上記
    第1のデバイスポートに上記デバイス構成コマンド文字
    を再送すること、のステップを備える方法。
  9. 【請求項9】上記ステップ(b)が上記プロセッサに上
    記デバイス構成状態を送るステップを含む請求項8の方
    法。
  10. 【請求項10】上記ステップ(c)の後に、上記コント
    ローラ回路をパワーダウンし、次いで、上記コントロー
    ラ回路をパワーアップすることのステップをさらに備え
    る請求項9の方法。
  11. 【請求項11】上記コンピュータシステムが第2のフィ
    ジカルユーザ入力デバイスに結合するためのパワーダウ
    ン可能な第2のデバイスポートをさらに含み、 上記第1のデバイスポートおよび上記第2のデバイスポ
    ートのために上記ステップ(a)〜(e)を繰り返すこ
    とのステップをさらに備える請求項8の方法。
  12. 【請求項12】コマンドおよびデータ文字を送るための
    プロセッサと、バスと、デバイスのためのデバイスポー
    トとを有するコンピュータシステムにおいてデバイスの
    存在をエミュレートするためのコントローラ回路であっ
    て、 上記デバイスポートと通信するための通信手段と、 デバイスが上記デバイスポートにおいて応答し得るか否
    かを検出するための検出手段と、 デバイスが応答し得ることを上記検出手段が指示すると
    きに、上記プロセッサおよび上記通信手段を結合するた
    めの結合手段と、 上記デバイスポートに向けられるコマンドおよびデータ
    文字に応答可能でありかつデバイスからの応答をエミュ
    レートするためのエミュレート手段とを備えるコントロ
    ーラ回路。
  13. 【請求項13】コマンドおよびデータ文字を送るための
    プロセッサと、バスと、デバイスのためのパワーダウン
    可能なデバイスポートとを有するコンピュータシステム
    においてデバイス構成を捕捉するためのコントローラ回
    路であって、 上記デバイスポートに向けられる所定のデバイス構成コ
    マンドを捕捉するための捕捉手段と、 上記捕捉手段に応答可能でデバイス構成データをセーブ
    するためのセーブ手段と、 上記デバイスポートをパワーダウンおよびパワーアップ
    するための電源制御手段と、 上記セーブ手段に応答可能で上記デバイスポートにおけ
    るデバイスの構成を再格納するための再格納手段とを備
    えるコントローラ回路。
JP6243341A 1993-09-10 1994-09-12 コンピュータシステムにおけるユーザ入力デバイス存在のエミュレート方法 Expired - Fee Related JP2608532B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11943093A 1993-09-10 1993-09-10
US119,430 1993-09-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP22036596A Division JP3869049B2 (ja) 1993-09-10 1996-08-02 コンピュータシステムにおけるスタンバイ中のデバイス構成のロス防止方法およびデバイス構成の捕捉のためのコントローラ回路

Publications (2)

Publication Number Publication Date
JPH07182073A true JPH07182073A (ja) 1995-07-21
JP2608532B2 JP2608532B2 (ja) 1997-05-07

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 After (1)

Application Number Title Priority Date Filing Date
JP22036596A Expired - Fee Related JP3869049B2 (ja) 1993-09-10 1996-08-02 コンピュータシステムにおけるスタンバイ中のデバイス構成のロス防止方法およびデバイス構成の捕捉のためのコントローラ回路

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)

* Cited by examiner, † Cited by third party
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
WO2000019664A2 (en) * 1998-09-30 2000-04-06 Netscout Service Level Corporation Managing 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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 有機非線形光学材料とそれを用いた非線形光学素子

Family Cites Families (9)

* Cited by examiner, † Cited by third party
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
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 有機非線形光学材料とそれを用いた非線形光学素子

Also Published As

Publication number Publication date
EP0644477A2 (en) 1995-03-22
EP0644477B1 (en) 2001-11-14
EP0644477A3 (en) 1996-04-03
CA2131235A1 (en) 1995-03-11
US5590315A (en) 1996-12-31
DE69429050D1 (de) 2001-12-20
JP2608532B2 (ja) 1997-05-07
JP3869049B2 (ja) 2007-01-17
ATE208919T1 (de) 2001-11-15
JPH09120385A (ja) 1997-05-06
DE69429050T2 (de) 2002-06-06

Similar Documents

Publication Publication Date Title
JP2608532B2 (ja) コンピュータシステムにおけるユーザ入力デバイス存在のエミュレート方法
US7945772B2 (en) Apparatus, method and program product for initiating computer system operation
US5274816A (en) Personal computer capable of changing boot priority
KR100368079B1 (ko) 컴퓨터 및 컴퓨터의 전원 제어 방법
KR100310093B1 (ko) 패스워드를 이용한 개인용 컴퓨터의 보안방법
US6601178B1 (en) System power management partitioned across a serial bus
JP3301064B2 (ja) 低電力モード・コンピュータ
US6453423B1 (en) Computer remote power on
JPH04362717A (ja) システム再起動装置
JPH11110090A (ja) コンピュータのパワー状態を制御する方法及び装置
JP4382108B2 (ja) ソフトウェア制御のパワー管理機能を備えたコンピュータ・システム
US20030182546A1 (en) Information device, storage medium, and system activation method
JP3618878B2 (ja) コンピュータシステムおよびバス接続方法
US5539901A (en) Method and apparatus for system management mode support for in-circuit emulators
KR100392451B1 (ko) 휴대용 컴퓨터 시스템 및 그의 제어방법
US6895517B2 (en) Method of synchronizing operation frequencies of CPU and system RAM in power management process
US6625739B1 (en) Hard power shutdown of a computer by actuating both a keyboard controller independent key and a soft power switch together to bypass the power switch together to bypass the power controller
JP2631085B2 (ja) コンピュータのためのシステム管理モードアドレス訂正システムおよびコンピュータシステム
US5867718A (en) Method and apparatus for waking up a computer system via a parallel port
US7096299B2 (en) Method and apparatus for transferring system context information between mobile computer and base station
US6567931B1 (en) Preventing false remote system wake events following AC power loss
WO1993001542A1 (en) Microprocessor with oem mode for power management
JPH1173330A (ja) コンピュータシステム
KR0130785Y1 (ko) 휴대용 컴퓨터의 피씨엠씨아이에이 카드 교체시 자동 감지장치
JPH03282914A (ja) パーソナルコンピュータシステムおよびその構成変更方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090213

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090213

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100213

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100213

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110213

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120213

Year of fee payment: 15

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130213

Year of fee payment: 16

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140213

Year of fee payment: 17

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