Scrolling circuit for a visual display apparatus

Zobel September 2, 1

Patent Grant 3903510

U.S. patent number 3,903,510 [Application Number 05/414,580] was granted by the patent office on 1975-09-02 for scrolling circuit for a visual display apparatus. This patent grant is currently assigned to Teletype Corporation. Invention is credited to George C. Zobel.


United States Patent 3,903,510
Zobel September 2, 1975

Scrolling circuit for a visual display apparatus

Abstract

A circuit for row addressing a storage memory supplying coded information to a visual display. The storage capacity of the memory is greater than the instantaneous display capacity. A row address counter provides the address of the first row displayed from the memory, the address of which is loaded into a second address counter which addresses the memory. Means are provided for rolling over the address counters and for tracking a cursor row address counter with the memory address counter.


Inventors: Zobel; George C. (Palatine, IL)
Assignee: Teletype Corporation (Skokie, IL)
Family ID: 23642059
Appl. No.: 05/414,580
Filed: November 9, 1973

Current U.S. Class: 345/162; 345/573; 715/856
Current CPC Class: G09G 5/08 (20130101); G09G 5/343 (20130101)
Current International Class: G09G 5/08 (20060101); G09G 5/34 (20060101); G06F 003/14 (); G06K 015/20 ()
Field of Search: ;340/324A,324AD,324R,172.5

References Cited [Referenced By]

U.S. Patent Documents
3593310 July 1971 Kievit
3675208 July 1972 Bard
3680077 July 1972 Hoberecht
3683359 August 1972 Kleinschnitz
3716842 February 1973 Belady et al.
3786429 January 1974 Goldman et al.
Primary Examiner: Boudreau; Leo H.
Attorney, Agent or Firm: Serp; W. K. Landis; J. L.

Claims



What is claimed is:

1. A method for row addressing a storage memory providing encoded information to a visual display having an instantaneous display capacity less than the memory capacity and tracking a cursor indicator therewith comprising the steps of:

providing the address of the first row of the portion of the memory being displayed;

loading said first row address into a second counter which serves to row address the memory to those memory rows being displayed;

selecting the address of a row counter determining the row address of a cursor;

comparing the address of the cursor row counter with the address of the second memory counter to determine whether the cursor address will place the cursor on the visual display; and

varying the address of said first row of the portion of the memory being displayed to an address which will place the cursor upon the visual display.

2. An apparatus for row addressing a memory providing encoded information to a visual display, the memory having a storage capacity exceeding the instantaneous display capacity of the visual display comprising:

means for providing a plurality of selected command signals;

a cursor address means for determining the row address of a cursor indicator, said cursor address means including means for varying the address thereof;

first address means containing the address of the first row to be displayed from the memory, said first address means including means for varying the address thereof in response to one of said selected command signals;

second address means selectively loaded with the address of said first address means and said second address means successively addressing said memory with respect to those memory rows being displayed;

comparison means operable in response to a cursor row relocation command from said command means for comparing said cursor address with an address related to the address of said first row address means; and

means operable in response to a comparison condition for varying the address of said first address means so as to maintain the row address of said cursor within those memory rows displayed upon the visual display.

3. An apparatus for row addressing a memory, the memory providing encoded information to a visual display, the memory having a storage capacity exceeding the instantaneouss display capacity of the visual display and being divisible into at least two non-overlapping portions comprising:

means for providing a plurality of selected command signals;

row address means providing the address of the first row to be visually displayed from said memory, said row address means including means for varying the address thereof in response to a first selected command;

cursor row address means for providing the row address of a cursor indicator on the display, said cursor address means including means for varying the address thereof in response to a second selected command so as to facilitate positioning the cursor over the visual display while displaying a fixed portion of the memory;

means responsive to a third selected command for varying the address of said row address means and said cursor address means in a predetermined relationship;

means for determining the presence of the address of the first row of each of said portions by said row address means, and means for varying the address of said row address means in response to a fourth selected command signal until the address of said row address means is that of the first row of one of said memory portions.

4. The apparatus of claim 3 which further includes means for varying the address of said cursor address means in response to a change in the address of said row address means so as to maintain the cursor upon the visual display.

5. An apparatus for row addressing a storage memory, the memory providing encoded information to a visual display, the memory having a storage capacity exceeding the instantaneous display capacity of the visual display comprising:

first address means providing the address of the first memory row of a selected portion of the memory to be displayed;

second address means selectively loaded with the address of the first memory row to be displayed as provided by said first address means, said second address means serving to row address the memory;

