CA1162319A - Video processor and controller - Google Patents

Video processor and controller

Info

Publication number
CA1162319A
CA1162319A CA000380700A CA380700A CA1162319A CA 1162319 A CA1162319 A CA 1162319A CA 000380700 A CA000380700 A CA 000380700A CA 380700 A CA380700 A CA 380700A CA 1162319 A CA1162319 A CA 1162319A
Authority
CA
Canada
Prior art keywords
data
row
memory
video
address
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
Application number
CA000380700A
Other languages
French (fr)
Inventor
John F. Tweedy, Jr.
Morton B. Herman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Standard Microsystems LLC
Original Assignee
Standard Microsystems LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Standard Microsystems LLC filed Critical Standard Microsystems LLC
Application granted granted Critical
Publication of CA1162319A publication Critical patent/CA1162319A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/222Control of the character-code memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/30Control of display attribute
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • G09G5/343Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling for systems having a character code-mapped display memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control 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)
  • Multimedia (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

F.092 John F. Tweedy, Jr.
Morton B. Herman VIDEO PROCESSOR
AND CONTROLLER
ABSTRACT

A microprocessor based CRT video display system includes a microprocessor, a memory and a video processor and controller. The video processor and controller incorporates data and address bus structure in which a plurality of programmable registers are connected to both the data bus and the address bus. The programmable registers arranged along the data and address buses permit efficient retrieval of infor-mation from memory for display and also permit the video display system to provide a number of advantageous system features.

Description

1 162319 F.0~2 VIDEO PROCESSOR AND CONTROLLER

Field Of The Invention This invention relates to video display terminals and more particularly to a video processor and controller for use with microprocessor based CRT video display systems.

Background Of The Invention Video terminals of various configurations are well known and widely used. Since the introduction of the micro-processor video terminals have become "intelligent"; that is video terminals no longer rely entirely on a remote processor to provide data entry, data handling and terminal features such as underline, blinking underline, reverse video, split screen, etc Early video terminal systems required at least 100 Medium Scale Integration (MSI) and Small Scale Integration (SSI) devices to implement a relatively small number of terminal features. An example of one early terminal is the Lear-Seigler ~ ADM-3. Second generation video terminal display systems began using a microprocessor in conjunction with Large Scale Inte-gration ~LSI) video controllers which provided many necessary functions, such as sync timing and memory addressing, previously done in MSI and SSI. An example of such a second generation video controller is the SMC CRT 5027 provided by Standard Microsystems Corporation of Hauppauge, New ~ork. The use of a microprocessor in conjunction with an LSI video controller also provided a means whereby "intelligent" features such as character and line editing and other word processing features could be J 1 6 2 3~1 9 F,092 inc:orporated into the display system. `Second generation display systems however continue to experience many unsolved problems. These problems include:

Memorv Contention .
The microprocessor and the video controller in a video display system must both access the same system memory which is used to store data prior to display. The video controller must access memory constantly in order to refresh the screen; the microprocessor must access memory in order to update or modify memory locations for displaying information on the screen, At times both the microprocessor and the video controller simultaneously request access to the memory, The solution to the memory contention problem must assure screen display integrity and continuity while at the same time permit rapid access to memory. Previous video controllers have been inefficient in their approach to memory contention by permitting microprocessor updates only during vertical or horizontal retrace, which restricts the rate of data ,entry to the system, or by requiring a large amount of external circuitry to achieve reasonable microprocessor throughput. Prior video controllers also have few memory contention schemes available, thus limiting system design flexibility.

Ease and Flexibilit of Hard~Jare and Software Implementation:
Y
Previous video controllers have primarily used the sequential method of memory access for refreshing the display.
This requires that all data to be displayed reside in consecutive memory locations. ~ith this method, in order to do a screen edit operation, such as line delete, an average of 1/2 the entire s~reen data must be moved in memory. This burdens the micro-processor and effectively reduces throughput.

F.092 In addition it is sometimes desirable to display rows of status data, which inform the operator of special status conditions in the system, while simultaneously rolling non-status rows off the screen as new data is being put into memory (e.g. from a communications buffer). Previous video controllers have required difficult and time consuming software and/or additional hardware to perform these fùnctions. -.
Vertical Split Screen:
In previous designs it has been difficult to o implement a vertical split screen, that is, a display in which there may be two or more independent columns. One example of this application is a dual language CP.T screen where the left hand side would indicate one language, such as English and the right hand side might indicate another language, per-haps French. In these applications it is desirable to be able to independently modify each side of the s,creen. Up to now this had been difficult since, for present video controllers, the entire screen must be manipulated in order to change one portion of the screen.

-~ a~ Smooth Scroll:
Present contro~lers do not effectively support smooth scroll operations. Smooth scroll is the ability to scroll (move) the display up or down by as little as one raster scan line per frame. Certain applications also require the ability to smooth scroll a partial section of the display page. In order to implement these smooth scroll features with present video con-trollers, much additional hardware is required thereby in-creasing the cost o~ the total system.

1 162319 F.092 Attribute Handling:
At the present time character attributes are basically of two types, either embedded or invisible.
"Ernbedded attributes" is a method of generating attributes by inserting (embedding) attribute characters within the display character stream. A display space on the screen is taken up for every change of attribute and the new attribute is effective until the next change of attribute occurs. With embedded attributes it is impossible to handle attributes such as color, blinking, reverse video, or underline on a character to character basis. Invisible attributes, do not take up display space but instead the bit width of each character in memory is widened to accommodate a bit for each independent attribute. Thus, in order to accommodate three attributes, the character memory itself must be widened by three bits. This creates extensive microprocessor overhead especially when using a standard eight bit microprocessor system.

Double Height/Double Width ROWS:
Present video controllers do not support double width and double height character rows or smooth scrolling of these type rows. Extensive and costly hardware and software is ~required to implement these features.
It is therefore an object of the present invention to provide a video controller capable of solving the problems present in prior art video controllers without the need forincreased complexity in both hardware and software.
It is a further object of the present invention to pro-vide a video display system in which terminal features, not avail-able in prior art systems, can be readily implemented.

~! 3 1 1623~9 F.092 Summary Of The Invention In accordance with the invention a CRT video display system includes a microprocessor, a memory a video processor and controller, a data bus coupling the video processor and controller to the microprocessor and memory and an address bus coupling the video processor and controller to the microprocessor and memory.
It is a feature of the invention that the video processor and controller comprises a plurality of programmable -O storage registers, a first portion of the register plurality being connected to the data bus and a second portion of the register pluraltiy being connected both to the data bus and the address bus, It is another feature of the invention that each of the storage registers is programmable by the microprocessor to store selected address and control characters.
It is a further feature of the invention that the video processor and controller accesses the storage registers via the address bus and the data bus and utilizes the characters 0 stored therein to retrieve selected information from memory for display on the CRT in the video display system.
In accordance with another aspect of the invention the video display system includes a character generator for displaying characters on the CRT and a data buffer connected between the memory and the character generator.
It is a still further feature of the invention that the video processor and controller retrieves information fr,om memory, stores the information in the data buffer and applies this information to the character generator without requiring O further memory acces,s by the video processor and controller.

~?
1 16231~
F.092 The foresoing and oLher objects and features of this invention will be more fully unddrstood from the following desc~iption of an illustrative embodiment thereof in conjunction with the accompanying drawings.

Brief Descrit~ion Of the Drawings .

Fig. 1 illustrates a bloc]~ diasram of a microprocessor based CRT video display system;

Fig. 2 illustrates a block diagram of the video processor and controller of the instant invention;

1~ Fig. 3 illustrates a sequential memory addressing scheme in accordance witn the ins~ant invention;

~ igs. 4 and 5 illustrate row table addressing schemes in accordance with the instant invention;

Figs. 6 and 7 illustrate attribute assembly storage in accordance with the instant invention; and Fig. 8 illustrates a further emboZiment of .he video processor and controller of the instant invention.

Detailed Descri~tion Refer to Fig. 1, ~herein there is shown a bloc~ diagram of a microprocessor based C~T video display system ir. accordance with the instant invention. Information to be displaved on a CRT
(not shown) is stored in Video Memory 10 which is a commercially-available semiconductor Random Access Memory ( ~). The R~`~ can be accessed by microrpocessor 20 or by Video Processor and Con~roller (VPAC) 40. Information may be stored in memory 10 via a local '~.ey-board (not shown) or by a remote data source. Data flow into and out of ~ F.092 memory 10 is controlled by VPAC 40 via address bus 70 and data bus 60. Microprocessor 20 performs data control and management functions for the video terminal which are not part of the instant invention.
Data buffer 30 is an interface between memory 10 and character generator 50 and is controlled by VPAC. The data buffer performs a variety of functions as will be detailed hereinafter but basically functions to temporarily store data from the memory while simultaneously transmitting previously received data to the character generator. The data buffer allows information to be received from memory at a rate slower that the rate necessary to supply data to the character generator and the CRT.
The function of character generator 50 is to translate data stored in the video memory into characters for display on the CRT. This process is performed under the control of VPAC.
A CRT must ~e constantly re~reshed to produce a stable video presentation. Therefore the VPAC must continually address the video RAM and continually direct data from the RAM, to the data buffer and from there to the character generator to ensure screen refresh. Character generators are well known in the art and a typical character generator is the CRT 8002 provided by Standard Microsystems Corporation of Hauppauge, New York.
The heart of the system is the VPAC. This device provides all of the necessary timing signals, such as vertical sync, horizontal sync, and blanking necessary to control the CRT. In addition, the VPAC advantageously solves the problems inherent in prior art video controllers and provides sophisticated video features, each of which is considered below.

