APPARATUS FOR CONTROLLING THE DISPLAY OF CHARACTERS WITH VISUAL ATTRIBUTES APPLIED THERETO

Abstract: An apparatus for controlling the display of characters on a CRT device (58) includes a memory (18) in which characters to be displayed are stored. Each character is displayed in a predetermined number of scan lines, and the memory (18) stores each character as a set of data bytes each of which represents one scan line of the respective character. One data byte of each set is an attribute byte containing attribute data bits. A display controller (22) includes selecting means for selecting the attribute bytes of a character to be displayed, attribute logic means for applying the attribute bits of each selected attribute byte to the other data bits of the corresponding character, and a video output (50) for outputting data signals representing the character to be displayed with the attribute bits applied.

Description: APPARATUS FOR CONTROLLING THE DISPLAY OF CHARACTERS WITH VISUAL ATTRIBUTES APPLIED THERETO Technical Field The present invention is concerned with apparatus for controlling the display of characters with visual attributes applied thereto. Background Art In video terminal devices which display textual material such as used in computer systems, means are generally provided to provide visual attributes to characters in the text being displayed. These visual attributes cause a selected character or characters to blink, to have a high or low intensity, to be underlined, to be blanked out, to have a light character on a dark background, or to be reversed with a dark character on a light background. The attribute data is typically carried in the data string which carries the text to be displayed, and thus takes up one character position. For example, U.S. Patent No. 3,895,374 discloses a system for displaying characters on a video display means, including data source means operative to produce a plurality of characters comprising data characters the images of which are to be displayed and attribute characters interspersed with the data characters and each specifying particular display attributes which the images of data characters following the attribute character are to have when displayed. Disclosure of the Invention It is an object of the present invention to provide an apparatus for controlling the display of characters with visual attributes applied thereto, which apparatus requires reduced storage capacity for the information to be displayed. According to the invention, there is provided an apparatus for controlling the display on video display means of characters with visual attributes applied thereto, each character being arranged to be displayed in a predetermined number of scan lines, and said apparatus including memory means in which characters to be displayed are stored, characterized in that said memory means is arranged to store each of the characters to be displayed as a set of data bytes, each data byte of each set representing one scan line of the respective character, and one data byte of each set being an attribute byte containing attribute data bits for application to all the other data bits of the respective character, and further characterized by display controller means having a data input arranged to receive from said memory means data bytes of characters to be displayed, said display controller means including selected means for selecting the attribute byte of a character to be displayed, attribute logic means for applying the attribute bits of each selected attribute byte to the other data bits of the corresponding character, and a video output for outputting data signals representing the character to be displayed with the attribute bits applied. It will be appreciated that, in an apparatus in accordance with the present invention, .storage space can be saved by virtue of the fact that attribute bits can be stored in a row of normally unused bits of a character matrix. Brief Description of the Drawings One embodiment of the invention will now be described by way of example with reference to the accompanying drawings, in which: Fig. 1 is a diagram of a portion of a bit mapped memory plane for storing characters with visual attributes applied thereto; Fig. 2 is a block diagram of a character display system including a display control apparatus in accordance with the present invention; Fig. 3 is a diagram of the screen of a CRT display device of the system of Fig. 2; Figs. 4A and 4B, joined along line a-a, form a block diagram of a display controller of the system of Fig. 2; Fig. 5 is a schematic diagram of a decode circuit of the display controller; Fig. 6 is a schematic diagram of another decode circuit of the display controller; Fig. 7 is a schematic diagram of an inhibit circuit of the display controller; Fig. 8 is a schematic diagram of another decode circuit of the display controller; and Figs. 9A and 9B, joined along line b-b, form a schematic diagram of an attribute logic circuit of the display controller. Best Mode for Carrying Out the Invention Fig. 1 is a diagrammatic representation of a portion of the bit mapped memory plane for storing characters with visual attributes applied thereto, wherein a portion of the memory plane for a single character is shown. Each character is represented in the memory plane by a matrix 10. The matrix 10 is nine bits wide (numbered one through nine), and thirteen scan lines long (numbered zero through twelve). In the matrix 10 shown in Fig. 1, selected bits are turned on to form the character "A". It will be understood that each bit in the bit mapped memory plane, a portion of which is represented in Fig. 1, represents one picture element or pixel to be displayed on the screen of a cathode ray tube (CRT) of, for instance, a computer terminal. The scan lines zero, ten and twelve are left blank to provide the appropriate spacing between rows of characters on the CRT screen. As will be discussed further, scan line eleven may be used to provide an underline, where designated, of the characters displayed on the CRT screen. In the description of the invention herein, the bits representing pixels which are not part of the selected character, for instance the character "A" of Fig. 1, will be referred to as the background, and the pixels which form the character to be displayed will be referred to as the foreground. As shown in Fig. 1, scan line zero of matrix 10 contains nine bits which may be selectively activated to represent attributes of the character of that nine by thirteen matrix. The first bit of scan line zero of the matrix 10 for each character is a reversed video (R) bit, the second bit is a half intensity or bold (H) bit, the third bit is an underline (U) bit, the fourth bit is a blink (B) bit, the fifth bit is a pixel (P) bit, the sixth bit is a suppress (S) bit, and the seventh, eight and ninth bits are general purpose bits whose functions may be designated as desired. For instance, the seventh bit could be used to implement a propagate attribute mode for serial field attributes. Also, the eighth bit could provide a protect function for data entry form applications. The nine bits making up one scan line of one character are referred to herein as a byte, and such bits of scan line zero of one character are referred to herein as an attribute byte. Thus, in the present invention, the attribute byte for each character to be displayed on the screen is a portion of, and is passed to a display controller as a part of, each character to be displayed. Fig. 2 is a block diagram of a system using the present invention. The system of Fig. 2 includes a central processing unit (CPU) 12, which may be a computer or microprocessor which has a CRT type video monitor device 24 for displaying data characters. The CPU 12 is connected to a multiconductor data bus 14 for sending or receiving data, and a multiconductor address bus 16 for supplying an address to a memory. The system includes a random access memory (RAM) 18 for storing data to be read into the CPU 12 or written from the CPU 12 into the RAM 18 by appropriate read/write commands over the data bus 14. A bi¬ directional gate 20 is in the data bus 14 between the RAM 18 and CPU 12 for controlling data transmission between the CPU 12 and the RAM 18. The CPU 12, the RAM 18, and the bi-directional bus gate 20 are well understood in the art and will not be discussed further herein. A display controller 22 is provided to display a screen of data stored in the RAM 18 on the video monitor device 24. A multiplexer 26 is provided in the address bus 16 between the CPU 12 and the RAM 18. An address bus extension 28 is connected between the address bus 16 of the CPU 12 and an address input A of the display controller 22. The controller 22 includes a direct memory access (DMA) counter, to be discussed later, which supplies display addresses over a display address bus 32 via the multiplexer 26 to the RAM 18. A multiplexer control line 34 is connected between the display controller 22 and the multiplexer 26 for controlling transmission of the display address to the RAM 18. The display address may come from either the display controller 22 over the display address bus 32 or over the address bus 16 from the CPU 12. A data bus extension 36 is connected between the CPU data bus 14 and input D of the display controller 22. A crystal oscillator 40 supplies video dot clock signals to the display controller 22 over conductor 42, and a synchronizer means (SYNC) 44 synchronizes both the CPU 12 and display controller 22 over conductors 46 and 48, respectively. The video monitor device 24 receives video signals over conductor 50 from the display controller 22, vertical drive signals over conductor 52 and horizontal drive signals over conductor 54. As is known, the video monitor device 24 includes a video amplifier 56 for receiving and amplifying a video signal for the electron gun of a CRT device 58, a vertical amplifier 60 for receiving vertical drive signals over conductor 52, and a horizontal amplifier 64 for receiving horizontal drive signals over conductor 54. As is well known, the horizontal amplifier 64, when energized by the horizontal drive signal, generates a ramp signal which sweeps an electron beam horizontally across the face of the CRT 58, and the vertical amplifier 60 generates a ramp signal which sweeps the electron beam vertically down the face of the CRT 58. The operation of such video monitor device 24 is well understood in the art and will not be explained further herein. It can thus be seen that a full screen of information may be written into the RAM 18 by the CPU 12. The addresses for the placement of the screen data are passed over the RAM address bus 16 through the multiplexer 26 to the address terminal A of the RAM 18. The data may be passed, a byte at a time, over the data bus 14 through the bus gate 20 to the data terminal D of the RAM 18. When that portion of the RAM 18 which represents the screen of the CRT 58 (referred to herein as the bit plane memory) is thus loaded, the display controller 22 may access the screen data a byte at a time by sending an address over the bus 32 via the multiplexer 26. The screen data is then passed from the RAM 18 to the display controller 22, a byte at a time, via data bus extension 36. The starting address of the data to appear at the top of the screen is always zero in this description. The starting address could be passed by the CPU 12 to the display controller 22 over the address buses 16 and 28. However, for clarity of exposition, the starting address of the data for the top of screen will always be scan line zero. Thus, no partial rows of text can be displayed as would be required by a scroll action requiring incremental movement. However, such a design could be implemented, if desired. The bit plane memory in the RAM 18 may be accessed starting at the designated top of screen byte. Certain global attributes to be applied to the entire screen, or portions of the screen, may be passed over the data buses 14 and 36 to the display controller 22 and identified by a specified RAM address transmitted by the CPU 12 over the address buses 16 and 28. Appropriate circuitry, to be discussed later herein, is provided in the display controller 22 to recognize global attribute commands from the CPU 12. Fig. 3 is a representation of a screen 62 of the CRT 58 of Fig. 2. The screen 62 has a display character "A" in a matrix 66 at the first display position at the top of the screen 62. As discussed in connection with matrix 10 of Fig. 1, the matrix 66 may be nine pixels wide and have thirteen scan lines. The characters displayed on the screen are arranged in rows with each row having a predetermined number of characters. In the example used herein, each row contains eighty characters with a total of twenty-five rows of text being displayed on the screen 62 at one time. As discussed previously, if each of the nine bits of one scan line of the character matrix 66 is considered, to be one byte, the entire screen of characters may be represented by eighty bytes per scan line times thirteen scan lines per character times twenty-five rows or 26,000 bytes. Thus, to store the bit plane memory for the entire contents of the screen 62, the RAM 18 of Fig. 2 must contain storage for at least 26,000 bytes r each character to be displayed being represented by a set of 13 bytes. Provision is made in the display controller 22 of Fig. 2 to count the number of characters to be displayed in each row for controlling the horizontal drive signal output on conductor 54. The controller 22 typically counts one hundred characters per row to provide time equivalent to twenty characters for flyback in the horizontal amplifier 64. A total of 325 scan lines are required to provide twenty-five rows of characters with each row having thirteen scan lines. Time equivalent to an additional thirty scan lines is provided by the display controller 22 to allow for vertical retrace of the vertical amplifier 60 of Fig. 2. Figs. 4A and 4B form a block diagram of the display controller 22 of Fig. 2. The display controller 22 includes a modulo nine counter 70, whose input receives the video dot clock signal over conductor 42 from the crystal oscillator 40 of Fig. 2. The output of the counter 70 is connected to the input of a modulo one hundred counter 71, whose output is connected to the input of a modulo 355 counter 72 (see Fig. 4B) . The counter 70 counts nine video dot clock signals from the crystal oscillator 40 and outputs a character clock signal on conductor 102 to indicate the beginning of a new character. The counter 71 counts the character clocks signals output by the counter 70 and outputs a scan clock signal on conductor 122 to indicate the beginning of a new scan line. The counter 72 counts 355 scan clock signals from the output of counter 71 to keep track of the number of scan lines displayed on the screen 62 of Fig. 3. The counter 71 also outputs seven bits over bus 73 to give the number of characters counted by counter 71. Similarly, counter 72 outputs a nine bit value over bus 74 to indicate the number of scan lines counted by the counter 72. The characters counted by the counter 71 are inputted to a decode circuit 76 for use in generating a horizontal drive signal and a horizontal blanking signal to be outputted on outputs 77 and 78, respectively. The scan number outputted over bus 74 by the counter 72 is inputted into a decode circuit 79 for generating a vertical drive signal and a vertical blanking signal on conductors 80 and 81, respectively. The vertical drive signal on conductor 80 is connected to terminal F of the display controller 22 and the horizontal drive signal on conductor 77 is connected to terminal G of the display controller (see Fig. 4B) . Fig. 5 is a schematic diagram of the decode circuit 76 of Fig. 4A. The decode circuit 76 has an OR gate 83 whose input is connected to the fifth and sixth bits of the inputted character number over the bus 73 from counter 71. The output of the OR gate 83 is inputted to one input of an AND gate 84, and a second input of the AND gate 84 receives the seventh bit from the bus 73. The output of the AND gate 84 provides the horizontal drive signal (HDRIVE) on conductor 77 and the horizontal blanking signal (HBLANK) on conductor 78. Thus, the HBLANK signal is enabled when the character count from counter 71 of Fig. 4A is between eighty and one hundred. Fig. 6 is a schematic diagram of the decode circuit 79 of Fig. 4B. The decode circuit 79 has an AND gate 85 whose inputs are connected to the third, seventh and ninth bits of the scan line number signal outputted on the bus 74 from the counter 72. When these bits are turned on, the value of the scan line number is equal to 324, and the output of the AND gate 85 is enabled. The output of the AND gate 85 is connected to the data terminal of a D-type flip flop 86. The clock terminal of the flip flop 86 is connected to the first bit of the bus 74. The reset terminal of the flip flop 86 is connected to the ninth bit, and the inverted output of the flip flop 86 is connected its set input. The non-inverted output of the flip flop 86 is connected to conductor 81 for supplying the vertical blanking (VB ANK) signal of Fig. 4B. On the next positive going edge of the first bit occurring after the scan line number value from counter 72 is equal to 324 (value 325), the non- inverted output of the flip flop 86 goes high. Thus, the VBLANK signal on conductor 81 goes high at scan line number 325 and stays high until the ninth bit turns off when the scan line number value from counter 72 becomes zero. The.decode circuit 79 also includes an AND gate 97 whose inputs are connected to the inverted fourth bit from an inverter 95, and to the fifth bit, the seventh bit and the ninth bit received on bus 74 from counter 72. When the count from counter 72 is equal to 336, the inputs of the AND gate 97 are enabled, and the output of the AND gate 97 goes high. The output of the AND gate 97 is connected to the data terminal of a D-type flip flop 98, whose clock terminal is connected to the third bit of the bus 74. An AND gate 99 has its input terminals connected to the fourth, fifth, seventh and ninth bits of the bus 74. When these bits are enabled, the scan line number value from the counter 72 is equal to 344. The output of the AND gate 99 then goes high, which is inverted by an inverter 100 r to a low, which is connected to the reset terminal of the D-type flip flop 98. The inverted output of the flip flop 98 is connected to its set input, and the non-inverted output is connected to conductor 80 of Fig. 4B for providing the vertical drive (VDRIVE) signal. It will thus be seen that when the third bit is turned on after the scan line number value of counter 72 reaches 336 (the value 340), the VDRIVE signal on conductor 80 goes high and remains high until the scan line number value of counter 72 reaches 344. Returning now to Fig. 4A, it is seen that the display controller 22 includes an inhibit circuit 101 which inhibits passing of the character clock signal received over conductor 102 from the output of the counter 70 during either vertical blanking or horizontal blanking. Fig. 7, on the drawing containing Fig. 2, is a schematic diagram of a circuit which may be used for the inhibit circuit 101 of Fig. 4A. An OR gate 104 has one input connected to conductor 78 for receiving the HBLANK signal from decode circuit 76, and has a second input connected to conductor 81 for receiving the VBLANK signal from the decode circuit 79 of Fig. 4B. The output of the OR gate 104 is connected to one input of an AND gate 105 whose second input is connected to conductor 102 for receiving the character clock signal from the counter 70 of Fig. 4A. The output of the AND gate 105 is connected to conductor 106 (see also Fig. 4A) . Thus, the inhibit circuit 101 passes character clock signals from conductor 102 only when both the VBLANK and HBLANK signals are not enabled. The conductor 106 is connected to one input of a direct memory access (DMA) counter 107 (see Fig. 4A) . The DMA counter 107 is a modulo 26,000 counter which counts from zero to 25,999. Conductor 80 provides the vertical drive signal to the counter 107 to reset it for each frame. Thus, RAM address zero is always the first data fetched for the top of the screen 62. The DMA counter 107 is connected to the display address bus 32 for supplying direct memory access addresses to the multiplexer 26 for addressing the RAM 18 (see Fig. 2). It will be understood that when the DMA counter 107 sends an address to the RAM 18 over buses 32 and 16 via multiplexer 26, one byte of pixel display data is returned to the display controller 22 over bus 36 from data stored at that address in the RAM 18. The byte of pixel data thus received on bus 36 is placed in a latch 110 (Fig. 4A) which acts as a one character delay device. Pixel data is clocked into the latch 110 by a character clock signal received over conductor 102 from the counter 70. After a one byte delay, pixel data is transferred from the latch 110 into a nine bit shift register 112 of Fig. 4B over an intermediate bus 114. The pixel data is caused to be loaded from bus 114 into the shift register 112 by the character clock signal via conductors 102 and 115. The bits of the byte received over bus 114 are shifted one at a time from the shift register 112 by each video dot clock signal received over conductors 42 and 47 from the crystal oscillator 40 (see Figs. 2 and 4A) . Serial bits are shifted out of the shift register 112 onto conductor 116 as the serial video (SERVIDEO) signal. When the SERVIDEO signal has a value of one, the screen 62 foreground is enabled to form a character, and when the SERVIDEO signal has a value of zero, the screen 62 background is enabled. The SERVIDEO signal from output 116 of shift register 112 is inputted into the attribute logic 118, to be discussed later with respect to Figs. 9A and 9B. Referring to Fig. 4B, a modulo 13 counter 120 is provided which counts scan clocks received over line 122 from the output of counter 71 (Fig. 4A) . The counter 120 counts from zero to twelve which represents the scan line being displayed for each character (see Fig. 1). The output of the counter 120 is a binary value on a four bit bus 123 which is inputted into a decode circuit 124. Fig. 8 is a schematic diagram of the decode circuit 124 of Fig. 4B. As illustrated, the decode circuit 124 includes an AND gate 126 whose inputs are connected to the third and fourth bits of the bus 123, and whose output provides a multiplexer control (MPX12/0) signal on conductor 128, to be explained. An AND circuit 130 is also provided having its inputs connected to the first, second and fourth bits of the bus 123. As discussed hereinafter with respect to Fig. 9A, when the count on bus 123 is equal to eleven, the output of AND gate 130 will be an underline enable (ULENA) signal on conductor 131. When the ULENA signal on conductor 131 is active, the count of counter 120 will be eleven indicating that the eleventh scan line of a row of characters is being displayed. An AND gate 132 has its inputs connected to inverted first, second, third and fourth bits inverted by inverters 133, 134, 135 and 136, respectively. The output of AND gate 132 on conductor 138 is a scan line zero (SCANO) signal which indicates that the first scan line, or scan line zero, of a row of characters is being displayed. Returning to Fig. 4B, a multiplexer 140 is controlled by the MPX12/0 signal on conductor 128 from the decode circuit 124 just explained. A ring shift register 142 has its input connected to the output of the multiplexer 140 for receiving bytes of pixel data from the data bus 36. The ring shift register 142 forms part of a selecting circuit to select eighty bytes of attribute data from the data bus 36, one byte for each character to be displayed in a complete row of data on the CRT screen 62, as previously discussed. One input of the multiplexer 140 is connected to the data bus 36 from the RAM 18 (see Fig. 2). A data bus 144 is provided from the output of the ring shift register 142 to the other input of the multiplexer 140. Loading data to, and bypassing data around, ring shift register 142 is controlled by the MPX12/0 signal over conductor 128A to the LB terminal of the ring shift register 142. Because of the latch 110 of Fig. 4A, the byte of pixel data presented to the shift register 112 (Fig. 4B) will be one character time behind the pixel data being received through the multiplexer 140 by the ring shift register 142. On scan line zero, the MPX12/0 signal on conductor 128 will be active for passing the attribute data bytes through the multiplexer 140 from the data bus 36 to the ring shift register 142, thereby storing the attributes of a complete row of eighty characters to be displayed on the screen 62. Conductor 160A, from the inhibit circuit 101, controls the shifting of attribute bytes out of the register 142. In the scan lines 1-12 of a current row, attribute bytes will be shifted sequentially out of the register 142 to be used for the character presently being displayed. Attribute bytes are also fed back into the ring shift register 142 over the bus 144 and through the multiplexer 140 to be used in subsequent scan lines of the same row of eighty characters, until all the scan lines of that row have been displayed. The attribute byte output from the ring shift register 142 is placed on a bus 170 to an attribute latch 172 and transmitted to the attribute logic 118 over bus 186. An address decode circuit 150 of Fig. 4A is provided to decode the address on the RAM address bus extension 28 to determine if the address passed by the CPU 12 to the RAM 18 is the address for the location of the RAM 18 for storing global functions, i.e. functions which, when enabled, continuously affect the display on the CRT screen 62. When the address for global functions is recognized by the address decode circuit 150, a load latch signal on conductor 156 is enabled to latch data on the data bus 36 into a latch 158, (see Fig. 4B) . These global functions may include a blink rate signal (BLINK) on conductor 160, a blank background signal (BLKBKG) on conductor 161, a graphics signal (GRAPHICS) on conductor 162, and an attribute propagation mode signal (APMODE) on conductor 163. Figs. 9A and 9B form a schematic diagram of the attribute logic 118 of Fig. 4B. The attribute logic 118 includes a circuit 190 (Fig. 9A) for determining if the fifth pixel of scan line zero of each character is to be turned on when the pixel (P) attribute is activated, a circuit 191 (Fig. 9A) for decoding the global functions from latch 158 of Fig. 4B, a decode circuit 192 (Fig. 9A) for decoding the attribute bits passed by the attribute latch 172 and an output circuit 193 (Fig. 9B) for outputting a video signal over conductor 50 to the monitor device 24 of Fig. 2. The circuit 190 includes an inverter 200 for inverting the second bit from a bus 202 which carries the count from counter 70 of Fig. 4A. The first and third bits and inverted second bit are inputted into an AND gate 203 to determine if the count on the bus 202 is equal to five. The output of the AND gate 203 is inputted into an AND gate 204 with the SCANO signal on conductor 138 from the decode circuit 124 of Fig. 4B, and the pixel attribute bit (P) from bus 186 of Fig. 4B. The circuit 190 thus turns on the fifth pixel of scan line zero for those characters having the pixel attribute bit (P) enabled. The pixel attribute is used for a business graphics (orthogonal only) implementation in a text mode. The output 205 of the AND gate 204 is inputted into an OR gate 206. The SERVIDEO signal on conductor 116 is inputted into an AND gate 900 while the SCANO signal on conductor 138 is inputted into an inverter 901 whose output 902 is likewise inputted into the AND 900. Thus, the output 903 of AND gate 900, which is connected to one input of the OR gate 206, is blanked during scan line zero, which is the attribute scan. In this way, the attribute bits in the attribute byte are not displayed on the CRT screen 62. The circuit 191 includes an exclusive OR gate 208 having one input connected to the blank background (BLKBKG) signal on conductor 161 from latch 158 of Fig. 4B. The other input of exclusive OR gate 208 is connected to the reverse attribute bit (R) of the attribute byte on bus 186. The output of exclusive OR gate 208 is inverted by an inverter 210 whose output is connected to conductor 225. Thus, the signal on conductor 225 is high if one only of either the BLKBKG global function on conductor 161, or the reverse attribute bit (R) is enabled. The circuit 192 includes an AND gate 212 having one input connected to the BLINK global function on conductor 160, and another input connected to the blank attribute bit (B) of the attribute byte on bus 186. The output of the AND gate 212 is inverted by an inverter 213. An inverter 214 is included to invert the suppress attribute bit (S) of the attribute byte on bus 186. The output of the inverter 214 is inputted into an AND gate 215, whose other input is connected to the output of the OR gate 206. The output of the inverter 213 and the output of the AND gate 215 are inputted into an AND gate 216 of Fig. 9B. Thus, the output of the AND gate 216 contains the condition of a pixel in the foreground when the global functions and the attributes are applied. An AND gate 218 of Fig. 9A has one input connected to the underline attribute bit (U) from the attribute byte on bus 186, and a second input connected to conductor 131 for receiving the ULENA signal from decode circuit 124 of Fig. 4B. As discussed in connection with Fig. 8, the ULENA signal is active only during the eleventh scan of a character. Thus, if the underline attribute is enabled, the bits of the foreground will be turned on during the eleventh scan of the character to form an underline. An OR gate 220 of Fig. 9B has one input connected to the output of the AND gate 216, and one input connected to the output of the AND gate 218. Thus, the output on conductor 222 of the OR gate 220 carries the foreground state of the pixel to be displayed and the underline when the underline attribute is enabled. An exclusive OR gate 224 has one input connected to the conductor 222 for receiving the output of OR gate 220, and one input connected to conductor 225 for receiving the output of inverter 210 of Fig. 9A. Thus, the output of the exclusive OR gate 224 contains the foreground state of the pixel to be displayed with all of the attributes and global functions applied except the half intensity attribute (H). A multiplexer 230, which is controlled by the GRAPHICS global function bit on conductor 162, has the SERVIDEO signal on conductor 116A of Fig. 9A inputted into one input thereof and has the output of the exclusive OR gate 224 inputted into a second input thereof over conductor 232. Thus, when the GRAPHICS global function bit on conductor 162 is enabled, the state of the pixel on the conductor 116A is multiplexed onto the conductor 234 by the multiplexer 230. On the other hand, when the GRAPHICS global function bit on conductor 162 is disabled, the state of the pixel on the conductor 232 is multiplexed onto the conductor 234 by the multiplexer 230. A non- inverting open collector amplifier 235 receives the multiplexed value via conductor 234 and its output is • connected to a node 236 of a voltage divider circuit formed by resistors 240 and 241. The GRAPHICS global function bit on conductor 162 is inverted by an inverter 242 and inputted over a conductor 243 to one input of a NAND gate 244. A second input of the NAND gate 244 receives the half intensity attribute bit (H) of the attribute byte on bus 186. The NAND gate 244 has an open collector output. Thus, when the GRAPHICS global function bit on conductor 162 is not enabled (GRAPHICS* is high) and the half intensity attribute bit (EL) is enabled, the output of NAND gate 244 is grounded, thereby grounding one end of resistor 241 and forming a voltage divider with the resulting voltage on node 236 being at a set percentage of its normal value. This will result in a signal being provided at a lower intensity to the CRT screen 62. In the GRAPHICS mode (GRAPHICS is high), the SERVIDEO signal will appear at node 236 at its normal value, thus providing regular intensity to the CRT screen 62. Also, in the non-graphics mode (GRAPHICS* is high) with the half intensity attribute bit low, the signal at node 236 will be at its normal value. An NPN transistor 250 provides the video out signal on conductor 50 dependent upon the voltage at node 236 which appears on its base.