means for sequentially advancing said second address means to address successive rows of the selected portion of the memory;

means for providing a plurality of command signals for directing the operation of said first and second address means;

means for selectively varying the first row address of said first address means in response to a first selected command signal from said commmand signal means thereby selecting an alternate portion of the memory for display; and

means responsive to said first selected command signal and to a preselected address of said first address means for presetting said first address means to a predetermined address.

6. The apparatus of claim 5 which further includes means responsive to a second selected command signal from said command signal means and to a preselected address of said second address means for presetting said second address means to a predetermined address.

7. The apparatus of claim 5 wherein said first address means is preset in response to said first selected command signal and to the address of the last row of the memory by said first address means, to the address of the first row of the memory.

8. The apparatus of claim 5 wherein said first address means is preset in response to said first selected command signal and to the address of the first row of the memory by said first address means to the address of the last row of the memory.

9. The apparatus of claim 6 wherein said second address means is preset in response to said second selected command signal and to a preselected address of said second address means, to the address of the first row of the memory.

10. The apparatus of claim 6 which further includes means determining the row address of a cursor and a comparator which serves to compare the row address of said cursor with a selected address from said second address means and providing a control signal upon the coincidence thereto, said control signal serving to initiate a selected command from said command means.

11. The apparatus of claim 10 which further includes means responsive to a selected command signal from said command signal means and to a preselected address of said cursor row address means for presetting said cursor row address means to a predetermined address.

12. The apparatus of claim 11 wherein said cursor row address is preset in response to said selected command signal from said command signal means and to a preselected address of said cursor row address means to the address of the first row of the memory.

13. The apparatus of claim 12 wherein said cursor row address is preset in response to said selected command signal from said command signal means and to a preselected address of said cursor row address means, to the address of the last row of the memory.

14. The apparatus of claim 10 which further includes means for providing the address of the last memory row upon the visual display, said last row address being compared with said cursor row address by said comparator and in response thereto providing said control signal.

15. The apparatus of claim 10 wherein said comparator serves to compare the address of said first address means with the address of said cursor address means and provides said control signal in response thereto.
Description



BACKGROUND OF THE INVENTION

This invention generally relates to a scrolling circuit for a visual display apparatus including a character storage memory having a storage capacity exceeding the available visual display area, and more particularly relates to a scrolling circuit for such an apparatus which facilitates the selection of a segment or portion of the memory being displayed.

Various character display devices have been described which include a character storage memory wherein the characters to be displayed are stored in encoded form. The memory is capable of storing a plurality of rows of characters, the total number of which is larger than the number of rows which can be simultaneously presented upon the visual display area, usually a cathode ray tube screen. Counters are utilized to address the memory and serve to select the characters read out from the memory. The counters address the memory with respect to a particular character row and with respect to individual characters within the selected row. The encoded information is read out from the memory, decoded, and utilized to unblank the beam of the cathode ray tube as it is scanned across the screen thus writing the desired character. Necessarily, the cathode ray tube screen has a limited capacity which is frequently less than the storage capacity of the memory. Since the memory is capable of storing more rows of information than can be displayed at one time, it is necessary to include provisions for selecting which segment or portion of the memory is presented by the display at a particular moment.

For purposes of description, the display area may be considered a window with the memory text presented on a rolled scroll a portion of which is viewed through the window. To disclose the row just below the last row viewed through the window, the scroll is moved upwardly, which movement is defined as a "scroll up" operation. Conversely, to display the row contiguous and just above the first row viewed through the window, the scroll is moved downwardly which movement is termed a "scroll down" operation. A particular drawback with prior arrangements is that to view the last row of the memory when the display is presenting the first row thereof, a scroll down movement is inoperative and the operator is required to scroll upwardly through the entire memory to arrive at the last row of the stored text. It has been found convenient to permit the operator to view the last row of the memory contiguous with the first row thereof. With reference to the prior analogy, such a movement is comparable to displaying the memory text on a continuous scroll so that the scroll can be moved in a single direction to permit display of any selected portion of the memory text. Such an operation is hereinafter termed "roll over" scrolling.

To facilitate presentation, the memory may be broken up into pages or segments, each of which contain a sufficient number of text rows to fill the display screen. As an operating convenience, it is desirable for the operator to be able to recall, at will, selected segments or portions of the memory, as one would select certain pages of a book, without the necessity of scrolling through the entire memory line by line to display the desired memory segment.

