Interpretive Display Processor

Leibler , et al. November 12, 1

Patent Grant 3848232

U.S. patent number 3,848,232 [Application Number 05/378,751] was granted by the patent office on 1974-11-12 for interpretive display processor. This patent grant is currently assigned to Omnitext, Inc.. Invention is credited to Carl J. Bloch, Jerome E. Leibler, Marvin Preston, IV, Mark D. Weiser.


United States Patent 3,848,232
Leibler ,   et al. November 12, 1974
**Please see images for: ( Certificate of Correction ) **

INTERPRETIVE DISPLAY PROCESSOR

Abstract

A display processor contains a random access memory which stores digital codes representative of text and display commands which define the addresses of strings of the text characters within the RAM and define the manner and position in which they are to be displayed on a cathode ray tube output device. A general purpose computer is used to load the RAM with text and display commands and to modify these in order to edit the display. A recirculating register capable of storing text characters for the generation of a single line of the CRT display is filled with portions of the text under control of the sequence of display commands. The contents of the buffer are generated on the CRT through use of a read only memory in dot matrix form.


Inventors: Leibler; Jerome E. (Milford, MI), Bloch; Carl J. (Ann Arbor, MI), Preston, IV; Marvin (Ann Arbor, MI), Weiser; Mark D. (Ann Arbor, MI)
Assignee: Omnitext, Inc. (Ann Arbor, MI)
Family ID: 23494405
Appl. No.: 05/378,751
Filed: July 12, 1973

Current U.S. Class: 345/467; 345/25
Current CPC Class: G06F 3/153 (20130101); G09G 5/08 (20130101); G09G 5/42 (20130101)
Current International Class: G09G 5/08 (20060101); G06F 3/153 (20060101); G09G 5/42 (20060101); G06f 003/14 ()
Field of Search: ;340/172.5,324A,324AD

References Cited [Referenced By]

U.S. Patent Documents
3553676 January 1971 Raciti
3631455 December 1971 Gregg
Primary Examiner: Zache; Raulfe B.
Attorney, Agent or Firm: Fisher, Krass, Young & Gerhardt

Claims



Having thus described our invention we claim:

1. A text display processor comprising: means for storing a plurality of digital signals representative of a plurality of strings of text characters in addressable form; means for storing a plurality of digital signals representative of display commands each defining a section of said stored strings of text characters by address and the position of said characters are to occupy in the display in addressable form; a register for storing signals representative of contiguous sections of text to be displayed; means for filling said register with certain of said digital signals representative of strings of text characters from said means for storing text character signals under control of a plurality of said stored display commands; a display means; and means for writing characters on said display means under control of the contents of said register.

2. The text display processor of claim 1 wherein the display means operates to display a plurality of horizontal lines of alpha-numeric characters and said register operates to store sufficient signals for the generation of a single line of text of said display.

3. The text display processor of claim 1 wherein said means for writing characters on said display means under control of the contents of said register includes a matrix for converting digital signals representative of text characters into analog signals for the control of the display means.

4. The text display processor of claim 3 wherein said display means constitutes a cathode ray tube and said analog signals constitute signals capable of writing alpha-numeric characters on said cathode ray tube in dot matrix form.

5. The text display processor of claim 4 wherein each character dot matrix has a vertical dimension of N dots and a line of characters is written by N horizontal sweeps of the the cathode ray tube beam across the cathode ray tube, all N sweeps being controlled by one set of signals stored in said register.

6. The text display processor of claim 1 wherein said plurality of stored display commands utilized to fill said register are stored in consecutive storage areas within said means for storing a plurality of digital signals representative of display commands.

7. The text display processor of claim 6 wherein said means for storing a plurality of digital signals representative of display commands also stores digital signals operative to alter the normal sequence of utilization of display commands in filling said register.

8. The text display processor of claim 1 wherein said means for storing a plurality of digital signals representative of text characters and said means for storing a plurality of digital signals representative of the display commands both constitute a single random access memory.

9. The text display processor of claim 8 wherein said means for filling said register with certain of said digital signals representative of text characters under control of a plurality of said stored display commands derives display commands from sequential storage areas of said random access memory and further including a plurality of digital signals representative of commands for altering the normal sequence of utilization of said display commands, stored in said random access memory, interspersed with said display commands.

10. The text display processor of claim 1 including means for storing signals relating to the sequence of utilization of said display commands in filling said register, and means for utilizing the last said signals to control said means for filling the register.

11. The text display processor of claim 1 wherein said means for filling said register with certain of said digital signals representative of strings of text characters under control of a plurality of said stored display commands includes means operative to utilize said plurality of display commands sequentially and at least certain of said display commands contain signals indicating they constitute the last display commands to be utilized in filling said register.

12. The text display processor of claim 1 wherein said register is operative to store signals representative of a line of text to be displayed and each display command includes a signal defining the position that the section of stored text characters which that display command defines is to occupy within said display line.

13. The text display processor of claim 1 including means for altering the digital signals representative of strings of text characters and the digital signals representative of display commands connected to said means for storing said digital signals representative of strings of text characters and the digital signals representative of display commands.

14. A text display processor comprising: a random access memory for storing digital signals representative of strings of text characters, digital signals representative of display commands each defining a section of said stored text characters strings by address within the memory and further defining the position said characters are to occupy in the display, and digital signals relating to the sequence of utilization of said display commands; a register for storing signals representative of contiguous sections of text to be displayed; means for filling said register with certain of said digital signals representative of strings of text characters from said random access memory under control of a sequence of said stored display commands, said sequence being determined by said digital signals relating to the sequence of utilization.

