U.S. patent number 3,812,485 [Application Number 05/251,066] was granted by the patent office on 1974-05-21 for visual display device.
This patent grant is currently assigned to International Computers Limited. Invention is credited to Derek Vidion Moreton.
| United States Patent |
3,812,485 |
| Moreton |
May 21, 1974 |
VISUAL DISPLAY DEVICE
Abstract
A visual display device is described for drawing lines on the
face of a cathode ray tube. Information describing the lines to be
drawn is held in a store and is presented in the form of positional
information describing one end (the initial end) of a line together
with values representing the displacement from the initial end of
the terminal end of the line. By relative shifting operations on
this information a standardised line drawing speed is achieved by
the repeated cyclic addition of the shifted displacement values
into a register holding the positional and displacement
information. Other relative shifting of positional and displacement
information permits effective speeding up of "drawing" any part of
a line that disappears off the field of view of the cathode ray
tube and the shifting of both position and displacement values
enables the scale of the drawn display to be altered.
|
Inventors: |
Moreton; Derek Vidion
(Congleton, EN) |
|
Assignee: |
International Computers Limited
(London, EN)
|
| Family
ID: |
10053966 |
| Appl.
No.: |
05/251,066 |
| Filed: |
May 8, 1972 |
Foreign Application Priority Data
|
|
|
|
|
| May 15, 1971 [GB] |
|
|
15152/71 |
|
| Current U.S.
Class: |
345/13; 315/365;
345/27 |
| Current CPC
Class: |
G09G
1/10 (20130101) |
| Current International
Class: |
G09G
1/06 (20060101); G09G 1/10 (20060101); G06f
003/14 () |
| Field of
Search: |
;340/324A ;315/18 |
References Cited
[Referenced By]
U.S. Patent Documents
Primary Examiner: Trafton; David L.
Attorney, Agent or Firm: Hane, Baxley & Spiecens
Claims
1. Visual display apparatus for controlling the effective drawing
speed of a line having initial and terminal ends respectively, the
line being drawn by deflection of an electron beam over a cathode
ray tube display face of predetermined area, including for each of
two co-ordinate axes respectively a multidenominational
accumulating position register, the position registers being
arranged respectively initially to store binary coded digital beam
deflection values together representative of the position of the
initial end of the line to be drawn; a multidenominational
accumulator connected as an extension to that end of the position
register having least denominational significance the connection
permitting overflow digits from the accumulator to be accumulated
in the position register; and a multidenominational displacement
shift register; means for entering into the displacement registers
binary coded digital displacement values respectively representing
relative to the position of the initial end of the line the
position of the terminal end of the line, all the binary-coded
digital values being expressed respectively in terms of minimum
beam displacement increments, the significance of the denominations
of each displacement register corresponding respectively to those
of the combined position register and accumulator of the same axis;
indicating means arranged to produce separately for each axis a
first control signal if like digital representations occur
concurrently in all those denominations of the displacement
register having significance corresponding to the denominations of
the position register; means for shifting the digital
representations in the displacement register towards the least
significant denomination in the absence of one at least of said
first control signals and for arresting and shifting when the first
control signals are produced for both axes; means for repeatedly
adding the shifted representations into the accumulators; and means
for terminating the addition when the terminal end of the line has
been drawn.
2. Apparatus as claimed in claim 1 in which the shifting means
includes control means and the terminating means is connected to
said control means and includes a pointer register and a counter,
the contents of the pointer register being shifted in synchronism
with the relative shifting applied to the displacement register and
being added into the counter in synchronism with the adding of the
contents of the displacement register into the position register,
the control means responding to the registration of a predetermined
value in said counter to terminate the
3. Apparatus as claimed in claim 2 including an information store
arranged to store for both axes respectively in respect of each
line to be drawn initial position values representing the initial
end and the displacement values representing the terminal end, the
values being expressed in relation to a notional display area
larger than said predetermined area; means for entering the initial
position values into the respective position registers; indicating
means for each axis arranged to examine predetermined denominations
of higher denominational significance of a position value to
produce a second control signal if that part of a line currently to
be drawn falls within said predetermined area, the control means
being responsive to the absence of second control signals to modify
the degree of relative shifting applied values entered into the
displacement registers to skip over those parts of the line outside
said predetermined area at a higher speed than that effective
drawing speed of
4. Apparatus as claimed in claim 3 including a further store
containing values representative of the position of the required
display area relative to the virtual total display expressible by
values within the information store and in which the means for
entering the values from the information store into the position
registers is connected to said further store and includes means for
arithmetically modifying the position values from the information
store by values from said further store to represent
5. Apparatus as claimed in claim 4 in which the entering means
further includes means for applying a predetermined shift to values
before entry into the position and displacement registers to modify
the scale of displayed lines.
Description
BACKGROUND OF THE INVENTION
1. FIELD OF THE INVENTION
The present invention relates to visual display devices, and in
particular to apparatus for drawing displays on the face of a
cathode ray tube.
2. DESCRIPTION OF THE PRIOR ART
It has previously been proposed to provide apparatus for displaying
drawings on the face of a cathode ray tube by the selective
movement of the electron beam of the tube. In such apparatus it has
been common for the required beam movement to be calculated each
time it its required to draw a line, or for each line to be drawn
to be represented by the storage in a separate store of a sequence
of co-ordinates to represent the line. It has also been proposed to
use the apparatus to display a small part of a much larger virtual
picture. In this case it has formerly been required for to perform
a number of calculations for each line of the larger picture in
order to determine whether any, and if so how much, of the line
will fall within the display. Thus, for example, it has been
proposed, for any line which is only partly to be displayed to
perform arithmetic calculations on the line information to
determine both what part of the line is to be displayed and the
exact point of intersection of the line with the edge of the
display. Thus, in the previous apparatus it has been necessary to
provide fairly complex arithmetic calculating arrangements for
determination of partial line display or unwanted line
elimination.
SUMMARY OF THE INVENTION
According to the present invention of visual display device for
drawing lines on a display includes a cathode ray tube having a
display face of predetermined area; an information store arranged
to store multidenominational values for each line to be drawn, the
stored values respectively representing for each of two co-ordinate
axes a position value corresponding to the position of an initial
end of the line and a displacement value corresponding to the
displacement relative to the initial end of a terminal end of the
line; a multidenominational position register for each axis; a
multidenominational displacement register for each axis; means for
entering the position values and the displacement values
respectively into the position and displacement registers; a
decoder for each axis connected to the position register and
arranged to produce a cathode ray tube beam deflection signal
proportionate to the value in the position register; means for
relatively denominationally shifting the contents of the position
and displacement registers; means for repeatedly adding the shifted
contents of the displacement register into the position register
progressively and incrementally to alter the cathode ray tube beam
deflection signal to draw the line and means for terminating the
addition when the terminal end of the line has been drawn.
BRIEF DESCRIPTION OF THE DRAWINGS
Apparatus embodying the present invention will now be described, by
way of example, with reference to the accompanying drawings, in
which,
FIG. 1 is a block schematic drawing of a line drawing arrangement,
and
FIGS. 2a & 2b arranged with FIG. 2a above FIG. 2b together form
a flow diagram illustrating the operation of the arrangement of
FIG. 1.
DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring now to FIG. 1, a visual display arrangement includes a
cathode ray tube 1 arranged to draw lines on its display face by
the displacement of an electron beam in conventional manner. The
displacement of the beam is controlled by mutually perpendicular
sets of electrodes 2. Displacement of the beam is produced by
signals on the electrodes 2 from conventional digital to analogue
address decoders 3 and 4, the decoder 3 being connected to the
X-axis electrodes while the decoder 4 is connected to the Y-axis
electrodes. The decoder 3 is connected to a multidenominal binary
X-position register 5a which is formed by the more signficant half
of a shift register 5. The half 5b of the register 5 of lower
denominational significance is not connected to the decoder 3 and
is used to accumulate increments of the displacement information,
in a manner to be described, in order to alter the value expressed
in the position register 5a so that the position value is
progressively changed to produce movement of the cathode ray tube
beam and thus draw a line on the display face of the tube 1.
A register 15 is provided for Y-axis deflection control, and is
similar to the register 5 in that it consists of a more significant
half 15a connected to the decoder 4 and a less significant half 15b
for the accumulation of displacement increments.
A further multidenomination binary shift register 7 is provided for
X-axis information and a similar register 17 is provided for Y-axis
information. The registers 7 and 17 are termed the .DELTA.X and
.DELTA.Y registers respectively, and these two registers 7 and 17
are each divided into more and less significant halves 7a, 7b and
17a, 17b respectively. Considering the X-axis arrangement, an adder
network 6 is provided between the registers 7 and 5. The adder
network 6 receives the values contained in the registers 5 and 7
and forms the sum of these values, these sum values being presented
at outputs from an adder within the adder network 6. The sum value
outputs of the adder are connected to the register 5 by means of
transfer gates within the adder network 6 so that the sum value may
be transferred into the register 5. This transfer is controlled by
an add control line 27 from a control unit 26. The Y-axis
arrangement is similar to that for the X-axis and an adder network
16, similar to the adder network 6, is positioned between the
registers 15 and 17. The network 16 is also connected to the add
control line 27.
A shift control line 14 is connected from the control unit 26 to
the shifting control input of the registers 7 and 17 to enable the
values in these registers to be shifted denominationally with
respect to the values in the registers 5 and 15 respectively. A
number of indicators are provided in association with the foregoing
arrangement. A state indicator 8 is provided in association with
the .DELTA.X register 7 to indicate a condition in which all the
stages of the register half 7a contain like binary digits, or bits.
Because the values inserted into the register 7 are in
twos-complement form and are signed, as will be described,
progressive shifting of bits from the half register 7a into the
half register 7b can leave the half register empty, and in this
case filler bits, whose value is determined by the sign of the
value shifted down, will be left in the register half 7a. Thus, in
this case the half register 7a will contain either all zeros or all
ones in dependence upon the sign of the value shifted, and the
indicator 8 produces a signal when all the bits in the half
register 7a are either all zeros or all ones. The indicator 8
includes a pair of AND gates each connected to all the stages of
the half register 7a. One AND gate of the pair responds to the
presence of a binary zero in all the stages, while the other
responds to the presence of a binary one in all the stages. The
outputs of these AND gates are connected to an OR gate. Thus, the
output of the OR gate provides the required indication and is
connected to the control unit 26. A similar state indicator 18 is
provided for the more significant half 17a of the .DELTA.Y register
17.
A field indicator 19 is provided in association with the X position
register 5a and the adder 6. The indicator 19 has a pair of
five-input AND gates. These AND gates are conditioned by five input
channels, one gate being opened only if all the channels are
concurrently registering binary ones and the other being opened
only if all the channels are registering binary zeros. The outputs
of the two AND gates are connected together by an OR gate so that
an output signal is produced only if the bits applied to the input
channels are all of the same value, whether the value is one or
zero. The five input channels are switchable by a signal from the
control unit 26 to be connected either to the five most significant
denominations of the X-position register 5a or to the corresponding
denominations of the sum outputs of the adder network 6.
A field indicator 29 is provided for the Y-axis arrangement and is
similar to the indicator 19. The indicator 29 is associated with
the Y-position register 15a and the adder network 16. The outputs
from the indicators 19 and 29 are connected to the control unit 26
and are also connected to an AND gate 20 which therefore produces
an output signal only if both indicators 19 and 29 are concurrently
producing outputs. The AND gate output is also connected to the
control unit 26.
An X-axis indicator 24 is connected between the most significant
demoninations of the X-position register 5a and the corresponding
denominational position of the sum outputs of the adder network 6.
The indicator 24 has a pair of AND gates whose outputs are
connected through an OR gate. The AND gates are respectively
conditioned by unlike inputs from the two denominations to which
they are connected. The one AND gate produces an output if the
register 5a stage contains a one and the corresponding sum output
respresents a zero, and the other AND gate produces its output if
the register 5a stage contains a zero and the corresponding sum
output represents a one. Hence the OR gate output to the control
unit 26 indicates that the most significant bits respectively of
the register 5a and the adder network 6 output are unlike.
A Y-axis indicator 25, similar to the indicator 24 is provided
between the Y-position register 15a and the sum output of the adder
network 16.
A further register group includes a pointer shift register 11 and a
pointer counter register 13 coupled by an adder network 12. An
adder of the network 12 is somewhat similar to the adders of
networks 6 and 16 in that it receives inputs from the register 11
and 13 and forms the sum of these inputs as output values. In the
case of the network 12, however, the sum is always transferred into
the counter 13 after it has been formed. It will be realised that
the adding and transferring operations of the present arrangement
are controlled in a conventional manner by clock pulses. However,
for the sake of simplicity, the usual clock pulse control system is
omitted from FIG. 1.
The pointer register 11 and the pointer counter 13 have
denominational capacities equal to one of the half registers 7a,
17a. In addition, the register 11 has an additional stage 11a at
the most significant end. The stage 11a is connected to the control
unit 26 so that a one may be forcibly entered into the stage.
Two indicators are associated with this further register group. An
all zero indicator 22 is connected to the pointer counter register
13. The indicator 22 includes an AND gate arrangement connected to
all the stages of the counter register 13 and responsive to the
presence of a zero in all the stages to produce an output, which is
fed to the control unit 26. A skip logic indicating network 21 is
connected between the pointer register 11 and the pointer counter
register 13. The network 21 includes a group of AND gates which are
respectively each connected corresponding denominational stages of
the registers 11 and 13 and which are each conditioned to be open
if a binary one is registered in both the corresponding stages. The
outputs of these AND gates are connected in common through an OR
gate, the output of the OR gate being applied to the control unit
26.
Information specifying the lines to be drawn on the display face of
the tube 1 is stored in a display store 28. The information for
each line consists of two values for each axis, a position value
and a displacement value, expressed in binary code notation. The
position values on the two axes together specify an initial or
starting position at one end of the line. The displacement values
specify for each axis the displacement along that axis of the other
end of the line with respect to the initial position. Thus the
displacement values, if added to the position values will specify
the position of the terminal end of the line.
A second store 9 contains information specifying the location of a
window which corresponds, in a manner to be described, with the
field of view of the display face where the display face area is
smaller than the total display capacity of the line information. It
will be explained hereinafter that, in order to draw a line it is
necessary to subtract the window location information from the line
position information before drawing the line. In order to
accomplish this subtraction, the information from the stores 9 and
28 is passed through a subtractor 10. From the subtractor 10, the
difference values are passed via a zoom shift register 31 to the
registers 5 and 7 for the X-axis and the registers 15 and 17 for
the Y-axis respectively. The zoom shift register 31 is a
four-channel parallel shift register arranged to perform a
predetermined right-shift operation on all values passing between
the subtractor 10 and the registers 5, 15, 7 and 17 for the purpose
of scaling, as will be explained hereinafter, a different channel
being associated with each of these registers respectively.
The operation of the arrangement is controlled by a data processor
30, which is also arranged to provide input information to the
stores and to the shift register 31. For the sake of description of
the operation of the present arrangement, the application of
information from the processor is not shown. The overall operation
of the arrangement will be seen to depend upon the sequence of
operations within the control unit 26. The unit 26 contains a
network of logic gates arranged to function as illustrated in the
flow diagram shown in FIGS. 2a and 2b. This diagram assumes that
the operations start with the loading of position and displacement
values into the registers 5, 15, 7 and 17, and indicates, for each
step of the operation, the sources of indicating signals snd the
action to be taken according to the indicated condition. The
convention is observed in the Figures that testing operations are
bounded by square boxes, while steps involving activation of
elements of the apparatus are shown enclosed in boxes with rounded
ends. It will also be noted that a pair of memory triggers are
included within the unit 26, one for each axis, and these triggers
are used to indicate, for reasons that will be described,
conditions of testing in which a starting position for a line lies
within a range of values set to represent the boundaries of the
display field for one axis only, as indicated respectively by
indicators 19 and 29.
The operation of the apparatus under all possible conditions is
fairly complex, and will now be described in detail. For ease of
understanding, the cases of simple line drawing will first be
described and the arrangements for dealing with more complex cases
will be dealt with thereafter. Because the interactions between the
elements for both axes are, in general, similar, the interaction of
the X-axis registers 5 and 7, with the network 6 will be described
in detail, and it is to be understood that the Y-axis registers 15
and 17 co-operate with the network 16 in a similar manner.
In the simplest case, let it be supposed that it is required to
draw a straight line on the display face of the cathode ray tube 1.
The position values for the X and Y axes are entered respectively
into the X-position register 5a and the Y-position register 15a
from the display store 28, via the subtractor 10 and the zoom shift
register 31. The values in registers 5a and 15a are decoded by the
decoders 3 and 4 to produce deflection of the cathode ray tube beam
to the initial position at the start of the line to be drawn.
Suppose now that the displacement values are respectively entered
into the X and Y registers 7 and 17 and are shifted along into the
less significant halves of these registers 7b and 17b. Then,
considering the X-axis, if the displacement value from register 7b
is added through adder 6 into the register 5, the displacement
value will be transferred into the X-position accumulator, which is
the less significant half 5b of this register. If the adding cycle
is repeated, the value in the X-position accumulator will overflow
into the more significant half 5a of the register 5, altering the
value applied to the decoder 3 and moving the cathode ray tube beam
to start drawing the line. Consideration will show that if the
adding cycles are continued, the overflows from the accumulator 5b
into the position register 5a occur at regular intervals, and that
the position register will eventually contain a value corresponding
to the terminal beam position at the end of the fully drawn line.
The number of cycles required to fulfil this condition will be seen
to be dependent upon the binary denominational capacity of the
X-position accumulator 5b. Thus, for example, if the accumulator
has a capacity of the four binary denominations, 16 adding cycles
will be required. Hence, in this simple case the number of adding
cycles required is seen to be 2.sup.n , where n is the number of
binary denominational positions of the accumulator 5b. Similar
considerations apply to the Y-axis registers 17a and 17b.
The successive adding cycles are, in practice, controlled by clock
pulses and it will be realised that the speed of movement of the
cathode ray tube beam, for a given clock pulse frequency, is
dependent upon the rate at which overflows occur from the less
significant halves 5b or 15b to the more significant halves 5a or
15a of the registers 5 or 15 respectively. It will also be
appreciated that if the contents of the registers 7 and 17 are
shifted by one place towards the left before adding, then, for the
same clock pulse frequency, the rate of overflow, and hence the
speed of beam movement, will be doubled. It follows, then, that a
greater degree of shifting applied to the contents of the register
7 will produce a correspondingly greater effective beam movement
speed. The manner in which such relative shifting is employed to
control the drawing speed will be described later.
The denominational capacity of the registers 5, 15, and 17 is
determined by the minimum increment of movement in beam position
required for the display, and this, in turn is influenced by the
resolution of the electron beam spot at the face of the cathode ray
tube 1. For example, in the case of a typical display tube having a
face of some 600 mm. diameter it was found that a spot resolution
of 0.15 mm. gave acceptable results, and in this case the minimum
increment of movement of beam position required was made equal to
the spot resolution. Thus, in this case, a capacity of 12 binary
digits (or bits) was required to specify a spot position on the
tube face, so that the register halves 5a, 15a and 7a, 17a would
require this capacity, making the total capacity of the registers
5, 15, 7 and 17 each 24 bits. However, by increasing the register
capacities to say, 32 bits a 16-bit expression in available to
specify a beam position by the position registers 5a and 15a. Using
the same oriteria for spot resolution and minimum increment of beam
movement this capacity of register is capable of specifying a beam
position in an area approaching 10 meters square. In practice the
positional and displacement information used in the storage device
9, and the registers 5, 15, 7 and 17 of the present device have a
sixteen bit capacity and are capable of defining beam positions
greatly in excess of the 12-bit capacity of the window represented
by the display face of the cathode ray tube 1. Thus, this
information may be regarded as specifying a virtual picture drawn
on this much larger area and the display face of the tube 1 may
then be regarded as a window looking at a part of this virtual
picture.
For the purpose of allocating position values, the virtual picture
is regarded as having its origins on the X and Y axes at the centre
of the picture, and positional designation along an axis is
indicated as a signed binary number in twos-complement form on each
side of the origin.
The second store 9 is used to contain the coordinates of the origin
of a required window position relative to the virtual picture, and
again the convention is observed that the origins on the X and Y
axes for the window respectively specify the position of the centre
of the window on the virtual picture. In order to locate a
specified position on the virtual picture correctly with respect to
the position of the window it is necessary to subtract the window
co-ordinates respectively from the co-ordinates specified for the
position. For this purpose the window co-ordinates are read out
from the store 9 to the subtractor 10, and the position
co-ordinates from the display store 28 are also read out to the
subtractor 10. The subtractor 10 subtracts the X-and Y-axis values
of the window co-ordinates respectively from the position
co-ordinates and passes the differences respectively into the
X-position register 5a and the corresponding register 15a for the Y
axis value.
At the same time the displacement information from the display
store 28 is passed unchanged to the X register 7 and to the
corresponding register 17 for the Y axis. In the case of the
X-axis, this displacement information is initially read into the
higher significance half 7a of the register 7. Consideration will
show that with the displacement information positioned in the half
7a of the register, in denominational correspondence with the value
in the half register 5a, one adding cycle will produce in the
X-position register a representation of the terminal beam position
at the end of the line to be drawn. Under some circumstances it may
be required to skip rapidly from the initial to the terminal line
positions in this way, but it will be realised that, in order to
draw the line by regular movement of the beam as described earlier,
it is required to shift this displacement information from the
higher significance half 7a of the register 7 into the lower
significance half 7b. Thus, shifting the information, in the
present case, 16 positions to the right produces the condition
described above in which the displacement information is located in
the extreme right-hand end of the register-half 7b.
It will be appreciated that where, for example, two lines are
required to be drawn on the display, one having a relatively large
displacement to reach the terminal position, while the other has a
small displacement, then if the displacement information is located
towards the extreme right-hand end of the register-half 7b for both
lines, the effective writing speeds of the beam for two such lines
will be different, due to the difference in the respective rates at
which overflows occur from the position accumulators 5b and 15b to
the position registers 5a and 15a. Such a difference in writing
speeds is, in general, undesirable since, for example, it results
in the display of lines of different visual brightness intensities
and requires an unnecessarily long time to draw a line having a
small displacement from initial to terminal positions. It will be
realised that the speed of writing such small displacement lines
may be increased by a left-shift of the displacement information in
the register halves 7b and 17b, and it will be appreciated that
such a left-shift effect is readily obtainable in the case of the
X-axis, for example, by applying less than a 16-position
right-shift in moving the displacement information from the
register-half 7a into the registerhalf 7b. Accordingly, instead of
a fixed right-shift of 16 places, the present device is arranged to
apply successive right shifts until all significant bits have left
the register-half 7a. It will be understood that as the shifting of
the information takes place filler bits are inserted into the
left-hand end of the register-half 7a. Thus, in the case of
positive displacement information the filler bits will be zeroes,
while in the case of negative displacement information, the filler
bits will be ones, since these are the respective non-significant
bit values respectively for the positive and negative displacement
information values. Hence, the shifting-right is continued until
all the bits in the register-half 7a have the same value. Since the
displacement information for the X and Y axes may specify quite
different values, the determination of the end of the shifting
operation is made dependent upon both the register halves 7a and
17a respectively and independently containing bits of the same
value throughout, irrespective of the actual value of the bits
contained in the registers, and this condition is indicated by the
indicators 8 and 18 respectively.
In order to avoid unnecessary adding cycles it is required to keep
track of the degree of shifting so that the adding operation may be
terminated as soon as a line has been drawn. Consideration of the
requirements for this addition shows, that the line is complete
after 2.sup.n adding cycles, where n is the number of places
through which the displacement values have been shifted down. The
pointer register 11, the adder 12 and the pointer counter 13 enable
the end of the adding cycle sequence to be determined.
As the position and displacement values are entered into the
registers 5 and 7, a binary one is entered into the stage 11a of
the register 11, and the pointer counter 13 is reset to zero. The
pointer register 11 is connected in common with the registers 7 and
17 to the common shift control line 14 so that as the information
in the registers 7 and 17 is right-shifted the binary 1 from the
stage 11a is shifted into the main register 11 by a corresponding
amount. The adder 12 is connected to the "add" control line 27 in
common with the adder networks 6 and 16 so that the contents of the
pointer register 11 are added into the pointer counter 13 whenever
an adding cycle takes place. The succession of adding cycles is
terminated when the pointer counter 13 reaches an all-zero state.
Consideration of the sequence of additions by the pointer rgisters
shows that the pointer counter 13 will reach the all-zero state
after 2.sup.n adding cycles where n is equal to the number of
places shifted. Thus, for example, if there have been two
right-shifts, the counter 13 will register zero after four adding
cycles. This fulfils the requirement above that adding shall
continue until the terminal end of the line to be drawn is reached.
This all zero state is indicated by indicator 22.
Thus, the above-described selection of a required degree of
right-shifting ensures that all lines are drawn at approximately
the same speed and have a substantially constant visual brightness.
While this is desirable for lines wholly within the view of the
window and also for parts of lines which are included within the
field of view, it will be appreciated that since the window is only
a small part of the virtual picture, it is also desirable to ignore
or to scan rapidly over lines and parts of lines that cannot fall
within the window field. In the case under consideration it will be
recalled that the position information with respect to the virtual
picture is expressed as a 16 bit value for each axis, while the
extent of window field in each axis is expressed only as a 12-bit
value. Consideration will therefore show that for a position in a
line to lie within the field of view of the window the five most
significant bits for both the X and Y axis values must be either
all ones or all zeros. Field indicators 19 and 29 respectively for
the X-and Y-axes provide an arrangement for testing whether these
values do represent positions within or outside the window field,
and the AND gate 20 provides an indication that both X and Y values
are such that the position defined thereby lies within the field of
view of the window.
While the line being drawn lies wholly in the window field, the AND
gate 20 will continue to produce its output throughout the drawing
sequence. However, if the line being drawn moves out of the window
field, the absence of the output from the AND gate 20 indicates
this fact. Under these conditions it is required to skip as rapidly
as possible to the terminal end of the line, since the remainder of
the line cannot actually be drawn on the display, and the cathode
ray tube beam will be fully deflected in one direction on at least
one of the axes.
The skip logic network 21 controls this operation. Since there is
only a single binary one registered in the pointer register if a
shift-right operation has taken place, it will be realised that
only one of the AND gates of the network 21 can be conditioned at
any time. Moreover, the conditioned AND gate will produce an output
only if a one is registered in the pointer counter 13 in the
corresponding stage. Thus, an output from the network 21 indicates
the presence of a one in the stage of the pointer counter 13
corresponding to that in the pointer register 11 that contains a
one. The output of the network 21 is used to condition a shift-left
operation in conjunction with an adding cycle of the adder networks
6 and 16. Thus, if the network 21 produces an output, the network 6
(for the X-axis) performs an adding cycle during which the contents
of the .DELTA.X register 7 are added into the register 5, and the
registers 5, 7 and 11 are then left-shifted one place. If the
network 21 still produces an output after this shifting operation,
the adding and left-shifting cycles are repeated. If, however, the
network 21 does not produce an output at any point in this sequence
of cycles, then the left-shifting cycle is carried out without an
adding cycle. The sequence of cycles is terminated when the pointer
counter 13 contains zero, as indicated by the all zero indicator
22.
Consideration of the operation of the pointer counter during line
drawing as described above will show that these addition and
left-shifting cycles complete the addition into the X-position
register 5a of the displacement value as if it had not previously
been right-shifted, so that the terminal end of the line is reached
in far fewer cycles than would otherwise be the case, and the
displacement value is replaced into its original position in the
more significant half 7a of the .DELTA.X register 7.
The immediately preceding example assumed the case where a line
being drawn moved out of the window field. Hence, it is implicit in
this assumption that that part of the line currently being drawn
does lie in the window field. However, it will readily be
understood that the initial position specified for a line may lie
out of the window field, and that, taking into account the terminal
position of the line, the line, if drawn, may enter the window
field, or it may cross the field to a terminal position which is
again outside the field, or it may never cut the field of view at
all. As in the preceding case, it is desirable that any parts of
lines lying outside the window field shall be passed over rapidly
in order to reduce ineffective drawing time. Accordingly, where the
starting point of a line lies outside the window field, the
shifting and adding cycles to be used for line drawing are again
modified. The conditions for determining whether such a line may
pass through, or into, the field of view of the window may be
shortly summarised as follows:
a. The end of the line lies within the window field.
b. Both axes X and Y will be crossed by the line; a condition which
may be determined by a change of sign for the values of both axes
if the displacement value is added to the initial position value.
The X-and Y-axis indicators 24 and 25 respectively indicate an
"axis crossed" condition for the two axes independently.
c. One axis will be crossed and the value for the position of the
terminal end of the line on the opposite axis lies within the
window field range.
The arrangements for applying these tests will now be briefly
described.
Starting from the point at which the initial position and
displacement values for the axes are loaded into the more
significant halves of registers 5, 7, 15 and 17 respectively, the
simplest case of a line whose initial position is outside the
window field and whose terminal position lies within the field will
be assumed, and for simplicity, only the X-axis values will be
considered, it being understood that similar considerations apply
to the Y-axis values.
At this point the X-position register 5a will be connected, as
previously described, to the field indicator 19, and the absence of
an output from this indicator inhibits an output from the AND gate
20 to indicate that the initial position is not within the window
field.
It will be recalled that the adder network 6 includes sum outputs
from which a sum derived from the values in registers 5 and 7 may
be gated into the register 5. Clearly, if the sum transfer gates of
the network 6 are inhibited, a sum may be formed without the value
in the register 5 being altered. The field indicator 19, it will
also be recalled, is selectively connectable to the five most
significant digits of the sum outputs of the adder 6. Thus, the
test procedure next requires that the sum outputs be connected to
the indicator 19 but that the sum represented by the outputs is
inhibited by closure of the transfer gates of the adder 6 from
entering the register 5. The sum outputs now express a value
representing the terminal position of the line on the X-axis, and
in the present example this value will produce an output from the
indicator 19 which, together with a similar output from the Y axis
indicator 29, will, in turn produce an output from the AND gate 20,
indicating that the terminal end of the line will lie within the
window field.
Thus the result of this dual test indicates that although the start
point of the line as represented by its initial position values is
outside the field of view of the window, the end of the line
represented by the terminal value in the adder network sum outputs
lies within the field. The next step in the process, therefore, is
to perform a single right-shift of the contents of the displacement
value registers 7 and 17. This is clearly equal to a division by
two of the total displacement value, and if added to the initial
position values would specify the mid-point of the line. Thus,
after shifting, the sum outputs of the X-axis adder network 6 will
represent a new "end" value specifying the position of this
mid-point on the X axis. At this point the output of the AND gate
20 is again examined to determine whether the mid-point lies within
or outside the window field. If the mid-point is outside the window
field it will be clear that the entire first half of the line is
also outside the field and need not be drawn. Hence, if the AND
gate 20 does not produce an output at this point, the transfer
gates of the network 6 are opened to permit the new mid-point
position value to be registered in the X-position register 5a as a
new start-point for the line. This has the effect of substituting a
new line specification into the X and Y registers, the new line
corresponding to the second half of the originally-loaded line and
therefore having an initial position corresponding to the mid-point
of the original line.
The operations outlined above are repeated and the successive
half-lines discarded as the result of successive right-shifts of
the displacement values for as long as the mid-point values
indicate that the entire first half-line lies outside the window
field. Thus, the initial value position in the X-position register
is progressively increased by this shifting process at a greater
rate than would be the case if the line were actually being "drawn"
by repeated addition of overflows from an initially fully-shifted
displacement value as earlier described.
If, at the end of one of the right-shifting operations the
mid-point represented by the sum outputs of the networks 6 and 16
lies within the window field, then the AND gate 20 output indicates
this fact and the network transfer gates are inhibited so that this
mid-point information is not transferred to the position registers
5 and 15. Instead the "line drawing" mode of operation is
re-instituted, the current position values in the X- and Y-position
registers are treated as initial position values, and the shifting
down of the displacement values in the registers 7 and 17 continues
without further testing until the normal drawing position is
reached under control of the state indicators 8 and 18. The
remaining part of the line is then drawn as previously
described.
The procedure outlined above for dividing a line to be drawn into
successive halves may also be used to reduce the time required to
draw lines in the other categories b, c and d set out above. Thus,
the whole-line information, as represented by the initial position
information in registers 5 and 15 and the terminal position
information represented by the sum outputs of networks 6 and 16
respectively may be used to test for the conditions b, c and d. If
one of these conditions is found, then the single right-shift of
the registers 7 and 17 is performed so that the sum outputs of the
networks 6 and 16 now specify the mid-point of the line. If this
mid-point lies within the window field, then the procedure
described above is followed, because the situation is now that
wherein a line ends within the window field.
If, after the first single right-shift operation, the original
condition still exists, treating the mid-point as the notional
terminal point, then implicitly the possibility of the line
crossing the window is confined to the first half of the line, and
a further right-shift and test phase preserving the initial
position information unchanged on registers 5 and 15 is performed,
so that the test is now applied to the first quarter of the
originally specified line.
If however, the first right shift operation produces a result in
which the conditions b to d do not apply, then the possibility of a
window crossing exists only in relation to the latter half of the
line, so that the sum outputs of networks 6 and 16 are transferred
to the position registers 5 and 15 respectively to form a new
"initial position" values corresponding to the mid-point of the
line. A second right-shift of the displacement information in
registers 7 and 17 is then made so that the latter half of the
original line is then in its turn halved and the tests are
repeated.
Consideration of this process of shifting and testing with control
of the transfer of the values expressed by the sum outputs of the
networks 6 and 16 to the position registers 5 and 15 in dependence
upon the result of testing will show that the starting point for
successively shorter lengths of the line may be obtained wherein
only each successive length has the possibility of a window
crossing. The shifting and testing process is continued until
either the state indicators 8 and 18 indicate that the total
right-shifting of the registers 7 and 17 has brought the
displacement values into the required predetermined position for
initiating drawing (in which case the drawing operation begins) or
that the current "initial position" represented by the value in
only one of the position registers 5a or 15a lies within the window
field range while the current terminal position represented in the
sum register of that one of the adders 6 or 16 associated with the
same axis lies outside the window field range (in which case the
line cannot cross the window and the procedure described above, for
left-shifting to reach the end of the line rapidly, is
initiated).
In considering the implementation of the tests b and c set out
above, it will be recalled that these conditions require a
determination of whether the X and Y axes will have been crossed by
a line or a part of a line currently being examined. As noted, the
indicators 24 and 25 show, for the X and Y axes respectively, that
the most significant bit of the initial position information (in
the position register 5 or 15, according to the axis concerned) is
unlike the most significant bit of the terminal value currently
represented in the sum register of that one of the networks 6 or 16
concerned with the same axis. Because these bits are in practice
zero if the values are positive and one if the values are negative,
the unlike condition occurs only if one value is positive while the
other is negative. In other words, the line between these two
positions must cross the axis. Thus the indicator 24 produces on
output if the X axis would be crossed by the line and the indicator
25 produces an output if the Y axis would be crossed.
Consideration of the sequence of steps shown in FIGS. 2a and 2b
shows that the testing of the registers 8 and 18 for a "fully
shifted" condition is made to override any further shifting
operations. Hence, once a sufficient number of right-shifting
operations have been performed, the apparatus enters the line
drawing mode and drawing will commence. After each drawing step,
testing is resumed to confirm that the new position specified
remains in the window field. It will also be seen that before the
"fully-shifted" condition is reached the tests outlined above are
performed to decode whether the starting and/or end positions
specified for that portion of a line under consideration lie within
the window field or whether, if they do not, one of the other
conditions enumerated above exists so that it is possible for the
line, or a portion of the line, to cross the window field. These
tests then determine which of a succession of half-line selections
is to be made, and control the further shifting of the values in
registers 7 and 17 with or without the transfer of the sum outputs
from the networks 6 and 16 in accordance with the rules described
above.
It will be realised that the pointer register 11 is shifted in
sympathy with the registers 7 and 17. Thus, if the registers 7, 17
are shifted to the right, then the pointer register 11 is also
shifted to the right, and conversely, if the registers 7, 17 are
left-shifted, then the pointer register 11 is also left-shifted.
Equally, the contents of the pointer register 11 are added into the
pointer counter 13 only when the sum outputs from the networks 6,
16 are transferred into the position registers 5, 15 since the add
control line 27 is connected to all the adding networks 6, 16 and
12. Thus, at any point in the foregoing operations, if the pointer
counter is brought in an "all zero" state, then the final position
will be represented by the values in the X- and Y-position
registers 5a and 15a and the operations in respect of the line
under consideration are at an end. The "all zero" condition
indicated by an indicator 22 is therefore used to recognise this
fact, and the output of the indicator 22 is used to condition the
control unit 26 to proceed to deal with the next line to be drawn.
The control unit 26 is therefore made to respond to the indicator
22 output to initiate the withdrawal of the next line information
from the display store 28 and to load the registers 5, 15, 7 and 17
with the new line information.
The examples so far considered are all based on the premise that
the virtual picture size and the window field size are fixed in
relation to one another. Thus the effective 12-bit expression for
all displayed information is based on the maximum resolution of
lines on a small window field, and the 16-bit expression for all
virtual picture positional information specifies the lines of the
larger picture in terms of maximum window resolution. It will be
appreciated, however, that if the position and displacement values
are both right-shifted by one place, then their relative
significances are unchanged but the displayed lines will be to
half-scale. The position and displacement values will then specify
positions which are displaced by half the distances specified by
the unshifted values, because the least significant binary
denominations of all values have, in effect been discarded.
Following this argument, it will be clear that a four-position
right shift will reduce all values expressed originally in 16 bits
to 12 bits, the higher significance bits being replaced by fillers,
Thus, under these conditions all the values in the registers must
express positions lying within the window field. Hence, the display
will be a smaller scale drawing of the entire virtual field to the
limit of the display screen resolution. It will now be appreciated
that the zoom shift register 31 controls the scale of the display
in relation to the virtual picture size. The zoom shift register
receives the values from the subtractor 10 and permits these values
to be read out to the registers 5, 15, 7 and 17 with an effective
right-shift to an extent dependent upon the scale of the drawing
specified by the processor 30.
* * * * *