For purposes of isolating an existing character on the display at a particular location or for indicating the screen location of the next character to be written, prior display devices generally include an indicating cursor. In this connection, the operator is provided manually operable keys for selectively row positioning the cursor, such keys being frequently designated "cursor up" and "cursor down". Depression of the appropriate key moves the row location of the cursor with respect to the memory while maintaining the displayed portion of the memory fixed. With respect to such an arrangement, the operator must exercise caution since it is possible to move the cursor entirely off the display screen while still maintaining its desired position with respect to the memory. The cursor is then lost from view creating a certain degree of operator confusion. Under such circumstances, the operator might assume that the cursor command has not functioned or initiate the desired entry at a wrong memory location. The illustrated embodiment overcomes such difficulties by scrolling the display in response to a cursor command in the direction necessary to maintain the cursor within view of the operator, a condition hereinafter referred to as scroll "tracking".

SUMMARY OF THE INVENTION

The illustrated embodiment is particularly suited for row addressing a storage memory which provides encoded information to a visual display. A counter provides the address of the first memory row to be displayed which is loaded into a second sequentially advanced address counter. The second counter addresses the memory and is stepped to read out successive memory rows.

The apparatus additionally includes a read only memory which is programmed to vary the address of the first memory row maintained by the first memory row counter. Each counter is capable of rolling-over the count and, in this regard, includes means responsive to a selected command and to a selected address of the counter for presetting the counter to a predetermined address. A cursor row address counter provides the row address of a cursor indicator. A comparator compares the address of the cursor row counter with the address of the first memory row or the last memory row and in response to such a comparison and a predetermined cursor movement, the segment of the memory being displayed is altered to maintain the cursor upon the display.

It is a main object of this invention to provide a display apparatus including means for selectively scrolling the text display and for tracking the display with the movement of a cursor indicator.

Other objects, advantages, and features of the invention will be more readily appreciated after reference to the following description and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1, which consists of combined FIGS. 1A and 1B, provides a schematic diagram of a portion of a display apparatus illustrating certain features of this invention.

FIGS. 2 through 7 are logic flow diagrams illustrating certain of the operational features of the apparatus illustrated in FIG. 1.

DESCRIPTION OF THE ILLUSTRATED EMBODIMENT

General

The illustrated circuit is particularly concerned with the row address of a storage memory and means for tracking the row address with the row position of a cursor. With particular reference to FIG. 1B, the apparatus includes a display memory 10 which serves to store the encoded text. The memory is addressed with respect to a selected character row to be displayed as well as with respect to a particular character with the row. Address means for positioning the cursor along a selected row is provided by additional circuitry not shown and which does not form a part of this invention. The output from the memory 10 is utilized to control a video display unit 12.

Further details of a preferred form of CRT display system, and operating circuits for generating the display characters and the cursor are disclosed in commonly assigned copending applications of Harold D. Cook. Ser. No. 388,296 filed Aug. 14, 1973, and of Theodore J. Mau, Jr. and John L. Peterson, Ser. No. 388,286, filed Aug. 14, 1973.

The capacity of the display memory 10 is in excess of that which the video display 12 can accommodate at a given moment. For purposes of discussion, it will be assumed that the memory 10 is capable of storing seventy-two rows of text whereas the screen capacity of the video display 12 is limited to one-third this amount or twenty-four lines of displayed text. Thus, the memory 10 can be descriptively divided into three segments or portions, each of which contains twenty-four rows of text; the first memory segment starting at row one, the second at row twenty-five, and the last segment starting at row forty-nine. It will be appreciated that the storage to display capacity relationship described is provided by way of example and the other ratios may be utilized without departing from the scope and spirit of this invention.

The apparatus includes a command circuit 14 (FIG. 1A) which is responsive to operator initiated commands or signals supplied from an incoming cable 16. These incoming command signals are utilized to address a ready only memory (ROM) 18 which supplies instruction as well as check signals for control of the apparatus. The selection of the appropriate instruction and check signals and their order of read out from the ROM 18 is determined by a command timing unit 20. The timing unit 20 responds to the status of a memory row address circuit 22 (FIG. 1B) and in turn determines the sequencing of the ROM 18 as will be subsequently further described. The memory row address circuit 22 serves to select the row address of the memory 10 and briefly includes a scroll address counter 24 which supplies the address of the first row of the display as determined by instruction signals from the command circuit. The multilevel output of the scroll address counter 24 is loaded into a memory address row counter 26 via cable 28. The row counter 26 addresses the display memory 10 and is stepped one row upon the read out of each character row until an entire twenty-four rows of the memory have been displayed. Upon read out of an entire video raster comprised of twenty-four memory rows, the row counter 26 is loaded with the output of the scroll address counter 24 and again stepped through twenty-four successive rows.