1 1~2319 F.092 Memory Contention The VP~C of the instant invention handles memory contention in several different ways. One of these is through use oL the external data buffer 30 shown in Fig. 1. ~t the first scan line of each new data row, VPAC 40 requests Direct ~5emory Access (D~) to microprocessor 20 via the D~A bus 80.
The microprocessor must grant this D~A request prior to the start of active video, usually within several microseconds. When the microprocessor grant occurs video addresses are presented to memory 10 by the VPAC during the first scan line of the data row.
As these addresses are presented to memory at the display character rate the characters read out from memory are outputted to data buffer 30 and simultaneously to character generator 50. At the end of the first scan line in the data row all the data has been written into the data buffer. The VPAC will then drop the Dr~A
request line to the microprocessor thereby permitting the micro-processor to access memory for other operations.
For the remaining N-l scan lines where N is the total number of scan lines per data row, the screen refresh data will be read out of the data buffer without additional access to memorv.
This permits unrestricted memory access for ~-l scan lines of the total N scan lines per data row. For a typical display with 12 scan lines per data row this means that the VPAC is accessing ~emory for only 8% of the total memory cycle time available, and the microprocessor has the remaining 92o of the memory cycle.
This yields high bus bandwidth utilization, high throughput for the microprocessor and low system loading by the VPAC.

