[0001] 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 processor for controlling digitally the storage,
selection and display of data.
[0002] 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 processor for controlling digitally the storage, selection and display
of data.
[0003] 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 processor for
controlling digitally the storage, selection and display of data.
[0004] The display produced by apparatus of the above type is termed a bit-map display,
and is, for example, a 320 × 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 the processor to update the display in a recurrent cycle
of scanning lines which may be produced with or without interlaced field scanning.
[0005] 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.
[0006] 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.
[0007] 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.
[0008] 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.
[0009] 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 machine code sub-routine
as the data for each of a plurality of characters, and storing the machine code sub-routines
at predetermined locations in the background memory.
[0010] 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.
[0011] The invention also extends to a memory device containing character data which are
stored as machine code sub-routines. Such a 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.
[0012] 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 machine code sub-routine for each of a plurality of characters,
selecting a character for display, selecting the position of the character on the
display screen, causing the appertaining sub-routine to be run to write the pixel
data for the character in bit-map form in the appropriate memory location in the display
memory, and causing the data in the display memory to be displayed on the display
screen.
[0013] 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 machine code sub-routine for each of a plurality
of characters, means for selecting a character for display, and means for causing
the sub-routine appertaining to the selected character to be run to write the pixel
data for the character in bit-map form in the appropriate memory location in the display
memory.
[0014] 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 diagramatically 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 sub-routines 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 aillustrating 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.
[0015] 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.
[0016] 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.
[0017] 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
b1 to
b5 are required to store the character data. Consequently the byte area signified at
B is redundant in this case.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] From reading the present disclosure, other modifications will be apparent to persons
skilled in the art. Such modifications may involve other features which are already
known in the design and use of data display apparatus and devices and component parts
thereof and which may be used instead of or in addition to features already described
herein. Although claims have been formulated in this application to particular combinations
of features, it should be understood that the scope of the disclosure of the present
application also includes any novel feature or any novel combination of features disclosed
herein either explicitly or implicitly or any generalisation or modification of one
or more of those features which would be obvious to persons skilled in the art, whether
or not it relates to the same invention as presently claimed in any claim and whether
or not it mitigates any or all of the same technical problems as does the present
invention. The applicants hereby given notice that new claims may be formulated to
such features and/or combinations of such features during the prosecution of the present
application or of any further application derived therefrom.
1. 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 processor for controlling digitally the storage, selection and display
of data, characterised in that the method consists of generating a machine code sub-routine
as the data for each of a plurality of characters and storing the machine code sub-routines
at predetermined locations in the background memory.
2. 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 instructions which
respectively identify the pixel position of pixels, which define the shape of the
character, with respect to a base dot position which locates the screen position of
the character.
3. 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 specified in a second register the bit position in the background memory that
is to be base dot position for the character.
4. 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.
5. 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.
6. 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 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 machine
code sub-routine for each of a plurality of characters, selecting a character for
display, selecting the position of the character on the display screen, causing the
appertaining sub-routine to be run to write the pixel data for the character in bit-map
form in the appropriate memory location in the display memory, and causing the data
in the display memory to be displayed on the display screen.
7. 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 processor for controlling digitally the storage,
selection and display of data, characterised by means for storing character data in
a background memory in the form of a machine code sub-routine for each of a plurality
of characters, means for selecting a character for display, and means for causing
the sub-routine appertaining to the selected character to be run to write the pixel
data for the character in bit-map form in the appropriate memory location in the display
memory.
8. 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
instructions which respectively identify the pixel position of pixels, which define
the shape of the character, with respect to a base dot position which locates the
screen position of the character.
9. 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 specified in a second register the bit position in the background
memory that is to be base dot position for the character.
10. 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.
11. 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.
12. A memory device for data display apparatus as claimed in any of Claims 7 to 11,
characterised in that the memory device contains character data which is in the form
of a machine code sub-routine for each character.