DE3885926T2 - Display system. - Google Patents
Display system.Info
- Publication number
- DE3885926T2 DE3885926T2 DE19883885926 DE3885926T DE3885926T2 DE 3885926 T2 DE3885926 T2 DE 3885926T2 DE 19883885926 DE19883885926 DE 19883885926 DE 3885926 T DE3885926 T DE 3885926T DE 3885926 T2 DE3885926 T2 DE 3885926T2
- Authority
- DE
- Germany
- Prior art keywords
- word
- data
- words
- buffer
- bytes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 claims description 188
- 238000000034 method Methods 0.000 description 9
- 230000008520 organization Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Digital Computer Display Output (AREA)
- Image Input (AREA)
Description
Die vorliegende Erfindung bezieht sich auf ein Anzeigesystem, das einen Anzeigepuffer für Daten umfaßt, die sich auf Bildelemente beziehen, mit einer Einrichtung zum Verschieben von Bildern von einer Position an eine andere durch Bearbeiten der Daten im Anzeigepuffer.The present invention relates to a display system comprising a display buffer for data relating to picture elements, with means for moving pictures from one position to another by manipulating the data in the display buffer.
Für das Verschieben von Bildern (z.B. Zeichen) auf einem Bildschirm oder zum Anzeigen von Bildern auf einem Bildschirm wurde ein Verfahren entwickelt, das allgemein als "Bit-Blit" oder "Bit-Blt" bezeichnet wird. Bei diesem Verfahren werden über eine spezielle Logik Daten, die sich auf die Bildelemente (Pels) beziehen, aus denen ein Bild besteht, als Reaktion auf Bef ehle (z.B. über eine Maus), die das Bild an dessen ursprünglicher oder Quellposition und an der Zielposition bezeichnen, automatisch kopiert. Bei herkömmlichen Bit-Blit-Implementierungen wird eine Speicheradresse gelesen und die dadurch erhaltenen Daten dann an eine andere Speicheradresse geschrieben, wodurch ein Bildelement des Bildes kopiert wird. Durch entsprechende Heraufsetzung von Quell- (Lese-) und Ziel- (Schreib-)-Adresse und Wiederholung des Vorgangs können Bilder (z.B. Text- oder Grafikzeichen) beliebiger Größe jeweils in Form einzelner Bildelemente verschoben werden.A technique commonly referred to as "bit blit" or "bit blt" has been developed for moving images (e.g. characters) on a screen or for displaying images on a screen. This technique uses special logic to automatically copy data relating to the picture elements (pels) that make up an image in response to commands (e.g. via a mouse) that designate the image at its original or source position and at the destination position. In conventional bit blit implementations, a memory address is read and the data obtained is then written to another memory address, thereby copying a picture element of the image. By appropriately increasing the source (read) and destination (write) addresses and repeating the process, images (e.g. text or graphic characters) of any size can be moved as individual picture elements.
Mit diesem Verfahren können zum einen Bilder von einer Position an eine andere Position in einem Teil eines Anzeigepuffers kopiert werden, der abgetastet wird, um Bildanzeigen auf dem Bildschirm zu generieren (d.h. in einem auf dem Bildschirm angezeigten oder sichtbaren Teil des Anzeigepuf fers), zum anderen können Bilder zwischen einem nicht auf dem Bildschirm angezeigten (d.h. nicht sichtbaren) und einem sichtbaren Teil des Anzeigepuffers hin- und herkopiert werden. Das letztere Verfahren wird bei APA-Anzeigepuffern (APA = all points adressable = punktadressierbar) eingesetzt, um Symboldefinitionen, die in einem nicht sichtbaren Teil eines Anzeigepuffers gespeichert sind, in einen sichtbaren Teil des Anzeigepuffers zu kopieren, wenn die Symbole tatsächlich angezeigt werden sollen.This method allows images to be copied from one position to another position in a portion of a display buffer that is scanned to generate image displays on the screen (i.e., in a portion of the display buffer that is displayed on the screen or visible), and it allows images to be copied back and forth between a portion of the display buffer that is not displayed on the screen (i.e., not visible) and a visible portion of the display buffer. The latter method is used with APA display buffers (APA = all points addressable) to copy symbol definitions stored in a non-visible part of a display buffer to a visible part of the display buffer when the symbols are actually to be displayed.
Bei herkömmlichen Verfahren wird dies vom Mikroprozessor des Systems ausgeführt, der hierfür - sofern vorhanden - Verschiebeanweisungen für Zeichenfolgen verwenden kann. Die Blit-Raten, die auf diese Weise erzielt werden, sind aufgrund er begrenzten Bus-Bandbreite des Mikroprozessorsystems und der enormen Datenmengen bei umfangreichen Anzeigen relativ niedrig. Daher ist es (abgesehen von sehr einfachen Bildern) normalerweise nicht möglich, ein Bild als Reaktion - beispielsweise - auf Mausbewegungen auf dem Bildschirm zu verschieben. Außerdem erfordert auch das Verschieben eines Bildes aus dem nicht sichtbaren in den sichtbaren Speicher einen nicht unerheblichen Zeitaufwand.In conventional methods, this is done by the system's microprocessor, which can use string shift instructions if available. The blit rates achieved in this way are relatively low due to the limited bus bandwidth of the microprocessor system and the enormous amounts of data involved in large displays. Therefore, it is usually not possible (except for very simple images) to shift an image on the screen in response to, for example, mouse movements. In addition, even shifting an image from invisible to visible memory takes a considerable amount of time.
Gegenstand der vorliegenden Erfindung ist ein Anzeigesystem mit einer Einrichtung zum Kopieren eines Bildes von einer Quellposition an eine Zielposition, welche nicht die Nachteile der Einrichtungen nach dem Stand der Technik aufweist (vgl. z.B. EP- A-0 158 314).The subject of the present invention is a display system with a device for copying an image from a source position to a target position, which does not have the disadvantages of the devices according to the prior art (see e.g. EP-A-0 158 314).
Erreicht wird dies durch ein Anzeigesystem, das einen auf Wortbasis organisierten Anzeigepuffer zum Speichern von Datenbytes umfaßt, die sich auf Bildelemente (Pels) beziehen, wobei in jedem Anzeigepufferwort mehrere Datenbytes gespeichert sind, sowie ein Mittel zum Kopieren eines Bildes von einer Quellposition an eine Zielposition, wobei dieses Mittel zum Kopieren Mittel zum Lesen eines oder mehrerer Blöcke von Quellwörtern aus einer ersten Gruppe von Wortpositionen im Anzeigepuffer umfaßt, wobei die Quellwörter Datenbytes enthalten, die sich auf Bildelemente für das Bild an dessen Quellposition beziehen, Mittel zur Neuanordnung der Datenbytes in einem Block von gelesenen Quellwörtern zur Bildung einer Gruppe von Zielwörtern, in denen diese Datenbytes, die sich auf Bildelemente für das Bild beziehen, innerhalb der Wörter in Zielreihenfolge angeordnet sind, sowie Mittel zum Schreiben der aus den einzelnen Blöcken von gelesenen Quellwörtern in einem Schreibblock generierten Zielwörter in eine zweite Gruppe von Wortpositionen im Anzeigepuffer, wodurch die Datenbytes, die sich auf die Bildelemente für das Bild beziehen, an den korrekten Bytepositionen im Anzeigepuffer gespeichert werden, um das Bild an der Zielposition darzustellen, wobei das Mittel zur Neuanordnung der Datenbytes in einem Block von Quellwörtern folgendes umfaßt: ein gängiges Zylinder-Schieberegister zum Drehen von Datenwörtern um eine wählbare ganze Zahl von Bytes, mehrere international gebräuchliche, als FIFO-Puffer organisierte Register zum temporären Speichern der Datenbytes, die sich auf Bildelemente für das Bild beziehen, eine Adressierungslogik des FIFO-Puffers, so daß einzelne Bytes innerhalb des Registers adressiert werden können, und eine Steuerlogik, über die Steuersignale an das Zylinder-Schieberegister und die Adressierungslogik des FIFO- Puffers angelegt werden können, so daß die Datenbytes in einem Block von gelesenen Quellwörtern 50 neu angeordnet werden, daß sie eine Gruppe von Zielwörtern bilden, in denen die Datenbytes, die sich auf Bildelemente für das Bild beziehen, innerhalb der Wörter in Zielreihenfolge angeordnet sind.This is achieved by a display system comprising a word-organized display buffer for storing data bytes relating to picture elements (pels), each display buffer word storing a plurality of data bytes, and means for copying an image from a source location to a destination location, said means for copying comprising means for reading one or more blocks of source words from a first group of word positions in the display buffer, said source words containing data bytes relating to picture elements for the image at its source location, means for rearranging the data bytes in a block of read source words to form a group of destination words in which said data bytes relating to picture elements for the image within which words are arranged in target order, and means for writing the target words generated from the individual blocks of read source words in a write block into a second group of word positions in the display buffer, whereby the data bytes relating to the picture elements for the picture are stored in the correct byte positions in the display buffer to display the picture at the target position, the means for rearranging the data bytes in a block of source words comprising: a common cylinder shift register for rotating data words by a selectable integer number of bytes, a plurality of internationally used registers organized as FIFO buffers for temporarily storing the data bytes relating to picture elements for the picture, an addressing logic of the FIFO buffer so that individual bytes within the register can be addressed, and a control logic via which control signals can be applied to the cylinder shift register and the addressing logic of the FIFO buffer so that the data bytes in a Block of read source words 50 may be rearranged to form a group of destination words in which the data bytes relating to picture elements for the image are arranged within the words in destination order.
In einem ersten Ausführungsbeispiel ist das Zylinder-Schieberegister mit dem Datenausgang des Anzeigepuffers verbunden, von wo es ein aus dem Anzeigepuffer ausgelesene Wort übernimmt und dann das Quellwort um eine wählbare ganze Zahl von Bytes dreht. Der Dateneingang des FIFO-Puffers ist mit dem Ausgang des Zylinder-Schieberegisters verbunden und übernimmt das gedrehte Wort. Der Datenausgang des FIFO-Puffers ist mit dem Dateneingang des Anzeigepuffers verbunden. Die Steuerlogik liefert Steuersignale für das Schieberegister und die Adressierungslogik des FIFO-Puffers, so daß Bytes in einem gedrehten Wort, die im Schieberegister über die Wortgrenze hinaus gedreht wurden, im FIFO-Puffer an einer zugehörigen Byteposition in einem Register neben dem Register gespeichert werden, in dem Bytes in dem gedrehten Wort gespeichert werden, die im Schieberegister nicht über die Wortgrenze hinaus gedreht wurden. Dadurch wird die Gruppe von Zielwörtern, in der die Datenbytes, die sich auf Bildelemente für das Bild beziehen, innerhalb der Wörter in Zielreihenfolge gespeichert sind, im FIFO-Puffer gespeichert.In a first embodiment, the cylinder shift register is connected to the data output of the display buffer, from where it receives a word read from the display buffer and then rotates the source word by a selectable integer number of bytes. The data input of the FIFO buffer is connected to the output of the cylinder shift register and receives the rotated word. The data output of the FIFO buffer is connected to the data input of the display buffer. The control logic provides control signals for the shift register and the addressing logic of the FIFO buffer so that bytes in a rotated word that have been rotated beyond the word boundary in the shift register are stored in the FIFO buffer at an associated byte position in a register adjacent to the register in which bytes in the rotated word that have not been rotated beyond the word boundary. This causes the group of target words, in which the data bytes relating to picture elements for the image are stored within the words in target order, to be stored in the FIFO buffer.
In einem alternativen Ausführungsbeispiel wird der FIFO-Puffer statt dessen mit dem Datenausgang des Anzeigepuffers verbunden, so daß er Quellwörter aufnimmt, die aus dem Anzeigepuffer ausgelesen werden. Der Eingang des Schieberegisters ist mit dem Ausgang des FIFO-Puffers verbunden und übernimmt Datenwörter aus dem FIFO-Puffer, die um eine wählbare ganze Zahl von Bytes gedreht werden sollen. Der Ausgang des Schieberegisters ist mit dem Dateneingang des Anzeigepuffers verbunden. Die Steuerlogik sendet Steuersignale an das Schieberegister und an die Adressierungslogik des FIFO-Puffers, wodurch Bytes des Datenwortes, die im Schieberegister über die Wortgrenze hinaus gedreht werden sollen, von einer zugehörigen Byteposition in einem Register neben dem Register, gelesen werden, aus dem Bytes in dem Datenwort gelesen werden, die im Schieberegister nicht über die Wortgrenze hinaus gedreht werden sollen. Dadurch wird die Gruppe von Zielwörtern, in der die Datenbytes, die sich auf die Bildelemente für das Bild beziehen, in Zielreihenfolge gespeichert sind, durch das gedrehte Wort am Ausgang des Schieberegisters gebildet.In an alternative embodiment, the FIFO buffer is instead connected to the data output of the display buffer so that it receives source words read from the display buffer. The input of the shift register is connected to the output of the FIFO buffer and receives data words from the FIFO buffer that are to be rotated by a selectable integer number of bytes. The output of the shift register is connected to the data input of the display buffer. The control logic sends control signals to the shift register and to the addressing logic of the FIFO buffer, causing bytes of the data word that are to be rotated beyond the word boundary in the shift register to be read from a corresponding byte position in a register adjacent to the register from which bytes in the data word that are not to be rotated beyond the word boundary in the shift register are read. Thus, the group of target words, in which the data bytes relating to the picture elements for the image are stored in target order, is formed by the rotated word at the output of the shift register.
Bei den vorgenannten Ausführungsbeispielen der Erfindung umfaßt die Steuerlogikt eine Leselogik, mit der zunächst eine Gruppe von Anzeigepufferadressen definiert wird, aus denen die Quellwörter gelesen werden sollen, und eine Schreiblogik, mit der eine zweite Gruppe von Anzeigepufferadressen definiert wird, an die die Zielwörter geschrieben werden sollen. Die Leselogik veranlaßt die Generierung einer Folge von Adressen aus dieser ersten Gruppe für einen Block von Quellwörtern, die gelesen werden sollen, bis der FIFO-Puffer voll ist oder bis alle Wörter, die Datenbytes enthalten, die sich auf die Bildelemente für das Bild an der Quellposition beziehen, gelesen wurden - je nachdem, welches Ereignis früher eintritt. Anschließend veranlaßt die Schreiblogik die Generierung einer Adressenfolge aus der zweiten Gruppe, die einen Block von Schreibadressen bildet, bis der FIFO-Puffer keine Datenbytes mehr enthält, die sich auf das Bild beziehen. Zusätzlich kann die Steuerlogik die Adressierung des Anzeigepuffers und die Funktion des Mittels zur Neuanordnung der Datenbytes in einem Block von gelesenen Quellwörtern so synchronisieren, daß - nachdem eine entsprechende Anzahl von Blöcken von Quellwörtern gelesen, neu angeordnet und an den Zieladressen im Anzeigepuffer gespeichert wurde - das Bild von der Quellposition an die Zielposition kopiert wird.In the above embodiments of the invention, the control logic comprises a read logic for first defining a group of display buffer addresses from which the source words are to be read and a write logic for defining a second group of display buffer addresses to which the destination words are to be written. The read logic causes a sequence of addresses to be generated from this first group for a block of source words to be read until the FIFO buffer is full or until all words containing data bytes relating to the picture elements for the picture at the source position have been read - whichever occurs first. Thereafter, the write logic generates an address sequence from the second group that forms a block of write addresses until the FIFO buffer no longer contains any data bytes related to the image. In addition, the control logic may synchronize the addressing of the display buffer and the operation of the means for reordering the data bytes in a block of read source words so that after a corresponding number of blocks of source words have been read, reordered and stored at the destination addresses in the display buffer, the image is copied from the source location to the destination location.
Ein Anzeigesystem wie das vorstehend beschriebene kann einen Anzeigepuffer enthalten, der einen sichtbaren Teil für die Speicherung von Datenbytes umf aßt, die sich auf die Bildelemente beziehen, die auf einem Bildschirm angezeigt werden sollen, und einen nicht sichtbaren Teil für Datenbytes, die sich auf Bildelemente beziehen, die nicht auf einem Bildschirm angezeigt werden. In diesem Fall ermöglicht das Mittel zum Kopieren eines Bildes von einer Quellposition an eine Zielposition das Kopieren eines Bildes innerhalb eines der sichtbaren oder nicht sichtbaren Teile sowie das Kopieren zwischen diesen Teilen in beliebiger Richtung.A display system such as that described above may include a display buffer comprising a visible portion for storing data bytes relating to the picture elements to be displayed on a screen and a non-visible portion for data bytes relating to picture elements not displayed on a screen. In this case, the means for copying an image from a source location to a destination location enables copying an image within either of the visible or non-visible portions, as well as copying between these portions in any direction.
Bei einem Anzeigesystem gemäß der vorliegenden Erfingung können alphanumerische, Text- und sogar Grafikabbilder in Echtzeit auf einem Bildschirm verschoben werden (z.B. als Reaktion auf Mausbewegungen); dies kann die Bearbeitung von Bildschirmanzeigen ermöglichen, die Bilder unterschiedlichster Art enthalten (z.B. zur Zusammenstellung von Seiten bei DTP-Anwendungen). Bilder können rasch aus einem nicht sichtbaren Teil in einen sichtbaren Teil eines APA-Anzeigepuffers kopiert werden, um Symbole (z.B. Zeichen) anzuzeigen, deren Bildelementdefinitionen im nicht sichtbaren Teil gespeichert sind. Auf diese Weise kann ein Bildschirm mit Bildern, u.a. alphanumerische Zeichen, Text und sogar Grafiken, auf einer Grafik-Bildschirmanzeige erstellt werden, die über einen APA-Grafik-Anzeigepuffer angesteuert wird, wobei eine Leistung ausreicht, wie sie normalerweise für rein alphanumerische Anzeigen mit codiertem Puffer erforderlich ist.In a display system according to the present invention, alphanumeric, text and even graphic images can be moved around a screen in real time (e.g. in response to mouse movements); this can enable manipulation of screen displays containing images of various types (e.g. for assembling pages in DTP applications). Images can be quickly copied from a non-visible part to a visible part of an APA display buffer to display symbols (e.g. characters) whose picture element definitions are stored in the non-visible part. In this way, a screen containing images, including alphanumeric characters, text and even graphics, can be created on a graphics screen display driven by an APA graphics display buffer, wherein performance is sufficient, as is normally required for purely alphanumeric displays with coded buffer.
Zum besseren Verständnis der vorliegenden Erfindung wird ein Ausführungsbeispiel eines Anzeigsystems gemäß dieser Erfindung anhand der beigefügten Zeichnungen ausführlich erläutert.For a better understanding of the present invention, an embodiment of a display system according to this invention will be explained in detail with reference to the accompanying drawings.
Fig. 1 zeigt ein Blockdiagramm einer Datenstation;Fig. 1 shows a block diagram of a data station;
Fig. 2A und 2B sind schematische Darstellungen, die die Beziehung zwischen wahrgenommenen Bildelementpositionen auf einem Bildschirm und den entsprechenden Speicherpositionen der Daten, die sich auf diese Bildelemente beziehen, in einem Anzeigepuffer zeigen.Figures 2A and 2B are schematic diagrams showing the relationship between perceived pixel positions on a screen and the corresponding storage locations of the data related to those pixels in a display buffer.
Fig. 3 ist ein schematisches Blockdiagramm, das die Einzelteile für den Anzeigeadapter von Fig. 1 zeigt.Fig. 3 is a schematic block diagram showing the components for the display adapter of Fig. 1.
Fig. 4 und 5 bilden ein Flußdiagramm, das den Funktionsablauf des Anzeigeadapters von Fig. 3 darstellt.Fig. 4 and 5 form a flow chart illustrating the functional sequence of the display adapter of Fig. 3.
Fig. 1 zeigt eines Übersichtsdarstellung einer Datenstation mit einem Anzeigeadapter, in dem die Erfindung implementiert werden kann. Die Datenstation umfaßt eine Anzahl verschiedener Systemeinheiten, die über einen Systembus 12 verbunden sind. Der Systembus umfaßt einen Datenbus 14, einen Adreßbus 16 und einen Steuerbus 18. An den Systembus sind ein Mikroprozessor 10, ein Arbeitsspeicher (RAM) 20, ein Tastaturadapter 28, ein Anzeigeadapter 32, ein E/A-Adapter 22 und ein DFV-Adapter 26 angeschlossen. Über den Tastaturadapter wird eine Tastatur 30 mit dem Systembus verbunden. Der Anzeigeadpater, der eine spezifische Ausführung der vorliegenden Erfindung darstellt, verbindet den Systembus mit einer Anzeigeeinheit 34. Der E/A-Adapter bildet entsprechend die Verbindung zwischen anderen Ein/Ausgabeeinheiten 24 (z.B. DASDs) und dem Systembus, und über den DFV-Adapter kann die Datensation an einen oder mehrere externe Prozessoren, z.B. einen Host-Prozessor (nicht dargestellt), angeschlossen werden und mit diesen kommunizieren.Fig. 1 shows an overview of a data station with a display adapter in which the invention can be implemented. The data station comprises a number of different system units which are connected via a system bus 12. The system bus comprises a data bus 14, an address bus 16 and a control bus 18. A microprocessor 10, a random access memory (RAM) 20, a keyboard adapter 28, a display adapter 32, an I/O adapter 22 and a communication adapter 26 are connected to the system bus. A keyboard 30 is connected to the system bus via the keyboard adapter. The display adapter, which represents a specific embodiment of the present invention, connects the system bus to a display unit 34. The I/O adapter accordingly forms the connection between other input/output units 24 (eg DASDs) and the system bus, and the data station can be connected to one or more external processors, e.g. a host processor (not shown), can be connected and communicate with them.
Der Anzeigeadapter enthält einen APA-Anzeigepuffer 36, auf den die Anzeigeeinheit zugreifen kann, um die Daten, die den einzelnen Bildelementen auf dem Bildschirm entsprechen (siehe Fig. 2A) abzurufen. Die Daten werden synchron zur Abtastung des Bildschirms abgerufen. Dazu sind die Informationen im Anzeigepuffer entsprechend der Abtastseguenz der Anzeigeakutalisierungsschaltung organisiert. Neben dem auf dem Bildschirm angezeigten oder sichtbaren Teil des Bildschirms, der von der Anzeigeeinheit abgetastet wird, umf aßt der Anzeigepuffer einen nicht auf dem Bildschirm angezeigten oder nicht sichtbaren Teil, in dem Bilder (z.B. Zeichen- oder Symboldefinitionen) gespeichert sind, die auf dem Bildschirm nicht sichtbar sind.The display adapter includes an APA display buffer 36 that can be accessed by the display unit to retrieve the data corresponding to the individual picture elements on the screen (see Figure 2A). The data is retrieved synchronously with the scanning of the screen. To this end, the information in the display buffer is organized according to the scanning sequence of the display update circuit. In addition to the on-screen displayed or visible portion of the screen that is scanned by the display unit, the display buffer includes a non-screen displayed or non-visible portion in which images (e.g., character or symbol definitions) that are not visible on the screen are stored.
Fig. 2A zeigt den Bildschirm 38 wie ihn der Benutzer sieht. Der Bildschirm weist "Y" Zeilen mit je "X" Bildelementpositionen auf. Wie dargestellt, sind die Bildschirmzeilen von oben nach unten von 0 bis Y-1 durchnumeriert. Die Bildelementpositionen in den einzelnen Zeilen sind ebenfalls mit entsprechender Numerierung dargestellt - von links nach rechts mit 0 bis X-1. Die Numerierung ist absolut willkürlich; andere Numerierungsschemata sind denkbar.Fig. 2A shows the screen 38 as it is viewed by the user. The screen has "Y" rows with "X" pixel positions each. As shown, the screen rows are numbered from top to bottom from 0 to Y-1. The pixel positions in the individual rows are also shown with corresponding numbering - from left to right with 0 to X-1. The numbering is completely arbitrary; other numbering schemes are conceivable.
Um den in Fig. 2A dargestellten Bildschirm zu generieren, werden Daten in einem Anzeigepuffer 36 gespeichert, dessen sichtbarer Teil in Fig. 2B dargestellt ist.To generate the screen shown in Fig. 2A, data is stored in a display buffer 36, the visible portion of which is shown in Fig. 2B.
Dieser spezifische Anzeigepuffer ist auf Basis von Wörtern zu je 32 Bit organisiert. Jedes Bildelement wird durch ein 8 Bit umfassendes Datenbyte dargestellt, in dem Intensität und/oder Farbe des Bildelements definiert sind; andere Organisationsformen für den Anzeigepuffer sind selbstverständlich möglich. So könnte z.B. der Buffer mit Wörtern einer anderen Länge organisiert sein und/oder ein Byte, in dem die Intensität und/oder Farbe eines Bildelements definiert ist, könnte eine andere Anzahl von Bits umfassen (z.B. Wörter zu 8 Bit und Bytes zu 4 Bit).This specific display buffer is organized on the basis of 32-bit words. Each pixel is represented by an 8-bit data byte in which the intensity and/or color of the pixel is defined; other forms of organization for the display buffer are of course possible. For example, the buffer could be organized with words of a different length and/or a byte in which the intensity and/or color of a pixel is defined could have a different number of bits (e.g. words of 8 bits and bytes of 4 bits).
Wie aus der Abbildung ersichtlich, ist der Anzeigepuffer aus Gründen der Anschaulichkeit als von unten nach oben als linearer Strom von Bytes innerhalb des Puffers organisiert dargestellt, beginnend mit dem Byte für das oberste linke Bildelement, gefolgt von den Bytes für die Bildelemente der ersten Zeile von links nach rechts, dann die der zweiten Zeile und so weiter, bis zum Byte für das unterste rechte Bildelement. Der Anzeigepuffer könnte für einen Bildschirm organisiert sein, der über ein versetztes Abtastverfahren (d.h., bei dem die Abtastung von Zeilen mit gerader Nummer mit der Abtastung von Zeilen mit ungerader Nummer abwechselt) aktualisiert wird, indem veranlaßt wird, daß die Bilddaten für die einzelnen Bildelemente des Bildschirms (Fig. 2A) so gespeichert werden, daß die Daten für die Zeilen mit gerader Nummer in einer ersten Folge ab einer ersten Adresse im Anzeigepuffer gespeichert werden und die Daten für die Zeilen mit ungerader Nummer in einer zweiten Folge ab einer zweiten Adresse, beginnend mit dem Ende oder nach dem Ende der ersten Folge. Alternativ könnte der Anzeigepuffer als eine einzige Folge (wie in Fig. 2B dargestellt) organisiert sein, wobei die Anzeige-Abtastlogik in der Lage sein müßte, die benötigten Daten aus dem Puffer zu extrahieren, um einen Bildschirm mit versetzter Abtastung zu unterstützen.As can be seen from the figure, for clarity, the display buffer is shown as being organized from bottom to top as a linear stream of bytes within the buffer, starting with the byte for the top left pixel, followed by the bytes for the pixels of the first row from left to right, then those of the second row, and so on, down to the byte for the bottom right pixel. The display buffer could be organized for a screen that is updated using a staggered scan method (i.e., where scanning of even-numbered lines alternates with scanning of odd-numbered lines) by causing the image data for each pixel of the screen (Fig. 2A) to be stored such that the data for the even-numbered lines is stored in a first sequence starting at a first address in the display buffer and the data for the odd-numbered lines is stored in a second sequence starting at a second address, starting at or after the end of the first sequence. Alternatively, the display buffer could be organized as a single sequence (as shown in Fig. 2B), with the display scanning logic being able to extract the necessary data from the buffer to support a staggered scan screen.
Fig. 2A zeigt zwei rechteckige Blöcke 40 und 42, die für ein rechteckiges Bild, das verschoben werden soll, die Quellposition 40 und die Zielposition 42 auf dem Bildschirm darstellen. Das rechteckige Bild umfaßt eine Zeile mit 6 Bildelementen, wobei sich das linke obere Bildelement zunächst an Position b,a auf dem Bildschirm befindet. Das linke obere Bildelement der Zielposition befindet sich an d, c. Fig. 2B zeigt das Quell- Rechteck, das im Anzeigepuffer durch eine Gruppe von 6 Datenbytes bei 41 dargestellt wird. Entsprechend wird das Ziel- Rechteck im Anzeigepuffer durch eine Gruppe von 6 Datenbytes an 43 dargestellt. Dabei ist zu beachten, daß die Ausrichtung der Datengruppen für Quell- und Zielrechteck bezüglich der Wortgrenzen des Anzeigepuffers (z.B. linker/rechter Rand des Blocks bei Bitadresse 0/31 in Fig. 2B) unterschiedlich ist. Weiter sei hier darauf hingewiesen, daß wegen der besseren Anschaulichkeit ein einfaches Bild gewählt wurde, das auf einer Zeile von Bildelementen liegt. In der Praxis wird das zu verschiebende Bild im allgemeinen größer sein und normalerweise mehrere Reihen abdecken.Fig. 2A shows two rectangular blocks 40 and 42 which represent the source position 40 and the destination position 42 on the screen for a rectangular image to be moved. The rectangular image comprises a line of 6 picture elements, with the top left picture element initially located at position b,a on the screen. The top left picture element of the destination position is located at d,c. Fig. 2B shows the source rectangle represented in the display buffer by a group of 6 data bytes at 41. Similarly, the destination rectangle is represented in the display buffer by a group of 6 data bytes at 43. It should be noted that the orientation of the Data groups for source and destination rectangles are different with respect to the word boundaries of the display buffer (eg left/right edge of the block at bit address 0/31 in Fig. 2B). It should also be noted here that for the sake of clarity a simple image was chosen which lies on one row of picture elements. In practice the image to be moved will generally be larger and normally cover several rows.
Der Anzeigepuffer in diesem Adapter wird durch ein 32 Bit breites Feld aus D-RAMs gebildet. Die kleinste Adressierungseinheit ist ein 32-Bit-Wort. Der Anzeigepuffer verfügt allerdings über getrennte Byteaktivierungen, so daß bei jedem Schreibzugriff nach Bedarf in 0 bis 4 Bytes (zu jeweils 8 Bit) geschrieben werden können, wobei die übrigen der vier Bytes unverändert bleiben. Auf diese Weise kann der Anzeigepuffer als APA-Puffer konfiguriert werden, so daß es möglich wird, in jedes Bildelement (d.h. jedes 8-Bit-Byte) selektiv geschrieben oder ggf. nicht geschrieben werden kann, obwohl vier Bytes (d.h. ein Wort) gleichzeitig adressiert werden.The display buffer in this adapter is formed by a 32-bit wide array of D-RAMs. The smallest addressing unit is a 32-bit word. However, the display buffer has separate byte enablers so that 0 to 4 bytes (8 bits each) can be written to as needed on each write access, leaving the rest of the four bytes unchanged. In this way, the display buffer can be configured as an APA buffer, allowing each pixel (i.e. each 8-bit byte) to be selectively written to or not written to, even though four bytes (i.e. one word) are addressed simultaneously.
So gesehen wäre es möglich, das Konzept nach dem Stand der Technik für das Verschieben eines Bildes auf einem Bildschirm anzuwenden (d.h. die einzelnen Bytes nacheinander zu lesen und die dabei erhaltenen Daten jeweils an die entsprechende Zielposition im Puffer zu schreiben, womit die einzelnen Bildelemente nacheinander kopiert werden, bis das gesamte Bild kopiert ist). Dieses Vorgehen ist allerdings sehr langsam, da jedes Byte einzeln verarbeitet wird. Es wäre nicht möglich, einfach jeweils ein Wort zu lesen und zu schreiben, da die Position eines Bytes innerhalb der Wortgrenzen in Quell- und Zielwort unterschiedlich sein kann, wie in Fig. 2B gezeigt.In this sense, it would be possible to apply the state-of-the-art concept to scrolling an image on a screen (i.e., reading each byte one by one and writing the resulting data to the corresponding destination position in the buffer, copying each image element one by one until the entire image is copied). However, this approach is very slow, since each byte is processed individually. It would not be possible to simply read and write one word at a time, since the position of a byte within the word boundaries may be different in the source and destination words, as shown in Fig. 2B.
Die vorliegende Erfindung löst dieses Problem, indem sie Mittel zum Lesen, Verarbeiten und Speichern von Anzeigepufferwörtern in Blöcken bereitstellt.The present invention solves this problem by providing means for reading, processing and storing display buffer words in blocks.
Wenngleich bei dem hier beschriebenen spezifischen Ausführungsbeispiel der Erfindung der Anzeigepuffer in Form von D-RAMs implementiert wird und der Zugriff an Wort- und Bytegrenzen möglich ist, ist die vorliegende Erfindung nicht auf eine solche Organisationsform beschränkt. Sie kann auch mit einem Anzeigepuffer in einer andere technologischen Ausführung implementiert werden, bei der der Zugriff auf den Puffer nur an Wortgrenzen und nicht an Bytegrenzen möglich ist.Although in the specific embodiment of the invention described here the display buffer is implemented in the form of D-RAMs and access is possible on word and byte boundaries, the present invention is not limited to such an organization. It can also be implemented with a display buffer in a different technological embodiment in which the buffer can only be accessed on word boundaries and not on byte boundaries.
Wird der Anzeigepuffer allerdings mit D-RAMs implementiert und sind aufeinanderfolgende Wörter im Anzeigepuffer so angeordnet, daß damit auf einanderfolgende Gruppen zu vier Bildelementen definiert werden, ermöglicht der Blockbetrieb gemäß der vorliegenden Erfindung z.B. den Einsatz eines D-RAM-"Seitenmodus"- Merkmals, das eine weitere erhebliche Leistungsverbesserung bringt. Das Merkmal "Seitenmodus" ist in D-RAMs generell implementiert und ermöglicht aufgrund der internen Chip-Organisation schnelleren Zugriff auf aufeinanderfolgende Positionen als auf wahlf reie Positionen.However, if the display buffer is implemented with D-RAMs and consecutive words in the display buffer are arranged to define consecutive groups of four pixels, the block operation of the present invention allows, for example, the use of a D-RAM "page mode" feature which provides a further significant performance improvement. The "page mode" feature is generally implemented in D-RAMs and, due to the internal chip organization, allows faster access to consecutive locations than to random locations.
Fig. 3 zeigt ein schematisches Blockdiagramm, aus dem die Beziehung zwischen verschiedenen Funktionselementen des Anzeigeadapters von Fig. 1 ersichtlich sind, der das spezifische Ausführungsbeispiel der vorliegenden Erfindung darstellt. Der Adapter umfaßt eine Steuereinheit 44, die mit dem Adreßbus 16 und dem Steuerbus 18 verbunden ist. Der Steuereinheit ist der Steuerspeicher 46 zugeordnet, der mit dem Datenbus 14 verbunden ist, von dem er Initialisierungsdaten aus dem RAM der Datenstation erhält.Fig. 3 is a schematic block diagram showing the relationship between various functional elements of the display adapter of Fig. 1, which is the specific embodiment of the present invention. The adapter includes a control unit 44 connected to the address bus 16 and the control bus 18. The control unit is associated with the control memory 46 connected to the data bus 14, from which it receives initialization data from the RAM of the terminal.
Die Eingänge zu den Y- und X-Quellregistern 48 und 50 und den Y- und X-Zielregistern 52 und 54 sind ebenfalls mit dem Datenbus 14 verbunden, von dem sie als Bestandteil der Initialisierungsdaten Ausgangspositionsdaten erhalten (Beschreibung folgt). An die Ausgänge der Y- und X-Quellregister und der Y- und X-Zielregister sind die Y- und X-Quellzähler und Y- und X-Zielzähler 56, 58, 60 bzw. 62 angeschlossen. Die vier Eingänge des Rechenwerks 64 sind jeweils mit dem Ausgang des entsprechenden der vier Zähler 56, 58, 60 und 62 verbunden. Der Ausgang des Rechenwerks ist an den Adreßeingang des Anzeigepuffers 36 angeschlossen.The inputs to the Y and X source registers 48 and 50 and the Y and X destination registers 52 and 54 are also connected to the data bus 14, from which they receive initial position data as part of the initialization data (description follows). The Y and X source counters and Y and X destination counters are connected to the outputs of the Y and X source registers and the Y and X destination registers. 56, 58, 60 and 62 respectively. The four inputs of the arithmetic unit 64 are each connected to the output of the corresponding one of the four counters 56, 58, 60 and 62. The output of the arithmetic unit is connected to the address input of the display buffer 36.
Die Datenausgänge des Anzeigepuffers 36 sind parallel mit den Eingängen eines gebräuchlichen Zylinder-Schieberegisters 66 verbunden, das dazu dient, eingegebene Datenwörter um eine ganzzahlige Anzahl von Bytepositionen zu drehen. Die Datenausgänge des Schieberegisters sind parallel mit den Dateneingängen eines FIFO-Puffers 68 verbunden, der aus mehreren (bei diesem Anzeigeadapter acht) international gebräuchlichen Registern besteht. Der FIFO-Puffer ist mit einer Adressierungslogik 70 ausgestattet, so daß einzelne Bytes im FIFO-Puffer separat adressiert und einzelne Bytes, die gleichzeitig an die Dateneingänge des FIFO-Puffers angelegt werden, in verschiedenen Wörtern gespeichert werden können. Die Adressierungslogik des FIFO-Puffers enthält Bytezeiger, die den Anfang und das Ende von Daten im FIFO-Puffer anzeigen, wodurch die Adressierungslogik des FIFO-Puffers feststellen kann, wann der Puffer voll und wann er leer ist. Die Datenausgänge des FIFO-Puffers sind wiederum mit den Dateneingängen des Anzeigepuffers verbunden. Obwohl sie hier separat dargestellt sind, können die Dateneingänge und - ausgänge des Anzeigepuffers zusammengelegt werden - entsprechend auch beim FIFO-Puffer.The data outputs of the display buffer 36 are connected in parallel to the inputs of a conventional cylinder shift register 66, which serves to rotate input data words by an integer number of byte positions. The data outputs of the shift register are connected in parallel to the data inputs of a FIFO buffer 68, which consists of several (eight in this display adapter) internationally common registers. The FIFO buffer is equipped with an addressing logic 70 so that individual bytes in the FIFO buffer can be addressed separately and individual bytes that are simultaneously applied to the data inputs of the FIFO buffer can be stored in different words. The FIFO buffer addressing logic contains byte pointers that indicate the beginning and end of data in the FIFO buffer, allowing the FIFO buffer addressing logic to determine when the buffer is full and when it is empty. The FIFO buffer data outputs are in turn connected to the display buffer data inputs. Although they are shown separately here, the display buffer data inputs and outputs can be combined - similarly for the FIFO buffer.
Die Steuereinheit ist über Steuereingänge C mit dem Steuerspeicher, den Y- und X-Registern, den Y- und X-Zählern, dem Rechenwerk, dem Anzeigepuffer, dem Schieberegister und der Adressierungslogik des FIFO-Puffers verbunden. Die Adressierungslogik des FIFO-Puffers ist außerdem zur Übergabe von "Puffer voll"- und "Puffer leer"-Signalen mit der Steuerlogik verbunden.The control unit is connected to the control memory, the Y and X registers, the Y and X counters, the arithmetic unit, the display buffer, the shift register and the addressing logic of the FIFO buffer via control inputs C. The addressing logic of the FIFO buffer is also connected to the control logic for the transfer of "buffer full" and "buffer empty" signals.
Bei diesem speziellen Anzeigeadapter sind die verschiedenen dargestellten Funktionseinheiten als Spezialschaltungen ausgelegt. So sind z.B. die Logikeinheiten in Form einer Verknüpfungslogik angelegt. Die vorliegende Erfindung schließt jedoch die Möglichkeit der Implementierung der Logik in einem System auf Software- und Porzessorbasis nicht aus.In this special display adapter, the various functional units shown are designed as special circuits. For example, the logic units are designed in the form of a logic connection. However, the present invention does not exclude the possibility of implementing the logic in a software and processor-based system.
Das Bild, das kopiert werden soll, wird vom Anzeigeadapter in Blöcken verarbeitet. Zunächst veranlaßt die Steuerlogik, daß ein Block mit Anzeigepufferwörtern, die repräsentative Bytes des Bildes an der Quellposition enthalten, aus dem Anzeigepuffer ausgelesen wird. Diese Wörter gehen durch das Schieberegister, wo die einzelnen Wörter nach Bedarf gedreht werden, und werden an entsprechenden Bytepositionen im FIFO-Puffer gespeichert. Der FIFO-Puffer ist in der Lage, an zwei Adressen gleichzeitig zu schreiben, um das gewünschte Ergebnis zu erhalten, nämlich daß die Pufferpositionen Byte für Byte und Bit für Bit den Zielpositionen für die Anzeigepuf ferwörter entsprechen.The image to be copied is processed in blocks by the display adapter. First, the control logic causes a block of display buffer words containing representative bytes of the image at the source location to be read from the display buffer. These words pass through the shift register, where the individual words are rotated as needed, and are stored at corresponding byte positions in the FIFO buffer. The FIFO buffer is capable of writing to two addresses simultaneously to achieve the desired result, namely that the buffer positions correspond byte for byte and bit for bit to the destination positions for the display buffer words.
Wenn die Quelle komplett gelesen wurde oder der FIFO-Puffer voll ist (je nachdem, welcher Fall zuerst eintritt), schaltet der Anzeigeadapter automatisch von Lesen auf Schreiben um und speichert den Block mit Datenwörtern aus dem FIFO-Puffer an den Zielpositionen im Anzeigepuffer. Dabei ist zu beachten, daß bei dem vorstehend beschriebenen Vorgang die Daten in dem zum Schreiben erforderlichen Format im Puffer gespeichert werden. Das heißt, jedes Pufferwort enthält Daten in der richtigen Ausrichtung, so daß sie ohne Änderung in die entsprechenden Anzeigepufferwörter geschrieben werden können.When the source is completely read or the FIFO buffer is full (whichever occurs first), the display adapter automatically switches from reading to writing and stores the block of data words from the FIFO buffer at the destination locations in the display buffer. Note that the process described above stores the data in the buffer in the format required for writing. That is, each buffer word contains data in the correct orientation so that it can be written to the corresponding display buffer words without modification.
Ist das Quell-Rechteck zu groß für den FIFO-Puffer, schaltet der Anzeigeadapter automatisch zwischen Leseblöcken, die den FIFO- Puffer füllen und Schreibblöcken, die den Inhalt des FIFO- Puffers an die Zielpositionen im Anzeigepuffer übertragen, hin und her. Die Größe des Bildes in X-Richtung im Verhältnis zur Größe des FIFO-Puffers ist bei diesem Vorgang nicht von Bedeutung. Ein großer X-Wert führt dazu, daß viele Blöcke benötigt werden, um eine Zeile des Bildes zu übertragen. Bei einem kleinen X-Wert können viele Zeilen des Bildes in einem Block übertragen werden. Der Puffer bleibt damit logisch unsichtbar.If the source rectangle is too large for the FIFO buffer, the display adapter automatically switches between read blocks that fill the FIFO buffer and write blocks that transfer the contents of the FIFO buffer to the target positions in the display buffer. The size of the image in the X direction in relation to the size of the FIFO buffer is not important in this process. A large X value means that many blocks are needed to transfer one line of the image. With a With a small X value, many lines of the image can be transferred in one block. The buffer therefore remains logically invisible.
In dem in Fig. 2A und Fig. 2B dargestellten Beispiel wird das Bild in einem Block mit zwei Leseoperationen vollständig gelesen. (Daraus ergibt sich, daß in einem einfachen Fall, bei dem das Bild aus vier mal einem Bildelement besteht, der Block lediglich eine Leseoperation umfaßt.) Die Steuerlogik berechnet anhand der X-Adressen von Quelle und Ziel, daß eine Drehung von eins nach rechts erforderlich ist, um die Bildelemente an die Positionen innerhalb des Zielwortes zu bringen, an denen sie während des Schreibblocks benötigt werden. Weiter berechnet die Logik, daß Bildelemente, die die letzte Position innerhalb des Wortes belegen, eine Position vor der ersten, zweiten und dritten Position in den FIFO-Puffer geschrieben werden müssen. Wie ersichtlich liegen - obwohl die Bytes "b,a+2", "b,a+1", "b,a" an der Quellposition für das Bild im selben Anzeigepufferwort liegen (41, Fig. 2B) - die entsprechenden Bytes "d,c+2", '1d,c+1", "d,c" an der Zielposition (43, Fig. 2B) in anderen (benachbarten) Speicherwörtern.In the example shown in Fig. 2A and Fig. 2B, the image is completely read in one block with two read operations. (This means that in a simple case where the image consists of four pixels of one, the block only contains one read operation.) The control logic calculates, using the X addresses of the source and destination, that a rotation of one to the right is required to bring the pixels to the positions within the destination word where they are needed during the write block. The logic also calculates that pixels occupying the last position within the word must be written into the FIFO buffer one position before the first, second and third positions. As can be seen, although the bytes "b,a+2", "b,a+1", "b,a" at the source position for the image are located in the same display buffer word (41, Fig. 2B) - the corresponding bytes "d,c+2", '1d,c+1", "d,c" at the destination position (43, Fig. 2B) are located in other (adjacent) memory words.
Um die Art und Weise, in der Bilder gemäß der vorliegenden Erfindung auf dem Bildschirm eines Anzeigesystems übertragen werden, ausführlich zu erläutern, wird dieser Vorgang nachfolgend anhand der Flußdiagramme von Fig. 4 und 5 und von Fig. 2A und 2B beschrieben.In order to explain in detail the manner in which images are transmitted on the screen of a display system in accordance with the present invention, this process is described below with reference to the flow charts of Figs. 4 and 5 and of Figs. 2A and 2B.
Bevor der Anzeigeadapter die Daten im Anzeigepuffer tatsächlich modifizieren kann, um den Bildschirm zu aktualisieren, ist allerdings eine Initialisierungsphase notwendig.Before the display adapter can actually modify the data in the display buffer to update the screen, an initialization phase is necessary.
In der Datenstation von Fig. 1 initialisiert der Prozessor den Anzeigeadapter, indem er über den Datenbus Positionierungsdaten an den Adapter sendet. Die Positionierungsdaten enthalten Informationen zur Bildgröße, Informationen über die Ausgangs- oder Quellposition und die End- oder Zielposition für dieses Bild und Informationen über die Abtastrichtung. Diese Daten können aus Operationen mit der Maus oder Instruktionen von einer Tastatur usw. stammen und werden über den Datenbus an den Steuerspeicher übertragen.In the data station of Fig. 1, the processor initializes the display adapter by sending positioning data to the adapter over the data bus. The positioning data includes information about the image size, information about the starting or source position and the ending or target position for that image, and information about the scan direction. This data can be from Operations with the mouse or instructions from a keyboard, etc. originate and are transferred to the control memory via the data bus.
Die Informationen zu Quell- und Zielposition umfassen die "x"- und "y"-Werte für die Bildschirmposition einer Bildecke (z.B. rechte untere Ecke) an der Quell- und der Zielposition. In den Informationen zur Bildgröße wird die Länge der horizontalen und vertikalen Seiten des Bildes als Anzahl von Bildelementen definiert. Die Informationen zur Abtastrichtung bestimmen die Richtungen, in denen die Quell- und Ziel-Bildpositionen von der angegebenen Bildschirmposition aus abgetastet werden müssen, um zu verhindern, daß die Daten durcheinander geraten. Wenn die Bildpositionen in falscher Richtung abgetastet werden, kann es bei überlappenden Bildpositionen vorkommen, daß für eine Position neue Bildelementdaten eingelesen werden, bevor die alten Bildelementdaten ausgelesen wurden.The source and destination position information includes the "x" and "y" values for the screen position of an image corner (e.g., lower right corner) at the source and destination positions. The image size information defines the length of the horizontal and vertical sides of the image as the number of pixels. The scan direction information determines the directions in which the source and destination image positions must be scanned from the specified screen position to prevent the data from becoming jumbled. If the image positions are scanned in the wrong direction, overlapping image positions may result in new pixel data being read in for a position before the old pixel data has been read out.
In dem Fall des Blocks in Fig. 2 gelten folgenden Informationen zu Größe und Positionen:In the case of the block in Fig. 2, the following information applies to size and positions:
Quellposition ... x = a+5, y = bSource position ... x = a+5, y = b
Zielposition ... x = c+5, y = dTarget position ... x = c+5, y = d
Größe ... horizontal 6, vertikal 1 BildelementSize ... horizontal 6, vertical 1 picture element
Abtastrichtung ... y auf steigend, x absteigendScanning direction ... y increasing, x decreasing
Um die Informationen über die Abtastrichtung berechnen zu können, muß bestimmt werden, in welcher Richtung die Bildelemente verarbeitet werden müssen (d.h. in welcher Richtung das Bild abgetastet werden muß), damit die Daten ordnungsgemäß im Anzeigepuffer gespeichert werden. Bei dem Beispiel in Fig. 2A und Fig 2B überlappen Quell- und Zielrechteck nicht, doch kommt es in der Praxis häufig vor, daß Quell- und Zielpositionen von Bildern überlappen, wenn ein Bild innerhalb des sichtbaren Teils des Anzeigepuffers kopiert wird. Ziel ist es zu vermeiden, daß an eine Position geschrieben werden muß, die ein Byte mit Bildelementdaten enthält, das noch nicht aus dem Anzeigepuffer ausgelesen wurde. Dies läßt sich durch Vergleichen von Quell- und Zielposition des Bildes erreichen. Die Abtastrichtung für das Bild in X- oder Y-Richtung oder ggf. in beiden Richtungen läuft entgegengesetzt zur Verschiebungsrichtung des Bildes. Wenn z.B. die Zielposition des Bildes rechts von der Quellposition liegt (d.h. die Verschiebungsrichtung nach rechts verläuft), erfolgt die Abtastung von rechts nach links.In order to calculate the scanning direction information, it is necessary to determine in which direction the pixels must be processed (ie in which direction the image must be scanned) so that the data is stored correctly in the display buffer. In the example in Fig. 2A and Fig. 2B, the source and destination rectangles do not overlap, but in practice it is common for the source and destination positions of images to overlap when copying an image within the visible part of the display buffer. The aim is to avoid having to write to a position that contains a byte of pixel data that has not yet been read from the display buffer. was read out. This can be achieved by comparing the source and destination positions of the image. The scanning direction for the image in the X or Y direction, or in both directions, runs opposite to the direction of translation of the image. For example, if the destination position of the image is to the right of the source position (ie the translation direction is to the right), the scanning takes place from right to left.
Die vorgenannten Informationen zu Quell- und Zielposition bestimmen die Bildschirmposition, bei der die "Abtastung" der Rechtecke beginnen muß. Diese Werte können anhand der Informationen zur Bildposition, zur Bildgröße und zur Abtastrichtung berechnet werden.The above information on source and destination position determines the screen position at which the "scanning" of the rectangles must begin. These values can be calculated using the information on image position, image size and scanning direction.
Bei dem in Fig. 2 dargestellten Beispiel kann - da sowohl die "x-" als auch die "y-"Werte der Zielposition höher sind als die der Quellposition - errechnet werden, daß das Bild von rechts unten nach links oben abgetastet werden muß. Die Position der rechten unteren Bildelemente kann auch berechnet werden, wenn die Positionen von Quell- und Zielbild in einer bestimmten Phase während der Verarbeitung der Bilder anhand der linken oberen Ecke (d.h. b,a und d,c) definiert werden. Bei dieser Datenstation werden diese Berechnungen nicht im Adapter, sondern von einer Sof tware unter Steuerung des Prozessors durchgeführt. Bei einer alternativen Ausführung der Erfindung wäre es möglich im Anzeigeadapter, eine spezielle Verknüpfungslogik für diesen Zweck zu integrieren. In diesem Fall würden die Ausgangswerte für Y und x zunächst in den Steuerspeicher eingelesen und die berechneten Werte dann über die in Fig. 3 gestrichelt dargestellte Leitung zwischen dem Steuerspeicher und den Registern übertragen. In beiden Fällen wird im Steuerspeicher eine Angabe zur Abtastrichtung gespeichert; die Ausgangspositionen für Y und X für Quell- und Zielbild werden in den hierfür relevanten Registern 48, 50, 52 und 54 gespeichert. Für das Beispiel von Fig. 2 werden in den Registern folgende Werte gespeichert:In the example shown in Fig. 2, since both the "x" and "y" values of the target position are higher than those of the source position, it can be calculated that the image must be scanned from bottom right to top left. The position of the bottom right image elements can also be calculated if the positions of the source and target images are defined at a certain stage during the processing of the images using the top left corner (i.e. b, a and d, c). In this data station, these calculations are not carried out in the adapter, but by software under the control of the processor. In an alternative embodiment of the invention, it would be possible to integrate special logic for this purpose in the display adapter. In this case, the output values for Y and x would first be read into the control memory and the calculated values would then be transferred via the line shown in dashed lines in Fig. 3 between the control memory and the registers. In both cases, an indication of the scanning direction is stored in the control memory; the starting positions for Y and X for the source and destination images are stored in the relevant registers 48, 50, 52 and 54. For the example in Fig. 2, the following values are stored in the registers:
Y-Quellregister ... bY-source register ... b
X-Quellregister ... a+5X-source register ... a+5
Y-Zielregister ... dY destination register ... d
X-Zielregister ... c+5X-destination register ... c+5
Die Steuerlogik enthält eine spezielle Verknüpfungslogik, die die Anzahl der Bytes für die Drehung ermittelt, die im Schieberegister ausgeführt werden muß, um die Bytes der Quellwörter innerhalb der Zielwörter auszurichten. Die erforderliche Drehung wird berechnet, indem der Wert für die X-Quellposition von der X-Zielposition abgezogen wird und das Ergebnis auf die Anzahl von Bits verkürzt wird, die benötigt wird, um die Anzahl der Bildelemente in dem Wort wiederzugeben. Dabei wird davon ausgegangen - wie dies ja auch tatsächlich der Fall ist - daß eine ganzzahlige Anzahl von Wörtern pro Zeile auf dem Bildschirm erscheint und daß die Anzahl der Bildelemente eine ganzzahlige Binärpotenz ist (z.B. wie in diesem Fall 4). Im diesem Beispiel ist die Quelladresse "a+5" und die Zieladresse "c+5"; für die Beschreibung der Anzahl der Bildelemente in einem Speicherwort werden 2 Bits benötigt (d.h. es handelt sich um 4 Bytes pro Wort). Die Berechnung wird daher nach folgender Formel durchgeführt:The control logic contains special logic that determines the number of bytes of rotation that must be performed in the shift register to align the bytes of the source words within the destination words. The required rotation is calculated by subtracting the X source position value from the X destination position and truncating the result to the number of bits needed to represent the number of pixels in the word. This assumes - as is actually the case - that an integer number of words appear on the screen per line and that the number of pixels is an integer binary power (e.g., 4 as in this case). In this example, the source address is "a+5" and the destination address is "c+5"; 2 bits are needed to describe the number of pixels in a memory word (i.e., 4 bytes per word). The calculation is therefore carried out according to the following formula:
Drehung = (c - a) verkürzt 2Rotation = (c - a) shortened 2
Wie aus Fig. 2B ersichtlich, erfolgt tatsächlich eine Drehung um ein Byte nach links. Dieser Wert für die Drehung wird im Steuerspeicher gespeichert und an das Schieberegister übergeben.As can be seen from Fig. 2B, a rotation of one byte to the left actually occurs. This value for the rotation is stored in the control memory and passed to the shift register.
Sobald diese Initialisierungsinformationen ermittelt und gespeichert wurden, ist der Anzeigeadapter bereit, die Operationen für den Anzeigepuffer auszuführen. Alle vorstehend beschriebenen Operationen werden von der Verknüpfungslogik direkt ausgeführt und erfordern daher weder beim Einrichten der Anzeigeadapter-Hardware noch bei deren Betrieb Rechenzeit im Mikroprozessor. Fig. 4 zeigt den logischen Ablauf der Operationen, die von der Leseblock-Logik in der Steuerlogik ausgeführt werden, und Fig. 5 zeigt den logischen Ablauf der Operationen, die bei der Änderung des Inhalts des Anzeigepuffers von der Schreibblock-Logik ausgeführt werden. Diese Flußdiagramme besagen nicht, daß sich jeder einzelne Schritt, der dort dargestellt ist, auf einen separaten Systemzustand bezieht. Für manche Schritte sind mehrere Operationen erforderlich, andere wiederum werden in der Praxis durch eine Verknüpfungslogik parallel ausgeführt. Ziel jeder Implementierung ist es, die Zahl der Taktzustände auf eine Minimum zu reduzieren.Once this initialization information has been determined and stored, the display adapter is ready to perform operations on the display buffer. All of the operations described above are performed directly by the logic and therefore do not require any microprocessor time to set up the display adapter hardware or to operate it. Fig. 4 shows the logical flow of operations performed by the read block logic in the control logic, and Fig. 5 shows the logical flow of operations performed by the write block logic when changing the contents of the display buffer. These flowcharts do not imply that each step shown therein refers to a separate system state. Some steps require multiple operations, while others are in practice performed in parallel by means of a combination logic. The goal of any implementation is to reduce the number of clock states to a minimum.
IN SCHRITT 80 wird der Bildschirmpositionswert b für die Y- Ordinate des rechten unteren Teils des Bildes an der Quellposition aus dem Y-Quellregister 48 in den Y-Quellzähler 56 geladen.IN STEP 80, the screen position value b for the Y ordinate of the lower right part of the image at the source position is loaded from the Y source register 48 into the Y source counter 56.
IN SCHRITT 81 wird der Bildschirmpositionswert a+5 für die X- Ordinate des rechten unteren Teils des Bildes an der Quellposition aus dem X-Quellregister 50 in den X-Quellzähler 58 geladen.IN STEP 81, the screen position value a+5 for the X-ordinate of the lower right part of the image at the source position is loaded from the X-source register 50 into the X-source counter 58.
IN SCHRITT 82 prüft die Steuerlogik, ob der FIFO-Puffer voll ist. Dazu wird die Steuerausgabe aus der Adressierungslogik des FIFO-Puffers untersucht.IN STEP 82, the control logic checks whether the FIFO buffer is full. To do this, the control output from the addressing logic of the FIFO buffer is examined.
IN SCHRITT 83 (der FIFO-Puffer ist voll) wird die Steuerung an eine Logik übergeben, die einen Schreibblock steuert, wie in Fig. 5 dargestellt; anschließend folgt die Expansion.IN STEP 83 (the FIFO buffer is full) control is passed to logic that controls a write block as shown in Fig. 5, followed by expansion.
IN SCHRITT 84 veranlaßt bei Rückkehr von einem Schreibblock -oder alternativ, wenn der FIFO-Puffer nicht voll war - die Steuerlogik das Rechenwerk zur Berechnung der Adresse des Wortes im Anzeigepuffer, das das Datenbyte für das Bildelement enthält, das an der Position auf dem Bildschirm angezeigt werden soll, die durch die derzeit im Y- und im X-Quellzähler befindlichen Werte bezeichnet wird. Welche Berechnung durchgeführt wird, hängt von der Organisation des Anzeigepuffers, der Anzahl der Bildelemente pro Wort usw. ab.IN STEP 84, upon return from a write block - or alternatively if the FIFO buffer was not full - the control logic causes the arithmetic unit to calculate the address of the word in the display buffer containing the data byte for the pixel to be displayed at the position on the screen designated by the values currently in the Y and X source counters. Which calculation is performed depends on the organization of the display buffer, the number of picture elements per word, etc.
IN SCHRITT 85 ermittelt die Steuerlogik, ob es sich bei der gerade berechneten Wortadresse um eine neue Quellwortadresse handelt. Ist die gerade berechnete Adresse mit der zuletzt berechneten Wortadresse für das Quellbild identisch, wird die Steuerung an Schritt 87 übergeben.IN STEP 85, the control logic determines whether the word address just calculated is a new source word address. If the address just calculated is identical to the last word address calculated for the source image, control is passed to step 87.
IN SCHRITT 86 (die gerade berechnete Adresse ist neu) veranlaßt die Steuerlogik, daß das Wort, auf das das Rechenwerk verweist, aus dem Anzeigepuffer in das Schieberegister geladen wird, wo es um die von der Steuerlogik ermittelte Anzahl von Bytes gedreht wird. Das Schieberegister besteht aus einer Verknüpfungslogik, daher können Bildelemente ohne zusätzliche Tatkzyklen aus ihrer Position im Quellwort in die Position im Zielwort gedreht werden.IN STEP 86 (the address just calculated is new), the control logic causes the word to which the arithmetic unit refers to be loaded from the display buffer into the shift register, where it is rotated by the number of bytes determined by the control logic. The shift register consists of a logic logic, so picture elements can be rotated from their position in the source word to their position in the target word without additional clock cycles.
Das gedrehte Wort erscheint am Ausgang des Schieberegisters und wird gemäß der Adressierung durch die FIFO-Adressierungslogik, die von der Steuerlogik gesteuert wird, in entsprechende Bytepositionen im FIFO-Puffer eingelesen. Wie erwähnt, können die Bytepositionen in den Registern separat aktiviert werden, wodurch die FIFO-Adressierungslogik entsprechende Bytes in zwei benachbarten Registern auf einmal ansprechen kann. Alle Bytes in einem gedrehten Wort, die im Schieberegister über die Wortgrenze hinaus gedreht wurden, werden im FIFO-Puffer an einer entsprechenden Byteposition in einem Register neben dem Register gespeichert, in dem Bytes in dem gedrehten Wort gespeichert werden, die im Schieberegister nicht über die Wortgrenze hinaus gedreht wurden. In diesem Beispiel enthält ein Wort 4 Bytes und es wird eine Drehung um eins vorgenommen, so daß nur Bildelemente an Byte 3 innerhalb des Quellwortes über die Wortgrenze hinaus gedreht werden (d.h. Bytes an der äußersten linken Wortposition wie in Fig. 2B dargestellt).The rotated word appears at the output of the shift register and is read into corresponding byte positions in the FIFO buffer as addressed by the FIFO addressing logic, which is controlled by the control logic. As mentioned, the byte positions in the registers can be enabled separately, allowing the FIFO addressing logic to address corresponding bytes in two adjacent registers at once. Any bytes in a rotated word that were rotated beyond the word boundary in the shift register are stored in the FIFO buffer at a corresponding byte position in a register adjacent to the register that stores bytes in the rotated word that were not rotated beyond the word boundary in the shift register. In this example, a word contains 4 bytes and a rotation of one is performed so that only pixels at byte 3 within the source word are rotated beyond the word boundary (i.e., bytes at the leftmost word position as shown in Fig. 2B).
IN SCHRITT 87 ermittelt im Anschluß an Schritt 86 - oder Schritt 85, falls die Quellwortadresse für den Anzeigepuffer mit der zuvor ermittelten Quellwortadresse identisch ist - die Steuerlogik anhand der horizontalen Länge des Bild-Rechtecks (d.h. der Größe in horizontaler Richtung), ob für die aktuelle Bildelementzeile weitere Anzeigepuffer-Adreßberechnungen durchgeführt werden müssen. Dazu wird in der Steuerlogik ein Zähler mit der Anzahl der Bildelemente verwaltet, die in der aktuellen Zeile verarbeitet wurden.IN STEP 87, following step 86 - or step 85 if the source word address for the display buffer is identical to the previously determined source word address - the control logic uses the horizontal length of the image rectangle (i.e. the size in the horizontal direction) to determine whether further display buffer address calculations must be carried out for the current line of image elements. For this purpose, the control logic manages a counter with the number of image elements that were processed in the current line.
Müssen weitere Adressen berechnet werden, setzt die Steuerlogik den X-Quellzähler herab, da im Steuerspeicher "x absteigend" gespeichert wurde. Anschließend kehrt die Steuerlogik zu Schritt 82 zurück.If further addresses need to be calculated, the control logic decrements the X source counter because "x descending" has been stored in the control memory. The control logic then returns to step 82.
Sind in der aktuellen Zeile des Bildes keine weiteren Bildelemente vorhanden, geht die Logik zu Schritt 88 über.If there are no more image elements in the current row of the image, the logic goes to step 88.
IN SCHRITT 88 ermittelt die Steuerlogik anhand der vertikalen Länge des Bild-Rechtecks (d.h. der Größe in vertikaler Richtung), ob für das Bild weitere Zeilen verarbeitet werden müssen. Dazu wird in der Steuerlogik ein Zähler mit der Anzahl der Zeilen verwaltet, die für das aktuelle Bild verarbeitet wurden.IN STEP 88, the control logic uses the vertical length of the image rectangle (i.e. the size in the vertical direction) to determine whether additional lines need to be processed for the image. To do this, the control logic maintains a counter with the number of lines that have been processed for the current image.
Müssen weitere Zeilen verarbeitet werden, setzt die Steuerlogik den Y-Quellzähler herab, da im Steuerspeicher "y absteigend" gespeichert wurde. Anschließend kehrt die Steuerlogik zu Schritt 81 zurück und veranlaßt, daß der Positionswert a+5 für die X- Ordinate aus dem X-Quellpositionsregister in den X-Quellpositionszähler geladen wird.If further lines need to be processed, the control logic decrements the Y source counter because "y descending" has been stored in the control memory. The control logic then returns to step 81 and causes the position value a+5 for the X ordinate to be loaded from the X source position register into the X source position counter.
IN SCHRITT 89 übergibt die Steuerlogik die Steuerung an die Schreibblock-Logik, da sich im Anzeigepuffer keine weiteren Datenbytes mehr befinden, die sich auf Bildelemente an der Quellposition beziehen. Wenn die Steuerung von der Schreibblock-Logik zurückgegeben wird, ist das Kopieren des Bildes abgeschlossen, und die Steuerlogik beendet ihre Operation.IN STEP 89, the control logic passes control to the write block logic because there are no more bytes of data in the display buffer that refer to pixels at the source location. When control is lost from the write block logic is returned, the image copying is complete and the control logic ends its operation.
IN SCHRITT 90 wird am Anfang eines Schreibblocks die Steuerung entweder - beim ersten Eingang eines Schreibblocks bei der Verarbeitung eines Bildes - an Schritt 91 übergeben, oder anderenfalls an Schritt 95.IN STEP 90, at the beginning of a write block, control is passed either to step 91 when a write block is first received when processing an image, or otherwise to step 95.
IN SCHRITT 91 wird der Bildschirmpositionswert d für die Y- Ordinate des rechten unteren Bildteils an der Zielposition aus dem Y-Zielregister 52 in den Y-Zielzähler 60 geladen.IN STEP 91, the screen position value d for the Y ordinate of the lower right part of the image at the target position is loaded from the Y target register 52 into the Y target counter 60.
IN SCHRITT 92 wird der Bildschirmpositionswert c+5 für die X- Ordinate des rechten unteren Bildteils an der Zielposition aus dem X-Zielregister 54 in den X-Zielzähler 62 geladen.IN STEP 92, the screen position value c+5 for the X-ordinate of the lower right part of the image at the target position is loaded from the X-target register 54 into the X-target counter 62.
IN SCHRITT 93 prüft die Steuerlogik, ob sich im FIFO-Puffer ein weiteres Wort befindet, das Bytes enthält, die in eine Zielwortadresse im Anzeigepuffer geschrieben werden müssen. Dazu wird die Steuerausgabe der Adressierungslogik des FIFO-Puffers untersucht.IN STEP 93, the control logic checks whether there is another word in the FIFO buffer that contains bytes that must be written to a target word address in the display buffer. To do this, the control output of the FIFO buffer addressing logic is examined.
IN SCHRITT 94 (der FIFO-Puffer enthält keine weiteren Wörter, die ausgelesen werden müssen) wird die Steuerung entweder an Schritt 83 oder 89 der Block-Lese-Logik zurückgegeben, von dem aus die Steuerung an die Block-Schreib-Logik übergeben wurde.IN STEP 94 (the FIFO buffer contains no more words to be read) control is returned to either step 83 or 89 of the block read logic, from which control was passed to the block write logic.
IN SCHRITT 95 (der FIFO-Puffer enthält weitere Wörter, die in den Anzeigepuffer geschrieben werden müssen) veranlaßt die Steuerlogik das Rechenwerk dazu, die Adresse des Wortes im Anzeigepuffer zu lesen, das das Datenbyte für das Bildelement enthält, das auf dem Bildschirm an der Position angezeigt werden soll, die durch die derzeit im Y- und im X-Zielzähler gespeicherten Werte vorgegeben ist. Wie die eigentliche Berechnung durchgeführt wird, hängt von der Organisation des Anzeigepuffers, der Anzahl der Bildelemente pro Wort usw. ab.IN STEP 95 (the FIFO buffer contains more words that must be written to the display buffer), the control logic causes the arithmetic logic unit to read the address of the word in the display buffer that contains the data byte for the pixel to be displayed on the screen at the position specified by the values currently stored in the Y and X destination counters. How the actual calculation is performed depends on the organization of the display buffer, the number of pixels per word, etc.
IN SCHRITT 96 ermittelt die Steuerlogik, ob es sich bei der gerade berechneten Adresse um eine neue Adresse im Anzeigepuffer handelt. Ist die gerade berechnete Adresse nicht neu, wird die Steuerung an Schritt 98 übergeben.IN STEP 96, the control logic determines whether the address just calculated is a new address in the display buffer. If the address just calculated is not new, control is passed to step 98.
IN SCHRITT 97 (die gerade berechnete Adresse ist neu) veranlaßt die Steuerlogik, daß das nächste Wort aus dem FIFO-Puffer in das vom Rechenwerk vorgegebene Wort im Anzeigepuf fer geschrieben wird. In der Praxis werden nur Bytes in dem Wort in den Anzeigepuf fer geschrieben, die Bestandteil des Bildes sind. Die Steuerlogik aktiviert im Zielwort nur die Positionen für Bytes, die sich auf Bildelemente beziehen, die an die Anzeigepufferadresse geschrieben werden sollen, auf die das Rechenwerk verweist. Damit wird verhindert, daß Bytes im Anzeigepuffer, die nicht Bestandteil des Bildes sind, beschädigt werden. Die Steuerlogik hält durch Zählen der Bytes im FIFO-Puffer fest, welche Bytes geschrieben werden müssen.IN STEP 97 (the address just calculated is new), the control logic causes the next word from the FIFO buffer to be written to the word in the display buffer specified by the arithmetic unit. In practice, only bytes in the word are written to the display buffer that are part of the image. The control logic activates only the positions in the target word for bytes that refer to image elements that are to be written to the display buffer address that the arithmetic unit is pointing to. This prevents bytes in the display buffer that are not part of the image from being damaged. The control logic keeps track of which bytes need to be written by counting the bytes in the FIFO buffer.
IN SCHRITT 98, der im Anschluß an Schritt 97 - oder Schritt 96, wenn die Zielwortadresse im Anzeigepuf fer mit der zuletzt berechneten Zielwortadresse identisch war - ausgeführt wird, bestimmt die Steuerlogik dann anhand der horizontalen Länge des Bild-Rechtecks (d.h. der Größe in horizontaler Richtung), ob für die aktuelle Bildelementzeile weitere Berechnungen von Zielwörtern im Anzeigepuffer durchgeführt werden müssen. Dazu wird in der Steuerlogik ein Zähler verwaltet, der die Anzahl der Bildelemente festhält, die in der aktuellen Zeile verarbeitet wurden.IN STEP 98, which is carried out after step 97 - or step 96 if the target word address in the display buffer was identical to the last calculated target word address - the control logic then uses the horizontal length of the image rectangle (i.e. the size in the horizontal direction) to determine whether further calculations of target words in the display buffer must be carried out for the current line of picture elements. For this purpose, a counter is managed in the control logic which records the number of picture elements that have been processed in the current line.
Müssen weitere Berechnungen durchgeführt werden, setzt die Steuerlogik den X-Zielzähler herab, da im Steuerspeicher "x absteigend" gespeichert wurde. Anschließend kehrt die Steuerlogik zu Schritt 93 zurück.If further calculations need to be performed, the control logic decrements the X target counter because "x descending" has been stored in the control memory. The control logic then returns to step 93.
Enthält die aktuelle Bildzeile keine weiteren Bildelemente, wird die Operation bei Schritt 99 fortgesetzt.If the current image line contains no further image elements, the operation continues at step 99.
IN SCHRITT 99 setzt die Steuerlogik den Y-Zielzähler herab, da im Steuerspeicher "y absteigend" gespeichert wurde. Anschließend kehrt die Steuerlogik zu Schritt 92 zurück und veranlaßt, daß der X-Positionswert c+5 für die X-Ordinate aus dem X-Zielpositionsregister in den X-Zielpositionszähler geladen wird. Dabei ist es nicht notwendig zu bestimmen, ob für das Bild weitere Zeilen verarbeitet werden müssen, da dies erst möglich ist, wenn sämtliche Bytes aus dem FIFO-Puffer ausgelesen wurden.IN STEP 99, the control logic decrements the Y target counter because "y descending" has been stored in the control store. The control logic then returns to step 92 and causes the X position value c+5 for the X ordinate to be loaded from the X target position register into the X target position counter. It is not necessary to determine whether additional lines need to be processed for the image because this cannot be done until all bytes have been read from the FIFO buffer.
Hier wurde zwar ein bestimmtes Ausführungsbeispiel der Erfindung gemäß den Ansprüchen beschrieben, doch sind im Rahmen der Erfindung gemäß den Ansprüchen zahlreiche Modifikationen und alternative Strukturen möglich.Although a specific embodiment of the invention as claimed has been described herein, numerous modifications and alternative structures are possible within the scope of the invention as claimed.
So könnte z.B. die Anordnung von Schieberegister und FIFO-Puffer vertauscht werden, so daß die Datenwörter, die sich auf das Bild an dessen Quellposition beziehen, direkt in den FIFO-Puffer eingelesen werden und anschließend der spezielle Adressierungsmechanismus des FIFO-Puffers dazu eingesetzt werden, Datenwörter zu kompilieren, die an das Schieberegister übergeben werden können, wo sie so gedreht werden, daß sie Zielwörter bilden, und dann im Anzeigepuffer an den Zieladressen gespeichert werden. Bei einer derartigen Ausführung des Anzeigesystems ist der FIFO- Puffer mit dem Datenausgang des Anzeigepuffers verbunden und übernimmt von dort die aus dem Anzeigepuffer ausgelesenen Quellwörter. Der Eingang des Schieberegisters ist mit dem Ausgang des FIFO-Puffers verbunden, so daß das Schieberegister Datenwörter vom FIFO-Puffer erhält, die um eine wählbare ganze Zahl von Bytes gedreht werden müssen. Der Ausgang des Schieberegisters ist mit dem Dateneingang des Anzeigepuffers verbunden. Die Steuerlogik übermittelt Steuersignale an das Schieberegister und an die Adressierungslogik des FIFO-Puffers, so daß alle Bytes des Datenwortes, die im Schieberegister über die Wortgrenze hinaus gedreht werden müssen, von einer entsprechenden Byteposition in einem Register neben dem Register gelesen werden, aus dem Bytes in diesem Datenwort gelesen werden, die im Schieberegister nicht über die Wortgrenze hinaus gedreht werden müssen. Auf diese Weise wird die Gruppe von Zielwörtern, in denen die Datenbytes, die sich auf Bildelemente beziehen, in Zielreihenfolge angeordnet sind, am Ausgang des Schieberegisters durch das gedrehte Wort gebildet.For example, the arrangement of the shift register and the FIFO buffer could be reversed so that the data words relating to the image at its source position are read directly into the FIFO buffer and then the special addressing mechanism of the FIFO buffer is used to compile data words which can be passed to the shift register where they are rotated to form target words and then stored in the display buffer at the target addresses. In such an embodiment of the display system, the FIFO buffer is connected to the data output of the display buffer and receives the source words read from the display buffer. The input of the shift register is connected to the output of the FIFO buffer so that the shift register receives data words from the FIFO buffer which must be rotated by a selectable integer number of bytes. The output of the shift register is connected to the data input of the display buffer. The control logic transmits control signals to the shift register and to the addressing logic of the FIFO buffer so that all bytes of the data word that need to be rotated beyond the word boundary in the shift register are read from a corresponding byte position in a register adjacent to the register from which bytes in that data word that do not need to be rotated beyond the word boundary in the shift register are read. In this way, the group of target words in which the data bytes relating to picture elements are arranged in target order is formed at the output of the shift register by the rotated word.
In dem hier beschriebenen Ausführungsbeispiel ist der Bereich, der auf dem Bildschirm angezeigt wird, rechteckig. Ggf. könnte der Adapter allerdings auch so ausgelegt sein, daß auch nicht rechteckige Bilder kopiert werden können; dazu müßte der Adapter mit einer Maskierungslogik versehen sein. Bei der Datenstation vvon Fig. 1 ließe sich dies - einfach dargestellt - dadurch erreichen, daß Maskengrenzinformationen aus dem Datenstations- RAM in den nicht sichtbaren Teil des Anzeigepuffers übertragen werden und anschließend Bilddaten für einen rechteckigen Bereich wie vorstehend beschrieben kopiert werden. In diesem Fall würde allerdings die Steuerlogik veranlassen, daß Bildschirmpositionen außerhalb der Maskengrenze nicht berücksichtigt werden, so daß nur der Teil des rechteckigen Bildes, der innerhalb der Grenzen liegt, verschoben würde.In the embodiment described here, the area displayed on the screen is rectangular. However, the adapter could also be designed so that non-rectangular images can also be copied; for this purpose, the adapter would have to be provided with masking logic. In the case of the data station of Fig. 1, this could be achieved - simply shown - by transferring mask boundary information from the data station RAM to the non-visible part of the display buffer and then copying image data for a rectangular area as described above. In this case, however, the control logic would cause screen positions outside the mask boundary to be ignored, so that only the part of the rectangular image that lies within the boundaries would be shifted.
Statt nur Datenbytes in den Anzeigepuffer zu schreiben, wäre es alternativ ggf. möglich, das Byte, das sich auf ein Bildelement bezieht, mit dem Byte zu kombinieren, das bereits an der Zielposition gespeichert ist. Dazu wäre ein weiteres Rechenwerk erforderlich, damit zwischen Quell- und Zielposition arithmetische und logische Operationen ausgeführt werden können. In einer derartigen Logik könnte effektiv jedes Bildelement separat verarbeitet werden, wobei jedoch in der Praxis auch mehrere Bildelemente parallel verarbeitet werden könnten. Bei jedem Bildelement würde dann etwa folgende Operation ausgeführt:Instead of just writing data bytes to the display buffer, it might be possible to combine the byte that refers to a picture element with the byte that is already stored at the destination position. This would require an additional arithmetic unit to enable arithmetic and logical operations to be carried out between the source and destination positions. In such a logic, each picture element could effectively be processed separately, although in practice several picture elements could also be processed in parallel. The following operation would then be carried out on each picture element:
Ziel := Quelle (Operation) ZielTarget := Source (Operation) Target
wobei es sich bei der Operation um eine Exklusiv-ODER- Verknüpfung, eine logische UND-Verknüpfung usw. handeln könnte.where the operation could be an exclusive OR operation, a logical AND operation, etc.
Außerdem könnten durch eine Aufteilungslogik Bereiche des Anzeigepuffers gegen Beschreiben (jedoch nicht gegen Kopieren) geschützt werden, z.B. Bereiche außerhalb eines Fensters auf dem Bildschirm oder Bereiche im nicht sichtbaren Speicher.In addition, partitioning logic could be used to protect areas of the display buffer against writing (but not against copying), e.g. areas outside a window on the screen or areas in non-visible memory.
Claims (4)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB8707851A GB2203317B (en) | 1987-04-02 | 1987-04-02 | Display system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3885926D1 DE3885926D1 (en) | 1994-01-13 |
DE3885926T2 true DE3885926T2 (en) | 1994-05-19 |
Family
ID=10615089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19883885926 Expired - Fee Related DE3885926T2 (en) | 1987-04-02 | 1988-03-17 | Display system. |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0284905B1 (en) |
JP (1) | JPS63251864A (en) |
CA (1) | CA1294380C (en) |
DE (1) | DE3885926T2 (en) |
GB (1) | GB2203317B (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0617401A3 (en) * | 1989-07-28 | 1995-04-26 | Hewlett Packard Co | Methods and apparatus for accelerating windows in graphics systems. |
EP0679313A1 (en) * | 1993-11-16 | 1995-11-02 | International Business Machines Corporation | Method and apparatus for alignment of images for template elimination |
DE4405330A1 (en) * | 1994-02-21 | 1995-08-24 | Vobis Microcomputer Ag | Method for scrolling multiple raster lines in a window of a graphics mode operated screen of a personal computer |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2123656B (en) * | 1982-06-09 | 1987-02-18 | Tatsumi Denshi Kogyo Kk | A method and an apparatus for displaying a unified picture on crt screens of multiple displaying devices |
JPH06100911B2 (en) * | 1983-12-26 | 1994-12-12 | 株式会社日立製作所 | Image data processing apparatus and method |
EP0158314B1 (en) * | 1984-04-10 | 1993-07-21 | Ascii Corporation | Video display control system |
JPS60245062A (en) * | 1984-05-18 | 1985-12-04 | Matsushita Electric Ind Co Ltd | Data transfer device |
JPS61124984A (en) * | 1984-11-22 | 1986-06-12 | 松下電器産業株式会社 | Data transfer apparatus |
EP0192139A3 (en) * | 1985-02-19 | 1990-04-25 | Tektronix, Inc. | Frame buffer memory controller |
-
1987
- 1987-04-02 GB GB8707851A patent/GB2203317B/en not_active Expired - Fee Related
-
1988
- 1988-03-01 JP JP4598888A patent/JPS63251864A/en active Pending
- 1988-03-17 DE DE19883885926 patent/DE3885926T2/en not_active Expired - Fee Related
- 1988-03-17 EP EP19880104228 patent/EP0284905B1/en not_active Expired - Lifetime
- 1988-03-31 CA CA000563038A patent/CA1294380C/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0284905B1 (en) | 1993-12-01 |
EP0284905A2 (en) | 1988-10-05 |
GB2203317B (en) | 1991-04-03 |
GB8707851D0 (en) | 1987-05-07 |
GB2203317A (en) | 1988-10-12 |
CA1294380C (en) | 1992-01-14 |
EP0284905A3 (en) | 1990-09-19 |
JPS63251864A (en) | 1988-10-19 |
DE3885926D1 (en) | 1994-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3485765T2 (en) | DISPLAY SYSTEM FOR COMPOSED IMAGES. | |
DE3687358T2 (en) | IMAGE BUFFER WITH VARIABLE ACCESS. | |
DE3587209T2 (en) | Data display system with the possibility of mixing display sources and using a display device of the storage type. | |
DE69516881T2 (en) | STORAGE DEVICE AND DATA PROCESSING SYSTEM WITH SUCH A STORAGE DEVICE | |
DE3853489T2 (en) | Graphic display system. | |
DE69122226T2 (en) | Method and device for arranging access to a VRAM for accelerated writing of vertical lines on a display | |
DE3687359T2 (en) | GRID BUFFER STORAGE. | |
DE68920147T2 (en) | Display system. | |
DE69018519T2 (en) | Computer controlled image overlay. | |
DE69721184T2 (en) | HARDWARE FOR ROTATING AN IMAGE | |
DE3851285T2 (en) | Display control system. | |
DE2827105C3 (en) | Device for continuously changing the size of the objects displayed on a raster screen | |
DE3346816A1 (en) | VIEW DISPLAY ARRANGEMENT FOR VARIOUS CHARACTER INFORMATION | |
DE3852185T2 (en) | Image storage for raster video display. | |
DE3636394C2 (en) | Storage organization and procedure | |
DE69016697T2 (en) | Video random access memory. | |
DE3889240T2 (en) | Counter with changeable circuit for addressing in graphic display systems. | |
EP0132456A1 (en) | Method and device to check the sentence quality of printed matter, in particular for newspapers | |
DE2652900C2 (en) | Control circuit for image repetition for a raster data display device | |
DE69432512T2 (en) | GRID BUFFER SYSTEM DESIGNED FOR WINDOW ENVIRONMENTAL OPERATIONS | |
DE69029065T2 (en) | Logical circuitry and method for reordering for a graphic video display memory | |
DE3885133T2 (en) | Display device with a font memory for symbols. | |
DE68925569T2 (en) | Dynamic video RAM memory | |
DE3889557T2 (en) | Vector generator for raster display. | |
DE3685857T2 (en) | PLASMA DISPLAY DISPLAY SYSTEMS. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |