CA1053816A - High-resolution character generator - Google Patents

High-resolution character generator

Info

Publication number
CA1053816A
CA1053816A CA208,534A CA208534A CA1053816A CA 1053816 A CA1053816 A CA 1053816A CA 208534 A CA208534 A CA 208534A CA 1053816 A CA1053816 A CA 1053816A
Authority
CA
Canada
Prior art keywords
character
memory
display
register
information
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
CA208,534A
Other languages
French (fr)
Other versions
CA208534S (en
Inventor
Butler W. Lampson
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.)
Xerox Corp
Original Assignee
Xerox Corp
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 Xerox Corp filed Critical Xerox Corp
Application granted granted Critical
Publication of CA1053816A publication Critical patent/CA1053816A/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/42Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of patterns using a display memory without fixed position correspondence between the display memory contents and the display position on the screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

HIGH-RESOLUTION CHARACTER GENERATOR
ABSTRACT OF THE DISCLOSURE

The present invention relates to the display of video information on an alpha-numeric display medium by means of a character generator which is organized of random access memories and registers. The character generator organization provides for a high definition of characters, variable line width, proportional space characters, and a large number of different characters in a given font.

Description

S~8~6 BACKGROUND OF THE INVENl ION
Thi~ invention relates to a device for generating video signals from binary information, and more particularly to a device for processing symbol information stored in digital form in a random acce~s memory configuration for use on a display medium.
A fundamental operation in display systems is the conversion of data from its original ~orm into information that is compatible with visual presentation.
The input data may either be digital or analog, which may also include data entered into the system by means of an input device such as a light pen. The total process is generally designated by the generation functional term data conversion. The output inform;~tion from digital computers, for example, is often stored in a memory device and read out from such a device onto a cathode ray tube display. Prior art cathode ray tube display devices for this purpose are generally specially constructed units utilizing relatively slow speed scanning in which the scanning beam is deflected or bent to form the symbols to be displayed in accordance with the memory output. The output information of a computer as handled in the prior art for video display, however, is not -suitable for display on the screen of an ordinary tele-vision receiver in view of the relatively high-speed linear scan utilized in television apparatus.
A device taught by Johnson in U.S. Patent No. 3,528,068 provides means for processing the output of the digital computer so that it is converted to a form suitable for display on the screen of an ordinary television .
-2- ~$

. . .

0~3~1~
receiver. His device accomplishes this result by first storing the symbol information to be displayed in a high-speed random access memory, with the information being in binary codea form. The binary coded information is read sequentially out of the memory into a symbol generator where it is translated into a series of linear dot patterns. A
predetermined number of lines of such dot patterns represent the symbols to be displayed. The symbol generator is synchronized with the television cathode ray tube scan so that the dot pattern output which is fed to the video circuits of the receiver appear on the cathode ray tube in appropriate positions on the scanning raster. Th2 symbol generator forms the dot patterns of each line of the symbols in a row in sequence, appropriate gating circuitry being utilized in con-junction with the magnetic read-out core to display the proper dot patte,rns at th~ appropriate times. ~ ' SUMPi~RY OF THE INVENTION`.
In accordance with one aspect of this invention there is provided a device for generating a predetermined text of , character information to be displayed on a linear scan video display device, comprising: a font memory for storing binary information representing a plurality of characters, said font memory being defined by a plurality of storage cells each of which is capable of storing binary information in a dot matrix array of predetermined dimensions; a display list memory for storing instructions defining said predetermined text; and , control means responsive to said instructions for controlling ,`, said font memory to generate the character information of said ~ ' predetermined text in a format capable of being displayed on said display device, said control means including indexing means for indexing said font memory such that variable-sized , dot matrix arrays consisting of two or more concatenated ~-~ _ 3 _ `..

~ ~538~
storage cells may e used to define character information to be displayed.
By way of supplemental explanation, there is provided a device for processing symbol information - 3a -~ , ~()S38~6 stored in binary codQd form such that video signals are generated which may be utilized on a display medium.
Specifically, the present invention provides the genera-tion of alpha-numeric characters from the conversion of binary data by means of random access memories, registers, and control elements~ Various embodiments of the invention are characterized by various features~ One feature is that a character may be represented within memory cells defining a font memory~ such cells capable offorming variant sized-matrices which define the given characters. The fontmemory may also include an overlay memory which allows any one of a field of characters to be overlaid on any charact-er being displayed from the font memory. ~nother feature is that any text to be displayed is actually stored in an additional random access memory in the form of instructions for controlling the generation of binary information to be processed. In the preferred embodiment, a computer is used to generate such binary information. The computer executes the instructions stored in this memory and generates a 20 string of bits (binary digits) in accordance with these instructions which is used to produce video signals for a display medium Still another feature is that the memory and control organization of the character or video gener-ation apparatus provides for complex rasters on a displa~
medium. In addition to variant sized characters, a raster -may be generated which has a plurality of display fields, each of which may contain different alpha-numeric repre~Qntations.
BRIEF DESCRIPTION OF THE DRAWINGS

Figure 1 is a functional block diagram illustrating the basic elements of the system of this invention, ~L05381~;

Figure 2 is a functional block diagram of the display list processor portion of the character generator of Figure 1, Figure 3 is an illustration of the organization of the font memory shown in Figure~
Figure 4(a) is a graphical illustration of a simple display raster in contrast to Figure 4(b) which is a display raster constituting a plurality of display fields -~
or segments, : `
Figure 5 is a graphical illustration of the :
functional development of a raster, and Figure 6 is a functional block diagram of the video processing el`ements of the character generator. :
sho-n in Figure 1.

~;:

'~ ~
''"'. ' .
, .
'. . -.

1~53~
- DESCRIPTIO~ OF THE PREFERRED EMBODIMENT
In ~igure 1 is shown the basic elements of the system which converts binary information to a video signal which may be utilized on a display medium.
Display media contèmplated would include, but not be limited to, ~elevision receivers, cathode ray tube dis-play terminals, and electrostatic and graphics printers.
In this preferred embodiment, however, it will be assumed that the display medium is a cathode ray tube monitor 1.
Any conventional T.V. type CRT terminal which sequentially scans the CRT screen would suffice. For optimum design, the terminal would use a 15-inch, 1029-line monitor oriented vertically in order to : -6-- . ,~ .. , ; ~, ., ` - -S38~6 produce a video raster consisting of 1209-line horizontal video comprising a display area slightly larger than a standard sheet of 8-1/2 x 11 paper. The display may further be equipped with an independent keyboard, a keyset and an input device 3, such as a digital pointer, for positioning a cursor on the display area. A single coaxial cable 5 for the video signals and three twisted pairs 7 for digital data, i.e., input, output and clock, would connect the terminal to a central site where the character generator 10 and its associated computer 12 are located. If a plurality of terminals were contemplated, the connection -? would be radial in that each terminal would have its own set of connèc~ing wires. The terminal could even include a collection facility through conventional logic design for accepting input data on the terminal and transmitting it to the controlling computer.
The input devices 3 are connected through the line 7 to the computer 12. A general purpose computer suitable for this embodiment is the Data General Nova 1200.
The binary output of the computer 12 is connected to the input of the character generator 10 which processes the bina~ry information to generate output video signals. A
video mixer 14 receives signals coming from a TV camera 16, processes the synchronizing information which is a part of these signals, and generates a signal called horizontal (H) blank and vertical (V) blank which is transferred to the character generator 10 for synchronizing the video signals generated by the generator 10.
Instead of the T.V. camera 16, one could provide the nacessary synchronizing signals from any ~C~538~L6 commercially available synchronizing source. The T.V.
; camera 16 is also used for providing an external video signal which is used for implementing the feature of selecting external video under display list control in the character generator 10. Alternative sourcas o~ external video are tape recorders or other character generators. The video mixer 14 under control of the character generator 10 can qelect either the external video or ~ideo from tha character generator 10. The video signals processed by the mixer 14 are transferred over the cable 5 to the CRT
monitor 1 for viewing.
Dot matrix representations of characters to be displayed on the monitor 1 are stored in a read/write font memory 20 within the generator 10, as shown in Fi~ure 2.
The memory 20 is organized into cells, each cell containing 256 bits arranged in a 16 x 16 array as shown in Figure 3.
There are 64 cells in a bank and up to 8 banks per terminal. A bank could be optionally configured with 32 double-cells which are made up of two cells concatenated vertically. ~he memory 20 could be any commercially available random access memory organized in this fashion and designed to have sufficient speed to handle the desired number of characters per line to be displayed on the monitor 1.
A character is represented in the memory 20 by any number of cells concatenated horizontally. Either single or double cells may be used so that a character may be represented by a 16 X 16 dot matrix, or 32 X 16, 16 X 32, 32 X 32, 16 X 48, etc. Associated with each character are also two numbers. One is a width, which . . , , . , , ~ .
.. , . - . ~ :
.. . .. . . ...

.
38~;
indicates the number o~ dots taken up by the character in a horiæontal trace on the display screen. The width indication includes any trailing white space as well as the deflnition of the character itself. A second number associated with each character is a displacement which allows its respective dot matrix to be displaced upward on the text line of the display screen. The displacement provides a font whose total vertical height is greater than 16 to be represented with single cells, provided that no individual character is higher than 16. Additionally, an extension flag is associated with each character. If the flag is set, the width is assumed to be 16 plus the width of the extPnsion and the width field for the character is interpreted by the character generating system of Figure 2 as specifying another character denoted the "extension" which represents the next 16 dots. Since the extension is treated by the system like any other character, it in turn may have an extension so that characters of any width can be processed.
- T~e dot matrices are in fact stored in the form of binary data or bits-which appear on the display screen of the monitor 1 as small rectangles. The aspect ratio of these rectangles are extremely important for font design and may be controlled by conventional means within the terminal for opti~ized viewing of the display raster. The ` height of a character is fixed by the font definition as - stored in the memory 20 and cannot be altered for a given font; however, the width of a character is controlled by the number of bits in the character definition ~X) and the speed with which these bits are sent to the monitor 1.

