Data display

Abstract: A logic processor-controlled data display apparatus having a display memory in which pixel data representing text for display is stored in bit-map form. The pixel data is produced for each display from character data stored in a background memory. When the character data is stored in bit-map form it can be read directly from the background memory bit-by-bit and written into the display memory as the pixel data. However, this process takes a large number of programme steps, so that the transfer of the data is relatively slow. The present invention provides for the storage in the background memory of character data in the form of machine code sub-routines. The sub-routine for a character contains instructions for identifying the shape-defining pixels (dots) of the character relative to a base dot position and the sub-routine is run to write these pixels into the display memory following location of the base dot position in the display memory. Figures 2 and 4 exemplify the invention.

Description: The invention relates to a method of storing character data in a background memory of a digitally operable data display apparatus for displaying as an entity on a screen of a display device a quantity of data which is represented by digital codes stored in a display memory, the displayed data being in the form of discrete pixels or dots, each of which has its colour and/or luminance defined by a respective digital code in the display memory at a location corresponding to the position of the pixel in the display, the apparatus including a program-controlled processor for controlling digitally the storage, selection and display of data. The invention further relates to a method of displaying data in a digitally operable data display apparatus for displaying as an entity on a screen of a display device a quantity of data which is represented by digital codes stored in a display memory, the displayed data being in the form of discrete pixels or dots, each of which has its colour and/or luminance defined by a respective digital code in the display memory at a location corresponding to the position of the pixel in the display, the apparatus including a program-controlled processor for controlling digitally the storage, selection and display of data. This invention still further relates to digitally operable data display apparatus for displaying as an entity on a screen of a display device a quantity of data which is represented by digital codes stored in a display memory, the displayed data being in the form of discrete pixels or dots, each of which has its colour and/or luminance defined by a respective digital code in the display memory at a location corresponding to the position of the pixel in the display, the apparatus including a program-controlled processor for controlling digitally the storage, selection and display of data. The display produced by apparatus of the above type is termed a bit-map display, that is, for example, a 320 x 250 resolution dot matrix colour display which may be displayed on the screen of a CRT (cathode ray tube) or other display device. In the case of a raster scan display device the digital codes stored in the display memory are accessed repeatedly by a display generator to update the display in a recurrent cycle of scanning lines which may be produced with or without interlaced field scanning. Where a data display apparatus of the above type is to provide comprehensive and visually aesthetic text displays, it is usually a requirement that data for a large number of different character fonts is provided in a background memory and the data for individual characters selected for display is read from the background memory and written into the display memory. It is known to store the data for each character of each character font in a bit-map form which corresponds to the image and size of the character shape. This character data, when selected, can then be transferred directly to the display memory with a minimum of processor logic. With the known techniques the speed of transfer of the data from the background memory to the display memory is limited due to the relatively large number of processor instructions needed to effect the transfer. One solution is to provide dedicated hardware for the transfer of bit-map data from the background memory to the display memory, for example as described in US-A- 4,622,546 (Sfarti et al). Unfortunately, such special hardware is not always available in an existing apparatus, and will add to the cost and complexity of a new display apparatus. It is an object of the present invention to enable the provision of data display apparatus of the above type in which the character data may be written into the display memory more quickly, but without the need for expensive display hardware. The invention provides a method of storing character data as set forth in the opening paragraph, characterised in that the method consists of generating a respective machine code sub-routine for each of a plurality of characters, such that execution of each machine code subroutine by the processor will cause the processor to write digital codes into locations of the display memory dependent on the shape of the corresponding character, and storing the machine code sub-routines at respective locations in the background memory. The main advantage that the present invention achieves is the significant saving in the number of processor operating steps that are required to write the data for a character into the display memory. Therefore, for a given speed of operation of the processor, the contents of the display memory can be updated for the display of a new page of text far more quickly than in apparatus where character data is stored in the background memory in bit-map form. The invention further provides a method of displaying data as set forth in the second paragraph characterised in that the method comprises storing character data in the background memory as a respective machine code sub-routine for each of a plurality of characters such that execution of each machine code sub-routine by the processor will cause the processor to write digital codes into locations of the display memory dependent on the shape of the corresponding character, selecting a character for display, selecting the position of the character on the display screen, causing the corresponding sub-routine to be executed to write pixel data in the appropriate memory locations in the display memory, and causing the data in the display memory to be displayed on the display screen. The invention still further provides a digitally operable data display apparatus as set forth in the third paragraph characterised by means for storing character data in a background memory in the form of a respective machine code sub-routine for each of a plurality of characters, such that execution of each machine code sub-routine by the processor will cause the processor to write digital codes into locations of the display memory dependent on the shape of the corresponding character, means for selecting a character for display, and means for causing the sub-routine corresponding to the selected character to be executed to write pixel data in the appropriate memory locations in the display memory. The background memory device may be a floppy disk or the like, or a read-only memory, in which a large number of different character data can be provided in a simple and relatively inexpensive way. In further considering the nature of the invention, reference will now be made by way of example to the accompanying drawings of which:- Figure 1 shows a block diagram of a data display apparatus in which the present invention can be embodied; Figure 2 shows diagrammatically a bit-map display memory; Figure 3 shows an example of character data as stored in bit-map form in a background memory; Figures 4 and 5 show two machine code subroutines which form character data in a background memory in accordance with the invention; Figure 6 shows diagrammatically the bit map memory of Figure 2 with a different character represented; Figure 7 shows a machine code sub-routine which forms the character data in the background store for the character represented in Figure 6; Figure 8 is a flow diagram illustrating the selection and generation of characters for display; and Figure 9 is a flow diagram illustration the transfer of the character data to the bit map display memory under the control of a selected machine code sub routine. Referring to the drawings, the data display apparatus shown in Figure 1 comprises a display device 1, a display generator 2, a processor 3, a background memory 4, a display memory 5 and user interface apparatus 6 and 7. The display device is suitably a colour television monitor which is connected to receive R, G, B, video signals from the display generator 2. These R, G, B, video signals are produced in the display generator 2 by three digital-to-analogue converters 8, 9 and 10, respectively. The display generator 2 also included a colour look-up table 11 which is suitably a read/write memory and is responsive to dot information received from the display memory 5 over a bus 12 to produce digital signals for driving the converters 8, 9 and 10. A display timer 13 in the display generator 2 provides line and field synchronisation signals LS and FS for the television monitor 1 over a connection 14. The timer 13 also provides over a connection 15 timing signals T for controlling the transfer of dot information from the display memory 5 to the colour look-up table 11. The display memory 5 is a random-access memory which has a capacity for storing dot information for at least one display frame. The dot information comprises digital codes composed of one or more bits per dot to be display, depending on the range of colours afforded by the colour look-up table 11. A combined address-data bus 16 interconnects the display generator 2 and the display memory 5 with the processor 3. The background memory 4, which is also at least partially a random-access memory, is also connected to the address-data bus 16. The background memory 4 may also have a read-only memory part of which contains permanent program data for controlling the "house-keeping" operations of the processor 3. The user interface apparatus comprises a keyboard data entry device 6 and a writing tablet 7. Such interface apparatus is well-known in the art and specific details thereof are unnecessary for an understanding of the present invention. The processor 3 can be a commercially available microprocessor, for instance the Signetics S68000 µp. Consider now a prior art method for storing character data in a background memory. By way of illustration it will be assumed that a character which is available for display, and the data for which is stored in the background memory, is a simple cross (+) composed of five vertical pixels and five horizontal pixels. It will also be assumed that this cross (+) is to be written into a bit-map display memory BM/DM in the position CP shown in Figure 2. The bit-map display memory represented in Figure 2 is only of small size (15 × 15 pixels) which is adequate for the present description. In practice, a bit-map display memory would normally be much larger, for example, a 384 × 256 pixels. When the character data for this cross (+) is stored in the background memory in bit-map form in a cell pattern, it can take the form shown in Figure 3. This character data comprises a 5 × 5 bit matrix CH in which logic '1's represent the character shape and logic '0's represent background data. If the background memory contains memory locations of 8-bit bytes, as is common, then five such bytes b 1 to b 5 are required to store the character data. Consequently the byte area signified at B is redundant in this case. In order to write the character data into the position CP the following programme steps have to be performed by the processor. 1. Determine the x size and the y size of the character. This could, for example, be encoded as one or more bytes of memory associated with each character. 2. Determine the character position in the bit-map display memory (start y , start x ). This may be determined from the character position on the display selected by the keyboard 6 or writing tablet 7. 3. For y from start y to stop y (5 times) and for x from start x to stop x (5 times), that is for each of the 25 pixels in the character cell, read the bit data in the background memory and if the bit is a '1' write the bit information for the pixel concerned in the display memory. The programme step will take of the order of 6-8 instructions, for each bit, so that a total of up to 200 instructions will be necessary to write the data for the cross (+) into the display memory. The number of instructions for writing character data into the display memory can be reduced considerably by means of the invention. Figure 4 shows the machine code instructions that are required to write the cross (+) into the position CP by means of a method according to the invention. Before writing into the display memory, data which identifies the colour that the cross (+) is to be displayed in is entered into a first register (D0). Data which identifies a base dot position for the character position is then entered into another register (A0). The background memory includes an address table for each possible character shape that can be displayed. When a character is selected by keyboard operation, the selected character is identified and the address for the character data is read from the address table. This character data, which is in the form of machine coded instructions is then accessed by the processor to write the character data into the display memory. The instruction (1) in Figure 4 provides the character colour. The instruction (2) provides the base dot address which is pixel bit position 82 in the bit-map display memory BM/DM. The remaining instructions (3) to (11) cause the processor to step in turn to each of the dot positions which are to contain a pixel for the character shape. Thus, writing into the display memory is achieved using far fewer programme instructions than are required when character data is stored in the background memory in bit-map form as in cell pattern. The machine code instructions can also be arranged to write into the display memory the character data starting from a base dot position which is the first actual pixel position for a character. Figure 5 shows an example of these alternative machine code instructions. In this instance, the register A0 is initially set to pixel position 148, and instruction (2) writes in a pixel at that position. Instructions (3) to (6) then successively write into pixel positions 132, 116, 100 and 84. Different instructions (7) to (10) then write into the remaining pixel positions 114, 115, 117 and 118. Figure 6 shows the character W written into the bit map display memory BM/DM, the character W having its base position CP at pixel 177 in the memory. Figure 7 shows the machine code instructions that are required to write the character W into the position CP (177). Before writing into the display memory, data which identifies the colour that the character W is to be displayed in is entered into a first register (D0). Data which identifies a base dot position for the character position is then entered into second register (A0). The background memory includes an address table for each possible character shape that can be displayed. When a character is selected by keyboard operation, the selected character is identified and the address for the character data is read from the address table. This character data, which is in the form of machine coded instructions is then accessed by the processor to write the character data into the display memory. The instruction (1) in Figure 8 provides the character colour. The instruction (2) provides the base dot address which is pixel bit position 177 in the bit-map display memory BM/DM. The remaining instructions (3) to (34) cause the processor to step in turn to each of the pixel dot positions which are to contain a pixel for the character shape. Figures 8 and 9 are flow diagrams which illustrate the generation of characters for display on the display apparatus. In Figure 8 reference 200 represents the start of the process and reference 201 represents the selection of the character to be displayed, its colour, and its base position (equivalent to CP in Figures 2 and 6). Reference 202 represents the selection of the corresponding character machine code sub-routine from the background memory. Reference 203 represents the running of the machine code sub-routine to cause the selected character to be read in bit-map form into the display register. Reference 204 represents the display of the character on the display screen from the information in the bit-map display. Reference 205 denotes the end of the process. Figure 9 illustrates the transfer of the character data from the background memory to the bit map memory BM/DM under the control of a selected machine code sub-routine. The colour and base position having been specified (reference 201, Figure 8) the running of the sub-routine accesses first the distance, in number of pixels, from the base pixel to the first active pixel dot, box 302. This combined with the base pixel address comprises the display memory address and the code in register DO representing the pixel colour is read into the location in the display memory represented by that address,box 303. If that is the final active pixel for the selected character then the process ends, box 306. Other wise the distance in number of pixels from the base pixel to the next active pixel dot is accessed, box 305. Again the code in register DO representing the pixel colour is read into the display memory location represented by the new distance and base address. This sequence is repeated until the final pixel element has been written, box 304. Thus in order to generate each sub-routine the bit-mapped version of the character is examined and the distance of each active dot in the character from the base dot is calculated. The sub-routine then consists of stepping through addresses of the active dots to read the colour information into the bit-mapped display memory. The sub-routine effectively comprises a list of machine code instructions each of which contain the distance, in terms of number of pixels, to the next active dot of the individual character with respect to a base dot of the matrix. It will be seen that instructions (1) and (2) of Figures 4, 5 and 7 are essentially the same and consequently these do not need to be stored with the separate character sub-routines but can be part of the display controlling program.