15. The text display processor of claim 14 wherein said display means constitutes a cathode ray tube, and further including means for deflecting the beam of the cathode ray tube vertically and horizontally so as to generate a sequence of rasters; means for digitally storing the instantaneous position of said beam; and connections between said means for digitally storing the instantaneous position of said beam, and said means for writing characters on said display means under control of the contents of said register.

16. The text display processor of claim 14 wherein said means for filling said register with certain of said digital signals representative of strings of text characters under control of a sequence of said stored display commands includes means for examining sequential signals stored within said memory, using such signals which are representative of display commands to fill the register with the strings of text characters defined by said display commands and utilizing said digital signals relating to the sequence utilization of said display commands to locate successive display commands in said sequence.

17. The text display processor of claim 14 wherein said digital signals representative of display commands each define a section of said stored strings of text characters by address within the memory, further define the position said characters occupy in the display and further include signals representative of the manner of display of each of said text characters; and said register is filled with both of said aforesaid signals relating to the manner of display of the text characters as well as the text characters.

18. The text display processor of claim 15 further including a plurality of digital signals stored in said random access memory relating to the display of material other than alphanumeric characters on the display, and the position said material is to occupy on the display; and means for comparing such signals representative of the positions with the contents of said means for digitally storing the instantaneous position of said beam within said raster; and means for generating said material on said display means under control of said comparator.

19. The text display processor of claim 18 wherein said means for generating said material on said display means under control of said comparator includes a digital-analog convertor connected to the output of the comparator and connections between said digital-analog convertor and said display means.

20. A system for editing data comprising: a keyboard, a random access memory adapted to receive signals generated by said keyboard; a register; means for writing in said register the contents of a plurality of positions in said random access memory containing digital codes representative of alpha-numeric characters under the control of digital codes stored in other sections of the memory, each of which code specifies a memory address and the position which the contents of that memory address is to occupy in the register; display means; and means for controlling the display means so as to write the alpha-numeric characters representative of the signals stored in the register under control of the contents of the register.

21. The data editing system of claim 20 wherein the display means constitutes a cathode ray tube, the register constitutes a recirculating register, and including means for recirculating said register in timed relation to the generation of the raster on the cathode ray tube.

22. The data editing system of claim 21 wherein each line of alphanumeric characters on display is generated by a plurality of horizontal scans of the cathode ray tube beam across the cathode ray tube and the contents of the register are modified under control signals stored in the random access memory between the generation of display of two consecutive lines on the cathode ray tube.

23. A text display processor including: means for storing a plurality of first digital signals representative of text characters; a display means; means for writing certain text characters defined by certain of said stored first digital signals on said display means; means for storing second digital signals defining the position and length of lines to be drawn on said display means; and means for drawing lines on said display means under the control of said second signals.

24. The text display processor of claim 23 wherein the display means constitutes a cathode ray tube and means for controlling the beam of the cathode ray tube to cause it to generate a raster consisting of a plurality of horizontal lines vertically spaced from one another, and further including: comparator means for comparing the position of the cathode ray beam in said raster with the contents of said means for storing second digital signals relating to the position and length of lines to be drawn on said display means; and means for modulating the intensity of the cathode ray beam in accordance with the output of said comparator means.

25. In a text display processor including means for storing a plurality of first digital signals representative of text characters, display means, and means for writing text characters by certain of said stored first digital signals on said display means at a first intensity level, means for storing second digital signals defining the character position of a cursor to be drawn on said display means; and means, under control of said second digital signals, for causing a cursor to be displayed at a second lower intensity level in the character position defined by said second digital signals.

26. In the text display processor of claim 25 means for storing third digital signals defining the beginning and end of an underline component to be associated with said cursor, and means for drawing said underlined component on said display means under the control of said third signals.
Description



BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to a processor for storing digital signals representative of textual material to be written on an output display device and signals for controlling the format of the display and the means for generating a display under the control of these stored signals.

2. Prior Art

Cathode ray tubes, as well as less common forms of alphanumeric displays, such as plasma discharge tubes, are employed as output devices in a variety of systems which operate on digital signals representative of alphanumeric characters and the like to retrieve, compose, and/or edit text composed of strings of such characters. In one typical machine of this class text may be provided to the machine through a keyboard, displayed on a cathode ray tube, and modified, or edited as to content and format by an operator with commands entered through the keyboard. When the edited text displayed on the CRT meets the approval of the operator it may be outputted through a printer, on magnetic or punched tape, or stored within the sytem for later retrieval.

A suitably programmed general purpose computer may be employed to manipulate the text in the editing process and in large systems the text to be displayed on the output device may be provided directly by the computer in digital form, to digital-analog converters to provide control signals for the CRT deflection circuits. In systems employing relatively small computers the task of continuously generating these control signals would require most or all of the available computer time, leaving no computer capacity for the editing manipulations. Accordingly, processors have been developed which store digital signals representative of a body of text to be displayed and act as a buffer between the computer and the display device. The computer is capable of extracting sections of text from and writing text in the processor storage. The processor acts to provide control signals to the CRT in timed relation to the scan of the cathode ray beam and the processor may also manipulate the text as by scrolling a larger body of text than is capable of being displayed on the tube at any one instant to present different sections of the body for display on the tube. These processors have typically consisted of random access memories connected in the manner of recirculating registers so that the information effectively flows through the memory. The text is arranged in the memory in the order that it is to be displayed on the tube. In an alternate form of processor relatively small text segments are stored in the memory along with information relating to the position that they are to occupy on the final display. The processor includes circuitry for sequentially outputting the segments to the display positions encoded with the information. This arrangement simplifies the process of formatting text on the display surface in blocks, columns or the like.

