Word processor with alternative formatted and unformatted display modes4686649Abstract A word processor supports an unformatted mode which includes display of a partial page and supports a formatted mode which includes display of the displaying format of an entire page of text. Both modes impose minimal burden on the display allowing use, for example, of standard display chips with a variety of monitors including a standard TV set or TV monitor. Other advanced functions include simple addition, movement and deletion of text units or blocks; simplified underscore, underscore deletion, word underscore and word underscore deletion; and an uncluttered insert display regardless of the extent of inserted text. The hyphenate fuction is improved by informing the operator, via the display, of the relation between, not only the right margin and the hyphenate candidate, but also the relation between the hyphenate candidate and the actual preceding line endings. Claims What is claimed is: Description FIELD OF THE INVENTION
______________________________________
Parameter Text Page Image (FAX)
______________________________________
Scans/data row 15 3
Characters/data row
64 132
Data rows/frame 16 64
______________________________________
The term scan refers to a single sweep and data row, corresponds to a line, such as a line of text. Therefore, 15 scans/data row allows each character to include 15 pixels, vertically. Likewise 16 data rows/frame allows 16 lines of text to be displayed. In practice, several character positions (horizontally) and data rows or lines (vertically) are not used. In addition, two lines of those available in text mode are used in the message line, leaving 12 lines of text. In page image, of the 132 positions available only 85 character positions are used for display of a page and its contents, the remainder (less positions not used) are dedicated to various prompts and messages. In the text mode the CRT chip 27 is capable of addressing the required number of characters. As will be described the page image RAM 26 cooperates with the CRT controller 27 in exactly the same fashion. That is, the CRT controller reads the RAM 26 to supply, on the bus 31 a byte stream representing the desired image, which is seralized and used to control the CRT. While FIG. 1 shows the RAM's 25 and 26 as separate from each other that separation is only functional as there is no reason why they cannot be located on the same partitioned chip. In addition, since the RAMs are used alternately they can in fact be implemented by a single RAM of capacity sufficient, at any one time, to perform the function of either text RAM 25 or page RAM 26. Furthermore, there is no fundamental reason why this RAM capacity cannot be integrated with the processor's internal RAM so long as either a DMA operation is used for refresh or some time multiplexing is used so both the processor 20 and CRT 32 can both use the same memory chip. In the embodiment we built the page RAM 26 also had 1024 byte capacity, however, each bit represented a character, so it was capable of storing 128 characters per row for 64 rows per screen. Of these we used 85 characters per row for our page image, the rest, 43 characters per row was available in out split screen for prompts, etc. While this, and other available CRT control chips are programmable in that they are capable of varying the number of characters per row and the number of rows per screen, they do typically have limits which makes it impossible to display a full page. That is, for example, up to 156 characters per row and 78 rows per page or screen. Of course, RAM 26 would have to be extended (beyond 1024 bytes) to store an 156.times.78 character screen or page. In order to provide the desired display we must somehow provide a translation between the text characters (for example, the alphanumerics that the operator desires to appear on the printed page or the display) and the display characters, since the CRT control chip is incapable of providing a one-to-one correspondence between display characters and text characters. Accordingly, in one embodiment of the invention we group text characters into a two-by-two array, and define that two-by-two array of text characters as a single display character identified by a single byte. Now our limits of 156 characters per row is reduced to 78 display characters per row, well within the capability of the control chip, and the requirement of 78 rows per screen is reduced to 39 rows per screen, also well within the capability of these conventional chips. While we have suggested a 2.times.2 array it is of course possible to employ other, larger arrays, for example 3.times.2 or 2.times.3 with existing 8 bit bytes. While there is no theoretical reason why even larger arrays could not be used, 3.times.3 or larger arrays would require 9 bits or more to distinguish the various combinations of filled and unfilled locations. FIG. 3A illustrates an exemplary two-by-two array of text characters containing, respectively, upper case e, space, lower case g and period; FIGS. 3B and 3C illustrate, respectively, 10 pitch and 12 pitch displays corresponding thereto. It will be noticed that any character location, regardless of character identity, is displayed as a pel array which is 3 high by 3 or 4 wide within which is a two-by-two pel array which is turned on if any character or punctuation is present and is off if the location is empty. To implement this, the page RAM 26 stores bytes which are significantly different from that stored by the text RAM 25. The text RAM 25 stores, as is well known to those skilled in the art, an 8 bit byte for each character (or space), which is translated by the character generator 28 into a sequence of binary signals for use by the display. On the other hand, the page RAM 26 stores an 8 bit byte for each two-by-two array of text characters, corresponding to a single display character. Since there are 15 different combinations in which the two-by-two array can be filled or unfilled, 4 bits will suffice to define the particular array configuration. The remaining 3 or 4 bits can be used for other functions, such as defining cursor placement with regard to any one of the four different text characters represented by this display character. Of course, it is necessary for the processor 20 to write the appropriate signals to the page RAM 26, and the manner in which that is effected will be described. From the preceding, it should be apparent that the pseudo character generator 29 then has the function of interpreting the 4 bits defining the particular stored display character and serializing the resulting binary signals so that the appropriate display is produced, for example, that shown in FIG. 3B or 3C. The preceding description of a display scheme is not that actually employed in an embodiment of the invention actually constructed. In that embodiment the CRT controller 27 was a CRT video timer-controller (VTAC) designated CRT 5027 and available from SMC Micro Systems Corp., Hauppauge, N.Y. This particular chip is capable of displaying up to 132 characters per row, but if 132 characters per row are chosen, then it will only provide addressing for 32 rows. Otherwise, (for 96 characters per row, or less) it will address 64 rows per screen. In the embodiment we contructed we selected 132 characters per row and used the most significant row address bit DR4 and divided it by 2 in a flip-flop, to generate an equivalent to the unavailable DR5 which we called DR6. This gave us the ability to address 64 rows per screen and addressing for 132 characters per row. It is also possible to go beyond the 132 character/row and 64 rows/screen with this particular chip as follows. Either parameter is established by the chip's addressing outputs, used to read RAM 26. That is, the chip will read or output 132 different addresses between horizontal flyback, and likewise address 64*132 addresses between vertical retraces. To increase these parameters we take the least significant bit of an address and multiply its rate. Thus, take H.0.-H7 where H.0. is the least significant bit and halve the pulse width with a faster clock, giving an externally generated H(-1) to indicate the externally generated bit is less significant than the internally generated H.0.. So, instead of eight address bits per row (limited to a maximum count of 132) we now have nine bits which are limited to 264. With this new address set we can address up to 264 characters per row, or any lesser number with any one of a variety of decoding schemes. Further, we can, as we do, split the page image screen and put 85 characters per row in about 50% of the screen width. By using the same technique we can increase the row count, per screen, above 64. Before describing the apparatus in detail, reference is made to FIG. 2, which illustrates the keyboard 10, as it appears to the operator. The keyboard 10 is, in many respects similar to conventional word processors in that it includes a first field of keys 150 which include typical typewriter alphanumeric symbols and functions. In order to further widen the number of unique key codes available from the keyboard 150, a code key 137 is provided which is used, in connection with the simultaneous depression of another key within the field 150. The combination provides a key code which is different from that which is obtained when only the other key within the field 150 is depressed. Thus, for example, a first code is produced by the keyboard 10 when key 136 is depressed and a second different code is produced when the keys 136 and 137 are depressed simultaneously. Two additional control key fields, 151 and 152 are also provided. Key field 151 includes keys 101-103 to effect, respectively, a media read, a printing operation, and a recording operation. In addition, keys 104-106 provide for placing the device in an insert mode, a review mode or a delete mode, respectively. The insert key 104 can be asserted in text or page image mode. When asserted in text mode it will cause the processor 20 to remove any text on the line at which the cursor is positioned, which is to the right of the cursor, that text is moved down to the next adjacent line, and the following text is adjusted accordingly, so that the operator sees, on the display 32, at least a portion of a line which is available for text insertion. If the operator's insertion exceeds this capacity, when in the insert mode, an additional blank line is provided, and all following text is moved down accordingly. In page image, insert will perform a text or block (if the cursor is blinking) insert depending on the cursor position. In either event if a (printable) character is entered the device will switch thereafter to the text mode. Review can be asserted in text or page image mode. In the latter mode, each subsequent assertion will produce an image of the next sequential page on the display, unless key 111 (up cursor) is simultaneously asserted in which case the next preceding page image is produced. A similar effect is produced in text mode, except that rather than pages, each assertion will call up a different screen (maximum of 12 lines) either the next screen or the preceding screen if the up cursor (key 111) is also asserted. Rather than displaying an entirely different set of 12 lines per screen, the processor will attempt to maintain a sentence or paragraph continuity, on default the last (or first) line of one screen is the first (or last) line of the next. The delete key is a modifying command and therefore must be used with another command. It has the expected effect, namely it can delete a block of text (in the page mode) or in text mode it can delete a character for each depression of cursor right (114), a word (key 110), as well as word (122) or character underscore. It can also be used to delete previously entered functions as is explained later. The remaining key field (152), includes control keys 107 and 108 which can be used by the operator to control the display mode, either the text or page image mode. In the page mode asserting key 108 has no effect. However, in the text mode, asserting key 107 will align the beginning of a sentence/paragraph containing the cursor to the top line of the screen. The manner in which this is effected will be described hereinafter. Keys 109-114 are provided to control cursor movement. Keys 109 and 110, for example, move the cursor one word to the left or right, respectively in text mode. In page mode these keys are ineffective. In a similar fashion, keys 111-114 are provided to move the cursor up or down, right or left, either a single line space or character space per depression. As will be explained, in the text mode the cursor is constrained to move within the field of existing text. That is, cursor right (key 114) will, at the end of text in one line, go to the leftmost character in the next line, even if the line ending is not at the right edge of the screen. In text mode, with the cursor at the top of the screen asserting cursor up (key 111) will scroll the screen up. Similar action occurs with cursor at the bottom of the screen and assertion of cursor down (key 112). Like action can be effected with cursor left and right. In page image the cursor can be moved anywhere within the page boundaries, the cursor blinks when it is not over text. The manner in which the key codes generated by assertion of any of these keys is used to implement the function will be described hereinafter. Within the key field 150 itself, a majority of the keys and the results produced are conventional and will not be further described. However, the effect of actuating certain of the keys is worthy of brief comment. Several keys produce typewriter functions, i.e., index, backspace, carrier return, tab and space. The backspace is an error correcting backspace only when initially keying the document, continuing to key the document, revising in insert mode or under certain special conditions in fax mode. Otherwise, backspace is similar to a left cursor command. The Req backspace is always merely a cursor left. Each of the keys to be discussed hereinafter will produce the function described when the key itself is depressed in combination with actuation of the code key 137 (i.e., a coded function). Depression of key 116 enables the operator to change the position of the first writing point. For example, with the page image display, the operator can move the cursor to the point at which it is desired the text to begin. Actuation of key 116 will then effect this function. The reformating effected by changing the first writing point does not alter the integral relationship of the document and this is effected by appropriately changing the global and temporary right and left margins along with first and last writing line in a manner to be explained hereinafter. Depressing the key 117 provides a page ending code which is used to demark the end of a page. This is used by the processor 20 to format text, as will be described. Depression of key 118 puts the inventive apparatus in a format mode; this is used to superimpose on the page image a tab grid and horizontal and vertical ghost cursors each parallel to an associated grid, which track the document cursor in a single dimension, respectively. Second depression of key 118 restores the original page image. In the page image mode the display includes a representation of the document boundaries so the operator can view the relationship of margins, etc. with respect to the document boundaries. For example, a common document boundary size might be 81/2.times.11". Keys 119 and 120 can be used to display document boundaries of different but predetermined sizes. For example, key 119 can cause an envelope display, and key 120 might cause a display simulating the shape of an IBM card. Similar document boundaries could be called up by other conventional techniques. Keys 125 and 126 respectively, establish temporary right margins and temporary left margins at the present cursor position. Therefore, an operator desiring to change or insert a temporary right margin, for example, would first move the cursor, using any of the keys 109-114 to an appropriate location, and then actuate key 125. The temporary margins will be applied, by the processor 20 to the text in the paragraph at which the cursor is located. The effect of temporary margins are cancelled at required carrier returns as is the effect of other temporary parameters. Margins affect text display only in page image mode. Permanent margins for the document can be selected by the operator in a similar fashion using keys 124 and 132, respectively. However, only in page image mode. Key 123 provides a key code requiring return to the beginning of a document, and is used in either mode. Key 122 provides for word underscore in text mode only. In use, the operator positions the cursor to lie somewhere within a word which it is desired to underscore. At that time, key 122 is asserted, and the processor 20 sets an underscore indicating bit in the document memory for each byte associated with each character in the identified word. Keys 129 and 131, respectively, provide for tab sets and clears, used in page image only. Key 130 is similar except it provides for temporary tab registers. Temporary tab registers are, like temporary margins, effective until a required carrier return is encountered. Keys 129 and 131, respectively, set or clear the temporary or global tab register depending on cursor location when the command is asserted. Keys 128 and 135 allow the processor 20 to switch between the two documents in the document memory, key 128 calling up document A and key 135 calling up document B. In addition, when recalling document B, for example, after working on document A, the portion of document B which is displayed and the position of the cursor within document B are the same as the conditions existing when document A was called up. Key 134 is used, in page image, to designate the number of lines on a page. In use, the operator positions the cursor at what is desired to be the last line on a page and then asserts key 134. Key 133 is used to move blocks of text and is used in page image, only. In accordance with the present invention the document is broken down into main text, and one or more text adjuncts which are termed blocks. Text blocks, or simply blocks, while constituting a portion of the document, have an identity separate and apart from the main text, and key 133 allows blocks to be moved, individually, relative to the main text. A block insert is implemented, after keying in the main text. This is effected by simply positioning the cursor in the page image mode outside of main text. Since the cursor is outside the main text field, the display 32 will show it blinking; asserting the insert key 104 places the machine in a block insert mode. The operator can thereafter key in text, and as text is keyed in, display 32 shifts to the text mode to display the keyed in text. The text is stored in the document memory, along with the main text, but its beginning and end carries block delimiters to identify the block. Key 133 then can be used, by firstly positioning the cursor at a desired location for the block and then asserting key 133 to move the block thereto. If there is more than one block in the document, the block which moves in response to assertion of key 133 is the block last operated on. Similar techniques could be used for simplifying operator action on initially keying in main text by suitable modification to the system disclosed herein. More particularly, rather than requiring the operator to identify a left margin and first writing line before inserting text, the software could be modified to pick up these parameters from the operator's cursor positioning decision when initially keying in text. Many of the functions briefly described in connection with the key field 150 can be deleted in a similar fashion by operating the delete key 106 along with another key. This places the machine in a delete condition such that rather than inserting the thereafter asserted keys function, that function, if present at the cursor position, is deleted. This applies, for example, to permanent or temporary margins, temporary tabs and word underscore. Likewise, a block can be deleted, by asserting the block move key 133 when the inventive device is in the delete condition, in text mode. The delete condition is active when (and only when) the delete key is depressed, i.e., it is not a toggling function like insert, for example. Finally, key 136 provides for clearing the document memory; in the embodiment of the invention in which the document memory is capable of holding two documents, the clear function is effective for the document being worked on. Although some of the functions described above in relation to the keyboard are implemented via codes which are generated by simultaneous depression of more than one key, those skilled in the art will have no difficulty in understanding that this is not at all essential to the invention, and, with the addition of one or more keys, or a rearrangement of the functions performed by the available keys, the particular function implemented by simultaneous action of more than one key, could be implemented by the action of only a single key, the only requirement being that different functions are identified by unique key codes, generated by the depression of a key or group of keys. Refer to FIG. 4; a detailed block diagram of the apparatus interacting with the processor 20 and the display 32. As is shown in FIG. 4, the processor 20 has a data out bus 21A which may, for example, be 8 bits wide which is provided as an input to a buffer 40, the output of the buffer 40 is coupled to the internal bus 31 which may also be, for example, 8 bits wide. A second buffer 41 drives a data input bus 21B to the processor 20 which may, for example, also be 8 bits wide, from the same internal bus 31. The processor 20 also has an address bus 22 which may, for example, be 10 bits wide which provides an input to selectors 42 and 43 which have a multiplexing function in that they select one of their two inputs and provide it as an addressing output to the associated text RAM 25 or page RAM 26. The other inputs to the selectors 42 and 43 are provided by the output of the CRT controller 27 over a bus 60. Control signals input to the selectors 42 and 43, from the logic 58 make a selection, of course, when the processor is writing into the text RAM 25 or page RAM 26, the selector passes the address from the processor address bus 22, whereas, when it is actually desired to display, the selector 42,43 passes addressing information from the CRT controller 27 to read out the associated text RAM 25 or page RAM 26. The internal bus 31 is also used to transfer status informaton from the processor 20 to a status latch 50 which provides various controls to the logic circuits 58. The status latch 50, in an embodiment of an invention which has been constructed includes a bit for page image mode, a bit for highlight, a bit for black on white or reverse image, a bit for blanking, a bit for ghost cursor (split), a bit for blinking and a bit indicating when the vertical sync pulse, from the CRT controller 27, is active. The buffer 51 enables the processor 20 to read the contents of the status latch 50 at any time; since it is mainly useful for experimental operations, it is not at all necessary for providing the features described herein. Display of cursor position is partly controlled by the CRT chip 27 which receives cursor position information from the processor 20 over the data bus 31. However, several features of the invention provide ghost cursors, a vertically moving ghost cursor identifies the horizontal row of the cursor, and horizontally moving ghost cursor defining the vertical column of the cursor. Display of these cursors employs a pair of comparators 48 and 49 indicating the location of the horizontal and vertical ghost cursors, respectively. To provide these signals the comparators are provided with information as to the real time development of the raster, and this is implemented via the bus 60 which carries 10 bits of sweep identifying information, 7 bits providing character counts and 4 bits providing what is in effect line count information. Selector 47 provides the line count, and lowest order bit of character count to the comparators 48 and 49, for comparison purposes. The other input to comparators 48,49 is SP.0.-11 and EP.0.-11 from address latch 45 which provides 12 bits of address for each cursor. The output of the comparators (the signals SE4, from start comparator 48; and EE4 from end comparator 49) are provided to the logic circuit 58 to form the ghost cursor illumination which is merged with the basic video signal in a manner to be explained. The output of the comparators (SL4 and EL4) are provided to logic 58 to form a highlight condition (from start position SL4 to end position EL4) to be merged with the basic video signal in a manner to be explained. As will be explained hereinafter, in the course of text entry, the processor 20 forces the display apparatus to the text mode, and in that mode continually updates text RAM 25, so that it reflects the contents of the internal document memory of processor 20. When the processor 20 is not actually engaged in writing text RAM 25, the RAM is read out on a continuous basis via the control signals provided by the CRT 27. Each 8 bit byte in the text RAM 25 corresponds to a different character, space, etc., which is input to the character generator 52, in concert with 4 bits of row count information to generate, for that byte, an N bit word where N is the width of any character box. In the embodiment we constructed each character is 10 pels or columns wide by fifteen pels or rows high. This count is provided to latch 53. Actually, only seven bits of the 8 bit byte are used by the character generator 52, the eighth bit corresponds to the underscore bit. This is coupled directly to the latch 53. The latch 53 loads a shift register 54 with the N bits, and the contents of the shift register are read out by the appropriate timing signals to generate a serial signal stream CO which is input to the logic circuit 58. The underscore bit is read out of latch 53 and provided directly to the logic circuit 58. The underscored bit is simply a binary signal indicating, during the appropriate row time, whether an underscore graphic is to be displayed. The CO signal stream is the binary signal stream identifying the character, UNDC is the underscore signal stream. In an entirely similar manner, but with substantially different results, the page RAM 26 is read out by the CRT controller chip 27. However, in the page image mode when the page RAM 26, is read, the signals on the internal bus 31 are coupled through a latch 55 to a shift register 56, which performs functions substantially similar to the function of the shift register 54. As will be explained hereinafter, the page RAM 26 is written by the processor 20 on a one bit per character basis in a fashion that maps directly to the CRT screen, in this respect, similar to the text RAM 25 where each byte corresponds to a character or space. Accordingly, each memory location in the page RAM 26 corresponds to a unique position on the CRT screen. The presence of a one bit at a memory location in the page RAM 26 corresponds to the presence of a character (or punctuation graphic) on the CRT screen at the corresponding location. The page RAM 26 is read out a byte at a time, and the 8 bits are serialized in the shift register 56. Each bit, provided to the pixel select circuit 57 is used to generate a binary signal depending on the presence or the absence of a bit from the page RAM 26. Thus, the timing signals F.sub.co, F.sub.c1 (corresponding to one of four columns) and R.sub.0,R.sub.1 (corresponding to one of three rows) is used to generate the serial bit stream F*CLO which is input to the logic circuit 58. The pixel select network 57 could be any fixed switching network (such as a ROM) which is enabled by a bit from the shift register and which is addressed by the timing signals. Accordingly, the input to the logic circuit 58, either F*CLO, or the combination of CO and UNDSC (in the page image mode or text mode, respectively) serve to define, for the most part, the basic configuration of the display. The logic circuit 58 adds to this signal stream, in a manner to be explained, cursor position, any highlighting by the processor 20, ghost cursors, if selected, and character enhancement. Before describing the logic circuit 58, reference is made to FIG. 5 which describes the clock circuit 59. As is shown in FIG. 5, the clock circuit 59 which provides timing signals for the CRT chip 27 and the logic circuit 58, comprises a crystal oscillator operating at appropriate frequency (in one embodiment of the invention the crystal operated at 12 MHz). The signal is provided to a pair of counters 70 and 71, both operated as dividers. The counter 70 provides a carry out (RCC) which divides the input rate by 10. This output is coupled to an AND gate 72 where it is ANDED with the signal FAX*. Thus, in the text mode (not FAX or page image) the output of AND gate 72 is a clocking signal at 1.2 MHz which is coupled through OR gate 73 and inverter 74 to provide the dot carry clock (hereinafter DCC). In addition, the counter 70 provides column count signals (C.0. through C3) which divide the input rate by progressively high powers of 2. The signal DCC provides one pulse per character. In a similar fashion, the counter 71 is operated as a divider and its 2 outputs (F.sub.c0, F.sub.c1) are respectively the input rate divided by 2 and 4. These signals are coupled to AND gate 75 whose third input is the signal FAX. Thus, in the page image mode the output of AND gate 75 is at a 3 MHz rate (12 MHz divided by 4) which, when coupled through the OR gate 73 and inverter 74 provides DCC. The outputs of the counter 71 are also used in other portions of the logic circuit as well as, for example, in the pixel select circuits 57. Thus, in page image the character clock is 2.5 times as fast as in text, this accounts for our ability to display at a rate of approximately 130 characters per row in page image versus 52 characters per row in text. The logic circuit 58 is shown in schematic fashion in FIGS. 6 through 10. Referring now to FIG. 6, circuitry is illustrated to develop the signal VDATA2. FIG. 8 illustrates how that signal, in conjunction with several others is used to generate the composite video VIDCOMP. FIGS. 7, 9 and 10 illustrate the development of certain input signals used in the circuits of FIGS. 6 and 8. Referring again to FIG. 6, AND gate 82 is provided with input signals R1L, and R3L as well as the output of inverters 80 and 81 which are driven by R2L, and R.0.L respectively. Each of these input signals is basically one of the row defining signals R.0. through R3 provided by the CRT chip 27 in response to DCC, synchronized with HSNYC (also provided by the CRT chip 27). Accordingly, AND gate 82 is satisfied for the 10th row of each character, which is a row which is illuminated for the underscore graphic. The output of AND gate 82 is provided as one input to AND gate 83 whose other two inputs are FAX* and UNDSC. Accordingly, AND gate 83 provides an output for each character (whose underscore bit has been set), during the tenth row of that character's display and only in the text mode. Thus, the output of AND gate 83 is the underscore graphic. This is added to the basic binary signal stream CO in OR gate 84, and provides one input to AND gate 85. Since each character in the text mode is ten columns wide inverter 86 driven by the timer output C3 is used in conjunction with AND gate 85 to blank columns 9 and 10 which are cleared on signal C.0.. Accordingly, the output of AND gate 85 is the display stream with underscore graphic added for text mode display. For page image display the basic binary signal stream F*CLO is coupled through inverter 92 to NAND gate 93 whose other input is the signal CURS*. The output of NAND gate 93 is input to NAND gate 94. The other input to NAND gate 94 is developed in the NAND gate 91 by combining the signals EDGE and FAX. The first signal is, as will be explained hereinafter, developed to draw document boundaries in the page image mode and the second is the status signal indicating page image mode. Thus, the output of NAND gate 94 is the page image binary signal for all locations (with FAX data cleared at the cursor location). This signal is ORed with the text image defining stream in OR gate 87. Of course, only one of the inputs to OR gate 87 is active at any time since FAX and FAX* are mutually exclusive. To see the development of the cursor image in the page image mode reference is made to FIG. 7. As shown in FIG. 7 OR gate 162 is provided with signals CRV*, a signal developed in the CRT chip to define the position of the cursor, and the signal BLNK which is alternately high and low if the cursor is to be blinked, which it is in the page image mode, when the cursor is outside a text field area. The output of OR gate 162 is provided to inverter 163, the output of which is provided as one input to OR gate 164. The output of OR gate 164 (CRVl) is provided as a signal input to a flip-flop 90 whose clock input is coupled to DCC. The output of the flip-flop 90 (CURS) provides an input to the exclusive OR gate 88 whose other input is the output of OR gate 87. Accordingly, the output of exclusive OR gate 88 is a signal stream which is either text mode video (including underscore characters) or a page image video including the page boundary and cursor video, for both text and page image. The use of a ghost cursor feature has already been explained, and the location of the ghost cursors are determined by the comparators 48 and 49, producing the signals SE4 and EE4 (for the location of horizontal and vertical ghost cursor, respectively). These signals are provided to an OR gate 166, the output of which is coupled to AND gate 165. The other two inputs to the AND GATE 165 are SPLIT (one of the status signals, which is on in the page image mode and only when the ghost cursors are to be displayed) and the signal CRV* (to clear the ghost cursors/FAX data at the main cursor location). Thus, the output of AND gate 165 defines the ghost cursors and is the other input to OR gate 164. Accordingly, the signal CRV1, in addition to defining cursor location for both text and page image mode, in the page image mode also defines the position of the ghost cursors. As a result, the signal CURS also carries cursor and ghost cursor information as an input to exclusive OR gate 88. Exclusive OR gate 89, one of whose inputs is the output of OR gate 88, provides a highlighting feature. The presence of the gate allows areas to be highlighted (displayed as a reverse image). In other words, for the portion of the screen which is highlighted, an otherwise normally on pixel is off and an otherwise normally off pixel is on. This is simply effected by rendering the other input to exclusive OR gate 89 active for the entire period during which the high-lighted portion of the screen is being displayed. The signals SL4 and EL4 provide respectively, time definitions of the start and end of the highlighted field. Thus, the combination of inverter 95 and AND gate 96 provide a signal which is high during the portion of a field to be high-lighted. This signal, delayed by one clock count in the flip-flop 97 is provided to pass AND gate 99 (in the text mode). The signal HILIT, a status signal partially enables AND gate 102 to provide the active input to exclusive OR gate 89 to provide the highlighting functions. In the page image mode the delayed highlighting output of flip-flop 97 is further delayed in flip-flop 98 where, in a similar fashion it is coupled through AND gate 100 in the presence of FAX through OR gate 160 and AND gate 161. Accordingly, the signal VDATA2 includes all character graphics, cursor position, underscoring and highlighting. Reference is now made to FIG. 8 to illustrate the further development of the video signal. A status signal BONW is input to exclusive OR gate 165 the other input of which is the signal VDATA2. Accordingly, in the presence of the signal BONW the entire screen is highlighted or reversed imaged. The output of exclusive OR gate 165 (VDATA3) is one input to AND gate 166 the other input to which is the NOR gate 168. The output of NOR gate 168 (BLEN) enables the video which would otherwise be output by AND gate 166 to be blanked. The inputs to NOR gate 168 define three conditions, any one of which is sufficient for blanking. Blanking can be accomplished by the status signal BLANK which is effective for the entire screen. The signal AD15P (which is indicative of processor writing into an active refresh memory, and is therefore active for the processor access time) or the signal BL provided by the CRT chip 27 which defines those portions of the video which are outside the area being written. It is therefore, effective only for those portions of the screen for which the signal BL is active. Thus, the output of the AND gate 109 (VIDEX) is the blanked video. The remaining portion of FIG. 8 is used for character enhancement, and may not at all be necessary depending upon a particular monitor or the display being used. For those high resolution displays with phosphors arranged for digital display, the enhancement provided by the remaining logic of FIG. 8 may not be essential. FIG. 8 is useful, however, when the CRT being used is that of a commercially available TV receiver or monitor whose phosphor is subject to "blooming" when driven by a digital signal of repetition rate higher than a predetermined rate. Character enhancement or prevention of "blooming" is effected by reducing the duty cycle of the drive to the grid of the CRT depending on the frequency of its input. Since this can only be determined by noting a successive number of pulses to the video, the output of AND gate 166 is provided as an input to a four stage shift register 167. This enables the remaining logic to look one bit in the future (at stage A) and two bits in the past (stage D). The "present" video output provided is one input to AND gate 177. This partially enables AND gate 177, the other input will determine the pulse width. Under certain circumstances (particularly bit combinations in the register 167) the other enabling input to AND gate 177 will be a half pulse width. The NAND gates 169, 170, 178 pick out particular bit combination patterns and clock flip-flop 171 for the patterns (in stages A-D) of 0101; 0111; 1100; 1101; 1110; and 1111. Whenever such a bit pattern is detected flip-flop 171 is set, gate 172 is partially enabled, and is fully enabled at the rate, and duty cycle of TWMHD (a 12 MHz signal). On the other hand, gate 173 passes the signal TWMHD for all text mode (FAX*) display; as will be seen, the upper pair of gates 172 and 174 handles all non-cursor representing pulses and the lower row of gates 173 and 175 handles the cursor representing pulses. Since one input to gate 173 is FAX*, the FAX cursor is not subject to width limitation as a result of the gates 169-170 and 178. For non-cursor signals in text mode which are selected by the gates 169-170 and 178 (and hence set flip-flop 171) the signal TWMHD passes gates 172,174 and 176 to, in effect, slice the pulse width output of gate 177. Accordingly, for selected pulse combinations, a single pulse has its width reduced by gate 177 to limit "blooming". Similar action is produced in gates 173, 175 for text cursor representing pulses, i.e., one or more of the pulses will be reduced in width. The gates 174 and 175 are personalized for noncursor and cursor representing pulses by their inputs from inverter 183 and shift register 182, respectively. In text mode, cursor representing pulse times are identified by an output of gate 179, which is suitably delayed in register 182 to match the delay of register 167 and flip-flop 171. This partially enables gate 175 which is fully enabled at the 12 MHz rate and duty cycle by the output of gate 173 (in text mode only). On the other hand, in page image mode, gate 180 is enabled. Because one input is DCC, the normally four pulse wide CRV.0. is reduced to three pulse widths at the outputs of gates 180,181. This reduced width page image cursor is coupled through the inverter 183 to pass gate 174 and 177. Although the actual pulse count out of gate 177 for the page image cursor is only three, the visual effect is that of a four pel wide cursor because of "blooming" on the monitor. Transistor Q1 and Q2 provide, in effect an OR gate to sum the horizontal and vertical sync, through exclusive OR gate 127 with the output of AND gate 177 which is the complete video exclusive of the synchronizing signals. The result, available at the tap, is VIDCOMP which can be directly provided to a CRT display. Accordingly, the logic 58 develops an unformatted VIDCOMP in text mode and a formatted VIDCOMP in FAX mode. FIG. 9 illustrates how the signal BLNK* (used as an input to OR gate 162 in FIG. 7) is developed. That is, the signal VSYN (available from the CRT chip 27) is used as a clocking input to a rate multiplier 184. The output of the rate multiplier is used to clock a flip-flop 129 which is cleared by the status signal BLINK. Accordingly, the signal BLNK alternates in polarity once for each eight times VSYN is produced. This provides for the blinking cursor in that the cursor is illuminated for eight screens and blanked in the next eight. (Of course, only when the signal BLINK is active). FIG. 10 illustrates the production of the signal EDGE. The input signals to the gates of FIG. 10, that is, R.0., R1 define the third row of any character box in the page image mode. The signals DR.0. through DR6 define character lines, the signals Hn or Hnx (where n is an integer) are column signals defining character columns and the signals FC.0. and FC1 define dot positions within a column. The logic in FIG. 10 thus provides an output through the inverter 186 concurrent with the sweep writing first line, last line, first column and last column. The concatenation of these signals is the signal EDGE defining the boundaries of the document. In a manner to be explained, documents of other sizes can be provided on the display screen. We can now explain how our display in page image can illustrate 85 characters per data row with 64 data rows per screen using a CRT chip capable of writing either 132 characters per data row with 32 data rows per screen or 96 characters per data row with 64 data rows per screen. We set up the CRT chip to write 132 characters per data row and provide a simulated least significant row address bit, expanding row addressing from 32 to 64 rows. Our refresh RAM had 1024 byte capacity which, since we used 1 bit per character allowed for 8192 characters or more than enough for our 64 rows of 85 characters each. FIGS. 11A through 11G illustrate respectively, several different page image and text mode displays of a single document and FIG. 12 represents a map of document memory which will produce the displays shown in FIGS. 11A through 11G. FIGS. 11A-11D illustrate four different page image mode displays of the same document, the only difference between the four displays is caused by the fact that the cursor is located in different areas in each of the four displays. Because the number of lines of text in the page being displayed in FIGS. 11A-11D exceeds the text mode display capacity, the document which is shown in the display of FIGS. 11A-11D cannot be illustrated on a single text mode screen. Rather, three different screens are required. FIG. 11E shows the first screen constituting roughly the first one-third of the document, FIG. 11F shows the second screen constituting essentially the middle third of the document and FIG. 11G shows the last or third screen constituting essentially the last third of the document. A comparison of FIGS. 11A-11D with FIGS. 11E-11G will illustrate effectively that the text making up the document is not readable in the page image mode displays whereas it is readable in the text mode displays; on the other hand, the document's format which is explicitly illustrated in FIGS. 11A-11D is not directly revealed in FIGS. 11E-11G. Referring now to FIG. 11E, and reviewing the screen vertically from the top, the uppermost feature of the screen is "the message line"; this is an area of the screen which is set aside for operator prompts and the like, and it is effectively used, for example, to indicate to the operator what mode the machine is in (for example, insert mode, etc). The message line is demarcated from the document text by the dotted line. While the message line is generic to all page image displays, the remainder of FIGS. 11E-G is specific to an exemplary document display. Immediately below the dotted line separating the message line from the text, is text relating to the addressee, brief reference to FIG. 11A allows the reader to correlate the location of the addressee data in page image mode display. Immediately below the addressee text, and contained within a pair of horizontally directed dotted lines and a pair of vertically directed lines, is addressor data, which is shown in text mode vertically below the addressee data. Reference to the page image display shows that the addressor data is actually a text block, and as formatted will appear on the same lines of the document as does the addressee data but disolaced to the right. Thus, it should be apparent that the horizontal dash lines set off block from main text; and as will be discussed the vertically directed solid lines indicate temporary margins. The small rightward directed arrows adjacent each of the vertically directed solid lines indicates that the temporary margins are to the right of the global margins. Immediately below the dashed horizontal line demarcing the block from the main text, is a continuation of the main text of the document. Note that the tab preceding the "W" (merely shown as a rightward directed arrow) is actually reflected in the page image mode display as a plural space indent; as has been described above the text mode display does not illustrate, except symbolically, the actual extent of a tab. Referring now to FIGS. 11E and 11F, note that the last two lines of text in FIG. 11E form the first two lines of text in FIG. 11F. This is an example of the overlap between two adjacent text mode screens, which as will be demonstrated below, is a function of sentence/paragraph boundaries. The fourth through the eighth lines of text in FIG. 11F (braced by a pair of vertically directed solid lines) begins with a pair of graphic symbols indicating temporary margins, the relation between the temporary and global margins is indicated by the leftward directed arrows. The absence of horizontally directed dash lines indicates that while this paragraph is subject to temporary margins, it is a component of main text and does not comprise a block. The last two lines of text on the screen shown in FIG. 11F is preceded by another graphic indicating a tab. Reference again to any of FIGS. 11A-11D indicate the extent of the tab, a parameter which is not explicitly illustrated in the text mode display. Finally, reference to FIG. 11G clearly indicates the concluding lines of text in the document; note also that the first line of text in FIG. 11G is the last line in the text in FIG. 11E. In the text mode display of FIG. 11G, the plural rightward directed arrows indicate several tab functions, concluded with a required tab (shown as an underscored tab graphic), reference to any of FIGS. 11A through 11D indicates the actual effect of these tab functions. Returning now to FIGS. 11A-11D, this page mode display is atypical in that the Figures illustrate the page mode display including format assisting graphics, which are only displayed as an operator actuated option. The format assisting graphics include the horizontally moving ghost cursor, the vertically moving ghost cursor, an indication of the first writing line, an indication of the left and right margins which are applicable to the text associated with the cursor location, as well as an indication of the effective tabs which are also associated with text in the vicinity of the cursor location. Note, for example that the cursor location is different in FIGS. 11A and 11B, and so is the indication of the left and right margins. Note also the difference between the effective tab positions. Inasmuch as the cursor, in the display of FIG. 11B is located within the block, the message "BL" appears outside the document area in the display, this message appears so long as the cursor is located within this or any other block. Reference to FIG. 11C illustrates that the cursor is located within the text subjected to margins different from the document margins, and this can be confirmed by comparing the margin indicators in FIGS. 11A and 11C. Finally, the cursor in FIG. 11D is located in still another portion of text associated with a tab grid which is not the same as either FIGS. 11A or 11C, although the right and left margin indicators are identical in FIGS. 11A and 11D. FIG. 12 is a representation of a portion of document memory, and the information contained therein, which is capable of generating the display of FIGS. 11A-11G. In FIG. 12. text information (or codes) is indicated by the character X, other functions are illustrated by the use of various combinations of alphabetic symbols and in some cases some of these alphabetic symbols are separated by semi-colons, it should be emphasized that the semi-colons in the drawing are solely for purposes of illustration and have no counterpart in document memory. The codes TL, TR and TT are multi byte codes indicating horizontal location as well as the particular function. The tab code (TT) we used is 13 bytes long including a bit for each character position, which bit is set or reset to indicate the presence or absence of a tab stop. Further, the horizontal lines are also used for purposes of explanation and do not have any counterpart in document memory. Document memory is, as has been mentioned before, one contiguous memory; FIG. 12 is broken into several parallel lines solely for illustrative convenience, it would be more appropriate to illustrate it the document memory as a single unbroken line or storage array. Referring now to the upper lefthand portion of FIG. 12, the first line of text display is indicated as comprising a plurality of character codes concluded by a carrier return CR. Likewise, the second and third display lines are similar and each concludes with a CR. As will be seen in discussing other portions of text, the line ending CR is only used when the operator intends to prematurely terminate the line, (relative to display width) otherwise no line ending at all need be keyed by the operator. Immediately following the third CR are a number of block start bytes, a block insert begin code, and two codes TL,TR providing for temporary left and right margins, and finally, a temporary tab TT code. Immediately following the block start bytes are three lines of text for the block, each terminated by CR. Concluding the block is an end of block byte (BLIE). The actual TT codes are not shown in FIGS. 11E-G since those codes are not displayed in this embodiment. If desired, of course, they could be displayed by changes which should be apparent. Following the block codes are a series of codes representing the salutation, terminated with CR. This is followed by a further CR byte to provide the line space between the salutation and the remaining text, see FIG. 11A, for example. Note that this line space is not evident on the text mode display. A code indicating an indent tab follows which is represented in the text mode display by the rightwardly directed arrow graphic. Following that is a sequence of codes for a plurality of characters forming the next three lines of text, this sequence terminates with a CR, since the operator intends the line to terminate early, as is illustrated in any of FIGS. 11A-11D. Following this code is a byte for another line space. Thereafter, codes are inserted for the temporary left and right margins. Following the temporary margin codes is another sequence of codes corresponding to the text in the intermediate paragraph of the document; this sequence concludes with a required carrier return (RCR). This is used rather than the normal carrier return so that the effect of temporary left and right margins is terminated in the following portions of the text. This code is followed by a further byte for a line space. The last paragraph of text is initiated with several bytes for temporary tabs. After the tabs are established another text sequence follows, concluded by another required carrier return; this is used to cancel the temporary tab register set up immediately before this text sequence. After another CR code for a line space, the signature line is provided. This includes a tab sequence concluding with a required tab. Following that is several text characters concluded with a CR code. Because of the required tab, the line below the signature line begins at the same place as the signature line and this location in text is concluded by a further required carrier return, to cancel the indent tab. Thereafter, the author/typist initials appear followed by a CR. The last byte in the document memory is EOD indicating end of document. The manner in which operator input is stored in document memory to achieve a result illustrated for example, such as that shown in FIG. 12, and the manner in which a document memory containing a sequence such as that as shown in FIG. 12 results in the display shown in FIGS. 11A-11G will be explained in the following portions of the specification including a series of examples and description of associated flow charts. Before discussing the functions of the processor 20, in response to operator keyed inputs, in order to explain how the functions alluded to hereinbefore are actually achieved it is worthwhile to outline the functions performed by the processor. Thus, FIG. 13 is a simplified flow diagram of the processing, and FIG. 14 is a memory map of the processor's internal RAM. As shown in FIG. 13 the processor 20 goes through a sequence of steps in order to respond to operator key actuation to provide the operator with the appropriate display. The processor 20 is normally in a wait condition waiting key operation detection. When processor 20 recognizes key actuation, it determines at function 200 if a delete key is actuated (depressed/released). If it has been, the processor merely sets/resets a delete condition (a flag) at function 201 and returns to the wait loop to await further key actuations. On the other hand, if the delete key was not the actuated key, then the processor determines at function 202 if a coded function has been actuated. If it has been, function 203 processes this function, and may call other routines if necessary. The particular processing depends, of course, on the function itself. Following the processing, the processor 20 returns to the wait loop for additional key actuations. On the other hand, if function 202 did not detect actuation of a coded function key, then function 204 determines whether or not the machine is in the page image mode. If it is, function 205 determines whether or not it is also in the delete condition by checking the flag set back at function 201. If it is, then function 213 processes those delete functions which are allowed, and that concludes the processing in response to the particular key actuation. Function 206 and 215 relate to actuation of outboard keys, i.e., keys in the set 151 or 152 (see FIG. 2), and of course, the particular processing depends upon the particular actuated key. Function 208 operates on function key actuation, and in that event function 209 provides for insertion of the function at the appropriate location in document memory and perhaps in the display itself, and the processor returns to the wait loop. The location in which the function is inserted depends on cursor location, and perhaps on other factors which will be explained hereinafter. If, in the page image mode the key actuation was neither an outboard key nor a function, then it must be a character. As has been explained, the page image mode does not display unique characters and therefore it is not desirable to use this for text entry. Accordingly, in that event function 210 switches the display to the text mode, either for addition of text, if the cursor is located so as to continue typing into the document, or in the insert mode. When the condition stated above is true, function 211 will allow the character to be left in the keyboard queue (if untrue, the character will not be placed in the queue) and thereafter the processor returns to the wait loop. The processor 20 also supports strikeover typing where the operator keys in text over existing text (not in an insert mode). This action replaces the existing text, character for character, with the keyed in text. If back at function 204 it was determined that the machine was not in the page image mode, then function 212 (similar to function 205) is performed. If not in the delete condition, function 214 determines if the key entered was a character key. If so, function 217 stores the code corresponding to the character in the document memory at the appropriate location (of the cursor) and the machine returns to the wait loop. If not a character key, function 215 determines if it is an outboard key if it is function 218 is performed (similar to function 207). If not an outboard key nor a character, the key must be a function which is then stored by function 216 at the appropriate location. Not shown in FIG. 13, of course is the particular processing carried out in response to actuation of different keys, nor how the display is controlled in either text or page image mode. Prior to discussing particulars of the programming of processor 20 reference is made to FIG. 14 which indicates in a general fashion the manner in which internal RAM of the processor 20 is employed. Omitted from the memory map of FIG. 14 is the memory area allocated to program storage itself. Although in an embodiment of the invention which has been constructed, that program was present in the internal RAM, those skilled in the art will understand that is not essential to the invention since a program could also be stored in ROM. Initially, as the operator actuates various keys, coded signals corresponding to actuated keys are progressively stored in the keyboard queue 224. The processor 20 extracts codes from the queue usually in the order in which they are entered, and eventually generally stores the related coded signals in the document memory 222. During text entry, the machine is in the text display mode and to effect a text display, the processor 20 generates a text table (or table A), which is located in portion 221 of the RAM. In conjunction with generating the text table 221 and document memory 222, the processor 20 writes in a text RAM buffer 25 to effect a display in connection with the apparatus shown in FIG. 4. In the course of this processing, the processor 20 also keeps track of various parameters in a number of pointers, counters, etc., which are generally included in the RAM area 223. At any time in the course of text entry, or thereafter, the operator may select the page image mode. In page image the processor must format the entire document up to the page selected for display to determine how to format the page selected for display. Once this is accomplished the processor 20 reviews the contents of the document memory 222 and creates a page table (or table B) which is stored in portion 220 of the RAM. From the data stored in document memory 222 the processor 20 then writes in a page image RAM buffer 26, to effect the appropriate display. In a fashion entirely similar to the text display processing, the page image display processing also relies on a variety of pointers and counters from the RAM portion 223. The writing of page boundaries for a single page size is provided for in the logic of FIG. 10. Other page boundaries may, in the alternative, be displayed with the use of the OR memory 227. This is a 1K byte portion of RAM into which page boundaries of a selected size is written by the processor 20 on appropriate command. When writing page image RAM 26, the processor OR's each byte, as it is developed, with the corresponding byte of the OR memory 227. If desired, the logic of FIG. 10 could be eliminated and all page boundaries could be implemented via the OR memory 227. The particular page size written into OR memory 227, and from there to the display, is determined by software (or firmware), examples of which will be described. In the alternative the EDGE developing hardware could be modified to make it more flexible so it could generate a selected page outline from a repertoire of outlines. System Software In general the processing effected to write either text or page image display has similar purpose. The processor examines document memory in the vicinity of the cursor and based on a set of fixed rules (different for page image and text) displays sequentially the characters found and arranges the display (line endings, etc) based on a combination of mode and codes encountered. Since the text mode display is essentially unformatted, display of any portion of document memory can begin at any point. To the contrary, the page image display, since it is formatted, depends heavily on preceding text format to determine the location of the first character on a page as well as the margins in effect for the beginning of the page. If the document had previously been formatted (and if the format is not altered) the processor saves significant signposts to allow rapid writing of the page RAM 26. The information forms the page queue. If the page queue is not available or no longer accurate, it must be recreated before display can begin in page image for at least the portion of the document which precedes the displayed segment. The software which controls processor 20, to effect the functions briefly described above, and to be described in more detail hereinafter, can be divided into six segments. An interrupt processor (shown in FIGS. 15A-15C) the purpose of which is to respond to changes in the keyboard state, that is, depression and/or release of the various keys, and from this to build a keyboard queue for use by other routines. The main system program (shown in FIGS. 16.1-16.18) the function of which is to firstly respond to the keyboard queue and from that information, build the document memory, and call other routines as necessary to respond to the information passed or derived from the keyboard queue. A sentence processor, or text mode associated set of routines (illustrated in FIGS. 17.1 through 17.12) which, when called and based on information in the document memory, builds the text table referred to hereinafter, and in conjunction with the text table and the document memory writes into the text mode refresh RAM 25. A set of cursor routines (illustrated in FIGS. 18.1 through 18.11) which manage cursor position in both the text and page image display modes. A set of FAX or page image routines (illustrated in FIGS. 19.1 through 19.31) which, when called and in response to the document memory both build the page table and page queue referred to hereinbefore as well as write to the page image refresh RAM 26. And finally, a series of graphic routines (illustrated in FIGS. 20.1 through 20.12) which are used by the page image routines for the purpose of drawing page outlines other than the standard 81/2.times.11 page outline which is, in effect, "drawn" by the hardware referred to previously. The graphic routines also put up the tab grid, temporary margins, ghost cursors and active margin indicators, as well as first and last writing line indicator. The main function provided by the interrupt handler is to translate codes derived from the keyboard 10 into internal system codes, and store, in the order of receipt, the codes in a keyboard queue. The main system control program initializes various portions of the system hardware on power up, and thereafter is in a wait mode which is terminated when one or more signals are detected in the keyboard queue. The main system control program examines the contents of the keyboard queue in response to the particular contents of that queue either processes it itself, or calls other routines for processing, or both. These other routines can be divided into those routines directed to page image display mode, and other routines directed to text display mode. Both these groupings of routines respond to the various inputs, to alter the associated display if necessary in accordance with the input as well as in accordance with previously input text, functions, etc. Both of these groupings of other routines operate with the document memory, various page parameters such as left and right margins, number of lines on the page, etc. Both the text routines and page image routines, in the course of writing the associated text RAM or page image RAM also construct an associated table to speed up the processing, especially cursor control. Each of these tables is line organized, that is, there is an entry for each line on the display. In a first table (table A) which is related to text mode operations, the table includes 5 bytes per (display) line for the entire document, the first byte comprising 6 bits indicating a PAD distance (that is, the distance from the left edge of the screen to the first displayable character in the line) and two control bits, one indicating the presence of a carrier return (or required carrier return) in the line and the other indicating the presence of a sentence ending in the line. The second and third bytes for each line point to the location, in document memory of the first character on the line. The fourth byte indicates a quantity for an indent tab, if such exists on the line as well as bits indicating the presence of active temporary left or temporary right margins. Finally, the fifth byte is reserved for an indent amount on the line for any block in that line. The other table (table B), related to page image display, includes six bytes per line of the portion of the document on the display. The first byte includes seven bits for the quantity PAD, and a single bit indicating format change on that line. The second byte indicates the length of the line segment in character spaces. The third and fourth bytes point to the location, in document memory, of the first character for the line. The fifth and sixth bytes of an entry in table B contain the address to another entry in table B which describes an additional segment on the line, if any. INTERRUPT HANDLER FIG. 15 A-C is a flow diagram of the interrupt handler. As shown in FIG. 15A, on detection of an interrupt, the processor 20 determines the source of the interrupt, printer interrupts or recorder interrupts are appropriately handled by routines not disclosed herein. If the processor determines that the interrupt is neither printer, recorder or keyboard originated, it is considered an extraneous interrupt and is merely reset. On the other hand, when a keyboard originated interrupt is detected, processing continues at decision blocks 244-246. The first determines if a keyboard inhibit bit (flag) is on, which is set in the course of servicing a printer or recorder interrupt. If that is not the case, and if this is considered a normal keyboard interrupt, then the processing skips to function 247 (FIG. 15B). The normal keyboard interrupt is that whose source lies in a key depression or release. In addition, certain repeat key capabilities are provided when a key remains depressed, and this function is implemented by a timer on the keyboard interface, when enabled. Thus, decision block 246 determines whether or not the timer has been enabled due to depression of a particular one of a selected one of the keys on the keyboard 10. Function 247 determines whether or not the key is a make/break entry, meaning that a different code is generated on making as opposed to breaking. In either event, (functions 248 or 253) the keyboard interrupt code is translated to an internal code set. If the particular key made is not a make/break entry, decision block 249 determines whether or not it is a typamatic input. If it is such input, decision block 256 determines whether or not the keyboard queue is empty. If it is not, function 257 sets a flag to terminate page image processing early. Note however, that the code is not stored in the keyboard queue, this is to prevent storing a series of similar codes in the queue. If on the other hand, the queue is empty then decision block 258 determines if this particular character is an allowed typamatic (if it is not, this indicates the character is not a typamatic and no further processing is performed). If it is allowed decision block 250 checks to see whether the code key is depressed, and if it has been, function 259 sets the code bit. Regardless of prior processing, function 251 determines if this is a control entry, referring to a space, carrier return, tab, required tab or required carrier return. For any of these functions it is necessary to terminate the page image processing early, and therefore, function 260 sets a flag to this effect. In any event function 252 stores the translated code in the keyboard queue for processing by the main system program. Also illustrated in FIG. 15B is the processing performed in the event that the key depression is a make/break entry, subsequent to translation of the code to an internal code set and storage in the keyboard queue. Decision block 254 determines if the key depressed is the cursor key, if it is then function 255 enables the typamatic interrupt, that is enables the referred to timer, and that concludes this processing. Returning now to FIG. 15A, if decision blocks 245 and 246 responded to a make/break typamatic interrupt, then the processing performed is shown in FIG. 15C. If decision block 261 indicates that the code key is depressed, then processing is terminated, i.e. the interrupt is ignored. If the review key has been depressed, as determined at decision block 262, then function 264 merely disallows or clears the referred to typamatic or timer interrupt. If the review key had not been depressed function 263 resets the typamatic interrupt bit and will store the previously entered cursor code on the keyboard queue if the queue was empty, otherwise the code is not stored. Reviewing FIGS. 15A to 15C, it will be seen that a keyboard queue is built, in fesponse to sequential key actuations of the keyboard 10. Under certain conditions flags will be set to terminate page image processing early, the effect of this will be seen as this description proceeds. Referring now to FIG. 16.1 through 16.18, and especially FIG. 16.1, functions 265 through 269 are performed only on power on or reset. As illustrated, these functions provide for initializing the apparatus including appropriate internal status pointers, document memory, the text and page image refresh RAMs, the "OR" memory as well as setting up the CRT controller parameters for the page image mode. Function 269, to complete the initialization operation calls the routine KBFAXSET which itself calls KBPAGEIM (the latter shown in FIG. 16.12). Set up of the CRT controller merely refers to passing certain parameters to that chip so that it will appropriately coact with the other devices to refresh from the page image RAM 26. Once the processor returns from the routines called at function 269, function 270 is performed to check the key board queue, if empty, the processor remains at function 270 until the keyboard queue has one or more codes therein for processing. If the queue is empty FAX messages, if any, are dequeued and displayed. TEXT DISPLAY MODE In order to describe the manner in which the routines illustrated in FIGS. 15 through 21 operate in the text display mode, those functions will be described including writing to the text refresh RAM, and in that regard, effecting cursor movement in response to actuation of the various cursor movement keys, providing for word underscore, delete word underscore, character underscore, delete character underscore as well as scrolling. Before beginning the discussion some terms will be defined to assist the reader in understanding the description. Firstly, the processor 20, in the text mode, supports a number of registers, the majority of which are internal to the processor RAM. The one external register is STATUS (corresponding to the status latch 50 (FIG. 4). The following internal registers shown in the table below maintain the quantities identified opposite their name in the table.
______________________________________
Register Function
______________________________________
ITABPOS Indent tab position
INDEXPAD Quantity or amount to pad
for index found on
previous line
SENTPTR Pointer to next unfilled
location in text refresh
RAM
WORDLEN Counts length of word du-
ring a look ahead to see
if the word will fit on
the current line
WORDCTR Counts the length of a
word as the word is dis-
played
CHARCTR Counts the number of
characters that have been
displayed on the current
line
DOCPTR Pointer to the address in
document memory of the
next character that has
not yet been displayed
TABAPTR Pointer to the text ta-
ble (table A)
LPAD Amount to pad with spaces
from the left edge of the
display to first display-
able character
LINELEN The maximum length of a
line on the display
______________________________________
For this description we will assume that the machine is in text display mode, and that the operator is keying in characteris or functions. In initially keying in a document the operator actuates key 123 (T) in concert with key 137 (code); resulting in a "coded T". This is recognized by KBINTROT and stored (function 252 FIG. 15B) in the keyboard queue. the main system recognizes the entry (function 634 FIG. 16.2), sets DOCPTR (function 635) and, if in text mode calls KBSENTEN (function 638) (FIG. 16.3). The latter is illustrated beginning at FIG. 17.1. There, functions 638-641 initiali | ||||||