` I 162319 F.092 This method of resolving memory contention is satisfactoxy for many applications. However, in certain system applications it is undesirable to lock out the microprocessor from memory for as long as one scan line (typically 50 to 60 microseconds).
This type of condition may occur in a situation where the micro-processor is servicing some high-speed perip~eral such as a floppy disk which may require access to memory for reading or writing data as often as one byte every 14 microseconds. In this situation, a second method of resolving memory contention is provided by the VPAC. This second method is accomplished by software programmins the VPAC with the microprocessor to operate ' with an external double row buffer (not shown). h double row buffer is substantially the same as buffer 30 but is capable of storing two rows of data. ~ith a double row buffer, the first data row is loaded into the buffer during the vertical retrace ~nterval then, while the first data row is being dis-played, the second data row is loaded into the other haif of the double row buffe~ This provides the VPAC with a total of N
' ' scan lines (N= # of scan lines per data row) in which to load the data row contents into the second half of the double row buffer. The VPAC may be programmed to a burst and delay DM~
mode such that the DMA request signal will request only M cycles where M is a programmable number and then go inactive for P
cycles where P is also a programmable number to allow some other device to take over the bus and memory during the P interval.
A typical e~ample of this ~ght ~e a DMA burst of 16 character cycles ,f,ollowed ~y a D~ delay of 8 cycles before the ne~t ~urst of 16 cycles" A system operating at a-500 nanosecond -F.092 character rate would then permit an external access from a device, such as a floppy disk, as often as once every 8 microseconds. Since D~IA cycles are occurring in bursts rather than continuously, loading the data row in the buffer will require more than one scan line, However sincè operation is now with a double row buffer, the VPAC has up to N scan lines to complete loading.
In addition to the single and double row data buffer contention resolution schemes described above, it is also ~0 possible to run the VPAC with no buffer at all. In this mode, VPAC presents its addresses to memory every scan line. However the microprocessor may intervene to read and write directly from memory and therefore a user must exercise caution when a buffer is not used. Although eliminating the buffer saves hardware, this method limits system throughput unless additional hardware is used, such as a multiple phase memory, or unless occasional screen flashing or loss of video is an acceptable mode of operation. Screen flashing or loss of video will occur since whenever the microprocessor accesses memory, at the same time ~o the VPAC wishes to access memory, a momentary screen refresh failure will occur if the microprocessor is given priority. One other method to limit screen refresh interruption when the no buffer configuration is used would be to restrict microprocessor access to memory (by using external hardware) to onl~ t~se times the VPAC is not accessing memory, that is, duri~g horizontal and vertical synchronization intervals. This method, however, also decreases throughput.

,, ~ .

1162319 F~092 Flexible Hardware and Software Addressing Schemes The VPAC provides the addresses to memory 10 which cause the display data to be read out from memory in order to refresh the screen. Several methods of memory addressing are implemented which provide a substantial amount of flèxibility in both hardware and software for the system designer. These methods include a sequential addressing mode and a row'address mode.
Fig. 2 illustrates the internal bus and register design of the VPAC. A plurality of user programmable registers 201,202, etc. are designed to store certain conirol and address information described hereinafter in more detail. Each register may ~e preset to,~particular state by the microprocessor when properly pro~rammed by the terminal user, The registers are advantageously arranged such that they are accessible from da,a bus 210 or address bus 206. T~aing and control for the-VPAC is represented by circuit 203 but as such circuitry is not part of the present invention further details are n provided. , '' Considering now the sequential video addressing mode~
a :le'ft Start Address register 20~ is programmed to contain the address in memory of the f:rst character of the first data row on the screen~ When operating in the sequential mode characters are read sequentially from memory starting wlth the character at the address proyided ;n register 205. If, for example, the display is an 80 character by 25 row display there will be 2,000 characters on the screen. If the address in register 205 is 1,000, the address of the last character in the last row will be 2,999;
that is, characters will take up successive locations in memory.

I 1623~9 F.092 Figure 3 illustrates se~uential memory addressing. The address in register 205 is applied to the memory via address bus 206 and in response thereto data words are retrieved from memory, applied to the character generator and displayed~
Register/counter 20~ serves to increment the address stored in register 205 each time data is received from memory to accomplish sequential retrieval from the consecutive memory locations.
Start Address register 20~, along with ~ second register 213,called the Auxiliary Address Register I, plus a third register 212 called the Sequential Break Register I, are used so that ~isplay memory addressing may be offset or "rolled" to permit new data being received into the memory, such as from a communications line, to be entered at the bottom of the screen and old data to be rolled o~f at the top of the screen. To accomplish this, the Auxiliary Address Registér I is set to the address of the beginning of memory, that is to the beginning of screen memory, where incoming information is being stored, and re~ister 205 is set to the address of the beginning of the line which is to be displayed at the top of the display page. Sequential Break Register I causes address control to be switched from the register 205 to Auxiliary Address Register I at the line designated in Sequential Break Register I.
Thus on a 24 row display, to roll the display by one line, Sequential Break Register I should be set tc 23 and register 205 should be set to the address that normally corresponds to the second displayed data row.

I 18231g F.092 In this mode, when address control resides in register 205 r the address is incremented by register/counter 209 as previously described to accomplish sequential access to the memory. When address control is transferred to Auxiliary Address Register I, the address stored in this memory is incremented by register/counter 211 in the same manner that register 20~
increments the memory address. Addresses are transferred to the memory via address bus 206 and control is returned to register 205 when a new display page is started.

One further enhancement to the sequential mode of operation is possible. In addition to the rolling operation, described above, a status row may be held constant at the bottom of the screen or at the top of t'ne screen while the other rows are being rolled. This may be accomplished by the use of a register 202 called the Auxiliary Address Register II, and a register 214 called the Sequential Break Register II. By setting the Sequential Break Register II to the last data row number (for example, 24 in a 25 data row display) and by setting Auxiliary Address Resister II to the location in memory which corresponds to the data to be displayed in the status row, address control will pe transferred to Auxiliary Address Register II when the last data row is to be displayed. This will cause the status row to be read out and inserted into the last data row position on the screen. The se-quential mode of operation of VPAC as described above, provides the user of low-to-medium-end systems with an enhanced method of implementing sequential data display, yet a method which is relatively easy to implement in both software and hardware.

In the row table driven video addressing mode, each data row for video display is designated by its own address. This provides the user with much greater flexibility than sequential F.092 addressing since the rows of characters are linked by pointers instead of residing in se~uential memory locations, Operations such as data row insertion, deletion, and repli-cation are easily accomplished by manipulating pointers instead of entire lines. The row table can be stored in memory in a contiguous format or in linked lists. These two formats are described below and shown in Figures 4 and 5, respectively.
In the row table driven mode each data row on the screen has its own starting address and a row table exists in memory which contains the starting address for each data row. For a screen with 24 data rows, for example, the row table will consist of 24, 14-bit addresses each pointing to the first character position of its respective data row. In the contiguous row table format shown in Fig. 4, row table addresses are stored in contiguous, that is, sequential memory locations and the user programs Start Address Register 205 with the starting address of the contiguous row table.
When the VPAC is ready to start displaying a new data row the address in register 20~ is applied to the memory via address bus 206 and the first half of the first row address tAddress A
in Fig. 4) is retrieved and stored in register 201 via data bus 210. The second half of the first row address (Address B in Fig.
3) is retrieved next and also stored in register 201 via data bus 210. The complete first row ad~lress is then applied to the video memory via video address register/counter 211 and address bus 20~ and in response thereto the first character of the first data row (See Fig. 4) is retrieved from memory and displayed.
~egister/counter 211 increments this address to sequentially retrieve from memory all of the 80 characters in the first data 1 16231~ F.09~

row. When the first data row has been displayed, the starting address for the second data row is retrieved, stored in register 201 and the process just described is repeated to display the second data row, The remaining data rows on the screen are displayed in the same manner, Many advantages result from using the row table driven mode of operation. For example in order to erase a data row all the software designer has to do is change the row table pointer in memory for that particular data row and make it point to a data row in memory that has been cleared, To effect a clear of the entire screen a single data row in memory may be pointed to by each row address in the row table, Or, for example, a new line may be inserted on the screen and the bottom dropped off the screen by moving all the row pointers following the row to be inserted down one row in memory and inserting the new row pointer in the space oPened up in the row table. Thus, with this mode of operation, to clear the screen it is not necessary to move an entire scre,en of data -~ but only manipulate the row table itself, In the linked list row table format shown in Fig, 5, Start Address Register 205 defines the memory address which starts the ; entire addressing scheme in operation, At the beginning of the first data row the first two bytes read by the VPAC define the address of the next data row, This address is stored internally. The third sequential byte read is the first displayable character for the present data row, The remainder of the data row is read sequentially, Each succeeding data row contains the starting address of the next data row. In many types of system 1 16231g F.092 organization, this method of memory addressing provides for simple software implementation, since, for example, to insert a data row, only the row table addresses for the row above the row to be inserted and the row to be inserted itself must be manipulated. No other row table addresses have to be changed since they are already associated with data to be displayed.
For both the contiguous row table and the linked list row table formats, a further enhancement is possible and that is by using Sequential Brea~ Register I and Auxiliary Address Register I a status row or rows may be defined at the top or bottom of the screen. For example, on a 25 data row display by putting Sequential Break Register I at 21, address control will be switched to Auxiliary Address Register I on the twenty-second data row. A11 data rows then following the twenty-first data row will be addressed sequentially by means of Auxiliary Address Register I. This enhancement permits fast software context switching and display. It is especially useful when data to a display or terminal from a high speed high.priority source must be immediately displayed on the screen, Vertical S lit Screen Operation P
Vertical split screen operation segments the screen into several separat~ vertical columns of information. The simplest of these is a single split down the middle of the screen with the same number of characters on either side of the screen. Split screen operation could be performed entirely with software by manipulating all the contents of the screen whenever an update to either section of the split screen was desired. However, 1 162319 F,092 in order to accomplish split screen efficiently with a minimum of software complexity and with maximum system throughput a hardware solution is essential. A simple two part split screen, useful for such operations as side by side language translation and newspaper columns, may be defined by a Split Screen Boundary Register 200, by Right Start Address Register ~07 and Left Start Address Register 205 shown in Figure 2. In operation, the Split Screen Boundary Register defines the character location at which the split is to occur.
For example, on an 80 character wide screen the characters are numbered from 0 to 79. If the Split Screen Boundary Register is set to ~0, transfer of control from ~ef~ Start Address Register 205 to P~ t Start Address Register 207 will occur at the 40th character, This permits separate data operations to be performed on the left hand side of the screen and the right hand side of the screen without changing the data on the entire screen. By the inclusion of sufficient left and right auxiliary address registers and left and right break registers the split screen operations can be treated as two separate data entities that is, as two separate screens. Register/counter 20q functions in the same manner as register/counter 20~ in incrementing the address stored in register 207 when control has been passed to the Right Start Address Register.
The nu~ber of vertically split screens or columns which may be implemented is limited only by the number of registers in the implementation. For example, four vertical splits can be defined by including three split screen boundary registers.
As each new data row boundary is encountered transfer of address control is transferred from one Start Address Register to another Start Address Register. There must of course be Auxiliary Address Registers associated with each new split screen section.

; ? `~
1 ~62319 - F,092 Smooth Scroll Operation .
In order to provide good human interface with a CRT system it is often desirable to have previously displayed data roll smoothly off the top of the screen while new data smoothly comes onto the bottom of the screen. This is in contrast to a "jump'` scroll method wherè~y the entire line enters instantaneously from the bottom of the screen and an entire line is jumped off the top of the screen~ Smooth scroll requires that data be rolled off the screen on a scan line by scan line basis, The rate at which data is rolled off the screen, and its relative smoothness, can be adjusted b~ varying the number of scan lines per frame that are rolled off the screen. In addition to smooth scroll operation over the entire screen the area of smooth scroll may be limited to a particular location on the screen, That is, a partial page smooth scroll may be defined such that the rows above and below the smooth scroll area remain constant while the data rows in the smooth scroll area continue to scroll, Two user programmable registers permit the user to define the start data row and the end data row for the smooth scroll operation as shown in Figure 2. Data Row Start Register 216 is used to define the start data rows while Sequential Break Register II is used to define the end data row. Prosram intervention is required each frame. The ~PAC sets an interrupt during the vertical retrace interval which requests service from the microprocessor, The microprocessor in response loads -è-~? I 162319 ` `

- F.092 Smooth Scroll Offset Register 204 with the scan line number indicating the initial scan line affect of the first data row of the smooth scroll area.
A smooth scroll rate of one scan line per frame may be implemented by programming register 204 with an offset of zero in the first frame, one in the second frame, two in the third frame and so forth until N scan lines have been offset where N is the number of scan lines per data row. At this point an entire data row will have been scrolled off the smooth scroll area and the row table must then be manipulated to move each of the remaining data rows up one position. The Smooth Scroll Offset Register is returned to zero and the sequence may be repeated if it is desired to scroll off additional lines of data.
By decrementing the Smooth Scroll Offset Register instead of incrementing it, a smooth scroll in the downward direction on a screen may be accomplished. Since a smooth scroll can momentarily result in a partial data row consisting of one scan line, the loading of data buffer 30 (Fig. 1) for the start and end data rows during a smooth scroll operation is forced to occur in one scan line. This condition overrides the p~ogrammable D~

burst/delay requests described above.
Attribute Assemble Modes In order to produce video attributes such as reverse video, blink, underline, strike-through, and modes which must change a character-by-character basis, it is necessary in the prior art to append one bit-for each independent attribute to each character that is to be displayed. Ordinarily, this requires the use of a video memory whose bit width is equal '? 1162319 F.092 to the number of bits required for each character. For ' example, to display an ASCII character with the attributes of blin]cing, reverse video, underline, and one of two colors requires 11 bits per character. There are seven bits to define the character and four more bits appended for the four independent attributes for a total of eleven bits~
If a typical eight bit-microprocessor is used for the display systems, loading and manipulating a memory size greater,than 8 bits is cumbersome and may require additional hardware. The attribute assemble modes of the VPAC solve this problem by permitting storage of both data and attributes in an 8 bit memory and assembling at~ributes together with the character just prior to data display.
T~70 modes of attribute assemble are possible and are illustrated in the embodiment of the invention shown in Figure 8.
In the first mode, data and attributes are stored in consecutive byte locations in memory as,shown in Figure 6. ~hen the VPAC
reads the addressed data location in memory (either by row table operations or by sequential addressing) the first byte read out by memory is considered an attribute which is loaded into an Internal Attribute Latch (not shown) in the VPAC.
The VPAC then fetches the second byte in the display mem~ry.
This byte is the character byte associated with the attribute byte previously read out. During this same clock cycle, the VPAC isolates its bus from the main system bus via an external three-state buffer 800 as shown in Figure 8' and outputs the attribute byte contained in the a$tribute latch to a double row data buffer 801. At the same time the main data bus which ~ 1 162319 ~ F~09~