Claims: A method of storing character data in a background memory of a digitally operable data display apparatus for displaying as an entity on a screen of a display device a quantity of data which is represented by digital codes stored in a display memory, the displayed data being in the form of discrete pixels or dots, each of which has its colour and/or luminance defined by a respective digital code in the display memory at a location corresponding to the position of the pixel in the display, the apparatus including a program-controlled processor for controlling digitally the storage, selection and display of data, characterised in that the method consists of generating a respective machine code sub-routine for each of a plurality of characters, such that execution of each machine code sub-routine by the processor will cause the processor to write digital codes into locations of the display memory dependent on the shape of the corresponding character, and storing the machine code sub-routines at respective locations in the background memory. A method as claimed in Claim 1, characterised in that the machine code sub-routine which forms the stored data for a character comprises a series of executable instructions within which are encoded respective pixel positions relative to a base dot position which locates the screen position of the character, said relative pixel positions defining the shape of the character. A method as claimed in Claim 2, characterised in that for writing the pixel data for the character into the display memory, the machine code sub-routine includes a first further instruction which specifies in a first register data which identifies the colour in which the character is to be displayed, and a second further instruction which specifies in the second register the location in the display memory that is to be base dot position for the character. A method as claimed in Claim 2 or Claim 3, characterised in that each pixel position is identified in the relevant machine code instruction by a direct count of the pixels line-by-line from the base dot position. A method as claimed in Claim 2 or Claim 3, characterised in that each pixel position is identified in the relevant machine code instruction by a pixel position count which includes an offset number corresponding to one or more whole pixel position lines that exist between the line containing the base dot position and the pixel position that is being written into. A method of displaying data in a digitally operable data display apparatus for displaying as an entity on a screen of a display device a quantity of data which is represented by digital codes stored in a display memory, the displayed data being in the form of discrete pixels or dots, each of which has its colour and/or luminance defined by a respective digital code in the display memory at a location corresponding to the position of the pixel in the display, the apparatus including a program-controlled processor for controlling digitally the storage, selection and display of data, characterised in that the method comprises storing character data in the background memory as a respective machine code sub-routine for each of a plurality of characters such that execution of each machine code sub-routine by the processor will cause the processor to write digital codes into locations of the display memory dependent on the shape of the corresponding character, selecting a character for display, selecting the position of the character on the display screen, causing the corresponding sub-routine to be executed to write pixel data in the appropriate memory locations in the display memory, and causing the data in the display memory to be displayed on the display screen. A digitally operable data display apparatus for displaying as an entity on a screen of a display device (1) a quantity of data which is represented by digital codes stored in a display memory (5), the displayed data being in the form of discrete pixels or dots, each of which has its colour and/or luminance defined by a respective digital code in the display memory at a location corresponding to the position of the pixel in the display, the apparatus including a program controlled processor (3) for controlling digitally the storage, selection and display of data, characterised by means (3) for storing character data in a background memory (4) in the form of a respective machine code sub-routine for each of a plurality of characters, such that execution of each machine code sub-routine by the processor will cause the processor to write digital codes into locations of the display memory dependent on the shape of the corresponding character, means (3) for selecting a character for display, and means (3) for causing the sub-routine appertaining to the selected character to be executed to write pixel data in the appropriate memory locations in the display memory (5). A data display apparatus as claimed in Claim 7, characterised in that the machine code sub-routine which forms the stored data for a character comprises a series of executable instructions within which are encoded respective pixel positions relative to a base dot position which locates the screen position of the character, said relative pixel positions defining the shape of the character. A data display apparatus as claimed in Claim 8, characterised in that for writing the pixel data for the character into the display memory, the machine code sub-routine includes a first further instruction which specifies in a first register data which identifies the colour in which the character is to be displayed, and a second further instruction which specifies in a second register the location in the display memory that is to be base dot position for the character. A data display apparatus as claimed in Claim 8 or Claim 9, characterised in that each pixel position is identified in the relevant machine code instruction by a direct count of the pixels line-by-line from the base dot position. A data display apparatus as claimed in Claim 8 or Claim 9, characterised in that each pixel position is identified in the relevant machine code instruction by a pixel position count which includes an offset number corresponding to one or more whole pixel position lines that exist between the line containing the base dot position and the pixel position that is being written into.

Inventors: PENNA DAVID EDWARD, PENNA, DAVID EDWARD
Applicants: PHILIPS ELECTRONICS UK LTD, PHILIPS NV, N.V. PHILIPS' GLOEILAMPENFABRIEKEN, PHILIPS ELECTRONICS UK LIMITED
Application year: 1987
Main classification: G09G1
IPC codes: G09G5, G09G1, G06F3