Claims: CLAIMS ; 1. An apparatus for controlling the display on video display means of characters with visual attributes applied thereto, each character being arranged to be displayed in a predetermined number of scan lines, and said apparatus including memory means (18) in which characters to be displayed are stored, characterized in that said memory means is arranged to store each of the characters to be displayed as a set of data bytes, each data byte of each set representing one scan line of the respective character, and one data byte of each set being an attribute byte containing attribute data bits for application to all the other data bits of the respective character, and further characterized by display controller means (22) having a data input arranged to receive from said memory means (18) data bytes of characters to be displayed, said display controller means including selecting means (142, 172) for selecting the attribute byte of a character to be displayed, attribute logic means (118) for applying the attribute bits of each selected attribute byte to the other data bits of the corresponding character, and a video output (50) for outputting data signals representing the character to be displayed with the attribute bits applied. 2. An apparatus according to claim 1, characterized by blocking means (900) for blocking the display of a scan line containing the attribute bits of a character to be displayed. 3. An apparatus according to either claim 1 or claim 2, characterized in that said display controller means (22) is arranged to receive data bytes from said memory means (18) via data bus means (36), and includes delay means (110) connected to said data bus means for delaying the received data bytes by at least one character display time, and shifting means (112) having an input connected to said delay means and arranged to place sequentially each data bit of a delayed data byte on an output of said shifting means, said selecting means (142, 172) being connected to said data bus means (36), and said attribute logic means (118) having a first input connected to said output of said shifting means (112) and a second input connected to said selecting means (142, 172). 4. An apparatus according to claim 3 for controlling the display of characters in rows, characterized in that said display means includes register means (142) for storing the attribute bytes of an entire row of characters to be displayed, said register means having an input for receiving an attribute byte and an output for outputting an attribute byte, and multiplexer means (140) having a first input connected to said data bus means (36), and a second input connected to said output of said register means (142), said register means being arranged to output attribute bytes sequentially for use by said attribute logic means (118) and being arranged to feed back attribute bytes via said multiplexer means (140) to said input of said register means (142) until the display of the relevant row of characters has been completed. 5. An apparatus according to claim 4, characterized in that said selecting means includes counter means (70, 71, 120) for counting the scan lines of data bytes received by said data bus means (36), and first decoding means (124) connected to said counter means for determining when attribute data bytes are being received by said data bus means, said multiplexer means (140) having control means (128) connected to said first decoding means whereby said multiplexer means is arranged to transmit data bytes from its said first input to said register means (142) during a scan line comprising attribute bytes, and being arranged to transmit data bytes from its said second input to said register means during scan lines other than a scan line comprising attribute bytes. 6. An apparatus according to either claim 4 or 5, characterized in that said register means is a ring shift register (142). 7. An apparatus according to any one of claims 3 to 6, characterized by latch means (158) connected to said data bus means (36) and arranged to receive and store global attribute bits which continuously affect the display of characters, said attribute logic means (118) being connected to said latch means and including means for applying a global attribute bit to all the delayed data bytes appearing at said output of said shifting means (112). 8. An apparatus according to claim 7, characterized by address bus means (28) for receiving addresses of data stored in said memory means (18), second decoding means (150) connected to said address bus means for decoding the address of global attribute bits stored in said memory means, and latch control means (156) connected to said latch means (158) and to said second decoding means, whereby said latch means is arranged to store a global attribute bit when the address of the global attribute bit is decoded by said second decoding means.

Inventors: FADEM RICHARD JAY, FADEM, RICHARD, JAY
Applicants: NCR CO, NCR CORPORATION
Application year: 1987
Main classification: G09G1
IPC codes: G09G1, G09G5