The present invention is addressed to a processor having a unique configuration which results in a high storage efficiency, a great deal of versatility in formatting and displaying the data and a very simple interface with the computer or other source of text and editing modifications.

SUMMARY OF THE PRESENT INVENTION

In its broadest form the processor of the present invention stores a body of digital data, representative of text, in some form of addressable memory. The processor also stores data constituting display commands which each define a small portion of the stored text by its storage address, specify attributes relating to the manner in which this text is to be displayed on the output device and define display position coordinates, preferably the horizontal position of the specified text within the display. The processor further includes a buffer register capable of storing a limited section of text to be outputted to the display, typically one horizontal line.

The line buffer is filled with text derived from the text storage section under control of the display commands. The display commands are utilized either in their order of storage or in some different order specified by "link" commands interspersed with the display commands. Initially, the text stored at the address specified by the first display command is written in the buffer at a position specified by the display command. Along with the character codes the line buffer may be filled with data representative of the manner in which that character is to be displayed such as underlined, or blinking, which information may be derived either from the display commands, from codes associated with the stored text or from both. Additional text sections specified by further display commands in the sequence are then added to the line buffer until a display command is reached which signifies that it is the last one to be utilized in filling the buffer. The buffer is then ready to be utilized in writing the line, or other text section, on the display.

When the output device is a cathode ray tube as in the preferred embodiment of the invention, analog signals must be developed to control the deflection or modulation of the cathode beam to generate the appropriate characters. In the preferred embodiment of the invention the alphanumeric characters of the text are generated in dot matrix form and as the cathode ray sweeps horizontally across the display area its intensity is modulated to create the dots for one horizontal line of each of the characters stored in the line buffer. To achieve this conversion a read-only memory matrix encoded to convert digital codes representative of characters into the elements of the dot matrix is employed. As the line buffer is scanned in timed relation to the horizontal sweep of the CRT beam each character code sequentially controls the conversion memory to provide the appropriate dots for the output of one horizontal element of that character. The next beam sweep is one scan line lower on the CRT screen and the next set of dots for the characters stored in the line buffer are outputted by the matrix. Alternatively, an interlaced scan may be used and spaced horizontal elements of a character are generated by consecutive horizontal sweeps of the beam and the intermediate elements of the character are generated as part of the subsequent raster. This requires that the line buffer be filled twice with the same set of characters to generate a single line of display.

When the electron beam has generated an entire line of characters the line buffer is refilled with text for the next horizontal line using the next group of display commands.

In the preferred embodiment of the invention eighty characters may be written in a horizontal line. From one to eighty display commands may be required to fill the line buffer with text for the display of a line. A single display command could prepare the buffer for the generation of the next line containing from zero to eighty characters. Such a display command would include the address of the first character in a text section containing from zero to eighty characters, and a code indicating that this was the last display command to be used in filling the line buffer. At the other extreme the line buffer could be filled with text sections defined by eighty display commands each calling for one character. A full line, or eighty characters, is the most that can be called for by a single display command. Since each display command also specifies the position in the line buffer that its defined text section is to occupy, the exact formatting of a page is defined by the display commands.

In order for the input unit to the processor to edit the output text it can alter some of the stored text, the display commands or the order in which the display commands are utilized. While in the preferred embodiment of the invention this editing is accomplished by a programmed computer controlled by a keyboard, it could be done in a less automatic manner under control of signals provided by a keyboard suitably connected to the controller memory.

In addition to storing text and display commands, the preferred embodiment of the controller stores information used to control the display of a cursor generated by an intermediate intensity modulation of the CRT beam as well as boundries on the cathode ray tube. Cursor information defines its vertical and horizontal positions, whether it is to blink, whether it is to have an underline component, and, if underlined, the beginning and end coordinates of the underlining. The boundary information specifies the display of two vertical lines and two horizontal lines which may be selectively written adjacent to any character cell on the display surface. A screen timing unit controls the horizontal and vertical position of the cathode ray beam and contains registers which instantaneously specify its horizontal or vertical position. These are continually compared with registers defining the position of the cursor and the boundary lines. When an identity is recognized signals are added to the character matrix signals which cause the generation of the cursor and/or boundary.

In the preferred embodiment of the invention the string of text defined by each display command, termed a block, is specified in terms of its beginning address in the memory and its length. When a display command to be utilized is selected the block position and block length data are entered into registers used to control the copying of data from the text storage into the line buffer. As successive characters are written into the buffer the contents of the block length register are decremented. When this register reaches zero and if the display command utilized was not the last one to be used in filling the buffer, the next display command in the sequence is selected and the text specified by that command is entered into the buffer. This entry may modify the text previously entered into the buffer under the control of previous display commands; a feature which greatly simplifies the editing since it allows text to be modified by simply specifying the new parts; the old text need not be deleted from the controller memory.

Preferably the memory capacity will substantially exceed the quantity of text which may be written on the display at a single time. To scroll this larger body of text vertically on the display the identity of the first display command to be utilized in filling the screen is altered between successive displays by alterations, under control of the computer, of the first "link" command in the display command sequence.

Horizontal scrolling is accomplished by altering the part of each display command which specifies the horizontal position it occupies in an output line.

Other objectives, advantages and applications of the present invention will be made apparent by the following detailed description of a preferred embodiment of the invention. The description makes reference to the accompanying drawings in which:

FIG. 1 is a block diagram of a text editing system forming a preferred embodiment of the invention;

