Attribute hierarchy system

Abstract: Attribute hierarchy system including hardware assisted by software for utilizing a stack structure (28, 30) of a multiple-level stack and a plurality of stacks for storing data and attributes. The stack structure provides that only the top of the stack is loaded and utilized. The software controls the hardware logic flow associated with the stack and the stacks. The hardware includes an attribute memory (12) and charac­ ter data storage (14), a character data counter (20) and position register (21). An attribute mask (34) and attribute processor (38) control loading of the attributes. A command register (26) pushes, pops or loads to the stacks along with a sequence controller (40) input from the attribute processor. A command decoder (36) determines sequence of operation for loading attributes and character into row buffers (16, 42). A stack control (28A, 30A) flags when a valid load has occurred, and if no load concurred, the stack defaults and a copy operation occurs.

Description: This invention relates to video displays for alphanumeric data, and more particularly pertains an attribute hierarchy system providing levels of attributes and commands for controlling the attribute levels. In the field of alphanumeric video displays, an "attribute" is a modifiable aspect of a displayed character, such as blinking, intensified, reverse video, underlined, and protected against overwriting. The prior art has been oriented toward utilizing holding buffers in conjunction with current-attribute buffers for storing an attribute code or codes until called for. This type of software programming and hardware architecture has not provided for any program control as the operation is predetermined. The prior art with considerable brute-force techniques would allow for underlining characters or striking out characters, various types of formatting of material in a text, and any of the other attributes as performed in the prior art operations. The prior art required that the old attribute had to be respecified at the end of the field, which required considerable storage for attributes as previously utilized. Further, there was considerable software searching the data to find the last valid attribute, which not only required additional storage, but also required additional time, both of the storage hardware and software searching time leading to inefficient data processing. The present invention overcomes the disadvantages of the prior art by providing hardware assist controlled by software reducing the number of bytes for levels of attributes and commands to control the attribute levels. The present invention provides hardware assisted by software in storing levels of attributes and generating command signals to move the levels in being pushed down into or popped up into a stack, such as defined in "Microprocessors: Fundamentals & Applications", 1977, pages 15 to 19, IEEE, New York. The levels of attributes and commands to control the attribute levels can be expanded accordingly, dependent upon the number of bytes available in the system. This system provides handling, control, and implementation of attribute hierarchy, reducing display storage requirements including bandwidth and size, and reduces the required software to manage the attributes. The principal object of the invention is to provide a display system as defined in claim 1. According to one embodiment of the present invention, an "n" position stack is provided with hardware logic flow which specifies loading of an attribute when entering a new attribute field, each attribute is pushed down into the stack, and the previous attribute does not have to be respecified at the end of the field. A pop-up command to the stack restores the preceding attribute to its previous level. The level of the "stack" determines the levels of attribute hierarchy. The hardware logic flow assisted by the software determines the use of any "end" attribute levels. A set of commands provides the required hardware-software interface providing that the software controls the stack and the hardware attributing process through the hardware logic flow. A set of commands and functions provides hardware control through the software for keying, loading, and specifying end of field. A plurality of stacks can be provided where each stack can also have a plurality of levels. One significant aspect and feature of the present invention is that this attribute hierarchy system providing hardware assisted by software is applicable to the industry standard attributes, such as color, reversing, underscoring, blinking, blanking, and intensity, as well as the more complex attributes including over-striking of characters, changing box width or box height, magnification, and other attributes. Another significant aspect and feature of the present invention is an attribute hierarchy system which reduces the amount of disk storage space, saves required storage, and saves software time in the software controlling the hardware. Fig. 1 illustrates the hardware for the attribute hierarchy system; Fig. 2 illustrates the hardware logic flow for the attribute hierarchy system in Fig. 1; Fig. 3 illustrates hardware logic flow for operations to stack including pop and push; Fig. 4 illustrates hardware logic flow for operation to stack/load; and, Fig. 5 illustrates hardware logic flow for the stack copy controller. Fig. 1 illustrates a microprocessor-controlled video display terminal for alphanumeric data. The conventional portion of the terminal has a data/address/control bus 1 for connecting a microprocessor 2, or storage 3 for read/write and read-only, a communications adapter 4 connected to a host data processor via a cable 5, and a keyboard interface 6 for receiving input data from a keyboard 7. Display logic 8 provides conventional timing and signal conversion functions for a raster-scanned cathode-ray-tube (CRT) display 9. Attribute hierarchy hardware 10 according to the presentr invention is coupled between bus 1 and display logic 8. Character data storage 14 stores byte-length codes signifying the identities of the characters to be displayed on CRT 9, while attribute storage 12 stores byte-length codes specifying the attributes such as blinking, intensified, underlined, etc., with which the characters are to be displayed. The storages 12 and 14 can be included in the same storage. Row buffers 16 receive characters from the storage 14 through the character data bus 18 for subsequent display or to display logic. A match signal is generated, when to aplly an attribute, through signals from a character counter 20, a position register 22, and an AND gate 24. Command register 26 receives a command preceding each attribute string whereupon the attributes go to a stack 28, the first stack in this example. Any number of stacks can be provided and the last stack would be designated stack 30, by way of example and for purposes of illustration only, and not to be construed as limiting of the present invention. In this particular example, for purposes of illustration, a three-level stack has been illustrated, but any number of levels can be provided. Attribute data bus 32 carries the attributes to the stacks 28 and 30. Attribute mask 34 provides signals as to what attributes follow and how many attributes follow. Command decoder 36 and attribute processor 38 feed to the sequence controller 40 which provides load row buffer and load character signals. For purposes of definition, "push" means that an attribute is moved from stack 1.1 to stack 1.2 and "pop" means that an attribute is moved from stack 1.2 to 1.1. Stack copy control 28a and 30a is evaluated whenever a load signal is received by the stacks 28 and 30 respectively. Row buffers 42 and 44 connect respectively to the outputs of the stacks and connect to the display logic. In the alternative, the stacks could drive a display accordingly. A set of commands provides the hardware with logic flow through the software assist for controlling the stack and hardware attribute processing. In this particular example, a set of eight command signals is optimal for hardware and software of the attribute hierarchy system. The commands provide for proper hardware control through the software by the use of three efficiently coded bits. A list of commands and functions follows: One additional bit is used to determine the end of the command string. The end of string (EOS) flag allows several commands to appear in one string. The command, attribute mask, and attributes are combined and compressed into an attribute string which is stored by the attribute memory 12. The first byte of each attribute string is a position number corresponding to the position in the data memory for which that attribute string is to be applied. When a match occurs between the character data counter 20 and the position register 22 the command and attribute mask are outputted. That attribute mask determines the attributes which follow while the attribute processor 38 controls the loading of the attributes. Command decoder 36 of the command register 26 determines the operations of PUSH, POP, and LOAD for the stacks 28 and 30. The sequence controller 40 with inputs from the attribute processor 38 and the command decoder 36 determines the sequence of operation when to parallel load all of the attributes and the character into the row buffers 42 and 44. The stack controls 28A and 30A flag for each stack when a valid load has occurred, but if no load occurred, the stacks automatically default and a copy operation takes place. Fig. 2 illustrates a hardware logic flow for the command decoder and sequence controller 50 for the attribute hierarchy system. At the start 52, hardware receives position, command, and character count at box 54. Box 56 receives the load command, the masking which includes the attributes and how many attributes follow, and a single bit end of string flag at the end of the command string which allows several commands to appear in one string. At load command box 58, a "No" decision precedes through the NO operation 60, the pop clock, and the end of string 64 accordingly. On a "Yes" load command, attribute processing masking logic include boxes 66-88 for attribute processing and masking. The first attribute header determines the processing by box 68 or 70, and the data attribute determines the processing by boxes 72-80. Boxes 82 and 84 fetch the byte, can load the data attribute in box 84, and reset the mask. Depending upon the particular load command, boxes 90-98 determine the load character, load row buffer, and pushing or popping the attribute through the load buffer. Fig. 3 illustrates a hardware logic flow chart 100 for the operations to stack for POP and PUSH. The flow chart assumes a three-level stack, by way of example and for purposes of illustration only and not to be construed as limiting of the invention. A pop command 102 will require a pop clock 104 to move an attribute in the stack, as illustrated in 108. Likewise, a push command 110 requires a push signal 112 moving the attribute in the stack 114 accordingly. Fig. 4 illustrates a hardware logic flow chart 116 for operations to stack-load. The command decoder 36 provides a load signal 118 for loading the stack 120 depending on which stack is selected. One or more of the stacks 20 to 30 can be loaded as determined by SEL Stack 1 to SEL Stack X. Accordingly, a valid load signal is set by 126 and 130 for stacking. Fig. 5 illustrates a hardware logic flow chart 132 for the stack copy control 28A and 30A for loading the row buffer 16, 42, and 44. On row buffer load signal 136, a valid load decision 138, determine whether a default copy is to occur. Default copy 140 provides an automatic positional attribute which defaults to the next level up, where 142 provides reset of the valid stack 1 load. Box 144 provides for the stacking in the appropriate row buffer. Decisions of 146, 148, and 150 correspond for the appropriate valid loading, default copy with a copy operation occuring and reset valid loading accordingly, providing a stack control flag.