The address of the last row of the video display 12 is determined by an end of display (EOD) address generator 30. The EOD address is fed to a cursor row address circuit 32. Either the address of the first row of the display or the address of the last row of the display is compared with the address of a cursor address row counter 34 by a comparator 36. When coincidence is obtained, the scroll address counter 24 is decremented or incremented as necessary to maintain the cursor row address within the displayed memory rows thus maintaining the cursor within the operator's view.

The command circuit 14, in response to an incoming command signal 16, checks the state of the scroll address counter 24 as well as the status of the cursor row counter 34 and in response to such a status check, directs the apparatus to perform the desired instructions. In response to an instructional command, the scroll address counter 24 is either incremented, decremented, or preset to the address of the first row of the memory. Similarly, the address of the cursor address row counter 34 is altered to provide the address of the selected cursor row and, should the selected address be such that the cursor would tend to leave the viewing area of the display, the memory address row counter 26 is appropriately incremented or decremented to maintain the cursor upon the screen.

COMMAND CIRCUIT

The various instruction and check signals for control of the apparatus are provided by the read only memory (ROM) 18. Serving to address the ROM 18 is a ROM address counter 38, the outputs of which are connected to the address inputs of the ROM via parallel lines 39. The ROM address counter 38 is loaded with the output of a two position multiplexer 40 and stepped in response to timing signals from the timing unit through clock 42 and load 44 inputs as will be subsequently described. The ROM counter 38 is addressed by the multiplexer 40 via lines 46. The multiplexer 40 in turn is controlled by a receive command signal fed to the control port 48 from an instruction decoder 50. The multiplexer 40 additionally includes two multilevel inputs. The first input fed via cable 16 is provided either by the operator in response to the depression of an appropriate key on the keyboard, or from signal levels supplied by an incoming modem (not shown). The alternate input to the multiplexer is provided along cable 52 by the enable and command outputs of the ROM 18. As illustrated, the ROM 18 provides two discrete four level outputs 54 and 56 each of which is connected to the input of the multiplexer 40. Thus, in accordance with a receive command at the port 48, the output of the multiplexer is alternately switched between the incoming commands via cable 16 or the output of the ROM via cable 52 for loading the ROM address counter 38 with a selected address as will be further described. The command outputs 54 from the ROM are fed to input ports 58 of the instruction decoder 50. The enable outputs 56 are fed to enable inputs 59 of the instruction decoder 50. After the instruction decoder 50 has processed a set of commands, a receive command signal is generated and fed to port 48 of the multiplexer 40 which switches the multiplexer to the incoming command cable 16 for receipt of the next instruction command.

Additionally, the ROM outputs 54 and 56 address a check decoder 60 including address 62 and enable 64 inputs. The check decoder 60 is selectively enabled by the enable lines from the ROM 18. In response to an enable signal, command information at the output 54 of the ROM 18 is decoded. Additionally, the check decoder 60 includes four additional inputs 66, 68, 70 and 72; three of which, designated TS-1, TS-25, and TS-49, are provided by the scroll address counter 24. The remaining input designated Coinc 72 is connected to the output of the comparator 36. The signal levels at each of the four inputs 66 through 72 are routed in response to command signals to two output ports 74 and 76, respectively designated NO and YES, which send control signals to the timing unit 20. Serving to load (jump) or clock (skip) the ROM address counter 38, the YES and NO output signals from the check decoder 60 are sent to the timing unit 20 as described in the following section.

TIMING UNIT

With reference to FIG. 1A, the timing unit 20 includes a clock 78, driving a frequency divider 80 of modulo ten. The output of the divider 80, is fed to the toggle input of a type "D" "jump" flip-flop 82. Serving to set the jump flip-flop 82, the direct input thereof is connected to the YES output 76 of the check decoder 60. In response to a YES signal, the flip-flop 82 will set and toggle in response to the negative going edge of the output of the divide by ten counter 80. The output of the flip-flop is fed to one input of a jump AND-gate 84, the output of which is connected to the load input 44 of the ROM address counter 38. In response to the occurrence of a load and a clock signal, the ROM counter 38 will load with the multiplexer 40 address whereas a clock signal alone causes the counter 38 to increment. Serving to gate the output of the jump flip-flop 82, the alternate input of the AND-gate 84 is connected to the nine count output of the divider 80 via line 86. The output of the AND-gate 84 goes high providing a load signal to the counter 38 when the divider 80 generates the count nine pulse. This count nine pulse is also coupled to the clock input of the counter through a clock OR-gate 88 and the simultaneous occurrence of the load and clock signals cause the counter 38 to load with the output address of the multiplexer 40.