FIG. 2 is a diagram indicating the format of digital signals constituting display commands;

FIG. 3 is a diagram indicating the format of digital signals constituting a link;

FIG. 4 is a more detailed block diagram of the display processor 10;

FIG. 5 is a more detailed block diagram of those portions of the display processor which cooperate in filling the line buffer register with signals representative of text stored in the RAM:

FIG. 6 is a detailed block diagram of the display timing and format block; and

FIG. 7 is a detailed block diagram of those portions of the display processor involved in the sequence of steps which fill the line buffer.

Referring to FIG. 1, the preferred embodiment of the invention constitutes a processor 10 which receives signals representative of text and of commands relating to the display of the text from a central processor unit 12 and acts to display certain sections of that text on a cathode ray tube 14 in a manner prescribed by the commands.

The central processing unit 12 forming part of the preferred embodiment of the invention may be any mini-computer having a suitable input-output device 16. An exemplary use of the preferred embodiment could be as an automatic typewriter wherein the I/O device 16 constitutes a keyboard equipped serial printer such as a teletype device. The oeprator, using the keyboard of the I/O device 16, would enter text and various information relating to the display of text into the CPU 12. The CPU acts to convert this information into suitable form and provide it to the processor 10 where it would be stored within a random access memory 18 forming part of the processor. On receipt of an appropriate command from the I/O device 16 as relayed through the CPU 12 the processor then would cause the text or certain sections thereof to be displayed on the CRT 14 in a format controlled by information stored within the RAM 18. The operator, observing the display, might then edit the display to change the text or its format by providing appropriate signals from the keyboard to the CPU 12. The CPU, acting under the control of the signals, would modify the contents of the RAM 18 and cause the CRT 14 to display this modified text. After one or more cycles of editing, the text, in its desired final form, could be outputted through the printer section of the I/O device 16 in hard copy form.

A variety of alternate uses exist for equipment of this general configuration such as in newspapers for editing text received from a wire service; the completion of prestored forms by the insertion of text in their blanks; as a terminal for interactive conversation with a large computer, and the like.

The preferred embodiment of the processor 10 is capable of displaying up to 128 different alphanumeric symbols in a 32 line, 80 character wide array on the face of the CRT. Each character is written by dots arranged on a 7 .times. 9 dot matrix. The characters may be displayed in either normal or bold face, either blinking or non-blinking, and either underlined or not.

In addition to displaying text the unit has the capability of displaying a cursor which constitutes a light intensity overlay positionable at any of the character positions and a boundary comprised of two vertical lines and two horizontal lines.

The body of the text to be displayed and the signals for controlling the format and manner of displaying the text are all stored within the RAM 18. The function of the CPU 12 is to load properly formatted information into the RAM, and to fetch information from the RAM for modification. This editing process could be performed by a keyboard suitably inferfaced with the RAM but normally and preferably would be performed by a mini-computer in order to simplify the process of editing.

DATA STORAGE WITHIN THE RAM

While the preferred embodiment of the invention utilizes a semi-conductor random access memory, other embodiments of the invention could employ core memories, magnetic discs, addressable tapes or the like to perform the function of the RAM 18. The functional requirements of the RAM are that the information storage be addressable and accessible at a relatively high rate.

While the CRT screen is only capable of displaying 2,560 characters at any one time the capacity of the memory is preferably larger than 2,560 words so that only a portion of the text stored within the memory may be used at one time for display purposes. In the preferred embodiment of the invention, the RAM is capable of storing 8,000 eight bit digital words in word addressable form. Two forms of data are retained in the RAM 18: text data and controller commands.

The text data consists of eight bit words each comprising a seven bit code signifying the encoded character and an eighth bit indicating whether the character is to be underlined when displayed. Normally a plurality of these character codes will be stored at sequential locations within the RAM to form character strings but a string could also consist of only a single character code.

The controller commands determine which parts of the text data are to be written on the CRT, and the format of their display. These commands are used to specify the length and location within the RAM of strings of data to be displayed, the bold and blink attributes of their display and the position in which the data is to be displayed on the CRT. The controller commands are of two forms: "display commands" and "link commands." The display commands each specify the information necessary to display one segment or string of text on the CRT and define the location of that string within the RAM and the link commands are used to sequence the order of usage of display commands in assembling strings to make up a composite display on the CRT

DISPLAY AND LINK COMMANDS

Each display command supplies all the information necessary to display one string of text data on a CRT. The entire visible display is "drawn" on the CRT under the direction of a series of display commands.

Each display command is 32 bits in length and is stored in four sequential word positions of the RAM. The format of a display command is illustrated in FIG. 2. Starting from the left in FIG. 2 the first bit of the command is a zero. This allows the system to distinguish the start of the display command from the start of a link, which has a one in the most significant bit position. The second bit position contains a one if the text string defined in the command is to be displayed on the screen in bold form and a zero otherwise. The next 14 bit positions define the RAM address of the start of the text string to be utilized in connection with this display command. The next bit contains a one if the display command defines the last text string to be used in forming a single horizontal line of the ultimate display; that is, this bit effectively controls the vertical position on the display raster. The first display commands utilized define the text strings used in generating the uppermost horizontal line on the display. Each time a display command is encountered containing a one in the seventeenth bit position indicating that this is the last display command to be used in generating a line, the display effectively indexes vertically downward one line in utilization of the subsequent display command.

The next seven bits of the display command define the horizontal address across a line of the display at which the first character of the text string defined by the display command is to be positioned. Since there are eighty character positions across a display line this information will contain the address of one of these eighty positions or "columns."

