US 3812485 A
Description (OCR text may contain errors)
. United States Patent [19 1' Moreton [451 May 21, 1974 England  Assignee: International Computers Limited,
London, England  Filed:
[2l] Appl. No.: 251,066
May 8, 1972  Foreign Application Priority Data May l5, I971 52 us. c1. [s1 lnt.Cl.  Field of Search Great Britain l5l52/7l 340/324 A, 315/18 G06f 3/14 340/324 A; 315/18 x-Annaess 3 Primary Examiner-David L. Trafton Attorney, Agent, or Firml-lane, Baxley & Spiecens [5 7] 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.
5 Claims, 3 Drawing Figures v-Annaees oeconea necooea msRee'X-Posmc 5 y 54 5b i X-AXlS FlELD 2O mmc mme v 24 5 i fiii AaneR ADDER 19 i I7 AX master 21 Av, aeeisruil 7 Y mt \nb STATE \Nmc 5 l4 l h :PQlNTER IREGASTER CONTROL umr in n ,aseisrea I l i ze* H Anne'rfi 2 PRQCES$OR 30 POlNTER Au. comma zeao wmoow cooamm I sroae 22 A'Imnzmmm m4 3812.485
sumenra START l A Fl 6. Z a. LOAD REG s-Hs-n LOAD STAGE HCL RESET COUNTER 15 START PO\NT \N YES SHIFT RECflSTERs Ax FU NO W\NDQW HELD (\Mmc R) (AND GATE 2O) PLACE New AY FULL -r7 SWWCH \NDICS 1S (mom-1a A25 TO SUM REG CF AOOERs 63.16 W YES ADD 1NTO POs REG TRANSFER FROM W YES SUM REG OFADDERs wmOOw HELD 6&16 (A D GATE 20) PO\ TER NTE swncM \Mmcs NALL Ro YES BACKTQ (mm 22) 5& \s M YEs MO YES fisvf m? $12k mum? SET X-WMOOW \AMO GATE 20)' (mum \s) MEMQRY TR\GGER SET NO v V x WNDQW v MEMORY TRK=OER UNSET START T YES Pom \N Y-Ax\s W\NDOW? SET Y-W\NDQW JUL 23 MEMORY TPOGGER SE W Y-\N\NDOW V MEMORY TNGGER? A UNSET.
swncH \Mmcs I 188 28 TO SUM REG 25 OF ADDERS 6M6 VISUAL DISPLAY DEVICE 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 theface 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 coordinate 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 registerfor 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 contentsv 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. 20 & 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 conne cted to a multidenominal binary X- positionregister 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 AX and AY registers respectively, and these two registers 7 and 17 are each divided into more and less significant halves 7a, 7b and 17a, l7b'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 AX 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 70. 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 gates are conditioned by five input channels, one gate 20 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 30 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 l9 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 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 6 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 FlG. l.
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 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 gateswhich 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 axestogether 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. lt 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 l0 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 FlGS. 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 l9 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 and the zoom shift register 31. The values in registers 5a and a 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, l6 adding cycles will be required. Hence, in this simple case the number of adding cycles required is seen to be, 2 where n is 6 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, and 7a, 1711 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 hits 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 l0, and the position co-ordinates from the display store 28 are also read out to the subtractor 10. The subtractor l 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 a and the corresponding register a 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 70 of the register, in denominational correspondence with the value in the half register 50, 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 hav ing 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 leftshift 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 l6-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 bitsare inserted into the lefthand 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.
ln 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 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" 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 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.
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 2lis 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 AX 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 AX 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.
' Since there is only a single binary one registered in the 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, l5 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 l9, 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 a 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.
lf, 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 reinstituted, 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 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.
lf, 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 infonnation 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 pronedure described above, for left-shifting to reach the end of the line rapidly, is initiated).
In considering the implementation of the tests b and cs toutab vetttyvillbc [@Qlld h 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. l-lence, 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. lt will also be seen that before the fully-shifted" condition is reached the tests outlined above are performed to decode whether the starting andlorend 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, l6 and 12. Thus, at any point in the foregoing operations, if the pointer counter is will be represented by the values in the X- and Y- position registers a and a 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, l5, 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. lt 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 l0 and permits these values to be read out to the registers 5, l5, 7 and 17 with an effective right-shift to an extent dependent upon the scale of the drawing specified by the processor 30.
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 coordinate 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 acbrought in an all zero state, then the final position cumulated 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 addition.
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 appliedvalues 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 a line portion within the predetermined area.
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 positions with respect to the required display area.
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 ines.