(57)【要約】【課題】  ホストのウインドウ情報を表示することができる安価な端末の提供。【解決手段】  ホスト・システム（１０）と通信して、ホストからのウインドウ情報を受信し、オペレーティング・システムがホストと完全には互換性がない端末（１２）に、ホストのウインドウ情報を表示する。また、ホスト（１８）から通信リンク（１４）を経由して、端末動作特性を更新するための方法も開示している。さらに、１台の端末内に、多数のパーソナリティを実装して、それらのパーソナリティを切り換える方法と装置も、開示している。【選択図】          図１
2004185633.tif 000002
【特許請求の範囲】
【請求項１】
複数のホスト・システムであって、その各々が異なるプロトコルを使用しているホスト・システムから選択された１台のシステムと通信するために適応化された端末において、第１のホスト・システムに関連する通信プロトコルに応じて、該第１のホスト・システムから供給される第１組と第２組の命令への応答を供給するための第１のパーソナリティと、第２のホスト・システムに関連する通信プロトコルに応じて、該第２のホスト・システムから供給される第３組と第４組の命令への応答を供給するための少なくとも第２のパーソナリティと、ウィンドウ情報を供給するための前記ホスト・システムの内の少なくとも１台と、ホスト・システムに関連する該通信プロトコルと互換性のある、該関連するホスト・システムへの応答を供給するために、該第１と第３の命令の内の１組を処理するためと、該第２と第４組の命令の内の１組をエミユレートするための、該第１と少なくとも該第２のパーソナリティに応答するプロセッサ手段と、該端末が現在接続されている該ホスト・システムを識別するためと、該識別されたホスト・システムと通信するための該第１と少なくとも該第２のパーソナリティの内の適切な１つのパーソナリティを選択するための切換手段とから成ることを特徴とする端末。
【請求項２】
動作特性を保存するために、フラッシュメモリを提供するステップと、更新された動作特性を受け取るために、ホストへの通信リンクを供給するステップと、該ホストとの通信を維持している間に、該フラッシュメモリの少なくとも所定の部分が、書き込まれ得る第１の動作状態を確立するステップと、該端末が、該第１の動作状態にある間に、該ホストから該端末に更新された動作特性をダウンロードするステップと、該端末が、該第１の動作状態にある間に、該フラッシュメモリに、該更新された動作特性を書き込むステップと、データが該フラッシュメモリの該所定の部分に書き込まれない第２の状態を確立するステップとから成ることを特徴とする、端末の動作特性を更新するための方法。
【請求項３】
ホスト・システムと通信するためにディスプレイを有する端末を構成するための方法において、該ディスプレイの一部に、少なくとも１つのビットマップ領域を確立するステップと、該領域内に、少なくとも１つのビットマップグループを確立するステップと、該グループ内に、少なくとも１つのビットマップ選択対象を確立し、各選択対象は、それに関連する１つ以上の選択事項を有していることを特徴とするステップとから成ることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末上に情報を表示するための方法と装置に関し、特に、端末上に、Microsoft Windows （登録商標）操作環境及びその環境内でのアプリケーション・プログラム等のグラフィック・ユーザ・インタフェースをフォーマットし、さらに表示するための方法と装置に関する。
【背景技術】
【０００２】
Microsoft Windows （登録商標）操作環境等のグラフィック・ユーザ・インタフェースは、世界中でよく売れているアプリケーション・ソフトウェア用の、最も普及している操作環境から構成されている。そのような環境は、他の理由だけでなく、使い易さ、ユーザ・インタフェースの均一性、表示品質の高さ等によって、一般的に好まれている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、そのようなユーザ環境は、ワークステーションや、パーソナル・コンピュータ等のマイクロコンピュータと共に使用されるように設計されていた。そのようなワークステーションやマイクロコンピュータは、柔軟ではあるが、機密保護、信頼性、管理の容易さ、及び価格に難点がある。データ端末は、マイクロコンピュータに比べて、改善された機密保持や管理の容易さという利点を提供することが知られ、また、通常、価格がさらに安いが、端末は、一般に、その最も普及しているグラフィック・ユーザ・インタフェースとの互換性を提供できていない。Ｘ環境は、Unix（登録商標）の下で動作している何種類かのグラフィック・ユーザ・インタフェースを提供できるが、一般的には高価で、拡張メモリを必要とし、さらに、最も普及しているWindows 環境との互換性は殆ど無い。
【０００４】
従来技術で知られた別の選択肢は、ディスクレスＰＣＳである。しかし、ディスクレスＰＣＳは、何点かの不足分がある。殆どの例で、クライアント・サーバ環境で動作しているディスクレスＰＣＳは、そのサーバからアプリケーション・プログラムをダウンロードして、そのアプリケーション・プログラムを局所的に実行することによって、アプリケーション・プログラム情報を表示する。これは、ディスクレスＰＣＳが、実行しようとしているアプリケーション毎に必要な処理能力の全てを持つことを、ディスクレスＰＣＳに要求する。今日の環境において、このことは８ＭＢ以上のメモリ、強力なプロセッサ等を要求し、ディスクレスＰＣを高価にする。さらに、ディスクレスＰＣＳは、機密保護に制約があり、また余分な管理を必要とする場合がある。Windows （登録商標）ＮＴオペレーティング・システムは、丈夫なネットワーク・クラインアント・サーバ環境を提供すると共に、普及しているWindows （登録商標）環境とアプリケーション・プログラム・レベルでの互換性も提供する。しかし、そのＮＴオペレーティング・システムは、ＰＣクライアント用に書かれたものであって、端末用ではない。その結果、ＮＴクライアントは、一般的に、丈夫でなければならず、従って、高価となる。さらに Windows NT は、クライアント・サーバ環境用に書かれたものであり、マルチユーザ環境用ではない。最近、CitrixSystems 社によって提供されている WinFrame オペレーティング・システムは、 WinFrame 用の従来技術のアプリケーションが、端末に対峙するＰＣＳクライアントであるけれども、 Windows NT オペレーティング・システムを変更して、マルチユーザ環境で動作するように拡張している。
【０００５】
従って、比較的高価でなく、信頼性があり、管理しやすく、機密が保持され、さらにマルチユーザWindows （登録商標）オペレーティング環境内で、アプリケーション・プログラム情報を表示することができる端末用のニーズが、以前からある。
【０００６】
【特許文献１】特開昭７−９３２５１号公報
【非特許文献１】服部，“アップルの戦略『得意分野の先進技術で勝負』”，日経ＭＡＣ  １９９５年１２月１５日，第３３号，ｐ．２１６−２２１
【課題を解決するための手段】
【０００７】
本発明は、従来技術の欠点に対する精密で簡潔な解決法を提供するが、本発明は、ウィンドウ環境と互換性のあるアプリケーション・ソフトウェアを表示することのできる高価でない端末を提供することを、特徴とする。特に、本発明は、マルチユーザ・オペレーティング・システムを動作させているアプリケーション・サーバと通信可能なディスプレイ端末を、提供する。これは、ディスクトップ Windowsアプリケーションと、確実にアクセスできるようにする。例示的な構成において、アプリケーション・サーバは、Citrix Systems 社によって提供されるWinFrameTMオペレーティング・システムを動作させている、任意の適切なコンピュータの形で、設けられる。そのWinFrameTMオペレーティング・システムは、 Windows NT オペレーティング・システムと、マルチユーザ機能だけでなく、ＩＣＡ−３として知られている表示プロトコルも実装している拡張機能とを内蔵している。
【０００８】
その端末は、ある実施例において、Intel X86 プロセッサ系のハードウェア・アーキテクチャを有している。さらに、その端末は、限定されたメインメモリだけを提供し、また、ワード・プロセッシング、グラフィックス、データベース、又は他の普及しているプログラム、又は、 Windows、又はＤＯＳオペレーティング・システム自体等の最新のアプリケーション・プログラムの局所的な実行ができないのが、一般的である。このようにして、本発明の端末は、従来技術のＸ端末、又は、ディスクレスＰＣＳ、又は、クライアント・サーバ環境に構成された他のＰＣＳとは、明らかに異なる。重要なことは、そのハードウェア・アーキテクチャは、従来のＩＢＭ ＰＣ／ＡＴバスを実装しているのではなく、また、その端末内のファームウェアは、標準ＰＣ／ＡＴ ＢＩＯＳも、標準ＰＣ互換ディスク・オペレーティング・システムも実装していないことである。その端末ファームウェアは、アプリケーション・サーバと互換性のあるネットワーク・アクセス拡張機能、例えば、Citrix Systems社から入手可能なＩＣＡ−３拡張機能を、備えている。 Windows環境での一般的な入出力機器、例えば、マウス、キーボード、タッチスクリーン、及び他の入出力サービス等だけでなく、高解像度グラフィック・ディスプレイが、使い易さのために備えられ、そのディスプレイは、白黒（グレイスケールを含む）、又は、カラーである。
【０００９】
さらに、その端末は、従来のＲＳ−２３２Ｃポート、イーサネット接続、無線機能、ＩＳＤＮ、光ファイバ、ＡＣ電源線モデム、ケーブル又は他の接続手段を通じて、アプリケーション・サーバと通信できるネットワーク・インタフェースを、含んでいる。そのアプリケーション・サーバに接続されると、その端末は、そのサーバ上で動作し、その端末のユーザにアクセスされる任意のアプリケーション・プログラムを含む、 Windows NT 又は Windows 95 オペレーティング環境を表示する。その例示的な配置において、その端末は、そのユーザにとって、さらに高価で、機密性が低く、さらに管理しにくいパーソナル・コンピュータと、本質的に同一に見える。その結果、動作中に、本発明の端末は、通常、マルチユーザ・システムに関連する多数の機能を提供し、同時に、クライアント・サーバ環境で一般的な、多数の望ましい機能も提供する。
【００１０】
本発明の第１の機能は、 Windows環境内で、クライアント独立の可用性である。つまり、本発明によるシステムにより、ユーザは、自分のオペレーティング環境を定義し、さらにその環境は、そのシステムの隅々まで、そのユーザに従う。従って、ユーザは、ある端末にログオンし、環境を定義し、さらに別の端末にログオンすることができる。その第２の端末は、そのユーザが最初の端末で定義した環境を、自動的に表示する。アプリケーション・プログラム情報の表示能力以外に、本発明の端末は、ユーザが、その端末の種々の動作様態を構成することができる設定モードを、有している。本発明の端末が、WinFrameを動作させているようなサーバから送られる命令に従うようにするために、特定の目的の端末オペレーティング・システムが開発されたが、それは、従来のＰＣオペレーティング・システムへの呼び出しのエミュレートをするか、又は対応をする。その端末オペレーティング・システムは、システムを初期化して、開始するためのブート・ブロックを含み、そのブロックに、追加のドライバや、変更された WinFrame クライアント・コードのローディングを含む命令ソフトウェアをロードするカーネルが、後続する。その変更されたWinFrame クライアントの実行は、アプリケーション・サーバに接続することを含んでいる。
【００１１】
さらに、Microsoft Windows 環境において、アプリケーション表示情報の表示能力に加えて、本発明は、種々のパーソナリティの中で「ホットキー」スイッチへの能力を有する、他の常駐端末エミュレーション又はパーソナリティを含むことによって、非 Windowsオペレーティング・システムを動作させている、他のサーバ又はホストと通信する能力も含んでいる。本発明のさらに別の特徴は、端末と他の局所的に管理されているタスクの構成のための、グラフィック・ユーザ・インタフェースの装備である。特に、そのグラフィック・ユーザ・インタフェースは、複数のウィンドウを採用し、各ウィンドウは、１つ以上の端末特性と、他の局所的タスクの再構成を可能にする。各ウィンドウのグループ内に配置されているのは、そのウィンドウ内で構成され得る選択対象である。ユーザが選択できるこれらの選択対象が、プルダウン又は同様なメニューを通じて、表示されるか、又は表示可能である。種々のデータ構造は、異なったタイプのグループ及び選択対象と、関連付けられる。
【００１２】
本発明の他の特徴は、フラッシュメモリに端末オペレーティング・システムを保存していることである。そのフラッシュメモリは、種々の方法で更新され、その方法は、例えば、その端末が所定の状態に置かれたときの、パラレルポート、シリアルポート、又はネットワーク・アダプタ等の適切なインタフェース経由での通信である。従って、本発明の第１の目的は、Microsoft Windows （登録商標）ＮＴオペレーティング・システムの下で動作している普及したアプリケーション・プログラムを実行しているアプリケーション・サーバによって生成された情報を、表示できる端末の提供である。さらに別の本発明の目的は、端末オペレーティング・システムを構成するためのグラフィック・ユーザ・インタフェースを有している端末構成システムの提供である。
【００１３】
他の本発明の目的は、クライアント・サーバ環境におけるクライアント・パーソナル・コンピュータをエミュレートする、アプリケーション・プログラム情報を表示するための端末の提供である。さらに別の本発明の目的は、一般的に、マルチユーザ・コンピューティング環境に関連する望ましい機能と、クライアント・サーバ環境に関連する望ましい機能とを結合した機能を有する端末の提供である。他の本発明の目的は、一方で、非標準ＰＣ／ＡＴ ＢＩＯＳ及び非標準ＰＣＤＯＳを動作させながら、同時に、ウィンドウオペレーティング環境との通信を可能にする端末オペレーティング・システムの提供である。別の本発明の目的は、その端末オペレーティング・システムを、素早く、便利に更新するための装置と方法の提供である。
【００１４】
さらに別の本発明の目的は、拡張カードの交換やその端末の電源を遮断することなく、種々のパーソナリティの素早い切換機能を有する端末用の多重常駐型パーソナリティを提供することである。これらや他の本発明の目的は、付随する図面と共に、本発明の下記の詳細な説明により、さらに明白になるはずである。
【発明を実施するための最良の形態】
【００１５】
（実施例）
図１を参照すると、本発明に関する単純化されたシステムが、示されている。特に、単一のアプリケーション・サーバ１０は、適切なネートワーク又は他の通信リンク１４を経由して、１つ以上の端末１２と、双方向で通信する。そのネットワーク・リンクは、ＲＳ２３２回線、ＡＣ電源線モデム、又は撚線対又は同軸ケーブル等のイーサネット接続、あるいは光ファイバ等の他の適切なリンクでよい。満足に動作するように決められている例示の配置において、アプリケーション・サーバは、 WinFrame オペレーティング・システム等の、Citrix Systems社によって提供されるもののような、適切な拡張機能を有する Windows NT （登録商標）等のオペレーティング・システムを、動作させている。Citrixリモート・ウィンドウズ・プロトコル又は拡張機能は、 Windows NT 環境下で、眞のマルチユーザ機能を提供する。そのような構成のために、アプリケーション・サーバは、例えば、適切な量のＲＡＭを有するIntel Pentium 又は４８６プロセッサあるいは DEC Alpha 又はＭＩＰＳプロセッサ等の他の同様なプロセッサ、あるいはマルチプロセッサに基づいたパーソナル・コンピュータでよい。例示の構成において、サーバは、WinFrameTMオペレーティング・システム用の１６ＭＢのＲＡＭと、そのユーザが動作させている特定のアプリケーションに応じて、同時ユーザ当たり１−８ＭＢのＲＡＭとを有している。
【００１６】
適切な構成において、アプリケーション・サーバ１０は、NetWare ファイル・サーバ１６、Unixホスト１８、他のパーソナル・コンピュータ２０、又はインターネット・ゲートウェイ２２を含む他のサーバとも、通信をすることができる。また、ルータあるいは他の通信サーバ２４等の他の接続を経由して、アプリケーション・サーバ１０は、リモート端末２６、又は他の手段により、リモート・ダイアルアップ・ユーザ２８とも通信できる。次に、図２を参照すると、本発明による端末のハードウェア・アーキテクチャが、さらによく理解できるはずである。特に、通常、ｘ８６ファミリのマイクロプロセッサであり、実施例においては、８０３８６ＣＸＳＡ又は '４８６ＳＸＬＣであるＣＰＵ１００は、クロック＆リセット論理回路１０２から、クロックとリセット信号を受け取る。そのＣＰＵは、アドレスバス１０５、データバス１０６、ＣＴＲＬバス１０８経由で、他の論理回路と通信する。重要なのは、バス１０５、１０６、及び１０８は、通常、ＩＢＭ ＰＣ／ＡＴ標準や、他のパーソナル・コンピュータ標準とも互換性が無いことであり、その理由は、本発明は、ネットワーク環境で動作しているパーソナル・コンピュータに関連する、全てではないにしても、多数の落とし穴を避けるように、意図されているからである。
【００１７】
特に、アドレスバス１０５は、ＣＰＵ１００から、フラッシュメモリ・アレイ１１２及びＶＧＡコントローラ１１４だけではなく、制御ＡＳＩＣ１１０へも伸びている。データバス１０６は、同様に、制御ＡＳＩＣ１１０、ＶＧＡコントローラ１１４、及びメモリアレイ１１６と通信する。ＣＴＲＬバス１０８も同様に、制御信号を、ＡＳＩＣ１１０とＶＧＡコントローラ１１４に供給し、その他の論理回路１１８は、ＣＯＮＦＩＧ、ＩＤＣＳ、及びＤＩＡＧＣＳをＡＳＩＣ１１０に供給する。ＡＳＩＣ１１０は、ＤＭＡバス経由で、メモリアレイ１１６と通信し、ＰＤバス１２２経由で、フラッシュメモリ１１２とも通信する。そのＰＤバス１２２も、ＬＡＮコントローラ１２８だけでなく、ＡＳＩＣ１１０とフラッシュメモリ１１２、シリアルＩ／Ｏ＆パラレル・コントローラ１２４、及びキーボード＆マウス・コントローラ１２８との間の通信手段を提供する。さらに、ＡＳＩＣは、ＦＣＳ信号をフラッシュメモリ１１２に出力し、ＲＡＳ、ＣＡＳ、及びＷＥ信号をメモリアレイ１１６に出力し、ＣＯＭ１、ＣＯＭ２、及びＰＰＣＳ信号をＳＩＯコントローラ１２４に出力する。さらに、そのＡＳＩＣ１１０は、ＫＢＣＳ信号をキーボード＆マウス・コントローラ１２６に出力し、またＮＥＴＣＳ信号をＬＡＮコントローラ１２８に出力する。最後に、そのＡＳＩＣは、スピーカー使用可能信号ＳＰＥＮをスピーカー１３０に出力する。
【００１８】
また、ＣＰＵ１００は、バス１０５の一部を経由して、ＳＩＯコントローラ１２４、キーボード＆マウス・コントローラ１２６、及びＬＡＮコントローラ１２８と通信する。さらに、ＡＳＩＣ１１０は、ハードウェア割込みＩＮＴＡ、ＩＮＴＢ、及びＩＮＴＰをＳＩＯＲコントローラに出力し、ハードウェア割込みＫＢＩＮＴとＭＳＩＮＴをキーボード＆マウス・コントローラ１２６に出力し、またハードウェア割込みＮＩＮＴをＬＡＮコントローラ１２８に出力する。他のタイプのメモリでも、ある実施例では使用可能であるが、メモリアレイ１１６は、通常、ＤＲＡＭメモリから構成されている。しかし、現在のパーソナル・コンピュータと違って、端末動作に必要なアレイ１１６におけるＤＲＡＭの量は、５１２ＫＢから４ＭＢの範囲内である。実施例において、２３本のメモリアドレス配線と１本のバイト選択配線が使用され、これが、メモリ空間を１６ＭＢに制限している。他の実施例においては、異なる大きさのメモリ空間が、選択可能である。
【００１９】
制御ＡＳＩＣ１１０は、ある実施例において、バス制御、ＤＲＡＭコントローラ（通常、インタリーブ付き高速ページモード）、システムタイマー及びスピーカー・タイマー、及びＩ／Ｏコントローラ用の機能ブロックを備えている。また、その制御ＡＳＩＣは、ゲートアレイ又は他の高集積素子として実装され、図３に関連して、さらに詳しく説明される。ある動作例において、フラッシュメモリの容量は、５１２ＫＢ程度で十分であることが示されている；しかし、他のアプリケーションでは、５ＭＢ以上の大きさが望ましい場合がある。好適な実施例において、アレイ１１２は、フラッシュメモリで構成されるが、ある実施例では、例えそのアレイが、ＥＰＲＯＭ及びＳＲＡＭ又は他の等価なメモリ素子であっても、本発明の実質的な機能は、維持される。
【００２０】
ＳＩＯコントローラ１２４は、ＣＯＭ１ 1 3 2、ＣＯＭ２ 1 3 4、及びプリンタ（又はパラレル）ポート１３６と通信する。そのＳＩＯ＆パラレル・コントローラ１２４は、Startech社から入手可能な１６５５２デバイスでよい。キーボード＆マウス・コントローラ１２６は、同様に、キーボード１３８とマウス１４０と通信し、一方、ＬＡＮコントローラは、全ての実施例で設けられる必要はないが、ＬＡＮインタフェース１４２と通信する。ある例示的なプロトタイプにおいて、キーボード＆マウス・コントローラ１２６は、標準的なキーボード・コントローラであり、一方、そのキーボードとマウスは、ＰＳ／２標準に準拠している。少なくともある複数の実施例において、そのキーボード・コントローラは、米国特許第4,706,068 に記述されている４線式キーボード・インタフェースと互換性があるように、変更されている。最後に、ＬＡＮコントローラは、任意の適切なネットワーク・インタフェース・コントローラでよく、lOBase１、lOBase２、及びその他を含んだ、任意の許容されたネットワーク標準に準拠したものでよい。そのネットワーク・インタフェースは、追加のコード記憶のために、５１２ＫＢ以上のメモリを有したものがよい。
【００２１】
映像及びグラフィック・コントローラ１１４は、ＭＰＳ１４８経由で、モニタ１４６に供給される映像及びグラフィック情報を保存するための第２メモリアレイ１４４と、機能的に関係している。例えば、その映像コントローラ１１４は、内部ＲＡＭＤＡＣ付きのCirrus ５４２９でよく、例えば、少なくともＶＧＡ標準と互換性のある高解像度ディスプレイに備えるために、１ＭＢ以上のビデオメモリを有してもよい。 Windowsアプリケーション・プログラムを表示するために、同様の機能を有するパーソナル・コンピュータ用よりも、要求される合計メモリが、明らかに小さいことは、当業者にとっては、明白である。スリーブ信号１５０は、ＡＳＩＣ１１０から供給される。スリーブ信号を実施するための方法は、多数ある。例えば、本発明の白黒版において、信号は、そのモニタの電源に供給されて、映像信号を動作不能にし、そのモニタ電源の消費電力を下げる。カラー版では、そのモニタの電力を低下させるように、同期信号がＶＥＳＡ標準に準拠して取り扱われる。将来、ＣＰＵを含めて、多数のこれらの機能が、ＡＳＩＣ、ゲートアレイ、又は他の素子等の１個以上のＶＬＳＩに組み込まれる可能性があることは、当業者には明白であろう。
【００２２】
本発明のハードウェアの特別な機能として、フラッシュメモリ１１２に保存される端末オペレーティング・システムは、パラレルポート１３６、シリアルポート１３２又は１３４、又はＬＡＮインタフェース１４２等のネットワーク・アダプタ等の適切なインタフェースを通じた通信を含む種々の方法で、更新され得る。ある実施例では、フラッシュメモリは、その端末が所定の状態になったときに、例えば、ループバック・プラグ、適切なキー順、又は他の適切な方法を付加することによって、ホストシステムとの通信を通じて、更新される。そのような組み合わせにおいて、端末のメモリシステムへのダウンロードが可能になり、同時に、ホストとの通信も許されている。次に、ホストは、通信リンク経由で、更新された動作特性を、端末のＤＲＡＭ１１６、又はフラッシュメモリ１１２に直接的に出力する。従って、その更新されたオペレーティング・システム情報は、必要に応じて、フラッシュメモリ１１２に保存され、また端末は、ダウンロードが不可能な通常の動作状態に戻される。
【００２３】
通常の条件で、図２のシステムは、フラッシュメモリ・アレイ１１２に保存されているブートコードの実行の開始により、リセットに続く動作を開始する。フラッシュメモリ・アレイ１１２は、２つのバンクに配置され、その両方とも、ＣＰＵメモリ空間の所定のアドレス、例えば、COOOOO-DFFFFF と EOOOOO-FFFFFFでアクセスされる。一方、下記の表１に示すように通常のＰＣ機能の大半を提供するために、メモリ空間の残りが割り当てられる。実施例において、映像及びグラフィック用メモリアドレスは、従来のＰＣメモリアドレスより８ＭＢだけシフトしていることは、当業者には明白であろう。そのような実施例において、ＶＧＡチップは、「互換」モードで（つまり、線形アドレッシングモードがオフにされて）使用され、従って、そのＶＧＡチップだけが、AOOOOh-AFFFFh(グラフィックモードで)又はBOOOOh-B7FFFh(ＭＧＡモード用)あるいはB8OOOh-B8FFFh(ＣＧＡモード用)にあるフレームバッファに応答し、これらのアドレスは、8AOOOOh-8AFFFFh 等にシフトされる。それらのアドレスは、バンクＯ ＤＲＡＭの限界内でシフトされ、同時に（また、これ以降に説明するように）、 Windowsアプリケーション・プログラム情報の表示が十分にできる、通常のＰＣ機能のエミュレーションを可能にする。
【００２４】
表  １
2004185633.tif 000003
バンク０は、上部アドレス範囲、例えば、FFCOOOh-FFFFFFh のブートブロックに、配置され、２つの８ＫＢパラメータ・ブロックに後続し、さらに、アドレスF8OOOOh まで（５１２ＭＢ割当に対し）、又はFOOOOOh まで（１ＭＢ割当の場合）の複数の主ブロックに後続する。メモリの主ブロックは、通常、ファイルシステムとして構成されている。フラッシュメモリのバンク１は、通常、ファイルシステム装置に割り当てられ、アドレスDFFFFFh からCOOOOOh までの範囲である。
【００２５】
次に、図３を参照すると、ＡＳＩＣ１１０が、さらによく理解されるはずである。クロックバッファ１６０は、ＣＬＫ５０信号を受け取って、クロック信号をリセット同期論理回路１６２、ＤＲＡＭ制御論理回路１６４、及びタイマー制御論理回路１６６に供給する。割込みバッファ１６８は、表２に示されているように、ＩＮＴＰ、ＩＮＴＡ、ＩＮＴＢ、ＭＳＩＮＴ、ＫＢＩＮＴ、及びＮＩＮＴ信号を受け取る。割込みバッファは、複数の信号を、割込み制御論理回路１７０に出力し、その論理回路１７０は、制御信号をＣＰＵ制御入力バッファ１７２から受け取り、またタイマー制御信号をタイマー制御論理回路１６６から受け取り、さらに、ＣＰＵに出力されるＩＮＴＲ出力信号を生成する。また、そのＣＰＵ制御入力バッファ１７２は、制御信号をサイクル制御論理回路１７４に供給し、その論理回路１７４は、代わりに、制御信号をＤＲＡＭ制御回路１６４に出力する。ＤＲＡＭ制御回路１６４は、リフレッシュ信号をタイマー制御論理回路１６６から受け取り；そのタイマー制御論理回路１６６は、スピーカ使用可能信号ＳＰＥＮを生成する。
【００２６】
その実施例において、割込み制御論理回路１７０は、８２５９互換ではなく；同様に、システムタイマー、又はタイマー制御論理回路１６６は、８２５４互換ではなくて、８２５４互換素子より高周波で動作する。その結果、タイマー制御論理回路によって送られた、より高周波の割込みの内の幾つかが、カーネルでマスクされるが、他のものは、通過して、割込みと割込みの間の通常の時間を、平均に近づける。従って、例え、より低い（標準の）周波数でエミュレータされた入力間の時間が、均一でない場合でも、より高い周波数は、標準ＰＣ機能のエミュレーションを可能にする。また、ＡＳＩＣ１１０は、ＣＰＵアドレス入力バッファ１７６を備え、そのバッファ１７６は、表２に示すように、ＢＥ０、ＢＥ１、及びＡ１−Ａ２３信号を受け取って、出力信号をメモリ／ＩＯチップ選択制御論理回路１８０と、ＤＲＡＭメモリアドレス・マルチプレクサ１７８に出力する。そのメモリ／ＩＯチップ選択制御論理回路１８０は、表２に示すように、FLASHCSO(FCSO)とFLASHCS1(FCS1)信号を含めた種々の出力信号を出力する。さらに、ＡＳＩＣ１１０は、信号ＤＯ−１５をデータバス１０６から受け取って、それらをＣＰＵデータ入力バッファ１８２に出力する。そのバッファ１８２は、データを、Ｂデータ出力バッファ＆ラッチ回路１８４に出力し、その回路１８４は、出力信号ＢＤ０−１５を出力する。そのバッファ１８２は、データを電力制御論理回路１８６に出力して、その制御論理回路１８６は、ＳＬＥＥＰ（スリーブ）及びＰＷＲＤＷＮ信号を出力する。
【００２７】
また、その信号ＢＤ０−１５は、データをＢデータ入力バッファ１８８に出力することが可能で、そのバッファ１８８は、そのデータをＣＰＵデータ出力バッファ１９０に出力する。割込み制御論理回路１７０は、信号をそのバッファ１９０に出力する。構成レジスタ１９２は、構成信号（ハードウェア構成、例えば、フラッシュメモリ又はＤＲＡＭの容量、あるいはその両方、又はモニタ電源から、又はプラグイン・カード、例えば、ネットワーク・カードから）を、ＣＰＵデータ出力バッファに供給し、その出力バッファは、バス１０６上のデータを、そのＣＰＵに供給することができる。次に、図４を参照すると、本発明の端末オペレーティング・システムの主要な要素が、さらによく理解されるはずである。本発明のハードウェアは、標準ＡＴバス設計との互換性が無いことが、前記のことから理解されているはずである。その代わりに、本発明は、上位のソフトウェア層に、必要なＢＩＯＳサービスを提供するファームウェアに依存している。ある実施例において、ファームウェアは、割込みコントローラや可能な限り綿密にソフトウェアでエミュレートされるタイマー等のＡＴ互換ハードウェアと共に、仮想８０８６モードで動作するように設計されている。また、標準キーボード・コントローラが、実施例で使用されているけれども、場合によって、非標準コントローラがエミュレーションされる装置へのインタフェースとして使用される。そのようなハードウェア構成要素のポートからの入力出力信号は、そのエミュレーションを容易にするように、通知割込みされる。また、エミュレートされるＡ２０ゲートの制御の下で、プロセッサのメモリ管理機能は、通常のハードウェアにおいて、１ＭＢで発生するラップ・アラウンドを、シミュレートできるようにすることが可能である。
【００２８】
図４の参照を続けると、端末オペレーティング・システムは、ブートブロック３００によって実行を開始し、次に、カーネル３０５がローディングされる。そのカーネル３０５は、以下に特別に説明するように、本発明の多数の通知割込みや再マッピング機能を提供する。カーネル３０５の完了で、ＩＯ．ＳＹＳコード３１０がロードされる。次に、ＣＯＭＭＡＮＤ．ＣＯＭコード３１５がロードされ、次に、ＡＵＴＯＥＸＥＣ．ＢＡＴファイルによって提供されたコマンドが、実行される。そのＡＵＴＯＥＸＥＣ．ＢＡＴファイルは、例えば、ＶＧＡ ＸＭＳドライバだけでなく、全ての例で使用される訳ではないが、キーボード＆マウス・ドライバを含んでいる。また、そのファイルは、適切な条件が存在するときに実行される自己テストシーケンスを開始するコードを含む、他の任意のコードを含んでいてもよい。ある実施例において、通信ポートに設けられたループバック・プラグは、その自己テストシーケンスを実行させる。
【００２９】
ＥＸＥＣ．ＣＯＭコード３２５が、次に、ロードされる。このときに、実装状態に応じて、そのシステムが設定モードに入るか、又はユーザ・コマンドが、その設定モードへの立ち入りを引き起こすか、又はネートワーク接続コードのローディングを引き起こす。本実施例においては、システムは、設定モードに入って現在の構成データを獲得し、次にネットワーク接続コードのローディングを行う。その実施状態がユーザに選択を許し、またその設定モードがユーザによって選定された場合、ＥＸＥＣ．ＣＯＭ３２５は、分岐して、ＳＥＴＵＰ又はＧＵＩ３３０を実行する。設定モードが選定されない場合、ＥＸＥＣ．ＣＯＭ３２５は、３３５でネットワーク・ドライバのローディング及びアンローディングに協力して、３４０でネットワーク接続コード（再度、ＩＣＡ、細線、ｃｏｍ、又は他のネットワーク）の実行を開始する。本好適な実施例において、そのネットワーク接続コードは、ＤＯＳユーザ用 WinFrame の実質的変更バージョンを含み、そのWinFrame の標準バージョンは、Citrix Systems社から入力可能である。
【００３０】
次に、図５を参照すると、本発明の端末オペレーティング・システムとハードウェア・アーキテクチャの協力の様子が、さらによく理解されるはずである。特に、図５に示されている最下層は、入出力システムとハードウェア層４００である。その上層は、ドライバ層４０２であり、最上層は、アプリケーション層４０４である。電源オン時に、ハードウェア層に於ける電源オン＆初期テスト４０６が、ブートブロック３００の一部として実行される。電源オン＆初期テスト４０６は、部分的に、フラッシュメモリ・システム１１２から、また部分的にＲＡＭ１１６から実行される。電源オン自己テストが完了すると、端末は、図４に関連して、一般的に上述したブート・シーケンスを実行するが、そのブート・シーケンスは、ブートブロック３００の残り、ＡＵＴＯＥＸＥＣシーケンス４０８、及び３１５で示されたＣＯＭＭＡＮＤ．ＣＯＭシーケンスを含んでいる。そのＡＵＴＯＥＸＥＣとＣＯＭＭＡＮＤ．ＣＯＭファイルの両方とも、フラッシュメモリに保存されている。
【００３１】
端末のＣＯＭＭＡＮＤ．ＣＯＭシーケンスの実行後、ＡＵＴＯＥＸＥＣファイルがロードされる。そのＡＵＴＯＥＸＥＣは、今度は、ＥＸＥＣ．ＣＯＭ３２５をロードさせる。上記のように、そのＥＸＥＣ．ＣＯＭシーケンス３２５は、設定モジュール３３０か、ネットワーク接続モジュール３４０のどちらかに分岐できる。設置時か、端末の動作パラメータの検査又は変更が必要なときはいつでも、設定モジュール３３０が実行される。その設定モジュール３３０は、１つ以上の設定データファイル４１８から情報を受け取り、ＧＵＩエンジン４２０を開始する。そのＧＵＩエンジン４２０は、端末オペレーティング・システムのキーボード・ドライバ４２２、マウスドライバ４２４、及びファイル＆メモリ・サービス・ドライバ４２６と通信する。さらに、ＧＵＩエンジン４２０は、映像入出力システム４２８と通信し、そのシステム４２８は、データを、例えば、Cirrus5429グラフィック・プロセッサに基づいている映像コントローラ４３０に供給し、設定シーケンス中に、映像表示を生成する。その設定シーケンスは、図５に関連して、以下に詳述する。
【００３２】
キーボード・ドライバ４２２は、キーボード＆マウス・コントローラ・ハードウェア４３２と通信するが、そのハードウェア４３２は、例えば、従来のＰＳ／２キーボード入出力システム、及び汎用シリアルバス（ＵＳＢ）インタフェースであり、また、少なくとも、数件の実施例においては、前記の米国特許第4,706,068 に説明されているような４線式のキーボード・インタフェースも含んでいる。同様に、マウスドライバ４２４は、通常、マウス入出力システム４３４と適切な回数だけ通信している。そのような動作の間、端末オペレーティング・システムのフラッシュ・ファイル＆メモリ・サービス部分４２６が、通常、フラッシュメモリとＲＡＭから実行される。図５に関連して、詳述したように、設定プロセスにより、ユーザは、ネットワーク・インタフェースや関連する構成の細部のパラメータ、言語、色、及び他のパラメータ等を含む、その端末の構成情報を指定できる。これらのパラメータが指定されると、そのデータは、接続データファイル４４０に保存される。
【００３３】
この時点で、ユーザは、端末設定モジュール４１４から出ることができて、ＥＸＥＣ．ＣＯＭに戻る。続行することが可能ならば、そのＥＸＥＣ．ＣＯＭプロセス４１２は、ネットワーク接続モジュール４１６に分岐させられる。そのネットワーク接続モジュール３４０は、接続データファイル４４０とその接続モジュールの命令行に保存されているデータを読み出すことで、始動し、従って、アプリケーション・サーバに、その端末のドライバやハードウェア層の残りとの対話法を通信する。特に、そのネットワーク接続モジュールは、端末オペレーティング・システムのキーボード・ドライバ４２２、マウスドライバ４２４、映像入出力システム４２８、及びファイル＆サービス部分４２６と通信する。また、ネットワーク接続モジュールは、数件の実施例におけるハードウェア・ネットワーク・インタフェース４４４だけではなく、ハードウェア・シリアル・インタフェース４４２とも接続する。そのネットワーク・ドライバ４４４は、ある実施例においては、ＲＡＭ１１６から実行されるが、フラッシュメモリ１１２から実行されてもよい。シリアル・インタフェース４４２は、従来のＲＳ２３２インタフェースでもよいが、汎用シリアルバス（ＵＳＢ）等の他の形式のシリアル接続でもよい。
【００３４】
次に、図６を参照すると、端末１２の設定モジュールの実行中の、図５に示されたＧＵＩエンジン４２０の動作が、さらによく認識できるはずである。ＧＵＩエンジンは、設定モードの間だけ動作して、構成動作中は、基本的なグラフィック・ユーザ・インタフェースを提供する。図５に関連して上述したように、設定シーケンスが、端末ブートアップ中に呼び出されたときに、図６の動作が開始する。その設定シーケンスは、キーストロークのシーケンス又は他の適切な手段で、呼び出される。設定シーケンスは、設定コード５０２を呼び出すことによって開始し、その設定コード５０２は、設定データファイル４１８から情報を引き出す。設定データファイル４１８は、その端末の構成で使用可能な選択対象を、明確にする。設定コード５０２は、ＲＡＭ構造５０４は、双方向で通信して、接続データファイル４４０からの現在の接続情報を、そのＲＡＭ構造５０４に書き込ませる。ＧＵＩエンジン４２０は、そのＲＡＭ構造と、双方向で通信して、領域、グループ、及び選択対象として、以下に記述する配列で、現在の情報を設定し、表示する。ハードウェア・インタフェース５０６は、映像情報を映像コントローラ４３０に提供し、一方、マウス２６０やキーボード２５０経由でユーザから受け取った情報に、応答する。
【００３５】
設定コードにより、ユーザは、その端末上に表示される言語、ネットワーク接続方法等の、その端末の動作特性用の複数の構成メニューを、循環することができる。図７は、端末の構成モードで使用される設定画面の略図である。ある好適な実施例においては、その設置図面は、図形で表示される。ユーザがそれらの構成図面を循環すると、構成データは、ユーザがキーボードやマウスを使用することにより、選択的に更新され得る。その更新されたデータは、接続データファイルに書き込まれる前に、ＲＡＭ構造５０４に保存される。しかし、本好適な実施例においては、そのデータの中のあるものが動的に更新され、一方、残りのデータは、設定シーケンスが終了するまで、更新されない。任意の残存構成データを接続データファイル４３６に書き込むことを含む、その設定シーケンスの終了時に、図５に示されたネットワーク接続モジュール３４０の初期化のために、その設定シーケンスは、ＥＸＥＣ．ＣＯＭ３２５に戻る。
【００３６】
図７の参照を続けると、データが現れる統合ウィンドウは、領域６００として、参照される。各領域６００の内部には、１つ以上のグループ６１０があり、また各グループ６１０は、１つ以上の選択対象６２０から構成されている。つまり、図７の例で、「Communication(通信)」グループは、選択対象 Serial Port（シリアルポート）、ＴＣＰ／ＩＰ、ＳＰＸ、及びＩＰＸを含み、各選択対象は、その選択対象が選択されたことを示す領域６３０と関連している。次に、図８−図１０を参照すると、その構成ソフトウェアに関係するデータ構造が示されている。特に、領域ポインタのリストがＡＲＥＡ ＬＩＳＴ７００にある。その領域リストによって示される構造は、設定プロセスによって定義される全ての領域に対して付加される境界、大きさ、表題、及びグループを含んでいる。前記のように、各領域は、画面上のウィンドウのように見える。さらに、現在表示されている全領域は、ＤＩＳＰ ＡＲＥＡ ＬＩＳＴ７０２に記載されている。ある実施例において、記載されている最初の領域は、図面の最下部に表示され、記載されている最後の領域は、画面の最上部に表示される。その実施例において、部分的重複は、全ての実施例で必要なわけではないが、部分的重複も許されている。
【００３７】
７０４には、ＧＲＯＵＰ ＬＩＳＴ用のデータ構造があり、その構造は、ＡＲＥＡ ＬＩＳＴ７００にある全ての領域における設定プロセスによって定義される、全てのグループを記載している。前記のように、各領域には、通常、１つ以上のグループが含まれている。また、１つのＳＴＲＩＮＧ ＬＩＳＴに対して、任意のデータ構造７０６が用意され、さらにＦＩＬＥ ＬＩＳＴ７０８は、種々の領域、グループ、及び選択対象の範囲内で、多重インスタンスの状態で使用されるビットマップ画像へのディレクトリとして、用意される。領域ＩＤ７１２、次の領域へのポインタ７１４、以前の領域へのポインタ７１６、及び構造ポインタ７１８用のブロックを含んでいる７１０で、ＡＲＥＡ ＬＩＳＴ７００の構造を見ることができる。各領域ＩＤ７１２と関係する構造ポインタ７１８は、そのディスプレイの左上隅の領域（ある実施例において）の位置を与えるために、ＡＢＳ Ｘエントリ７２０とＡＢＳ Ｙエントリ７２２と共に、領域ＩＤ７１２を含んでいる領域構造７１５を指している。また、その領域構造７１４は、その領域の大きさを、一緒に指定するＲＯＷＳエントリ７２４とＣＯＬＵＭＮＳエントリ７２６を含んでいる。ＦＬＡＧＳエントリ７２８は、ある境界が、その領域の周囲まで伸びているか否かを、指定する。ＴＩＴＬＥ ＰＯＳＩＴＩＯＮエントリ７３０とＴＩＴＬＥ ＢＡＲエントリ７３２は、特定領域の表題バーの範囲内の、表題の文字列とその位置を指定し、一方、ＭＡＸ ＳＴＲ ＬＥＮエントリ７３４は、その表題に使用される最大文字数を指定する。
【００３８】
さらに、領域構造７１４は、その特定領域の範囲内にあるグループ数のエントリ７３６も有している。ＡＲＥＡ ＭＰＴＲエントリ７３８は、その領域内のマウスポインタのホット・スポットを指定し、一方、ＤＥＦ ＢＵＴＴＯＮエントリ７４０は、その領域内のどのボタンがデフォルトであるかを、指定する。ＣＡＮ ＢＵＴＴＯＮエントリ７４２は、キャンセル・ボタンを指定するが、そのボタンは、 “esc”キーが押されたときに、起動される。最後に、その領域に関係する各グループに１つのポインタ・リストが、７４４Ａ−７４４Ｎに指定される。各グループ・ポインタ７４４は、下記の関連グループ構造ブロック７４６を示す。ホットキー・リストは、その領域用に定義される。７４８に示されるＤＩＳＰ ＡＲＥＡ ＬＩＳＴの構造は、本質的にＡＲＥＡＬＩＳＴ７００の構造と同一であり、領域ＩＤ、次の領域、以前の領域、及び構造ポインタを含んでいる。ＡＲＥＲ ＬＩＳＴ７００と共に、ＤＩＳＰ ＡＲＥＡ ＬＩＳＴ７４８は領域構造７１４を示す。ＧＲＯＵＰ ＬＩＳＴ７０４の同様な構造が、７５０で示され、グループＩＤ７５２、次のグループ・ポインタ７５４、以前のグループ・ポインタ７５６、及びグループ構造ポインタ７５８を、含んでいる。任意のＳＴＲＩＮＧ ＬＩＳＴ７０６の同様な構造が、用意され、ストリングＩＤ７６０、次のストリング・ポインタ７６２、以前のストリング・ポインタ７６４、及びストリング構造ポインタ７６６を、含んでいる。
【００３９】
グループ構造ポインタ７５８を再度、参照すると、それは、グループ構造ブロック７４６を示し、起動されると自動的にこのグループをポップアップする選択対象を明確化するための、グループＩＤ７５２、ＰＡＲＥＮＴ ＳＥＬＥＣＴＩＤエントリ７８０、そのグループ内のマウスのホット・スポット数を明確化するためのＨＯＴＳＰＯＴ ＣＯＵＮＴエントリ７８２、及びその領域内のグループの相対位置を指定するためのＧＳＴＡＲＴ Ｘエントリ７８４とＧＳＴＡＲＴＹエントリ７８６を含んでいる。ある実施例においては、グループと選択位置の両方が、それらを含む領域の左上隅に対して相対的に指定される；しかし、他の関係は、そのグループの位置に対して相対的に選択対象の位置を指定することが、許容されるように定義される。最も重要な要素は、ある領域が移動したときに、その領域の全ての機能が、それらの位置を、確実に維持することである。
【００４０】
また、グループ構造ブロック７４６は、そのグループの境界を指定するためのＧＦＬＡＧＳエントリ７９２と共に、そのグループの大きさを指定するためのＲＯＷＳエントリ７８８とＣＯＬＵＭＮＳエントリ７９０を、含んでいる。さらに、ＱＵＩＣＫ ＫＥＹ ＰＯＳＩＴＩＯＮエントリ７９４とＱＵＩＣＫ ＫＥＹＳＴＲＯＫＥＳエントリ７９６が、そのグループに関係する「ホット」キーストロークの組み合わせに対して、指定されてもよい。また、領域構造と同様に、表題位置用エントリ７９８、グループ・ラベル８００、及びＭＡＸ ＳＴＲ ＬＥＮ８０２が、設けられる。さらに、ＮＵＭ ＯＦＳＥＬＥＣＴＳエントリ８０４が、グループ内に含まれる選択対象の数を明確化するために、設けられる。次に、ＡＩＤ ＡＴＴＡＣＨエントリ８０６が、特定のグループが関連している領域ＩＤ７１２へのバック・レファレンスとして、設けられる。そのＡＩＤ ＡＴＴＡＣＨエントリ８０６は、全ての場合に必要という訳ではないが、少なくとも数件の例において性能を改善する際の補助になっている。最後に、一覧表になったポインタ・エントリ８０８Ａから８０８Ｎは、それぞれ、特定のグループに関連する選択対象の構造を示す。以下に説明するように、種々の選択対象の構造が、各グループに関係するけれども、ある要素は、その種々の形式の中で共通である。つまり、最初のポインタ８０８Ａは、ＳＥＬＥＣＴ ＣＯＭＭＯＮ構造ブロック８１０を示す。領域構造ブロック７１４を、再度、参照すると、デフォルト・ボタン・エントリ７４０とキャンセル・ボタン・エントリ７４２も、ＳＥＬＥＣＴ ＣＯＭＭＯＮ構造ブロック８１０を示している。 そのＳＥＬＥＣＴ ＣＯＭＭＯＮ構造ブロック８１０は、選択対象ＩＤエントリ８１２、そのグループＩＤへのバック・リファレンスを与えるエントリ８１４、選択対象の位置と大きさを指定するための、ＲＯＷＳ及びＣＯＬＳエントリ８２０及び８２２と共にあるＲＥＬ Ｘ及びＲＥＬ Ｙエントリ８１６及び８１８、その選択対象と関連するホット・キーストロークの組み合わせを指定するためのＱＵＩＣＫ ＫＥＹ ＰＯＳ及びＱＵＩＣＫ ＫＥＹ ＣＨＲエントリ８２４及び８２６、その選択対象の最大の大きさと表題を指定するためのＭＡＸＳＴＲ ＬＥＮ８２８とＳＥＬＥＣＴ ＳＴＲ８３０、及びその選択対象の特性を指定するためのＳＦＬＡＧＳエントリ８３２を含んでいる。
【００４１】
さらに、ＳＥＬＥＣＴ ＴＹＰＥエントリ８３４も設けられている。前記のように、種々の形式の選択対象が使用可能であり、図７を再度、参照する。あるグループ内に設けられた種々の形式の選択対象は、その端末を構成するためのステップで必要なデータ形式に依存する。ある例において、ボタン（図７の６５０を参照のこと）を押すだけで、選択対象が呼び出される；他の場合では、図７の「通信」及び「シリアルポート」グループ６６０及び６７０で示されるように、複数の選択対象の中から１つを選択しなけもばならない。さらに別の場合、ある画像が選択され、一方、その他の場合に、特定の文字列を選択しなければならない。ある場合には、書き込みエントリが必要で（図７の６８０）、一方、他の場合には、多数の項目の中の１つに書き込まなければならない。これらは、ある実施例において実装されている選択対象の形式であるが、そのリストは、網羅的ではなく、他の選択対象は、ここで説明すれば、簡単に実施され得る。
【００４２】
「書き込み」選択対象については、そのストリング上のどの文字から表示されるべきであるかを明確にするために、「最初に表示」エントリ８４０と共に、カーソル開始及びカーソル終了エントリ８３６及び８３８が、設けられている。さらに、ＬＡＢＥＬ ＲＥＬ Ｘエントリ８４２が、ＬＡＢＥＬ ＲＥＬ Ｙエントリ８４４とＬＡＢＥＬ ＳＴＲエントリ８４６と共に、設けられている。「多数の中から１つ」型の選択対象に対しては、ＮＵＭ ＯＦ ＳＥＬ ＲＯＷＳエントリ８４８とＮＵＭ ＳＥＬ ＣＯＬＳエントリ８５０が、設けられている。任意選択対象数エントリ８５２とデフォルト任意選択対象エントリ８５４が、高速キー・ポインタ８５６とフラグ・ポインタ８５８と共に、活動状態である任意選択対象の数を明確にするために、設けられている。最後に、選択対象の大きさ８６０も、設けられている。
【００４３】
「画像」型の選択対象に対しては、ファイルＩＤエントリ７０８と画像ポインタエントリ８６２だけが、指定されなければならない。「項目」型の選択対象に対しては、「子グループ」ＩＤエントリ８６４が、グループ構造ブロック７４６に示されるグループ構造の形式を指す、子グループポインタと共に、設けられている。その子グループは、その親が起動されたときに、自動的にポップアップして、一群の項目の内の１つが選択される。「ストリング・リスト」形式の選択対象に対しては、エントリは、Ｘラベル位置８７８とＹラベル位置８８０と共に、任意選択対象の数８６８、その任意選択対象の表題の最大長（又はＭＡＸ ＯＰ ＬＥＮ）８７０、水平表示オフセット・エントリ８７２、及び垂直表示オフセット・エントリ８７４が、設けられている。最後に、ラベル・ストリング８８２と選択対象ストリングの大きさエントリ８８４が、設けられている。
【００４４】
ＡＲＥＡ ＭＰＴＲエントリ７３８を再度、参照すると、マウスポインタ・ホットスポットは、領域ＩＤエントリ９００、グループＩＤエントリ９０２、及び選択対象ＩＤ９０４を含む構造によって、指定される。また、任意選択対象の形式９０６は、特定のホットスポットが関連する、選択対象の形式を指定するために、設けられている。さらに、バック・リファレンスエントリ９０８と９１０は、その領域内のグループＩＤと、そのグループ内の選択対象ＩＤ用に、設けられている。また、４つのエントリ９１２Ａ−９１２Ｄは、適切なメニューが表示されたときに、マウスのホットスポット起動されるようにするマウス・フラグ・エントリ９１４と共に、そのマウスのホットスポットの左上部のＸ及びＹの位置、及び右下部のＸ及びＹの位置を指定する。前記のホットスポットに加えて、追加のホットスポットが、スクロールのために、リスト表示の上下に、またその領域ウィンドウが移動できるように、表題バー位置に、設けられている。
【００４５】
前記の構造に加えて、データ構造も、多数の選択対象の中から現在選択されているエントリを維持するために、用意されている。現在のデータ構造ブロックは、９５０に示されている。ＳＥＴＵＰによって現在定義されている領域数エントリ９５２；定義ファイル数エントリ９５４；定義されているグループ数と選択対象数のエントリ９５６と９５８；及び所定の最大選択対象数を割り当てるためのエントリ９６０を、含んでいる。ある実施例において、最大選択対象数は、１０ブロックに割り当てられている。フォント・エントリ９６６、領域フォーカス・エントリ９６８、グループ・フォーカス・エントリ９７０、及びストリング・フォーカス・エントリ９７２と共に、追加エントリ９６２と９６４が、それぞれ、列と行当たりの画素数用に設けられている。また、マウス・フォーカス・エントリ９７４は、ホットスポットを指定するために設けられている。さらに、ＯＦＯＣＵＳとＴＦＯＣＵＳエントリ９７６と９７８が、キーボート・フォーカスを有する、任意選択事項と選択対象の形式とを指定するために、設けられることがある。また、ＩＦＯＣＵＳとＪＦＯＣＵＳエントリ９８０と９８２が、上記のマウス構造ブロックからのホットスポット・エントリ９０８と９１０用に、設けられてもよい。最後に、メニュー・エントリ９８６は、マウスモードを指定するためのＯＦＬＡＧＳエントリと共に、また、領域の境界とグループの境界を定義するためのエントリ９８８と９９０と共に、現在のメニュー・フォーカスを明確にするために指定される。
【００４６】
選択対象の現状を指定する情報は、ＡＣＴＩＶＥ ＳＥＬＥＣＴ（活性状態の選択対象）構造１０００で指定される。各構造は、ボタンエントリ１００２、ＳＴＦＬＡＧＳ又は共通フラグ選択エントリ１００４、及びＡＣＴＩＶＥエントリを含み、そのＡＣＴＩＶＥエントリは、そのデータが、ＳＥＴＵＰコードに対して使用可能にされる、全ての選択対象の現状を保存している。ある実施例においては、ある事象待ち行列に、キーボード、ストロークとマウス動作を記録するために、事象待ち行列構造１０１０も、設けられる。前記のように、本発明の主要な特徴は、本発明の端末オペレーティング・システムには、標準ＰＣ／ＡＴ ＢＩＯＳ又はＤＯＳと互換性が無いことである。しかし、その端末オペレーティング・システムは、Citrixユーザ又は他のサポートされているエミュレーションに、インタフェースすること等により、マルチユーザ環境において、アプリケーション・データを表示する能力を維持するために、これらの機能を確実にサポートする必要がある。表３Ａ−３Ｃとして添付されているのは、本発明によりサポートされている標準ＩＯ．ＳＹＳとＢＩＯＳ．ＳＹＳ機能のリストである；本リストが多数の標準ＢＩＯＳ及びＤＯＳ機能を含んでいないことは、当業者には、明白なはずである。これ以外の機能は、サポートされていない。また、記載されている機能の内のあるものは、現在の好適な実施例では、部分的にしかサポートされていない。つまり、機能３６ｈ〔Get Disk Free Space 〕は、ハードディスクの代わりにフラッシュメモリを使用しているために、部分的にしかサポートされていない。同様に、機能３３ｈ〔Get/Set SystemValue〕は、機能とフラグに関してはサポートされているが、“Control-Break”機能は、サポートされていない。同様に、機能２Ａｈから２Ｄｈまで〔Get/Set Date/Time 機能〕は、リアルタイム・ハードウェアが本発明の端末に設けられていないので、部分的にしかサポートされていない。絶対時間に反映することなく、事象の継続時間を測定するために使用されるために、“Get Time”機能が、サポートされている。
【００４７】
また、本発明のフラッシュ・ファイル・システムは、現在の好適な配置においては、多数の単一ディレクトリ・デバイスに分割されている。しかし、従来のディスクファイルと違って、そのフラッシュ・ファイル・システムは、クラスタやセクションを含んでいない。各装置又は区画内のファイルは、その区画の最下部から上方に伸び、一方、ディレクトリ・エントリは、最上部から下方に伸びる。ファイルは、細分化されずに、連続的に保存される。ある実施例では、１６バイト長であるディレクトリ・エントリは、全般的に、ＤＯＳディレクトリに似ている；しかし、通常、保存される要素は、そのファイルが、ＤＲＡＭよりはフラッシュメモリから実行されるように定義される。これらは、そのＤＯＳアドレス空間における、そのファイルのリマップ区分と共に、そのフラッシュメモリにおける、そのファイルの開始アドレスを含んでいる。
【００４８】
ファイルの削除は、従来のＤＯＳファイルの削除に似ているが、ある重要な点で異なっている。本発明において、あるファイルが削除される場合、そのディレクトリ・エントリの第１バイトが、Ｅ５ｈに設定されるのではなく、０に変更される。このステップは、フラッシュ・ブロックを消去せずに、実施される。後続のファイルは、次の使用可能な場所に書き込まれる。しかし、後続のファイル用に十分な空き容量がない場合は、その削除ファイル用のフラッシュ・ブロックが消去され、復元ファイルが、削除ファイルが保守されていたフラッシュ・ブロックに再書き込みされる。前記のように、ファイルの細分化は、少なくとも、ある実施例においては、許されていない。フラッシュ・ファイル・システムは、従来のＤＩＲ、ＴＹＰＥ、及びＤＥＬコマンドをサポートし、ＤＥＢＵＧメッセージを作成するために、新しい“DEBUGMSG” コマンドをサポートし、さらに、バッチファイルからプログラムの実行もサポートしている。ファイルシステムも、ＥＸＥと、ＣＯＭファイル、及び割込み２１ｈと２７ｈのローディング及び実行と共に、ＡＵＴＯＥＸＥＣ．ＢＡＴファイルをサポートしている。しかし、少なくとも、ある実施例においては、ファイルシステムは、ＣＯＮＦＩＧ．ＳＹＳファイル又はＳＹＳデバイス・ドライバをサポートしていない。同様に、本ファイルシステムは、バッチファイル・コマンド（プログラムの実行を除く）、入出力のリダイレクト、パイプ処理、又は割込み２０ｈ [Program Terminate]、 22h [Terminate Address] 、 23h [Ctrl-BreakExit Address] 、 24h [Critical Error Handler Vector] 、 25h [Absolute DiskRead] 、 26h [Absolute Disk Write] 、 及び２Fh [Multiplex Interrupt]をサポートしていない。
【００４９】
前記より、選択された一群の標準ＢＩＯＳ及びＤＯＳ機能は、本発明の端末オペレーティング・システムによってエミュレートされるが、サポートされているが、相当な数の標準ＢＩＯＳ及びＤＯＳ機能は、サポートされていないことが、明らかであろう。さらに、サポートされているこれらのＢＩＯＳ及びＤＯＳ機能は、標準ＡＴ互換ハードウェアで実行される訳ではない。その代わりに、「ブートブロック」３００や「カーネル」３０５として、図４で参照される端末オペレーティング・システムの部分は、これらの機能をエミュレートする能力を確立している。そのブートブロック３０５によってサポートされているサービス機能は：駆動寸法について、フラッシュメモリ４３８に質問する、GET FLASH DRIVE SIZE ;フラッシュメモリ４３８からデータを読み出すための、READ FLASH DRIVE ; WRITEFLASH DRIVE ; フラッシュメモリ４３８のブロック長を質問するための、GETFLASH DRIVE BLOCK SIZE ; フラッシュメモリ４３８からデータを消去するための、ERASH FLASH DRIVE BLOCK ; 繰り返し電源オン診断を循環させるために、製造テストで使用され、通常運転時には使用されない、WARM REBOOT ; GET BOOT BLOCKDATE ; キーボード・コントローラの接続された制御要素に対して使用される、CLEAR KEYBOARD CONTROLLER I/O BIT ; 及び SET KEYBOARD CONTROLLER I/O BITを含んでいる。
【００５０】
カーネル３０５の動作を、さらに詳しく説明する。特に、カーネルは、３つのサービス機能を有している。第１の機能は、“ATIVATE VIDEO INT 1Oh ”機能であり、それは、映像サービスに対して通常の割込み“int 10h ”機能を動作可能にする。その割込み“int 10h ”は、種々のデバイス・ドライバがロードされている間に、それらのドライバからのテキスト・モードのメッセージが表示されないように、カーネル３０５により、初めは、遮断される。ドライバがロードされ、端末グラフィック・モードになった後で、“ACTIVATE VIDEO INT 10h”機能が呼び出されて、通常の“int 10h ”動作が、復活される。さらに、カーネル３０５は、第２の機能、“SET POWER DOWN TIME ”を含み、その機能は、種々の省電力機能（Energy Star 準拠等）及びその機能を起動するための遅延タイマーを設定することができる。最後に、カーネル３０５は、“PROCESS DOS INTERRUPTS”機能を含み、ＤＯＳ環境で、リアルタイム処理が必要な、保留ＤＯＳ割込みの処理をする必要があるときはいつでも、ブートブロック又はカーネル３０５の他の部分から、その機能を呼び出すことができる。この機能によって頻繁に処理される割込みは、マウス＆キーボード割込みであり、この割込みは、タイマー、シリアル、パラレル、及びネットワーク各割込みを含んでいる。この機能による遮断は、例えば、マウス＆キーボード割込みが、極度に長い間−つまり、ユーザにとって腹立たしいほど長い、例えば、マウスの動きとカーソルの応答動作との間の遅れが約１秒間−また、キーボード・コントローラにコマンドを送ることが必要になったときに、キーボード・コントローラ出力をするためには、十分過ぎる時間、動作不能にされることを防ぐ。
【００５１】
本発明のハードウェアは、ＰＣ／ＡＴ標準に準拠せず、ファームウェアは、従来のＰＣ／ＡＴ ＢＩＯＳ又はＤＯＳに準拠していないが、全体的なシステムは、ユーザが従来の Windows表示を眺めて、さらに対話できるように意図されているので、ある程度の従来のハードウェア割込みと関連する呼出しは、本発明によって管理されなければならない。ある好適な実施例において、そのような割込みや呼出しは、その入力信号に対して適切な対応をエミュレートするか、又は変更することによって、端末のファームウェアで取り扱われる。その対応は、下記のソフトウェア・カーネルに関連して、さらに詳しく、取り扱われる。カーネルはプロセッサを仮想８０８６モードに置き、さらに種々のポートへの入出力を遮断するために必要な種々の表を設定する。選択されたポートへのアクセスにより、例外事項が発生した後、その例外を生成した命令は、ＰＣ互換性を正しくエミュレートするために、それを処理できるように、分解される。あるサブルーチン全体が、各遮断された入出力命令に対して実行されるので、その入出力命令は、高速では実行されず、従って、遮断された入出力は、可能な限り少ないポートに制限される。ある例では、ある入出力ポートの全体あるいは部分が、ＡＴとの互換性の保全に必要なために、割り込みされる。ここで説明された最初の実施例は、Citrix WinFrame のパーソナリティを提供するためであるが、他のパーソナリティも、本発明の端末による使用のために、実装されることが可能である。ある例では、本発明の端末は、そのような異なるパーソナリティを予期している異なるオペレーティング・システムを動作させている、多重ホストに接続されている端末と共に、メモリに複数のパーソナリティを有している場合がある。そのユーザ、又は他のユーザは、ホットキー又は他のシーケンスを通じて、そのパーソナリティの中から選択することができ、本発明のカーネルが、適切なパーソナリティをメモリから実行して、さらに、適切なホストへの通信を可能にする。
【００５２】
ＡＴとの互換性を保つために、カーネルによって遮断される入出力ポートは：２０ｈ〔ＡＴ互換割込みコントローラのコマンド・ポート〕−“end of interrupt”コマンドだけがエミュレートされ、そのコマンドは、優先順位が同じか、より低い割込みを発生させるために、各割込みハンドラの終了時に、発行される。また、そのカーネルは、その“end of interrupt”コマンドが受け取られるまでは、同等か、又はより低い優先順位の割込みを妨害する、ＰＣ互換割込みコントローラの通常動作をエミュレートする。
２１ｈ〔ＡＴ互換割込みコントローラのマスク・レジスタ〕−エミュレートされる。
４０ｈ−４３ｈ〔ＡＴ互換８２５４システムタイマーへのアクセス〕−ある種のＡＴベース・ドライバが、これらのポートに書き込みをするので、ポートは、エミュレートされないが、遮断される。本発明の実施例の割込みマスク・レジスタは、ポート４０ｈに設定されるので、非遮断書き込みは、本発明の割込みマスク・レジスタの妨害をする。
【００５３】
６１ｈ〔ＡＴアーキテクチャ上のその他の制御ポート〕−１スピーカ制御ビットが、そのスピーカをオン／オフできるようにエミュレートされる。
ＡＯｈ〔ＡＴ互換コンピュータの第２割込みコントローラのコマンド・ポート〕−ポート２０ｈと同様に、“end of interrupt”コマンドがエミュレートされる。
Ａ１ｈ〔第２割込みコントローラ用マスク・レジスタ（ポート２１ｈと類似）〕−エミュレートされる。
２Ｆ８ｈ−２ＦＦｈ〔ＡＴの第２シリアル・ポート用標準アドレス〕−ポートは、５Ｆ０ｈ−５ＦＥｈにリマッピングされ、そのアドレスは、本発明の実施例の第２シリアル・ポート用ポート・アドレスである。新しいポート範囲〔５Ｆ０ｈ−５ＦＥｈ〕は、偶数アドレスのみを含んでいる。ある実施例においては、バイト・スワッピングは実装されず、従って、８ビットＳＩＯデバイスの偶数バイトだけに、アクセス可能である。しかし、必要なら、バイト・スワッピングを実装してもよい。
【００５４】
３７８ｈ−３７Ｆｈ〔ＡＴパラレル・ポート用標準アドレス〕−６Ｆ０ｈ−６ＦＥｈにリマッピングされ、そのアドレスは、本発明の実施例のパラレル・ポート用ポート・アドレスである。
３Ｆ８ｈ−３ＦＦｈ〔ＡＴの第１シリアル・ポート用標準アドレス〕−７Ｆ０ｈ−７ＦＥｈにリマッピングされ、そのアドレスは、実施例の第１シリアル・ポート用ポート・アドレスである。
本発明の好適な実施例とその代替案について十分に説明したが、ここでの説明は、本発明の範囲内で、多数の代替案や同等なものが存在することは、当業者には理解できるはずである。従って、本発明は、上記の説明に制限されず、ただ、添付の請求の範囲にのみ制限されるものである。
【図面の簡単な説明】
【００５５】
【図１】アプリケーション・サーバと、本発明に関わる端末の一般化した配置である。
【図２】本発明の論理アーキテクチャを、機能ブロック図で表したものである。
【図３】図２の制御ＡＳＩＣのアーキテクチャを、ブロック図で表したものである。
【図４】本発明に関わる端末のソフトウェア・アーキテクチャの概略図である。
【図５】そのシステムのＧＵＩエンジンとその他のものとの間の設定インタフェースを、簡略化したブロック図で表したものである。
【図６】本発明の端末が、アプリケーション・サーバに接続されるプロセスの最高レベルの様子をフローチャートで表したものである。
【図７】本発明の構成ソフトウェアからの設定画面を表している。
【図８】本発明の構成ソフトウェアに関連するデータ構造を表している。
【図９】本発明の構成ソフトウェアに関連するデータ構造を表している。
【図１０】本発明の構成ソフトウェアに関連するデータ構造を表している。
【符号の説明】
【００５６】
１００ ＣＰＵ
１０２ クロック＆リセット論理回路
１１０ ＡＳＩＣ
１１２ フラッシュメモリ・アレイ
１１４ ＶＧＡコントローラ
１１８ その他の論理回路
１２４ シリアルＩ／Ｏ＆パラレル・コントローラ
１２６ キーボード＆マウス・コントローラ
１２８ ＬＡＮコントローラ
１４４ ＤＲＡＭ
１４６ ＣＲＴ
１４８ ＭＰＳ
【図１】
2004185633.tif 000004
【図２】
2004185633.tif 000005
【図３】
2004185633.tif 000006
【図４】
2004185633.tif 000007
【図５】
2004185633.tif 000008
【図６】
2004185633.tif 000009
【図７】
2004185633.tif 000010
【図８】
2004185633.tif 000011
【図９】
2004185633.tif 000012
【図１０】
2004185633.tif 000013