The NO output 74 of the check decoder 60 is connected to the set input of an RS type "skip" flip-flop 90, the reset input of which is connected to the zero count output of the divide by ten divider 80 via line 92. The output of the skip flip-flop 90 is connected to one input of a skip AND-gate 94, the alternate input of which is fed by the count seven output of the divider 80 via line 96. The output of the skip AND-gate is connected to one input of the OR-gate 88, the remaining input, as previously mentioned, being connected to the count nine output of the divider. Thus, in response to a NO signal from the check decoder 60, the counter 38 is twice incremented for each cycle of the divide by 10 divider. During normal clocking conditions, the counter is incremented once for each divider cycle by the count 9 output pulse from the divider. For purposes of discussion, it is assumed that the check decoder 60 has not received an enable signal and therefore the YES and NO outputs are low. In this condition, the nine count output of the divider 80 is coupled via line 86 through the OR-gate 88 causing the ROM address counter 38 to step for each complete cycle of the divider 80. A NO signal from the check decoder 60 is fed to the set input of the skip flip-flop 90 causing it to set and remain set until the reset by the zero output of the divider via line 92. This set condition of the flip-flop 90 permits two clock pulses to be sent to port 42 incrementing the ROM counter 38. Thus, for each cycle of the divider 80, the presence of a NO signal from the check decoder 60 increments the counter 38 an additional step as compared with the single increment generated under normal clocking conditions.

In response to a YES output at port 76, the jump flip-flop 82 is caused to set and remains set until toggled by a negative going pulse at its clock input provided by the output of the divider 80. The output of the flip-flop 82 pulls the input of the AND-gate 87 high, allowing the count nine pulse feed via line 86 from the divider 80 to pass therethrough causing the ROM address counter 38 to load with the output of the ROM through the multiplexer 40. The command sequence which the ROM provides in response to the various clocking and loading signals from the timing unit 20 will be considered in greater detail after discussion of the remaining circuitry.

MEMORY ROW ADDRESS

As previously mentioned, for illustrative purposes, the display memory 10 is assumed to carry seventy-two lines of character text, whereas the video display 12 is capable of simultaneously displaying only twenty-four lines. Serving to address the memory 10 with respect to the particular character row to be read out therefrom, is the memory address row counter 26 the multilevel output of which is connected via a cable 98 to the row address input of the memory 10. The memory address row counter 26 is stepped after the writing of each character row by the horizontal retrace signal via a line 100 from the video display 12 which serves as a character row completion and is applied to the clock input of the address counter 26. Thus, as each character row is written on the display 12, the counter 26 is stepped once, and the memory address row counter 26 addresses the successive memory row. After twenty-four rows have been written upon the screen of the display, a vertical retrace signal is generated which is applied to a load input 102 via line 104 of the memory address row counter 26, causing it to load with the address from the scroll address counter 24. Thus, the scroll address counter 24 provides the address of the first row to be read from the memory 10. The memory address row counter 26 progressively advances row by row until the last row is written upon the display 12 at which point a vertical retrace signal is generated. In response to the vertical retrace signal, the memory address row counter 26 again loads with the scroll address counter 24 output, which corresponds to the address of the first row to be read from the memory 10.

Serving to reset the scroll address counter 24 to the first row of the memory 10 is a reset signal via a line 106 from the instruction decoder 50. The reset signal is fed through one input of a reset OR-gate 108 to a reset input 110 of the scroll address counter 24. In response to the reset signal, the counter address is that of the first row of the memory that is row one 1. Additionally, in response to an appropriate command signal, the instruction decoder 50 provides a scroll up signal (SCUP) via line 112 which is fed to an "up" input 114 of the scroll address counter 24 causing the address thereof to decrement once from its previous count. Serving to cause the counter 24 to increment, the instruction decoder 50, in response to a command signal, generates a scroll down signal (SCDN) which is fed via line 116 to the "down" input 118 of the scroll address counter 24. Thus, in response to instruction signals from the instruction decoder 50, the scroll address counter 24 is either reset, incremented or decremented as desired.

