JPH05346843A - Display system - Google Patents

Display system

Info

Publication number
JPH05346843A
JPH05346843A JP3956593A JP3956593A JPH05346843A JP H05346843 A JPH05346843 A JP H05346843A JP 3956593 A JP3956593 A JP 3956593A JP 3956593 A JP3956593 A JP 3956593A JP H05346843 A JPH05346843 A JP H05346843A
Authority
JP
Japan
Prior art keywords
block
routine
display
graphics
hardware
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
JP3956593A
Other languages
Japanese (ja)
Inventor
Conwell J Dickey
コンウェル・ジェイ・ディッキィ
James M King
ジェイムズ・エム・キング
Original Assignee
Hewlett Packard Co <Hp>
ヒューレット・パッカード・カンパニー
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
Priority to US83015592A priority Critical
Priority to US830,155 priority
Application filed by Hewlett Packard Co <Hp>, ヒューレット・パッカード・カンパニー filed Critical Hewlett Packard Co <Hp>
Publication of JPH05346843A publication Critical patent/JPH05346843A/en
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Abstract

PURPOSE: To provide a display system whose future extendibility can be guaranteed by providing a pair of routines equipped with standard interfaces, and allowing these routines to be used by plural types of processors independently of a specific graphic device in a system for defining a method for displaying a text in a graphics device. CONSTITUTION: A processing element 102 in a computer system 100 communicates through a bus 104 with the other elements of the computer system 100. A keyboard 106 allows a user to input information to the computer system 100, and a graphic display 108 allows the computer system 100 to output the information to the user. A mouse 110 inputs graphics information, and a disk 112 stores data and a program inside the computer system 100. When the system 100 executes an initial setting routine, the content of a ROM 114 is copied to a graphics driver module 120.

Description