The next (18th) bit position of a display command contains a one if the associated text string is to be displayed in a blinking manner and a zero otherwise. The last seven bits of the four words constituting a display command define the length of the text string in terms of word addresses in the RAM. Thus between the 14 bits which define the beginning address of a text string and the seven bits which define the length of a string a total definition is provided for the address of a string stored at one or more sequential positions in the RAM. If the final seven bits contain 0000001 the text string consists of the single character stored at the RAM address defined by the 14 bits.

A single display command always refers to text to be displayed on one horizontal line of the CRT.

As will subsequently be described a series of one or more display commands are used to organize a body of text to be displayed across one full line of the CRT. The number of display commands to be used in filling one line is determined by the use of the bit which indicates that a particular display command defines the last text string to form part of a display line.

The display command may be arranged in sequential order within the RAM and when a text string associated with one display command has been properly assembled for use in generating the encoded characters on the CRT the display command at the next sequential RAM address is utilized. Alternatively, "link commands" may be interspersed with the display commands in the RAM. A link command defines a modification of the sequential use of display commands. As illustrated in FIG. 3, a link command is 16 bits or two RAM words in length. The first two bits contain a one and a zero respectively to distinguish a link command from a display command. The next 14 bits contain the RAM address of the next display command to be utilized by the system in generating a display. This next display command may be located anywhere within the RAM. There are no boundary or alignment constraints for the containment of the display commands and link commands within the RAM. The link command is an effective jump or branch command which allows successive display commands to be scattered throughout the RAM and connected by links, and allows the sequence of display of the text to be altered without moving stored text.

CURSOR SPECIFICATION AND CONTROL

In addition to the text data and controller commands which are stored at variable addresses in the RAM, the RAM contains eight words of information which are stored in fixed locations; preferably, the first eight words of the RAM, that is the RAM locations having the addresses 000 - - 001 to 000 - - 007.

The first four of these locations are reserved for data specifying the nature and location of a cursor which may be displayed along with the text. The cursor includes a normal middle intensity character mask and a unique, full intensity, underline component, located on the same line as the character mask but having a controllable width.

The first word, having an address of 000 . . . 000 contains a one in the most significant bit position if a cursor is to be blinked on and off and the five least significant bits specify the line number vertically on which the cursor is to be located.

The word in location 000 . . . 000 contains a zero in its first bit position if a cursor is to be displayed; a one in that bit position indicates that no cursor is to be displayed. The next seven bits of the first word specify the column number across the width of the display surface at which the character mask component is to appear.

The third word, 000 . . . 002 determines by its first bit position whether the cursor shall include an underline component. The next seven bits specify the column number of the beginning of that underline component if it is to be employed.

The fourth word, at RAM location 000 . . . 003 specifies the column number of the end of the underline component of the cursor in its last seven bit positions. Accordingly, a cursor will normally be drawn from the column number specified by the address contained in the third word and ending at the column number the address of which is contained in the fourth word.

When the address specified in the fourth word for the column number of the end of the underline component is less than the address specified in the third word as the beginning of the underline component two underline components will be generated on the screen, the first, extending from the zero column position on the far left end of the screen, to the column address specified in the third word, and the second component extending from the column address specified in the fourth word to the far right hand end of the screen or column eighty.

BOUNDARY SPECIFICATION AND CONTROL

The fifth through eighth words of the RAM, those having addresses 000 . . . 004 to 000 . . . 007 are reserved for the specification of a boundary or outline to be displayed on the CRT. The boundary consists of (at most) two vertical lines and two horizontal lines. Any combination of components of the boundary may be selectively enabled or disabled.

The fifth word in the RAM contains a zero in its first bit position if a top boundary is to be displayed and its least significant five bits specify the vertical line number at which the top boundary is to be displayed.

The sixth word contains a zero in its most significant bit position if a left boundary is to be displayed and the balance of the word contains the column number of the left boundary.

The seventh word in the RAM contains a zero in its first bit position if bottom boundary is to be displayed and the least significant five bits of the word contain the line number of the bottom boundary.

The eighth word in the RAM contains a zero in its first bit position if a right boundary is to be displayed and the balance of the word contains the column number of the right boundary.

With the control information contained in these four words, a boundary can be displayed which consists of a left, right, top and/or bottom line on any columns or lines of the CRT. If desired, all boundary display can be disabled. If the value specified in the fifth RAM word for the left boundary exceeds the address specified in the sixth RAM word for the right boundary, and the top and/or bottom boundaries are enabled, then the top and/or bottom boundaries will be displayed as two segments extending from column zero to the left boundary and from the right boundary to the far right. If the value specified for the top boundary exceeds that specified for the bottom boundary, no boundary at all will be displayed on the CRT.

THE EDITING PROCESS; RAM - - CPU INTERACTION

The data outlined above as being resident in the RAM controls the display generated on the CRT in a manner which will be subsequently described. The editing process, therefore, consists of simply modifying the contents of the RAM to a state which will achieve the desired display. This process simply consists of the specification of a RAM address by the CPU and the generation of a signal which will either write new words in the specified RAM location destructively, or non-destructively read out the contents of the specified location. To assist in the editing process means may be provided for automatically incrementing or decrementing the memory address as successive words are written in or read from the RAM.

THE DISPLAY PROCESS

Referring to FIG. 4 which discloses the display processor 10 in more detail the transfer of information within the processor for purposes of either accessing the RAM 18 by the CPU 12 during the editing process, or during the display of information on the CRT 14 under control of data in the RAM, is achieved by a controller 20. The display process begins in response to a timing signal from the timing unit 50 which will be subsequently described in detail. The first step in the display process involves the controller transferring the data resident in the first eight words of the RAM into a cursor register 22 and a boundary register 24. This is done by the controller starting at the first word of the RAM and transferring the information relating to the line number on which the cursor is to be located into register 22. Sequentially the addresses contained in the next three words are transferred into registers for later use.

Addresses contained in the fifth through the eighth words of the RAM are then loaded into the boundary register 24. Next the controller utilizes the text data and controller commands contained in the RAM 18 to fill a line buffer 26 with all of the text necessary for the generation of one horizontal line of text on the CRT, in the manner specified by the display commands. This loading process will be described in connection with FIG. 5 which illustrates only the pertinent sections of the controller and the line buffer in more detailed block form.

Access to a particular word in the RAM 18 is controlled by a RAM address selector 28 and three associated address registers contained within the controller 20. A RAM command pointer 30, one of the three selectable RAM address registers. controls the sequential utilization of display commands under control of the link commands and provides its output to the RAM address selector 28. A display data address register, the second of these three registers, is loaded with data from the RAM at locations specified by the command pointer 30 and is used to control the movement of data from RAM to the line buffer register 26 and of link addresses to the pointer register 30. A communication register 32 acts as an address buffer between the RAM and the CPU 12 and is capable of controlling the RAM address selector 28 in order to gain access to any storage area within the RAM.

As has been noted, at the beginning of the display cycle the RAM command pointer 30 is set to all zeros and controls the address selector 28 to cause the contents of the first word position in the RAM to be provided to the cursor register 22 and the pointer 30 is incremented by one to cause the address selector 28 to provide the contents of the second word storage area to the boundary register 24.

This procedure is continued until the contents of the first eight word storage areas have been transferred to the cursor and boundary registers.

The display data address register 34 is two words in length and when the RAM pointer 30 reaches a count of nine it causes the memory address register to load the ninth RAM word into the first word of the display data address register 34 and then automatically indexes to cause the tenth RAM word to be loaded into the second word position of the data register.

The controller 20 examines the first bit position of the first word contained in the address register 34 to determine whether the two data words constitute a "link" or part of a display command. If the words constitute a link the data register loads the link address into the RAM command pointer 30. This causes the RAM address selector to extract the two words beginning at that RAM address and place them into the display data address register 34. This process continues until the display data address register contains a display command. When a display command is recongized the command pointer 30 is incremented twice and the address of the starting column of the text string is loaded into a block position register 36 and the length of the text string, the last word of the display command, is loaded into a block length register 38. The RAM address of the start of the text string referred to by that display command is then provided by the display data address register 34 to the RAM address selector 28.

The line buffer register 26 is an eighty character, twelve bit wide recirculating register having a gate 40 in its recirculating path. A line buffer counter 42 contained within the controller 20 contains an address signifying the position of the line buffer contents within the register, or the column number of the 12 bit word emerging from the line buffer at any time.

At the beginning of the filling process the line buffer counter is at zero. The return gate 40 is open so that the contents of the buffer are effectively not recirculated. The line buffer register 26 is then incremented to the position stored in the block position register 36 under control of a comparator unit 44 which receives the contents of the block position register 36 and the line buffer counter 42 and causes the unit 46 to generate increment signals which are used to advance the line buffer register contents and increment the line buffer counter 42. Assuming that the block position is something other than zero, since the return gate 40 is opened null or zero signals are entered into those stages of the line buffer register which precede the block start position contained in the register 36. When the counter reaches that start position the comparator 44 detects the identity between the contents of the counter 42 and the block position register 36 and disables the increment generator 46.

At this point the eight bits of the first word stored in the RAM address identified as the start of the text string by the display command contained in the display data address register are loaded in parallel into the line buffer register. Along with these eight bits the block length and block position registers enter one bit each into the line buffer indicating whether the display of the character so stored is to be bold and whether it is to blink. These signals were derived from the second bit of the first word and the first bit of the fourth word of the display command then stored in the appropriate registers. Accordingly, ten bits are stored in the line buffer register defining the character to be generated at that column of the display and the blink, bold and underlined attributes of that character.

At the time a data word is read out of the RAM into the line buffer the block length register 38 is decremented by one count and the display data address register 28 and the block position register 36 are each incremented by one count. If, after the block length register 38 is decremented it still contains a positive number the data word located at the position indicated by the display data address register is loaded into the next stage of the line buffer as are the same bold and blink bits from the block length and block position registers which were loaded with the last word. Thus these bold and blink registers are redundantly loaded into the line buffer with all of the characters associated with a single display command. Again the block length register 38 is decremented and the display data address register 28 and block position registers 36 are incremented. This process is continued until the block length register reaches zero indicating that all of the characters associated with the present display command have been loaded into the line buffer register.

If the display command contains a one in its eighteenth bit position signifying that its associated text string is the last one to be used in filling the line buffer, the increment generator 46 sends a series of signals to the line buffer register causing it to index its contents until the line buffer counter 42 returns to zero. During this time the return gate 40 is open and nulls are generated so that the stages of the line buffer register following the one containing the last character loaded from the display command are filled with null signals. At this point the line buffer would be completely filled and ready to generate a line of display in a manner which will be subsequently described.

Alternatively if the display command being utilized is not the last one to be used in filling the line buffer the contents of the command pointer 30 are incremented and are fed into the address selector so that the next display command in the sequence may be fetched. Again the contents of that designated address in the RAM are placed into the display data address register until a display command is recognized and the process is repeated.