Claims: Display system having attribute commands for modifying appearances of displayed data by attributes, characterized in that it comprises: a. a stack means (28, 30) for storing a plurality of attributes, b. leveling means (34) for generating levels of attributes in said stacking means; and c. command means (36, 38, 40) for generating command signals for moving said attributes through levels in said stack means whereby each of said command signals precede said levels of attributes. System of claim 1 characterized in that it further comprises: a. loading means (32) for loading attributes in said stack means; b. pushing means for pushing said levels of attributes down in said stack means; and c. popping means for popping up said level of attributes in said stack means. System of claim 1 characterized in that said command signals means codes said signals into three bits. System of claim 1 characterized in that it comprises flag means for generating an end of command string bit. Display system, having an attribute hierarchy comprising: a. storage means (14) circuitry for character data; b. buffering means (16) for said stored character data and bus means (18) for transferring said character data to said buffering means; c. storage means (12) for attributes; d. signal generation means (20, 22) connected to said character storage means and said attribute storage means for generating a metch signal, characterized in that it further comprises: a. bus means (32) for transferring said attributes and connected to said attribute storage means; b. register means (26) for registering command codes prior to said attributes and connected to said attribute bus means; c. masking means (34) for each attribute and number of attribute, and connected to said attribute bus means; d. decode means (36) for command decoding connected to said command register means and generating pop, push, and load signals; e. processor means (38) for attribute processing and connected to said attribute masking means, and generating a stack select signal; f. sequence means (40) for sequence controlling and connected between said decode means and said processor means, and generating load row buffer and load character signals; g. stacking means (28, 30) for said attributes and connected to said attribute storage means through said attribute bus means, said stack means receiving said pop, push, and load signals; h. means (28A, 30A) for evaluating each attribute load, and- connected between said sequence means and said stacking means; and i. buffering means (42, 44) for said stacked attributes. System of claim 5 characterized in that said stacking means comprises a plurality of stacking means connected to said attribute data bus means. System of claim 5 characterized in that each of said stack means includes a plurality of levels.

Inventors: LUCK MELVIN RICHARD, PAVICIC MARK JOSEPH, LUCK, MELVIN RICHARD, PAVICIC, MARK JOSEPH
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1984
Main classification: G09G1
IPC codes: G06F3, G06F17, G09G5, G09G1