contains the ASCII character byte, is connected to a second double row data buffer 802. The two bytes of information (attribute and character) are loaded into their respective double row data buffers. The VPAC then accesses the next attribute and data byte and again loads them into the two double row data buffers. This process continues until the entire data row has been read out from memory and is assembled into the two double row buffers, 801 and 802.
At the next data row boundary, when it is time for the data row just assembled to be displayed, the data and attributes are read out simultaneously from the two data buffers thereby providins a full 16 bits for data and ~-arious associated attributes. In effect two bytes in memory located in se~uential postions have been assembled and read out to the character generator and the video display as a single 16 bit word. This mode of operation requires that two bytes be associated with each character. Thus for an 80 character wide display there must be 160 bytes which are addressed for each data row.
In the second operational mode for attribute assemble, attribute bytes are located in an 8-bit memory only where attributes are to change in the display as shown in Figure 7.
Thus if an entire word, for example, is to be underlined, an attribute byte will appear in memory just prior to that word's data bytes. This attribute byte ~7ill contain the appropriate attributes for the next word. However, it can only contain seven bits since the Most Significant Bit ~MSB) is used for a special purpose as described below. ASCII data bytes may then follo~ this attribute byte in memory, F.092 In operation, the VPAC reads each byte stored in memory and looks at the most significant bit to determine if it is an attribute byte or a data byte. If the MSB is one, it indicates an attribute byte. The attribute byte is brought into the Internal Attribute Latch in the VPAC and remains there until the next attribute byte is accessed. Whenever a data byte is read from memory, as indicated by its MSB being equal to a zero, both the data byte and its associated attribute in the attribute latch are written into two double row data bufrers 801,802. This mode requires that the processor reserve only enough memory space necessary to accommodate the maximum number of attributes anticipated per data row. This is ordinarily less memorv space than that occupied by the alternate attribute assmeble mode which was described in the previous paragraph.
Double-Height/Double Width Data Rows Registers 201 and 202 are used as left side and right side address registers, respectively, in this mode of operatior ~oth are 16 bit registers which contain a 14 bit memory address for the row table (previously described) plus two bits for row attributes. These two row attribute bits are encoded as follows:

