WO1991018353A1 - Display list processor for terminal controller - Google Patents

Display list processor for terminal controller Download PDF

Info

Publication number
WO1991018353A1
WO1991018353A1 PCT/US1990/002886 US9002886W WO9118353A1 WO 1991018353 A1 WO1991018353 A1 WO 1991018353A1 US 9002886 W US9002886 W US 9002886W WO 9118353 A1 WO9118353 A1 WO 9118353A1
Authority
WO
WIPO (PCT)
Prior art keywords
display
instruction
memory
queue
address
Prior art date
Application number
PCT/US1990/002886
Other languages
French (fr)
Inventor
Alak K. Deb
Yungha Y. Han
Morris E. Jones, Jr.
Original Assignee
Chips And Technologies, Inc.
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 Chips And Technologies, Inc. filed Critical Chips And Technologies, Inc.
Priority to PCT/US1990/002886 priority Critical patent/WO1991018353A1/en
Publication of WO1991018353A1 publication Critical patent/WO1991018353A1/en

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/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/14Display of multiple viewports

Definitions

  • the present invention relates generally to terminal controllers and more specifically to techniques for placing characters on a display.
  • One of the main functions of a terminal is to place rows of characters on a screen.
  • a display memory also sometimes referred to as a screen buffer, video buffer, or coax buffer
  • the display data are updated from the keyboard and from
  • Font bitmaps for the characters are typically stored in a separate non-volatile font memory.
  • font memory In order to place a row of characters on the screen, repeated accesses are made to the display memory, appropriate locations in the font memory are accessed to build up the row of characters, a scan line at a time. This is a fairly
  • a window refers to a region of the display which is to contain characters typically unrelated to the characters in the
  • a separate window buffer is provided for the window, and relevant portions of the display memory are overwritten with a copy of the relevant portions of the window buffer.
  • Sophistication is sometimes another word for complication, which is the case here.
  • Providing windows requires extra memory and extra overhead in transferring blocks of memory from one place to another.
  • a further level of sophistication is supporting interlaced scanning.
  • an interlaced display typically provides a given level of resolution at a cheaper price.
  • a normal CRT controller typically supports either non- interlace or single interlace scanning. Support of three-way or four-way interlace would presumably require additional circuitry.
  • the present invention provides display control logic for a terminal controller with support for such features as windows and interlace.
  • the invention operates in a manner that is flexible and efficient in terms of memory and circuitry.
  • the basis for the improved operation is a display list processor (DLP) having a small but powerful instruction set that allows scan lines to be built up in a very flexible way.
  • the DLP communicates with a program memory containing DLP instructions, a display memory containing character codes and attributes for the display, and a font memory containing bitmaps for the character fonts.
  • the DLP program As the DLP program executes, it causes accesses to the display memory and brings in character codes and attributes for ultimate display on the screen. These character codes and attributes, as well as information representative of the scan line are input to a video data queue.
  • the queue entries are clocked out of the queue by a character clock synchronized to the display, the character code and scan line information is used to generate addresses to font memory, and the bitmaps are read from font memory into a dot shifter.
  • the dot shifter is clocked out by a dot clock synchronized to the display.
  • the DLP instruction set includes a DISPLAY STRING instruction which allows a portion of a scan line to be built up by specifying the length of the scan line segment and the starting address in memory. Thus, by executing a series of such instructions, a scan line can be built up based on
  • instruction set also includes SET ROW, LOOP, and LOOPBACK instructions to specify a given row and to set up a loop so that all the scan lines in a given row of characters can be built up by repeated executions of the DISPLAY STRING
  • the DLP builds up the display a scan line at a time, it is possible, by suitable programming, to display the scan lines in any random scan line order.
  • special looping instructions are provided to display scan lines sequentially. By incrementing the loop counter by amounts other than one, it is possible to make interlaced, triinterlaced, and quad-interlaced displays without any special hardware.
  • Fig. 1 is a block diagram of a single chip terminal controller embodying the present invention, including its connections with associated memories;
  • Fig. 2 is a block diagram of the display control logic portion of the terminal controller chip; Figs. 3A and 3B together provide a detailed block diagram of the display control logic;
  • Fig. 4 is a timing diagram illustrating display list processor instruction execution
  • Fig. 1 is a block diagram of a single chip terminal controller (TC) 10 and associated memories including a system memory 12 and a font/code memory 13.
  • TC 10 includes two onboard processors, a main processor, referred to as micro-engine 15, with an associated sequencer 17 for handling terminal and communication operation, and a display list processor (DLP) 20 with associated sequencer 22 for handling the display.
  • microengine 15 communicates with a number of peripheral interfaces via an internal data bus 25. These include a keyboard
  • DLP 20 communicates with an attribute decoder 45 (having associated download logic) and associated video interface 47 to control a display such as a monochrome or color monitor (not shown).
  • System memory 12 is implemented as two 8Kx8 static random access memory (SRAM) chips and is used to store
  • Font/code memory 13 is implemented as a 32Kx8
  • EPROM electrically programmable read only memory
  • Micro-engine 15 and DLP 20 are coupled via respective internal buses to a bus interface 50, which provides address lines 52 and bidirectional data lines 53 to system memory 12.
  • a three-way arbiter 55 arbitrates cycles to allow the micro engine, the DLP, and an optional external processor to access the memory.
  • Attribute decoder 45 is coupled to font/code memory 13 via address lines 57 and data lines 58, and to internal data bus 25 via a set of lines 60.
  • the latter connection provides a data path between font/code memory 13 and system memory 12, thereby making it possible for logic associated with attribute decoder 45 to download code stored in the font/code memory to the system memory at power up. This is advantageous since SRAMs are typically much faster than EPROMs.
  • Micro-engine 15 is a high-speed reduced instruction set computer (RISC) for handling terminal operation, and has three states, a main state, a coax state, and an interrupt state. It includes an ALU, general purpose registers and special purpose registers associated with the various states, an accumulator with a zero, carry, and overflow flag for each state, and a program counter with a three-deep pushdown stack for the main state.
  • RISC reduced instruction set computer
  • DLP 20 with its associated sequencer 22, attribute decoder 45, and video interface 47 provides overall display control.
  • Sync signals for the display monitor and display format management are generated as a result of executing a sequence of instructions stored in system memory 12.
  • the DLP retrieves character code and attributes from the display buffer in system memory 12 while logic associated with the attribute decoder retrieves character font information from font memory 13 so as to define the actual signals sent to the display.
  • the DLP is pipelined and buffered to be able to sustain a 60 MHz video pixel rate without screen flickers.
  • the attribute decode logic handles the 3270 attributes and supports background color select, color remapping, 2/4 color mode select, and the like.
  • Video interface 47 provides RGB color signals for a color monitor (or a mono signal for a monochrome monitor), an
  • Keyboard interface 30 allows direct connection to an AT or PS/2 style keyboard.
  • the interface provides open
  • Printer interface 35 provides a bidirectional parallel port data bus and a number of control signals.
  • Data for coax transmission is encoded using the biphase Manchester II technique which has a fixed bit rate of
  • the first half of the bit cell consists of the complementary data and the second half of the bit cell is the true data.
  • Received coax data is assumed to have the same encoding, and is decoded accordingly.
  • Clock select logic 44 performs a number of functions. First, it receives as inputs up to three external clock
  • DX1, DX2, and DX3 provide as an external output a buffered version of DX1, designated DCLK1. Second, it responds to signals on data bus 25 to select one of the input clocks for micro-engine 15 and one for the video.
  • DX1 is 26.288 MHz and is used for both the micro-engine and display; in another DX1 is 35 MHz and is used for the mirco-engine while DX2 is 64 MHz and is used for the display.
  • Arbiter 55 arbitrates cycles to allow micro-engine reads and writes, DLP instruction reads, DLP data reads, micro- engine coax interrupt processing, and (optional) external processor reads and writes. To this end, the arbiter receives micro-engine coax requests, DLP instruction requests, DLP data requests, and external processor requests on respective request lines 61, 62, 63, and 64. Memory cycles are granted by
  • Fig. 2 is a block diagram of DLP 20, attribute decoder 45, and video interface 47, which together constitute the display control logic.
  • the basic operation is the fetching and execution of DLP instructions so as to generate a stream of character codes and other information, and the conversion of the codes and other information to video information for the display, as will now be described.
  • system memory 12 a portion of system memory 12 is dedicated to a display buffer in which are stored character codes (e.g., device buffer code
  • Another portion of the system memory is used to store instructions for the DLP.
  • Instruction sequencer 22 generates addresses to system memory 12 to access stored DLP instructions. These instructions are loaded into a pipelined instruction queue 75 that includes an instruction register 77, an initial
  • IIP instruction processor
  • control instructions are
  • IIP 80 immediately executed by IIP 80 while other instructions, referred to as video instructions, are formatted and passed on to holding register set 82.
  • the IIP may also add existing information that is not present in the current video
  • the video instructions include portions that relate to timing and portions that relate to the character codes and attributes to be displayed.
  • the timing fields are communicated to a timing generator 87 while the other portions are
  • display data access machine 90 For those video instructions requiring access to system memory 12, display data access machine 90 generates memory addresses to the display buffer in system memory 12, and appropriately formats the display data received from the display buffer. For other instructions, it may pass the information through.
  • the outputs from display data access machine 90 are communicated to a 10-deep video data queue 95.
  • the DLP instruction set has the property that it allows portions of the display buffer to be accessed in any desired order.
  • Attribute decoder 45 receives the character codes and control information from video data queue 75. Associated logic generates suitable addresses to access the relevant portions of font memory 13.
  • the DLP instruction set has the property that it allows portions of the font memory to be accessed in any desired order.
  • Attribute decoder 45 decodes the display and attribute data from the video data queue, and performs the corresponding 3270 coax attribute functions.
  • the 3270 coax attribute include field, extended field, and character
  • the field attribute occupies one character position in the display buffer and is stored as a non-displayable character (actually displayed as a blank) .
  • Display related field attributes may specify intensified and non-displayable.
  • the extended field attribute is stored in the attribute buffer but is not displayed. It allows for blinking, reverse video, underscore, seven-color, and character font select.
  • the character attribute is stored in the attribute buffer and controls the characteristics of each character on the screen. It allows for blinking, reverse video, underscore, seven-color, and character font select.
  • DLP 20 executes a small but powerful instruction set that provides considerable flexibility in creating characters on the display.
  • the DLP instructions provide for building a display structure on a scan line by scan line basis, with a do-loop type
  • the vertical retrace pulse can be programmed to occur anywhere on the scanline for use with interlace, or quad- /tri-interlace modes if so desired.
  • the instruction set includes a set of video instructions and a set of control instructions.
  • the video instructions include a DISPLAY STRING instruction, a REPEAT CHARACTER instruction, a WINDOW instruction, and a set of BLANK DISPLAY instructions.
  • the control instructions include a LOAD instruction, a LOOP instruction, a SET CURSOR instruction, and a SET ROW COUNTER instruction.
  • the video instruction formats are set forth in Tables 1A-D, and the control instruction formats are set forth in Table IE.
  • Each video instruction includes one-bit fields for horizontal pulse (HP) and vertical pulse (VP). If the HP bit is set, the horizontal pulse will be generated. This provides the programmer total control over where the pulse starts on a scan line and where it ends, and thus allows the sync pulse to come any time during or before blanking.
  • the VP bit provides the same flexibility.
  • a number of the video instructions also contain a one-bit field specifying an interrupt to micro- engine 15.
  • the DISPLAY STRING instruction allows a scan line to be built up in segments from various parts of memory.
  • the instruction specifies a starting address for sequential
  • the DISPLAY STRING instruction accesses the display buffer in system memory 12 for character code and attribute and the font memory 13 for the actual bit pattern as many times on every scanline as there are characters in a row.
  • the instruction also specifies a status line indicator, which if set, causes the attribute data to be loaded from a fixed-status attribute register, and all display memory accesses yield character code data.
  • the REPEAT CHARACTER instruction is used to generate the window border and overscan regions.
  • the instruction specifies the character code and attribute, and the number of repetitions (less one) of the character. It also specifies whether the cursor signal is to be activated for the scan line. A match to the column location generates the actual cursor signal sent to the attribute logic.
  • the instruction does not access system memory 12 and accesses font memory 13 only once per repeated character per scan line. (In a present version, the REPEAT CHARACTER instruction ignores the character code and only repeats the background color.)
  • the WINDOW instruction is executed at the start or end of a window scanline and creates the configuration
  • the four BLANK DISPLAY instructions are used to generate the blanking pulse for a specified number of character times during each scanline.
  • the instructions specify a 15-bit address of the next DLP
  • the JUMP instruction specifies an end-of-screen jump to the start of the display list indicated by the next display list address field.
  • the LOOPBACK instruction specifies looping back to the next scan line of the present character box. During this time the loop counter is first incremented by a value
  • the INCREMENT instruction causes the loop counter to be incremented by an offset given by the value defined by the F0 and F1 bits, but performs no comparison or branch.
  • the control instructions do the flow control for the video instructions and the housekeeping chores for the display, such as cursor controls, color palettes, etc.
  • the 16-bit format is used for control operations that have a very high frequency of use.
  • the 32-bit LOAD instruction specifies the
  • the seven possible destination registers are the attribute for the status line, the primary cursor coordinates, the print-box start coordinates, the print-box end coordinates, and three display configurations.
  • the loop counter is started at the specified start value and finished when the loop counter exceeds the specified stop value.
  • Figs. 3A and 3B are detailed block diagrams of the display control logic illustrated in Fig. 2.
  • Fig. 3A shows the various elements that define instruction sequencer 22,
  • FIG. 3B shows the elements that define timing
  • Fig. 3B Portions of execution register set 85 are shown in phantom in Fig. 3B in order to facilitate correlation with Fig. 3A.
  • Fig. 4 is a timing diagram illustrating the execution of DLP instructions to the point where entries are loaded into video data queue 95.
  • Two time bases are relevant to the operation of the display control logic.
  • DLP instructions and character codes and attributes must be fetched from system memory 12. Since. access to the system memory is arbitrated with other devices in the system, most notably micro-engine 15, the portions of the display control logic that require memory accesses are based on timing established by memory cycles. A memory cycle is divided into time units designated TUO, TU1, TU2, and TU3. The data are then loaded into video data queue 95 based on this timing. A different time base is used for reading data out of the video data queue and transforming it to a video signal. Timing for these operations is determined by a dot clock synchronized to the display and a character clock based on the dot clock.
  • a program counter 115 specifies an address in system memory from which a DLP instruction is fetched and loaded into instruction register 77, which is clocked by TU3. Decoding occurs immediately at an instruction decoder 120, and control instructions are executed (as will be discussed more fully below) .
  • Holding register set 82 includes a set of registers, different subsets of which are loaded depending on the
  • instruction decoder 120 includes a Scan Stop register 122, a Scan Count register 125, a Video Timing register 127, a Font/Color register 130, a Count Value register 132, a Code/Address register 135, and a Scan Row register 137. Additionally, a portion of the instruction may be loaded into one side of an adder 140 associated with Scan Count register 125.
  • the contents of holding register set 82 are passed on, for the most part, to corresponding elements in execution register set 85. Specifically, the content of Scan Stop register 122 and the output from adder 140 are communicated to a comparator 150; the content of Scan Count register 125 is communicated to the other side of adder 125 and to a Scan Line register 152 ; the contents of Video Timing register 127 and Font/Color register 130 are communicated to respective
  • Scan Count register 125 is initially loaded from instruction register 77 to set up a loop, but is subsequently updated from the output of adder 140 during iterations within the loop.
  • the operation of the DLP may be explained with reference to the execution of a specific instruction sequence to display a line of characters on the screen. Assume that it is desired to display the first row of the display with 80 characters whose codes are stored in contiguous locations in the system memory starting at address Startl. For illustrative purposes, a simplified assembler language will be used.
  • Numbers are in decimal, and counts are assumed to go from 1 to N as opposed rather than 0 to (N-l) .
  • a SET ROW instruction to specify the first row on the display
  • a LOOP instruction to set up a loop for 16 scan lines
  • a DISPLAY STRING instruction within the loop to generate one scan line of display characters for each pass through the loop
  • two NOP instructions within the loop to display blanks and set up the horizontal pulse for each pass through the loop
  • a LOOPBACK instruction to close the loop.
  • the SET ROW instruction is a 16-bit control instruction that causes the row number to be set to the value specified. This instruction causes the specified value (in this case 1) to be loaded into Scan Row register 137.
  • the LOOP instruction is a 16-bit control instruction specifying the scan lines to be processed within the loop.
  • This instruction causes the starting scan line (0) to be loaded into Scan Count register 125 and the ending scan line (15) to be loaded into Scan Stop register 122.
  • the DISPLAY STRING instruction specifies the starting address and length of a string of characters to be displayed as part or all of a row on the display. This instruction
  • down counter 160 and address counter 162.
  • the address stored in address counter 162 is applied to the system memory, and the character code and attribute are retrieved.
  • the down counter is decremented and the address counter is incremented.
  • the character code and attribute from memory, along with the content of Scan Line register 152 and the font code from Font/Color register 130 are loaded into video queue 95. This sequence continues until down counter 160 reaches zero, which signifies the correct number of characters on the scan line have been entered into the queue.
  • the specified number of blanks is loaded into Count Value register 132 and the character code and attribute for a blank are loaded into Code/Address register 135. These are transferred to down counter 160 and address counter 162. Down counter 160 is decremented while address counter 162 is allowed to act as a simple register. The content of address counter 162 is passed directly through data access machine 90 without accessing memory. The appropriate number of queue entries are made, at which point the next instruction is executed.
  • the next instruction is also an NOP, which generates a number of blanks, but has the horizontal pulse bit set. This is passed through timing registers 127 and 155 to the timing logic to end the scan line.
  • the next instruction is a LOOPBACK instruction, which generates a number of blanks and increments the loop counter stored in Scan Count register 125. If the value stored in Scan Count register 125 has not exceeded the value stored in Scan Stop register 122, the address field in the LOOPBACK
  • character clock is a signal having a frequency that is a sub- multiple of the dot clock frequency, as determined by a divider 170.
  • the queue entries are then read out into font type, scan line, character code, and attribute registers 172, 175, 177, and 180.
  • the font type, character code, and scan line are used to define an address to font/code memory 13, and the data returned from that memory is applied to a dot shifter 190.
  • Dot shifter 190 is clocked by the dot clock, and provides the actual bit stream(s) that define(s) the modulation of the video signal.
  • the character code and attribute stored in registers 177 and 180 are applied to attribute decoding circuitry 45.
  • the REPEAT character instruction causes the specified number of repetitions (less 1) to be loaded into Count Value register 132 and the specified character code and attribute to be loaded into Code/Address register 135. The character code and attribute are then passed to address counter 162, and made directly available to the queue since no memory access is required.
  • the JUMP instruction (one of the BLANK DISPLAY instructions) causes the specified next DLP instruction address to be loaded into program counter 115. It is noted that the NOP instructions do not affect the program counter.
  • INCREMENT LOOP COUNTER instruction performs like the LOOPBACK instruction but does not cause a branch.
  • the DISPLAY STRING instruction provides flexibility and efficiency in displaying rows of characters. More
  • a row of characters on the display can be built up piecemeal from different parts of memory by programming a sequence of DISPLAY STRING instructions, each specifying the starting address of a portion of the line, and the number of characters in that portion.
  • versatility is for placing windows on the display without requiring data transfers between memory locations.
  • a representative sequence of simplified assembler language instructions for setting up the ninth and tenth rows including the top border and first row of the window is as follows:
  • starting address Start10 for row 10 is equal to Start9+80 since it is assumed that the background screen characters are stored in contiguous locations.
  • subsequent rows of the window will have starting addresses incremented by the window width (assuming the window characters are stored in contiguous locations).
  • Appendix 1 (Copyright ⁇ 1990, Unpublished Work, Chips and Technologies, Inc.) provides a source code listing of DLP instructions for generating the display data for a 24x80 display. In the specific example, an extra non-display control character is read out at the beginning of each scan line.
  • window borders are drawn using the DISPLAY STRING instruction rather than the REPEAT CHARACTER

Abstract

Display control logic for a terminal controller with support for such features as windows and interlace. A display list processor (DLP) (20) communicates with a program memory (12) containing DLP instructions, a display memory (12) containing character codes and attributes for the display, and a font memory (13). As the DLP program executes, it causes accesses to the display memory and brings in character codes and attributes for ultimate display on the screen. These character codes and attributes, as well as information representative of the scan line are input to a video data queue (95). The queue entries are clocked out of the queue by a character clock (170) and are used to generate addresses to font memory. Bitmaps from font memory are read into a dot shifter (190). The DLP instruction set includes a DISPLAY STRING instruction which allows a portion of a scan line to be built up by specifying the length of the scan line segment and the starting address in memory. Thus, a scan line can be built up based on characters stored in different parts of memory. The instruction set also includes SET ROW, LOOP, and LOOPBACK instructions to specify a given row and to set up a loop so that all the scan lines in a given row of characters can be built up by repeated executions of the DISPLAY STRING instructions. It is also possible, to display the scan lines in any random scan line order.

Description

DISPLAY LIST PROCESSOR FOR TERMINAL CONTROLLER
COPYRIGHT NOTICE
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile
reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. BACKGROUND OF THE INVENTION
The present invention relates generally to terminal controllers and more specifically to techniques for placing characters on a display.
One of the main functions of a terminal is to place rows of characters on a screen. Associated with the terminal is a display memory (also sometimes referred to as a screen buffer, video buffer, or coax buffer), which stores a character code and attribute for each character position on the screen. The display data are updated from the keyboard and from
communications with the host computer. Font bitmaps for the characters are typically stored in a separate non-volatile font memory. In order to place a row of characters on the screen, repeated accesses are made to the display memory, appropriate locations in the font memory are accessed to build up the row of characters, a scan line at a time. This is a fairly
straightforward process, since a given position on the screen corresponds to a given location in the display memory, and a given character code corresponds to a known starting address in font memory, with the particular scan line providing a known and predictable offset.
One level of sophistication is the provision of one or more windows on the screen. In this context, a window refers to a region of the display which is to contain characters typically unrelated to the characters in the
surrounding region. Normally, a separate window buffer is provided for the window, and relevant portions of the display memory are overwritten with a copy of the relevant portions of the window buffer.
Sophistication is sometimes another word for complication, which is the case here. Providing windows requires extra memory and extra overhead in transferring blocks of memory from one place to another.
A further level of sophistication is supporting interlaced scanning. As is well known, an interlaced display typically provides a given level of resolution at a cheaper price. A normal CRT controller typically supports either non- interlace or single interlace scanning. Support of three-way or four-way interlace would presumably require additional circuitry.
SUMMARY OF THE INVENTION
The present invention provides display control logic for a terminal controller with support for such features as windows and interlace. The invention operates in a manner that is flexible and efficient in terms of memory and circuitry.
The basis for the improved operation is a display list processor (DLP) having a small but powerful instruction set that allows scan lines to be built up in a very flexible way. The DLP communicates with a program memory containing DLP instructions, a display memory containing character codes and attributes for the display, and a font memory containing bitmaps for the character fonts.
As the DLP program executes, it causes accesses to the display memory and brings in character codes and attributes for ultimate display on the screen. These character codes and attributes, as well as information representative of the scan line are input to a video data queue. The queue entries are clocked out of the queue by a character clock synchronized to the display, the character code and scan line information is used to generate addresses to font memory, and the bitmaps are read from font memory into a dot shifter. The dot shifter is clocked out by a dot clock synchronized to the display.
The DLP instruction set includes a DISPLAY STRING instruction which allows a portion of a scan line to be built up by specifying the length of the scan line segment and the starting address in memory. Thus, by executing a series of such instructions, a scan line can be built up based on
characters stored in different parts of memory. The
instruction set also includes SET ROW, LOOP, and LOOPBACK instructions to specify a given row and to set up a loop so that all the scan lines in a given row of characters can be built up by repeated executions of the DISPLAY STRING
instructions.
One consequence of the DLP's ability to create scan line segments of specified length and origin is that the scan lines and hence the rows of characters can be built up with portions taken from different parts of the memory. Thus windows can be set up without having to transfer data from one portion of memory to another. Rather, data is directly
accessed and converted into bit streams.
Similarly, since the DLP builds up the display a scan line at a time, it is possible, by suitable programming, to display the scan lines in any random scan line order. However special looping instructions are provided to display scan lines sequentially. By incrementing the loop counter by amounts other than one, it is possible to make interlaced, triinterlaced, and quad-interlaced displays without any special hardware.
A further understanding of the nature and advantages of the present invention may be realized by reference to the remaining portions of the specification and the attached drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a block diagram of a single chip terminal controller embodying the present invention, including its connections with associated memories;
Fig. 2 is a block diagram of the display control logic portion of the terminal controller chip; Figs. 3A and 3B together provide a detailed block diagram of the display control logic;
Fig. 4 is a timing diagram illustrating display list processor instruction execution;
DESCRIPTION OF SPECIFIC EMBODIMENTS
System Overview
Fig. 1 is a block diagram of a single chip terminal controller (TC) 10 and associated memories including a system memory 12 and a font/code memory 13. TC 10 includes two onboard processors, a main processor, referred to as micro-engine 15, with an associated sequencer 17 for handling terminal and communication operation, and a display list processor (DLP) 20 with associated sequencer 22 for handling the display. Microengine 15 communicates with a number of peripheral interfaces via an internal data bus 25. These include a keyboard
controller 30, a light pen interface 32, a printer port 35, a set of timers 37, a serial (coax) interface having a coax transmitter 40 and a coax receiver 42, a set of I/O ports 43 (which include a buzzer interface), and clock select logic 44. DLP 20 communicates with an attribute decoder 45 (having associated download logic) and associated video interface 47 to control a display such as a monochrome or color monitor (not shown).
System memory 12 is implemented as two 8Kx8 static random access memory (SRAM) chips and is used to store
micro-engine and DLP programs, video data for refresh, and coax data. Font/code memory 13 is implemented as a 32Kx8
electrically programmable read only memory (EPROM) chip and is used to store font bitmaps for the display. It is also used to store code for downloading to system memory 12 at power up. The portions of font/code memory 13 used to store the fonts will sometimes be referred to as font memory.
Micro-engine 15 and DLP 20 are coupled via respective internal buses to a bus interface 50, which provides address lines 52 and bidirectional data lines 53 to system memory 12. A three-way arbiter 55 arbitrates cycles to allow the micro engine, the DLP, and an optional external processor to access the memory.
Attribute decoder 45 is coupled to font/code memory 13 via address lines 57 and data lines 58, and to internal data bus 25 via a set of lines 60. The latter connection provides a data path between font/code memory 13 and system memory 12, thereby making it possible for logic associated with attribute decoder 45 to download code stored in the font/code memory to the system memory at power up. This is advantageous since SRAMs are typically much faster than EPROMs.
Micro-engine 15 is a high-speed reduced instruction set computer (RISC) for handling terminal operation, and has three states, a main state, a coax state, and an interrupt state. It includes an ALU, general purpose registers and special purpose registers associated with the various states, an accumulator with a zero, carry, and overflow flag for each state, and a program counter with a three-deep pushdown stack for the main state.
DLP 20 with its associated sequencer 22, attribute decoder 45, and video interface 47 provides overall display control. Sync signals for the display monitor and display format management are generated as a result of executing a sequence of instructions stored in system memory 12. The DLP retrieves character code and attributes from the display buffer in system memory 12 while logic associated with the attribute decoder retrieves character font information from font memory 13 so as to define the actual signals sent to the display. The DLP is pipelined and buffered to be able to sustain a 60 MHz video pixel rate without screen flickers. The attribute decode logic handles the 3270 attributes and supports background color select, color remapping, 2/4 color mode select, and the like. Video interface 47 provides RGB color signals for a color monitor (or a mono signal for a monochrome monitor), an
intensity signal, horizontal and vertical sync signals, video dot clock signals.
Keyboard interface 30 allows direct connection to an AT or PS/2 style keyboard. The interface provides open
collector bidirectional pins for data and clock information for the data being exchanged. Printer interface 35 provides a bidirectional parallel port data bus and a number of control signals.
Data for coax transmission is encoded using the biphase Manchester II technique which has a fixed bit rate of
2.3587 MHz. In this encoding, the first half of the bit cell consists of the complementary data and the second half of the bit cell is the true data. There is always a central bit transition in the normal bit cell except in the transmission starting sequence which have the code violations in the frame. Received coax data is assumed to have the same encoding, and is decoded accordingly.
Clock select logic 44 performs a number of functions. First, it receives as inputs up to three external clock
signals, designated DX1, DX2, and DX3, and provides as an external output a buffered version of DX1, designated DCLK1. Second, it responds to signals on data bus 25 to select one of the input clocks for micro-engine 15 and one for the video.
Third, it receives the 18.8696-MHz XI clock (input to coax receiver 42), and provides a frequency divided version (÷8), called the slow clock, for use by timers 37 and by the micro- engine at power up and during downloading from font/code memory 13 to system memory 12.
In one implementation, DX1 is 26.288 MHz and is used for both the micro-engine and display; in another DX1 is 35 MHz and is used for the mirco-engine while DX2 is 64 MHz and is used for the display.
Arbiter 55 arbitrates cycles to allow micro-engine reads and writes, DLP instruction reads, DLP data reads, micro- engine coax interrupt processing, and (optional) external processor reads and writes. To this end, the arbiter receives micro-engine coax requests, DLP instruction requests, DLP data requests, and external processor requests on respective request lines 61, 62, 63, and 64. Memory cycles are granted by
asserting signals on respective grant lines 66, 67, 68, and 69. Display Control Loσic Overview
Fig. 2 is a block diagram of DLP 20, attribute decoder 45, and video interface 47, which together constitute the display control logic. The basic operation is the fetching and execution of DLP instructions so as to generate a stream of character codes and other information, and the conversion of the codes and other information to video information for the display, as will now be described.
As a prefactory matter, it is noted that a portion of system memory 12 is dedicated to a display buffer in which are stored character codes (e.g., device buffer code
representations) and other information such as attribute and character scan row number. Another portion of the system memory is used to store instructions for the DLP.
Instruction sequencer 22 generates addresses to system memory 12 to access stored DLP instructions. These instructions are loaded into a pipelined instruction queue 75 that includes an instruction register 77, an initial
instruction processor (IIP) 80, a holding register set 82, and an execution register set 85. A certain class of DLP
instructions, referred to as control instructions, are
immediately executed by IIP 80 while other instructions, referred to as video instructions, are formatted and passed on to holding register set 82. The IIP may also add existing information that is not present in the current video
instruction.
The video instructions include portions that relate to timing and portions that relate to the character codes and attributes to be displayed. The timing fields are communicated to a timing generator 87 while the other portions are
communicated to a display data access machine 90. For those video instructions requiring access to system memory 12, display data access machine 90 generates memory addresses to the display buffer in system memory 12, and appropriately formats the display data received from the display buffer. For other instructions, it may pass the information through. The outputs from display data access machine 90 are communicated to a 10-deep video data queue 95. The DLP instruction set has the property that it allows portions of the display buffer to be accessed in any desired order.
Attribute decoder 45 receives the character codes and control information from video data queue 75. Associated logic generates suitable addresses to access the relevant portions of font memory 13. The DLP instruction set has the property that it allows portions of the font memory to be accessed in any desired order.
Attribute decoder 45 decodes the display and attribute data from the video data queue, and performs the corresponding 3270 coax attribute functions. The 3270 coax attribute include field, extended field, and character
attributes.
The field attribute occupies one character position in the display buffer and is stored as a non-displayable character (actually displayed as a blank) . Display related field attributes may specify intensified and non-displayable.
The extended field attribute is stored in the attribute buffer but is not displayed. It allows for blinking, reverse video, underscore, seven-color, and character font select. The character attribute is stored in the attribute buffer and controls the characteristics of each character on the screen. It allows for blinking, reverse video, underscore, seven-color, and character font select.
Display List Processor (DLP) Instruction Set
DLP 20 executes a small but powerful instruction set that provides considerable flexibility in creating characters on the display. As will be described in greater detail below, the DLP instructions provide for building a display structure on a scan line by scan line basis, with a do-loop type
instruction provided to generate all the scanlines of a single character row. The vertical retrace pulse can be programmed to occur anywhere on the scanline for use with interlace, or quad- /tri-interlace modes if so desired.
The instruction set includes a set of video instructions and a set of control instructions. The video instructions include a DISPLAY STRING instruction, a REPEAT CHARACTER instruction, a WINDOW instruction, and a set of BLANK DISPLAY instructions. The control instructions include a LOAD instruction, a LOOP instruction, a SET CURSOR instruction, and a SET ROW COUNTER instruction. The video instruction formats are set forth in Tables 1A-D, and the control instruction formats are set forth in Table IE.
Each video instruction includes one-bit fields for horizontal pulse (HP) and vertical pulse (VP). If the HP bit is set, the horizontal pulse will be generated. This provides the programmer total control over where the pulse starts on a scan line and where it ends, and thus allows the sync pulse to come any time during or before blanking. The VP bit provides the same flexibility. A number of the video instructions also contain a one-bit field specifying an interrupt to micro- engine 15.
The DISPLAY STRING instruction allows a scan line to be built up in segments from various parts of memory. The instruction specifies a starting address for sequential
display, namely, the address from which accesses have to start. This address is automatically incremented at the end of each memory read. It also specifies a length of string (less one), which is counted down to zero before the next display list instruction is executed, while displaying each character sequentially from the address indicated. The DISPLAY STRING instruction accesses the display buffer in system memory 12 for character code and attribute and the font memory 13 for the actual bit pattern as many times on every scanline as there are characters in a row. The instruction also specifies a status line indicator, which if set, causes the attribute data to be loaded from a fixed-status attribute register, and all display memory accesses yield character code data.
The REPEAT CHARACTER instruction is used to generate the window border and overscan regions. The instruction specifies the character code and attribute, and the number of repetitions (less one) of the character. It also specifies whether the cursor signal is to be activated for the scan line. A match to the column location generates the actual cursor signal sent to the attribute logic. The instruction does not access system memory 12 and accesses font memory 13 only once per repeated character per scan line. (In a present version, the REPEAT CHARACTER instruction ignores the character code and only repeats the background color.)
The WINDOW instruction is executed at the start or end of a window scanline and creates the configuration
necessary for the window, which may be totally different from the background display.
The four BLANK DISPLAY instructions are used to generate the blanking pulse for a specified number of character times during each scanline. In addition to specifying the length of the blanking pulse (in terms of character times), the instructions specify a 15-bit address of the next DLP
instruction to be executed. The next DLP instruction address must be calculated during the blanking period, especially for those instructions that have to be synchronized to the display timing. The instructions include NOP (opcode=00), which performs no function other than those outlined above, and JUMP (opcode=01), LOOPBACK (opcode=10), and INCREMENT LOOP COUNTER (opcode=ll) instructions, each of which performs another function in parallel.
The JUMP instruction specifies an end-of-screen jump to the start of the display list indicated by the next display list address field.
The LOOPBACK instruction specifies looping back to the next scan line of the present character box. During this time the loop counter is first incremented by a value
determined by the F0 and F1 bits and then compared with the final value. If the counter value exceeds the final value, loopback is not performed, and the next consecutive display list instruction is executed. Otherwise, loopback occurs to the address specified in the address field.
The INCREMENT instruction causes the loop counter to be incremented by an offset given by the value defined by the F0 and F1 bits, but performs no comparison or branch.
The control instructions do the flow control for the video instructions and the housekeeping chores for the display, such as cursor controls, color palettes, etc. There are two formats for these instructions, 32-bit and 16-bit. The 16-bit format is used for control operations that have a very high frequency of use.
The 32-bit LOAD instruction specifies the
initialization of a designated destination register with 16- bit data. The seven possible destination registers are the attribute for the status line, the primary cursor coordinates, the print-box start coordinates, the print-box end coordinates, and three display configurations.
The 16-bit LOOP instruction (bit(12)=0, opcode=01) specifies a range of scan rows, and causes a loop on the succeeding instructions until a LOOPBACK instruction is
encountered. The loop counter is started at the specified start value and finished when the loop counter exceeds the specified stop value.
The 16-bit SET CURSOR instruction (bit(12)=0, opcode=10) sets the cursor column or row register to the specified 8-bit value. One bit specifies whether the row register or the column register is to be set.
The 16-bit SET ROW instruction (bit(12)=1) loads the specified 5-bit value into the screen row register.
Display Control Logic Details
Figs. 3A and 3B are detailed block diagrams of the display control logic illustrated in Fig. 2. Fig. 3A shows the various elements that define instruction sequencer 22,
instruction register 77, portions of initial instruction processor 80, holding register set 82, and execution register set 85. Fig. 3B shows the elements that define timing
generator 87, data access machine 90, video data queue 95, attribute decoder 45, and video interface 47. Portions of execution register set 85 are shown in phantom in Fig. 3B in order to facilitate correlation with Fig. 3A.
Fig. 4 is a timing diagram illustrating the execution of DLP instructions to the point where entries are loaded into video data queue 95. Two time bases are relevant to the operation of the display control logic. As noted above, DLP instructions and character codes and attributes must be fetched from system memory 12. Since. access to the system memory is arbitrated with other devices in the system, most notably micro-engine 15, the portions of the display control logic that require memory accesses are based on timing established by memory cycles. A memory cycle is divided into time units designated TUO, TU1, TU2, and TU3. The data are then loaded into video data queue 95 based on this timing. A different time base is used for reading data out of the video data queue and transforming it to a video signal. Timing for these operations is determined by a dot clock synchronized to the display and a character clock based on the dot clock.
A program counter 115 specifies an address in system memory from which a DLP instruction is fetched and loaded into instruction register 77, which is clocked by TU3. Decoding occurs immediately at an instruction decoder 120, and control instructions are executed (as will be discussed more fully below) . Holding register set 82 includes a set of registers, different subsets of which are loaded depending on the
instruction, as defined by instruction decoder 120. These include a Scan Stop register 122, a Scan Count register 125, a Video Timing register 127, a Font/Color register 130, a Count Value register 132, a Code/Address register 135, and a Scan Row register 137. Additionally, a portion of the instruction may be loaded into one side of an adder 140 associated with Scan Count register 125.
The contents of holding register set 82 are passed on, for the most part, to corresponding elements in execution register set 85. Specifically, the content of Scan Stop register 122 and the output from adder 140 are communicated to a comparator 150; the content of Scan Count register 125 is communicated to the other side of adder 125 and to a Scan Line register 152 ; the contents of Video Timing register 127 and Font/Color register 130 are communicated to respective
corresponding registers 155 and 157; the content of Count Value register 132 is loaded into a down counter 160; and the content of Code/Address register 135 is loaded into an address counter 162. Scan Count register 125 is initially loaded from instruction register 77 to set up a loop, but is subsequently updated from the output of adder 140 during iterations within the loop.
The operation of the DLP may be explained with reference to the execution of a specific instruction sequence to display a line of characters on the screen. Assume that it is desired to display the first row of the display with 80 characters whose codes are stored in contiguous locations in the system memory starting at address Startl. For illustrative purposes, a simplified assembler language will be used.
Numbers are in decimal, and counts are assumed to go from 1 to N as opposed rather than 0 to (N-l) .
A representative sequence of instructions, written in the simplified assembler language, would be as follows:
SET ROW 1
LOOP 1, 16
LOOP1:
DISPLAY STRING Startl, 80
NOP 3
NOP 6, HP
LOOPBACK 5, LOOP1
The above sequence consists of:
(1) a SET ROW instruction to specify the first row on the display; (2) a LOOP instruction to set up a loop for 16 scan lines; (3) a DISPLAY STRING instruction within the loop to generate one scan line of display characters for each pass through the loop; (4) two NOP instructions within the loop to display blanks and set up the horizontal pulse for each pass through the loop; and (5) a LOOPBACK instruction to close the loop.
The execution of this instruction sequence will now be described with specific reference to the DLP elements described in connection with Figs. 3A-B.
The SET ROW instruction is a 16-bit control instruction that causes the row number to be set to the value specified. This instruction causes the specified value (in this case 1) to be loaded into Scan Row register 137. The LOOP instruction is a 16-bit control instruction specifying the scan lines to be processed within the loop.
This instruction causes the starting scan line (0) to be loaded into Scan Count register 125 and the ending scan line (15) to be loaded into Scan Stop register 122.
The DISPLAY STRING instruction specifies the starting address and length of a string of characters to be displayed as part or all of a row on the display. This instruction
initiates a request for memory and causes the length of the character string (80) to be loaded into Count Value register 132 and the starting address (Startl) to be loaded into
Code/Address register 135.
These values are then loaded into down counter 160 and address counter 162. The address stored in address counter 162 is applied to the system memory, and the character code and attribute are retrieved. Upon successful completion of the memory read, the down counter is decremented and the address counter is incremented. At this time, the character code and attribute from memory, along with the content of Scan Line register 152 and the font code from Font/Color register 130 are loaded into video queue 95. This sequence continues until down counter 160 reaches zero, which signifies the correct number of characters on the scan line have been entered into the queue.
At this point, the next instruction is executed.
This is a NOP instruction whose effect is to generate a
specified number of blanks. The specified number of blanks is loaded into Count Value register 132 and the character code and attribute for a blank are loaded into Code/Address register 135. These are transferred to down counter 160 and address counter 162. Down counter 160 is decremented while address counter 162 is allowed to act as a simple register. The content of address counter 162 is passed directly through data access machine 90 without accessing memory. The appropriate number of queue entries are made, at which point the next instruction is executed.
The next instruction is also an NOP, which generates a number of blanks, but has the horizontal pulse bit set. This is passed through timing registers 127 and 155 to the timing logic to end the scan line.
The next instruction is a LOOPBACK instruction, which generates a number of blanks and increments the loop counter stored in Scan Count register 125. If the value stored in Scan Count register 125 has not exceeded the value stored in Scan Stop register 122, the address field in the LOOPBACK
instruction is loaded into program counter 115. This causes another pass through the loop to allow the next scan line to be processed. The entire process (execution of DISPLAY STRING and NOP instructions) is repeated 15 times until the value stored in Scan Count register 125 has reached the value stored in Scan Stop register 122.
As these instructions are being executed, and the character codes and attributes are being loaded into the top of the queue, previous entries are read out at the bottom of the queue at a rate determined by the character clock. The
character clock is a signal having a frequency that is a sub- multiple of the dot clock frequency, as determined by a divider 170.
The queue entries are then read out into font type, scan line, character code, and attribute registers 172, 175, 177, and 180. For each entry read out of the queue, the font type, character code, and scan line, in that order, are used to define an address to font/code memory 13, and the data returned from that memory is applied to a dot shifter 190. Dot shifter 190 is clocked by the dot clock, and provides the actual bit stream(s) that define(s) the modulation of the video signal. The character code and attribute stored in registers 177 and 180 are applied to attribute decoding circuitry 45.
Thus, it can be seen how the SET ROW, LOOP, DISPLAY STRING, NOP, and LOOPBACK instructions operate to allow
building a row of characters, character slice by character slice within a given scan line, and scan line by scan line to make up the full row of characters. The operation of the DLP to execute the other instructions is summarized below.
The REPEAT character instruction causes the specified number of repetitions (less 1) to be loaded into Count Value register 132 and the specified character code and attribute to be loaded into Code/Address register 135. The character code and attribute are then passed to address counter 162, and made directly available to the queue since no memory access is required.
The JUMP instruction (one of the BLANK DISPLAY instructions) causes the specified next DLP instruction address to be loaded into program counter 115. It is noted that the NOP instructions do not affect the program counter. The
INCREMENT LOOP COUNTER instruction performs like the LOOPBACK instruction but does not cause a branch.
The WINDOW instruction causes the specified window border character code and attribute to be loaded into
Code/Address register 135 and the font select field to be loaded into Font/Color register 130. This is set up only, since the actual window coordinates are defined by the program.
Random Display of Character Memory
The DISPLAY STRING instruction provides flexibility and efficiency in displaying rows of characters. More
specifically, a row of characters on the display can be built up piecemeal from different parts of memory by programming a sequence of DISPLAY STRING instructions, each specifying the starting address of a portion of the line, and the number of characters in that portion. A significant use of this
versatility is for placing windows on the display without requiring data transfers between memory locations.
A representative sequence of simplified assembler language instructions for setting up the ninth and tenth rows including the top border and first row of the window is as follows:
SET ROW 9
LOOP 1, 16
LOOP9 :
DISPLAY STRING Start9, 20
WINDOW (Left Corner Char), Attr
REPEAT (Border Char), Attr, 39
WINDOW (Right Corner Char), Attr DISPLAY STRING (Start9+61), 19
NOP 3
NOP 6, HP
LOOPBACK 5, LOOP 9
SET ROW 10
LOOP 1, 16
LOOP10:
DISPLAY STRING Start10, 20
WINDOW (Border Char), Attr
DISPLAY STRING Startwin, 39
WINDOW (Border Char), Attr
DISPLAY STRING (Start10+61), 19
NOP 3
NOP 6, HP
LOOPBACK 5, LOOP10
In this sequence the starting address Start10 for row 10 is equal to Start9+80 since it is assumed that the background screen characters are stored in contiguous locations.
Similarly, subsequent rows of the window will have starting addresses incremented by the window width (assuming the window characters are stored in contiguous locations).
Discussion of the Software
Appendix 1 (Copyright © 1990, Unpublished Work, Chips and Technologies, Inc.) provides a source code listing of DLP instructions for generating the display data for a 24x80 display. In the specific example, an extra non-display control character is read out at the beginning of each scan line.
Additionally, the window borders are drawn using the DISPLAY STRING instruction rather than the REPEAT CHARACTER
instruction.
Conclusion
While the above is a complete description of the preferred embodiments of the invention, various alternatives, modifications, and equivalents may be used. Therefore, the above description should not be taken as limiting the scope of the invention which is defined by the appended claims.
Figure imgf000020_0001
1
011
0
Figure imgf000021_0001
Figure imgf000022_0001
Figure imgf000023_0001
Figure imgf000024_0001
Figure imgf000026_0001
Figure imgf000027_0001
Figure imgf000028_0001
Figure imgf000029_0001
Figure imgf000030_0001
Figure imgf000031_0001
Figure imgf000032_0001
Figure imgf000033_0001
Figure imgf000034_0001
Figure imgf000035_0001
Figure imgf000036_0001
Figure imgf000037_0001
Figure imgf000038_0001
Figure imgf000039_0001
Figure imgf000040_0001
Figure imgf000041_0001
Figure imgf000042_0001
Figure imgf000043_0001
Figure imgf000044_0001
Figure imgf000045_0001
Figure imgf000046_0001
Figure imgf000047_0001
Figure imgf000048_0001
Figure imgf000049_0001
Figure imgf000050_0001
Figure imgf000051_0001
Figure imgf000052_0001
Figure imgf000053_0001

Claims

WHAT IS CLAIMED IS:
1. For use in combination with a video display, a program memory a display memory, and a font memory, terminal control circuitry comprising:
means, responsive to the occurrence of a particular type of instruction specifying a starting address and a string length for (1) retrieving a display data item from each of a number of contiguous storage locations in the display memory, starting at the specified address, said number being the specified string length, and (2 ) converting each display data item to a character segment of a scan line.
2. For use in combination with a video display, a program memory, a display memory, and a font memory, terminal control circuitry comprising:
video data queue means, having a queue input and a queue output, for storing entries communicated to said queue input and presenting stored entries at said queue output in FIFO fashion;
character output means, responsive to entries at said queue output, for placing corresponding portions of characters on the display;
control means, responsive to instructions fetched from the program memory, for directing corresponding
operations; and
means, associated with said control means and
responsive to the occurrence of a predetermined type of
instruction, designated a DISPLAY STRING instruction, having first and second operands specifying a starting address and a string length, for (1) retrieving a display data item from each of a number of contiguous storage locations in the display memory, starting at the address specified by said first
operand, said number being the string length specified by said second operand, and (2) communicating each display data item, so retrieved, to said queue input as at least a portion of a queue entry.
3. The terminal control circuitry of claim 2 wherein said character output means comprises:
font memory access means, responsive to a given entry at said queue output, for retrieving font data stored at a font memory location represented by said given entry; and
video conversion means, responsive to said font data, for generating signals operative to place said font data on the display.
4. The terminal control circuitry of claim 2, and further comprising:
means, associated with said control means and
responsive to the occurrence of two predetermined instructions, designated LOOP and LOOPBACK instructions, said LOOP
instruction having operands specifying a series of scan lines, said LOOPBACK instruction having an operand specifying a transfer address, for (1) executing a sequence of instructions following the occurrence of said LOOP instruction until said LOOPBACK instruction is encountered, and (2) branching to the instruction immediately following said LOOP instruction until said sequence of instructions has been executed for all scan lines in the specified series.
5. For use in combination with a video display, a program memory, a display memory, and a font memory, terminal control circuitry comprising:
scan line means for storing a range of scan lines and a current scan line;
string length means for storing a string length and a current position in a string;
display memory address means for storing a starting display memory address and a current display memory address;
display memory access means, responsive to said current display memory address, for retrieving display data stored in said display memory at said current display memory address;
video data queue means, having a queue input and a queue output, for storing entries communicated to said queue input and presenting stored entries at said queue output in FIFO fashion;
means, responsive to said current scan line and said display data, for formulating an entry and communicating same to said queue input;
font memory access means, responsive to a given entry at said queue output, for retrieving font data stored at a font memory location represented by said given entry;
video conversion means, responsive to said font data, for generating signals operative to place said font data on the display;
an instruction register;
means for fetching instructions from the program memory and loading same in said instruction register;
control means, responsive to the content of said instruction register, for directing corresponding operations;
means, associated with said control means and
responsive to the occurrence of a predetermined type of
instruction, designated a DISPLAY STRING instruction that specifies a string length and a starting address, for (1) storing the string length and starting address, so specified, in said string length means and said display memory address means, (2) activating said display memory access means a number of times corresponding to the specified string length to retrieve display data from a range of sequential locations starting at the specified starting address, and (3) presenting corresponding entries at said queue input, and
means, associated with said control means and
responsive to the occurrence of two predetermined instructions, designated LOOP and LOOPBACK instructions, said LOOP
instruction having operands specifying a series of scan lines, said LOOPBACK instruction having an operand specifying a transfer address, for (1) executing a sequence of instructions following the occurrence of said LOOP instruction until said LOOPBACK is encountered, and (2) branching to the instruction immediately following said LOOP instruction until said sequence of instructions has been executed for all scan lines in the specified series.
6. The terminal control circuitry of claim 5 wherein said scan line means comprises:
a scan stop register having an input coupled to said instruction register;
a scan count register;
an adder having an output, a first input coupled to said scan count register, and a second input coupled to said instruction register;
means for loading said scan count register from said instruction register in connection with the execution of a LOOP instruction and from the output of said adder in connection with the execution of a LOOPBACK instruction; and
means for comparing the content of said scan stop register with the output of said adder to determine the
completion of a loop.
7. The terminal control circuitry of claim 5 wherein said string length means comprises:
a count value register having an input coupled to said instruction register; and
a down counter having an input coupled to said count value register, for counting down in response to a signal from said display memory access means signifying a successful memory access.
8. The terminal control circuitry of claim 5 wherein said display memory address means comprises:
an address counter having an input coupled to said address register, for counting up in response to a signal from said sisplay memory access means signifying a successful memory access.
PCT/US1990/002886 1990-05-14 1990-05-14 Display list processor for terminal controller WO1991018353A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US1990/002886 WO1991018353A1 (en) 1990-05-14 1990-05-14 Display list processor for terminal controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1990/002886 WO1991018353A1 (en) 1990-05-14 1990-05-14 Display list processor for terminal controller

Publications (1)

Publication Number Publication Date
WO1991018353A1 true WO1991018353A1 (en) 1991-11-28

Family

ID=22220875

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1990/002886 WO1991018353A1 (en) 1990-05-14 1990-05-14 Display list processor for terminal controller

Country Status (1)

Country Link
WO (1) WO1991018353A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0840276A2 (en) * 1996-11-01 1998-05-06 Texas Instruments Incorporated Window processing in an on screen display system
EP0840277A2 (en) * 1996-11-01 1998-05-06 Texas Instruments Incorporated Window processing in an on screen display system
US6452641B1 (en) 1996-11-01 2002-09-17 Texas Instruments Incorporated Method and apparatus for providing and on-screen display with variable resolution capability

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4345245A (en) * 1979-11-26 1982-08-17 Eltra Corporation Method and apparatus for arranging segmented character groups in a digital typesetter
US4346377A (en) * 1980-05-30 1982-08-24 Eltra Corporation Method and apparatus for encoding and generating characters in a display
US4527252A (en) * 1981-06-05 1985-07-02 Xerox Corporation Character generator
US4843405A (en) * 1987-06-12 1989-06-27 Minolta Camera Kabushiki Kaisha Method of controlling reproduction of image in bit-map controlled laser printer
US4907172A (en) * 1984-12-28 1990-03-06 Minolta Camera Kabushiki Kaisha Character generator with clocking circuitry

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4345245A (en) * 1979-11-26 1982-08-17 Eltra Corporation Method and apparatus for arranging segmented character groups in a digital typesetter
US4346377A (en) * 1980-05-30 1982-08-24 Eltra Corporation Method and apparatus for encoding and generating characters in a display
US4527252A (en) * 1981-06-05 1985-07-02 Xerox Corporation Character generator
US4907172A (en) * 1984-12-28 1990-03-06 Minolta Camera Kabushiki Kaisha Character generator with clocking circuitry
US4843405A (en) * 1987-06-12 1989-06-27 Minolta Camera Kabushiki Kaisha Method of controlling reproduction of image in bit-map controlled laser printer

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0840276A2 (en) * 1996-11-01 1998-05-06 Texas Instruments Incorporated Window processing in an on screen display system
EP0840277A2 (en) * 1996-11-01 1998-05-06 Texas Instruments Incorporated Window processing in an on screen display system
EP0840276A3 (en) * 1996-11-01 1999-06-23 Texas Instruments Incorporated Window processing in an on screen display system
EP0840277A3 (en) * 1996-11-01 1999-06-23 Texas Instruments Incorporated Window processing in an on screen display system
US6452641B1 (en) 1996-11-01 2002-09-17 Texas Instruments Incorporated Method and apparatus for providing and on-screen display with variable resolution capability

Similar Documents

Publication Publication Date Title
CA1328696C (en) Method and apparatus for displaying a plurality of graphic images
US4566005A (en) Data management for plasma display
EP0279226B1 (en) High resolution display adapter
US5321810A (en) Address method for computer graphics system
US4103331A (en) Data processing display system
US5315698A (en) Method and apparatus for varying command length in a computer graphics system
US5969728A (en) System and method of synchronizing multiple buffers for display
US5315696A (en) Graphics command processing method in a computer graphics system
KR900006288B1 (en) Controller for display
EP0524362A1 (en) Display adapter
US5091721A (en) Acoustic display generator
US5056041A (en) Data processing apparatus with improved bit masking capability
US5293587A (en) Terminal control circuitry with display list processor that fetches instructions from a program memory, character codes from a display memory, and character segment bitmaps from a font memory
JPH0830948B2 (en) Image display
EP0149188B1 (en) Display control system
US4860251A (en) Vertical blanking status flag indicator system
US4562450A (en) Data management for plasma display
WO1991018353A1 (en) Display list processor for terminal controller
JPH06186942A (en) Display device
JPS60118890A (en) Programmable video display generator
US5999200A (en) Method and apparatus for automatically controlling the destination of a graphics command in a register file
JP2761335B2 (en) Screen display device
EP0121070A2 (en) Plasma display management systems
EP0228745A2 (en) Raster scan video controller provided with an update cache, update cache for use in such video controller, and CRT display station comprising such controller
JPS6327727B2 (en)

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): DE JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB IT LU NL SE

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642