For purposes of discussion, it will be assumed that the scroll address counter 24 has been successively incremented until the address in the counter is that of memory row seventy-two which is the last character row of the memory. Serving to decode the seventy-second row address output from the counter 24 is a "72" decoder 120, the output of which is fed to one input of a reset AND-gate 122, the remaining input being enabled by the "SCUP" signal via line 112 from the instruction decoder 50. Upon coincidence between the SCUP signal, and a row 72 address, a signal passes from the AND-gate 122 to the remaining input of the reset OR-gate 108 and to the reset input 110 of the counter. Thus, when a scroll-up signal is provided by the instruction decoder 50, the counter 24 will decrement until the output of the counter 24 is the address of row 72. At this time, the scroll address counter 24 is reset to zero. This operation provides a roll-over feature allowing the operator to view the entire memory contents by scrolling in a single direction (UP in this case).

Similarly, scroll down rollover is obtained when the operator depresses the scroll down key so that the instruction decoder 50 provides consecutive scroll-down "SCDN" instructions beyond the point where the output of the scroll address counter contains the address of the first text line of the memory. Serving to decode the first row address is a row "1" decoder 124 the output of which is fed to one input of a row 1 AND-gate 126. The remaining input of the AND-gate 126 is connected to the SCDN output of the instruction decoder 50 via line 116. Upon coincidence between the SCDN signal and a row 1 address, a signal passes from the AND-gate 126 to a preset 72 input 128 of the counter 24. Thus, when a scroll-down signal is provided by the instruction decoder 50, the counter 24 will increment until the output of the counter 24 is the address of row 1. At this time, the scroll address counter 24 is reset to the address of row 72 thus providing a downward scroll roll-over feature. As described, the operator may continue to scroll the display continuously in either direction. As previously mentioned, the scroll address counter 24 provides three test signal outputs designated test scroll row one TS-1, test scroll row twenty-five TS-"25" and test scroll row forty-nine TS-"49", to the ports 66, 68, and 70 respectively. One of these test signals is generated when the scroll address counter contains the address of the first row of one of the three segments.

The output of the scroll address counter 24 is loaded into the memory address row counter in response to a vertical retrace signal from the video display 12. After each vertical retrace signal, the memory address row counter 26 is incremented by the horizontal retrace signal until twenty-four memory rows have been displayed. It will be appreciated that when the memory counter has been loaded with the address of a row in the third or last segment of the memory i.e. rows 49 through 72 inclusive, the counter 26 will provide the address of row 72 to the memory 10 before the generation of a horizontal retrace signal. Serving to roll-over the address counter 26 is a row "72" decoder which is connected to the counter 26 by the cable 98. The output of the row 72 decoder is coupled to one input of a row 72 AND-gate 132 the remaining input of which is connected to the horizontal retrace signal from the video display 10. The output of the AND-gate 132 feeds a reset input 124 of the memory counter 26 so that, in response to a coincidence between a row 72 decoding and a horizontal retrace pulse, the memory counter 26 presets to the address of row one of the memory 10 and continues to increment in response to subsequent horizontal retrace signals until a full twenty-four rows of the memory have been addressed. In this manner, the memory address rolls-over allowing the first and the last lines of the memory to be contiguously displayed.

CURSOR ROW ADDRESS

It will be appreciated that the output of the scroll address counter 24 provides the address of the first row read from the memory. Serving to provide the address of the last text row to be read from the memory is the End of Display (EOD) address generator 30. The EOD address generator 30 includes a magnitude 49 comparator 136, the input of which is connected to the output of the scroll counter via cable 28, providing the start of display (SOD) address. When the SOD address exceeds the line forty-nine (49) address, the magnitude comparator 136 supplies a signal to a binary adder 138. In response to an input signal from the comparator corresponding to an SOD address exceeding forty-nine, the adder 138 adds the address of the scroll address at input port 140 with an address sevety-two rows thereafter. In effect this is the equivalent of subtracting forth-nine rows preceding the SOD address. In the absence of a signal from the magnitude comparator indicating an SOD address in the first two segments of the memory, the binary adder 138 provides an output row address which is twenty-three rows after the SOD address.

The EOD address from the binary adder 138 is coupled via cable 142 to one input of a cursor multiplexer 144. A second input of the multiplexer receives the SOD address from the scroll counter 24. The multiplexer includes two control inputs; one designated EOD which is connected via line 146 to the EOD signal output of the instruction decoder 50 and the second input designated SOD which is connected to the SOD output of the instruction decoder 50 via line 148. In response to an SOD signal from the instruction decoder 50, the address of the scroll counter is routed to the output of the multiplexer 144 which in turn is fed via cable 150 to one input of the comparator 36 forming part of the cursor row address circuit 32. In response to an EOD signal via line 146 from the instruction decoder 50, the EOD output of the binary adder passes through the multiplexer 144 to the comparator 36. The comparator compares, upon command, the address of the first (SOD) and last (EOD) row address with the output of the cursor row address counter 34 and upon coincidence an output signal is fed to the coinc input 72 of the check decoder 60. The output of the cursor address row counter 34 is fed to a cursor generator 153 and serves to provide the address of the row position of the cursor. A suitable cursor generator is described in U.S. Pat. No. 3,609,749 entitled "Character Display System Having Negative Image Cursor" issued to W. B. McClelland on Sept. 28, 1971 and having a common assignee with this application.