00=normal height and normal width 01=normal height double width 10=double height double width-top ll=double height double width-bottom On a vertical split screen registers 201 and 202 must contain the same height and width mode bits.
When a double-height row is indicated by a "10 tl or a "11"
code, the VPAC will increment scan line outputs every second horizontal scan line rather than every scan line. This causes the sam~
scan line information to be read out from memory on two succ~eding scan lines thereby effectively doubling the height of the data row.

` ` ~ 1 162319 F.092 An in.ernal address controlle~ in the VPAC, continues to address memory as i it ~ere addressing two ordinary data rows of memory;
thus for a double-height row, a second row table memory add~ess will be read out for the bottom half of the data row.
The micro?rocessor must insure that the pointer for the bottom half points to the same data in memory as shown for the top nalf of the data row. In the sequential mode of addressins, the data of the top hal of the data row must be duplicated in the memor~ read out during the bottom half of the data row.
Orainarily, the bottom half of a double-height row is read out immediately following ,he top half of the double height row to give the appearance of a full double height row. However, for special effects certain system designers may wish to read out only the top half or only the bottom half of the data row.
This may be done only with a double row data buffer configuration described above. In this case either a "l0" or "ll" bit pattern may be placed in the most significant it DOSitions of .he row table pointer register to read out the top half or the bottom half of a double height row respectively.
The double-width data row mode is indicated by a "0l", "l0", or "ll" code in the most significant bit ~ositians of the row table pointer which is read out for each data row. In a double width data row, the address to display memory is changed every second character time so that the same data is addressed for two consecutive character times. ~his data is then presented ~either with or without a buffer) to the ~ternal video character 1 162319 F.092 generator which then has the task of displaying each dot on the screen as a double width dot so that the character displayed takes up two normal width character position. An appropriate double width signal may be latched in an external flip-flop and used to condition the character generator for double width characters. Note that since the characters are double width, a data row that is normally 80 characters wide wili only display the first 40 characters in that memory address space. The remainder will not be accessed by the VPAC.
~ Although a specific embodiment of this invention has been shown and described it will be understood that various modi-fications may be made without departing from the spirit of this invention.