【発明の詳細な説明】Detailed Description of the Invention
【0001】[0001]
【産業上の利用分野】本発明は、コンピュータシステム
に関するものであり、更に詳細に述べれば、このような
コンピュータシステム内部のグラフィクス出力装置に関
する。なお更に詳細には、本発明は、情報を表示するた
めにグラフィクス出力装置に送ることに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a computer system, and more particularly to a graphics output device inside such a computer system. Still more particularly, the present invention relates to sending information to a graphics output device for display.
【0002】[0002]
【従来技術及びその問題点】オペレーティングシステム
をコンピュータに始めてロードするとき、オペレーティ
ングシステム(以下、OSと称する)は、通常、いくつか
のハウスキーピング作業を行ってから、情報をコンピュ
ータのディスプレイに表示して、コンピュータシステム
のユーザに現在実行されている初期設定の色々な段階を
知らせる。しかし、OSは、情報をディスプレイに表示す
ることができるようになる前に、ディスプレイにアクセ
スする方法を知らなければならない。あるコンピュータ
システム、たとえばIBMパーソナルコンピュータ、はコ
ンピュータシステムにインストールされている特定のタ
イプのディスプレイを定義するビットが入っているレジ
スタを持っている。OSは、データの表示が必要になる前
にこのレジスタを読むことができるから、ディスプレイ
のタイプを判定することができる。OSがディスプレイの
タイプを知ると、OS内に既に存在しているプログラミン
グコードが情報をディスプレイに表示することができ
る。
BACKGROUND OF THE INVENTION When an operating system is first loaded into a computer, the operating system (hereinafter referred to as the OS) usually performs some housekeeping work before displaying the information on the computer's display. To inform the user of the computer system of the various stages of initialization currently being performed. However, the OS must know how to access the display before it can display the information on the display. Some computer systems, such as the IBM personal computer, have registers containing bits that define the particular type of display installed in the computer system. The OS can read this register before it needs to display the data so it can determine the type of display. Once the OS knows the type of display, the programming code already present in the OS can display the information on the display.
【0003】しかし、特定のレジスタでは限られた数の
ディスプレイしか定義することができないから、このタ
イプのシステムには限界がある。更に重要なことは、新
しいタイプのディスプレイをこのようなシステムにイン
ストールする前に、OSはこの新しいタイプのディスプレ
イを使用することができるプログラミングコードを与え
るように書替えられていなければならない。また、その
ようなタイプのディスプレイの出荷は、そのタイプのデ
ィスプレイを使用することができるOSの新版が出荷され
てインストールされるまで行うことができない。
However, this type of system is limited because only a limited number of displays can be defined in a particular register. More importantly, before installing a new type of display in such a system, the OS must be rewritten to provide programming code that can use this new type of display. Also, shipments of such types of displays cannot be made until a new version of an OS capable of using that type of display is shipped and installed.
【0004】新しいコンピュータシステムに新しいタイ
プのディスプレイが益々多数導入されるにつれて、この
問題は一層深刻になる。OSが、上述のように、使用可能
なディスプレイのタイプを定義するレジスタを持ってい
なければ、OSはどのタイプのディスプレイがコンピュー
タシステムにインストールするかを判定する何か別の機
構を使用するか、または1つの特定のタイプがインスト
ールされていると仮定するかしなければならない。これ
にはOSがコンピュータシステムにインストールすること
ができるあらゆる可能なタイプのディスプレイをアドレ
スすることも必要となるかもしれない。また、新しいタ
イプのディスプレイが使用可能になっても、そのタイプ
のディスプレイはOSがそれを使用するように修正される
まで、どんなコンピュータシステムでも使用することが
できない。
This problem is exacerbated as more and more new types of displays are introduced into new computer systems. If the OS does not have the registers that define the types of displays available, as described above, then the OS will use some other mechanism to determine which type of display to install in the computer system, Or one has to assume that one particular type is installed. This may also require the OS to address any possible type of display that can be installed on the computer system. Also, when a new type of display becomes available, that type of display cannot be used by any computer system until the OS is modified to use it.
【0005】この問題の他の重要な局面は、OSが新しい
タイプのディスプレイを使用するよう修正されてから生
ずる。新しいバージョンのOSが新しいタイプのディスプ
レイをコンソール装置として使用することを予想してい
れば、その新しいバージョンは新しいディスプレイを設
けるまでインストールすることができない。旧バージョ
ンのOSは新しいディスプレイを使用することができない
から、新バージョンのOS及び新しいディスプレイを共に
同時にインストールしなければならない。これでは、問
題の所在をつきとめるのが非常に難しいから、エラー検
出が非常に難しくなる。すなわち、何も表示されなけれ
ば、ディスプレイが悪いのか、それとも新バージョンの
OSが悪いのか、ということである。
Another important aspect of this problem arises after the OS has been modified to use a new type of display. If you anticipate that a new version of the OS will use a new type of display as a console device, that new version cannot be installed until you have a new display. Since the old version OS cannot use the new display, the new version OS and the new display must be installed at the same time. This makes error detection very difficult because it is very difficult to pinpoint the location of the problem. That is, if nothing is displayed, the display is bad, or the new version
Is the OS bad?
【0006】この問題はディスプレイの製造業者がOSの
製造業者と異なる場合更に一層深刻になる。この場合に
は、新しいハードウェアを使用するために異なる会社間
でかなりな共同作業を確立しそれを継続しなければなら
ない。
This problem is exacerbated when the display manufacturer is different from the OS manufacturer. In this case, considerable collaboration must be established and continued between different companies to use the new hardware.
【0007】本技術分野では、情報をディスプレイに表
示するために、全てのディスプレイにアクセスする一般
的な方法が必要とされる。更に、この方法がディスプレ
イのタイプに関係なく同一であることが必要とされる。
更に、このような方法が異なるタイプのプロセッサにつ
いて共通である必要がある。本発明はこの分野における
これらの及び他の必要性を満たすものである。
[0007] The art requires a general method of accessing all displays in order to display information on the display. Further, the method is required to be the same regardless of display type.
Furthermore, such a method needs to be common for different types of processors. The present invention fulfills these and other needs in the art.
【0008】[0008]
【目的】本発明の目的は、情報を表示するためにグラフ
ィクス装置に送るシステムを提供することである。
It is an object of the present invention to provide a system for sending information to a graphics device for display.
【0009】本発明の他の目的は、テキスト情報を表示
するためにグラフィクス装置に送るシステムを提供する
ことである。
Another object of the present invention is to provide a system for sending textual information to a graphics device for display.
【0010】本発明の他の目的は、特定のグラフィクス
ディスプレイのタイプから独立したこのようなシステム
を提供することである。
Another object of the present invention is to provide such a system which is independent of the particular graphics display type.
【0011】本発明の更に他の目的は、グラフィクスデ
ィスプレイの特性からは独立してこのような表示ができ
るシステムを提供することである。
Yet another object of the present invention is to provide a system capable of such display independent of the characteristics of the graphics display.
【0012】更に他の目的は、既存の装置とのコンパテ
ィビリティを維持しながら新しい装置の能力を拡大する
標準的な方法を提供することである。
Yet another object is to provide a standard method for expanding the capabilities of new devices while maintaining compatibility with existing devices.
【0013】更に他の目的は、複数のプロセッサタイプ
がグラフィクス装置にアクセスすることができるように
するシステムを提供することである。
Yet another object is to provide a system that allows multiple processor types to access a graphics device.
【0014】[0014]
【概要】本発明の上述の及び他の目的は、テキストをグ
ラフィクス装置に表示する方法を定義するシステムによ
り達成される。このシステムは特定のグラフィクス装置
からは独立しており、複数のタイプのプロセッサに使用
することができる。
SUMMARY The above and other objects of the present invention are accomplished by a system that defines a method for displaying text on a graphics device. This system is independent of any particular graphics device and can be used with multiple types of processors.
【0015】このシステムは一組のルーチンを持ってお
り、これらのルーチンは皆、標準のインターフェースを
持っている。これらのルーチンは、グラフィクスディス
プレイ用コントローラカードに設けられた読出専用メモ
リ(ROM)、または他のメモリに設けられている。コン
ピュータシステムにインストールされている各グラフィ
クス装置は、その特定のコントローラカードに入ってい
るROMの内部に、特定の装置に対して特にプログラムさ
れたアクセスルーチンの集合体を持っている。OSが実行
を開始すると、ルーチンをコントローラカードのROMか
らOSが使用するランダムアクセスメモリ(RAM)にコピ
ーする。このコードがRAMに入ると、これはOSの拡張部
分となり、情報をグラフィクスディスプレイに表示する
のに使用する一組のプログラミングルーチンを提供す
る。アクセスルーチンはグラフィクス装置と共にインス
トールされており、またこれらルーチンへのインターフ
ェースは複数の装置に渡って標準化されているから、グ
ラフィクスディスプレイへのアクセスは装置独立であ
る。
The system has a set of routines, all of which have a standard interface. These routines are provided in a read-only memory (ROM) provided in the controller card for graphics display or other memory. Each graphics device installed in the computer system has a collection of access routines specifically programmed for that particular device within the ROM contained in that particular controller card. When the OS starts running, it copies the routines from the controller card ROM to the random access memory (RAM) used by the OS. Once this code is in RAM, it becomes an extension of the OS, providing a set of programming routines used to display information on a graphics display. Access to the graphics display is device independent because the access routines are installed with the graphics device and the interfaces to these routines are standardized across multiple devices.
【0016】これらのルーチンには、初期設定ルーチ
ン、自己試験ルーチン、文字を表示するためのフォント
アンパック及び移動ルーチン、ディスプレイメモリ内の
情報を動かすためのブロック移動ルーチン、割込み処理
ルーチン、及びOSまたはアプリケーションプログラムの
他の部分がグラフィクスディスプレイの特性を判定でき
るようにする構成問合わせルーチンが含まれている。自
己試験及びグラフィクス装置初期設定ルーチンは、OSが
グラフィクス装置を既知の状態にするために使用され
る。これを行った後、アンパック及び移動ルーチンを使
ってROMに入っているフォントの文字をアンパックして
その文字をグラフィクス装置に表示するのに適切な形に
することができる。文字はフォントアンパック及び移動
ルーチンにより直接表示することができ、または文字を
一旦フォントアンパック及び移動ルーチンにより処理し
てからブロック移動ルーチンによりディスプレイメモリ
領域内で移動することもできる。
These routines include initialization routines, self-test routines, font unpack and move routines for displaying characters, block move routines for moving information in display memory, interrupt handling routines, and OS or applications. A configuration query routine is included that allows other parts of the program to determine the characteristics of the graphics display. The self-test and graphics device initialization routines are used by the OS to bring the graphics device into a known state. After doing this, the unpack and move routines can be used to unpack the characters of the font contained in ROM and put them into the proper form for display on the graphics device. The characters can be displayed directly by the font unpack and move routine, or the characters can be processed once by the font unpack and move routine and then moved within the display memory area by the block move routine.
【0017】ROMは装置で使用するに適した少なくとも
1つのフォントを持っているが、フォントアンパック及
び移動ルーチンは、OSまたはOS上で実行されるユーザア
プリケーションプログラムが供給する他のフォントを使
用することもできる。
The ROM has at least one font suitable for use on the device, but the font unpack and move routines use other fonts provided by the OS or user application programs running on the OS. You can also
【0018】複数のプロセッサタイプに渡って使用でき
るように、2組以上のアクセスルーチンがグラフィクス
装置コントローラカードのROMの中に入っている。従っ
て、このグラフィクス装置をインストールできるプロセ
ッサタイプ毎にひとそろいのルーチンを提供することが
できる。このようにして、異なる命令セットを有する複
数のプロセッサタイプに渡って標準の仕方でこのグラフ
ィクス装置へアクセスすることができる。
More than one set of access routines are contained in the ROM of the graphics device controller card for use across multiple processor types. Therefore, a set of routines can be provided for each processor type on which this graphics device can be installed. In this way, the graphics device can be accessed in a standard manner across multiple processor types with different instruction sets.
【0019】[0019]
【実施例】以下の説明は本発明を実施する現在のところ
最良と考えられている態様についてのものである。この
説明は限定的な意味で理解されるべきではなく、単に本
発明の一般的原理を説明する目的で行われるものであ
る。本発明の範囲は特許請求の範囲を参照して決定しな
ければならない。
The following description is of the best presently contemplated mode of carrying out the invention. This description is not to be taken in a limiting sense and is merely for the purpose of illustrating the general principles of the invention. The scope of the invention should be determined with reference to the claims.
【0020】本発明は、データ及びプログラミングコー
ドをグラフィクス装置用コントローラカードに設けられ
ているROMに書込んでおくことにより行われる。ROMの内
容はOSの初期設定ルーチンによりコンピュータシステム
にロードされる。OSが処理を開始すると、その初期設定
ルーチンはコンピュータシステムに現在インストールさ
れているグラフィクス装置がないかどうかスキャンし、
何か見つかれば、このルーチンはROMの内容をグラフィ
クス装置コントローラカードからOSが使用するRAMにロ
ードする。
The present invention is carried out by writing data and programming code in a ROM provided in a controller card for a graphics device. The ROM contents are loaded into the computer system by the OS initialization routine. When the OS starts processing, its initialization routine scans the computer system for graphics devices currently installed,
If found, this routine loads the contents of ROM from the graphics device controller card into RAM used by the OS.
【0021】ROMの内容には特定のグラフィクス装置の
識別データのようなデータ及び文字を表示するのに使用
する少なくとも1つのフォントの他に、ROM内の関数を
指すポインタがある。これらの関数には、グラフィクス
システムを装置に出力されるテキストをサポートするこ
とができる初期状態にする初期設定ルーチンが含まれ
る。このルーチンは必要なフレームバッファプレーンを
イネーブルし、カラーマップを設定し、グラフィクス装
置のタイプ毎に変わる構成情報を値として返すというよ
うな動作を行う。状態管理ルーチンはグラフィクス装置
が初期設定されるまでその現在の状態を保存し、後にこ
の状態を回復してマルチタスク環境において幾つかのタ
スクがグラフィクス装置を互いに切換えて使用すること
ができるようにする能力を提供する。フォントアンパッ
ク及び移動ルーチンはフォント格納領域からフォント文
字をアンパックし、これをフレームバッファ内のロケー
ションに置き、グラフィクス装置のスクリーン上に表示
できるようにするか、または後に表示用に使用できるよ
うにする。ブロック移動ルーチンは可変サイズのデータ
ブロックをフレームバッファのあるx,yピクセル位置
から他の位置へ移動する。このルーチンは、フレームバ
ッファ内でデータを移動して、フレームバッファ内のデ
ータブロックをクリアしたり、また上述のフォントアン
パック及び移動ルーチンがアンパックしたフォント文字
を移動するのに使用することができる。自己試験ルーチ
ンは電源投入時に装置を試験して正しく動作しているこ
とを確認する。構成問合わせルーチンはグラフィクス装
置の現在の構成を実行結果として返し、OS及びアプリケ
ーションプログラムがグラフィクス装置を充分に使用で
きるようにする。
The ROM contents include pointers to functions within the ROM, as well as at least one font used to display data and characters such as identification data for a particular graphics device. These functions include initialization routines that put the graphics system into an initial state capable of supporting text output to the device. This routine performs operations such as enabling the necessary frame buffer planes, setting the color map, and returning the configuration information that changes for each type of graphics device as a value. A state management routine saves the current state of the graphics device until it is initialized, and later restores this state so that several tasks can switch and use the graphics device in a multitasking environment. Provide the ability. The font unpack and move routine unpacks the font character from the font storage area and places it in a location in the frame buffer for display on the screen of the graphics device or for later display. The block move routine moves a variable size data block from one x, y pixel location in the frame buffer to another location. This routine can be used to move data within the frame buffer to clear blocks of data within the frame buffer, and to move unpacked font characters with the font unpack and move routines described above. The self-test routine tests the device at power up to ensure that it is working properly. The configuration inquiry routine returns the current configuration of the graphics device as an execution result so that the OS and application programs can fully use the graphics device.
【0022】上述のルーチンを実行するプログラミング
コードを提供する他に、ROMは少なくとも2つの異なる
タイプのプロセッサのために少なくとも2組のプログラ
ミングコードを提供する。従って、このシステムはテキ
ストをグラフィクス装置に表示する装置独立の手段を提
供するばかりでなく、複数のプロセッサタイプに対する
装置独立の手段も提供し、グラフィクス装置を複数のタ
イプのコンピュータシステムにインストールすることが
できるようにしている。
In addition to providing programming code that implements the routines described above, ROM provides at least two sets of programming code for at least two different types of processors. Thus, this system not only provides a device-independent means for displaying text on a graphics device, but also a device-independent means for multiple processor types, allowing the graphics device to be installed on multiple types of computer systems. I am able to do it.
【0023】図1は本発明を組み込んだコンピュータシ
ステムのブロック図である。次に図1を参照すると、コ
ンピュータシステム100は処理エレメント102を持ってい
る。処理エレメント102はシステムバス104を介してコン
ピュータシステム100の他の要素と通信する。キーボー
ド106はコンピュータシステムのユーザが情報をコンピ
ュータシステムに入力することができるようにし、グラ
フィクスディスプレイ108はコンピュータシステムが情
報をユーザに出力することができるようにする。マウス
110はグラフィクス情報を入力するのに使用され、ディ
スク112はコンピュータシステム100の内部のデータ及び
プログラムを格納するのに使用される。メモリ116は、
これもシステムバス104に取付けられているが、OS 118
及びグラフィクスドライバモジュール120を持ってい
る。メモリ116はユーザソフトウェア122も保持する。
FIG. 1 is a block diagram of a computer system incorporating the present invention. Referring now to FIG. 1, computer system 100 has a processing element 102. Processing element 102 communicates with other elements of computer system 100 via system bus 104. The keyboard 106 allows a user of the computer system to enter information into the computer system, and the graphics display 108 allows the computer system to output information to the user. mouse
110 is used to input graphics information and disk 112 is used to store data and programs internal to computer system 100. The memory 116 is
This is also attached to the system bus 104, but OS 118
And a graphics driver module 120. The memory 116 also holds user software 122.
【0024】ROM 114にはデータ及び本発明の一実施例
のプログラムコードが入っている。下に説明するよう
に、システムがその初期設定ルーチンを実行すると、シ
ステムはROM 114の内容を、ルーチンが行われるグラフ
ィクスドライバモジュール120にコピーする。本発明の
好適実施例ではROMを使用しているが、本発明のデータ
及びプログラムされたルーチンを収容するにはどんなメ
モリでも使用することができる。また、好適実施例では
ROMの内容を使用前にメモリにロードするが、他の実現
形態ではこれらのルーチンをROM内に置いて使用するこ
ともできる。
ROM 114 contains data and program code of one embodiment of the present invention. When the system executes its initialization routine, as described below, the system copies the contents of ROM 114 to the graphics driver module 120 in which the routine is performed. Although ROM is used in the preferred embodiment of the present invention, any memory can be used to contain the data and programmed routines of the present invention. Also, in the preferred embodiment
The contents of the ROM are loaded into memory before use, but in other implementations these routines could be placed in ROM for use.
【0025】フレームバッファ124はディスプレイスク
リーン128に表示されているデータを収容している。制
御レジスタ126は制御電子装置130がどのようにしてフレ
ームバッファ124からの情報にアクセスし、この情報を
ディスプレイスクリーン128に送るかを定義する。
The frame buffer 124 contains the data displayed on the display screen 128. The control register 126 defines how the control electronics 130 access the information from the frame buffer 124 and send this information to the display screen 128.
【0026】以下の表1〜表3は本発明の一実施例にお
けるROM 114の内容の例を示している。
Tables 1 to 3 below show examples of the contents of the ROM 114 in one embodiment of the present invention.
【0027】[0027]
【表1】 [Table 1]
【0028】[0028]
【表2】 [Table 2]
【0029】[0029]
【表3】 [Table 3]
【0030】好適実施例ではROM 114は32ビット語と
してアクセス可能なように構成されているが、実際には
語中の1バイトだけをROMの一部として使用している。
これによりかなりな節約が行われる。というのはデータ
を格納するのに1バイト幅のROMが1つあるだけでよい
からである。ROMが1バイト幅であり、ルーチンは4バ
イト幅であるから、ルーチンを実行し得るまでには、ル
ーチンをアンパックしてROMから読み出された連続する
4バイトを組み合わせて4バイト語を構成しなければな
らない。他の実現形態では、4バイト幅のROMを使用す
ることもできる。
Although in the preferred embodiment ROM 114 is configured to be accessible as a 32-bit word, in practice only one byte of the word is used as part of the ROM.
This results in considerable savings. This is because there is only one 1 byte wide ROM to store the data. Since the ROM is 1 byte wide and the routine is 4 bytes wide, by the time the routine can be executed, the routine is unpacked and 4 consecutive bytes read from the ROM are combined to form a 4 byte word. There must be. In other implementations, a 4-byte wide ROM may be used.
【0031】オフセットロケーション0x0003には、グラ
フィクス装置をコンピュータシステム100にインストー
ルされている他の装置から区別するのに使用される1バ
イトの装置タイプが入っている。ROM中ではその次のバ
イトであるオフセット0x0007は使用せず、オフセットロ
ケーション0x000b及び0x000fには、ROMの各種の改版レ
ベルを区別する改版番号が入っている。オフセットロケ
ーション0x0013〜0x002fには、8バイトグラフィクスID
が入っている。これはインストールされている特定の形
定のグラフィクス装置に特有の番号である。オフセット
ロケーション0x0033〜0x003fには、ROM 114中のフォン
トの先頭アドレスが入っている。ROM 114は本装置が使
用するフォントがいつも入っているが、下に説明するよ
うに、フォントアンパック及び移動ルーチンはメモリ11
6の内部で供給される他のフォントを使用することもで
きる。オフセットロケーション0x0043〜0x004fには、グ
ラフィクス装置の状態を保存するのに必要な最大語数が
入っている。これにより、OS116が、下に説明する状態
管理ルーチンがどれだけの空間を必要とするかを判定す
ることができる。オフセットロケーション0x0053〜0x00
5fには、ROM内の最後のバイトのアドレスが入ってい
る。このアドレスは、自己試験ルーチンがCRCチェック
を行ってROMの内容が変わっているか確認するのに使用
される。ロケーション0x0063〜0x006fには、装置領域リ
ストを指すポインタが入っている。このリストにはグラ
フィクスディスプレイをコンピュータシステム100の記
憶空間内にどのようにマッピングしなければならないか
を記述する情報が入っている。領域リストには一連の3
2ビット語が入っており、その各語は、グラフィクス装
置空間内の、または同じ入出力スロットに入っている複
数のグラフィクス装置の空間内の種々の区域を定義す
る。リストの最初のエントリである領域0はROM 114の
ロケーションを定義しなければならず、リストの2番目
のエントリである領域1は情報を表示するのに使用され
るグラフィクス装置フレームバッファのロケーションを
定義する。リストの3番目のエントリである領域2はグ
ラフィクス装置制御レジスタのロケーションを定義しな
ければならない。領域リストの最後のエントリは後の拡
張のため使用される第2の領域リストを指すポインタで
あるように定義されている。本発明の範囲で使用される
データ構造体は全て、その最後のエントリとして将来の
データ構造体を指すポインタを持っている。これにより
本発明を、現在知られている装置より多量の情報を必要
とする将来の装置に使用することができる。
Offset location 0x0003 contains a 1-byte device type used to distinguish the graphics device from other devices installed in computer system 100. The next byte in the ROM, offset 0x0007, is not used, and offset locations 0x000b and 0x000f contain revision numbers that distinguish various revision levels of the ROM. 8-byte graphics ID at offset location 0x0013 to 0x002f
Is included. This is a number that is unique to the particular graphics device installed. Offset addresses 0x0033 to 0x003f contain the start addresses of the fonts in the ROM 114. The ROM 114 always contains the fonts used by the device, but the font unpack and move routines are stored in the memory 11 as described below.
Other fonts provided within 6 can also be used. Offset locations 0x0043 to 0x004f contain the maximum number of words needed to store the state of the graphics device. This allows the OS 116 to determine how much space the state management routine described below requires. Offset location 0x0053 to 0x00
5f contains the address of the last byte in ROM. This address is used by the self-test routine to perform a CRC check to see if the contents of the ROM have changed. Locations 0x0063 to 0x006f contain pointers to the device area list. This list contains information that describes how the graphics display should be mapped into the storage space of computer system 100. The area list contains a series of 3
Contains 2-bit words, each word defining a different area within the graphics device space or within the space of multiple graphics devices contained in the same I / O slot. The first entry in the list, area 0, must define the location of the ROM 114, and the second entry in the list, area 1, defines the location of the graphics device frame buffer used to display the information. To do. The third entry in the list, area 2, must define the location of the graphics device control register. The last entry in the region list is defined to be a pointer to a second region list used for later expansion. All data structures used within the scope of the present invention have as their last entry a pointer to a future data structure. This allows the present invention to be used in future devices that require more information than currently known devices.
【0032】オフセットロケーション0x0073及び0x0077
には、値を一時的に格納して以下に説明するルーチンに
再入できるようにするのに必要な語数が入っている。オ
フセットロケーション0x007b及び0x007fには、ルーチン
が実行のために使って良い最長の時間を0.1秒単位で表
した数が入っている。ルーチンの実行がこの時間より長
くかかれば、このルーチンは機能していないとみなされ
て、このルーチンの実行が中止される。ROM 114の内部
のロケーション0x0083〜0x00ffは、使用されない。好適
実施例では、使用されていないロケーションは全て0に
設定されている。
Offset locations 0x0073 and 0x0077
Contains the number of words needed to temporarily store the value so that it can be re-entered into the routine described below. Offset locations 0x007b and 0x007f contain the maximum time, in 0.1 seconds, that the routine may use to execute. If the routine executes longer than this time, the routine is considered non-functional and the routine is aborted. Locations 0x0083 to 0x00ff inside the ROM 114 are not used. In the preferred embodiment, all unused locations are set to zero.
【0033】オフセットロケーション0x0103〜0x017fに
は、本発明の一実施例に係る各種のルーチンのアドレス
が入っている。しかし、これらのアドレスは、特定のプ
ロセッサ、この場合にはRISCプロセッサ、のためにプロ
グラムされたルーチンのものである。オフセットロケー
ション0x0203〜0x027fは、別のプロセッサであるMotoro
la 68000のためにプログラムされた同等のルーチンの一
連のアドレスが入っている。他のプロセッサのための他
のルーチンは、ROM 114の内部で、たとえばロケーショ
ン0x0303〜0x037f、0x0403〜0x047f等に定義することが
できる。異なるプロセッサのための定義されるルーチン
群の個数はROM 114の大きさによって制限されるだけで
ある。
The offset locations 0x0103 to 0x017f contain addresses of various routines according to an embodiment of the present invention. However, these addresses are for routines programmed for a particular processor, in this case a RISC processor. Offset location 0x0203-0x027f is another processor Motoro
Contains a set of addresses of equivalent routines programmed for the la 68000. Other routines for other processors may be defined within ROM 114, eg, at locations 0x0303-0x037f, 0x0403-0x047f, etc. The number of defined routines for different processors is only limited by the size of ROM 114.
【0034】各ルーチンとのデータの受け渡しの規約は
複数のグラフィクス装置タイプ及び複数のプロセッサに
渡って標準化されている。これらのルーチンのいずれか
を呼出す毎に、データ構造体を指す4つのポインタが渡
される。これら構造体の最初のものはルーチンと受け渡
しできる全てのフラグを入れるフラグデータ構造体であ
る。その他、フラグデータ構造体には、その最後のエン
トリとして、現在のバージョンとのコンパティビリティ
を保持しながら別のフラグをROMの将来のバージョンで
受け渡せるようにする将来ポインタが入っている。4つ
の構造体のうちの2番目のものはルーチンに渡される全
てのパラメータを持っている入力データである。この構
造体にはその最後のエントリとして将来ポインタも入っ
ている。3番目のデータ構造体はルーチンから戻される
全てのデータを指すポインタが入っている出力データ構
造体である。また、この構造体はその最後のエントリと
して将来ポインタを持っている。4番目の構造体はグラ
フィクス装置を定義する構成データを指すポインタであ
る。この構造体は典型的には、下に説明するINIT_GRAPH
ルーチンが構築する。この構造体は将来ポインタも持
ち、将来の装置タイプに関する拡張された構成情報を収
容できるようにしている。
The data transfer protocol with each routine is standardized across multiple graphics device types and multiple processors. Each call to one of these routines is passed four pointers to data structures. The first of these structures is a flag data structure that contains all the flags that can be passed to and from the routine. In addition, the flag data structure contains, as its last entry, a future pointer that allows other flags to be passed in future versions of the ROM while still maintaining compatibility with the current version. The second of the four structures is the input data with all the parameters passed to the routine. This structure also contains a future pointer as its last entry. The third data structure is an output data structure that contains pointers to all the data returned by the routine. This structure also has a future pointer as its last entry. The fourth structure is a pointer that points to configuration data that defines the graphics device. This structure is typically the INIT_GRAPH described below.
The routine builds. This structure also holds a future pointer, allowing it to contain extended configuration information about future device types.
【0035】将来ポインタは、各ルーチンに関して上に
説明したが、各構造体に対する可能な将来の拡張に対し
て融通性を与える。別のパラメータを将来あるルーチン
に付加する必要があれば、このポインタを使用して新し
いパラメータが入っている別の構造体を指示させる。使
用しないときは、ポインタはそれが使用されていないこ
とを示すナルポインタになっている。たとえば、INIT_G
RAPHルーチンに渡すべき別の特徴を必要とする新しいグ
ラフィクス装置が開発されれば、この装置のINIT_GRAPH
ルーチンは将来ポインタを使用してこの新しいデータに
アクセスする。旧バージョンのOSにより呼出されたとき
には、INIT_GRAPHルーチンには将来ポインタについては
ナル値が渡される。これにより、INIT_GRAPHは、この新
しい能力を使用せず、この新しい装置を旧バージョンの
OSの下で使っても予測可能な結果が得られることを保証
している。この能力により、新しいハードウェアの開発
と新しいバージョンのOSの開発を分離することができ
る。別の構造体を将来ポインタを介して付加した場合
も、この新しい構造体はその最後のエントリとして未来
ポインタを持って、更なる将来の拡張に備えなければな
らない。
The future pointer, described above for each routine, provides flexibility for possible future extensions to each structure. If another parameter needs to be attached to a routine in the future, this pointer will be used to point to another structure containing the new parameter. When not used, the pointer is a null pointer indicating that it is not used. For example, INIT_G
If a new graphics device is developed that requires another feature to be passed to the RAPH routine, then this device's INIT_GRAPH
The routine will use the pointer in the future to access this new data. When called by an older version OS, the INIT_GRAPH routine is passed a null value for the future pointer. This allows INIT_GRAPH to not use this new capability and replace this new device with the old version.
It guarantees predictable results when used under the OS. This capability allows the separation of new hardware development and new version OS development. Even if another structure is attached via a future pointer, this new structure must have the future pointer as its last entry to prepare for further future expansion.
【0036】図2は本発明を使用しているOS初期設定ル
ーチンのフローチャートを示す。このフローチャートの
各ブロックの内容は以下の通りである。 202:ハードウエアスタート 204:処理ユニットを初期化 206:ディスプレイ装置を初期化(図3) 207:ディスプレイ装置は使用できるか? 208:起動時メッセージの最初の/次の文字を指示する 210:BLOCK_MOVE (図9) 212:まだ文字があるか?
FIG. 2 shows a flow chart of the OS initialization routine using the present invention. The contents of each block in this flowchart are as follows. 202: Hardware start 204: Initialization of processing unit 206: Initialization of display device (Fig. 3) 207: Is the display device usable? 208: Designate the first / next character of the startup message 210: BLOCK_MOVE (Fig. 9) 212: Are there any more characters?
【0037】ここで図2を参照すれば、ハードウェア初
期設定または電源投入シーケンスが行われると、制御は
コードが入っているメモリ内の、典型的にはROM内の、
特定のロケーションに移り、初期設定を実行すると共に
ディスクからOSの最初の部分をロードする。ブロック20
2はこのハードウェアROMへ制御が移ることを示してい
る。ブロック202からROMのブロック204に制御が移り、
そこで処理装置が初期設定される。次にブロック206は
図3に示すルーチンを呼出し、本発明の方法を使用して
ディスプレイを初期設定する。ディスプレイが初期設定
されてから、ブロック206からブロック207に制御が移
り、グラフィクスディスプレイが使用可能であってその
自己試験ルーチンを順調に伝えたか否かを判定する。デ
ィスプレイが使用できなければ、テキストの表示はバイ
パスして、OSの他の部分についての初期設定が継続され
る。ディスプレイ装置が使用可能でありまた自己試験に
合格すれば、ブロック207からブロック208に制御が移
り、OSがユーザに対して表示すべき起動時メッセージの
最初のまたは次の文字を指示する。次にブロック208か
らブロック210に制御が移って図9中のルーチンを呼出
し、ブロック208により指示された文字を表示する。こ
の文字を表示した後、ブロック212は別の文字をメッセ
ージに表示する必要があるか否か確認し、必要であれば
ブロック208に戻ってメッセージ中の次の文字を指示す
る。メッセージ全体を表示し終わると、ブロック212か
らOSの他の部分に制御が移ってその初期設定を続ける。
OSの初期設定のこれら他の部分の期間中、及び後のアプ
リケーションプログラムがロードされ実行されていると
き、本発明のルーチンをOSまたはアプリケーションプロ
グラムで呼出して別のテキストをグラフィクス装置上に
表示することができる。
Referring now to FIG. 2, when a hardware initialization or power-up sequence is performed, control is in the memory containing the code, typically in ROM.
Go to a specific location, perform the initial setup and load the first part of the OS from disk. Block 20
2 indicates that control is transferred to this hardware ROM. Control transfers from block 202 to block 204 in ROM,
Therefore, the processing device is initialized. Block 206 then calls the routine shown in FIG. 3 to initialize the display using the method of the present invention. After the display is initialized, block 206 transfers control to block 207 to determine if the graphics display is available and successfully passed its self-test routine. If the display is unavailable, the text display is bypassed and the rest of the OS continues to be initialized. If the display device is available and the self-test passes, then control transfers from block 207 to block 208, where the OS indicates to the user the first or next character of the startup message to display. Control then transfers from block 208 to block 210 which calls the routine in FIG. 9 to display the character pointed to by block 208. After displaying this character, block 212 checks to see if another character needs to be displayed in the message, and if so returns to block 208 to indicate the next character in the message. After displaying the entire message, block 212 transfers control to the rest of the OS to continue its initialization.
Calling the routines of the present invention in the OS or application program to display another text on the graphics device during these other parts of the OS initialization, and later when the application program is loaded and running. You can
【0038】図3は図2から呼出した初期設定ルーチン
のフローチャートである。このフローチャートの各ブロ
ックの内容は以下の通りである。 302:グラフィクスROMがあるか? 304:エラー − 使用できるディスプレイがない 306:ROMの内容をRAMにコピー 308:INIT_GRAPH (図5) 310:SELF_TEST (図4) 312:装置は正常か? 314:INIT_GRAPH (図5) 316:フォント中の先頭の/次の文字を指示 318:UNPACK_MOVE (図8) 320:まだ文字があるか?
FIG. 3 is a flow chart of the initialization routine called from FIG. The contents of each block in this flowchart are as follows. 302: Is there a graphics ROM? 304: Error-No usable display 306: Copy ROM contents to RAM 308: INIT_GRAPH (Fig. 5) 310: SELF_TEST (Fig. 4) 312: Is the device normal? 314: INIT_GRAPH (Fig. 5) 316: Indicates the first / next character in the font 318: UNPACK_MOVE (Fig. 8) 320: Is there still a character?
【0039】ここで図3を参照すれば、このルーチンに
入ると、ブロック302はグラフィクス装置が、ROMを含め
て、存在するか否か判定する。この判定は、システムバ
ス104(図1)を通して、グラフィクス装置がインスト
ールされる可能性のある種々のロケーションにアクセス
してオフセット0x0003(表1を参照)に装置タイプバイ
トが存在するか判定することにより行われる。装置タイ
プが入っているロケーションから正しい値が読出されれ
ば、ROMが存在するに違いなく、ブロック302からブロッ
ク306に制御が移る。ROMが検出されなければ、ブロック
302からブロック304に制御が移り、エラーコードを読み
出し元である図2のルーチンに戻してディスプレイが使
用不能であることを示す。
Referring now to FIG. 3, upon entering this routine, block 302 determines if the graphics device, including ROM, is present. This determination is made by accessing various locations where the graphics device may be installed through the system bus 104 (FIG. 1) to determine if the device type byte is present at offset 0x0003 (see Table 1). Done. If the correct value is read from the location containing the device type, then there must be a ROM and control transfers from block 302 to block 306. Block if ROM not detected
Control transfers from 302 to block 304 which returns the error code back to the routine of FIG. 2 from which it was read to indicate that the display is unusable.
【0040】グラフィクスディスプレイが使用可能であ
れば、ブロック302からブロック306に制御が移り、ROM
114(図1)の内容をグラフィクスドライバ120(図1)
の一部としてメモリ116(図1)にコピーする。ROMの内
容をRAMにコピーし終わると、ブロック306からブロック
308に制御が移り、図5のINIT_GRAPHルーチンを呼出し
てグラフィクスディスプレイを初期設定する。この装置
を初期設定した後、ブロック308からブロック310に制御
が移り、図4のSELF_TESTルーチンを呼出してこの装置
が動作するか否かを判定する。この装置が動作しなけれ
ば、ブロック312はブロック304に移り、ディスプレイが
使用不能であることを示すエラーを返す。装置が動作す
れば、ブロック312からブロック314に制御が移り、自己
試験により装置状態が変わっていることがあるから、図
5のINIT_GRAPHルーチンをもう一度呼出して装置の状態
を復元させる。
If the graphics display is available, control transfers from block 302 to block 306 where the ROM
The contents of 114 (Fig. 1) are changed to the graphics driver 120 (Fig. 1).
To memory 116 (FIG. 1) as part of After copying the ROM contents to RAM, block 306 to block
Control is passed to 308, and the INIT_GRAPH routine of FIG. 5 is called to initialize the graphics display. After initializing the device, control transfers from block 308 to block 310 which calls the SELF_TEST routine of FIG. 4 to determine if the device is operational. If the device is not working, block 312 moves to block 304 and returns an error indicating that the display is unavailable. When the device operates, control is transferred from block 312 to block 314, and the device state may have been changed by the self test. Therefore, the INIT_GRAPH routine of FIG. 5 is called again to restore the device state.
【0041】装置を初期設定した後、OSはROMに入って
いるフォントをアンパックしてこれをグラフィクス装置
のフレームバッファ内の未使用ロケーションに格納する
ことができる。フォントはROMから直接読み出して使用
することもできるし、あるいは性能を向上させるために
RAMにコピーしRAMから読み出して使用することもでき
る。代表的には、グラフィクス装置はそのスクリーン上
に一定数のビットを表示することができるが、これらの
ビットを格納するのに使用されるメモリは表示するビッ
トの数より大きいであろう。メモリの方が大きいとき
は、余分のメモリはしばしばフォント文字を表示可能な
様式で格納するのに使用され、これによりこれらフォン
ト文字を、必要なときスクリーンの表示可能部分に直接
移動させることができ、性能が向上する。
After initializing the device, the OS can unpack the font contained in the ROM and store it in an unused location in the frame buffer of the graphics device. Fonts can be read directly from ROM and used, or to improve performance.
It can also be copied to RAM and read from RAM for use. Typically, a graphics device can display a certain number of bits on its screen, but the memory used to store these bits will be greater than the number of bits displayed. When the memory is larger, the extra memory is often used to store font characters in a viewable fashion, which allows them to be moved directly to the viewable portion of the screen when needed. , Performance is improved.
【0042】図3の例では、フォントをアンパックして
フレームバッファ124(図1)の未使用区域に移動す
る。ブロック316は、表1及び表4で定義されているよ
うなフォント中の先頭あるいは次の文字を指示する。次
にブロック318は図8中のルーチンを呼出してアンパッ
クし、この文字をフレームバッファ124の未使用区域に
移動する。次にブロック320はアンパックする必要があ
る文字がまだ残っているかどうか判定し、もしまだあれ
ば、制御はブロック320からブロック316に戻って次の文
字をアンパックする。全ての文字をアンパックし終える
と、ブロック320は図2中の読み出し元に制御が戻る。
In the example of FIG. 3, the font is unpacked and moved to the unused area of frame buffer 124 (FIG. 1). Block 316 points to the first or next character in the font as defined in Tables 1 and 4. Block 318 then calls the routine in FIG. 8 to unpack and move this character to the unused area of frame buffer 124. Block 320 then determines if there are more characters remaining to unpack, and if so, control returns from block 320 to block 316 to unpack the next character. When all characters have been unpacked, block 320 returns control to the read source in FIG.
【0043】図4は本発明のSELF_TESTルーチンのフロ
ーチャートを示している。このフローチャートの各ブロ
ックの内容は以下の通りである。 402:ハードウエアがビジーであり、かつこのルーチン
がウエイトすることが許されていないという条件が成立
しているか? 403:ハードウエアがビジーか? 404:通常の自己試験を実行 406:エラーか? 408:拡張自己試験が要求されているか? 410:拡張自己試験を実行 412:エラーか? 414:エラーコードを返す
FIG. 4 shows a flow chart of the SELF_TEST routine of the present invention. The contents of each block in this flowchart are as follows. 402: Is the condition true that the hardware is busy and that this routine is not allowed to wait? 403: Is the hardware busy? 404: Perform normal self-test 406: Is it an error? 408: Is Extended Self-Test Required? 410: Perform extended self test 412: Is it an error? 414: Return error code
【0044】ここで図4を参照すると、このルーチンに
入ると、ブロック402はグラフィクス装置のハードウェ
アがビジーであるか否か、及びSELF_TESTルーチンに渡
されてルーチンがウエイトしてはいけないとフラグが指
示しているかどうか否かを判定する。ハードウェアがビ
ジーでまたこのルーチンがウエイトしてはいけないとフ
ラグが指示していれば、ブロック402はそのまま呼出し
元に制御を戻す。呼出し元は、必要に応じて、後に再び
SELF_TESTルーチンに入ることができる。呼出し元がこ
のルーチンのウエイトを禁止するフラグビットを設定し
ていれば、このルーチンを将来再び呼出すのは呼出し元
の責任である。
Referring now to FIG. 4, upon entering this routine, block 402 flags whether the graphics device hardware is busy and a flag is passed to the SELF_TEST routine to indicate that the routine should not wait. It is determined whether or not the instruction is given. If the hardware is busy and the flag indicates that this routine should not wait, block 402 returns control to the caller. The caller can later
You can enter the SELF_TEST routine. It is the caller's responsibility to call this routine again in the future, provided the caller has set a flag bit that inhibits the wait for this routine.
【0045】このルーチンがウエイトしなければならな
い旨、このフラグが指示していれば、ブロック402から
ブロック403に制御が移り、ハードウェアがビジーであ
るか否か確認する。ハードウェアがビジーであれば、ブ
ロック403は、ハードウェアが解放されるまでそこで単
にループする。ハードウェアが解放されると、ブロック
403からブロック404に制御が移り、通常の自己試験を実
行する。このタイプの試験は個々のグラフィクス装置に
依存しており、装置タイプが変わる毎に変わる。通常の
自己試験を行った後、ブロック406はエラーが発生した
か否か判定し、エラーが発生したのであれば、ブロック
406からブロック414に制御が移り、エラーコードを返
す。エラーコードは装置独立のこともあり、装置依存の
こともある。エラーが発生していなければ、ブロック40
6からブロック408に制御が移り、拡張試験の実行を指示
するフラグが渡されているか否か判定する。拡張試験を
実行することになっていなければ、ブロック408から呼
出し元に戻る。拡張試験が必要になっていれば、ブロッ
ク408からブロック410に制御が移り、拡張試験を行って
からブロック408に制御が移って、エラーが発生したか
否か確認する。エラーが発生していれば、ブロック412
からブロック414に制御が移り、エラーコードを呼出し
元に返す。エラーが発生していなければ、ブロック412
から直接呼出し元に戻る。
If this flag indicates that this routine must wait, control transfers from block 402 to block 403 to see if the hardware is busy. If the hardware is busy, block 403 simply loops there until the hardware is released. Block when hardware is released
Control transfers from 403 to block 404 to perform a normal self test. This type of test is dependent on the particular graphics device and will change with each device type change. After performing a normal self test, block 406 determines if an error has occurred, and if an error has occurred, block 406
Control transfers from 406 to block 414 which returns an error code. The error code may be device-independent or device-dependent. Block 40 if no errors occurred
Control is transferred from 6 to block 408, and it is determined whether or not a flag instructing execution of the extended test is passed. If the extended test is not to be performed, block 408 returns to the caller. If an extended test is required, block 408 transfers control to block 410, an extended test is performed and then block 408 transfers control to determine if an error has occurred. If there is an error, block 412
Control transfers from block 414 to return an error code to the caller. Block 412 if no errors occurred
To return to the caller directly.
【0046】図5及び図6は図3から呼出されたINIT_G
RAPHルーチンのフローチャートを示す。このフローチャ
ートの各ブロックの内容は以下の通りである。 502:フレームバッファポインタが使用可能か? 504:再入レベルが0よりも大きいか? 506:再入レベルが1か? 508:ハードウエアがビジーであり、かつこのルーチン
がウエイトすることが許されていないという条件が成立
しているか? 510:再入レベルを1に設定 512:デバイス制御レジスタを設定 514:リセットが要求されているか? 516:この装置をリセット 518:成功したか? 520:ハードウエアがビジーか? 522:グローバル構成構造体を設定 524:エラーコードを設定 525:再入レベルが2か? 526:ハードウエアがビジーであり、かつこのルーチン
がウエイトすることが許されていないという条件が成立
しているか? 528:再入レベルを2に設定 530:ハードウエアがビジーか? 532:スクリーンクリアが要求されているか? 534:グラフィクススクリーンをクリア 536:再入レベルが3か? 538:ハードウエアがビジーであり、かつこのルーチン
がウエイトすることが許されていないという条件が成立
しているか? 540:再入レベルを3に設定 542:ハードウエアがビジーか? 544:テキストプレーンと非テキストプレーンを設定 546:フラグビットに従ってテキストプレイーンをON
またはOFFする 548:再入レベルをゼロに設定
5 and 6 show INIT_G called from FIG.
The flowchart of a RAPH routine is shown. The contents of each block in this flowchart are as follows. 502: Is frame buffer pointer available? 504: Is the re-entry level greater than 0? 506: Is the re-entry level 1? 508: Is the condition true that the hardware is busy and that this routine is not allowed to wait? 510: Set reentry level to 1 512: Set device control register 514: Is reset required? 516: Reset this device 518: Success? 520: Is the hardware busy? 522: Set global configuration structure 524: Set error code 525: Is re-entry level 2? 526: Is the condition that the hardware is busy and that this routine is not allowed to wait? 528: Set reentry level to 2 530: Is hardware busy? 532: Is screen clearing required? 534: Clear the graphics screen 536: Is the re-entry level 3? 538: Is the condition true that the hardware is busy and that this routine is not allowed to wait? 540: Set reentry level to 3 542: Is hardware busy? 544: Set text plane and non-text plane 546: Turn on text plane according to flag bit
Or turn off 548: Set reentry level to zero
【0047】ここで図5及び図6を参照すると、このル
ーチンに入ると、ブロック502はフレームバッファポイ
ンタが使用可能であるか否か判定する。上に説明したよ
うに、フレームバッファポインタは、当初、ROM 114の
オフセットロケーション0x0063〜0x006fにより指示され
た装置領域リストに入っているアドレスの1つである。
フレームバッファが使用不能であればディスプレイ装置
を初期設定することができず、従ってブロック502から
ブロック524に移ってエラーコードを設定し、その呼出
し元に返る。
Referring now to FIGS. 5 and 6, upon entering this routine, block 502 determines if the frame buffer pointer is available. As explained above, the frame buffer pointer is initially one of the addresses in the device area list pointed to by the offset locations 0x0063-0x006f of the ROM 114.
If the frame buffer is unavailable, the display device cannot be initialized, so block 502 transfers to block 524 to set an error code and return to its caller.
【0048】フレームバッファが使用可能であれば、ブ
ロック502からブロック504に制御が移り、再入レベルが
0より大きいか否か判定する。再入レベルが0より大き
ければ、INIT_GRAPHルーチンは以前に呼出されていてそ
の動作は部分的には完了している。再入レベルが0であ
れば、INIT_GRAPHは呼出されていないかまたは以前呼び
出されたがその動作を完了してしまっているので、ブロ
ック504からブロック512に進んでグラフィクス装置内部
の装置制御レジスタ126(図1)を設定する。ブロック5
14は次に、呼出し元が装置をリセットすることを要求し
ているか否か判定し、もし要求していれば、ブロック51
4からブロック516に制御が移り、装置のリセットを開始
する。これは典型的にはリセットハードウェア線をトグ
ルさせることにより行われるが、ある装置ではソフトウ
ェアで行うことがある。次にブロック518はリセットが
順調に行われたか否か判定し、順調に行われていなけれ
ば、ブロック524に移ってエラーコードを返す。リセッ
トが順調に行われていれば、またはリセットが要求され
ていなければ、制御はブロック508に進む。
If the frame buffer is available, control transfers from block 502 to block 504 to determine if the reentry level is greater than zero. If the re-entry level is greater than 0, then the INIT_GRAPH routine has been called previously and its operations have been partially completed. If the re-entry level is 0, INIT_GRAPH has not been called or has been called previously, but has completed its operation, so the process proceeds from block 504 to block 512 and the device control register 126 ( Figure 1) is set. Block 5
The 14 then determines whether the caller is requesting that the device be reset, and if so, block 51.
Control transfers from 4 to block 516 to initiate device reset. This is typically done by toggling the reset hardware line, but it may be done in software on some devices. Next, block 518 determines if the reset was successful, and if not successful, moves to block 524 and returns an error code. If the reset was successful or if no reset was requested, control proceeds to block 508.
【0049】再入レベルが0より大きい場合には、ブロ
ック504からブロック506に制御が移り、再入レベルが1
であるか判定する。再入レベルが1であれば、ブロック
506からブロック508に制御が移る。
If the re-entry level is greater than 0, control transfers from block 504 to block 506 where the re-entry level is 1.
Is determined. If re-entry level is 1, block
Control transfers from 506 to block 508.
【0050】ブロック508が、ブロック506、ブロック51
4、またはブロック518のいずれかから制御権を受取る
と、ハードウェアがビジーであるか否か、及び呼出し元
がウエイト不可フラグを設定したか否か判定する。ハー
ドウェアがビジーでありまたウエイト不可フラグが設定
されていれば、ブロック508からブロック510に進み、再
入レベルを1に設定して呼出元に戻る。
Block 508 is block 506, block 51.
Upon receipt of control from either 4, or block 518, it is determined whether the hardware is busy and whether the caller has set the no wait flag. If the hardware is busy and the no wait flag is set, block 508 transfers to block 510 which sets the reentry level to 1 and returns to the caller.
【0051】ハードウェアがビジーでなければ、または
ウエイト不可フラグが設定されていなければ、ブロック
508からブロック520に進む。ここで、ハードウェアがビ
ジーであればハードウェアが解放されるのを待ち、ブロ
ック522で他の全てのルーチンにアクセスするのに必要
なグローバル構成構造体を設定する。グローバル構成構
造体には、この装置で使用できるテキストプレーンの
数、スクリーンの幅とピクセル数、及びスクリーンの高
さとピクセル数、のような情報が入っている。また、こ
の構造体には、フレームバッファメモリの表示区域から
外れた場所にある使用されていないピクセルの個数も入
っている。上に述べたように、この区域はフォント文字
をアンパックされた様式で格納するのにしばしば使用さ
れる。また上述のように、グローバル構成構造体には将
来ポインタも入っているので、将来の装置のために拡張
することもできる。グローバル構成構造体を設定した
後、ブロック522から図6のブロック526に制御が移る。
Block if the hardware is not busy, or the no wait flag is set
From 508, proceed to block 520. Now, if the hardware is busy, wait for it to be released, and at block 522 set up the global configuration structure needed to access all other routines. The global configuration structure contains information such as the number of text planes available on this device, the screen width and pixel count, and the screen height and pixel count. The structure also contains the number of unused pixels outside the display area of the frame buffer memory. As mentioned above, this area is often used to store font characters in unpacked fashion. Also, as mentioned above, future pointers are also contained in the global configuration structure, so that they can be extended for future devices. After setting the global configuration structure, control transfers from block 522 to block 526 of FIG.
【0052】再入レベルが1でなければ、ブロック506
から図6のブロック525に制御が移り、再入レベルが2
であるかどうか判定する。再入レベルが2であれば、ブ
ロック524からブロック526に進む。
If the reentry level is not 1, block 506.
Control is transferred to the block 525 of FIG. 6 and the reentry level is 2
Is determined. If the reentry level is 2, then block 524 transfers to block 526.
【0053】ブロック526が、ブロック522とブロック52
5のいずれかから制御権を受取ると、ハードウェアがビ
ジーであるか否か、及びウエイト不可フラグが設定され
ているか否か判定する。ハードウェアがビジーでありま
たウエイト不可フラグが設定されていれば、ブロック52
6からブロック528に進んで再入レベルを2に設定してか
ら呼出元に戻る。
Block 526 includes blocks 522 and 52.
When the control right is received from any one of 5, it is determined whether or not the hardware is busy and whether or not the wait disable flag is set. If the hardware is busy and the no wait flag is set, block 52
Proceed to block 528 from 6 to set the reentry level to 2 and then return to the caller.
【0054】ハードウェアがビジーでなければ、または
ウエイト不可フラグが設定されていなければ、制御はブ
ロック530に進んで、ハードウェアがビジーであればそ
れが解放されるまで待つ。次に制御はブロック532に進
み、呼出し元がスクリーンをクリアすることを要求して
いるか否か判定する。呼出し元がスクリーンのクリアを
要求していれば、ブロック532からブロック534に制御が
移り、バックグラウンドカラーを表示区域内の全ピクセ
ルに書込んで表示をクリアする。クリアが要求されてい
なければ制御はそのままブロック538に進むし、クリア
が要求されていれば、スクリーンをクリアしてからブロ
ック538に進む。
If the hardware is not busy, or if the no wait flag is not set, control proceeds to block 530 and, if the hardware is busy, waits until it is released. Control then proceeds to block 532 to determine if the caller is requesting to clear the screen. If the caller has requested to clear the screen, block 532 transfers to block 534 which writes the background color to all pixels in the display area to clear the display. If the clear is not requested, the control directly proceeds to the block 538, and if the clear is requested, the screen is cleared and then the process proceeds to the block 538.
【0055】ブロック525で再入レベルが2でないと判
定すれば、ブロック525からブロック536に制御が移り、
再入レベルが3であるかどうか否か判定する。再入レベ
ルが3でなければ、エラーが発生しており、従ってブロ
ック536から図5のブロック524に制御が移り、エラーコ
ードを返す。再入レベルが3であれば、ブロック536か
らブロック538に進む。
If it is determined in block 525 that the re-entry level is not 2, control is transferred from block 525 to block 536,
It is determined whether the reentry level is 3. If the re-entry level is not 3, then an error has occurred and control is transferred from block 536 to block 524 of FIG. 5 to return an error code. If the re-entry level is 3, block 536 leads to block 538.
【0056】ブロック538が、ブロック532、ブロック53
4、またはブロック536のいずれかから制御権を受取る
と、ハードウェアがビジーでまたウエイト不可フラグが
設定されているか否か判定する。ハードウェアがビジー
でありまたウエイト不可フラグが設定されていれば、ブ
ロック538からブロック540に進んで再入レベルを3に設
定してから呼出元に戻る。
Block 538 is block 532, block 53
Upon receipt of control from either 4, or block 536, it is determined whether the hardware is busy and the no wait flag is set. If the hardware is busy and the no wait flag is set, block 538 leads to block 540 which sets the reentry level to 3 before returning to the caller.
【0057】ハードウェアがビジーでなければ、または
ウエイト不可フラグが設定されていなければ、ブロック
538からブロック542に進み、ハードウェアがビジーであ
ればそれが解放されるのを待つ。次にブロック544は装
置のテキスト及び非テキストビットプレーンを設定し、
ブロック546は、テキストプレーンをオン状態にするこ
とを示すフラグが設定されていればこれらのテキストプ
レーンをオンにしてテキスト情報を表示できるようにす
る。次にブロック548は再入レベルを0に設定して、INI
T_GRAPHルーチンが順調に完了したことを示し、制御を
呼出し元に戻す。
Block if the hardware is not busy or if the no wait flag is set
From 538 to block 542, if the hardware is busy, wait for it to be released. Block 544 then sets the device's text and non-text bitplanes,
Block 546 turns on those text planes if the flags indicating that the text planes are turned on are set so that the text information can be displayed. Block 548 then sets the reentry level to 0 and the INI
Indicates that the T_GRAPH routine completed successfully and returns control to the caller.
【0058】再入レベルを設定することにより、INIT_G
RAPHはハードウェアがビジーであるときはいつでも呼出
元に戻ることができ、後に再入して初期設定を完了する
ことができる。再入した際には、INIT_GRAPHは前の呼出
しで停止した場所から動作を開始する。
By setting the reentry level, INIT_G
RAPH can return to the caller whenever the hardware is busy and can later re-enter to complete initialization. When re-entering, INIT_GRAPH will start from where it left off in the previous call.
【0059】図7は装置の状態管理ルーチンのフローチ
ャートを示す。このルーチンはグラフィクス装置の状態
を保存するかまたは回復するのに呼出されるので、装置
の内容を一時的に変え、後に回復することができる。こ
のフローチャートの各ブロックの内容は以下の通りであ
る。 602:ハードウエアがビジーであり、かつこのルーチン
がウエイトすることが許されていないという条件が成立
しているか? 604:ハードウエアがビジーか? 606:要求はセーブか? 608:制御レジスタの内容をセーブバッファにセーブ 610:制御レジスタをセーブバッファから復元
FIG. 7 shows a flow chart of the device status management routine. This routine is called to save or restore the state of the graphics device so that the contents of the device can be changed temporarily and restored later. The contents of each block in this flowchart are as follows. 602: Is the condition that the hardware is busy and that this routine is not allowed to wait? 604: Is the hardware busy? 606: Is the request a save? 608: Save control register contents to save buffer 610: Restore control register from save buffer
【0060】ここで図7を参照すると、このルーチンに
入ると、ブロック602はハードウェアがビジーでありま
たウエイト不可フラグが呼出し元により設定されている
か否か判定する。ハードウェアがビジーであり、また呼
出し元がこのルーチンはウエートしてはならないと指示
していれば、ブロック602はそのまま呼出し元に戻る。
呼出し元がこのルーチンはウエートしなければならない
と指示していれば、ブロック602からブロック604に制御
が移り、ハードウェアがビジーであるか否か判定する。
ハードウェアがビジーであれば、ブロック604はハード
ウェアが解放されるまでそこで単にループする。ハード
ウェアが解放されると、制御は606に進み、要求がセー
ブせよということであるかそれとも復元せよということ
であるかを判定する。セーブ要求であれば、ブロック60
6からブロック608に制御が移り、制御レジスタ126の全
内容をルーチンの呼出し元により指示されたセーブバッ
ファにセーブする。表1に関して上に説明したように、
セーブバッファの長さは表1のオフセットロケーション
0x0043〜0x004fで定義される。制御レジスタの内容をセ
ーブしてから、ブロック608は呼出し元に戻る。呼出し
が制御レジスタの内容を復元せよという要求であれば、
ブロック606からブロック610に制御が移り、レジスタの
内容をセーブバッファからレジスタにコピーして戻して
から呼出し元に戻る。
Referring now to FIG. 7, upon entering this routine, block 602 determines if the hardware is busy and the no wait flag is set by the caller. If the hardware is busy and the caller has indicated that this routine should not wait, block 602 returns straight to the caller.
If the caller has indicated that this routine must wait, block 602 transfers control to block 604 to determine if the hardware is busy.
If the hardware is busy, block 604 simply loops there until the hardware is released. Once the hardware is released, control passes to 606 to determine if the request is to save or restore. If it is a save request, block 60
Control transfers from 6 to block 608 which saves the entire contents of control register 126 in the save buffer pointed to by the caller of the routine. As explained above with respect to Table 1,
The save buffer length is the offset location in Table 1.
It is defined by 0x0043 to 0x004f. After saving the control register contents, block 608 returns to the caller. If the call is to restore the contents of the control register,
Control passes from block 606 to block 610 which copies the contents of the register from the save buffer back into the register and returns to the caller.
【0061】図8は本発明のフォントアンパック及び移
動ルーチンのフローチャートを示している。このフロー
チャートの各ブロックの内容は以下の通りである。 702:ハードウエアがビジーであり、かつこのルーチン
がウエイトすることが許されていないという条件が成立
しているか? 704:ハードウエアがビジーか? 706:フォント特性を獲得 708:文字がフォント中にあるか? 710:色は有効か? 712:文字をアンパックしてバッファ中にストア 714:エラーコードを設定
FIG. 8 shows a flowchart of the font unpacking and moving routine of the present invention. The contents of each block in this flowchart are as follows. 702: Is the condition that the hardware is busy and that this routine is not allowed to wait? 704: Is the hardware busy? 706: Acquire font characteristics 708: Is the character in the font? 710: Is the color valid? 712: Unpack character and store in buffer 714: Set error code
【0062】また、下の表4はROM 114に使用されてい
るフォント格納領域のフォーマットを示す。
Table 4 below shows the format of the font storage area used in the ROM 114.
【0063】[0063]
【表4】 [Table 4]
【0064】ROM 114に格納されているフォントについ
ては、各32ビット語から8ビットだけが使用される。
相対アドレス0x03及び0x07にはそのフォント中の最初の
文字のASCIIコードが入っており、相対アドレス0x0b及
び0x0fにはそのフォント中の最後の文字のASCIIコード
が入っている。相対ロケーション0x13にはフォントの幅
をピクセル数で表した値が入っており、相対ロケーショ
ン0x17にはフォントの高さをピクセル数で表した値が入
っている。相対ロケーション0x1bにはフォントタイプが
入っており、相対ロケーション0x1fにはフォントの各文
字を格納するのに使用されるメモリのバイトの数が入っ
ている。相対ロケーション0x23〜0x2fにはROM 114に入
っている次のフォントを指すポインタが入っている。別
のフォントがROM 114中に格納されていない場合には、
このオフセットは0に設定されている。相対ロケーショ
ン0x33及び0x37はアンダーラインの高さ及びオフセット
を定義しているので、OSは、必要ならアンダーラインを
付加することができる。このフォント用のピクセルは相
対ロケーション0x43以降に格納されている。
For fonts stored in ROM 114, only 8 bits are used from each 32-bit word.
Relative addresses 0x03 and 0x07 contain the ASCII code of the first character in the font, and relative addresses 0x0b and 0x0f contain the ASCII code of the last character in the font. Relative location 0x13 contains the width of the font in pixels, and relative location 0x17 contains the height of the font in pixels. Relative location 0x1b contains the font type and relative location 0x1f contains the number of bytes of memory used to store each character of the font. Relative locations 0x23-0x2f contain pointers to the next font in ROM 114. If another font is not stored in ROM 114,
This offset is set to 0. The relative locations 0x33 and 0x37 define the underline height and offset, so the OS can add underlines if desired. Pixels for this font are stored at relative location 0x43 and beyond.
【0065】ROM 114に入っているフォント、及び図8
のルーチンが使用する必要のある他のフォントは、1つ
の文字を構成するピクセルの1番目の行が必要なだけの
数のバイト中に格納され、続いて2番目の行が格納され
る、等のフォーマットで格納される。1行分のクセルを
すっかり格納するのにバイトの一部しか必要でない場合
には、ピクセルはバイト内部で左寄せで配置しなければ
ならず、そのバイトの残りのビットは使用されない。た
とえば、幅が10ピクセルであるフォントは1行目に2
バイトを使用する。最初のバイトには8ビット全てに有
効ピクセルがあるが、次のバイトには最も左の2ビット
に有効ピクセルがあるだけである。その他に、文字間の
スペースもフォントに含まれている。文字間スペース
は、各文字の右下縁に沿って現れるようにフォントに組
込まれている。空白スペースも、高さが一杯でなかった
りあるいは下の部分(descender)のない文字の上下に
設けられている。
Fonts stored in ROM 114 and FIG.
The other fonts that the routines in need to use are to store the first row of pixels that make up a character in as many bytes as needed, followed by the second row, and so on. It is stored in the format of. If only a portion of a byte is needed to store a row of xels, then the pixel must be left-justified within the byte and the remaining bits of that byte are unused. For example, a font with a width of 10 pixels has 2
Use bytes. The first byte has valid pixels on all eight bits, but the next byte only has valid pixels on the leftmost two bits. In addition, the space between characters is included in the font. Intercharacter spaces are built into the font so that they appear along the lower right edge of each character. Blank spaces are also provided above and below characters that are not full or have no descender.
【0066】今度は図8を参照すると、このルーチンに
入ると、ブロック702はハードウェアがビジーでまたウ
エイト不可オプションが指定されているか否か判定す
る。このルーチンがハードウェアの解放までウエートし
てはならないとユーザが指示し、かつハードウェアがビ
ジーであれば、ブロック702はそのまま呼出し元に戻
る。呼出し元がこのルーチンは待つべきであると指示し
ているか、あるいはハードウェアがビジーでなければ、
ブロック702からブロック704に制御が移り、ハードウェ
アがビジーであれば、ハードウェアが解放されるまで待
つ。ハードウェアが解放されてから、ブロック706は表
4に関して上に定義したようなフォント特性を獲得す
る。次にブロック708は、このルーチンの呼出し元が要
求した文字がそのフォント中で使用可能であるか否か、
すなわち、文字コードの値がそのフォント中の最初の文
字の文字コード以上か否か、あるいはその文字コードの
値がそのフォント中の最後の文字のコード以下であるか
否か判定する。この文字が使用できなければ、ブロック
708からブロック714に制御が移り、エラーコードを設定
して呼出し元に戻る。文字が使用できれば、ブロック70
8からブロック710に制御が移り、呼出し元が要求した色
が有効であるか否か判定し、有効でなければ、ブロック
710からブロック714に制御を移してエラーコードを返
す。
Referring now to FIG. 8, upon entering this routine, block 702 determines if the hardware is busy and the no wait option is specified. If the user has indicated that this routine should not wait until the hardware is free, and the hardware is busy, block 702 returns directly to the caller. If the caller indicates that this routine should wait, or if the hardware is not busy,
If control is transferred from block 702 to block 704 and the hardware is busy, wait until the hardware is released. After the hardware is freed, block 706 obtains the font characteristics as defined above with respect to Table 4. Block 708 then determines if the character requested by the caller of this routine is available in the font.
That is, it is determined whether the value of the character code is greater than or equal to the character code of the first character in the font, or whether the value of the character code is less than or equal to the code of the last character in the font. Block if this character is not available
Control transfers from 708 to block 714 which sets an error code and returns to the caller. Block 70 if characters are available
Control transfers from 8 to block 710, which determines if the color requested by the caller is valid and, if not, block
Control is transferred from 710 to block 714 and an error code is returned.
【0067】文字について要求された色が有効であれ
ば、ブロック710からブロック712に制御が移り、この文
字をアンパックして表示可能なフォーマットでフレーム
バッファに格納してから呼出し元に戻る。
If the color requested for the character is valid, control transfers from block 710 to block 712 which unpacks the character into a frame buffer in a displayable format and returns to the caller.
【0068】図9は本発明のブロック移動ルーチンのフ
ローチャートを示す。このフローチャートの各ブロック
の内容は以下の通りである。 802:ハードウエアがビジーであり、かつこのルーチン
がウエイトすることが許されていないという条件が成立
しているか? 804:ハードウエアがビジーか? 806:色は有効か? 808:アドレスは有効か? 810:サイズは有効か? 812:エラーコードを設定 814:クリア要求か? 816:バックグラウンドカラーを全ロケーションに移動 818:データを移動 820:色変更要求か? 822:フォアグラウンドカラーをゼロでない全ロケーシ
ョンに移動
FIG. 9 shows a flow chart of the block moving routine of the present invention. The contents of each block in this flowchart are as follows. 802: Is the condition that the hardware is busy and that this routine is not allowed to wait? 804: Is the hardware busy? 806: Is the color valid? 808: Is the address valid? 810: Is the size valid? 812: Set error code 814: Clear request? 816: Move background color to all locations 818: Move data 820: Request color change? 822: Move foreground color to all non-zero locations
【0069】このルーチンは、データをグラフィクスス
クリーンのあるロケーションから別のロケーションに動
かすのに使用される。このルーチンはスクリーンの特定
の区域をクリアしたり、あるいはフレームバッファ124
中の表示されない区域からフレームバッファ124中のグ
ラフィクススクリーンに表示される区域に情報を動かす
のにも使用される。ここで図9を参照すると、このルー
チンに入ると、ブロック802はハードウェアがビジーで
ありかつウエイト不可オプションが指定されているか否
か判定する。ハードウェアがビジーでかつウエイト不可
が指定されていれば、ブロック802は呼出し元に戻る。
この条件が成立しなければ、ブロック802からブロック8
04に制御が移り、ハードウェアが解放されるまで待って
からブロック806に制御が移る。データを移動すること
の他に、このルーチンは移動するデータの色を変えるこ
ともできる。それ故、ブロック806は要求された色が有
効であるか判定し、有効でなければ、ブロック812に制
御が移り、エラーコードを設定して呼出し元に戻る。要
求された色が有効であれば、制御はブロック808に移
り、移動アドレスが全て有効であるか否か判定し、有効
でなければ、このブロック808もブロック812に制御を移
してエラーコードを設定し、呼出し元に戻る。移動に関
連するアドレスが有効であれば、ブロック808からブロ
ック810に制御が移り、移動対象のブロックのサイズが
有効であるか否か判定する。大きさが有効でなければ、
ブロック810も制御をブロック812に移してエラーコード
を返す。
This routine is used to move data from one location on the graphics screen to another. This routine clears a specific area of the screen or the framebuffer 124
It is also used to move information from a non-displayed area inside to an area displayed on the graphics screen in frame buffer 124. Referring now to FIG. 9, upon entering this routine, block 802 determines if the hardware is busy and the no wait option is specified. If the hardware is busy and do not wait is specified, block 802 returns to the caller.
If this condition is not met, block 802 to block 8
Control passes to 04, waits until the hardware is released, and then control passes to block 806. In addition to moving data, this routine can also change the color of moving data. Therefore, block 806 determines if the requested color is valid and if not, control passes to block 812 which sets an error code and returns to the caller. If the requested color is valid, then control transfers to block 808 which determines if the move addresses are all valid and if not, this block 808 also transfers control to block 812 to set an error code. And returns to the caller. If the address related to the move is valid, the control is transferred from the block 808 to the block 810, and it is determined whether or not the size of the block to be moved is valid. If the size is not valid,
Block 810 also transfers control to block 812 and returns an error code.
【0070】色、アドレス、及びサイズが全て有効であ
れば、制御はブロック814に進み、要求が指定区域をク
リアすることであるか否か判定する。クリア要求である
場合には、ブロック814からブロック816に制御が移り、
バックグラウンドカラーを指定区域内の全てのロケーシ
ョンに移動してから、呼出し元に戻る。
If the color, address, and size are all valid, control proceeds to block 814 to determine if the request is to clear the designated area. If it is a clear request, control is transferred from block 814 to block 816,
Moves the background color to all locations in the specified area, then returns to the caller.
【0071】要求が移動に関するものであれば、ブロッ
ク814からブロック818に移ってデータを移動し、次にブ
ロック820で色変更が要求されているか否か判定する。
色変更要求でなければ、ブロック820はそのまま呼出し
元に戻る。色変更が要求されていれば、ブロック820か
らブロック822に制御を移し、フォアグラウンドカラー
を目標区域内の全ての非ゼロロケーションに動かす。
If the request is for a move, block 814 transfers to block 818 to move the data and then block 820 determines if a color change is requested.
If it is not a color change request, block 820 directly returns to the calling source. If a color change has been requested, control transfers from block 820 to block 822 which moves the foreground color to all non-zero locations within the target area.
【0072】この色変更能力により、フォントをアンパ
ックしてフレームバッファの表示不能区域に格納し、次
いで図9のブロック移動ルーチンにより、移動しながら
テキストの色を変えてこれら表示不能区域から表示可能
区域に動かすことができる。
With this color changing capability, the font is unpacked and stored in the non-displayable area of the frame buffer, and then the block moving routine of FIG. Can be moved to.
【0073】図10は本発明の構成問合わせルーチンの
フローチャートを示す。このフローチャートの各ブロッ
クの内容は以下の通りである。 902:ハードウエアがビジーであり、かつこのルーチン
がウエイトすることが許されていないという条件が成立
しているか? 904:ハードウエアがビジーか? 906:スクリーンサイズを出力に移動 908:ピクセル当たりのビット数を出力に移動 910:装置名を出力に移動
FIG. 10 shows a flowchart of the configuration inquiry routine of the present invention. The contents of each block in this flowchart are as follows. 902: Is the condition that the hardware is busy and that this routine is not allowed to wait? 904: Is the hardware busy? 906: Move screen size to output 908: Move bits per pixel to output 910: Move device name to output
【0074】ここで図10を参照すると、このルーチン
に入ると、ブロック902はハードウェアがビジーでかつ
ウエイト不可オプションが指定されているか否かを判定
する。ウエイト不可オプションが指定されておりかつハ
ードウェアがビジーであれば、ブロック902はそのまま
呼出し元に戻る。この条件が成立しない場合は、ブロッ
ク902からブロック904に制御が移り、ハードウェアが解
放されるまで待ってからブロック906に制御が移る。ブ
ロック906はスクリーンのサイズを出力区域へ移動し、
ブロック908はピクセル当たりのビット数を出力区域へ
移動し、ブロック910は装置名を出力区域へ移動してか
ら呼出し元に戻る。
Referring now to FIG. 10, upon entering this routine, block 902 determines if the hardware is busy and the no wait option is specified. If the no wait option is specified and the hardware is busy, block 902 returns directly to the caller. If this condition is not met, control transfers from block 902 to block 904, waits until the hardware is released, and then control transfers to block 906. Block 906 moves the size of the screen to the output area,
Block 908 moves the bits per pixel to the output area and block 910 moves the device name to the output area before returning to the caller.
【0075】図11は本発明の例外処理ルーチンのフロ
ーチャートを示す。このフローチャートの各ブロックの
内容は以下の通りである。 1002:バスエラーか? 1004:割込み要求をクリアするか? 1006:バスエラーをクリア 1008:装置割込みが保留中か? 1010:割込み要求をクリアするか? 1012:装置割り込みをクリア
FIG. 11 shows a flowchart of the exception handling routine of the present invention. The contents of each block in this flowchart are as follows. 1002: Bus error? 1004: Clear interrupt request? 1006: Clear bus error 1008: Is device interrupt pending? 1010: Clear interrupt request? 1012: Clear device interrupt
【0076】このルーチンは装置に対する全ての割込
み、及び装置にアクセスする間に発生するバスエラーを
受入れる。ここで図11を参照すると、このルーチンに
入ると、ブロック1002はバスエラーが保留中かどうか判
定する。バスエラーが保留中であれば、ブロック1002か
らブロック1004に制御が移り、バスエラーをクリアすべ
きことを示すフラグビットが設定されているか否か判定
する。このようなフラグビットが設定されていれば、ブ
ロック1004からブロック1006に進み、バスエラーをクリ
アする。ビットが設定されていない場合、あるいはバス
エラーをクリアした後で、あるいは保留中のバスエラー
がない場合、制御はブロック1008に進んで、装置割込み
が保留中であるか否か判定する。装置割込みが保留中で
なければ、ブロック1008は制御を呼出し元に戻す。装置
割込みが保留中であれば、ブロック1008からブロック10
10に進み、装置割込みをクリアすべきことを示すフラグ
ビットが設定されているか否か判定する。このようなフ
ラグビットが設定されていれば、ブロック1010からブロ
ック1012に進み、装置割込みをクリアする。装置割込み
をクリアした後で、あるいはクリアフラグが設定されて
いない場合、制御は呼出し元に戻る。もし望むならば、
図11のルーチンに示される別の割込みルーチンを実行
することもできる。
This routine accepts all interrupts to the device and bus errors that occur while accessing the device. Referring now to FIG. 11, upon entering this routine, block 1002 determines if a bus error is pending. If a bus error is pending, control transfers from block 1002 to block 1004 to determine if a flag bit indicating that the bus error should be cleared is set. If such flag bits are set, block 1004 proceeds to block 1006 to clear the bus error. If the bit is not set, or after clearing the bus error, or if there are no pending bus errors, control proceeds to block 1008 to determine if a device interrupt is pending. If the device interrupt is not pending, block 1008 returns control to the caller. If a device interrupt is pending, block 1008 through block 10
Proceed to 10 to determine if the flag bit indicating that the device interrupt should be cleared is set. If such flag bits are set, block 1010 transfers to block 1012 which clears the device interrupt. After clearing the device interrupt, or if the clear flag is not set, control returns to the caller. If you want,
It is also possible to execute another interrupt routine shown in the routine of FIG.
【0077】上述のように、本発明の現在のところ好適
な実施例について説明してきたが、今や本発明の目的が
完全に達成されていることが認められるであろう。また
当業者ならば、本発明の精神及び範囲から逸脱しない本
発明の構成及び回路の多数の変更及び大いに多様な実現
形態や応用は自ずから明らかであることがわかるだろ
う。ここに述べた開示及び説明は例示を目的としている
ものであり、如何なる意味においても、特許請求の範囲
によりその範囲が一層好適に定義されている本発明を限
定するものではない。
Having described the presently preferred embodiments of the invention as described above, it will now be appreciated that the objects of the invention have been fully achieved. It will also be apparent to those skilled in the art that numerous modifications of the configuration and circuitry of the present invention and a great variety of implementations and applications without departing from the spirit and scope of the present invention will be apparent. The disclosure and description provided herein is for purposes of illustration and is not intended to limit the invention in any sense to the scope of which the claims are more preferably defined.
【0078】[0078]
【効果】以上詳細に説明したように、本発明によれば、
将来の拡張性が保証されたグラフィクス表示システムが
与えられる。
As described above in detail, according to the present invention,
A graphics display system with future scalability is provided.
【図面の簡単な説明】[Brief description of drawings]
【図1】本発明の一実施例を適用したコンピュータシス
テムのブロック図。
FIG. 1 is a block diagram of a computer system to which an embodiment of the present invention is applied.
【図2】本発明の一実施例を適用したOSの立ち上げルー
チンの動作を示すフローチャート。
FIG. 2 is a flowchart showing the operation of an OS startup routine to which an embodiment of the present invention is applied.
【図3】OSの初期化ルーチンの動作を示すフローチャー
ト。
FIG. 3 is a flowchart showing the operation of an OS initialization routine.
【図4】本発明の一実施例における自己試験の動作を示
すフローチャート。
FIG. 4 is a flowchart showing the operation of a self test in one embodiment of the present invention.
【図5】本発明の一実施例におけるグラフィクス装置初
期化ルーチンの動作を示すフローチャート。
FIG. 5 is a flowchart showing the operation of a graphics device initialization routine in one embodiment of the present invention.
【図6】本発明の一実施例におけるグラフィクス装置初
期化ルーチンの動作を示すフローチャート。
FIG. 6 is a flowchart showing the operation of a graphics device initialization routine according to an embodiment of the present invention.
【図7】本発明の一実施例における状態管理ルーチンの
動作を示すフローチャート。
FIG. 7 is a flowchart showing the operation of a state management routine in one embodiment of the present invention.
【図8】本発明の一実施例におけるフォントアンパック
及び移動ルーチンの動作を示すフローチャート。
FIG. 8 is a flowchart showing the operation of a font unpacking and moving routine in one embodiment of the present invention.
【図9】本発明の一実施例におけるブロック移動ルーチ
ンの動作を示すフローチャート。
FIG. 9 is a flowchart showing the operation of a block moving routine in one embodiment of the present invention.
【図10】本発明の一実施例における構成問い合わせル
ーチンの動作を示すフローチャート。
FIG. 10 is a flowchart showing the operation of a configuration inquiry routine in one embodiment of the present invention.
【図11】本発明の一実施例における例外ハンドラ割込
み処理ルーチンの動作を示すフローチャート。
FIG. 11 is a flowchart showing the operation of the exception handler interrupt processing routine in the embodiment of the present invention.
【符号の説明】[Explanation of symbols]
100:コンピュータシステム 102:処理エレメント 104:システムバス 106:キーボード 108:グラフィクスディスプレイ 110:マウス 112:ディスク 114:ROM 116:メモリ 118:OS 120:グラフィクスドライバモジュール 122:ユーザソフトウェア 124:フレームバッファ 126:制御レジスタ 128:ディスプレイスクリーン 130:制御電子装置 100: Computer system 102: Processing element 104: System bus 106: Keyboard 108: Graphics display 110: Mouse 112: Disk 114: ROM 116: Memory 118: OS 120: Graphics driver module 122: User software 124: Frame buffer 126: Control Register 128: Display screen 130: Control electronics

Claims (1)

    【特許請求の範囲】[Claims]
  1. 【請求項1】以下の(a)〜(d)を設け、複数の表示装置タ
    イプの各々で情報を表示するシステム: (a)プログラムされたルーチンのグループのための標準
    化されたプログラミングインターフェース; (b)前記情報を表示するプログラムされたルーチンの複
    数のグループ:ルーチンのグループの1つは前記複数の
    表示装置タイプの各々に対して定義され、前記複数のグ
    ループの各々は前記標準プログラミングインターフェー
    スを採用している; (c)前記表示装置タイプの選択された1つの中に含ま
    れ、前記複数の表示装置タイプの前記1つのために定義
    された前記プログラムされたルーチンのグループをスト
    アする記憶手段 (d)プログラムされたルーチンの前記選択されたグルー
    プを使って前記表示装置タイプの前記選択された1つの
    タイプの表示装置に前記情報を表示するプロセッサ手
    段。
    1. A system for providing information on each of a plurality of display device types with the following (a)-(d): (a) A standardized programming interface for a group of programmed routines; b) Multiple groups of programmed routines displaying the information: one of the groups of routines is defined for each of the multiple display device types, each of the multiple groups employing the standard programming interface. (C) storage means included in the selected one of the display device types for storing the group of programmed routines defined for the one of the plurality of display device types. d) to the selected one type of display device of the display device type using the selected group of programmed routines. Processor means for displaying said information.