In response to an incoming cursor up command via cable 16 initiated by the operator to raise the cursor on the screen, a line decrement signal (LDEC) is fed from the instruction decoder 50 via line 158 to a one input of the cursor address row counter 34 and also to an input of a preset 72 AND-gate 154. The LDEC signal causes the cursor row address row counter to count down which corresponds to an up movement of the cursor upon the display screen. As the cursor is decremented row by row, the cursor address counter 34 will eventually contain the address of the first row of the memory 10. Serving to decode this address, is a row 1 decoder 156, the output of which is fed to the remaining input of the AND-gate 154. When an LDEC signal from the instruction decoder 50 and the first row address from the counter 34 coincide, the AND-gate provides a preset 72 signal to the counter 34. This preset operation, in response to a line decrement signal LDEC when the counter address is at row one, results in a roll-over of the cursor counter in a manner similar to that discussed in connection with the operation of the scroll address counter 24. Similarly, in response to a selected command, the instruction decoder 50 provides a line incremented (LINC) signal via line 152 to an up input of the counter 34 for downwardly incrementing the cursor. After a series of LINC signals have been fed to the cursor counter 34, the counter eventually contains the address of row seventy-two of the memory. This address is decoded by a row seventy-two decoder 160, the output of which is fed into one input of a row seventy-two AND-gate 162. The alternate input of the AND-gate is connected to the LINC line 152 from the instruction decoder 50. In response to the coincidence of a LINC signal and the decoding of row seventy-two, the AND-gate 162 provides an output pulse to a reset OR-gate 164 which passes to a reset input of the cursor address row counter 34. Thus, in response to a coincidence of a row seventy-two address and a LINC command, the cursor row counter will reset to the address of the first memory row. Serving to directly reset the cursor row counter, the alternate input of the reset OR-gate 164 is connected to the reset output of the instruction decoder 50 via line 106.

OPERATION

With respect to FIGS. 3 through 7, several flow charts of selective ROM 18 command sequences are provided which serve to illustrate the operation of the apparatus of FIG. 1. A receive command is provided by the instruction decoder, upon completion of a prior program sequence, which is fed to port 48 of the multiplexer 40, routes the next incoming command signal through the multiplexer for address of the ROM 18. FIG. 2 is a signal flow chart illustrating operation of the apparatus in response to an incoming cursor and scroll home command. The command is initated for resetting the display 12 to the first line of the memory 10 and the cursor to the first display row. The "home" command signal passes through the multiplexer and is loaded into the counter for addressing the ROM. The ROM sends an enable command to the instruction decoder which generates a reset signal via line 106 for reset of the scroll counter 24 and the cursor counter 34. Reset of the scroll address counter 24 places the first memory segment upon the display and reset of the cursor address row counter 34 places the cursor on the first row of the display. After reset, the sequence stops and the ROM is ready to receive the next command.

As illustrated in FIG. 3, in response to an incoming scroll down command, the instruction decoder generates an SCDN signal via line 116 and the scroll counter 24 decrements shifting the display down one character row. The ROM is clocked to the next address and an LDEC signal is fed via line 158 from the instruction decoder to the cursor counter 34 decrementing the counter downward so as to maintain the cursor's relative position with respect to the display. If the address of the scroll counter is that of row one, the SCDN signal will cause the scroll counter to roll over in the opposite direction as previously described. As mentioned, the cursor counter 34 is decremented in response to a scroll down command. This feature maintains the cursor upon the screen as the memory is scrolled thus assuring that the cursor will not be removed from the operator's view.

With respect to FIG. 4, in response to a scroll up command, the instruction decoder generates a SCUP signal via line 112 which upwardly scrolls the counter. Subsequently, a LINC signal is generated via the line 152 incrementing the cursor row address counter 34.