Claims (5)

THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. A CRT video display system including a microprocessor, a memory, a video processor and controller, a data bus coupling said video processor and controller to said microprocessor and memory, and an address bus coupling and video processor and controller to said microprocessor said memory, said video processor and controller comprising, a plurality of programmable storage registers, a first portion of said register plurality being connected to said data bus and a second portion of said register plurality being connected both to said data bus and said ad-dress bus, each of said registers being programmable by said microprocessor to store selected address characters and control characters, and means for accessing said programmable registers via said address bus and said data bus, and for utilizing said selected address characters and control characters stored in said registers for retrieving selected informa-tion from said memory for display on the CRT in the video display system.
2. A CRT video display system in accordance with claim 1, wherein there is further included a character generator controlled by said video pro-cessor and controller, said character generator for displaying characters on said CRT in response to information retrieved from said memory.

F.092
3. A CRT video display system in accordance with claim 2, wherein each row of data displayed on said CRT
comprises N scan lines of data, said video processor and controller further including means for retrieving from said memory a complete row of data during a first scan line interval and for storing said complete row in a data buffer and means for applying said complete row of data to said character generator during the remaining N-1 scan line intervals.
4. A CRT video display system in accordance with claim 3 wherein said video processor and controller further includes means for retrieving a first row of data from said memory during a vertical retrace interval, and for storing said first row in said data buffer, means for applying said first row of data to said character generator during a first data row internal and means for retrieving a second row of data from said memory and for storing said second row of data in said data buffer during said first data row interval.
5. A CRT video display system in accordance with claim 4, wherein said first and second data row retrieving means includes means for retrieving data rows from said memory in a continuous and repetitive sequence, said sequence comprising a predetermined retrieve interval followed by a predetermined delay interval, said retrieve interval being less than the time required to retrieve a complete row of data.
CA000380700A 1980-10-06 1981-06-26 Video processor and controller Expired CA1162319A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US19443580A 1980-10-06 1980-10-06
US194,435 1988-05-13

