Abstract:
A method and apparatus are disclosed for controlling an electronic display using a keyboard to allow designation of desired regions on the display or in the memory of the system. A method of designating desired regions on the display under control of a keyboard which has at least one designation key includes the steps of positioning a cursor at a first location in fixed relationship to the desired region, activating a first designation key, and supplying through the keyboard signals to indicate a second location in fixed relationship to the selected region to cause a portion of the selected region between the first location and the desired location to be designated. The apparatus for designating a region on a display includes a processing unit coupled to the display, a keyboard connected to the processing unit to control the display, and first and second designation keys coupled to the processing unit for causing the processing unit to search the display for a pattern entered into the keyboard while at least one of the first or second keys is activated.

Description:
This is a continuation of Ser. No. 07/030,277, filed Mar. 23, 1987, now abandoned, which is a continuation of Ser. No. 06/605,488, filed Apr. 30, 1984 now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates generally to computer controlled displays, and in particular to a method and apparatus for designating a region on a display or stored in a memory which is under control of a keyboard, for example, during manipulation of information being displayed on such a display. 
     2. Description of the Prior Art 
     As the price for computer hardware continues to decline, the number and extent of applications for computers both in the home and in the workplace have increased enormously. In many such applications, notably the processing of textual material using so-called &#34;word processing&#34; techniques, the user of a computer system is called upon to designate locations or regions of the material displayed on a screen or stored in the memory of the system. For example, the user may wish to locate and display a particular sentence in a document stored in the computer system, when only a small portion of the document can be displayed on a CRT monitor coupled to the system at any one time. After locating or designating such locations or regions, the user of the system may enter additional information into the computer using a keyboard or other well known input device to modify the material displayed. For example, the user of the system may designate a location in text displayed on or off the screen, at which location additional text is to be inserted. Alternatively, a user may designate a portion of the text to be deleted or moved to another location. 
     Many mechanisms have been developed to allow a user of a computer system to designate such locations or regions. Conventionally available systems include joy sticks, cursor control keys, special function keys, and pointing devices such as &#34;mice.&#34; 
     Cursor control keys, also known as &#34;step&#34; keys, are conventionally divided in sets of four or more on a keyboard, with the up/down keys used to move the cursor from one line to the next, and the right/left keys used to move the cursor along a given line. Cursor control keys, however, are among the slowest of all pointing mechanisms, primarily due to the large number of keystrokes required to move the cursor across large regions of the screen. For example, to position the cursor at a location 40 characters to the right on a given line requires either 40 keystrokes, or holding the key down for 40 cycles. Because this process is tedious, computer system hardware and software designers have provided alternative cursor control keys which move the cursor a word, a sentence, or a paragraph at a time. Unfortunately, each such alternative requires a separate key, or a separate set of keystrokes, resulting in a difficult to remember set of commands. Furthermore, for many operations the user must first mentally plan a path from the present to the desired cursor position. Such planning requires time and effort, frequently resulting in the user of such a system relying only upon the repeated actuation of the principle cursor control keys. 
     Another commonly used technique for designating locations or regions of text on a screen is by the use of graphic pointing devices, such as mice, graphics tablets, joy sticks, trackballs, touch pannels, touchsensitive screens, light pens, and the like. Graphic pointing devices, however, cannot point to regions not shown on the display. In addition to the added desk space required, the expense of these devices adds to the cost of the product with which they are used. Such devices are generally slow because of the time required for the operator to remove his or her hands from the keyboard, grasp or pick up the device, use the device, release it and then return to the keyboard in the correct position. Graphic pointing devices also require the user to maintain both the present and desired cursor positions in view and shift attention from one to the other. 
     Yet another technique for enabling a user to position a cursor to a desired location on a screen is the use of &#34;find&#34; commands. In conventional text processing equipment, a find command requires the user to enter a mode where keystrokes are interpreted as a pattern to be found, rather than as additional text or system commands. To use a find command the operator activates a switch where subsequent keystrokes are interpreted as the pattern to be found, enters the desired keystrokes, and then terminates the pattern using a delimiter which signals the end of the pattern and starts the search. Other systems require the user to end the pattern with a first signal, and then start the search with a second signal. 
     Find commands, however, have two major disadvantages. First, because the find command creates a separate mode of operation of the same keys, human errors and user irritation are prone to occur because the same keystrokes do not always represent the same activity. The user of such a system must always be aware of which mode it is in. The second major problem with find commands is the necessity of delimiting the pattern. The delimiter, of course, cannot be used in the pattern, meaning that any character chosen as the delimiter either must be excluded from the text or cannot be found by the find mechanism. Additionally, most implementations of the find command require that a portion of the display screen be reserved for displaying the pattern as it is entered. This reserved space consumes valuable display area, particularly on portable computers using smaller display areas. Additionally, with most implementations of find commands, the user cannot find a pattern prior to the current cursor position without either reversing the direction of the find command, using a separate command or yet another mode, or first moving the cursor to the beginning of the text or some other point ahead of the material to be searched. 
     SUMMARY OF THE INVENTION 
     The method and apparatus of this invention provide a technique for rapidly and accurately initiating a search of text or other information stored in computer storage apparatus or displayed on a screen without using cursor control keys, graphic pointing devices, or modal systems such as the find command. As a result the system of this invention is simpler and faster to use, and may be used with substantially fewer errors than prior art systems. At its simplest level the system allows the designation of a particular character on a display or in a real or virtual memory, even in the presence of other instances of that same character without removing the operator&#39;s hands from the keyboard or switching to a different mode. 
     In one embodiment a method of designating a desired region in a computer storage apparatus under control of a keyboard or other input means, having at least one designation means, includes the steps of positioning a cursor at a first location in fixed relationship to the desired region, activating a first designation key, and supplying through the keyboard signals to indicate a second location in fixed relationship to the desired region to thereby cause that portion of the desired region between the first location and the second location to be designated. In the preferred embodiment after the region is designated the first designation key is released or deactivated to return the keyboard to normal operation. In the preferred embodiment, the step of positioning the cursor at a first location consists of the steps of activating a second designation key and supplying through the keyboard signals to indicate the first location. Usually the steps of supplying through the keyboard signals to indicate a location consists of striking keys corresponding to the display or the contents of the memory at the desired location. 
     In one embodiment a method of designating a particular character on a display under control of a keyboard and a designation key not necessarily on the keyboard comprises activating the designation key and while the designation key is activated supplying through the keyboard signals consisting of the particular character, and if necessary other characters to provide a context to distinguish the particular character from other instances of the same character, whereupon an indication is given that the particular character has been designated. 
     In a preferred embodiment apparatus for designating a region on a display comprises a processing unit coupled to the display; a keyboard connected to the processing unit; and first and second switchable designation means coupled to the processing unit for causing the processing unit to search the display for a pattern entered into the keyboard while at least one of the first and second switchable designation means is activated, wherein the first designation means causes the processing unit to search for the pattern in a first direction from a selected location on the screen, and the second designation means causes the processing unit to search in an opposite direction. The first and second designation means usually are keys on the keyboard. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram illustrating the apparatus of the preferred embodiment. 
     FIG. 2 is a flow-chart illustrating the method of the preferred embodiment. 
     FIG. 3 is a flow-chart illustrating in detail a step in the flow-chart of FIG. 2. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 is a block diagram of a system, including a keyboard illustrating one embodiment for the apparatus of this invention. The keyboard depicted is a standard keyboard with the exception of a &#34;rex&#34; and &#34;lex&#34; keys provided at opposite ends of the shortened space bar key. The &#34;lex&#34; and &#34;rex&#34; keys are electrically connected to the computer in such a way that the two states in which either may be at any instant of time--up or down--may be detected independently of the state or states of any other key or keys on the keyboard. The lex and rex keys are additional keyboard keys constructed in the same manner as the keys in a conventional keyboard, that is, as momentary contact push buttons labeled to reflect their function. 
     In the preferred embodiment activation (depression) of the lex key causes the computer system to search to the left of the present cursor location for whatever pattern is entered into the keyboard while the lex key is held depressed. Thus, to search for the first occurrence of the pattern &#34;Je&#34; to the left of the present cursor position, the user will depress the lex key, and enter a capital J. In the manner explained in detail below, the computer system will search its memory, including the portion of the text displayed, for the first occurrence of &#34;J&#34; to the left of the present cursor position. When found, that portion of text will be displayed with the cursor positioned at the newly found &#34;J&#34;. As soon as the user enters &#34;e&#34; the system will search for the first occurrence of the pattern &#34;Je&#34; to the left of or at the present cursor position (now &#34;J&#34;). If the operator of the system desires to search for &#34;Jef&#34;, the lex key will be held in an activated position and an &#34;f&#34; typed to continue the search. At the conclusion of the search the cursor will be positioned in a fixed relation to the first occurrence to the left of the previous cursor position at which the pattern &#34;Jef&#34; occurs. The user of the system may now proceed to edit the text at this location, for example, by inserting, deleting, or changing the display using other keys. 
     Next, assume that rather than designate only the first occurrence of the above pa&amp;tern, the user of the system desires to designate the remainder of the sentence in which &#34;Jef&#34; occurs. This may be accomplished by depression of the rex key and entry through the keyboard of a &#34;.&#34;. In the preferred embodiment this will cause the system to designate the entire segment of text beginning with &#34;Jef&#34; and ending with &#34;.&#34;. In this manner desired segments or regions of textual or other material may be rapidly and accurately designated and displayed on the screen, without the disadvantages of the prior art systems described above. Once designated, well known additional manipulation may be performed on the specified regions, for example, deleting the designated material, movement of the designated material to other locations in the text, etc. 
     Although the rex and lex functions are depicted in FIG. 1 as being accomplished by extra keys on a keyboard, other well-known implementations may be readily employed to accomplish the same functions. For example, foot pedals or other switches may be used. All such alternative input devices are termed designation means herein. 
     In operation when either the lex or rex key is depressed, no immediate change occurs on the screen. When the first character of the pattern is typed, however, an internal pointer, which may be represented by a cursor, or other indicator on the screen, begins moving to the left or right, depending on whether the lex or rex key was depressed. Under control of the computing system, each character encountered as the cursor travels is inspected to determine whether it corresponds to the character entered into the keyboard. Because (in a conventional computing system) of the rapidity with which each character may be compared to the desired one, the inspection takes place too quickly to be observed. To the operator of the system the effect is as if the cursor suddenly moved to the position where the pattern was found. If the user continues to hold the lex or rex key depressed and types further characters, each character is added to the pattern, and as each is added the search proceeds for the entire pattern entered to that moment. 
     Although throughout this application reference is made to material being displayed on a screen, it should be understood that the extent to which the material is displayed on the screen is arbitrary, and not related to the invention. For example, in a typical word processing environment, the amount of text displayed on the screen at any given instant primarily will be determined by the size and type of display, and the software operating on the host computer. In application of this invention to such a system, the search performed by the processing unit will proceed through all (or a desired portion) of the text in the desired document, whether or not all such text is actually &#34;displayed&#34; on the screen at the instant the search begins. 
     In some embodiments of the invention to avoid having to know in advance where in the text the desired pattern occurs with respect to the present position of the cursor on the screen, the entire text may be treated as though the first character were concatenated to the last character. Thus, when the lex key is depressed the search will proceed to the left (or forward of the cursor position) and continue to the beginning of the text, and then pick up at the end of the text and continue back to the former cursor location until the desired pattern is found or not found. 
     In other embodiments of the invention to avoid having to know in advance where in the text the desired pattern occurs with respect to the present position of the cursor on the screen, the search may proceed in the direction indicated by the choice of either the lex key or the rex key, however if the search fails in the indicated direction, the search then automatically proceeds from the cursor location in the other direction. Thus, when the rex key is used to initiate a search to the right from the present cursor location and the pattern is not discovered between the present cursor location and the last character of the text, the search then automatically resumes from the left of the present cursor position up to and including the first character of the text if necessary. 
     FIG. 2 is a flow-chart illustrating a preferred embodiment of the method of this invention. As shown in FIG. 2 the method begins with &#34;booting&#34; the system and initializing it. If no textual matter is loaded into the system at this time, the display point, (the point displayed on the screen), and the original point (the last stored point to which the lex or rex keys caused the system to locate) are the same point and at the upper left hand corner of the display screen. During the initialization a flag referred to as the &#34;newpattern&#34; flag is set as true. See block 15 in FIG. 2. The new pattern flag is an indicator used to determine whether or not to erase a pattern to be searched for. Setting the new pattern flag causes the system to ignore any existing pattern, in effect indicating that any characters subsequently entered are the beginning of a new pattern. 
     If a program has been entered at the time the system is booted, then the original point, display point, and new pattern flag are set in accord with the instructions from the stored program. (The reference numerals associated with the locations in the flow-chart are not indicative of the order in which the steps on the flowchart are performed, but simply used for the convenience of explanation.) 
     The system is then placed at block 18 designated Begin. Under control of the host program, and using well-known apparatus, the condition of the keyboard is monitored with a desired frequency. Assuming that neither the lex nor rex keys are depressed, operation of the system proceeds as shown generally within block 20. Operation of the system in this manner is essentially the same as a conventional keyboard and display. The new pattern fag is set true at block 21 and then a test is made at block 22 to determine whether a legal character, that is, an ASCII character meaningful to the logic, has been entered through the keyboard. If not, as shown by path 23, the system returns to block 18. If a legal character has been entered through the keyboard, a test is made at block 24 to determine whether the character was a command. If the character is not a command it is inserted into the display, the display point is advanced, and the original point is set to the current display point. Operation of the system then proceeds along path 23 to return to bock 18, and the cycle repeated. If a command has been entered at block 24 the system then executes the command (block 25), and returns via path 23 to block 18. 
     If at block 19 either the lex or rex keys have been depressed, operation of the system proceeds along path 27 to decision block 29. As shown, at block 29 a test is performed to determine whether both the lex and rex keys have been depressed. If so, operation of the system proceeds into block 30. In this portion of system operation a test 31 is performed to determine whether &#34;marked&#34; text has been extended between the characters designated by both the lex and rex keys. Marked text is text made obvious by reverse video, blinking, brightness, color, or other well-known techniques. Of course, on the first pass through this loop there will not be any &#34;marked&#34; text unless the system has been operating in block 40, so the test will fail transferring the system to block 32. As shown by block 32 all text between the display point and the original point is then marked and system operation returns to block 18. If at block 31 text has already been marked, system operation passes to a determination of whether a legal character 33 has been entered. If so, the character is interpreted as a serial communication control character according to block 35. If not, system operation returns to bock 18. 
     If the decision at block 29 is false, that is, not both the lex and rex keys have been activated, then system operation proceeds to block 39 to determine whether or not a legal character has been entered. If a legal character has not been entered from the keyboard, for example, by keys on the keyboard simply not having been depressed during that cycle of operation, then system operation returns to block 18. 
     If a legal character has been entered a test is first made at block 41 to determine whether the character entered was the delete key. If the delete key is activated, a test is made at block 42 to determine whether the pattern typed while the lex or rex key was held includes more than one character. If it does, then as shown by block 43, one character is deleted from the pattern and a search is performed from the original point to locate other instances of the same pattern. The manner in which the search is performed at block 43 is discussed in further detail in conjunction with FIG. 3. System operation then returns to block 18. If at block 42 only a single character is found in the pattern, then as indicated by block 44 the entire pattern is deleted, and system operation returns to block 18. 
     If the delete key was not depressed at block 41, then system operation proceeds to block 45 to determine whether a key has been activated to indicate that the search should be repeated. (As explained below if a search has not been performed then the again key is effectively ignored.) If the again key is activated then a test is made at block 46 to determine whether one or more characters are in the pattern. If one or more characters are not in the pattern, then system operation returns to block 18. If one or more characters are found to be in the pattern, then a search is made as shown by block 47 from the display point for the pattern, and system operation returns to block 18. If the again key is not active, then at block 48 the system determines whether the new pattern fag has been set. If it has been set, the pattern is cleared and the flag reset as shown by block 49. If the new pattern flag is not set, the legal character entered at block 39 is added to the pattern and a search is made from the display point for the entire pattern. 
     The method by which the search referred to in blocks 43, 47, and 51 is conducted is shown in further detail in FIG. 3. As shown there, once the search is initiated a decision is made at block 61 as to whether the rex key is active. If so, the system passes to block 63 and a test is made to determine whether the display point is to the left of the original point. If that condition is true, then a search is conducted to the left. If that condition is found false, the search is conducted to the right. If the search to the right is unsuccessful, then as shown by block 64 a search is made to the left. At the end of searching in one or both directions, system operation passes to block 70. 
     If at block 61 the rex key is not depressed, and the display point is to the right of the original point after the test in block 65, a search is made to the right. If the display point is not to the right of the original point then a search is made to the left as shown by block 66. If this search is not successful, the search is made to the right as shown at blocks 66 and 67. 
     Whatever the outcome of the searches performed in the upper portion of FIG. 3, a new test is made at block 70 to determine whether the search is successful. If the search was successful then the found point 72 is used as the present display point (cursor location) 73. If the search was not successful, then the original point 74 is used as the display point 73. 
     In some embodiments of the invention the effect of activating the rex and lex keys will not be symmetrical. In one such embodiment the lex key will be used to skip to the designated pattern from the present cursor position in the manner explained above. Thus, entry of a pattern will not cause the entire region of text between the present cursor position and the entered pattern to be selected, but will rather cause selection of only the pattern or a portion of the pattern such as the first character. That is, no text will be selected but the cursor will be relocated in fixed relationship to the text matching the pattern, for example, immediately to the left or right of the text matching the pattern. In contrast, use of the rex key in such embodiments will cause the entire portion of the text between the present location of the cursor and the designated pattern to be selected. Using the lex and rex keys in this manner, if an entire sentence is to be selected, the lex key will be depressed and a pattern corresponding to the pattern at the beginning of the desired sentence entered. The lex key is then released and the rex key depressed. A pattern corresponding to the end of the sentence, for example, a &#34;.&#34; is entered. This will cause the text selected to be the entire text material between the pattern entered with the lex key and the pattern entered with the rex key to be chosen. In such embodiments, the selected text usually will be presented in highlighted fashion, for example by underlining, reverse video, blinking, or other well known display techniques. 
     The method and apparatus of this invention have numerous applications beyond the editing of text in the manner described above. For example, the search techniques of the invention may be utilized with read only text such as published material, telephone directories, optical discs, etc. to quickly locate and view desired portions of such text. In such applications, as well as in the editing text, the particular direction which the search takes may be varied to suit the particular application. For example, if all searches are to proceed in a single direction, the provision of only a single rex or lex key will be necessary. In other applications it may be desirable to have the search proceed in alternating directions beginning with the direction in which the desired pattern is closest to the present cursor location. 
     In some embodiments of the invention both the lex key and the rex key may be simultaneously activated to cause the search to proceed in both directions simultaneously. Such embodiments are particularly useful for enabling selection of a single word by entering a blank while both keys are depressed, or selection of a sentence, by entry of a &#34;.&#34; while both keys are depressed. 
     In the preferred embodiment the method of this invention is carried out by an Apple IIe computer operating under control of the program attached as an Appendix to this application. 
     The foregoing explanation of the preferred embodiments of the invention are intended to illustrate the invention, rather than limit it. The scope of the invention may be ascertained from the appended claims. ##SPC1## ##SPC2## ##SPC3## ##SPC4##