FIG. 5 illustrates a flow diagram initiated in response to a segment advance command. The instruction decoder 50 provides a SCUP signal to the scroll counter 24, and the counter scrolls up one line. The ROM counter 38 is stepped and the decoder 50 sends a LINC signal to the input of the cursor counter 24 which increments. In response to the next clock pulse, the ROM commands the check decoder 60 to test its TS 1 input to determine if the scroll counter 24 contains the address of the first row of the first segment of the memory 10. For purposes of discussion, it will be assumed that the scroll row address counter does not contain the address of the first row of the first segment which is row one. Thus a NO signal is fed from the output 74 of the check decoder to the timing unit 20, causing the memory to provide two steps pulses skipping the ROM address counter 38 two positions. The check decoder in response to the new ROM output, checks the counter for the address of the twenty-fifth row which is the first row of the second memory segment. It will be assumed that the scroll address counter 24 does not contain the address of row twenty-five. The ROM address counter 38 skips two positions and again the check decoder 60 checks for the address of row forty-nine. In the absence of an affirmative check, the ROM sends a recirculate command to the check decoder 60 which forces a YES output to the jump flip-flop 82 which returns the ROM sequence to the start position. After the scroll counter 24 has been incremented and the cursor counter 34 incremented one row, the check decoder 60 again checks the scroll counter 24 for the presence of either the first, twenty-fifth, or forty-ninth row addresses. In response to the presence of the address of one of these rows, the check selector provides an output signal at the "YES" output 76, and the timing unit jumps the ROM to a stop position. The scroll address 24 then carries the first row of one of the three memory segments.

With reference to FIG. 6, the ROM, in response to a cursor down command, addresses the instruction decoder 50 which sends an EOD signal to the control input of the multiplexer 144. The EOD signal from the EOD decoder 30 is routed through the cursor multiplexer 144 to the comparator 36 whereas it is compared with the address of the cursor row address counter 34. In the event a coincidence condition is detected, a coincidence signal (COINC) is fed to the COINC input 72 of the check decoder which is routed to the YES output 76 thereof. In response to the YES signal, the timing unit 20 skips the ROM address counter 38 and the ROM in turn instructs the decoder 50 supply a SCUP signal. Responsive to the next clock timing pulse the ROM 18 directs the decoder 50 to generate an LINC signal. The incrementation of the scroll address counter 24 when the cursor is in the last line of the display, assures that the cursor will not be moved off the display screen, but rather, the display is moved up one row before the cursor is incremented. For purposes of discussion it is assumed that a coincidence did not occur between the EOD signal and the cursor address. The check decoder 60, in this instance, provides a NO signal to the timing unit. In response to this signal, the ROM 18 is "skipped" and the instruction decoder 50 sends a LINC signal to the cursor row counter 34.

With reference to the logic diagram of FIG. 7, in response to a cursor up command the instruction decoder 50 sends an SOD signal to the cursor multiplexer 144. The output of the scroll address counter 24 is fed to the comparator for comparison with the cursor address row counter 34. In response to a coincidence, the check decoder sends a YES signal to the timing unit. The ROM is "jumped" and the decoder 50 sends an LDEC signal to the cursor counter 34. Thereafter, the ROM 18 is stepped and the decoder 50 sends an LDEC signal to the cursor counter 34. In the event a coincidence does not occur when the cursor address and SOD addresses are compared, which is the case when the cursor is not on the first row of the display, the ROM "jumps" and an LEDC signal is sent from the decoder 50 to the cursor counter 34. Thus, it is assured that in response to a cursor up command, the cursor will not be moved off the screen. Rather, if the cursor is in the first row of the display, the cursor will move up one row and the display will also scroll up one row thus retaining the cursor upon the screen.

Although the invention has been particulary shown and described with reference to a preferred embodiment thereof, it will be understood that various changes in form and detail may be made without departing from the spirit and scope of the invention.

* * * * *


uspto.report is an independent third-party trademark research tool that is not affiliated, endorsed, or sponsored by the United States Patent and Trademark Office (USPTO) or any other governmental organization. The information provided by uspto.report is based on publicly available data at the time of writing and is intended for informational purposes only.

While we strive to provide accurate and up-to-date information, we do not guarantee the accuracy, completeness, reliability, or suitability of the information displayed on this site. The use of this site is at your own risk. Any reliance you place on such information is therefore strictly at your own risk.

All official trademark data, including owner information, should be verified by visiting the official USPTO website at www.uspto.gov. This site is not intended to replace professional legal advice and should not be used as a substitute for consulting with a legal professional who is knowledgeable about trademark law.

© 2024 USPTO.report | Privacy Policy | Resources | RSS Feed of Trademarks | Trademark Filings Twitter Feed