Publications (1)

Publication Number Publication Date
CA1162319A true CA1162319A (en) 1984-02-14

Family

ID=22717597

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000380700A Expired CA1162319A (en) 1980-10-06 1981-06-26 Video processor and controller

Country Status (6)

Country Link
JP (1) JPS5792378A (en)
CA (1) CA1162319A (en)
DE (1) DE3130460A1 (en)
FR (1) FR2491651A1 (en)
GB (1) GB2084836B (en)
IT (1) IT1167999B (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2130855B (en) * 1982-11-03 1986-06-04 Ferranti Plc Information display system
DE3319944A1 (en) * 1983-06-01 1984-12-06 Siemens AG, 1000 Berlin und 8000 München Device for the read/write operation of a frame buffer
GB2145910B (en) * 1983-09-01 1987-10-07 Philips Electronic Associated Data display arrangement with scrolling
GB2146208B (en) * 1983-09-01 1987-10-14 Philips Electronic Associated Character display arrangement with stack-coded-to-explicit attribute conversion
IT1162945B (en) * 1983-09-30 1987-04-01 Olivetti & Co Spa EQUIPMENT FOR THE VISUALIZATION OF IMAGES DEFINED BY A MULTIPLE OF DATA LINES
CA1243138A (en) * 1984-03-09 1988-10-11 Masahiro Kodama High speed memory access circuit of crt display unit
JPS61151592A (en) * 1984-12-20 1986-07-10 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Display unit
DE3501673A1 (en) * 1985-01-19 1986-07-24 Standard Elektrik Lorenz Ag, 7000 Stuttgart Public videotex terminal
ES2036559T3 (en) * 1987-03-20 1993-06-01 International Business Machines Corporation COMPUTER SYSTEM WITH VIDEO SUBSYSTEM.
US5101196A (en) * 1988-11-10 1992-03-31 Sanyo Electric Co., Ltd. Display device for microcomputer

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5052945A (en) * 1973-09-10 1975-05-10
US3972026A (en) * 1974-09-23 1976-07-27 Hewlett-Packard Company Linked list encoding method and control apparatus for refreshing a cathode ray tube display
JPS585432B2 (en) * 1975-05-06 1983-01-31 ソニー株式会社 Gazouhiyoujisouchi
US4298931A (en) * 1978-06-02 1981-11-03 Hitachi, Ltd. Character pattern display system
CA1141863A (en) * 1979-04-30 1983-02-22 Joseph L. Ryan Hardware/firmware crt display link system

Also Published As

Publication number Publication date
IT8109536A0 (en) 1981-10-05
GB2084836B (en) 1984-05-23
GB2084836A (en) 1982-04-15
DE3130460A1 (en) 1982-05-27
IT1167999B (en) 1987-05-20
JPS5792378A (en) 1982-06-08
FR2491651A1 (en) 1982-04-09
FR2491651B3 (en) 1984-04-27
JPH0259473B2 (en) 1990-12-12

Similar Documents

Publication Publication Date Title
US4404554A (en) Video address generator and timer for creating a flexible CRT display
US4204206A (en) Video display system
US4057849A (en) Text editing and display system
JP2594897B2 (en) Video image display device
US4204208A (en) Display of video images
JPH0335676B2 (en)
US4744046A (en) Video display terminal with paging and scrolling
CA1162319A (en) Video processor and controller
US4418343A (en) CRT Refresh memory system
US4628479A (en) Terminal with memory write protection
EP0279225B1 (en) Reconfigurable counters for addressing in graphics display systems
US4204207A (en) Video display of images with video enhancements thereto
JPS6330632B2 (en)
US4119953A (en) Timesharing programmable display system
US4910505A (en) Graphic display apparatus with combined bit buffer and character graphics store
US4737779A (en) Data processing apparatus with dot character generator
US4803478A (en) Horizontal scroll method and apparatus
US4591845A (en) Character and graphic signal generating apparatus
EP0140555B1 (en) Apparatus for displaying images defined by a plurality of lines of data
US4398190A (en) Character generator display system
US4384285A (en) Data character video display system with visual attributes
US4414645A (en) Hardware-firmware CRT display link system
US5317684A (en) Method of storing character data in a display device
EP0258825A2 (en) Display control apparatus with improved attribute function
EP0422300B1 (en) Display system with graphics cursor

Legal Events

Date Code Title Description
MKEX Expiry