JP3956593A 1992-02-03 1993-02-03 Display system Granted JPH05346843A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US83015592A true 1992-02-03 1992-02-03
US830,155 1992-02-03

Publications (1)

Publication Number Publication Date
JPH05346843A true JPH05346843A (en) 1993-12-27

Family

ID=25256424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3956593A Granted JPH05346843A (en) 1992-02-03 1993-02-03 Display system

Country Status (4)

Country Link
US (1) US5481276A (en)
EP (1) EP0554975B1 (en)
JP (1) JPH05346843A (en)
DE (1) DE69324182T2 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5633923A (en) * 1992-11-12 1997-05-27 Rockwell International Corporation Automatic call distribution system with display data storage compression system and method
US5767833A (en) * 1995-06-28 1998-06-16 International Business Machines Corporation Method and system for providing external bitmap support for devices that support multiple image formats
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
US6169535B1 (en) 1997-06-30 2001-01-02 Toshiba America Information Systems, Inc. Monitor adjustment control
US6141023A (en) * 1998-01-30 2000-10-31 Intel Corporation Efficient display flip
US6078339A (en) * 1998-02-10 2000-06-20 Intel Corporation Mutual exclusion of drawing engine execution on a graphics device
US6025855A (en) * 1998-02-10 2000-02-15 Intel Corporation Store double word and status word write graphics primitives
AT406979B (en) 1999-01-08 2000-11-27 Lisec Peter Method for applying a thermoplastic spacer to a glass disc in the manufacture of insulating glass disc and the nozzle used by the process
JP2001125865A (en) * 1999-10-29 2001-05-11 Minolta Co Ltd Card and electronic equipment to be used by mounting the card and recording medium
JP2001144999A (en) * 1999-11-16 2001-05-25 Minolta Co Ltd Digital camera and its control method, and recording medium
US6995770B2 (en) * 2002-08-22 2006-02-07 International Business Machines Corporation Command list controller for controlling hardware based on an instruction received from a central processing unit
JP5933356B2 (en) * 2012-06-12 2016-06-08 ルネサスエレクトロニクス株式会社 Computer system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439762A (en) * 1981-12-28 1984-03-27 Beckman Instruments, Inc. Graphics memory expansion system
US4862156A (en) * 1984-05-21 1989-08-29 Atari Corporation Video computer system including multiple graphics controllers and associated method
GB2191918B (en) * 1986-06-16 1990-09-05 Ibm Data display system
EP0295690B1 (en) * 1987-06-19 1994-11-30 Kabushiki Kaisha Toshiba Display area control system for plasma display apparatus
JPH0727505B2 (en) * 1990-02-12 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレイション Interface method and interface system
US5276458A (en) * 1990-05-14 1994-01-04 International Business Machines Corporation Display system