_g_ : . . . . . .

1053~316 The font memory 20 is indexed by a display list character code from data register 58 and 5 low-order bits of a scan line counter 24 with displacement (off-set) added. If the scan line counter 24 plus displacement is greater than 15 ~or 31 for a 16 X 32 matrix), zeros are returned. The scan line counter ?4 is a conventional register which keeps track of which row of the dot matrix should be displayed next by counting down after each successive scan line has been traced. The bottom row may be arbitrarily numbered 0 and scanned last. Thus, if a text line occupies 20 scan lines (approximately-5mm on a 15-inch monitor oriented vertically), the counter 24 will successively count down the values 19, 18, ..., 1, 0. When the value becomes negative 20 is added back to the counter 24, and the next text line is displayed.
A font description memory 26 contains inrormation for the three font description parameters: character width, vertical displacement and horizontal extension. The memory 26 is a 256 word by 12 bit bipolar memory providing information for each of 256 font characters. The data is stored in the following format: -C4 C5 C6 C7 C8 C~ C10 Cli _ C12 _C13 _C14 C15 - _ DIS : X : _ _ WX _ .
If X = 0, WX -is interpreted as character width; if X c 1, WX is used to form the font memory address for the horlzontal extension. DIS is the ~ertical displacement for correct placement of characters.
Character Width (X = 0): This eature determines the actual number of bits to be displayed for a given character. The value in WX is used to compute the actual ' -10- ' 105~816 width in the following way:
W = WX + 4 (even values only~
actual Although WX has 7 bits, only bits 11-14 are used for width;
widths may range from 4 to 32.
Horizontal Extension (X = 1): This feature allows definition of characters having a 32 X 16 or 32 X 32 font definition matrix. The extension indicates that a character is to be accessed in two (or more) font character locations:
one pointed to by the current character and the other pointed `
-10 to by WX. The displacement for both left and right halves is taken independently. The width for the left font description ,~
- matrix is taken to be 16 while the width for the right font description (extension) is accessed in the same manner as any other character. Multiple extensions are possible.
Vertical Displacement: This feature allows vertical ~-positioning of each 16 X 16 or 16 X 32 font definition matrix. : -The DIS field is used to compute the actual displacement in the following way:

~DIS = DIS X 2 - actual 20 This allows displacement to assume val-ues ~rom 0-14 in steps -of 2. This feature will allow fonts to have an effective height greater than the cell height used by the font. ` -Another memory 28 is connected in paralle~l with the font memory 20 to the input o~ an OR gate 30 for providing . ,; ~
:
: .

..

,,:
`,', ~'' .
. ~ ..

- : -: - - . . . .. .

1~538~f~
any one of 8 eharacters to be overlaid on any font character ~eing displayed from the memory 20. The dot ma~rix represen-tation of an overlay character is simply ORed into that of the font character. The overlay character is selected by a 3 bit code from data register 58 and 5 low-order bits of the scan line counter 24 without displacement added. The overlay memory 28 is convenient for the use of cursors which lie on integral character positions and for underlines, overbars, accents, and other symbols. The font and overlay memories 20 and 28 are accessed under control of a display list memory 34 and the scan line counter 24. The display list memory 34 is used - to select the character to be displayed at each position on a scan line and control the value of the scan line counter 24, as will be further described herein.
lS Overlay memory 28 is ilplemented with 512 X 16 bit bipolar memory, thus providing 8 overlay characters each consisting of two 16 X 32 bit character definitions.
The flrst character definition, referred to as the overlay character, is accessed when displaying a normal ~ont character. The second character definition, referred to as the overlay extension, is accessed when displaying a~
font extension. Both mode and width information will be~
identical to that of the character being o~erlayed.
ii, -`i The text to be displayed is stored in the r=~ry~
34 and is referred to as display lists. The text is stored in binary form constituting instructions for the character generator lOo In order to create the display raster, the generatbr 10 executes these instructions and generates a string of bits which is used to modulate the electron beam of the cathode ray tu~e in the display monitor 1 as -12- _ ;:

1~313~6 ; - . .
the beam scans across the display screen. ~or every scan line, the generator l0 executes instructions which produce the appropriate display for each character intersected by that scan line.
The display list me~lory 34 contains instructions which are divided into two classes of list memory words, display characters and control words.
The list word is interpreted as fol1ows:
C4 C5 C7 C8 _ C15 : 0: OVL : CHAR ~ :

C4 C5 C6 C7 C8 _ _ _ C15 ~ J: OP _ _CHA~ _ :

Bit number C4 through C15 corresponds to computer words with C15 the least significant bit.
Display Words (C4 =0): CHAR is interpreted as an 8 bit character to be displayed with the current mode, ~nd is displayed with one ~r 8 overlay characters selected , :

.
- ~

~' ~

~ - 10~38~
by OVL.
Control Word (C4 - 1) There are ~our instructions that can be executed as a control word which are selected by the 2-bit OP field. Each of these instructions can be modified by J to be a jump or non-jump instruction. All jump addresses are generated by taking the next 12-bit word, left shifting 1 and placing a zero in the least significant bit.
ADD to SLC (OP = 0): This control word will cause the contents of CHAR to be added to the scan line counter (SLC) 14 If J is a zero (non-jump), this add may result in a positive or negative value for the counter 14, and processing continues at the next word in the display list. If J is a one (jump), CHAR is adde~ to the counter l~, and the result is examined.
If the result is non-negative, the result is placed in the counter 14 and the next word in the display list is used as a jump address. If the sum of CH~R and SLC is negative, the add is inhibited and processing continues at the next word plus one in the display list.
TAB (OP ~ This control wor~ causes CHAR~to ~e placed in a TAB register 40, shown in Figure 5. The register 40 may contain any number from O to 255, where each increment represents 32 bit times across the scan line.
W~enever this control word is executed d~splay of characters is stopped until the contents of a TAB o~unter 42 is found to be equal to the new TAB value, after ~hich display of text resumes. The TAB counter 42 is cleare~ -~o zero by the - horizontal sync signal of the CRT moni~or 1. The basic tab function is accomplished by setting T~B to the desired value across the scan line. The start of a new line, wlth .

.

.

- - ~IL0538~6 automatic indenting is accomplished by setting TAB at the end of a line to a small value such as 0, 1, 2, etc. End of page processing can be achieved by setting TAB to some large value never reached during a scan time, such as 255.
If J = O, processing continu~ss at the next word in the display list, or if J = 1, the next word is used as a jump address.
MODE (OP = 2): This control causes CH~R to be placed in the mode register 32. The mode register 32 will effect the processing of characters which follow in the display list. The mode register 32 is interpreted as follows:
C8 not used C~ 0 = display character generator video 1 = display external sour~e video C10 1 - disable character generator video Cll 1 = select blinking option C12 1 = select high intensity C13 1 - vertical scale X2 C14 1 - horizontal scale X2 C15 not used If J=O processing continues at the next work in the display-- list, sr if J=l, the next word is used as a jump address.
CONTROL (OP=3): This control may be used for some special control functions such as halting the display processor for debug purposes, or setting flags to control some special circuits. If J=O, processing continues at the next word in the display list, or if J=l, the next word is used as a jump address. The following ex~mple illustrates - 30 the use of these instructions for a font ~aving a height of - 105313~L6 16 (20 octal).
Assume the desired display is A B C! ~ ~~~~~~~overlay ~ A B C' --1` ' High intensityJ ~ blink Display list processing is automatically started at address O with a scan line count of O or 1 (to provide ~or proper T.V.
interlace) at the end of each vertical retrace line. A
suitable display list is given below, with all ~he numbers in octal notation:
i Octal Symbolic Address Contents. Contents Action 15. 0000 6020JI,20 ï.lcrement.SLC by 20 and jUmp 0001 0040 100 to location 100 0002 6376JI,-2 decrement SLC by 2 and jump 0003 0040 100 to location 100 : :
0004 6020JI,20 increment S~C by 20 and jump 0005 0100 200 to location 200 0006 6376JI,-2 decrement SLC by 2 and jump 0007` 0100 200 to location 200 0010 4777T,255 tab to end display processin~: . -. ~ :.
O100 5000 M,O reset mode 0101 0040 0,A overlay O, char A
0102 0041 O,B overlay O, char B
_0103 0442 l,C overlay l,.char C
0104 0043 O,D overlay O, ~har .

-`- 1053131G
Octal Symbolic AddressContents Contents Action 0105 6403JT, 3 tab to edge -~3 and jump 0106 0001 2 to location 2 0200 5010M,20 set mode - high intensity . 0201 00~0 O,A overlay o, char A
0202 0041 O,B overlay O, char B
0203 5230M,230 set mode - OVL group 1, high int., blink 0204 0442 l,C overlay l,.char C
0205 6403 T,3 tab to edge +3 and jump 0206 0003 6 to location 6 The display list memory 30, then, contains five operations which may be executed:
(1) display character C with overlay V. The overlay is chosen from a set of 8 32x32 dot matrices and is simply ORed-with the dot matrix for C.
(2) tab to horizontal position n. Display of the next character starts at position.n (which must be a multiple of 32). If n is less than the current position, the next character starts at position n on the next scan line. If n is very larqe, this instruction has the:effect of 'end of frame'.
(3~ set the display mode, which controls the following features:
. intensity: full, half or off :~
- blink: on or off size: standard, double width, double height, or double size .
-17- :

1l~5;~8~6 (4~ increment the scan line counter ~SLC) by +i. This can be used to subscript or superscript the following characters, or, in conjunction with the jump instruction, to format the screen.
(5) jump to locati.on L and perform (1), (2),
(3), or (4~, If the jump is comhined with an increment, the combined increment-jump operation words as follows:
if SLC + i S 0 then begin: SLC = SLC + i;
goto L end else do nothing.
In Figure 4(a) is shown a simple raster or picture on the display screen with eight scan lines per text line and two-way interlace, with the first character of each line at position 64 in accordance with the following di~ lay list:
location contents comments 0 increment 6; jump 100 start here on new field with SLC = 0 or 1 -100 tab 64 start a new scan line ~ -at position 64 101 display A_ 102 display B _ 103 display C _ 104-5 increment -2; jump 100 2 is because of interlace _~
106-7 increment 6; jump 200 SLC is now 0 or 1. It becomes 6 or 7 since the height of the next text line is 8.
200 tab 64 201 display D _ 202 display E _ 203-4 increment -2; jump 200 _ 205 jump 300 _ 300 tab 4096 wait for end of page _ ~os;~

At the start of each field, control goes to the display list address O with SLC = O or 1 depending upon whether it is the first or second field of a frame. A
text line has been assumed to occupy 8 scan lines and hence is executed 4 times, as SLC takes on the value 7, 5, 3, 1 or 6, 4, 2, 0 depending on the fLeld. Successive text lines are entries in a list whose elements are jump instructions.
In Figure 4(b) is shown a complex raster which has segmented fields of different characteristics; it is provided for by using a combination of jumps and tabs in accordance with the following display list:
location contents O increment 10; jump A _ A tab 32; display A; ...; increment 24; jump H-_ 3~0538~6 - ~
location contents B tab 32; display B; ~ increment 12; j~m~ ~l C ' tab 32; display ~; ; increment 12; jump H
D tab 32; display D; .... ~; incremen~ 12, jump I _ .
E ~ab 32i display E; ,... ...increment 0, jump ï
F . - tab 32; display F: ..., increment 12: jump J _ ~ tab 32; display F; .... .: increment 0; jump ~
H tab 320; display H; ... ..; incxement -26; jump A;
increment B; increment -2 .jump C; increment 10, jump D
I . tab 192; display I; ... ..; increment -8; jump K;
increment 8;
J tab 192; display J; ... ..; increment -lG; jump L;
increment 0;
K .......... tab 512; display K; ... ..; increment -6; jump D, increment 6;
L tab 512; display K; ..... ; incremen.t -10; jump E; .
increment 2;
M tab 512; display M; ..... ; increment -14; jump F;
increment G; jump END
END tab 4096 .
i is the indentation for each display area, and H is the height in scan lines of a text line. The tabs allow the left margin of each display area to be set~
con~eniently without regard for~what appears to its left.
The increment and jump sequence allows the computer, as it reaches the right margin of each display area, to determine .
which text line of the next area lS intersected by the current~
scan line and to compute the proper value of the counter :
- `(SLC).14. Any combination of text lines ~ay be hàndled in this manner. : ~ ~
The increment and jump sequence .~t the end of a scan line i9 precisely the same as the se~uence bet~een .

.

~0538~;
display areas. This phenomenon may be explained by the graphical representation of the picture of Figure 5 displayed with loops which result from successful ~ump instructions which are functionally unwound, in such a manner that an entire field is displayed by the intersection of a single scan line with many reproductions of the picture.
The memory within the mode register 32 may be organized as follows:
Bits Contents Used By 0-8 Intensity/color Composer 9 Background value Composer (white/black) Blink Composer 11 Horizontal size Composer 16 Vertical size Font These bit locations thereby identify the functions indicated by the content designations and use. For example, the 9th bit would contain either a 0 or 1, respecti~ely indicating a black background or a white one. Bit location 10 could indicate the blocking of a display of a character to provide a blinking indication on the display screen to call attention.
Information from the mode reglster 32 regarding intensity, blink, and horizontal size is fed to an output buffer 50 which is interposed between the output of OR
gate 30 and the video output system, shown in Figure 6, to smooth out timing irregularities due to varying character widths. The buffer 50 also permits the character generatlng elements to run during the fly-back time of the CRT scanning system shown in Figure 1. The buffer 50 holds the 16 bits of scan line videoJ the 4 bits of character width, and any new values of mode or tab.

, ~053~

The buffer 50, as descr.ibed in United States Patent 3,952,296, issued April 20, 1976, Roger D. Bates and :
assigned to the assignee of the present invention, provides for a 16-word entry on a first-in, first-out basis. General- -ly speaking, the implementation would come from a storage medium with a read pointer, a write pointer, and a fullness count by means of 4-bit counters or registers. The location of the buffer 50 between the gate 30 and the ';':

''~"' "

.... : - .
.:, . .
:.
-22- :
:

~053816 video output ensures that the video signal will continue to be produced while the processor elements of the systeminputted to the buffer 50 are handlincl jumps, increments, mode changes or characters, which take iess than basic memory cycle time to display. This achievement is provided by the particular organization and interrelationship of the processor - elements of Figure 2.
As has already been described, a display list is . assembled in the computer 12, which list constitutes a string. of instructions indicating what characters are to be displayed on the screen, at what position the characters are to be displayed, and what kind of modes are to be used.
This binary information is transferred to the display list me~ory 34 where tha processing to video information commences.
Font information is also assembled and stored in the computer 1 whereupon at some point in time is transferred to the ~ont memory 20, the overlay memory 28, and the font descriptor memory 26.
Other external information is derived from the signals vertical and horizontal blank and FIELD. The signal vertical tv~ blank.is inputted to both the program counter 54 and the scan line~.counter 24. As well, a signal FIELD, which contains T.V. field information from the horizontal (H) blank signal through an oscillator l00 shown in Figure 6, is inputted to the scan line counter 24.
These signals ensure that during vertical blank time, the program counter 54 is cleared to zero .and the scan line ~ounter 24 is set to zero or one, depending on the T.V. field.
At the end of vertical blank the character generating elements of Figure 2 start processing information .
'.23- .

~0538~
in the display list stored in the memory 34 starting at address zero as is indicated by the program counter 54.
The information fetched is passed through the select gates 56 to a data register 58. The counter 54, gates 56, and - register 58 are conventional electronic components. The - counter 54 could be implemented by a 74161 TI module, where-- as the gates 56 and register 58 may be implemented by a 74298 TI module. The process of transferring the original binary information to and loading it into the data register 58 takes approximately one memory cycle.
The display list memory 34 and the font memory 20 are dynamic MOS memories. These memories have timing requirements for performing read or write memory cycles.
Signals for controlling such requirements are generated from a memory cycle timing and con~rol element 60. Inputs to the element 60 are requests for the initiation of access to the various memories of Figure 2. One input is refresh which satisfies a requirement of dynamic MOS memories to preserve data in the memories by initiating a refresh cycle every two milliseconds.
Another source of a request for a memory cycle is the character generator 10 itself. This request is indicated `~
by an output of the output buffer 50, identified as GEN in Figure 2. Another request is from the computer 12. If the computer 12 is to access one of the memories or registers, e.g., write new information in the list memory 34 or new font in the font memory 20, the computer 12 generates a line that represents a request into the control element 60 at a priority somewhat lower than the character genera-tor request. The last request to the element 60 is .

~0538~6 generated by cursor logic which is described hereina~ftex.
The re~uests, i.e. the refresh, generator, computer, and cursor signals, are ordered by their priority.
The highest priority request is the refresh signal. If the character generator 10 makes a request for memory access and there is no refresh request, then the character generator 10 would be given priority. If both the computer 12 and the character generator 10 request memory access, then the character generator 10 will get preference and the computer 12 will be ignored. The cursor request is assigned the lowest priority. The control element 60 generates certain control outputs: general timing and generator cycle signals go to an instruction decode element 62 whi~h coor~inates ~he distribution of control in~ormation to other elements within the system, computer cycle signals go to the computer 12 that indicate a memory cycle for the computer is taking place; and cursor cycle signals to the cursor logic that indicate a memory cycle is taking place for the cursor control elements 112 and 114 in Figure 6.
2Q The memory cycle timing and control circuit number 60 are standard timing circuits for providing the necessary trains of timing signal pulses~for transferring data into and through the generator 10. To create the timing pulses, a plurality of one-shot multi-vibrators may be used to produce a series of successive timing pulses that are selected to provide such transfer of data. Memory request information, i.e. refresh, character generator, computer, or cursor memory cycles requests, may be processed by utilizing conventional modules which perform the functions 3~ described above.

-2~- _ , .

,, . . ~ .

- i~3531316 The instruction decode element 62 is comprised of conventional decoding logic which is employed to produce an output signal Cl that is indicative of a given desired function based upon the inputs to the element 62. For example, a number of AND gates and OR gates may be combined -logically to take the binary information stored in the data - register 58, determine what kind of instruction is stored there, take that information combined with timing pulses from the control element 60 and generate the output control pulses. As an example, if bit 6 is on and bit 7 is off in the data register 58, then a mode instruction is indicated.
This instruction is decoded with an AND gate. The output of the AND gate is then inputted to another AND gate~ich has as a second input an end of cycle puls2 coming from the control element 60. ~ pulse is thereby generated which is trans-ferred to the mode register 32 to cause the register 32 to be loaded. . -When information from location zero in the list memroy 34 is entered into the data register 58, the program counter 54 is incremented by one under ~he control of the~
signal Cl from-the decode element 62. At this time the program counter 54 has a number 1 in it, and another memory - cycle is commencing. With the start of a new memory cycle, information from address 1 of the display list memory 34 is to be processed and the data from address 0 in the data register 58 is to be further processed simultaneously by the character generating elements of the system shown in-Figure 2.
The information in register 58 is further processed upon the determination by the decode element 62 of whether it represents a character for display on the monitor screen or one of the various control type words which have been ., -a~- , - . .

1(~538~;
described as being contained in the display list memory 34. For example, the information could represent a mode change word r a word to modify the scan line counter 24, or perhaps a word to set a TAB. If the register 58 is found to contain a mode change word, then at the end of the next memory cycle the mode information contained in data register 58 is loaded into mode register 32. When information is trans-ferred from the register 32, the data output from the list memory 34 located in address 1 is loaded into the data register 58, the program counter 54 is again incremented and another memory cycle starts. This sequence represents a typical memory cycle.
If the information in the data register 58 had been an 'ladd to the scan line counter", then the information in the data register 58 would have been added through adder 64 along with the current contents of the scan line counter 24.
The output of the adder 64 is then added back into the counter 24. The output of the adder 64 represents the sum of its two binary inputs. At the end of the memory cycle, the decode element 62 will generate a control pulse Cl which is trans-ferred to the scan line counter 24 to load a new valueO The new value of the counter 24 will be the sum of its present value and contents of the data register 58. The control signal Cl represents a connection between the decode element 62 and the information processing elements of Figure 2. Cl represents load and increment signals to the program counter 54 at the appropriate times. Cl also represents switching the select gates 56 to select between the output of the display list memory 34 for normal instruction or the output of font descriptor memory 26 for an extended character. It - , ~ , - . ~ . :

~0538~i further repre~ents control to the ta register 58 to receive the information from the select gates 56 at the end of each memory cycle which requires it. It represents control to load the contents of register 58 into the mode - 5 xegister 32 if the data register 58 contains a mode change word, to load a new value into the scan line counter 24 at the end of a memory cycle if the data register 58 contains the appropriate instruction. Additionally, Cl represents control to load new information i-nto a mode register 66, overlay address register 68, font address register 70, and width register 72, if the data register 58 contains a normal cha~acter to be displayed. The registers 66J 68, 70, and 72 are loaded simultaneously when the data r~gister 58 contains a character word.
In the situation of a normal character to be displayed, at the end of the next memory cycle the character address of the word contained in the register 58 is loaded into the character portion of the font address register 70. Any overlay bits are loaded into the overlay addrass . ~.... .
register 68. Information from the counter 24 is also loaded into the overlay-address and font address registers 68 and 70 at this time if required. An o~erlay address is a combination of the particular overlay character consisting of threè~bits of information and the pointer to the vertical position within the overlay character being processed.
~he information from the counter 24 represents the contents of the scan line counter 24 either directly or divided by two which is a function of the element 76 under the control of the mode register 32. The choice o identity - 30 or divide by two indicates whether or not the character - -i2~- ;
.' ": ~`'~ ' .' : ., -: ~ . : -, . , . -5~
is to be scaled vertically times two or not. If it is not scaled, then an identify address is transferred. If it is scaled by two, i.e., twice its normal height, then the value . of thè scan line counter 24 is divided by two and is trans-. ferred into the overlay address register 68. The functions of the element 76 may be provided by a 74157 TI module.
Control of the element 76 by the mode register 32 is provided by a select.signal resulting from a binary digit (bit) in the mode register 32 indicative of the last time the mode register 32 was loaded from the data register 58 from the list memory 34. Thus, the register 58 is actually under display list control to set a bit in the mode register 32 to vertically scale a character or not. ~
Similarly, the address f.or the font address register 70 is derived from contents of the scan line counter 24 through element 76 either directly or divided ~y two. In addition, the output of element 76 is applied .to the input of an adder 78 having two inputs: the scan line count from the element 76 and vertical offset..infor-mation as contained in the font descriptor memory 26. The offset information consists of three bits which are used to subtract a number from the scan line count for generating a resultant output that is transferred to the font address register 70. By subtractlng a number, a character is effectively moved.vertically up the screen (displaced) Therefore, a vertical offset is performed by subtracting some number assigned by the font descriptor of the memory 26.
The font descriptor memory 26 contains at this.time the ont description for the appropriate character since the address input to the font descriptor 26 is the character address as : .

contained in the data register 58.
Additional outputs of the font descriptor memory 26 are either width or extension information. The width information is both transferred to the width register 72 o~
as width information or back trhougl. thè select gates 56 to data register 58 as a new character, that is, the extension of the character being processed. The feedback from the descriptor memory 26 actually produces the extension of a character within the register 58. ~ bit within the descriptor memory 26 indicates whether or not there`is to be an extension, which is represented by an extended character signal to the decode element 62.
If there is not to be an extension, then the width information transferred to the width register 72 will determine the width of the new ci.aracter. Since such width information may be different from the width inform~ation relating to another character, as represented by the character code in the register 58, variable widths may be provided for each character. If an extension is indicated, the extension information contains a new character code which serves as a new address to the memory 26 for presenting new width information which will complement the extension operation.
These features thereby provide for the proportional spacing of characters on the display screen.
For special characters, if the font descriptor of memory 26 indicates an-extended character is being processed, then the width register 72 will not be loaded with width information from the memory 26. Instead, it will be loaded with a constant w., i.e., a value to indicate - 30 a width of 16. If a TAB instruction is contained in the ..

:

~OS38:1t;
data register 58, then another procedure is operational.
For e~ample, the width register 72 is forced to contain another constant u. In this preferred embodiment, the width of a TAB u is 8. TAB is a quasi-character which has been previously discussed in principle and is to be processed differently than a true character.
The values u and w are derived from the implementation of the width register 72. The width register 72 is an inte-grated circuit (74298 TI) which contains both 4 bits of memory and 4 bits of select gates. An input to the width ~053~316 register 72,either the output of the font descriptor memory 26 or another input to the register 72 simply tied to a ground potential or left floating,is selected to indicate ones or zeros to cause a value indicative of the width u or w to be loaded into the width register ~2.
If a TAB character is being processed, then the TAB value held in-the data register 58 is loaded into the character address of the font address register 70. At the - same time, a bit in the mode register 66 is set which indi-cates that character being processed is either a TAB or an extension. This bit is used in conjunction with the value in the width register 72 to direct the particular processing of a character, depending upon whether it is a TAB or an extension. A TAB character is being procèssed if a tab 15 . extension bit is set and a value of 8 is in the width register 72. On the other hand, an extended character is being processed if the tab extension is set and a width of 16 in the width register 72. Thus, TAB and extensions are processed as characters while indicating by means of the 20 - tab extension bit that they are special characters.
The addresses of characters or special characters - thus stored in the font and overlay address register 70 provide the accessing of the font and overlay memories 20 and 28, respectively. The base character and the overlay 25 - character accessed in memories 20 and 28 are thereby selected for display and read out of their respective memories -~ to their respective inputs to the OR gate 30 ~or providing video information to the buffer 50.
- An additional source of information to the buffer ~ 50 is the output of the font register 70 directly gated .
. 3~~

.. . . ~

~0~3~
through an AND gate 80 which is ORed along with the outputs from the memories 20 and 28 to the OR gate 30. This third source of in~ormation through the gate 30 is only operational during the processing of a TA13 character. Upon the incidence S of a TAB input to the AND gate 80, the TAs value stored in the register 70 is gated through to provide TAB information to the buffer 50. This in~ormation is stored in the buffer 50 in lieu of any video information as, at the same time, any video output from the memories 20 and 28 is inhibited~
~0 The addresses stored in the overlay address register 68 and the font address register 70, respectively, contain a control bit to indicate that the scan line count address is invalid and that the overlay memory 28 or the font memory 20, respectively, should return zeros. One lS condition of an invalid address is that the scan line count value entered into the registers 68 and 70 are too large, i.e., greater than the defined character matrix. Since overlays are always 32 scan lines high, if the scan line count value entered into the register 68 presents an~
address which is greater than 31, the control bit is set to indicate an invalid address. If the address in the font address register 70 is greater than 31, a similar indication is made if the control bit in the register 70 is set to indicate that the font memory 20 should return zeros. In this way, invalid addresses are not allowed to be processed into video signals.
These two control bits, contained in the addresses of registers 68 and 70 respectively, perform additional ~unctions. If the data register 58 contains a TAB, then a control signal C1 is generated from the decode element 62 to .. ' .

- . . 105;~8~6 set the control bits in both the overlay address register 68 and the font address register 70 to force zeros to be returned from the memories 28 and 20 in the next memory cycLe.
The signal also sets a bit in the mode register 66, at the same time, to indicate a video disable signal which inhibits the processing of video information even though the character is defined. The video disable signal is gated through an OR gate 84, along with the signal Cl, and presents the invalid address bit in the registers 68 and 70, respectively.
Mode register 32, in this preferred embodiment, contains a bit to indicate that the character is to be blinking, and if:such is indicated by a blink enable signal ORed with the video disable and Cl signals, the bit enables a blink oscillator 88 to alternatively disable or not the control bits in registers 68 and 70, depending upon whether the blink oscillator 88 is on or off. The oscillator 88 may be a one-shot multivibrator such as a Fairchild 9601 device.
Therefore, any one of these three signals, i.e., Cl, video disable, and blink enable, can cause the output of the OR
gate 84 to go high to set the control bits in the overlay address register 68 and the font address register 70 to disable the respective outputs from the overlay memory 28 and the font me~ory 20 during the next memory cycle.
At the same time, the registers 66, 68, 70, and 72 are loaded the next character is being processed. The new information relating to it stored in the data register 58 is examined by the decode element 62 to advance its processing through another cycle to storage in the re~sters 66,68, 70 and 72. At the same time the registers 66,68, 70 and 72 are being loaded with new information, the output buffer 50 . , .

:~0538~6 is being loaded with the previous character, i.e., the contents of mode register 66 is loaded into the output ~ buffer 50; the output of any video or TAB information, whichever is gated through OR gate.30, is loaded into the output buffer 50; and the contents of the width register 72 is loaded into the output buffer 50.
Thus, for a character to be completely processed, a display list memory cycle, a data register examining cycle, a font memory access cycle are necessary. While processing a given character involves three memory cycles, a new character is processed every memory cycle because the system elements in ~igure 2 are operating independently and simultaneously of one another. This processing of characters herein described gives an extremely high throughput and yet allows for complex processing necessary for a very high resolution character display.
In Figure6, is shown the video processor portion of the character generator 10. The processing elements of Figure 5 process width, video, and mode information which is read on a first-in - first-out basis out of the buffer 50. Width information is loaded into a width counter go, video information into video shift register 92, and mode information goes into a mode register 94. The mode infor-- mation corresponds to information which was originally derived from the mode register 32 and processed through to the output buffer 50. The information stored in the width counter 90 which defines a value or state used to control the operation of a control decode logic circuit 96. The value in the width counter 90 is fed back into the output buffer 50 to control the timing of reading and writing of ~LQ53~316 this buEfer. When the state of the width counter 90 goes below a certain value, e.g., four, counter 90 makes a new request for information from the output buffer 50. When the count-er value goes to zero, then the new information which is available on the output of the buffer 50 goes into the count-er 90, shift register 92, and mode register 94.
When a character is read from the output buffer 50, its associated video information is actually loaded into two shift registers cons~ituting the register 92. With 16 bits of video, two 8 bit long shift registers are utilized.
Beginning with the first bit, every odd bit is stored in one of the shift registers and the alternate, or even bits, are stored in the other shift register. The two shift registers are operated in parallel to process the odd and even bits simultaneously.
The control circuit 96 controls whether the video output information from the buffer 50 is loaded into the shift register 92 or, alternatively, the tab register 40.
When the width count of the counter 90 goes to zero, the circuit 96 determines from this condition and the value stored in the mode resister 94 whether the next character to be read from the output buffer 50 is an actual character, ; the extension of a character, or a tab character. If it is an actual character for display, then the circuit 96 generates a control pulse C2 to load the video shift register 92 with the video output of the buffer 50. If the next character is a tab character, a different C2 pulse is generated to load the tab register 40 with the video output information. If the character is an extension, then the pulse C2 is still 30 generated to load the video shift register 92. --36- ~

3L(~5;~8~6 When a pulse C2 is generated for the first two control functions, it is also inputted to a character counter 97 where a count of characters is maintained as characters are loaded into the shift register a~d cleared when the tab register 40 is loaded. In the case of a character extension, the pulse C2 is inhibited from going to the counter 120. Therefore, the counter 97 keeps track of the number of characters that have been processed since the last tab character.
The control circuit 96 is comprised of conventional decoding logic which is employed to produce an output signal C2 that is indicative of the above desired functions based upon the input signals to the circuit 96. For example, a number of AND gates and OR gates may be combined logically to take the input signals to the circuit 96 to generàte the appropriate C2 signals. The width counter 90 may be implemented by a module 74161 TI which includes a chip having an overflow output that indicates a width of 0. Thus, when the .
counter 90 gaes to zero, the overflow signal is ANDed within -~he circuit 94 with the tab extension bit, inputted to the circuit 96 from the mode register 94, to determine whether ~ -the character information being read out of the buffer 50 is a TAB, an extension, or a simple character. Upon the incidence of the clock/two pulses, the appropriate C2 pulses are generated from the decode circuit 96.
The information from the output buffer 50 is processed differently if it represents a TAB. The TAB
extension bit stored in the mode register 94 signals the control logic element 96 that TAB infoxmation is being read out of the buffer 50. The control signal C2 generated from : .

. . , . , ~

~L05;~1316 the element 96 will inhibit the loading o information into the shift register 92 leaving it empty to shi~t out blank video signals. The information otherwise loaded into the register 92 is loaded into the tab xegister 40 as the new TAB value, and the flip-flop 99 is reset to zero thereby turning off the enable signal, which is fed back to the width counter 90, stopping the width counter 90 rom functioning. As long as the flip-flop 99 is reset, the width counter 90 does not count, and the output buffer 50 will not be accessed for new information. Since the loading of the shift register 92 depends on the output of the counter 90, the shift register is forced to shift only zeros upon this conditions, preventing a new character from being dis-played on the CRT monitor 1 until a predetermined point on the screen is reached.
- An equality detector 98, a conYentional comparator circuit, compres the value of the tab counter 42 with the value of the tab register 40 to determine whether or not : these values are equal. When the two registers 40 and 42 contain the same value, the flip-flop 99 is set to ena~le the width counter 90. The tab counter 4~ has as inputs a ~it clock~two signal and synchronizing signal, horizontal blank. The counter 42 increments on the clock/two signal and gets cleared to zero with the horizontal blank signal.
The tab function is thus implem~nted. Briefly .

~.~)53~L6 stated, when a tab value is loaded ~rom the buffer 50, pxocesslng of characters is halted until the state of the tab counter 42 is incremented to the same value as the new state of the tab register 40. When this equality takes place, the processing of characters is initiated. The usual tab function, in this preferred embodiment, is to direct the information or characters with respect to predetermined or selected points (tab value) on the monitor screen. This function could be termed tabbing to some point to the monitor screen.
; The tab function may even be used to start the display of information on a new line by loading the tab register 40 with a small value such that an equality is not reached. Even though -the tab cou~ter 42 continues to be ~- 15 incremented, the H blank signal occurs first clearing the counter 42 thereby setting it to zero. Then, the tab counter 42 starts incrementing again to reach an equality, depending upon the value in the tab register 40. When the equality - is reached and processing begins, the video output will be displayed at the beginning of the next scan line.
The tab function may also be used to stop processing - for the entire monitor screen by placing a large value, such as 255, in the tab register 40. The tab counter 42 is thereby always cleared to zero by the H blank signal and will never reach ~he value in the register 40. Processing does not take place because the enable flip-flop 99 is always reset during this condition. Processing of a new page may be achieved by inputting a vertical blank signal into the tab register 40 and clearing it to zero. Then, processing will start on the next horizontal blank signal which clears the tab counter 42 to ~ .

- - - , . . .. . .. . . -continue the processing of characters.
The width counter 90 is decremented and the video : shift register 92 is shifted in accordance with a clock output from a variable oscillator 100. The register 92 is always shifted in accordance with this pulse train; whereas the counter 90 is only decremented when it is enabled by setting the flip-flop 99. The oscillator 100 may be implemented by a conventional oscillator, although one especially suitable for this preferred embodiment is described in U. S. Patent 3,928,-10 812, issued December 23, 1975, Roger D. Bates, and assigned to the assignee of the present invention.
The character generator 10 contains a variable oscillator 100 for a bit clock. The bit clock signal provides the timing for shifting out new video information in serial stream for display on each scan line of the monitor screen.
The variable oscillator 100 is loaded with a value from a bits/line register 102. This value represents the number of bits that is desired for each scan line and is stored in the register 102 under the control of the computer 12. The oscillator 100 also has as an input the horizontal blank signal for synchronization and is set to whatever frequency determines the correct number of bits to be shifted out for each scan line, thus providing the desired aspect ratio for the characters to be displayed. The output of the oscillator 100 labeled clock is fed directly to a divide by two element 106 which provides a clock/two signal. The clock/two signal is processed through a scaling element 108 and used as a signal to control various processing elements shown in Figure 6, including counting in the width counter 90 and shifting signals out of the video shift register 92.

-40- ~ , L

- . ; . ~ ., .

~053816 t The scaling element 108 provides horizontal scaling for the character being processed if the display list has indicated that it is to be provided during processing. A
bit from the mode register 94 is :inputted to the element 108 - to allow only every other clock pulse of the clock/two signal to be passed to the counter 90 and the register 92. Passing only every other clock pulse will have the effect of causing the width counter 90 to run at half speed thereby causing - bits to be shifted out at half speed. Half speed processing 10 produces characters which are twice as wide on the screen.
Therefore, horizontal scaling as provided by the element 108 doubles the width of the character. If no control bit is received from the mode register 94, scaling does not take place and the clock/two signal is passed through as an identity. The element 108 is implemented as described in ~-aforementioned United States Patent 3,952,296. ~ -In addition, clock/two signal goes into cursor control circuits 112 and 114 for the horizontal positioning ~;
of the respective cursor which they control. This signal 20 also goes into output shift registersll6 and 118 to control the shifting or loading of these registers~
A composer 124 receives the odd and even video signals generated in parallel from the video shift register 92 and further processes them through to the output register 116 and 118. Another input to th-e composer 124 is the associated mode information, i.e., high (H) and low (L) intensity signals, from the mode register 94. Still other '~
inputs are from the cursor control circuits 112 and 114, which provide on and off control for the cursor video 30 and intensity signals. Yet another ', ' ' 1~38~6 input to the composer 124 is a background signal froM a ' screen mode register 126.
The mode register 12G is loaded from the computer 12 to store three bits of information. One of them is the background information which determines whether black or white video is to serve as the display bac~ground. This bac~ground information is fed to the comp~ser 126. Another bit indicates external mix. When the external mi~ signal is fed out to the mixer 14, if external video is selected, this bit determines whether external video only or an added mix of the output of the character generator 10 and external'video will be displayed on the monitor 1. The third bit indicates an enable to the character generator 10 itself. By setting this third bit in the register 126, all processing may be stopped to force'the screen to be background only.
' The composer 124, in processing its inputs, deter-mines for any given video dot to be displayed on the monitor screen what its intensity will be, i.e., background, low intensity, or high intensity. The composer 124 is implemented by para~lel decoding nand gates, as disclosed further herein, to represent the following functions if a cursor is belng displayed, then the intensity of the cursor overrides; high '' intensity cursor forces high intensity over a low intensity cursor; with no cursor being displayed, the video is displayed with whatever intensity is specified; and where video signals are not generated for display, the composer 124 displays the background.
The high intensity signals generated by the composer 124 are inputted to the shift re~ister 116 where upon high intensity video signals are shifted out for display on 1C~53~
the monitor screen. The low intensity signals generated by the composer 124 are inputted to the shift register 118 whereupon low intensity video signals are shifted out for display. Each of the registers receives two lines of video information, odd and even video respectively. The lines of video are modified on a clock divided by two basis. The clock/two input controls whether parallel loading or shift-ing occurs with respect to the registers 116 and 118. The direct clock signal is an input to the shift registers 116 and 118 so that they may perform a function of alternately loading and shifting the odd and even video thus serializ-ing the two video input signals into the final output. The shift registers 116 and 118 are the only elements in the generator 10 that must run at the bit cloc~ speed.
~ he output signals from the composer 124 are thus processed by the shift registers 116 and 118 to provide the video high and low intensity signals which are fed to the video mixer 14 in the form of logic levels on two separate lines. In the mixer 14 these logic levels, e.g.
0 to 5 volts, are converted into TV video voltage levels, e.g. 0 to 1 volt, which are suitable as an input to the CRT monitor 1.
The cursor control elements 112 and 114 and the composer 124 are further described in United States Patent 3,911,419, issued October 7, 1975, Roger D. Bates et al, and assigned to the assignee of the present invention.
An additional output, external select, is generated from the character generator 10 as an input ,; , '` ' ' ' .

\

~OS3~
to the video mixer 14. This external select signal is in this preferred embodiment a single bit which provides the selection of either external video or ' character generator video-for display on the mo,nitor l.
The bit is derived from the mode register 94 which is ultimately derived from the contents of the display list program.
Byplacing control for selecting the video source within the display list program, overlays and screen partitioning can be achieved. For example, a picture can be displayed with the character generator lO selected in places to display labels and/or titles, or arbitrary areas can be used for display of external video whilè the remaining area used fcr text from the character. This feature is implemented as alluded,to earlier in the specification and as shown in Figure 5 by placing a mode change instruction between the display characters in the display list which is utilized by the mode register 94 to control the video processing.
The external select signal from the mode reyister 94 is thus u~ilized when received by the mixer 14. An analog switch .

.
' ~

.. . ..... .. .. . . .
- .

~05~8i6 within the mixer 14 is controlled by this signal to deter- -;
mine whether external video or character generator video is sent to the monitor 1.
The video mixer 14 may be any conventional video mixer capable of performing these functions. The mixer device contemplated in this preferred embodiment, however, is that disclosed in United States Patent 3,898,377, issued August 5, 1975, Douglas G. Fairbairn et al, and assigned to the assignee of the present invention.
Generation of high quality video information for display on high resolution T.V. systems requires digital processing which "pushes" the speed of integrated circuits currently available. While the required speed of 40 MHZ can be achieved with available components, they are significantly more expensive and take up more space. The invention over- -comes this difficulty by processing the odd and even video bits separately and simultaneously, as shown in Figures 5, 7, and 10. The video output is derived from a 16-bit computer word where the individual bits are labeled 0, 1, 2, ---14, 15 an~- are presented to the output in sequence, bits 0, 1, 2, ---14, 15 at a 40 MHZ rate. Internally, however, one shift register presents bits 0, 2, 4, ---12, 14 while the other presents bits 1, 3, 5, ---13, 15, both at a 20 MHP rate.
This also allows any other control logic, such as the width `
counter 90 to operate at 20 MHP`. The only restriction in this approach is that the character widths must be even ~ -values only. `
The video is produced by synchronously extracting ;
words from the output-buffer 50. These words contain the character description, intensity and video mixing information.
The output buffer 50, though, is loaded asynchronously with words from the font memory 20, which describes the characters ~05;~81~

to be displayed. The basic cycle time for the system as .~ described herein is ~20ns, which time is set by the speed - of the memory devices used for the display list andfont memories 34 and 20. With the organization of.elements as described, the maximum video output rate is 40 MHZ, or 1 dot every 25ns. To simplify the combination of elements following the buffer 50, characters have::a defined width consisting of an even number of dots.
It has been assumed in this description of the preferred embodiment that the binary coded data to be processed is stored in the memories and registers of this system, As implied earlier in the specification, though, the computer may initially write all of the stored information .into the system by conventional interfacing with these elements.
The func~ion of the computer in either situation is to provide an interface between the display system described herein and processors which utilize the display system. Of course, each of the processors may choose to select a differing text on the display screen or even different fonts of characters, such as Roman, bold face, and italic, in differing sizes.
Also, each processor may want to define its own character - set and to operate as though it had a disælay screen of .its own.
The controlling computer would ~ave à library of fonts stored on a small disc. The representation of a sub-font may be specified either (1) by keyboard commands $o the controlling computer which call o~ representations from the library in case the processor usiing the terminal is not equipped for fonts; (2) by similar commands from the processor in case the processor is eq~ipped to handle .

`
3~6 ,.
fonts but has no representations of its o~m; or (3) by explicit speciication of dot matrices from the pxocessor.
Obviously, many modi~ications of the present invention are possible in ligh-t of the above teaching.
It is therefore to be understood that, in the scope of the appended claims, the invention may be practiced other - than as specifically described.

.

.

Claims (5)

THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE.
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. A device for generating a predetermined text of character information to be displayed on a linear scan video display device, comprising:
a font memory for storing binary information representing a plurality of characters, said font memory being defined by a plurality of storage cells each of which is capable of storing binary information in a dot matrix array of predetermined dimensions;
a display list memory for storing instructions.
defining said predetermined text; and control means responsive to said instructions for controlling said font memory to generate the character information of said predetermined text in a format capable of being displayed on said display device, said control means including indexing means for indexing said font memory such that variable-sized dot matrix arrays consisting of two or more concatenated storage cells may be used to define character information to be displayed.
2. The device of claim 1, wherein said control means further includes a font description memory respon-sive to said instructions for generating width and spac-ing control data that is interpreted to provide character information for display that is of variable width and variable spacing.
3. The device of claim 1, further comprising an overlay memory connected in parallel with said font memory for providing overlay character information for display.
4. The device of claim 1, wherein said index-ing means includes means for vertically expanding the dot matrix array defining a particular character in said font memory in order to provide an effective height for said particular character that is greater than the height defined by a single storage cell.
5. The device of claim 1, wherein said index-ing means includes means for horizontally extending the dot matrix array defining a particular character in said font memory in order to provide an effective width for said particular character greater than the width defined by a single storage cell.
CA208,534A 1973-11-23 1974-09-05 High-resolution character generator Expired CA1053816A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US418509A US3911420A (en) 1973-11-23 1973-11-23 Display system including a high resolution character generator

Publications (1)

Publication Number Publication Date
CA1053816A true CA1053816A (en) 1979-05-01

Family

ID=23658416

Family Applications (1)

Application Number Title Priority Date Filing Date
CA208,534A Expired CA1053816A (en) 1973-11-23 1974-09-05 High-resolution character generator

Country Status (7)

Country Link
US (1) US3911420A (en)
JP (1) JPS5085242A (en)
CA (1) CA1053816A (en)
DE (1) DE2438202B2 (en)
FR (1) FR2252608B1 (en)
GB (1) GB1486218A (en)
NL (1) NL7413198A (en)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4054948A (en) * 1975-10-14 1977-10-18 Realty & Industrial Corporation Proportional spacing and electronic typographic apparatus
US3988728A (en) * 1975-10-20 1976-10-26 Yokogawa Electric Works, Ltd. Graphic display device
US4245252A (en) * 1976-08-19 1981-01-13 Sony Corporation Television camera having a character display
AU508761B2 (en) * 1977-01-25 1980-04-03 International Business Machines Corporation Display system for horizontally segmenting text
US4091424A (en) * 1977-02-18 1978-05-23 Compression Labs, Inc. Facsimile compression system
US4107665A (en) * 1977-06-23 1978-08-15 Atari, Inc. Apparatus for continuous variation of object size on a raster type video screen
US4218710A (en) * 1978-05-15 1980-08-19 Nippon Electric Company, Ltd. Digital video effect system comprising only one memory of a conventional capacity
FR2426294A1 (en) * 1978-05-18 1979-12-14 Thomson Csf SIGNAL GENERATOR FOR GRAPHIC CONSOLE
DE2825912A1 (en) * 1978-06-13 1980-01-03 Siemens Ag METHOD FOR TRANSMITTING RECORDINGS WITH A MIXED DISPLAY CONTENT TO A VIEWING DISPLAY, ESPECIALLY IN TELEPHONE SYSTEMS
US4563676A (en) * 1983-01-25 1986-01-07 Tandy Corporation Computer
US4283724A (en) * 1979-02-28 1981-08-11 Computer Operations Variable size dot matrix character generator in which a height signal and an aspect ratio signal actuate the same
JPS56119185A (en) * 1980-02-23 1981-09-18 Fujitsu Fanuc Ltd Picture display system
US4346377A (en) * 1980-05-30 1982-08-24 Eltra Corporation Method and apparatus for encoding and generating characters in a display
US4479119A (en) * 1980-07-16 1984-10-23 Ricoh Company, Ltd. CRT Display device
KR850001657B1 (en) * 1981-03-06 1985-11-06 야마모도 다꾸마 The method of video data changing and its device
US4481602A (en) * 1981-04-06 1984-11-06 International Business Machines Corporation Font compression and decompression for character generation
US4439761A (en) * 1981-05-19 1984-03-27 Bell Telephone Laboratories, Incorporated Terminal generation of dynamically redefinable character sets
US4446457A (en) * 1981-07-06 1984-05-01 Data General Corporation Video terminal character generator
JPS58144890A (en) * 1982-02-23 1983-08-29 ミノルタ株式会社 Character display area control system for character generator
US4435729A (en) * 1982-02-26 1984-03-06 Rca Corporation Television receiver with selectively disabled on-screen character display system
JPS60149471A (en) * 1984-01-17 1985-08-06 Tokyo Electric Co Ltd Double-height letter printing in dot printer
US4642624A (en) * 1984-01-10 1987-02-10 Leonard Storch Enterprises, Inc. Width card
US4627749A (en) * 1984-02-21 1986-12-09 Pitney Bowes Inc. Character generator system for dot matrix printers
JPS61147677A (en) * 1984-12-21 1986-07-05 Mitsumi Electric Co Ltd Superimposing device
US4703323A (en) * 1985-01-29 1987-10-27 International Business Machines Corporation Method and apparatus for displaying enhanced dot matrix characters
US4712102A (en) * 1985-01-29 1987-12-08 International Business Machines Corporation Method and apparatus for displaying enlarged or enhanced dot matrix characters
JPH0638652B2 (en) * 1985-12-28 1994-05-18 ソニー株式会社 Television receiver
JPS62159582A (en) * 1986-01-06 1987-07-15 Sony Corp Television receiver
US4707709A (en) * 1986-01-17 1987-11-17 Eastman Kodak Company Image recording apparatus in which exposure levels are a function of image contents
JPS6365486A (en) * 1986-09-08 1988-03-24 ミノルタ株式会社 Display indication apparatus
JP2794661B2 (en) * 1986-09-20 1998-09-10 ソニー株式会社 TV receiver
US5027211A (en) * 1989-06-07 1991-06-25 Robertson Bruce W Multi-channel message display system and method
AU4591493A (en) * 1992-07-21 1994-02-14 Aotea Centre Board Of Management Visual image projector
JP3070333B2 (en) * 1993-04-16 2000-07-31 三菱電機株式会社 Image display device
EP0631439B1 (en) * 1993-05-21 1999-08-04 Hitachi, Ltd. Character display circuit and method for superimposing character code during blanking period of video signal
JPH08223497A (en) * 1994-12-12 1996-08-30 Mitsubishi Electric Corp Screen display device
US6081300A (en) * 1995-05-24 2000-06-27 Thomson Consumer Electronics, Inc. Apparatus and method for generating on-screen-display messages using stored bitstreams
GB9510484D0 (en) * 1995-05-24 1995-07-19 Thomson Consumer Electronics Creating an on screen display
JP3469492B2 (en) * 1999-02-19 2003-11-25 フーリエ有限会社 Font memory and font data reading method
AU2004241602B2 (en) * 2003-05-20 2008-05-08 Syndiant, Inc. Digital backplane

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3387084A (en) * 1964-11-23 1968-06-04 Mc Donnell Douglas Corp Color television data display system
US3426344A (en) * 1966-03-23 1969-02-04 Rca Corp Character generator for simultaneous display of separate character patterns on a plurality of display devices
US3514616A (en) * 1969-02-26 1970-05-26 Harris Intertype Corp Rapid access character memory

Also Published As

Publication number Publication date
DE2438202B2 (en) 1979-08-30
FR2252608B1 (en) 1977-11-04
US3911420A (en) 1975-10-07
GB1486218A (en) 1977-09-21
NL7413198A (en) 1974-12-30
FR2252608A1 (en) 1975-06-20
DE2438202A1 (en) 1975-05-28
JPS5085242A (en) 1975-07-09

Similar Documents

Publication Publication Date Title
CA1053816A (en) High-resolution character generator
US3911419A (en) Controller for cursor positioning on a display medium
USRE31200E (en) Raster scan display apparatus for dynamically viewing image elements stored in a random access memory array
US4070710A (en) Raster scan display apparatus for dynamically viewing image elements stored in a random access memory array
CA1148285A (en) Raster display apparatus
US3396377A (en) Display data processor
US4197590A (en) Method for dynamically viewing image elements stored in a random access memory array
US3996585A (en) Video generator circuit for a dynamic digital television display
CA1087744A (en) Digital display composition system
US4057849A (en) Text editing and display system
US3781850A (en) Television type display system for displaying information in the form of curves or graphs
US3821730A (en) Method and apparatus for displaying information on the screen of a monitor
US4814756A (en) Video display control system having improved storage of alphanumeric and graphic display data
US3778811A (en) Display system with graphic fill-in
US3952296A (en) Video signal generating apparatus with separate and simultaneous processing of odd and even video bits
EP0071744A2 (en) Method for operating a computing system to write text characters onto a graphics display
US4158837A (en) Information display apparatus
GB2157927A (en) Circuit for processing digital image data in a high resolution raster display
GB1579644A (en) Digital data display apparatus
US4529978A (en) Method and apparatus for generating graphic and textual images on a raster scan display
EP0172054B1 (en) A system for the display of video images on a screen by line by line and point by point sweeping
US3624634A (en) Color display
US4570161A (en) Raster scan digital display system
US3895375A (en) Display apparatus with facility for underlining and striking out characters
US4093996A (en) Cursor for an on-the-fly digital television display having an intermediate buffer and a refresh buffer