If the block position associated with the next display command to be utilized immediately follows the line buffer stage in which the last word identified by the previous display command was entered, the text string identifited by that subsequent display command is simply entered into the line buffer. If there is a gap between the two, the line buffer counter is indexed until its contents identify with the block position as stored in register 36 in the manner previously described and nulls are entered into the positions of the line buffer intermediate the end of the first text string and the start of the second.

A subsequent string to be used in filling the line buffer may have its first character positioned in a lower position of the line buffer than the start of a previously entered string. In this case the line buffer counter will pass through a zero state in its transition between those two positions. When this occurs the return gate 40 is closed so that thereafter the content of the line buffer are recirculated and no more nulls are generated.

When one string overlaps a string previously entered in the line buffer it acts to supersede that data. This simplifies the editing process since text overlays can be made without deleting the material that it replaces.

This process is continued until a display command is encountered containing a bit indicating that its associated text string is the last to be used in filling a line buffer. The line buffer contents are then advanced until the line buffer register reaches zero. At this point the line buffer is ready to be used in generating one line of characters across the face of the CRT.

WRITING A SINGLE TEXT LINE ON THE CRT UNDER CONTROL OF THE LINE BUFFER

Referring again to FIG. 4 the scan of the CRT 14 is controlled by a screen timing and format logic control 50 to produce a 480 line scan. This provides fifteen horizontal lines for the display of each character. The preferred embodiment of the invention employs a seven bit wide, one bit high character generating matrix drawn on a 10 dot wide, 15 dot high square. An extra dot column on each side of the character is used for boundary generation and the square left open provides the horizontal spacing between characters. Nine vertical rows are required for character generation and an extra two rows at the bottom are reserved for lower case descenders. One row at the top of the character is reserved for boundary and rows at the bottom of the character are reserved for underlines and boundary. The last bottom row is left as a space between lines and to provide time during the raster generation for the contents of the line buffer to be changed between the display of two contiguous lines of characters.

In the preferred embodiment of the invention the actual horizontal and vertical deflection circuits are associated with the CRT 14 and the screen timing of unit 50 provides sync signals to the CRT to assure timing control. Alternatively, the screen timing unit could generate the deflection signals. In either event the screen timing unit 50 contains registers which store the instantaneous horizontal and vertical positions of the CRT scan. As has been previously described the cursor register 22 and the boundary register 24 are loaded with the horizontal and vertical addresses of the cursor and boundaries. During the scan these addresses are provided to a comparator 52 which also examines the registers contained in the screen timing unit 50 indicating the horizontal and vertical positions of the scan. When identity is recognized between cursor or boundary address registers and the scan position a signal is provided to an attribute adder unit 54 which constitutes a matrix which generates video modulation signals at the proper time in the scan to generate the necessary matrix dot for the particular attribute. The attribute adder 54 has an input from the screen timing unit 50 for this purpose.

The contents of the horizontal position register in the screen timing logic are also provided to the controller 20 which recirculates the contents of the line buffer 26 in timed relation to the horizontal scan of the CRT so that the column of the line buffer containing a character to be generated in any particular column is presented just as the scan reaches that column. The seven bits of each line buffer column representing the character are provided to a character read-only-memory 56 which constitutes a matrix. The character read-only-memory also has an input from the screen timing logic unit 50 indicating which horizontal line of the fifteen lines allotted to each character the scan is in, and the horizontal register signal. The read-only-memory is encoded so that for each character input at each particular horizontal and vertical posi position, within that character, it provides either a zero or a one output to the attribute adder 56, depending upon whether the inputted character has a dot in that particular position of the matrix. The attribute adder also receives the three bits of each line buffer word which control whether the character is to be bold, blinked, or underlined and effectively generates appropriate video signals for modulation of the CRT scan.

When a line constituting the characters contained in one line stored in the line buffer is completed the contents of the RAM pointer are provided to the RAM address register and the line buffer is refilled in the manner previously described.

The generation of lines may be terminated when a special display command containing all zeros is encountered or the screen timing logic 50 indicates that the last available line in the raster has been scanned, whichever event occurs first. In either event the cycle of operation begins again upon receipt of an appropriate timing signal at that point with the contents of the first eight words in the RAM being provided to the cursor register 22 and the boundary register 24.

The screen timing and format logic unit 50 is disclosed in more detail in FIG. 6. The basic timing for the system derives from signals generated by a crystal controlled oscillator 60 preferably having an output frequency of 15.27MHz. This output is provided to a Horizontal Dot within Character Counter 62 constituting a ten state counter which times the generation of the dots forming the horizontal elements of the character matrix. This unit provides a four bit binary signal signifying the 1-10 count to the character read-only-memory 56 to control the selection of signals for the generation of the appropriate dots for the generation of a character inputted to the matrix from the line buffer 26. This four bit binary signal is also provided to the controller 20 wherein it is decoded to control the timing of the various operations of the controller.

A pulse signifying each tenth change of state of the Dot within Character Counter 62 and preferably having a frequency of about 1.52 MHz, is provided to a Character within Line Counter 64 which counts up to 100. The counter 64 provides a seven bit binary output representing its count to the comparator 52 for comparison with the horizontal addresses stored in the cursor register 22 and the boundary register 24. Once in each cycle the character within line counter 64 provides an output to the CRT 14 which acts as a horiziontal sync signal to initiate the scan of a horizontal line. The same 15.27 KHz signal is provided to a Vertical Element within Character Counter 66 which counts to 16 and provides a four bit binary signal representing its count to the character read-only-memory 56 to control the vertical position of the horizontal line within the dot matrix which is then being generated.