Also Published As

Publication number Publication date
EP0554975B1 (en) 1999-03-31
DE69324182D1 (en) 1999-05-06
EP0554975A3 (en) 1993-11-18
US5481276A (en) 1996-01-02
DE69324182T2 (en) 1999-07-15
EP0554975A2 (en) 1993-08-11

Similar Documents

Publication Publication Date Title
US6104359A (en) Allocating display information
US5355498A (en) Method and apparatus for booting a computer system without loading a device driver into memory
US6167511A (en) Method to reflect BIOS set up changes into ACPI machine language
US6078402A (en) Accessory based resource offset mechanism for a PCI bus in a printer
US5903269A (en) Apparatus for and method of acquiring processing and routing data contained in a GUI window
US5675795A (en) Boot architecture for microkernel-based systems
US5991822A (en) System for modifying functions of static device driver using a registered driver extension extended dynamically by providing an entry point for the driver extension
US7024549B1 (en) Disk drive having a protected partition configured to load an operating system for performing a user-selected function
US6185677B1 (en) Automatic generation of ACPI source language for peripheral resource configuration
US6418485B1 (en) System and method for managing device driver logical state information in an information handling system
EP0476195A1 (en) Initial program load for computer workstation
US5432935A (en) Emulation for executing a second language application program on a computer having a first language operating system
US8490116B2 (en) Emulating legacy video using UEFI
JPH05346843A (en) Display system
US6222542B1 (en) Apparatus for and method of acquiring, processing and routing data contained in a GUI window
EP0284904B1 (en) Display system with symbol font memory
EP0543610A2 (en) Data processing system
US6751726B1 (en) Method and system for loading fonts by caching font-loading information
US5504920A (en) Video driver system for communicating device specific primitive commands to multiple video controller types
US5604885A (en) Apparatus and method enabling a computer to transfer control between two program segments that call one another but operate in different modes
US20020001000A1 (en) Apparatus for and method of acquiring processing and routing data contained in a GUI window
US6710777B1 (en) Method and apparatus in a data processing system for installing appropriate WID values for a transparent region
JP3019335B2 (en) Program loading method
KR100284443B1 (en) How to control simultaneous key input processing under Windows operating system environment
KR930001468B1 (en) Korea character displaying method of computer