The output signal of the counter 66 having a frequency of slightly less than 1 KHz is provided to controller 20 and is termed NEXT LINE signify that all of the data stored in the line buffer has been utilized to generate a line and the line buffer must be refilled.

This same output signal of the vertical elements within character counter 66 is provided to a display line number counter 68 which essentially counts the number of character rows displayed during a raster. It is a scale of 32 counter and its five bit binary output, signifying the vertical line number, is provided to the comparator 52 for comparison with the vertical addresses contained in the cursor register 22 and the boundary register 24. Once a cycle it provides an output constituting a vertical sync signal to the CRT 14.

Thus, based on the various outputs from the screen timing and format logic unit 50, generation of a raster on the CRT 14 is controlled by the horizontal sync signal from the counter 64 and the vertical sync signal from the counter 68. Also, the operation of the controller 20 and the line buffer 26 are synchronized to that raster generation; the character ROM 56 is informed as to the particular dot position within the matrix to be generated; and the comparator 52 receives information used to control the addition of attributes stored in the registers 22 and 24 to the character signals at the positions.

FIG. 7 illustrates certain of the elements of the controller 20 which cooperate with the timing circuitry to control the sequence of the system.

The four bit timing signal from the dot within character counter 62 is provided to a timing decoder 70 within the controller to generate various timing signals that are provided to all of the controller circuits.

The initiation of a sequence of filling the line buffer is initiated by the vertical sync signal from counter 68. This signal is provided to the RAM command pointer register 30 to reset it to zero and also to a state generator 72 to place it in an initial state. The state generator 72 is also connected to CPU interface 74 which can provide a signal which changes the condition of the state generator 72 in response to a request signal received from the CPU. The state generator 72 also receives the NEXT LINE output from the counter 66 which initialize its state.

In the absence of an overriding signal from the CPU interface 74, when the state generator 72 receives a VERTICAL SYNC signal, which will coincide with a NEXT LINE signal, it provides an output denominated BEGIN which causes the RAM address selector 28 to go to the RAM address indicated by the RAM command pointer register 30 which has also been initialized by the VERTICAL SYNC signal. Under control of appropriate logic set by these signals, the contents of the first word position in the RAM are loaded into the cursor register 22. This occurs during the time required to generate one character, or the time between two identical states of the timing decoder 70. During the next character time the RAM command pointer register 30 is incremented and the contents of the second RAM word are loaded into the cursor register. This cycle continues until the contents of the first eight RAM positions have been loaded into their appropriate registers.

The state generator 72 receives an output from the RAM address selector 28 and when the first eight words have been loaded the state generator enters its second state entitled LOAD 34 LO. During this state, which occupies one character time, the contents of the ninth word in the RAM are loaded into the lower half of the two word display data address register 34. This requires one character time and the RAM command pointer register 30 is incremented at the end of that time. At the beginning of the tenth word time the state generator 72 is controlled to enter a new state termed LOAD 34 HI. During this single character state the contents of the RAM command pointer register 30 are loaded into the upper half of the register 34.

The next condition of the state generator is controlled by whether the two words loaded into the register 34 previously, represent a link or a command. If they represent a link they are loaded into the RAM command pointer register 30 and the state generator 72 reverts to LOAD 34 LO. This process is repeated until a display command is encountered whence the state generator enters a state entitled LOAD 36 from LOAD 34 HI. During the next character time the subsequent RAM word is loaded into block position register 36 and the RAM command point register 30 is again incremented. Then the state generator enters a state termed LOAD 38 wherein the word then contained in the RAM command pointer register 30, the next subsequent word in RAM, is loaded into the block length register 38.

The state generator 72 next enters the state term WAIT wherein the buffer memory increment control 46 repeatedly generates increment signals for the line buffer register 26 until the contents of the line buffer counter 42 equate with the contents of the block position register 36 as determined by the comparator 44. When this occurs a repeated cycle begins wherein the contents of the RAM at the address obtained in the display data address register 34 are loaded into the then available state of the line buffer along with the associated bold and blink bits from the registers 36 and 38; the display data address register 34 is incremented; and the block length register 38 is decremented. This continues until the block length register reaches zero, indicating that all of the characters of the associated display command have been loaded. If the last display command did not contain a signal indicating that it was the last one to be used in filling a line, the state generator 72 then returns to the LOAD 34 LO state and the cycle repeats. When the last display command to be used in filling a line has been utilized the state generator enters a state termed IDLE.

At any time during this cycle a request from the CPU to the state generator can cause the state generator to enter the COMMUNICATE state wherein access to the RAM is controlled by the communication register. After this request signal has been removed the state generator returns to the state at which the interruption occured. If the COMMUNICATE request occurs while characters are being loaded from the RAM into the line buffer register the state generator waits until the next character has been fully loaded before responding to the request.

* * * * *


uspto.report is an independent third-party trademark research tool that is not affiliated, endorsed, or sponsored by the United States Patent and Trademark Office (USPTO) or any other governmental organization. The information provided by uspto.report is based on publicly available data at the time of writing and is intended for informational purposes only.

While we strive to provide accurate and up-to-date information, we do not guarantee the accuracy, completeness, reliability, or suitability of the information displayed on this site. The use of this site is at your own risk. Any reliance you place on such information is therefore strictly at your own risk.

All official trademark data, including owner information, should be verified by visiting the official USPTO website at www.uspto.gov. This site is not intended to replace professional legal advice and should not be used as a substitute for consulting with a legal professional who is knowledgeable about trademark law.

© 2024 USPTO.report | Privacy Policy | Resources | RSS Feed of Trademarks | Trademark Filings Twitter Feed