CA1048158B - Automatic data composing editing and formatting system - Google Patents

Automatic data composing editing and formatting system

Info

Publication number
CA1048158B
CA1048158B CA310,475A CA310475A CA1048158B CA 1048158 B CA1048158 B CA 1048158B CA 310475 A CA310475 A CA 310475A CA 1048158 B CA1048158 B CA 1048158B
Authority
CA
Canada
Prior art keywords
storage
block
line
character
cursor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA310,475A
Other languages
French (fr)
Inventor
Paul E. Goldsberry
Jack W. Simpson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CA063,905,A external-priority patent/CA951827A/en
Priority claimed from CA185,939A external-priority patent/CA954225A/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CA310,475A priority Critical patent/CA1048158B/en
Application granted granted Critical
Publication of CA1048158B publication Critical patent/CA1048158B/en
Expired legal-status Critical Current

Links

Landscapes

  • Record Information Processing For Printing (AREA)
  • Document Processing Apparatus (AREA)

Abstract

ABSTRACT OF THE DISCLOSURE

A data composing, editing and formatting system for use in business offices by typists and composers of buisness letters and documents. A cathode ray tube display is utilized to display keyed data and data inputted by a secondary is utilized to display analogous to the display of a page of typed data on a typewriter.
Once the data is so inputted, additional data can be inserted at a point defined by the operator without any resulting loss of infor-mation, word integrity, columnar definition or paragraph designation.
Additionally, data can be deleted and the data located down page from the deleted data will shift up page to fill in where the deleted data was located without loss of paragraph designation. Text modification controls further include data centering within defined margins, transfer of data from one page position to another without loss of data or paragraph definition, automatic adjustment of the data to conform to new margin settings and a unique huphenation operation.

Description

s~
1 Cross-References to Related Applications The following applications are assigned to the same assignee as the present application.
Canadian patent application serial No. 12026, filed September 9, 1968, entitled "Data System with Printing, Composing, Communications and Magnetic Card Processing Facilities," Robert A.
Kolpec, inventor.
Canadian patent application serial No. 996,003 file July 21, 1967, entitled "Electronic Counter," Louis M. Hornung, inventor.
Canadian patent application serial No. 63,108 filed September 25, 1969, entitled "Electronic Statistical Typing System,"
Robert A. Rahenkamp and William R. Stewart, Jr., inventors.
Background of the Invention (1) Field This invention relates to an automatic data composing, editing and formatting device, and more particularly, to an improved electronic display device having facilities therein to effect ready changes in the content and format of the data displayed and which is designed for the optimum operation of a serial printer.
(2) Description of the Prior Art The preparation of modern business documents often involves typing and editing several drafts of the document before it is complete, correct, and presented in a format that is both readily understandable and aesthetically pleasing to the eye of the reader. The steps of preparing :

5~

1 a final printed copy of a document often entail: (1) Typing 2 a rough drafc from raw data J dictation equipmcnt, or notes;
3 (2) deletions, insertions, rearran~ement and corrections 4 by an editor; (3) retyping, using the edited rough draft as a source of information; (4) re-editlng to 6 insure correctness and to insure aesthetic perfection;
7 (5~ retyping as necessitated by step (4); (6) re-editing 8 to insure correctness of the final copy.
9 As can be seen from the above, each time infor-mation is typed, it must be re-read and perhaps edited to 11 insure that it is correct, and each tlme that it is edited, 12 it must be retyped. This process is extremely tîme con-13 suming inasmuch as the secretary's time is lost in re-14 typlng while the editor's time is lost in re-editing.
Several devices have been proposed and utilized 16 which shorten the amount of time lost in retyping and 17 re-editing business documents. One prior art approach 18 has been to record each of the characters typed on a 19 secondary media such as paper tape or magnetic media as the first draft of the document is bein~ prepared.
21 The typed copy is then e~amined and editQd by the editor 22 and ~eturned to the typist with the corrections to be 23 ~ade noted thereon. The secondary media is then selec-24 tively utilized by the typist to con~rol the type~riter so that it ~ill automaticaily print out the information 26 contained in the first draft. The typlst must control 27 the playout of this informatlon, stoppin~ it ~here 28 necessary to maike proper insertions and deletions in ~g~s~
1 accord~nee Witll the instructions of the editor thus 2 pr~vid~ng a sccond draft of the document. Since it is ~ possible ~or the typist-opera.or to make a mistake in the 4 preparation of the secon~ draft or for the editor to cilange its form or content, it is necessary to have an 6 additional secondary media station to record the characters 7 as they appear on tne second draft. The ~second draft is 8 then sen~ to the editor and the process continues in much 9 the same manner until the desired final copy s printed.
~ile such prior art devices reduce the ~rorkload of the 11 typist and the number of typing mis-akes since the typist 12 only has to key the edited material, these devices require 13 a nig}lly skilled operator to keep trac~ of and to operate 14 with the secondary media. Additionally, these devices do not appreciably reduce the workload of the editor.
16 A second type of prior art device l~nich }]as been 17 utilized ~o edit and correct keyed data is an electronic 18 display device. These devices generally nave a cathode 19 ray tube (CRT) display WiliC]I displays information keyed into the device from an associated ~eyboard or which is 21 proviaed ~y an electronic computer system. Once the 22 information is displayed, corrections to the displayed 23 data can be made by the operator. Sucll corrections 24 include entry of new data, deletion of e~isting data or insertion of ne~ data. These display devices are of 26 two types, the so-called "programmed" device and the 27 "stand ~lone" device. Tile "program~ed" device has a ' '''- ~IF
': :

r - ! ~048158 1 CRT st;;tion containing storage addressing controls, CRT
2 controls, and a keyl)oard. Tlle data is entered from the 3 key~oard or other me;lns into the central processor of a 4 remote computer whic]~ is programmed to receive tlle dat., and store it. The data so stored is then sent bac~ to 6 the CRT station to be displayed on tile CRT display. Tlle 7 placement of the data on the CRT screen is controlled by 8 the program which con-trols the central processor. An 9 example of such a device is the IB~I Z260 data communica- -tions and display device no~ in public use.
11 A "stand alone" device differs from the programmed 12 device inasmuch as all of the control electronics necessi-13 tated to effect data editing are located at the console 14 with tlle keyboard and CRT display. These devices gener-ally have their own bulk storage ~-herein the characters ~ to be displayed are stored in some convenient code form 17 such as modified binary coded decimal. Once ,lle infor-18 mation content lS believed to be correct, the data in l9 the bul~ storage is transmitted to a central processor~
The central processor can then cause subsequent print-21 out of tlle in~ormztion. Sucil a sys.em is e~empli~ied 22 in U. S. Patent 3,248,705 entitled, "~utomatic Editor"
23 and assigned to the assignee of the present invelltioll.
~4 It is noted that the "programmed" devices as set forth above do not lend themselves readil)~ to utiliza-26 tiOII by tlle average business office since they require 27 large scale data processing units tv accompany tllem 1 Further, both the "stand alone" and "programmed" devices described above are oriented toward the computer user inasmuch as line size, margins, length of insertions and deletions~ and the final format of the output document are dictated by constraints placed on the system by the computer and canrot readily be changed by the opera- -tor of the keyboard device. Additionally, since the prior art electronic display devices require t:he operator to communicate with the computer to effect changes in the stored information, the operator must learn the computer format. Further~ a large computer storage facility is necessitated to store the many documents keyed in and the computer must have indexing and addressing controls to uniquely locate each document. Thus, as is readily apparent, none of the prior art electronic display devices are oriented toward the business user.
As already noted, it is often desirous to change the format of a business document so that it creates a favorable impression to the reader. Margins, paragraph spacing, arrangements of head-ings and order of paragraphs are often changed to provide a more effective communication. None of the prior art devices described above provide a ready means for the editor or operator to experi-ment with and change the format of a business document.
Summary In order to overcome the above noted shortcomings D-LE9-67-0~6 -6-'~

48~S8 1 of tlle prior art, the present invention provides an 2 information edi~ing and dis~lay clevice wherein inform.ltlon 3 can readily be keyed into the device by a typist ~ho is 4 unskilled in the data processing arts.
The keyed information can be altered by the typist 6 to correct obvious typographical errors and then trans-7 ferred to a secondary storage media such as a magnetic 8 card or magnetic tape storage media. Once the informa-9 tion has thus been recorded, the display device can be utilized for the typing of a different document. At a 11 later time, the information stored on the secondary 12 storage media can be read back into the display device 13 and the information so entered can be displayed to and 14 edited by the editor. Further, the editor can at ~his time change the format of the information displayed by 16 adjusting margins, centering the information within the 17 existing margins, changing the paragraph or line order, 18 inserting headings, changing line endings, as for e~ample, 19 by hyphenating words to obtain an even right-hand margin, or by putting the information into colwlmar form as lt 21 would appear, for example, in a newspaper or boo~
22 publications. Oncc the information is edited and 23 formatted, it is ready for typing in final form. This 24 can be done by connectino an output printer to the display device or by recording the informatlon so 26 edited once again on the secondary media, and later 27 utilizing tlle second~ry media to effcct a print-out r r 1 on a different device.
2 In order to facilitate rapid typing and editing 3 of information in varied format form~ the display 4 device of the present invention operates in four basic modes: replace, delete, insert, and close. l~hen opera-6 ting in the replace mode, information keyed in is 7 sequentially stored starting at a page location defined 8 by the operator. When in the delete mode, information 9 that has previously been stored is replaced with blan~
spaces. When in close mode, information located do~n 11 the page from a predetermined point can be closed to 12 that point with all intervening information being de-13 stroyed. When in insert mode, information can be keyed 14 in a~ any predetermined point without a resulting loss in information as long as there is less than a page of 16 information in the total document. Thus, in insert mode, 17 only the information content at the page ending is 18 affected, and all paragraphs remain intact.
19 As is often the case in typing a business letter, the margins differ throughout the page. This is particu-~l larly true where various paragraphs are indented and ~here 22 columnar information is to be presented. A unique feature 23 of the present invention is that a plurality of margin 24 stops, each of which may be associated with a vertical position on the page to be typed can be stored for 26 later activation by the operator. Sevcral sets of 27 margin stops can be associated ~itll a single vertical D-LE9-67-0~6 r ~

1 position on a page. thereby cnabling thc typist to 2 rapidly typc columnar information. For,example, the 3 typist would type all the information .~hlch lS to ,~ ~ppear within a column defined by the first set of margin stops, then activate the second set of margin 6 stops and the information subsequently typed ~ould be 7 stored along-side of the first column of information 8 within the margins defined by the second set of stops.
9 An additional unique feature is that a serial printer can be connected to this device which will interpret 11 the intermediate margin stops as tab stops, thereby 12' printing the information within different columns 13 defined by margin stops across the columns serially, 14 from left to right.
As m,entioned above, it is often desirous to change lo the existing margins of printed data to change the 17 aesthetic effect of the document. A unique feature of 18 the present invention is that the existing margins or 19 information which has been keyed into the device can be expanded or contracted and the information reformed 21 to fit within the ne-- margins. This operation is per-22 formed a line at a time or a paragraph at a time, therebv 23 enabling one to maintain a plurality oE different margin 24 endings for the final document. An additional feature of the present invention'is the utilization of a unique 26 hyphenation routine ~hich maximizes the number of symbols 27 per line and allows tlle operator latitude ln determining D-LE9-67-û36 ~ - ~r~

8~515 1 line endings and Eurther enables the operator to 2 eliminate unwanted "rivers" and "bays" ~hich are 3 formed by the arrangement of space characters 4 which occur in the text.
The foregoing and other features and advantages 6 of the invention will be apparent from the following 7 more particular description of the preferred embodi 8 ment of the invention as illustrated in the accompany-9 ing drawings.
IN THE DRAWINGS:
11 FIGURE 1 is a schematic block diagram of the 12 automatic data composing, editing, and formatting 13 system of the present invention.
14 FIGURE 2 is a diagramatic view of the control and data keyboards of the system of FIGURE 1.
16 FIGURE 3 is a detailed schematic block diagram 17 of the automatic data composing, editing and formatting 18 system of the present invention.
19 FIGURES 4(a) and 4(b) are schematic block diagrams of the cursor positioning logic which controls the 21 placement o-f a marker symbol on the display device.
22 FIGURES S(a) and 5(b) are state diagrams of the 23 sequence of operations effected by the system of 24 FIGURES 1, 3, 4, and 15 during margin formatting operations.
26 FIGURES 6(a), 6(b), and 6(c) are state dlagrams 27 of the sequence of system operations effected during - - 1 0 - .

i; . . . .

8~58 1 an insert mode operation.
2 FIGURE 7 is a state diagram o-f the seqllence of 3 system operations effected during a cursor advance 4 operation.
FIGURE 8 is a state diagram of the sequence of 6 system operations e-ffected during a replace mode of 7 operation.
8 FIGURE 9 is a state diagram o-f the sequence of 9 system operations effected during a delete mode or underscore operation.
11 FIGURES lO(a) and lO(b) are state diagrams of the 12 sequence of system operations effected during a closure 13 mode of operation.
14 FIGURE 11 is a state diagram of the sequence of System operations effected during a text centering 16 operation.
17 FIGURE 12 is a state diagram of the sequence of 18 system operations effected during a hyphenation 19 operation.
FIGURES 13(a) and 13(b) are state diagrams of the 21 sequence of system operations effectecl during a line 22 transfer operation.
23 FIGURE 1~ is a state diagram of the sequence of 24 system operations ef-fected during a margin adjust operation.
26 FIGURES 15(a), 15(b), 15(c), 15(d) and 15(e) are 27 schematic block diagrams of the control logic utilized D-LE9-67~036 r ~

48~

1 for the margin adjust operation of FIGURÆ 14.
FIGURE 16 is a timing pulse diagram of timing 3 pulses applied to the block diagram of FIGURE 15.
4 FIGURE 17 is a schematic block diagram of the out-put control logic of the data composing, editing and 6 formatting system o-f the present in-vention.
7 FIGURE 18 is a de~ailed schematic block diagram 8 of the output control logic of FIGURE 17.
9 FIGURES l9~a), l9(b), l9~c) and l9(d) are state diagrams of the sequence of system operations effected ll during a data output operation.
12 FIGURES 20(a) and 20(b) are state diagrams of the 13 sequence of system operations effected during a printer 14 format set up operation.
FIGURE 21 is a representation of a data character 16 as it is displayed on the display device of FIGURE l.
17 FIGURE 22 is a schematic block diagram o-f the 18 display device of the present invention.
D-LE9~67-036 , .

,~
' i . , j . , .. ,~....... .

8~58 TABLE OF CONTENTS
PAGE (COLUI~IN) Gener~l Description 14 (A) Cursor Control 15 (B) Format Control 16 ~C) Text Content Control 17 (D) Text Modification Control 18 (E) Input/Output Control 21 Detailed Description 24 (Aj General Data Flow 24 (B) Cursor Control 31 (C? Format Control 40 (D) Text Content Control 50 (1) Insert Mode 51 (2) Replace Mode 80 ~3) Delete Mode 85 (4) Closure Mode 89 (E) Text ~lodification Control 101 (1) Underscore Control 103 (2) Center Control 104 (3) Hyphen Control 106 (4) Transfer Line Control 113 (5) Margin Adjust Control 118 (6) Logic Implementati.on of Margin Adjust Control 127 (F) Input/Output Control 147 (G) Display Control 161 ~' s~ :

1 General Description 2 Referring now to the drawings and more particularly, 3 to Figure 1 thereof, a block diagram of the automatic 4 data composing, editing, and formatting system of the present invention is shown. This device includes an 6 electronic storage unit 9 for electronically storing 7 information to be edited and formatted. The information 8 thus stored is visually displayed to the machine operator 9 by a cathode ray tube (CRT) display 11 which displays the information as it would appear on a printed page. That 11 is, up to a page of information can be displayed as a 12 plurality of successive lines of information, the width 13 of each line depending upon the margins desired by the ~ operator. Text information is inputted into the electronic storage unit 9 either by an input device 13 16 or by the data keyboard 15. The input device 13 may be 17 a paper tape reader~ a magnetic media reading device, 18 or any other secondary media reading device. An example 19 of a magnetic card reading device which could be utilized as an input device is described in the aforereferenced 21 copending application of Robert A. Kolpek. The input 22 text data typically is in the form of coded items whic]l 23 represent characters, spaces, and typographical opera- ¦
24 tions, a sequence of which forms words, sentences, and paragraphs.
26 A function keyboarcl 17 is utilized by the operator 27 to control the operation of the data composing, editing, . .

- ~l 5~
1 and formatting device. Five major operations of the device 2 can thus be controlled: cursor control, format control~
3 text content control 5 text moclification control, and 4 input/output control. Referring briefly now to FIGURE 2 of the drawings, a diagramatic view of the data keyboard 6 lS and a detailed diagram of the function keyboard 17 is 7 depicted~ The data keyboard 15 is similar to a standard 8 typewriter keyboard. The function keyboard 17 consists of 9 five major -functional groups o-f keys 17A to 17E correspon-ding to the five major operations. The keys within block 11 17A are utilized by the operator for cursor control, those 12 within block 17B for format control, those within block 17C for text content control, those within block 17D for 14 text modification control and those within block 17E for input/output control. In the description which follows, 16 a general summary of the operations effected by the various 17 function keys will be grouped according to the major f 18 operation which they correspond to. Reference will be 19 made in general to the function keyboard 17 of FIGURE 1, it being understood that reference to a particular key of 21 the function keyboard refers the reader to FIGURE 2.
22 ~A) Cursor Control 23 Referring once again to FIGURE l; cursor control 24 refers to the placement of a visual identification means with respect to text information displayed on the CRT
26 display 11. In the description W]liCh follows, a cursor D~LE9-67-036 '' `, :
.

33L5~
1 19, whlch is an electronically illuminated spot appearing 2 on the CRT display will be clescribed as the vlsual lclen-3 tification means. The cursor specifies the point of 4 action :Eor most operations visually to the operator and electronically to the electronic storage unit 9 and its 6 controls. For example, it specifies where the next 7 character keyed on the data keyboard 15 wlll be placed 8 with respect to other characters when in a character re-9 place or insert mode of operation.
Manipulation of an appropriate key on the functlon 11 keyboard 17A activates the control unit 21 which causes 12 the cursor mark 19 to move left or right, up or down, 13 one character at a time or in a multiple character scan 14 in accordance with the degree of depression of the selected key. An additional control located on the 16 cursor keyboard 17A enables the operator to control the 17 scanning speed rate of the cursor to conform to the 18 operator's mental and visual scanning rate. The 19 location of the cursor 19 at a coordlnate position on the CRT display 11 is defined by the cursor control 21 logic 21 which forms a part of the control unit 23.
22 The cursor control logic also defines the coordinate 23 position in the storage unit 9 which contains the 24 text information located adjacent to the cursor 19 on the CRT display 11 to the storage address unit 26.
26 (B~ Format Control 27 Format control effected by the function keyboard 5~
1 17 enables the operator to specify -the format whlch the 2 text information will conform to. Format control implies 3 those operations that define the beginnlng and endlng of 4 lines (margins), tabulation stops, the vertlcal selection of a starting line, and control of paragraphs. The pur-6 pose of these controls is to organize the text for appear-7 ance and readability and to control the format operatlon 8 of the output printing device. The format control unit 25 9 is responsive to the -function keyboard 17B to insure that the text data in the storage unit 9 conforms to the pre-11 scribed format.
12 The format control unit 25 also controls the display 13 of paragraph marks 27 and display marks 29 on the CRT
14 display 11. The paragraph marks indicate the start of a new paragraph and the display marks indicate the location 16 of the margin stops of the line of text information 17 addressed by the cursor.
18 (C) Text Content Control 19 Text content control refers to those operations which cause the content of the text information located in the 21 storage unit 9 to be changed. It has been described hol.
22 text information may be entered into the storage unit 23 from the input device 13 or the data keyboard 15. The 24 text content control keys of the function keyboard 17C
control ~hicl~ of the four modes of operation, insert mode, 26 replace mode, delete mode, or close mocle, ~ill be effected during entry of keyed lnput text data.
D~LF.9-67-036 , , .

.

\

315~

1 When in insert mode, cocled text characters which are 2 keyed are sequentially cntered and storecl at the storage 3 locations defined by the cursor locations without any ;- 4 resulting loss of previously stored inforn~ation. The previously stored information automatically shifts to 6 the right and down page. After each operation is com-~- 7 pleted, the number of words appearing on each line of - 8 the display are optimized and no word is split or trun-9 cated. Additionally, all paragraphs remain intact. When operating in the replace mode, keyed text data is sequen-11 tially stored starting at the initial cursor location.
12 As when in insert mode, the cursor advances to the right 13 and down page as information is keyed. When in delete 14 mode, the character located at the cursor location is r ~ 15 replaced with a blank. When in close mode, information 16 located down page from a predetermined location can be 17 closed to a second storage location located up page 18 from the first storage location with all intermediate l9 information being destroyed. The mode control unit 31 is responsive to the function keyboard 17C to control 21 the internal manipulation of data in the storage unit 9 22 in accordance with the text content contro]. operation : 23 defined by the operator.
24 (D? Text Modification Control Text modification control describes those controls 26 which are used after making text content corrections to modify text conformation and order. There are five such D~LE9-67"036 ' :.

r ~43~S8 1 controls, each of which contributes to the effectiveness : 2 of display typing: underscore, center, hyphen, transfer 3 line, and margin adjust.
4 The underscore control provides swift means of marking symbols that are to be printed with underscore 6 symbols. The procedure requires placement of the cursor 7 at the symbol to be underscored or at the left symbol of 8 a word that is to be underscored. Next, the underscore 9 control key on the function keyboard 17 is selected.
Underscore is accomplished as the cursor is moved past 11 one character or several characters of text under the 12 control of the cursor control keys also located on the 13 function keyboard 17D. By moving the cursor down page, 14 complete lines may be underscored. The delete under-score key functions in a similar manner to remove 16 underscores.
17 Center control moves a line of text so ~hat it 18 centers about the column central to the selected margin - 19 stops or the column immediately right of center of the ~; selected margin stops. The procedure for effecting ; 21 center control is first placing the cursor at the line 22 which is to be centered and then selection of the center 23 key on the function keyboard 17D. The procedure is re-24 peated if a multiple number of lines are to be centered.
~- 25 Hyphen control is used to conditionally hyphenate 26 a word. The procedure is to place the cursor under the 27 first symbol of the syllable that is to remain in the .

1 line it occupies. Upon selection of the hyphen key on 2 the function keyboard 17D the first part of the split 3 word is tested for fit into the voicl ending the previous 4 line. The void is defined as the space existing between the last character and the right hand margin. A fit 6 results in transfer of a space character, the first part 7 of the split~off word and the writing of the special 8 hyphen symbol following the split~off syllables ~nto the g void. No shifting occurs when the fragment word exceeds the line space remaining in the preceding line. A
11 special symbol is used so that upon subsequent shifting 12 operations causing the hyphenated word to move downward, 13 the hyphen may be removed and the word rejoined. Text is 14 automatically closed following hyphenation.
Transfer line control causes shifting of a selected 16 line from one section of text to another, and the shifting 17 of intervening text to accommodate the line transfer. The 18 transfer procedure starts by marking the "To Here" address 19 by placement of the cursor and the use of the "To Here"
key on the function keyboard 17D. The cursor is then 21 moved to the line that is to be transferred, then the 22 transfer line key on the function keyboard is selected.
23 Transfer is then accomplished, line by line, through the 24 use of the cursor key. The trans~er may be up page or down page and include successive lines of text, the "To 26 Here1' address being automatically updated.
27 Margin adjust control is used to change the margins D-L~9-67-036 . .

, ~L~48~S~
1 containing a section of text so that the lines may be shortened, lengthened, or repositioned upon the page 3 horizontally. The start o-f the procedure in effecting 4 this control is to position the cursor at the first line of text that is to be readjusted. The margin adjust key 6 on the function keyboard 17D is clepressed. The new margins 7 are then marked using the cursor and the set right and 8 set left stop keys on the function keyboard 17~. Control-9 wise the new margin group is stored in a special part of memory and the old margins are entered into the active 11 margin registers. The text line between the old margins 12 is adjusted to fit the new margins, line by line, as the 13 cursor is moved downward, line by line. Text below that 14 which was adjusted is closed or shifted downward as re-quired by the margin adjustment operation.
16 (E) Input/Output Control 17 Once information has been composed, edited, and for-18 matted, it is usually desirous to make a permanent record 19 of the information so recorded. An output device 33 is provided to receive information from the electronic 21 storage unit 9 and to either record the information in 22 the form of a printed document ~an example of such a de-23 vice would be a typewriter) and/or to make a sccondary 24 record of such information (an example of such a device would be a paper tape punch or a magnetic recording clevice).
26 In either instance, the output of the display 27 typing system is designed for the optimum opcration of a D~LE9-67-036 1 serial printer. Control signals are generated by the 2 output control unit 35 which is responsive to the function 3 keyboard 17 to cause symbol printing, tabulation, carrier 4 return, indexing, tab set, and tab clear. This arrange-ment allows unattended printer operation except the initial 6 placement of continuous printing paper into the printer.
7 The output control unit 35 is designed to -free the 8 storage unit 9 periodically for output. Output control is 9 begun by depressing the print control key on the -function keyboard 17E. Each line of the storage unit 9 is scanned 11 until a print symbol is detected or until the line is 12 completely searched. The control decision will be print 13 a symbol, space, tab index, or carrier return according 14 to the content of the line, efficient use of printer, and the column address for output. After a line of 16 symbols has been transmitted, the next line will be 17 addressed and the scanning procedure repeated. The in-18 crementing of scan lines is terminated when form length 19 has been exhausted or the end of the page of storage has been reached. The storage and switching operates at 21 a much greater speed than output so that input may over-22 lap printing as storage is freed line by line after com-23 pletion of its output cycle. Display typing controls 24 are inhibited from the storage area not yet processed for output.
26 A second output control is termed set printer stops.
27 A carrier return signal is transmitted to the o~ltpU-t unit.

.

;

1 Thereafter, a tab set or clear code followed by a space 2 code is transmitted to the output device. This process 3 is repeated until all of the tab stops and margln stops 4 stored in storage unit 9 are read. A tab is set at each columnar position at which a tab or left margin mark 6 exists in the format storage.
7 An "enter" key is also provided on the function key-8 board 17E which allows the operator to enter both data and 9 format information into the storage unit 9 from the input device 13. A special character transmitted from the 11 input device indicates the beginning and ending of format 12 information.
13 A further output control operation is effected by the 14 CRT control unit 37 which controls the display on the CRT
display of characters stored in coded form in the storage 16 unit 9. If an entire page of information is to be dis-17 played, each text item is gated from the storage unit 918 under the control of the display address register 39 to 19 the CRT control unit 37 in a defined sequence. This sequence is dependent upon the manner in which the characters are 21 generated on the CRT display 11. For example, it may be 22 desirous to display each entire character sequentially or 23 it may be desirous to display only a portion of a plurality 24 of adjacent characters. If the entire page is not dis-played, then a plurality of lines adjacent to the line 26 addressed by cursor mark 19 can be displayed. In any 27 instance, the characters to be displayed are gated to the D~LE9-67-036 ~8~S~

1 CRT control unit 37 which decodes each character into 2 a series of blank and unblank control signals which 3 contro] the turning off and on o-f the CRT electron 4 beam Conventional CRT sweep controls are utilized to control the placement of the CRT beam with respect to the 6 CRT screen. These signals are synchronized with the CRT
7 control unit in a conventional manner to insure the recor-8 ding of an intelligible pattern on the CRT screen. Thus, 9 as can be seen from the above description, the operator can key in data or text information by depressing key-11 buttons located on the data keyboard 15 or information 12 may be inputted by input device 13. Control information 13 can be inputted by input device 13 or by function keyboard 14 17 The control information ~a) specifies the storage location to which information may be inputted on the in-16 formation line which will be operated upon, (b) specifies 17 the format that the data information is to con-form to, 18 (c) specifies the mode of operation for text content 19 changes, ~d) specifies text reformatting operations, and (e) controls input and output operations.
21 Detailed Description 22 ~A) General Data Flow 23 Referring now to FIGURE 3 of the drawings, a more 24 detailed block diagram of the electronic storage unit, the addressing circuitry, and the inpllt and output data paths 26 of the data composing, editing and formatting system are 27 depicted. As described above with respect to FIGURE 1 .

- ~4~

1 information is transmitted to an electronic storage unit 2 9 where it is stored -for display and revision. The 3 electronic storage unit 9 includes a forrnat storage 4 portion 51, a page storage portion 53, a working storage portion 55 and two special storage portions 9 row 1 storage 6 57 and row 2 storage 59. In the description which follows, 7 each portion of the electronic storage unit 9 will be 8 described as performing certain functions. Ik is, of 9 course, understood by those skilled in the art that each portion of the electronic storage unit 9 has been arbi-11 trarily selected to perform certain -functions.
12 The format storage portion 51 of the electronic 13 storage unit 9 is utili~ed to store format infor~ation 14 which will control the format that the data information or text characters will conform to. Included in the 16 format information stored are sets of margin stops, tab 17 stops, and paragraph definition marks. Each set of margin 18 stop information thus stored contains a left-hand boundary, 19 a right-hand boundary, and a vertical position. There are sixteen such sets of margin stops which are addressed 21 sequentially as will be described, only one set being 22 activated at any one time instant. The activated margin 23 stops are contained in a register ~not shol~n) and confine 2~ the cursor to positions intermediate the stops.
As mentioned above, tab information is also stored 26 in the format storage 51. Two sets of tab information 27 are required to be stored: an input tab set and an output D-LE9-67~036 -~L~348~
1 tab set. Briefly, the input tab set is generated by the 2 operator who de:Eines tab stops at predetermined horizontal 3 locations of the display in much the same manne~ that tab 4 stops are set on a typewriter. That is~ tab stops are set by positioning the display cursor at a required stop 6 column on the display (not shown) and selecting the "tab 7 set" key on the function Xeyboard 17B of FIGURE 2. Each 8 of the input tab stops are stored in the format storage 9 51 in the form of flag bits, there being a flag bit location for each horizontal position of a line of display, ~ -11 The output tab stops are utilized to control the out-12 put printer. These tab stops correspond on a one for one 13 basis with the input tab stops and also correspond with 14 each left-hand margin stop stored in the format storage.
For example, each of the sixteen sets of margin stop 16 information contain left~hand boundaries, there being 17 sixteen corresponding output tab stops set in format 18 storage 51. In addition to the sixteen output tab stops 19 corresponding to the left~hand margin stop information, there would be a number of output tab stops corresponding 21 to the input tab stops. The output tab stops are also 22 in the form of flag bits which correspond with each 23 horizontal position of a line of print.
2~ Special paragraph formatting in-formation is also stored in format storage 51. This informa-tion in the 26 form of paragraph marks is stored -to the left of each 27 line of text information which corresponds to the start ' :
' '' ,. ., . ' , .

-5~
1 of a paragraph. Since a paragraph could start on any 2 line in accordance with the desires of the operator and 3 the information content, it is necessary to have a number 4 o -format storage locations corresponding to the number of lines of information that could be stored in page storage 53 to store paragraph marks. The paragraph marks 7 are stored when the operator positions the cursor on the 8 desired line and depresses the "paragraph" key. Thus, 9 depression of the key labeled "paragraph" causes a paragraph mark to be stored in the format storage 51 at 11 a line address corresponding to the cursor line address 12 only if no such mark were previously stored -there. If a paragraph mark was previously so stored, depression of 14 the "paragraph" key would effect its removal. Additionally, a "cursor return" key (not shown) located on the character 16 keyboard 15 of FIGURE 2 can be utilized to cause the cursor 17 to move to the left stop, index down one line, and cause 18 a paragraph mark to be stored at a location in the format 19 storage 51 corresponding to the line indexed to. Repeti-tive operation effects storage of blank lines.
21 In the descri.ption immediately preceding, the type 22 of information stored in the format storage 51 was described.
23 The description which follows relates to the type of infor-24 mation stored in the page storage 53, the row 1 storage 57 the row 2 storage 59, and the working storage 55.
26 The page storage 53 is utilized to store text 27 characters and is constructed so as to correspond on a .

.. . . . . . .
.
.. ~ . ~ . .

f ~4~
1 line for line basis with a page o-f information content.
2 That is, the page storage consis-ts of a plurality of lines 3 of storage, each line of storage consisting of a plurality ~ of discrete positions capable of storing a character. The maximum number of characters that can be stored within a 6 line of storage corresponds to the maximum page width 7 desired. Each character position of the page storage is 8 located at a unique coordinate position. For example, 9 the fifth character that could appear in the fifth line of the page storage 53 would have an X coordinate position 11 of five corresponding to the fact that it is the fifth 12 character in the line and a Y coordinate position o-f five 13 corresponding to the fact that it is in the fifth line.
14 The unique position has been labeled with an "X" 61.
As will be seen hereinafter, the page storage 53 corres-16 ponds on a one for one basis with the displayed information.
17 Row 1 storage 57 and row 2 storage 59 each comprise a 18 single line of storage with a number of characters corres-19 ponding to the number of characters in a line of page storage 53~ These storages are utilized -for the temporary 21 storage of characters from the page storage during certain 22 control operations.
23 Working storage 55 comprises a plurality of storage 2~ positions for storing unique values needed to accomplish the data editing and formatting functions. E~amples of 26 the information stored in the working storage are: the 27 active margin group designated by the operator "lumerous D~L~9-67-036 :~ `

' ' . . . ~ .
.

~ r ~

8~LS~
1 internal conditions which are set and sampled cluring 2 character moving operations, an output storage address 3 and various other factors which will be described 4 hereina-fter, As described above with respect to Figure 1~ data 6 information and control information is entered into the 7 electronic storage unit 9 by a keyboard device or by an 8 input device. Data keyboard 15 and function keyboard 17 9 enter both data in-formation and control information to the input register 65. Also, the input device 13 enters 11 both data and control information to the input register 12 65. Certain control information such as mode information 13 and cursor location information is transmitted directly 14 from the function keyboard 17 to the control unit 23.
Data information and format control information is trans-16 ferred from the input register 65 to the storage register 7 17 71~ The information located in the storage register 71 18 is transferred to a specific location of electro~ic 19 storage unit 9 specified by the storage address register 73.
When it is desirous to read information from the 21 electronic storage unit 9, information at the address 22 specified by the storage address register 73 is gated from 23 the electronic storage unit 9 to the storage register 71.
24 Thereafter, the information in the storage register 71 can be transferred back to the electronic storage unit 9 at 26 the same storage location or at a different storage location 27 in accordance with the information content of the storage D~LE9-67-036 -2~-, ' ' ` ` ` ` `

5~

1 address register 73. Additionally, the information in 2 storage register 71 can be routed to the compare circuit 3 75 which is responsive to the control unit 23 to compare 4 the in-formation content of storage register 71 and the information content of storage address register 73 6 The compare circuit 75 therea:Eter indicates to the control 7 unit 23 when the data in storage register 71 is the same 8 as that in storage address register 73~ The decode circuit 9 77 is operative to decode the characters in storage regis-ter 71 and to supply predetermined output signals for 11 predetermined characters to the control unit 23.
12 The characters in the storage register 71 may also 13 be gated into the address counters 79~83 under the control 14 of a gating signal supplied by the control unit 23. The information stored in the address counters 79-83 can 16 thereafter be gated into the storage address register 73.
17 Information located in storage register 71 is also 18 sent to the CRT control 37, the printer 85 ! and secondary l9 media recorder 87 under the control of appropriate gating pulses supplied by the control unit 23. Information 21 sent to the CRT control 37 is utilized by this device 22 to control the information display and the characters 23 displayed thereon as described above with respect to 24 FIGURE 1 and as will be described hereinafter. Information gated to printer 85 is utili~ed to cause the printer to 26 print the information characters so sent, or to automati-27 cally perform a control operation in accordance witll the D-LE9-67"036 ~ .

~L~4~158 1 control character sent to the printer ~5~ This operation 2 will also be discussed hereinafter. In a similar manner, 3 information characters can be sent to secondary rnedia 4 recorder 87 in order that they be recorded on the secondary media, 6 (B) Cursor Control .
7 Referring once again to ~IGURE 1 of the drawings, 8 it has been described how the operator varies the g location of the cursor mark 19 on the CRT display ll by manipulating controls on the cursor control keyboard 17A, 11 It has further been described how the cursor can be 12 moved up or down or left to right, one character posi-13 tion at a time or through multiple character positions 14 at a scanning rate settable by the operator, In the description which follows, the operation of the cursor 16 control unit 21, which is responsive to the function 17 keyboard 17A to effect control over the cursor position 18 will be described in detail.
19 Referring now to FIGURE 4(a) of the drawings, the cursor scan rate control logic and the cursor vertical 21 positioning logic is depicted. The cursor scan rate 22 control logic consists of a variable rdte high frequency 23 oscillator 101 and a variable rate low frequency 24 oscillator 103. The frequency rate of each o:E the oscillators is controlled by an operator control 104(a) 26 and 104~b) located on the cursor control keyboard 17A
27 of FIGURE 2. Whenever the operator desires to effect , ., , ', ":, :

~ ,f' ~48~S~

~ 1 motion of the cursor to the right or the left, the corres-: 2 ponding cursor right, cursor left or tab operation key-3 button is depressed thereby providing a gating signal to 4 Or gates 104 and/or 105, the output signal of which pro-vides a gating signal to the And gate 107, whereby the - 6 output signal of the variable rate high frequency oscillator 7 is gated to the cursor clock decode logic 109. This logic provides two periodically recurring mutually out-of-phase 9 output signals termed "clock A" and "clock B", the repeti-tion rate of which is dependent upon the setting o-f the 11 operator control 104(a). In a similar manner, whenever 12 the operator depresses a cursor up, or cursor dol~n key, 13 the Or gate 111 and the And gate 113 gate the output signal " 14 of the variable rate low frequency oscillator 103 to the cursor clock decode logic 109. Again, two recurring 16 mutually out~of-p'hase output signals are provided at a . 17 frequency rate dependent upon the setting of the operator 18 control 104(b). Thus, the cursor horizontal and vertical 19 scanning rates may be set by the operator to the operator's reading speed. The cursor clock decode loglc 109 insures 21 that the clock A signal always occurs prior to the clock 22 B signal except when initiated by a tab operation wherein ` 23 special single cycle control is ef-fected. It is also 24 phased with the memory control clocks to be described with respect to FIGURE 15.
: 26 As has been described, the cursor position is in-27 cremented in the direction denoted by the depressed 28 keybutton by one character position or through multiple D-LE9-67~036 ' -32-:~''3~8~S~
1 character positions. Partial depression of any of the 2 cursor motion keys causes the cursor to be incremented 3 by one character position while -full depression of the 4 key generates a rapid motion signal which causes multiple characters to be scanned by the cursor. A latch circuit 6 115 provides a gating signal -to e-ffect cursor incrementing.
7 The latch circuit is set with an output signal from the OR
8 gate 116 which is responsive to a signal from And gate 117 9 whenever all four cursor motion keys are restored to their non-operative condition or to a signal supp~ied by the And 11 gate 118 whenever rapid motion is selected at clock A time 12 if the not inhibit signal is present. Thereafter, when-13 ever one of the cursor motion keys is depressed, the 14 latch circuit 115 in conjunction with the output signal provided by the depressed cursor key provide gating 16 signals to effect cursor motion. The latch circuit is 17 reset at clock B time. In this manner, the latch circuit 18 is reset with the first clock B signal upon partial de-19 pression of a key so that subsecluent cursor motion cannot be effected until the latch circuit is again set by re-21 leasing the depressed key thereby providing the gating 22 signal at the And gate 117.
23 If a key is fully depressed, the signal from the Ancl 24 gate 118 turns the Go latch 115 on with each clock A signal until either the rapid motion or not inhibit signal is re-26 moved upon key release. The not inhibit signal is supplied 27 when the latch circuit 119 is in a reset state. This latch 28 is set during a rapid motion operation with a signal from ,, .
~, ~ " . . .

1 And gate 120 at clock B time whenever Or gate 121 provldes 2 a signal indicating a stop condition. Or gate 121 is re-3 sponsive to And gates 122 and 123 which provide an output 4 signal to set the latch circuit 119 whenever the cursor S reaches the left margin or right margin respectively. Thus, 6 by fully depressing the cursor left or cursor right key-- 7 button, the cursor is caused to increment across the line 8 in the direction denoted by the depressed key until the 9 margin stop is reached. In a similar manner, the And gate 125 provides a set signal to the latch circuit 119 whenever 11 the cursor addresses a line containing a paragraph mark 12 when moving in rapid motion. The Or gate 127 provides an 13 output signal indicative of a cursor up or cursor down 14 motion which is gated with the paragraph mark signal. In this manner, the cursor will rapidly slew up page or down 16 page until a line containing a paragraph mark is reached.
17 At this time, cursor motion stops. Thereafter, in order 18 to make the cursor continue its motion, the operator must 19 release the depressed cursor up or cursor down key, there-by causing the latch circuits llS and 119 to be set and 21 reset respectively with a gating signal supplied by the 22 And gate 117, and thereafter depress the key.
23 The cursor vertical position control logic consists 24 of a counter 129 which maintains a count corresponding to the line number the cursor is addressing ln the page 26 storage unit (not shown). Whenever the cursor down key is ~; 27 depressed, or whenever a signal is provided by the 28 horizontal position cursor control logic indlcating ~' .

8~Sl5 1 tha~ the cursor should move downward, the Or gate 131 2 provides an output signal to the And gate 133. In a 3 similar manner, whenever the cursor up key is depressed 4 or whenever the cursor horizontal position control logic provides a cursor up signal, the Or gate 135 provides 6 an output gating signal to the And gate 137. The output 7 signal of the counter 129 is provided to the decode 8 circuit 139 which provides a series of output signals 9 indicating the relative position of the cursor with respect to the top and to the bottom of the page. That 11 is, a signal is provided indicating that the cursor is 12 located on the topmost line of page storage, on the 13 bottommost Iine of page storage or not located on either 14 line. The signal indicating that the cursor is not on the topmost line is provided to the And gate 137 while 16 the signal indicating that the cursor is not on the 17 bottom line is provided to the And gate 133. Assuming 18 that the cursor is not located on the top or the bottom 19 line, whenever the cursor up key is depressed, the And gate 137 provides a -1 output signal when the clock A
21 signal appears. In a similar manner, a +l output is pro-22 vided by the And gate 133. The output signal oE ~he And 23 gates 133 and 137 either increment or decrement the cursor 24 vertical position counter 129. In this manner, the cursor vertical position counter maintains a count indicative of 26 the cursor position which is modified by keybutton de-27 pression or by signals provided by the hori~ontal cursor 28 position control logic to be described.

. .

~4i~5E~
1 Referring now to FIGURE 4(b) of the drawings, the ; 2 cursor horizontal position control logic is depicted.
~ 3 This logic is similar to the vertical position control 4 logic in that a cursor horizontal position counter 143 - 5 is incremented or decremented as the cursor moves to the 6 left or to the right. Additional control logic is also 7 added for tab operations and for margin stop recognition.
8 The cursor horizontal position counter 143 is in-9 cremented by 1 in accordance with the signals applied by the Or gate 145. Whenever the cursor right key is de-ll pressed, the And gate 147 provides an output signal as 12 long as the cursor horizontal position does not equal the 13 right margin stop. In a similar manner, the And gate 149 14 provides a -1 output signal whenever the cursor left key-button is depressed as long as the left margin position is 16 not reached for decrementing the counter by 1. Both the 17 And gate 147 and the And gate 149 are gated with the "Go"
~ 18 signal which is reset for single increment partial key - 19 depressions with the clock B signal and which cyclically turns on for multiple incrementing of the cursor until 21 the margin position is reached as has been described.
22 The active left margin stop is stored in ~he left 23 margin stop register 151 and the active right margin stop 24 is stored in the right margin stop reglster 153. Compare circuits 155 and 157 provide output signals indicating the 26 relative position of the cursor with respect to their 27 respective margin stops. ~rhenever the cursor reaclles 28 the right margin stop due to the depression of the D~LE9~67~036 .~ .

s~
1 cursor right key, and is not located at the bo~tom of 2 the page, the And gate 159 provides a gating signal to 3 the And gate 161 which thereby gates the contents of 4 the left margin stop register into the cursor hor~zontal position counter. Additionally, the And gate 159 pro-6 vides an output signal to the cursor vertical position 7 counter to cause it to increment by 1 thereby moving 8 the cursor down page. Thus, whenever the cursor is g located at the right margin and the cursor right key-button is depressed, it is moved to the left margin 11 of the next lower line. In a similar manner, when the 12 cursor left key is depressed and the cursor horizontal 13 position is equal to the left margin stop, the And 14 gate 163 provides an output signal to the And gate 165 which gates the right margin stop into the cursor 16 horizontal position counter 143. Additionally, the 17 And gate 153 provides an output signal to the cursor 18 vertical position counter causing it to decrement by 1 19 thereby moving the cursor up page.
A further horizontal cursor positioning control is 21 effected through the utilization of the "tab" key (not 22 shown) located on the data keyboard 15. Depression of 23 this key causes the cursor to advance to a horizontal 24 position defined by a tab stop contained in the format storage 51. Tab stops are initially set in the format 26 storage 51 by positioning the cursor to the desired 27 horizontal location and thereafter depressing the "tab 28 set" key on the function keyboard l7B. Depression of D~LE9-67-036 (--~8~
the "tab set" key causes Or gate 167 to provide an output 2 signal to the And gate 169 which gates the contents of 3 the cursor horizontal position counter 1~3 into the Xl 4 counter 79. At the same time, the format control unit 25 5 effects the ~ating of the vertical address of the format 6 storage 51 into the Yl counter 81. The contents of the 7 Xl counter 79 and the Yl counter 81 are thereaf-ter trans-8 ferred to th.e storage address register 73 which causes the 9 character position in the format storage 51 corresponding 10 to the horizontal position of the cursor to be addressed.
11 Depression of the tab set key also causes a bit to be 12 gated by the And gate 171 to the Or gate 173 and thereafter 13 gated into the storage register 71 This bit which corres-14 ponds to a tab position is therea:fter stored in a format 15 storage at the address specified by the storage address 16 register 73. In a similar manner, depression of the 17 tab clear key on the function keyboard 17B provides a 18 gating signal to the Or circuit 167 whereby the storage address register 73 is gated with the contents of the 20 cursor horizontal position counter and the format 21 storage vertical position. Additionally, the And gate 22 175 is gated with a no bit signal which is transferred 23 to the storage register 71 and thereafter written into 2~ the format storage 51 at the specified location. In 25 this manner, tab bits are either set or cleared at the 26 cursor location upon depressing the "tab set" key or the 27 "tab clear" key.
28 Once the desired tab bits are set in the format ' ~4~i8 1 storage 51, depression o-f the tab key causes the cursor 2 horizontal position counter 143 to increment until a 3 tab stop is reached. In this manner, depression of the 4 tab key on the data keyboard 15 causes the cursor to assume a horizontal position equal to that of the tab 6 stop located immediately to its right. Depression of 7 the tab key provides a gating signal to Or gate 167 8 in a manner similar to that described heretofore with 9 respect to the tab set and tab clear key. The output signal of the gated And gate 169 along with one provided 11 by the format control unit 25 causes the storage address 12 register to address the format storage 51 at a location 13 corresponding to the cursor horizontal position counter.
1~ Thereafter, the format storage at this position is read into the storage register 71 and then decoded by the 16 decode circuit 77 to indicate whether that position 17 contains a tab stop or contains no tab stop. Assuming 18 that it contains no tab stop, the output signal of 19 the decode circuit is provided to the Or gate 177 which provides an output gating signal to the And gate 21 179 As long as the cursor's horizontal position 22 does not equal the right margin stop location, and as 23 long as the gating signal is provided, the And gate 24 179 provides a +1 output since the tab key has been depressed. This output is applied to the Or ga~e 1~5 26 and thence to the cursor horizontal position counter 27 which is incremented by ~1. The incremented content o-f 28 the cursor horizontal position counter is thereafter D~LE9-67-036 ' .. . .
,~
:

~\ ~ f 15~
1 gated by the clock B signal to the And gate 169 and 2 the operation continues until a tab stop is detected 3 by the decode circuit 77. When the tab stop is thus 4 detected, the gating signal is removed from the Or gate 177 and the operation ceases. In this manner, 6 the cursor is tabbed to a location corresponding to 7 the location of the tab sto? in the format storage 51.
8 If the cursor horizontal position counter is 9 equal to a tab stop location when the tab key is de-pressed, a "first tab" signal gates the Or gate 177 11 to effect incrementing of the cursor horizontal 12 position counter. This first tab signal is reset with 13 the first cursor increment by logic (not shown) and 14 remains off until the tab key is restored.
Summarizing, the cursor vertical position counter 16 129 of FIGURE 4~a) and the cursor horizontal position 17 counter 143 retain the vertical and horizontal positions 18 of the cursor. These positions correspond to a unique l9 page storage location within the page storage unit 53.
The coun~ers are incremented and decremented by control 21 keys located on the keyboard 17A of FIGURE 2. It is to 22 be noted that the memory controls necessary to effect 23 Storage cycles are described with respect to FIGURE 15 of 24 the drawings and are, of course, utilized in conjunction with respect to the tab operations described above.
26 (C) Format Control 27 Referring once again to FIGURE 3 of the dra-~lngs, 28 the description immediately preceding described the D-LE9-67~036 f 5~ :

1 operation of the cursor control unit 21 with respect to 2 the block diagram of the data formatting and editing 3 system depicted. In the description which follows, the 4 operation of the format control unit 25 will be described.
The format control unit is responsive to keys on the 6 function keyboard 17B to effect the storage of formatting 7 information in the format storage 51 and to effect its 8 recall from the format storage 51. As has been heretofore 9 described, the information stored in the format storage 51 consists of input tab stop information, paragraph 11 definition information, margin stop information, and -12 output tab stop information.
13 The operation of the format control unit 25, when 14 storing, clearing, and utilizing input tab information has been described in the last section relating to the 16 cursor control unit. Further, as has been described, 17 special characters designating the beginning of a new 18 paragraph are caused to be stored when the operator 19 positions the cursor on the desired line thereby address-ing a corresponding line in page storage and thereafter 21 depresses the "paragraph" key. The key depression 22 causes the Xl counter 79 to be gated with the line format 23 storage position and the Yl counter to be gated with the 24 vertical position of the cursor address. Thereafter, the contents of the addressed location are read to the 26 storage register 71 and decoded by the decode clrcuit 77 27 to determine whether a paragraph mark was already located 28 at the defined position. If no such paragrap}- mark was ' ' , : .
, ' ~

5~
1 thus located, the format control unit 25 provides a 2 special paragraph character to the storage register 71, 3 and, thereafter, the contents of the storage register 4 71 are gated into the addressecL format storage location.
If the decode circuit 77 indicates that a paragraph mark 6 previously existed at the address location, the format 7 control unit causes a blank character to be gated into 8 the storage register 71 and thereafter into the addressed g format storage location. In this manner, the depression of the paragraph key causes a paragraph mark to be stored 11 at the addressed line location if none previously existed 12 there. If one previously existed there, it is removed.
13 In the description which follows, the operation 14 of the format control unit 25 when storing margin stop information in the format storage unit 51 and when 16 thereafter recalling that information from the format 17 storage unit 51 will be described. The description is 18 in the form of a state diagram describing a sequence of 19 operations. It is understood by those skilled in the art that the sequence of operations thus defined may 21 readily be implemented utilizing logic blocks similar 22 to those described with respect to FIGURES 4~a) and 4~b) 23 of the drawings. However, since the margin storage 24 operation, and other operations such as the text content control operations to be described hereinafter 26 involve many elemental operations and decisions ~hich 27 must be sequentially made, the description of these 28 operations and decisions is best described by a state D-LE9-67~036 ; ' .
~ -42-, - ~ ` ( 83L~

1 diagram, Reference will be made to both FIGURE 3 and 2 FIGURES 5(a) and 5(b) in the following description, it 3 being understood that reference to machine components 4 refers the reader to FIGURE 3 and re~erence to a sequence of operations refers the reader to FIGURE 5.
6 As has been described, the -format storage 51 contains 7 sixteen sets of margin stop information, each set con-8 taining a left boundary, a right boundary and a vertical - 9 position. In order to store margin stop information, it is necessary to access the format storage positions 11 adapted to contain the margin stop information and then 12 store the margin stop information. Thereafter, the margin 13 stop information thus stored may be recalled to control 14 the placement of the cursor as has been described and to control the placement af text characters as will herein.
16 after be described.
17 In order to store margin stop information, the 18 operator depresses the "start" key on the function key-19 board 17B. This causes the first group of storage locations within the format storage 51 which are adapted to store 21 margin set information to be addressed. A set of indicator 22 lamps 201 depicted in FIGURE 2 indicate that a first margin 23 group is being addressed. Thereafter, the second, third, 24 etc, margin groups may be sequentiàlly addressed by de-pressing the "advance" key on the function keyboard 17B.
26 In a similar manner, the margin address can be decremented 27 by depressing the "reverse" key. Referring no~ to FIGURE
28 5(a) of the drawings, depression of the "start7', "advance", : D-LE9-67-036 f s~
l or "reverse" key on the function keyboard 17B of FIGURE
2 2 causes the active margin group number contained in the 3 working storage 55 of FIGURE 3 to be gated into the Xl 4 counter 79 of FIGURE 3 This operation is denoted by block 203. In operation, the format control unit 25 of 6 FIGURE 3 gates the address of the location in the working 7 storage 55 containing the active margin group number into 8 the storage address register 73. Thereafter, the storage 9 address register 73 effects the gating of the contents of the addressed storage location in the working storage ll into the storage register 71. Thereafter, the contents 12 of the storage register 71 are transferred to the Xl 13 counter.
14 Referring once again to FIGURE 5(a) of the drawings, once the active margin group number has been stored in 16 the Xl counter, a test is made as indicated by block 205 17 to determine whether the start key had been depressed.
18 If the start ke.y had been depressed, the Xl counter is l9 set equal to 1 as indicated by block 207. Thereafter, the reverse key is sampled, as indicated by block 209, 21 to determine whether it was depressed. If the reverse 22 key was depressed, a test is made as indicated by block 211 to determine whether the Xl counter was equal to 1, 24 If the Xl counter is equal to 1, no further decrementing of the Xl counter will thereafter be effected since 1 is 26 the lowest position which may be reachecl. This test is 27 effected by gating the contents of the Xl counter 79 . -44-:

~348~

1 into the storage address register 73 and thereafter 2 gating the contents of the storage address register 73 3 to the compare circuit 75. The compare circuit 75 com-4 pares the signal thus gated to it with a signal gated to it from the format control unit 25. If the contents 6 of the Xl counter do not equal 1, the counter is decre-7 mented by 3 as indicated by block 213. This causes the 8 counter to contain the address of the left margin stop of 9 the next lower group of stops. (It is necessary to decrement by 3 in order to always address the first 11 storage location within the group of three storage 12 locations.) Thereafter, the advance key is sampled as 13 indicated by block 215, and, if it had been depressed, 14 a test is made to determine whether the Xl counter was equal to 46. This would indicate that the last group of 16 margin stop information was being sampled, and, since 17 further advance could not be effected, the counter would 18 retain its count. If the Xl counter did not equal 46, 19 as indictated by block 217, the Xl counter would be incremented by 3 as indicated by block 219.
21 Summarizing the above operation, whenever the start 22 key, reverse key, or advance key is depressed, the active 23 margin group number is gated from the working storage unit 24 into the Xl counter. If it were the start key that was depressed, the Xl counter is set equal to 1, I~ the reverse 26 key is depressed, the Xl counter is decremented by 3 unless 27 it were addressing the first margin group number. If the . .

~r ~4~3~5~
1 advance key were depressed, the Xl counter is incremented by 3 unless it were already addressing the last margin 3 group number. In any event, the number thus contained in 4 the Xl counter is thereafter stored in the worklng storage location predesignated to contain the active margin 6 group number as indicated by block 221. This operation 7 is effected by gating the contents of the Xl counter into 8 the storage address register 73 and then gatlng the 9 contents of the storage address register 73 into the storage register 71. Thereafter, the storage address 11 register 73 is gated with the location in the working 12 storage 55 predesignated to contain the active group 13 number. The storage address register 73 then effects 14 the addressing of that storage location and the information content of the storage register 71 is transferred into it.
16 Once the contents of the Xl counter indicating the 17 active margin group have been placed into the working 18 storage, the format storage address is gated into the 1~ Yl counter and the contents of the format storage, as indicated by the Xl and Yl counters, is read. At this 21 time, the Xl and Yl counters will be addressing the left 22 margin stop information of the activated margin group 23 in the format storage 51. These operations are denoted 24 by block 223. Thereafter, the cursor horizontal position counter and left margin stop register are set equal to 26 the left margin information as denoted by block 225~
27 This is effected by gating the left margin information D-LE9-67~036 ,8~

1 located in the storage register 71 into the cursor 2 horizontal position counter 143 and left margln stop 3 register 151 described with respect to FIGURE 4(b) of 4 the drawings. Thereafter, as denoted by block 226, the Xl counter is incremented by 1 so that it addresses 6 the right margin stop information within the group o:E
7 margin information and this information is read from 8 the format storage and stored in the right margin stop 9 register 153 of FIGURE 4(b). Thereafter, as noted by block 227, the Xl counter is incremented and the vertical ll stop information is read~ As noted by block 22~, the 12 vertical stop information is compared to see if it is 13 equal to a special code. If it is equal to the special 14 code which indicates that no vertical stop has been stored, the device stops as indicated by block 230~ If 16 the vertical stop does not equal a special code, the 17 cursor vertical position counter is set equal to the 18 vertical stop information as indicated by block 229 and 19 the device thereafter stops as indicated by block 230.
Summarizing, depression of the start, reverse, or 21 advance keys causes a group of margin stop information to 22 be addressed and hence activated. The activated group of 23 margin stop information is thereafter utilized to effect 24 the placement of the stop information in the left and right margin registers and to effect the placement of the 26 cursor adjacent to the activated left margin stop at a 27 vertical position determined by the activated vertical D-LE9-67~036 .

~8~L~;;8 1 stop.
2 Referring now to FIGURE 5(b) of the drawings, the 3 operation effected by the format control unit 25 of 4 FIGURE 3, when effecting the storage of margin stop information at the location in format storage specified 6 by the activated group of margin stop information is 7 depicted. Previously stored margin stops located within 8 the format storage 51 at the address specified by the 9 activated group number can be cleared by depressing the "clear stops" key on the function keyboard 17B. A new 11 left margin stop, right margin stop, or vertical stop 12 as defined by the cursor position can be stored in the 13 format storage 51 at an address specified by the activated 14 margin group number by depressing the "set left stop", "set right stop", or the "set vertical stop" keys respec~
16 tively located on the function keyboard 17B.
17 Depression of one of the set stop keys or the clear 18 stop key causes the active margin group number to be 19 gated from the working storage into the Xl counter and causes the vertical position address of the format 21 storage to be gated into the Yl counter as denoted by 22 block 233 Thereafter, as denoted by block 235, the 23 contents of the format storage at the address specified 24 by the Yl and Xl counters is read. If the "clear stops"
key was depressed as indicated by block 237, a blank 26 character is written into the left margin stop position 27 location at the address specified by the Yl and Xl 28 counters and the output tab flag bit is cleared as . . :

:'``
.

s~
1 denoted by block 239. Thereafter, the Xl counter is 2 incremented by l and a blank character is written at 3 the right margin stop positions at the format storage 4 location denoted by the now incremented Xl counter and the Yl counter. Thereafter, the Xl counter is again 6 incremented by 1 as denoted by block 241 and the special 7 code is written at the vertical stop positions of the 8 format storage specified by the Yl and Xl counters as 9 denoted by block 243. Additionally, -the left and right margin stop registers of FIGURE 4(b) are reset. There-11 after, the device stops as indicated by block 245.
12 If the keybutton depressed were the "set left stop"
13 key, the operation would proceed from block 237 to block 14 247 whereupon a test would be made to determine that the .
left stop key was depressed. Thereafter, the cursor 16 horizontal position counter is written into the left 17 margin stop positions at the format storage location 18 defined by the Yl and Xl counters and into the left 19 margin stop register as denoted by block 249 and the device thereafter stops. If the "set right stop" key 21 were depressed, the operation would proceed from block 22 247 to block 251 and thence to block 253 to effect the 23 operation of incremen.ting the Xl counter by 1 and there-24 after storing the contents of the cursor horizontal position counter in the right margin stop positions of 26 the format storage defined by the Yl and Xl counters and 27 in the right margin stop register. If the "set vertical 28 stop" key were depressed, the operation would proceed D~LE9-67~036 .

1 from block 251 to block 255 whereupon the Xl counter 2 would be incremented by 2 and the contents of the cursor 3 vertical position counter would be written into the 4 vertical stop positio~s of the forma~ storage defined by the Yl and Xl counters. Thereafter, the device would stop 6 as indicated by block 245 7 If the operator desired to store a plurality of groups 8 of margin stop information, the operator would thereafter 9 depress the advance or reverse keybuttons on the function keyboard 17B causing a new active group number to be 11 stored and thereafter depress the set left, right, and 12 vertical stop keys and clear stop key as desired. Thus, 13 a plurality of margin stops are stored in the format 14 storage 51 of FIGURE 3, As has been described, output tab stops are utilized 16 to control the output printer. The left margin stop 17 positions, along with the tab stop information stored in 18 the format storage, is utilized to define the output 19 tab stops. The operation o-f defining the output tab stops is identified to that of defining input tab stops 21 except that depression of both the "set tab" key and the 22 "set left stop" key ef:fect the storage of a flag bit 23 representative of an output tab stop at the location 24 defined by the horizontal cursor position.
~D) Text Content Control ... .
26 Referring once again to FIGURE 3 of the drawings, - 27 the operation of the cursor control unit 21 and format 28 control unit 25 have been described as controlling, ` D-LE9-67-036 - S O -:.
.:
, . . .
. :
, .:

5~
1 respectively, the placement o-f and addressing by a cursor 2 mark and the placement oE control information into the 3 format storage unit 51. In the description which follows, 4 the operations of the data composing, editing and formatting system when entering and changing text content will be 6 described with respect to the data flow between the key-7 boards 15 and 17 controlled by the operator, the electronic 8 storage unit 9, and the output display device. Again, for 9 purposes of ready understanding, state diagrams will be utilized to describe the operation of the control unit 23.
11 As has been mentioned heretofore, there are four 12 basic modes of text content control: insert mode, replace 13 mode, delete mode, and close mo~e. The operation of the 14 device in each of these modes will be discussed in the following four sections.
16 (1) Insert Mode 7 In the description which follows, the sequence 18 of elemental operations performed by the data editing 19 device of the present invention as depicted in FIGURE
3 for a character insert operation will be described.
21 This sequence of operations is depicted in FIGURES 6~a), 22 6(b) and 6(c) as a state diagram showing a sequence of 23 operational steps. Reference will be made to both FIGURE
24 3 and EIGURES 6 in the following description, it being understood that reference to machine components refers 26 the reader to FIGURE 3 and reference to the sequence o-f 27 steps refers the reader to FIGURES 6.

~ . . ' ' '.

s~
1 ~hen the operator depresses the control key 2 labelled "insert" on the keyboard 17C o~ FIGURE 2, the 3 operator is indicating that the character information 4 thereafter keyed into the electronic storage unit 9 should be inserted between pre-e~isting text characters at 6 a predetermined point. The control unit 31 is responr 7 sive to the depression of the "insert" key to set up 8 various initial conditions which will be described 9 hereafter. Either before the operator depresses the "insert" key or thereafter, the operator mani-11 pulates the cursor control keys on the function key-12 board 17A of FIGURE 2 in order to place the cursor 13 19 of FIGURE 1 adjacent to the character position 14 wherein it is desired to insert information. Since lS the cursor position corresponds to a unlque one of - 16 the character positions in the page storage 53, for 17 example, the character position 61 of the page 18 storage, it is defined by both a vertical and hori-; 19 zontal coordinate positions which are stored ln counters 129 and 143 o~ FIGURES 4~a) and 4(b)o 21 Once the cursor has been posltioned by the opera-- 22 tor to the desired location, the operator insures that 23 the margin stops are as desired. The operator can 24 speci~y the le~t-hand and right-hand margins by opera ting with the margin advance and reverse keys on the 26 function keyboard 17B o~ FIGURE 2 and thus actîvate a 27 particular group of margin set inEormation The active . ~

.~

.. . . .
.

5i8 1 left and right margin stops are stored in regis~ers 151 2 and 153 of FlGURE 4(b) as has been descrlbed.
3 Once the "insert" key has been depressed, the 4 cursor has been positioned, and the margin stops have been verified, the operator depresses a character 6 keybutton on the data keyboard 15 which corresponds 7 to the first character of the material to be inserted.
8 A coded representation of the letter corresponding to 9 the depressed keybutton is transmitted to the input register 65.
11 In the description which follows, lt will be 12 described how the character located in the input 13 register 65 replaces the character addressed by the 14 cursor and how that character is, in turn, shifted one position to the right thereby replacing the character 16 adjacent to it. This operation continues until a 17 blank character location is reached or until the 18 right margin is reached. If the right margin is 19 reached, it is necessary to test the character whïch is "pushed off" of the line to determine whether it 21 is the last character of a word. If it is the last 22 character of a word, the entire word must be shiEted 23 down to the next line and the next line must be 24 shi-fted to the right by a number of characters corresponding to the inserted word. This operation 26 continues with the overflow words of each line 27 shifting to the next line until a paragraph mark ls ~53 r . .

1~4~31S~
1 detected or until no characters need to be shi-fted.
2 The detection of a paragraph mark causes the 3 entire first line of the new paragraph to shift down 4 by one line thus allowing the overflow words of the last line of the preceding paragraph to occupy a new 6 line. In a similar manner, each line of storage is 7 thereafter shifted to the next line until a blank line 8 or the last line of page storage is detected.
9 In all operations, the row 1 storage 57 and row 2 storage 59 are utilized to temporarily store all 11 displaced characters until they can be written in their 12 new location of the page storage 53. The address 13 counters 79-83 are utllized to keep track of the page 14 storage and row storage locations of displaced charac-ters as will be described. Further, many special 16 conditions exist, such as for e~ample, the handling 17 of hyphen and space characters which are shifted off 18 of a line, the positioning of the cursor when the 19 word which the cursor is addressi~g is shifted to the next line and the handling of sin~le word lïnes.
21 These will be described in the following detailed de-22 scription of the elemental operations performed.
23 As mentioned heretofore, the depression of 24 the "insert" key and a character keybutton sets up various internal conditions under the control of the 26 mode control unit 31. These conditions include: the 27 Xl address counter 79 and the X2 address counter 80 are . . : .
. . .

5~
1 set with the horizontal coordinate position defined by 2 the cursor. This is effected by reading the horizontal 3 cursor coordinate position from the cursor position 4 counter into the address counters In a similar manner, the Yl address counter 81 is gated with the vertical co-6 ordinate position of the cursor, and the Y2 ancl Y2' 7 counters 82 and 83 are gated with the vertical coordinate 8 position of the row l storage 57. Also, the row storages . i 9 are cleared of data.
Further, a series of internal latches located 11 within the mode control unit 31 are set to an initial 12 condition. These latches are utili~ed when executing 13 the sequence of operations to test for various conditions.
14 Thus, the latches indicating that the row 1 storage 57 lS and the row 2 storage 59 are clear are set, the latch 16 indicating that the last character was a syllable hyphen 17 is reset, the latch indicating that the last character 18 waS a required hyphen is reset, the latch indicating 19 that a paragraph mark has been found is reset, the latch indicating that the cursor address should be stored 21 is reset, the latch indicating that the storage 22 register has been entered is reset, and the latch 23 indicating single cycle control is reset. Additionally, 24 the Ll latch and the L2 latch, which are utilized to sample internal conditions relating to the cursor, 26 retain their information at this time.
27 In the description which follows, it will be 28 assumed that the cursor is addressing the character D~LE9-67-036 .

~' ~6~4~5151 1 position 61 of the page storage which is the f~fth ; 2 character in the line and further, that the left-3 hand margin stop is set at a position corresponding 4 to the third character position in a llne and that the right-hand margin stop is set at a position 6 corresponding to the last character position of a 7 line of page storage. Thus, when the first character 8 is keyed, the internal latches located within the 9 control unit as described above are set. This is delineated in FIGURE 6(a) by the start block 301.
11 Therea-fter, as indicated by blocks 303 and 305, the 12 L2 and Ll indicators are checked to determine whether 13 the cursor is beyond or at the right margin, and, 14 since it is not so located, the ope-~ation proceeds to block 307.
16 At this time, it is desiroùs to read the 17 character located in the character position 61 from 18 the page storage unit 53 into the storage register 19 71 and to thereafter temporarily store that character.
Once this operation is accomplïshed, the just keyed 21 character located in the input register 65 may be 22 loaded into the thus vacated position of the page 23 storage unit 53. In order to accomplish the above 24 operalion, it will be recalled that the Xl address counter 79 contains the horizontal coordinate pos~tion 26 of the cursor and the Yl address counter 81 contains 27 the vertical coordinate position of the cursor. Thus .

5~1 1 the contents of the Xl ancl Yl address countcrs ~re 2 gated into the storage address register 73 which causes 3 the character located at character position 61 to be .~ 4 gated into the storage register 71. This is indl.cated in block 307 as the operation of reading at Yl-Xl 6 Thereafter, the character located in the storage 7 register 71 is written into the row 1 storage 57 for temporary storage. This is accomplished when the 9 control unit causes the content of the Y2 counter 82 and the Xl counter 79 to be gated into the storage 11 address register 73 It will be recalled tha-t the Y2 12 counter 82 contains the vertical address of the row 1 ~ 13 storage. Thus, the adcdress register specifies a . 14 unique storage location in the row 1 storage 57 for - 15 the placement of the character contained in storage 16 register 71. This operation is indicated in block 17 307 as writing at Y2-Xl, The character thus written 18 in the row storage is tested to see whether or not 19 it is a blank character as indicated by block 309. If it is not a blank character, the internal latch in 21 the mode control unit 31 indicating that the row 1 22 storage is clear.of da~a information is reset to indicate 23 that a character is now present in the row 1 storage.
24 This operation is indicated by block 311 and, as .: 25 indicated, the row 2 storage latch woulcl be reset 26 if the Y2 counter contained the row 2 adclress. There-27 a~ter, as indi.cated by block 313, a test Or the lnternal : D-LE9-67-036 ~ -57-` ~41~l513 latch in the control unit 69 to determlne whether or 2 not the storage register has been entered Erom the 3 input register is made. Since the just keyed character 4 located in the input register 65 has not yet transferred to the storage register 71 and since the latch was 6 initially reset, the internal latch indicates that the 7 storage register has not been entered and that it is 8 thereafter desirous to gate the character ln the input 9 register 65 into the storage register 71 and thence into the page storage unit 53. Thus, the next operation per-11 formed as indicated by block 315 is to write the contents 12 of the input register into the page storage unit 53 at the 13 address specified by the Yl counter 81 and the Xl counter 14 79. This address corresponds to the character position 61 or the cursor address. Thereafter, the internal latch 16 indicating that the storage register has been entered 17 from the input register is set.
18 At this time, the information character keyed 19 from the data keyboard 15 has replaced the character adjacent to the cursor on the display (not shown) and 21 the character previously located adjacent to the cursor 22 is stored in row 1 storage 57 at the same horlzontal 23 position which it previously occupied in the page 24 storage 53~ During the next portion of the operation to be described, the character located ln the row 1 26 storage replaces the character lmmediately to the rlght 27 of the inserted character and the character thus replaced D~LE9-67-036 :

5i~
1 is stored in the row l ~torage~ It -~houId bc noted at this tIme, however, that if the cursor were located 3 adjacen~ to the right-hand margln, the ch.lracter loc~ted 4 in row storage would have to go to the next line of storage immedlately below that identified by the cursor.
Therefore, it is necessary at thls time to make several 7 attemptS to determine whether it lS permlssible to move 8 the charaster located in ro-w storage back to the cursor 9 addressed line~ Hence, the lnternal latch testing to see whether a paragraph mark had previously been found 11 is sampled as indicated at block 3170 Since this latch 12 was initially reset, the Xl counter is sampled to see - -13 whether or not it compares equally with the right margin 14 stop as indicated by block 319. This operation is accomplished by gating the right margin stop information 16 into the storage register 71 from the reglster 153 of 17 FIGURE 4(b) and by gating the contents o-f the Xl counter :
18 79 into the storage address register 73. Thereafter, 19 the compare circuit 75 compares the contents of the storage register 71 with the contents of the storage 21 address register 73 and indicates to the control 22 unit 31 whether or not the Xl counter is at the rig]lt-23 margin stop position. Since the Xl counter is not at 24 this tlme at the right margin, the ne~t step performed is to increment the Xl counter 79 as inclic~ted by block 26 32l and to return to the operation performed at block 27 30?.

~8~
1 As indicated above~ the operation performed at 2 block 307 is to read the information contents from the - 3 address specified by the Yl counter 81 and the Xl - 4 counter 79 and to write those contents at a corres-ponding location in the row 1 storage 57. In this 6 manner, the character adjacent to the inserted character 7 is read from the page storage unit 53 thereby lea~ing 8 a blank location which will be adapted to receive the 9 character displaced by the inserted character. The operation continues in the manner described above with 11 respect to the tests and operations per~ormed by 12 blocks 309 and 311. However, since the internal latch 13 indicating that the storage register has been entered 14 is set, the operation sequence continues through the exit block 323, labelled "C" to block 325 o~ FIGURE 6(b)c .; 16 Summarizing the operation thus far, the character 17 located in the page storage addressed by the cursor 18 has been molIed to the row 1 storage 57 at a corres-` 19 ponding horizontal coordinate position and the keyed character has replaced it. Further, the character 21 located immediately to the right o~ the thus inserted 22 keyed character has been placed in the row l storage ~: 23 57 at a position adjacent to the position where the 24 ~irst character was placed. At this -time, lt is de-sirous to read the ~irst character thus pl;lced in the 26 row 1 storage into the storage register 71 and ~o check 27 the character to detect whether or not ;t Is a blank D~LE9-67-036 .~, .

41~15~

l character, a rcquired hyphcn, or a syll~ble hyp}len 2 The decode clrcuit 77 lS rcspons1ve to the character 3 thus contained in the storage register 71 ancl lndicates 4 whether it is one of the above enumerated characters to the control unit 31. If it is not a special character, it is desirous to write the character thus contained in 7 the storage register 71 into the posltion adjacent to 8 the inserted keyed character. Thus, as indlcated by 9 block 325 of FIGURE 6(b), the contents of the storage unit 9, located at the address speclfied by the Y2' ll counter 83 and the X2 counter ~0 are read into the 12 storage register 71. It will be recalled that the ~2 13 counter was inicially set equal to the horizontal address 14 of the cursor and that the Y2' counter was initially cet lS equal to the Y2 counter, and both of these counters were lS set equal to the row l, 57 storage address. Thus, the 17 charac~er read into the storage register is the one -18 displaced by the keyed character. Thereafter, this l9 character is tested by the decode circuit 77 to determine whether it is a blank character as indicated by block 327 21 and, if it is not a blank, the character lS ne~t checked 22 to determine t~hether it is a syllable hyphen as indicated 23 by block 329 or a required hyphen as indicated by block 24 331. If it is not a syllable hyphen or a required hyphenl a reset signal is applied to the internal hyphen 26 latches as indicated by blocks 337 and 339. The s1gnif1-~7 cance of these latches l~ill be d~scusse~ hereinafter D~LE9-67-036 - ,--~

`

"` ~09~8~L5 l when the special case of finding a syllable hyphcn, a 2 required hyphen or a blank character ïs dlscussed.
3 For the purpose of the discusslon whlch follows, 4 it will be assumed that a character or space character was previously stored in the row 1 storage and lS now 6 located in the storage register 71. Thus, the 7 contents of the storage reglster 71 are ~ritten lnto - 8 the page storage unit 9 at the posltion cpecified by 9 the Yl and Xl counters. Since the Xl counter has been incremented by one position, the character thus wrltten 11 is located immediately to the right of the cursor posi-12 tion. At this time, the X2 counter is incremented by ; 13 one. Both of these operations are indicated by block 14 341. The operation then continues as indicated at exit block ~43 and returns to the operat~on of block 16 317 of FIGURE 6(a). The operations thereafter per-17 . formed are identical to those previously described, 18 the character located to the rlght of the inserted 19 character being removed to row storage by the operations depicted in FIGURE 6~a) and the displaced character 21 being inserted from row storage into the vacated 22 location by the operations depicted in FIGURE 6(b).
23 This operation continues until a blank character, a 24 hyphen character or the right-hand margln la reac}led~
Detection of a blank character causes the operation to 26 stop since it is unnecessary to place them back ln~o the 27 text. Detectlon of a hyphen character Wlll be hereln-D~LE9-67-036 : , . ' .

:
~0~8~58 1 after described. In the desriptlon which lmmediately 2 follows, it will be assumed that the right margin lS
3 first reached.
4 When the address in the Xl counter is equal to that of the right~hand margin as lndlcated by block 6 319 of FIGURE 6(a), the operation proceeds through exit 7 block 345 to bloc~ 347 of FIGURE 6(c!~ At thls time, 8 it will be recalled that the contents of the character ; 9 position at the right-hand margin have just been wrltten into the row 1 storage 57 and that the character pre-11 viously located immediately to the left of the character 12 at the right-hand margin has been written into the 13 right-hand margin character location. Thus, there is 14 only one character localed in the row 1 storage 57 lS wh,ch has not been written bac~ lnto the row of page 16 storage 53 addressed by the cursor. Thls character 17 thus contained in the row 1 storage 57 can either be 18 a space character, a blank character, or an alpha- -19 numeric character. If it is a blank character, the operation can stop at this point slnce no slgnificant 21 information will have been displaced from the cursor 22 addressed row of the page storage 53.~ If the character 23 is a space character, or an alphanumerlc character, it - 24 is desirous to place ~ha~ character as the flrst 2S character of the next line. It should be poin~ed out 26 at this time that the only time the last character on 27 a line can be a space character is if more th~n one ' , ,.

. .

s~

1 space character had been previously recorded between 2 words.
3 In order to check the character located ln the 4 row 1 storage 57, as indicateci at block 347, the character as specified by the Y2' and X2 counters is 6 read out into the storage register 71 and then re-7 written back into its row storage position to ,ave it.
8 Thereafter, the character in the storage register 71 is 9 checked by the decode circuit 77 to determine whether or not it is a blank character as indicated by block 11 349. If the character is a blank, the operations of 12 blocks 351, 353~ and 355 are effected causing the X2 13 and Y2' counters to address the first character position 14 of row 2 storage and to set the row 1 storage clear indicator. If both rows of row storage are clear, as 16 indicated by block 353, the operation proceeds as 17 indicated at exit block 355 to a cursor advance 18 operation to be described hereinafter with respect to 19 FIGURE 7 of the drawings. Basically, the cursor advance operation advances the cursor to the rlght by one 21 position so that a subsequent character can be keyed 22 as an input character. The above description assumes 23 that the last character displaced from the pa~e storage 24 was a blank character. If, instead, it was a space character or an alphanumeric character, the next opera-26 tion after that speci-fied by block 349 would be that of 27 block 357 whereupon a test would be made to determine D~LE9-67-036 :, :
, ' ' ' ' ' .

f s~
1 whether the character were a space character.
2 In the description which follows, ït wlll be 3 assumed that the character thus tested was a space 4 character and, since the only space character that can exist at the end of the ].ine as described above, 6 is one which is to the left of another previously 7 keyed space character which was cleared, it is de-8 sirous to move the space character down to the next 9 line. ~One and only one space character in a sequence of space characters is cleared when the 11 word immediately to the right of the sequence is 12 bumped to the next line. Single spaces are of course 13 eliminated.) Assuming that a space character is de-14 tected, the operation proceeds through the steps indi-cated by blocks 359, 361, 363 and 365. These operat~ons 16 cause the X and Y counters to advance so that the space 17 character can be placed adjacent to the left margin of 18 the following line and that the thus displaced character 19 can be written into row 2 storage. The operation then proceeds through exit block 367 to block 307 of FIGURE
; 21 6(a) where the characters located in the row o~ page 22 storage beneath the cursor addressed line are shifted 23 to the right to make room for the space character 24 This operational sequence continues as has been de-scribed, shifting all characters in the newly addressed 26 line to the right by one character position.
27 A special condition exists when the llne tha~

:
~ -65-4~158 1 the space character is shifted to contains a paragraph 2 mark. This condition is detected as noted by block 3 365 which causes ~he newly found paragrapll to be there-4 after shifted down by one line and the displaced space character to be stored next to the left margin stop of 6 the vacated line. Since the new paragraph could con-7 ceivably contain text in a completely different margln 8 format than that of the cursor addressed line, it is 9 necessary to transfer the entire line of information of the new paragraph to the row storage to insure that 11 all characters within a line are trans-ferred. Thus, 12 when a paragraph mark is detected as indicated by block 13 365, the paragraph mark indicator in the control unit 14 31 is set, and the Xl counter is set to the fc.mat lS storage location. This location is one less than the 16 leftmost character position of a row of the page storage 17 53. These.operations are indicated at block 369 of 18 FIGURE 6(c).
19 Thereafter~ the operations defined by blocks 370 ~ and 371 are effected un~il all information to ~he 1eft ~1 of the margin of the cursor addressed line including ~he 22 paragraph mark is transferred to row storage at which 23 time the operation proceeds through e~it block 367 ~o 24 the operation of block 307 of FIGURE 6~a). As lndicated by block 307, the contents of the page storagc located 26 at the Yl and Xl counter locations is read into the 27 storage register ~nd written in thc row ~ stor~ge.

.

-66~
.; .

~4~3~S8 .- -1 The character thus read ou~ corresponds to thc character 2 that will be replaced by the space ch~racter from the 3 previous line. Thereafter, the operatlon proceeds as 4 before through exit block 323 to block 325 of ~LGURE 6(b)~
~ As has been described, the character located ln 6 row storage (in this instance the overflow space 7 character) is written in page storage (in this instance 8 at the left margin location of the line beneath the 9 cursor), the row storage X2 counter is advanced and the operation proceeds through exit block 343 to the 11 operations of block 317 of FIGURE 6(a). Since the para-12 graph indicator was set, a check is made as indicated 13 by block 369 to see whether the Xl counter is at the 14 full right margin of the storage thus indicating that lS the entire first line of the new paragraph has been '5 transferred to row storage. Since the Xl counter 17 is located at the left margin at this time, the 18 operation proceeds to block 321 and then to block 19 307 thereby writing the character adjacent to the inserte~ space character into row storage.
21 The operation then proceeds through exit block 22 323 to the steps of block 325 whereupon the character 23 in rol~ storage which now corresponds to the flrst 24 character position beyond the right margln on the cursor addressed line is read and checked to determlne 26 if it is a blank. Since, in this inst~nce, lt is a blank, 27 the operatlon proceeds through blocks 3~2, 373, 375, ~ . ~

s~
1 377 and 379 to exit block 343. The operatlons of these 2 blocks specify various cursor location checks and hyphen-3 ation checks which will be e~plained hereafter~ Addilional-4 ly, an L5 indicator is set which will thereafter cause the operation to proceed immediately through exit block 6 381 to block 317 o-f FIGURE 6~a). Thereafter, the charac-7 ters located on the line containing the paragraph mark 8 are stored in row 2 storage until the entire line of 9 storage containing the paragraph mark is transferred to the row 2 storage. Once the entire line has thus been 11 stored, the compare circuit 75 indicates that the Xl 12 counter has reached the full right-hand margin as indica-13 ted by block 382 of FIGURF 6(a). Thereafter, the opera-14 tion proceeds to the full line transfer operation denoted by block 383 to be described hereinafter.
16 Referring once again to FIGURE 6(c) of the 17 drawings, the operation of the data editing system 18 when in insert mode has been described when the last 19 character of the line in which the insertion is made is a space character or a blank character. Further, 21 the operation has been described when the last such 22 character is a space character and the next line of 23 information contains the beginning of a new paragraphO
24 In the description which follows, it will be assumed that the last charactér of the line where the lnsertlon 26 is made is an alphanumeric character. ~hen such an 27 alphanumeric character exists at the end of a line, ~, ~ -68-.

~l~4~33L58 .
l it is necessary to transfer that character an~ the 2 entire ~ord which it forms a part of to ~he next llne ; 3 so that ~he word is neither truncated nor spllt.
4 Thus, when the test is made as indica~ed by block 357 of FIGURE 6(c) to determine that the character 15 6 not a space character, the operation proceeds through 7 the cursor location detectlon steps of blocks 385, 3~6 and 8 387 to the steps of blocks 389 and 391. This oper~tlon 9 checks the character located to the left of the alphanumerLc character which overflowed the cursor addressed 11ne to ll determine if it is a hyphen or space character. If lt i5, 12 the operation proceeds to block 393 where a hyphen charac-13 ter is rewritten and thus left alone and where a sp~ce 14 charac~er is cleared. Thereafter, the operatlons of lS blocX 361 are effected and the overflow aiphanumerlc 16 character is placed on the next line in the ~ame manner 17 described heretofore with respect to a space chardcter.
18 At this point, the last character on the curcor l9 addressed line would elther be a hyphen character or a character previously located to the left of a space 21 character.
22 Assuming that the character located next to the 23 overflol~ character is not a space or h~-phen charac~er 24 the opera~ion proceeds from block 391 to block 395 whefe Z5 the X2 counter lS decremented and the chara~ter re~d 26 from page stvrage lS written in row storage. The opera-27 tions of blocks 396 and 397 cause the prevl~us1y cleared DLE9-6~-036 .

, s~
1 syllable hyphen address to be checked to determlne 2 whether it is necessary to re~lace the hy~hen. ~hls 3 operation will be described later The ope~tlon deflned - 4 by the blocks 398-400 causes the alphanumerlc character~
which along with the overflow character form a l~ord, to 6 be transferred to row storage. This operatlon ~ont~nues 7 until a valid line ending character (space or hyphen~ is 8 reached or until a hyphen address lS reached at wh~sh 9 time the operation proceeds to the steps of block 36L
At this ~ime, the word which overflowed beyond the rlght 11 margin stop will have been located in the row 1 storage 12 once again and the system will start to process informa-13 tion located on the line below the cursor addfess~ Thls 1~ last word of information located in the row 1 storagQ
will thereafter be transferred from the row 1 stor~ge to 16 the line below the cursor addressed line and the in~orma-17 tion thus displaced will be transferred to the row 2 18 storage. Prior to describing the operation of movlng 19 an entire word to a new line, a special case invol~lng one word lines will be described.
21 If the overflow word is longer than the line, 22 the counters continue to decremen~ as a valld line 23 ending character is sought. When the left margln lS
24 reached indicating a one ~Yord line, the informati~n in row storage is transferred back to the page 26 storage and the overflow cllaractcr is put on tlle 27 next line in the same manner described ~lth respeCt ' `' 'lP' s~
1 to a space character. This operation lS depicted by 2 blocks 401, ~03, and 405.
3 As described above, entire words are reloca~ed 4 from the end of one line to the beginning o~ the next when one or more letters within the word advance 6 past the right margin location. Often, the last such 7 letter of a displaced word may be a syllable hyphen or 8 a required hyphen. Further, it is necessary to insert 9 a space character between the displaced word and the first word of the new line. The description which follo-ws will 11 describe the placement of an entire word on a new lineO
12 Referring now to FIGURE 6(b) of the drawings, 13 the operational steps defined by blocks 32S to 341 have 14 been described and they relate to the placement o~
characters located in row storage into the page storage 16 location defined by the Xl-Yl counters. As has been 17 described, when it is desirous to place an entire word 1~ on a new line, the row storage counters (Y2, X2) address 19 the first characters of the word and the page storage counters ~Xl, Yl) define the left margin location 21 of the line which will receive the word. The operatlon 22 thus proceeds through the steps of blocks 325 to 341 to 23 effect the placement of the word located in row storage 24 into page storage and through the operations described in FIGURE 6(a) to effect the placement of dlsplaced 26 characters into the opposite row of row storage until 27 the last character of the word to be inserted lS reached~

' ~ 4 8 ~S ~
1 The last such character may be elther an alphanumerlc 2 character, a syllable hyphen, or a required hyphen. If 3 it is an alphanumeric character, a space character must 4 be inserted after it to separate the inserted word from S the word which was previously adjacent to the left 6 margin of the line receiving the inse~ted word. If 7 the last character is a syllable hyphen, it must be 8 deleted thereby joining together the two syllables.
9 If the last character is a required hyphen, it must be placed adjacent to the word or syllable which was 11 previously adjacent to the left margin.
12 When the last character of a word to be placed 13 on a new line is an alphanumeric character, it is 14 placed on the new line of page storage in the same manner as the other characters preceding it, no lS special indicators being set. If it is a hyphen 17 character, the corresponding lndicator is set as 18 noted by blocks 333 and 335. Thereafter, the next 19 cha~acter position in row storage will be read as noted by block 325 and it will always be blank. This is be-21 cause each character of page storage is transferred to 22 the identical horizontal position in row storage. Thus, 23 the character position in row storage ad]acent to the 24 last character in a row is always blank and the operat~on then proceeds to block 372. Since a new paragraph has 26 not been entered, the steps of blocks 407 and 409 are 27 effected ~hereupon the Y2' and X2 ro~ storage counters s~
1 are changed to address the first character in the other 2 row of row stor'age, the indicator is set indicatlng that 3 all of the characters in the row have been transferred, 4 and, since it is assumed that there are displaced words on ~he line of page storage receiving the inserte~
6 word, the steps of blocks 411, 412, and 413 are next 7 effected.
8 As indicated by block 411, if the syllable hyphen 9 and required hyphen indicators are not set, a space is generated by the control unit and is written at the Yl, 11 Xl address which is located at the character position 12 immediately to the right of the last character of the insert d word. As indicated by block 412, if the required 14 hyphen indicator is set, one is subtracted from ~he Xl counter. The operation thereafter proceeds through exit 16 block 343 to the operational steps which cause the 17 character previously located adjacent to tha left margln 18 to be inserted next to the required hyphen character.
19 As indicated by block 413, if the syllable hyphen indicator is on, the syllable hyphen is cleared and 21 one is thereafter subtracted from the Xl counter~
22 thus causing the character previously located 23 adjacent to the left margin to be written immediately 24 to the right of the last character of the inserted word.
26 A further operation indicated by block ~13 is 27 the storage of the Xl address of the no~ cleared .:
:~': . i.: , ' 1~48~515 1 hyphen. This address is used in conjunction Wl th 2 the steps defined by blocks 396 and 397 of FIGURE 6(c) 3 to cause the hyphen to be replaced in its orlglnal 4 location if the remainder of the word to the right of the previous hyphen location overflows the new line 6 The movement of letters and words to subsequent 7 lines continues line by line down the page until a 8 paragraph mark is detected. The operation then pro-9 ceeds as has been described by transferring a line at a time down the page until a page end indication 11 is detec~ed. When the page end is detected9 the last 12 line which overflows into ~he row storage is clearedO
13 Thus, the last line is effectively removed from the 14 storage unit 9.
Swmmarizing the operation thus far, it has been 16 described how a character is keyed when in insert 17 mode and the keyed character is inserted at the 18 location addressed by the cursor. Thereafter, all 19 characters to the right of the keyed character are shifted to the right and, if a blank character 21 exists within the line of the cursor addressed line, 22 the operation stops awaiting the keying of the next 23 character. If, as has been described, the rlghtmost 24 character of the cursor addressed line is a space ,"
character or a data character, the space character 26 or data character is placed on the next llne belo~
27 the cursor addressed line and the operation proce~ds J ~ D-LE9-67-036 '''' ~74-r (-~L~4~

1 in the same manner, shifting all characters ln that 2 line to the right to thus compensate -for the newly 3 inserted characters. This operation continues line 4 for line down the page until a paragraph mark is detected or until no words are pushed off of a line 6 (detected by detecting blanks at the right margin).
7 If a paragraph mark is detected, the information located o 8 in the paragraph defined by the paragraph mark is shlfted 9 down page by one line, and any remaining information located in the paragraph addressed by the cursor is 11 placed on the thus vacated line. I-f the alphabetic 12 character located at the end of the line forms a part of a 13 word, the entire word is shifted to the new line. As 14 words are thus shifted to new lines and the operation proceeds down page, more than one word may overflow 16 thus necessitating the shifting of more than one word 17 to a new line. Qnce the shifting process ceases~
18 the cursor address is incremented by one and the 19 operator may thereafter depress another character keybutton and the character thus inserted will be 21 placed immediately to the right of the character 22 previously keyed. Thus, words, phrases and entire 23 sentences can be inserted into previous textO As the 24 keyboarding thus proceeds~ the cursor advances toward the right-hand margin.
26 In the description which follo~s, the operatlon 27 of the cursor as it advances across the line and is , ~75-' ,.: : , :

,r . - ~

~133LS13 ; 1 thereafter shifted to the next line will be descrlbed.
2 When the cursor addresses the last word of a line and 3 when the last word overflows the line, that portion 4 of the word located to the right of the cursor is shifted to the next line as though the cursor were 6 defining a space position. This operation is effected 7 by block 387 of FIGURE 6~c). Thus, as the cursor 8 approaches the right-hand margin, any word existing 9 between the cursor and the right-hand margin which overflOw5 is put onto the next line.
` 11 As has been described heretofore, a cursor 12 advance operation is initiated whenever it is detected : 13 that both rows of row storage are clear. This test 14 for row storage being clear is indicated by block 353 of FIGURE 6(c) and block 409 of FIGURE 6~b). In 16 either instance, once row storage is clear, the cursor - 17 is advanced by one position awaiting the keying of the 18 next character. Referring now to FIGURE 7 of the t~ 19 drawings, the cursor advance operation is depicted. As ,,, indicated by blocks 425 to 431, the cursor position is 21 read from the cursor position counters and is placed in 22 the Yl and Xl counters. Thereafter, if the cursor is not 23 at the right-hand margin, the Xl counter is incremented 24 by one position and then, as indicated by block 433, the new cursor location is stored in the cursor position 26 counters. At this time, the system awaits the keying 27 of the next character.

f s~
l A special circumstance exists when the cursor 2 reaches the right margin. When this is detected, as 3 denoted by block 429, the Ll indicator is set as 4 denoted by block 435 and the present cursor location adjacent to the right-hand margin is retained in the 6 cursor position counters.
7 Thereafter, i-f a character or space character is 8 keyed, it will be necessary to move the cursor 9 location to the next line and effect the insertion of the just keyed character into that line as the 11 first character of that line. Additionally, if the 12 just keyed character is an alphanumeric character, 13 ths preceding characters with which it forms a word 14 should also be moved to the next line along with it.
Referring now to FIGURE 6~a) of the drawings, when 16 the newly keyed character is keyed, the initial 17 conditions as heretofore described and indicated by 18 the start block 301 are effected. However, the opera-19 tion thereafter differs since the Ll indicator is detec-: , ted as depicted by block 305. The operations thereafter 21 effected are specified by block 437 which include the 22 writing of the just keyed character into row storage 23 and setting of the storage register entered latch.
24 The operation specified by block 347 of FIGURE 6~c) is next effected so tilat the just keyed character is 26 checked as indicated at block 357 to determine whether 27 it is a space character. If this character is a space , , .
. .

'.~
.. ' ' . ' ' ' ,~ ''' ' : '' 8~5~
1 character, it is desirous to remove it, and set the 2 cursor address at the left margin location. Therefore, ;3 assuming that the just keyed character is a space 4 character, the operational steps of blocks 359, 351, S 353 are e-ffected and the next operations specifled by 6 the exit to the exit block 355 are those of blocks 43~, 7 439, 441, and 443 of FIGURE 7. These operations effect 8 the storage of the new cursor location adjacent to the 9 left-hand margin of the newly addressed line. Additionally, the L2 indicator is set as denoted by block 443O
11 Referring once again to FIGURE 6(c) of the drawings, 12 if the newly keyed character was not a space character as -13 indicated by block 357, the next operation would be that 14 of the block 385 whereupon it would be detected that the Ll indicator was on. Next, a latch is set indicating 16 that the cursor address should be stored as denot~d by 17 block 445. The space or hyphen character located nearest 18 to the right-hand margin is then defined as has been 19 heretofore described. Once this character is found, all of the characters to the right of it are shifted down 21 to the next line along with the just inserted character 22 in a manner similar to that described above. The charac-23 ter in row storage located immediately to the right of 24 the just inserted character is a blank since the just inserted character location in row storage is at the 26 right-hand margin. Thus, the operation proceeds through 27 block ~09 of FIGURE 6(b) to sample the SC~ Lndicator ,~

¢

~8~L5~

1 which ilas been se-t as depicted in block 450 if both rows 2 of rol~ storage are clear. If both rows are not clear, 3 the SCA indicator is sampled as depicted in block 377.
4 In either instance, as denoted by blocks 451 and 452, the cursor position is defined as the contents of the 6 Yl counter and one less than the contents of the ~1 7 counter. Thereafter, once all of the characters are 8 shifted down page, the operation proceeds through one g of the exit blocks labelled "F" to the cursor advance operation depicted in FIGURE 7.
11 Referring now to FIGURE 7, it will be recalled 12 that the L3 indicator is set whenever it is necessary to 13 move the cursor to the next line along with a portion of 14 a word. This indicator prevents the cursor from being redefined at the left margin and thus, since the indicator 16 is on, the operation proceeds from block 439 to block 429 17 whereupon the cursor is incremented by one to await the 18 keying of the next character.
19 It will further be recalled that the L2 indicator is set as denoted by block 443 whenever the cursor 21 position addresses the left-hand margin location of 22 a new line. This indicator prevents information from 23 being keyed into a new paragraph after the automatic 24 placement of the cursor at the start of a new llne.
Referring now to FI~URE 6(a) of the drawings, 26 once a new character is keyed, the L2 indicator is 27 checked as denoted by block 303. Since this indicator .

.~ , . . . ......................... .

~8~5~
1 would be on, the operation proceeds to block 363 of 2 ~IGURE 6(c) whereupon the format storage lS C}leCked 3 to determine whether or not a paragraph mark exists~
4 If no such paragraph mark exists, the operatlon proceeds through exit block 367 to block 307 of FIGURE 6(a) in 6 a normal manner. If, however, a paragraph mark is 7 detected, the operation proceeds through block 369 ln 8 the manner heretofore described thus insuring that all 9 information within the line containing the paragraph mark is transferred to row storage so that it may 11 thereafter be shifted down by one line position.
12 (2) Replace hlode 13 A further text content control operation is 14 the replacement of stored data characters with keyed data characters. This operation is effected by de-16 pressing a "replace" key on the function keyboard 17C
17 of FIGURE 2. This signifies to the device that the 18 character to be keyed on the data keyboard 15 is to 19 replace the character located adjacent to the cursor.
Thereafter, the cursor will be incremented by one 21 position to the right and the opera-tion continues 22 until the right margin is reached. If further 23 characters are keyed, all characters to the right 24 of the last space character along with the keyed character are -transferred to the next llne o~
26 storage and hence to the next line of display.
27 If the next such line contains no ne~ paragraph, i8 1 the information previously occupying that portion 2 of the line now containing a partial or full word 3 is destroyed. If, however, the line contained a 4 paragraph mark indication, the entire paragraph is shifted by one line in a downward direction. Since - 6 the replace mode of opera~ion is similar in many 7 major respects to the insert mode of operation here-8 to-fore described, reference will bc made to FIGURES
9 6(b) and 6(c) and FIGURE 7, as well as to FIGURE 8 in the detailed descrip~ion of the replacè mode 11 operation which follows.
12 Referring now to FIGURE 8 of the drawings, a 13 state diag~am depicting the replace mode operation 14 is depicted. When the operator depresses a character keybutton in replace mode, various internal latches 16 are reset as indicated by block 501 and as discussed 17 heretofore with respect to block 301 in the description 18 relating to the insert mode operation. Thereafter, as 19 indicated by blocks 503 and 505, the L2 and Ll indica-tors are sampled to see whether the cursor has advanced 21 to the rightmost position in a line. Assuming that the 22 cursor is addressing a character in the middle of the 23 line, thè operation proceeds to block 507 and since no 24 paragraph indication has yet been -found~ proceeds to , ~ .
block 509 whereupon the character at the cursor location 26 is read from page storage and l~ritten in a cleared pre-27 defined buffer location in the working storage. This ' ~ -81-, ~, '. ' '. . - .

~lB~
1 location is denoted by the address Y3, X3. ~n thls manner, - 2 the character which is to be replaced is temporarily 3 stored in case it is thereafter needed. The next operation 4 effected is that of block 511 and since the storage reglster has not been entered, the reglster contents are written 6 at the cursor location, Yl Xl, in page storage as denoted 7 by block 513. At this time, the character previously 8 located in the input storage registçr 65 of FIGURE
9 3 has been written in the page storage 53 at the location defined by the cursor. Thereafter, the 11 operations of block 515 which indicates that a paragraph 12 mark has not been found and block 517 are effected, ~hen 13- the cursor advance operation of FIGURE 7 as denoted by 14 the exit block 519 is effected. As has been described heretofore with respect to FIGURE 7, the cursor advance 16 operation causes the Xl counter to increment by one 17 and thus advance the cursor across the page by one ` 18 character position. Thereafter, the device awaits the 19 keying of another character.
In the description which follows, it will be 21 assumed that the cursor has advanced to the right 22 margin location thereby causing the Ll indicator to 23 be set during the previous operation. Thereafter, 24 when the operator keys a character, the operatlon pro-ceeds from block 505 to block 521 whereupon the 26 character in the input register is stored ln row 27 storage. Thereafter, the operation proceeds through e~lt ~82-r .
. .
~48~Ls~
l block S23, to block 347 of ~IGURE 6(c). The character 2 just keyed can either be a space character or an alpha-3 numeric character. If it is a space character, the steps 4 of blocks 357 and 359 and then blocks 351, 353 are effected S This operation merely causes the space character ~o be 6 deleted and the row storage addresses to be updaledO rhere-7 after, the cursor advance operation of FIGURE 7 is effected X as denoted by exit block 355. The L2 indicator ia set by 9 the cursor advance operation and the operation with respect to the L2 indicator is identical to that described here~o-ll fore with respect to the insert mode operat~on.
12 If the character which is keyéd in replace mode is 13 an alphanumeric character, the operation proceeds from 14 block 357 of FIGURE 6~c) to block 385 and thence to block 445. This operation causes ~he cursor address to be 16 stored and, thereafter, the operation proceeds to block 17 389. The oper~tions that follow thereafter are identical 18 to that described with respect to insert mode and cause l9 all alphanumeric characters located between the just keyed character and the last space or hyphen character on the 21 line to be transferred to row storage. Once this 22 operation is complete, the operations defined by block 393 23 and blocks 361, 363, and 365 are effected. These opera-24 tions cause the Xl and Yl coun~ers to advance to the left margin location of the llne beneath the cursor, and to 26 check that line to see whether it contains a paragraph 27 mark. If it contains no paragraph mark, the operat1on ~83-.

5~

1 proceeds through exit block 367 to blocks 5079 509, and 511 2 of FIGURE 8. Thereafter, the operation proceeds through - 3 exit block 525 of FIGURE 8 to block 325 of FIGURE 6(b)~
4 This operation, which has also been described with respect to the insert mode of operation causes the first charac-6 ter of the now displaced word to be read as denoted in block 7 325 and thereafter written in page storage as denoted by 8 block 341. The operation then proceeds through exit 9 block 343 to block 515 of FIGURE 8 and thereafter through blocks 517, 527 and 529. In this manner, the charact0rs ll located in row storage are transferred to the new line 12 of page storage located beneath the cursor addressed 13 line and the characters previously occupying those l4 positions in page storage are deleted. Eventually, all of the characters on the cursor addressed line which 16 were placed in the row storage will have been thus trans-17 ferred to the new line and the operation proceeds from l8 block 327 of FIGURE 6(b) to block 409 of FIGURE 6~b)o l9 At this time, an indication that the row storages are clear will be provided. Since an extra character read 21 cycle will have been taken at this time, it is necessary 22 ~o recall ~he character written in working storage and 23 place it back at ~he Yl, Xl address. This operation occurs 24 between blocks 409 and 450. Thereafter, the cursor advance operation described with respect ~o FIGURE 7 is 26 effected.
27 Referring once again to FIGURE 8, one further -~4-B~58 1 condition that can exist is that if the new line which 2 will receive the word from the cursor addressed linc 3 contains a paragra~}l mar'-, the operation will proceed from 4 block 507 to block 531 w}lereupon the information located in the line beneath the cursor containing the paragraph 6 mark is written into row storage. Thereafter, when the 7 entire line has thus been transferred to row storage, an 8 indication is provided as indicated by block 533 which 9 causes the operation to proceed ta the full line transfer operation of block 383 described heretofore with respect 11 to the insert mode operation. In this manner, the just 12 keyed letter located on the cursor addressed line 13 is transferred to the next line and the information 14 on the next line which contained a paragraph mark is shifted down ~age by on^ line and each line 16 thereafter is shifted in a similar manner down page.
17 ~3) Delete Mode 18 Referring now to FIGURE 9 of the drawings, a 19 state diagram of the operation of the data composer, editing, and formatting system shown in FIGURE 3 when 21 operating in delete mode is depicted. When the operator 22 depresses the "delete" key on the function keyboard 17, 23 he is signifying to the machine that characters there-24 after addressed by the cursor should be deleted and re- -placed with blank characters. The delete mode of 26 Operation operates in conjunction with the cursor right 27 and cursor down logic of ~IGURES 4 (a) ~nd ~(b) so that .

'.~
.~ `''"~

\ ~

048~
.
1 deletion is effected a character at a time or a llne at 2 a time going respectively, from :Left to right and from 3 up to down on the page. Rapid motion controls operated 4 in conjunction with the cursor cause complete lines to be rapidly deleted. Thereafter, when the opera~or releases 6 the "delete" key, automatic closure of the text is effected 7 A description of the closure mode of operation follo~s the B present description.
9 When the operator depresses the "delete" key, as in-dicated by start block 550, the cursor address is loaded ll into the Xl and Yl counters as deno~ed by block 551 and, 12 thereafter, a check is made to see whether the "close to"
13 address has been stored as indicated by block 553~ Since 14 ~he ~close to" address has not previously been stored, lS the operation of block 555 is effected whereupon the 16 address of the cursor is stored in working storage 17 for later utiLi~ation in the close mode operation to be 18 described hereinafter. Thereafter, the operation of 19 block 557 is effected whereupon the contents of page storage located at the cursor address are read. Since the 21 delete key is depressed, the opera~ion proceeds through 22 block 559 to block 561 where a blank character ïs 23 written at the cursor address. Thereafter, as indicated 24 by block 563, a check is made to determine whether the cursor is at ~he right margin. If the cursor position 26 is not at the right margin, the Xl counter is incremented 27 by one as denoted by bloc~ 565 and thercafter a check l is made to determine whetller the cursor down button has 2 been depressed as indicated by block 567. If thc cursor 3 down button has not bcen depressed, this indicates that the 4 cursor right button has been depressed. Therefore the steps of block 569 are effected to determine whether the 6 rapid motion key has been depressed. If the rapid 7 motiOn key has not been depressed, a non-repeat la~ch 8 is set as indicated by block 571, a test is made for out-9 put overlap noted in block 572 and the new cursor address is stored in the cursor coun~ers as indicated by block 11 573. Thereafter, the operation proceeds to block 575 12 where the non-repeat indicator is tested. Since the non-13 ~epeat indicator was set, the operation stops awaiting the keying of the next character. If a flag bit is de-tected at the format storage position as noted by block 16 569, the cursor address is prevented from being updated as noted by block 578. The flag bit indicates that an 18 output operation is in progress and will be discussed here-19 inafter.
The above description assumes that the cursor ~1 right keybutton was depressed and that the rapid 22 motion keybutton was not depressed. If the cursor 23 down keybu~ton was depressed, ~he operation would pro-24 ceed from block 567 to block 557 and continue in a loop until the right margin was reached, at which time 26 block 563 would provide an indication causing the 27 operation to proceed to block 579. If the cursor l~as 28 not addressing the last linc of storage in p~ge storage, .

.~ ~

, - 1048158 1 the operation proceeds to block 581 whereupon the cursor 2 position as denoted by the Xl and Yl counters is incre-3 mented one line down page and set to the left margin.
4 Thereafter, the operation proceeds to block 569 and eventually to stop block 577 if the rapid motion key 6 is not depressed.
7 Whenever the rapid motion key is depressed, the 8 operation proceeds from block 569 to block 583 where a 9 check is made to determine whether the cursor down key has been depressed. If the cursor down key has not been de^
11 pressed, and if the Xl counter has not yet reached the 12 right margin, the contents of the Yl, Xl counters are 13 stored as the new cursor address. Since the non-repeat 14 latch was not set, the next character is read as indicated lS by blocks 551, 553, and 557. Thereafter, the operation 16- proceeds in a manner described heretofore until the right 17 margin is reached as indicated by block 585. The non-repeat 18 latch as lndicated by block 571 is then set and the opera-19 tion stops as indicated by the stop block 577. At this time, the characters between the original cursor position 21 and the active right margin will have been deleted.
22 If the rapid motion key and the cursor down key are 23 depressed, the operation proceeds from block 569 to block 24 583 and thence to block 587 whereupon the format storage 2S of the new line position of the cursor is read. If a 26 paragraph mark is found as denoted by block 589, the 2~ non-repeat latch is set as denoted in block 571 thereby 28 preventing the cursor from moving down into the nc~

~L~4~
1 paragraph. If a paragraph mark is not follnd, the non-2 repeat latch is not se-t and the cursor continues to mo.le 3 from left to right across the line and then down to the 4 next line until a paragraph mark is detected.
Once the operation reaches a stop condition as 6 denoted by block 577, the operator must thereafter re-7 lease and depress a cursor control key to effect further 8 deletion or release the "delete" key which effects 9 closure of the text automatically.
An additional operation that can be performed which 11 is similar to the dele-te operation described above is 12 the deletion of underscore characters from page storage.
13 When the delete underscore keybutton is depressed, th~
14 operation proceeds from block 557 to block 591 and thence to block 593 whereupon the character read from 16 the cursor location containing an underscore is written 17 back in without.the underscore mark. In a similar 18 manner, when the "underscore" key is depressed, the 19 operation of block 595 and block 597 is effected where-ùpon the character read from the cursor position is re-21 written with an underscore notation. This operation will 22 be referred to hereinafter in the description relating 23 to text modification. -24 (4) Closure Mode Referring now to FIGURE 10(a) of the drawings, a 26 state diagram of the sequence of operations performed by 27 the data editing and formatting system of the present in-28 vention as depicted in FIGURE 3 when operating in the - ,, .~ . .
.

~41~58 1 closure mode is clepicted. The closure mode of operation 2 is utilized when the operator desires to mo~e text from 3 a down page location to an up page location, all text 4 located between the two locations being destroyed. In the above description relating to the delete mode o-f 6 operation, it was described how blanks were inserted 7 in place of character information. It was further 8 mentioned that when the operator releases the delete 9 key when in that mode of operation, automatic closure of the text is effected. That is, the text is auto-11 matically closed after a delete operation so that 12 blanks no longer remain. Thus~ the closure mode of 13 operation complements the delete mode of ope~ation.
14 Sometimes it is desirous to close text by identifying the up page location (referred to hereinafter as the 16 "to here~ address) and thereafter identiFying the 17 down page location (referred to hereinafter as the 18 "from here" address) and thereafter effecting closure 19 of the text together, deleting all characters located intermediate to the "to here" location and the "from 21 here" location without utilizing the delete mode o:F
22 operation. This type of operation is effected by 23 positioning the cursor to the up page location and 24 thereafter depressing the "to here" key on the control keyboard 17D of FIGURE 2 and thereafter positioning 26 the cursor to the down page location and depressing 27 the l'close" key on the control keyboard 17C of 28 FIGURE 2. When this operation occurs, the text ;

9~

:
:, ' ,.

~0~8~S8 1 located at the "from here" address is caused to be 2 shifted so that it is adjacent to the "to here"
3 address. When effecting this operation, it is 4 necessary that words are not split or truncated and that hyphenation symbols be properly maintained or 6 deleted as necessitated witnin the newly composed text.
7 In this manner, the operation is similar to the insert 8 mode of operation previously described.
9 , In the description which follows, three major opera~ional loops within the operation will be described.
11 In the first operational loop to be described, the charac-12 ter located at the down page location ~"from here" address) 13 is shif~ed to the up page location ("to here" address) 14 and the address cbunters defining these locations are incremented by one. Thereafter, t~e next character is 16 shifted up and tne operation continues across ~he page 17 until the i'to here" address equals the right margin 18 or until the "from here" address equals the right 19 margin. I~henever the 'ito here" address equals the right margin, a second operational loop is entered 21 which ins~res that the word located adjacent to the 22 right-hand margin is not split or truncated, but in ~3 stead, is shifted to the next line of text. Whenever 24 the "from here" address equals the right margin, it is necessary to insure that -a space character is inserted 26 at the "to here" address and, ~hereafter, the "from 27 here" address proceeds to ~he next line oE s~orage to 28 read the next character or words. This operation is ' ` ! `' : . , , , ' ` ' ' ' ' ~": ' 1 ~escribed in the thlrd oper~tional loop. Speclal _lrcum-2 stances such as finding a paragraph mark, a syllable 3 hyphen, or a required hyphen at the end of a llne are 4 handled within the three baslc operational loops.
S Referring now to FIGURE lO~a) of the drawlngs, 6 when the operator depresses the "close" key, or when 7 the operator releases the "delete" key as descrlbed 8 in delete mode, the closure operation is started as de-9 noted by the start block 701. At this time, the cursor address ~located adjacent to the "from here" location) 11 is placed in the Y2 and X2 counters~ The "to here"
12 address, which was stored in a prédesignated register of 13 working storage is placed in the Yl and Xl counters 14 Thereafter, the Yl, Xl address is stored in the cursor position counters as the cursor address to be utili~ed 16 af~er the operation is complete. The operation then 17 proceeds to the step of block 703 where a check is made 18 to insure that the "to here" address does not equal the 19 "from here" address. The operation stops as noted by block 704 if these addresses are equal, since the text 21 would already be closed. If the addresses are not 22 equal, the character in page storage located at the 23 "to here" (Yl, Xl) address is read as denoted by ~lock 24 705. Thereafter, the blank character indicator L10 lâ
reset at block 706 and then a test is made as indica~ed 26 by block ?07 to determine whether the "from here" loc~-27 tion has proceeded beyond thc right margln. Since th-s .

. ' .. . . :. . .
' ' : : .. ' .
.. . . . . . .

s~ ;~
1 condition cannot exist when the -Eirst character is to 2 be transferred, the sequence continues to block 708 to 3 check for a hyphen key operation to be described and then ~ to block 709 whereupon a character is read from the "from here" address. As noted, a corresponding indicator is set 6 the character thus read from the "from here" location is 7 blank, if it is an alphanumeric character, if it is a re-8 quired hyphen, or if it is a syllable hyphen. Thereater, 9 the sequence proceeds to block 711 where the indicator denoting that the "to here" address has proceeded 11 beyond the right margin is sampled. Since this indi-12 cator cannot be set during the first character -~
13 Operation, the sequence continues to block 713 where 14 the character read from the 'ifrom here" address is written into the "to here" location. If this character 16 is a syllable hyphen, it is cleared, no character 17 belng written and the syllable hyphen address is 18 stored in case it is necessary to thereafter reinsert 19 the syllable hyphen at the !'to here" location. There-after, the operation proceeds to block 715 where a check 21 is made to determine whether the X2 counter has reached 22 the right nlargin location. I-f it has not reached the 23 right margin location, the operation proceeds to the 24 step of block 717 where the X2 counter is incremented and thereafter to block 718 to check for a margin adjust 26 operation and then to block 719 where the Xl counter is 27 checked to determine whether it has reached the right ' ., ;. : . , : . .

' ' - . , ': , . ; .

1 mar~in position.
2 If the Xl countcr has not reached the right margln 3 position, a check is made as inclicated by block 721 to 4 determine whether the L10 indicator indicatlng tha~ a blank character was read from the "from here" locatlon 6 or the syllable hyphen indicator indicating that a 7 syllable hyphen read and clearecl from the "from here"
8 location has been set. In either instance, the sequence 9 proceeds directly to block 723 thereby insuring that the Xl counter is not incremented. In this manner, blank 11 characters encountered at the "from here" loca-~ion are 12 not stored at the "to here" location. If the L10 indica-13 tor and syllable hyphen indicator are both off, the 14 operation proceeds to block 725 whereupon the Xl counter is incremented by 1 and thereafter proceeds to block 723.
16 In this manner, the operation proceeds so that the 17 next character read from the now incremented "from here" v 18 location is stored at a position adjacent to the character 19 sto~ed in the "to here" location. As indicated by block 723, a test is made to determine whether the Xl counter 21 had reached the right margin. If the Xl counter had 22 not reached the right margin, the character located 23 at the address defined by the no~ incremented Xl 24 counter and ~he Yl counter is read from page storage as denoted by bloc~ 705. The sequence continues ln 26 this operational loop sequentially placing all alpha-27 numeric characters located to the right of the "from . . .
: . . .
. . . . .

5~
1 hcre" address in that row of page storage to locatlons 2 to the right of thc "to here" address in that row of 3 page storage. Blank characters at the "from here"
4 and syllable hyphens at the "from here" address are not stored in the "to here" address location.
6 Eventually, either the X2 counter or the Xl counter 7 will reach the right-hand margin.
8 In the description which follows, it will be 9 assumed that the Xl counter reaches the right margin and, when this event occurs, as noted by block 719, 11 the operation proceeds to block 727 whereupon the L7 12 indicator is set. When the L7 indicator is set, 13 the operation proceeds from block 723 to blocks 705 and 14 707 and thereafter to block 709 where the character located at the "from here" address is read in the 1~ normal manner. Thereafter, the operation proceeds from 7 block 711 to block 729 where the LlO indicator is 18 sampled to determine whether the character read from 19 the "from here" address is a blank character. If it is a blank character, the operation proceeds to block 21 713 and through the previously described operations 22 whereby the "from here" address is incremented. There-23 after, the next character from the "from here" addresS
24 is read and tested to see whether it is a blank charac-ter. l~hen an alphanunleric character is thus found as 26 indicated by bloc~ 729, the operation proceeds to block 27 731 where the character is tested to determlne ~.~hether ,.~

.

~' ' , . . .
:~ .

~81S~

1 it is a space character or not.
2 If a space character is detected as denoted by 3 block 731, the space is cleared as denoted by block 733 4 and thereafter the Xl counter is set to the left margin location, the Yl counter is incremented by 1, and the ; 6 L10 and L9 indicators are set OJI as denoted by block 735.
7 In this manner, the ~'to here" address advances to the 8 left margin loca~ion on the next line of page storage.
9 The L10 indicator is set to prevent the Xl counter from thereafter advancing as noted in block 725 and the 11 operation proceeds as noted in block 737 to check whether 12 the "to here" address is ~he same as the "from here"
13 address. If these addresses are equal, the operation stops, 14 as noted by stop block 739. Assuming that the addresses are not equal, the operation proceeds to block 715 and J6 continues through the first operational loop described 17 until the X2 counter reaches the right margin location.
18 I the character read from the ,'from here" address 19 is neither a blank character, as indicated by block 729 3 . 20 nor a space character as indicated by block 731, the 21 operation proceeds to block 740 whereupon the character 22 is tested to determine whether the hyphen operation pre-23 ceded the close operation and whether the character is a 24 syllable hyphen~ and, if not, the character is rewritten at the "from here" address as noted by block 741. There-26 after, the operation proceeds through exit block 743 to 27 a "word around" operation depicted in FIGIJRE lO(b) of 28 the drawings.
i D-LE9-67-036 . ~

. .

: ' . ' ' .

1 Referring now to FIGURE lO(b) of the drawings, the 2 system operation is depicted wherein it is insured that 3 no words are truncated or bro~en when it is necessary to -4 increment the "to here" address to the next line of S storage. This operation effecti~ely backs up the "to 6 here" address to the last space character on a line and, 7 at the same time, causes the information to the right of 8 the space character to be once again stored at the "from 9 here" address. Thereafter, the t'to here" address is incremented to the next line and the information is 11 again read from the "from here" address to the new 12 line location of the "to here" address.
13 Thus, as the operation proceeds from the exit block 14 743 of FIGURE lO(a) to block 745 of FIGURE lO(b), a check is made to determine whether the X2 counter and 16 hence the "from here" address is at the left margin 17 . location. If it is not, the X2 counter is decremented 18 by 1 as indicated by block 747 and thereafter the 19 character at the "to here" address lS read as indicated by block 749. If the character thus read is not a space, 21 it is checked as indicated by block 753 to determine 22 whether it is a required hyphen and, thereafter, a 23 check is made as indicated by block 755 to determine 24 whether a syllable hyphen address previously stored has been reached. Assuming that none of these condi-26 tions are met, the character thus read from the "to Z7 here" address is written at the "from here" address, and D-LE9^67-036 .
:

~' 1 the "to here" address is decremented by 1 as depicted 2 in block 757. The operation specified by block 745 is 3 then again effected and, in this manner, the sequence 4 causes the last word located adjacent to the right margin S of the line containing the "to here" address to be trans-6 ferred to the "from here" address. Both addresses are 7 decremented until the entire word is transferred. The 8 word ending is indicated by block 751, 753, or 755. If 9 the word ending character is a space character, the space character is cleared as specified by block 759 and the 11 operation proceeds to the exit block 761. If a required 12 hyphen is detected as the word ending character, it 13 is rewritten at the "to here" address as denoted by 14 block 763. If the syllable hyphen address is detected as indicated by block 755, this indicates that a syllable 16 Xyphen previously existed within the word and the opera-17 . tion automatically thereafter replaces the syllable h~-phen 18 at its proper location as indicated by blocks 765 and 76 19 Thereafter, the operation proceeds through exit block 761 ~o block 735 of FIGURE lO(a). Referring now ~o 21 FIGURE lO(a), it can be seen that once the entire word 22 is transferred from the "to here" address to the "from 23 here" address, the "to here" address is incremented to 24 the new line position and thereafter the steFs of the main operational loop starting at block 715 are effec~ed.
26 The above description has related to the second loop 27 which is entered when the "to here" address reaches the .~ ~
; ~98-- ~_ .
':: . . . ' ' ~
"~:': ' ' '. . , '. . ,. ;. , :' ' ' ' -~¢~41~S8 1 right margin position. When this event occurs, the 2 character brought up from the "from here" addless can be 3 a blank, a space, or an alphanumeric character. As has 4 just been described, if it is an alphanumeric character, the entire word of which it forms a part located to the 6 left of i~ at the "to here" line of page storage is 7 transferred back to the "from here" line of page 8 storage and thereafter, placed on the next successive 9 line following the "to here" addressed line. There-af~er, the operation proceeds to the first loop described 11 until the "from here" address reaches the right-hand 12 margin. At this time, as noted in block 715, the 13 operation proceeds to block 768 whereupon the L5 indicator 14 is set. Thereafter, the operations of the first loop de-scribed are effected until block 707 is reached. Block 16 707 indicates tnat `the right margin has pre~iously been 17 reached and therefore the X2 counter is set equal to 18 the foTmat storage and the Y2 counter is incremented 19 by 1. This operation is noted in block 769. In this manner, ~he "from here" address advances to the next 21 line of storage. Thereafter, a test is made as indicated 22 by block 770 to determine whether a paragraph mark exists 23 in the format storage location of the newly addressed 24 line. If a paragraph mark does no~ exist, the operation proceeds to block 771 where a space character is inserted 26 into the storage register 71 of FIGURE 3, if the last 27 character read, as indicated by the L8 indicator, was . .
, ~:' ' ~ (~48~5~3 1 an alphanumeric character other than a required hyphen 2 or syllable hyphen. If the last character thus read 3 was a required hyphen, a syllable hyphen, a space 4 character, or a blank character, the L10 indicator is set S thus indicating that a space character should not be 6 stored at the "to here" address. Additionally~ a blank 7 is loaded into the storage register 71. Thereafter, 8 the L6, L8 required hyphen and syllable hyphen indicators 9 are reset and the operation proceeds to block 711.
Assuming that the right margin of the "to here" address 11 had not been reached, the L7 indicator would be off and 12 therefore the contents of the storage register would be 13 written at the "to here" location defined by the Yl, Xl 14 counter as indicated by block 713. In this manner, a lS space character is inserted whenever the "from here"
16 address advances from one line to another. (This 17 - operation replaces a carrier return with a space charac-18 ter.) Thereafter, the first operational loop is entered, the "from here" address having been incremented by one line.
21 If a paragraph mark is detected when the "from 22 here" address is incremented to the next line, the 23 operation proceeds from block 770 to exit block 772 and 24 thence to block 773 of FIGURE lO~b). At thls time, a test is made to determine whether the L9 indicator is 26 on and, if it is not on, the Xl counter is set at the 27 left margin location and the Yl co~lnter is incremented ,,. . :
: - ` '' ' ' :

s~

1 by one position as denoted by block 775. Thereafter, 2 the Yl, Xl address is compared with the Y2, X2 address 3 as denoted in block 777 and, if they are equal, the 4 operation stops as denoted by stop block 779. If they are not equal, the operation proceeds to a full line 6 transfer routine described with respect to the insert 7 mode and denoted by block 781. If the L9 indicator is 8 on indicating that the Xl counter has just been set to 9 the left margin stop, the operation proceeds directly to the full line transfer operation as denoted in block 781 11 Thus, when a new paragraph is found at the "from here"
12 address, the "to here" address is set to a new line 13 (unleSs it had just been set there) and the paragraph 14 is transferred on a line for line basis to the new line and the lines following it. It is important to 16 further note that the full line transfer is effected 17 only if no text characters exist o~ the line above the 18 paragraph mark. Thus, prior to effecting the full line 19 transfer operation, the content of the line above the paragraph mark is checked between the ull left and 21 right stops for character information. If a data 22 character is found, the operation stops. If no data 23 character is found, the next prior line is checked and 24 so on until data is found. Thereafter, transfer of the line containing the paragraph mark to the topmost blank 26 line is effected.
27 (E) Text Modification Control 28 The foregoing description has related to the .
, .. ~ , ~4~
1 operation of the data composing~ editing and formatting 2 system of the present invention when varying the content 3 of the text information stored in the storage unit 9 4 of FIGURE 1. As has been heretofore described, it is often desirous to modify the text confirmation and order 6 once its content has been ascertained. Once the text - 7 confirmation and order is achieved, one may thereafter 8 desire to change the text content. Thus, the text content - 9 controls described in the preceding section and the text modification controls to be described in this section are ~1 used interchangeably by the operator in order to achieve ;: 12 the desired final document.
. . . .
13 As has been described! there are five text modifica-14 tion controls: underscore, center, hyphenation, transfer line and margin adjust. The underscoring control is 16 utilized to effect underscoring of text items and to re-l7 move such underscoring. This control may be effected a 18 letter at a time, a word at a time, a line at a time, or 19 a pa~ag~aph at a time. The centering control is utilized to a~tomatically center stored text about the column 21 which is located mid-way between the acti~ated margins.
22 Hyphenation control is utilized to automatically split 23 words a~ locations designated by the operator to thereby 24 effect a more even right-hand margin. Transfer line con-trol is utili~ed to transfer lines of text and wllole 26 paragraphs of text from one location to ano~her location 27 within a page. The margin adjust control is utilized to 23 change existing margins and to thereaftcr effect the .
:' : . , 1 automatic conformation of the tcxt within the newly de-2 fined margins. This control can be effccted a line at 3 a time or a paragraph at a time.
4 In the description ~hich follows, each of the ~ext modification controls will be described.
6 (1) Underscore Control 7 Referring now to FIGURE 2 o the drawings, when the 8 operator desires to underscore a word or line of text, 9 the cursor is placed adjacent to the first character of the text to be underscored by manipulatlng the cursor 11 motion controls of the function keyboard 17a. Next, 12 the "underscore" key is depressed signifying that an 13 underscore operation is to be effected. Thereafter, 14 the operator depresses either the cursor right or lS cursor down keybutton on the function keyboard 17A. As 16 the cursor moves across the page or down the page, 17 underscoring of words and lines, respectively, is 18 effected.
19 Referring now to FIGURE 9 of the drawings, the operation of the controls which effect the underscoring 21 operation have been described with respect to the delete 2~ operation. Briefly recapitulating this operation, when -23 the operator depresses the "underscore" key and thereafter 24 depresses the cursor right or cursor down key, the charac-~S ter addressed by the cursor is read from the page storage 26 unit as indicated by block 557 and then is rewritten as 27 indicated by block 597 with an underscore. Thereafter, 28 a test is made to determine whether the right margin .~ ' ' ''~'~
.

'' ~ J~8~8 l has been reachcd and 9 if it has not been reached, the 2 cursor is moved to the right. Thereafter, a test is made 3 to determine whether the cursor clown key was depressed 4 or whether the rapid motion indicator was on. In elther S event, the entire line located to the right of ~he 6 initial position of the cursor is underscored. If the 7 cursor down and rapid motion operation is designated, the B entire paragraph is underscored. Underscores are deleted 9 in the same manner.
(2) Center Control _ 11 When the operator desires to center a line of text 12 about the column located mid-way between the active margin 13 stops, the operator manipulates the cursor motlon control 14 keys on the function keyboard 17A to place the cursor at the desired line location. Thereafter, the "center" key 16 on the function keyboard 17D is depressed.
17 Referring now to FIGURE 11 of the drawings, the 18 operation effected by the system when the "center" key is 19 depressed is depicted. Depression of this key is indica~ed by the start block 801 and causes the left margin stop 21 location of the addressed line to be gated into the Xl 22 counter, the line address of the cursor addressed line 23 to be gated into the Yl counter, and the line address 24 of row storage to be gated into the Y2 counter. There-after, the operation proceeds through four major opera-26 tional loops, 803, 805, 807 9 and 809. The operational 27 loop defined by the blocks within loop 803 causes the 28 number of spaces and blanks ~etween the left margin and .

~,~

, : ~ , 1 the first t~x$ char~cter to be countcd. The number of 2 such spaces and blanks is stored in a register in worklng ~ storage denoted as "Cl". ~hen the first tex~ character is 4 detccted, the operation proceeds to block 811 whereupon the Xl counter is set equal to the right margin stop. There-6 after, the number of spaces and blanks located between the 7 right-hand margin and the last text character on a line 1S
8 counted and stored in a register denoted as "C2" under the 9 control of the operational loop 805.
The operational loop 807 is next effected whereupon 11 the entire line of text located between the margins of 12 the cursor addressed line is transferred to row storage.
13 Thereafter, the operation proceeds to bloc~ 813 of the 14 operational loop ~09. At this time, the Xl and X2 counters are set equai to the left margin stop of tne 16 cursor addressed line. Thereafter, the X2 counter is 17 incremented by a number of times equal to the count in 18 the Cl counter. A count equal to the sum of the count in 19 the Cl and C2 counters divided by 2 plus the count of the left margin location is loaded into ~he Xl counter. At 21 this time, the X2 counter will be addressing the first 22 letter of text in row storage while the Xl counter addresses 23 the position that will contain the first character of te~t 24 of the centered line. Thereafter, the te~t characters in the row s~orage locations are sequentially transferred to 26 adjacent positions of the page storage. In thls manner"
27 the line of page storage addressed by the cursor will D-LEg-67-036 - 105 -.

~LF~8~5B

1 be centered within the existing margins. The operatlon 2 stops as noted by block 815 when an entire line has 3 been transferred or as denoted by block 816, if no text 4 characters existed on the line to be centered.
(3) llyphen ~ontrol 6 The hyphen controls are utilized by the operator 7 when it is desirous to shift a portion of a word located 8 adjacent to the left margin of a line to the line imme-9 diately above it so that it will form the last portion of text on the line immediately above it. Since all of 11 the text content control operations allow only full words 12 or syllables which have been defined with hyphens to be 13 placed on a new line and since all such operations opti-14 mize the number of words that can be placed on a line, hyphen control is necessitated only when the first 16 word of a line is relatively long compared with the 17 margin settings or when the operator desires to remove 18 undesirable appearing rivers and bays formed by vertical 19 lines of space characters.
In operation, the operator effects the placement 21 of the cursor adjacent to a character location within 22 the first word of a line. Thereafter, the operator 23 depresses the "hyphen" key on the function keyboard 17D
24 and all of the characters located to the left of the cursor character are placed on the preceding line.
26 Additionally, a hyphen character is placed on the pre-27 ceding line as the last character of that line and a 28 space character is placed to the left of the shifted . . .

:. . . . .

s~
1 syllablesO Thereafter, the character identif~ed by the 2 cursor and all characters ~ollowing it ln the cursor 3 addressed line are shifted to the left so that the charac-4 ter identified by the cursor is :Located ad~acent to the left margin position. By thus shifting the characters ~n 6 the cursor addressed line, there may be room for the first 7 word(s) in the line following the cursor addressed llne.
8 In this instance, the first word(s) of the ]lne followlng 9 the cursor addressed line may be shifted to the cursor addressed line with subsequent information on following 11 lines being shifted up page. This operation is identlcal 12 ~o the operation described with respect to the closure 13 mode of operation in the precedin~ text content c3ntrol 14 section description.
If the syllable(s) identified by the operator ln 16 the word desired to be shifted to the preceding llne 17 do not fit on the preceding line, the text remalns as 18 displayed, there being no shifting operation ef~ected 19 by the depTession of the hyphen key. Thus, syllable splitting and hyphenation is effected only when the 21 syllable and the hyphen mark fit on the preceding llne 22 within ~he defined margins. Additionally, if tke word 23 to be hyphenated had previously been hyphenated, the 24 previous hyphen is removed.
Referring now to FIGURE 12 of the drawlngs, the 26 hyphenation operation is depicted. When the operator 27 depresses the "hyphen" key, the Yl and Y2 counters are ~8~S8 1 set equal to the cursor vertical position, the X2 2 Counter is set equal to the cursor hori~ontal posltion, 3 and the Xl counter is set equal to the right margin 4 stop location. These operations are denoted generally by the start block 825. Thereafter, as denoted by 6 block 827, a test is made to insure that the cursor is 7 not addressing the top line of the page. The Y counters 8 are then decremented by 1 as denoted by block 829 so g that they then address the line above the cursor. There-after, as denoted by block 831, the character position 11 located adjacent to the right-hand margin of the line 12 above the cursor is read and rewritten. This character 13 is tested to determine whether it is an alphanumeric 14 character or a blank character. If it is a blank charac-ter, the line full indicator is reset as indicated by 16 block 833 and the Xl counter is decremented by 1. There-17 after, the operation proceeds again to block 831 where 18 the character position defined by the now decremented 19 Xl counter is read. This operation proceeds, with the Xl counter being decremented until an alphanumeric 21 character is read. Once an alphanumeric character is 22 read, it is tested as noted by block 835 to determlne 23 whether or not it is a syllable hyphen. If it is not a 24 syllable hyphen, the L8 latch is set which controls forcing a space in the closure operation as noted by 26 block 836. If the character is a syllable hyphen, lt 27 indicates that the word ~Yhich the operator is attempting 28 to hyphenate has previously been hyphenated and that the . .

i8 1 operator is attemptillg to redefine the hyphen poSltlon2 Thus, the syllable hyphen address is stored ln case the 3 new attempt fails (e.g. the syllable(s) to the left of 4 the cursor will not fit on the line above it) and lt lS
necessary to reinsert the previously defined syllable 6 hyphen. Thereafter, the Xl counter is decremented. Thls 7 step insures that the syllable hyphen previously defined 8 will be eliminated providing that the newly hyphenated 9 syllable fits on the line. These steps are indicated by .10 block 837.
; 11 The operation proceeds fr~m block 835 to block 839 12 if the first alp`habetic character detected is not a 13 syllable hyphen and from block 837 to block 839 if lt is 14 a syllable hyphen. Thereafter, the line full indicator is sampled to determine whether it is set. If it is set, - 16 this indicates that there are no blanks on the line ~ 17 above the cursor addressed line and the operatlon s~ops , ~ . , 18 as denoted by block 841. If the line full indicator 19 is not set, the Xl counter is incremented as denoted ~o by block 843 so that it is addressing the character 21 location on the line above the cursor which is adapted 22 to receive the character adjacent to the left margln 23 location of the cursor addressed line. This location 24 is either immediately to the right of a character or at the syllable hyphen location if one existed in the 26 line above the cursor. Thereafter, the operation pro-27 cèeds-to block 845 whereupon the hyphen indlcator and 2~ the L6 indicator are set arld thence to e~i~ bloc~ 847 to @~
. ~ ..

,a.V~JL~7~
1 block 707 of the closure operation depicted In FIGU.~E
2 lO(a).
3 Summarizing the operation thus fnr descrlbed, 4 the operator causes the cursor to be placed wlthln a word loca~ed adjacent to the left margin at a positlon 6 where it is desired to split the word. Thereafter, 7 the Xl and Yl counters define the first blank character 8 location on the preceding line which is adapted t~
9 receive the split syllable of the word addressed by -the cursor. Referring now to FIGURE lO~a) of the 11 drawings, the operation proceeds from block 707 to block 12 769 since the L6 indicator was set in the hyphenation 13 operation described heretofore. At this time, the X2 14 counter is set equal to the format storage locat~on of the cursor addressed line and the Y2 counter lS
16 set equal to the line location of the cursor addressed 17 line. Providing no paragraph mark is detected, the , .
18 operation proceeds to block 771. At this tlme, lf the L8 19 latch is set, no syllable hyphen was cleared in the se~up operation and, therefore, a space character must be 21 forced. If L8 is not set, then previously separated 22 syllables are being rejoined and a space character is 23 not required. Thereafter, the L10 indicator lS set and 24 thè operation proceeds to block 713 where a blank charac-ter is written at the Yl-Xl location and thence to block 26 717 where the X2 counter is incremented so that lt no-~
27 ~ddresses the character located adjacent to the left 28 margin of the cursor addressed line. The operation '' , .

., , : . , .. . .
- : ~ ' ..
, :

l then proceeds to block 721 where the L10 indic~tor ~-h1ch 2 was prev1ously set is sampled ancl causes the operatlon 3 to proceed to block 723 and then through bloc~s 705, 4 706, to block 707. Since the L6 indicator ~as rese~ a5 indica~ed by block 771, the operation proceed~ to block 6 7U8 whereupon the hyphen indicator is sampled. S1n~e -the 7 hyphen indicator was set, as described with respect ~o the 8 operation of FIGURE 12, the contents of the X2 and Y~
9 counters are then compared with the cursor address to de-termine wh;ether they are equal. It will be reca1led that ll the Y2-X2 counters are now addresslng the flrst character 12 of a line. Hence the operation would proceed to block 709 l3 whereupon the character adjacent to the left-hand margin of 14 the cursor addressed line is read and the L8 indLcator lS
set. Then, as indicated by block 713, the characte~ read 16 is written at the Yl-Xl counter lacation on the l~ne above 17 the cursor addressed line and, providing that the X2 18 counter does not equal the right margin locatlon, che X2 19 counter is incremented as denoted by block 717 and the Xl counter, as denoted in block 725 is lncremented rhe 21 operation continues in this loop writlng characters of 22 the cursor addressed line on the line abo~e untll the 23 Y2 and X2 counters are equal to the cursor address. At 24 this tlme~ the operation proceeds from block 849 ~o block 851 whereupon a syllable hyphen is forced lnto the 26 storage register. Thereafter, the syllable hyphen lS
27 written at the Yl-Xl stora~e location as denoted by 28 block 71~. Since the con~rols for the hyphen operation D-LF.9-67-036 ~.~

` F
`:

~8~5~
1 and the closure operation are shared, the operatlon pro-2 ceeds as though it were a closure operation, storlng the 3 syllable hyphen address, clearing the syllable hyphen and 4 thereafter attempting to move the entire word addressed by the cursor to the line above it as though it were the 6 closure operation. This operation, of course, fails and, 7 thereafter, the counters are backed up as described wlth 8 respect to the closure operation to the syllable hyphen 9 address and the syllable hyphen is placed at its proper position. The normal closure operation is then effected ll whereby all of the characters in the cursor addressed line 12 are shifted to the left into the space vacated by splitting 13 the word located adjacent ~o the left-hand margin. The 14 continuation of this operation is exactly as has been described with respect to the closure mode o~ operation.
16 One additional condition that can exist is if the 17 syllable(s) which are attempted to be split off do not fit 18 on the preceding lineO In this case, the Xl counter reaches l9 the right ~argin stop location prior to the X2 counter reaching the cursor address. When this occurs, the opera-21 tion proceeds from block 719 to block 727 whereupon the 22 L7 indicator is set. Thereafter, the steps of block 711, 23 blocks 729, 7319 and block 740 are performed as described 24 heretofore wi~h respect to the closure mode of opera~ion.
These operations effect the replacement of the word ~hat 26 was attempted to be moved to ~he line above the cursor ~7 addressed line onto ~he line addressed by thc cursor. If, 28 as denoted by block 740, the forced syll~blc ]Iyphen character .

1 is read ~ith the hyphen inclicator on, the syllable hypllen 2 is cleared as denoted in block 853. This operatlon pre~
3 vents the syllable hyp}-en which was attempted to be ~n-4 serted from belng reinserted in the line addressed by ~he cursor.
6 (4) Transer Line Control 7 The transfer line control is utilized by Ihe 8 operator to effect the transfer of a line of text g characters from one displayed position to another dis~
played position. In order to efect such a full line ll transfer operation, the operator effects the placement ~ of the cursor adjacent to the line ~hlch wlll recelve 13 the transferred line and thereafter depresses the 14 "to here" key on the function keyboard l7D. rhl~ effe;~s lS the storage of the cursor vertical posltlon ~the "to here"
16 address) withln a special register of the worklng storage 17 55 oE FI~URE 3. The cursor is then moved to the llne lB that is to be transferred and the "transfer llne"
l9 key on the function keyboard 17D is depressed. The line to be transferred may be located up page or clown 21 page from the position at which it is desired to 22 receive the transferred line. The line position of the 23 line to be transferred thus identified by the vertical 24 position o the cursor is stored in the wor~ing storage as the "from here" address. ThereaEter, the llne identl-26 fied by the "from here" address is transferred to the 27 line location iclentiflecl by the "to here" adclress.
D-LE9-67-0i6 .
.

S~

1 If the cursor down key is thereafter ~epressed, the next 2 subsequent line is transferred to a line posltlon immedi-a$ely below the line position identified by the "to here"
4 address. If the cursor down key is fully depres~ed th~re-by engaging the rapid motion cursor control log~c, lines 6 are rapidly transferred until a paragraph mark Is detected 7 at the "from here" address. At this time, the operat~on ~ ceases and requires the operator to again depress the g cursor do~n key to effect further line transfer~
Referring now to FIGURE 13(a) of the drawings, the 11 operation of the line transfer routine is deplc~ed.
12 When the operator depresses the "transfer line" key, 13 a start signal is applied as denoted by block 861.
14 Thereafter, the "to here" address is placed in the Yl counter, the "from here" address is placed in ~he YZ
16 counter, the row 1 storage address is placed in the 17 Y2' coun~er, and the Xl counter is caused to address 18 the format position of storage. These operations are 19 denoted in blocks 862 and 863. A chec~ is then made as denoted by block 864 to insure that the "to here"
21 address does not equal the "from here" address. There-22 after, a check is made as indicated by bloc~ 865 to 23 determine wllether the "to here" address is up page or 24 down page from the "from here" address. As~uming that the "to here" address is up page, the operation proceeds - 26 to block 866 whereupon the first character of lnforma-27 tion to be transferred is read from ~he "from here"

.~,. .
; . , - .
.

8~S~3 1 location and stored in row storage. Thc operatlon 3~
2 blocks 867 and 868 and block 866 are then effected where-3 upon the second character on the line is transferred to 4 row storage. The operation continues in this loop until the full line has been transferred to row storage at 6 which time it proceeds to block 869 whereupon the Xl 7 counter is set equal to the format storage location. A
8 chec~ is then made to see whether the Yl counter contalning 9 the "to here" address is equal to the Y2 counter containing the "from here" address as indicated by block 870~ S-lnce 11 they are not equal at this time, the line location of the 12 "from here" address contained in the Y2 c-ounter is trans-13 ferred to the Y2' counter which previously contained the 14 row storage address and the Y2 counter is moved up pa~e by one line. Thereafter, the operation proceeds to block 16 866 whereupon the first character of the line immediately 17 above the "from here" address is shifted into the 18 first character position of the now vacated "from 19 here" addressed line. Thereafter, the operation pro-ceeds as described heretofore until the full line is 21 transferred. At this time a check is then made as 22 indicated by block 870 to determine whether the contents 23 of the Y2 counter is equal to the "to here" address~
24 If it is not, the contents of the Y2 counter are again transferred to the contents of the Y2' counter ancl ~he 26 Y2 counter is decremented by 1 as denoted by block S71.
27 The operation then continues through the loops described . ' .
~ ` -115-;' ' .
æ
:, . : , . . .
., , . .,, , ~ ,.
: , ,, 8~L58 1 above, each line being transferred down to the then 2 cleared line immediately below it until the "to here"
3 line is reached as indicated by block 870. Once the 4 "to here" line is reached, the operation proceeds from block 870 to block 872. The operations thereafter 6 effected cause the characters located in row storage 7 which were transferred from the "from here" addressed 8 line to be transferred from row storage to the "to g here" line which was vacated. Once this operation is complete, the steps of blocks 873 and 874 are effected 11 whereupon the "to here" address and the "from here"
12 address are incremented by 1. Thereafter, as denoted by 13 block 875, a test is made to determine whether the cursor 14 down key was fully depressed thereby triggering the rapid motion switch. If the cursor down key was not fully 16 depressed, the non~repeat latch of the cursor control 17 is set as denoted by block 876 and the operation stops 18 awaiting an additional depression of the cursor 19 down key or the institution of a new operation. If, however, the rapid motion indicator were set, tlle 21 operation proceeds to block 877 where a test is made 22 to determine whether a paragraph mark exists at the 23 format storage location of the new "from here" address.
24 If such a paragraph mark exists~ the operation stops at block 876 as described above. This causes the opera-26 tor to again depress the cursor down key and thus enables 27 the operator to rapidly transfer paragraphs. If, however, . ' ~

~,. .. . , ~ , . .

, . . . . . .
. , ~........ :
. . :. :
.. ..

15~
1 the paragraph mark is not detected, the operation pro-2 ceeds to block 862 and effects the transfer of the line 3 at the line address immediately below the "from here"
4 address identified by the operator to a line address ; 5 immediately below the "to here" address identified 6 initially by the operator. In this manner, successive 7 lines of text are rapidly transferred. It should be 8 noted that it is necessary to apply an inhibit signal 9 to the cursor logic to prevent the downward motion of the cursor at the "from here" address until the comple-ll tion of the transferring of a single line. This inhibit 12 signal thus prevents the cursor from moving ahead of the 13 transfer line operation.
14 As described above, it is possible that the line to be transferred is located up page from the position at 16 which it is desirous to receive the transferred line. In 17 this instance, the operation proceeds from block 865 18 to the exit block 879 and thence to the block 880 of 19 FIGURE 13~b) of the drawings. Referring briefly now 2~ to FIGURE 13(b) of the drawings, when the "from here"
21 address is located up page from the "to here" address, 22 the line located at the "from here" address is stored 23 in row storage just as in the opposite case heretofore 24 described. Thereafter, the contents of the Y2 counter are transferred into the Y2' counter as before and the 26 Y2 counter is incremented instead of being decremented 27 as described before. This operation continues until ~ . .

\

.. : .. ,: , ' ~ ' lL58 l the Y2 counter is equal to the "to here" address as 2 denoted by block 881. Thereafter, the contents of the 3 row 1 storage are transferred to the "to here" address 4 and, once the entire row has been thus transferred, the operation proceeds through exit block 882 to block 875 of 6 FIGURE 13(a) whereupon the test is made as described 7 heretofore to determine whether the rapid motion 8 indicator has been set. Thus, as has been described, g sequential lines of text are transferred a line at a time or a paragraph at a time to any identified line 11 of text within the display without any resulting loss 12 of information content.
13 (5) Margin Adjust Control 14 The margin adjust control is used to change the margins containing a section of text so that the lines 16 may be shortened, lengthened, or repositioned upon 17 the page horizontally. In order to effect margin 18 adjustment, the operator causes the cursor to be 19 positioned at the line of text that is to be re-adjusted. The margin adjust key on the function 21 keyboard 17D is then depressed. The new margins are 22 then marked using the cursor key to identify the new 23 margin positions and the "set left stop" and "set 24 right stop" keys on the function keyboard 17B. The cursor down key is then depressed whicll initiates 26 the operation which causes the text of the previously 27 addressed line to conform to the new margin stops.

' ~ .

,"' ' ' ' ' . ,.

1 I'hereafter, further depression of the cursor down 2 key effects margin adjustment on each llne thus 3 addressed by the cursor. The text located down page 4 from tha~ which was adjusted is shifted up page or down page as required by the margin adjustment operatlonO
6 That is, if the new margins de~ine a line lenKth wh~-h 7 is shorter than that defined by the old margins, it is 8 necessary to shift text down p~ge in a manner similar 9 to that described heretofore with respect to the insert routine. ~lowever, if the new margin set de~ines 11 a line length which is longer than that defined by 12 the old margin set~ it is necessary to shift the 13 text up page in a manner similar to that of the closure 14 operation discussed heretofore.
When the operator thus depresses the cursor down 16 key after ha-\ling identified the new margin stop 17 positions, the system is set with the same initial 18 conditions described heretofore with respect to 19 the insert operation. Additionally, the LX indicator indicative of a margin adjust operation is set.
21 Further, the old left margin stop position of the 22 addressed line is stored in the Xl and X2 counters, the 23 cursor vertical position is stored in the Yl and Y2 24 counters and the row 1 storage position is gated to the Y2' counter. Referring now to FIGURE 14 of the Z6 drawings, the operations described above are depicted 27 by start block ~91. Once the initial conditions are . ..
. . : .
.; .

1 thus set, the operation proceeds through loop 893 which 2 includes blocks 895, 897, and 899 to effect the transfer 3 of text on the cursor addressed line which was previously 4 located between the old margin stop positions to row storage. Once the entire line which was previously 6 located between the old margin stop positions has thus 7 been transferred to row storage, the operation proceeds 8 to block 901 whereupon the new left margin stop position 9 is gated from the working storage and placed in the Xl counter. Thereafter, as indicated by block 902, 11 the row storage is read at the old left margin location 12 and the character or blank thus read is written on the 13 cursor addressed line at the new left margin location.
14 A test is then made as indicated by block 903 to deter-mine whether the information thus written adjacent to 16 the new left margin was a character or a blank. If 17 it was a character, the L8 indicator is set, the L10 18 indicator is reset, and the syllable hyphen or required 19 hyphen indicators are set or reset in accordance with 2n whether the character is a syllable hyphen or a required 21 hyphen. These operations are denoted by block 904O
22 Thereafter, as indicated by block 905, if a syllable 23 hyphen was read, the syllable hyphen is cleared and its 24 address is stored. If the character detected as denoted by block 903 is a blank character, the L10 indicator is 26 set as denoted by block 906 indicating a blank characte~.
27 Once the character has been thus read fro~ ro ,'''~ ' .

.
, .
,:

s~

storage and written at the new left margin locatlon, 2 tile test performed to determine whether the character 3 is an alphanumeric character or a blank, and the 4 appropriate indicator is set, the operation proceeds to block 907 whereupon a check is made to determine whether 6 the X2 counter has reached the old right margin stop 7 location. If it has not reached the old right margln s 8 stop location, the Xl counter ls checked to determinee 9 whether it has reached the new right margin stop locatlon as indicated by block 908. If it has not reached the ll new right margin location, the operation proceeds to 12 block 909 whereupon the blank and syllable hyphen indl~
13 cators are tested. If the character thus stored in the 14 line addressed by the cursor, in the operation defined by block 902 was not a blank or syllable hyphen, the 16 Xl counter is incremented by 1 as indicated by block :
17 910. If, however, it was a blank or syllable hyphen, 18 the Xl counter retains its count. Thereafter, as indi-l9 cated by block 911, the X2 counter is incremented by 1 and the operation returns to block 902 whereupon the 21 next character is read from row storage and written at 22 the cursor addressed line. In this manner, each charac-ter previous:Ly stored in row storage under the control 24 of operatïonal loop 893 is read from the row storage and rewritten into the line addressed by the cursor 26 starting with the new left margin location. If the ,-;
c 27 newly defined line is longer than or equal to the llne ~' . .
:

'', , ''' "'"' ' ' ' '~ ' ' ' '. ' '' .

5~
i defined by the old margin stops, the X2 counter will 2 reach the old right margin stop position in row storage 3 prior to -the time that the Xl counter will reach the 4 new right margin stop position in the line addressed by the cursor. When this occurs~ the operation proceeds from 6 block 907 to block 912 whereupon a test is made to deter-7 mine whether the Xl counter has reached the new right 8 margin stop position. If the Xl counter has reached the 9 new right margin stop position, the operation proceeds to block 913 whereupon the L10 indicator is sampled to deter-11 mine whether the last character read from row storage was 12 a blank. If it was not a blank, this indicates that the 13 newly defined line length is identical to that previously 14 defined by the old margin stops and a cursor down opera-tion of block 914 is effected. In this operation, the 16 cursor is caused to move downward by incrementing the 17 cursor vertical position counter. It should be noted 18 at this time, that the cursor is prevented from being 19 moved downward under the normal cursor down control when in a margin adjust operation until the operation specifies 21 that it may be moved downward.
Z2 If, as indicated by block 912, the Xl counter does 23 not equal the new right margin stop or, as indicated by 24 block 913, the Xl counter equals the right margin stop but that a blank character was the last character read, 26 the operation proceeds to block 915 whereupon the L6 27 indicator is set. In either of the above t~o defined 1 events, there is space at the end of the newl~ defined 2 line which may receive characters located down page 3 from the newly defined line. Thus, as noted by exit step 4 of block 915, the operation of block 721 of the close opera-tion depicted in FIGURE lO(a) of the drawings is next 6 effected. This operation, where it differs :Erom that in 7 a normal line closure operation will be described herelnafter~
8 The above description describes the operation of the 9 system when the text previously confined by the old margin . lO stops was less than or equal to the amount of text that 11 could be formed between the new margins. If, however, 12 the line length defined by the new margins is shorter 13 than that defined by the old margins, the operation pro-14 ceeds from block 908 to block 916 since, in thïs instance, the Xl counter indicative of the newly defined line will .
16 reach the new right margin stop prior to the tlme that 17 the ri.ght margin stop is reached in row storage. When 18 the operation proceeds to block 917, the Y2 counter is 19 set equal to the row 1 storage address and the operatlon ~
: 20 proceeds to block 347 of the insert operation deplcted in ` .~.
21 FIGURE 6(c). This operation, where it differs from the 22 insert operation of a text content control operation will 23 now be descrlbed.
Z4 Referring now to FIGURE 6(c) of the drawlngs, when it is detected that the Xl counter is equal to 26 the new right margin address, the operation proceeds as 27 has been described to block 347. At this tlme, the '' .

:

.
~:~ , . ` , ., . :, :~ ` ' ' , . . , - ~ , 48~58 1 row storage is read. This character represents the 2 character which would overflow the new right-hand 3 margin position and this character is decoded to de-4 tect whether it is a blank character, a space character or an alphanumeric character in the same manner as 6 described hereto-fore with respect to the insert operation.
7 If, for example, it is a space character, this means 8 that the character immediately preceding it was a valid 9 line ending character and, therefore, the text informa~
tion now located in the line containing the new margin 11 stops can remain as is. Thereafter, the contents of 12 the row storage representative of the information 13 which previously existed on the line and which now must 14 be shifted down page is transferred to the line immedi-ately below the line containing the new margins. This 16 information transfer is in the same manner as that 17 described with respect to the insert operation, all in5 18 formation previously located on the newly addressed 19 line being shifted to the right and then down page.
If fhe first character read, as indicated at 21 block 347 is an alphanumeric character, it is necessary 22 to reterminate the line containing the new margin 23 at a valid line ending position. Thus, the operation `
24 proceeds from block 357 to block 385 in the same manner as described heretofore. Since the LX indicator 26 is on, the operatlon always proceeds from block 386 to 27 block 389 and thereby bypasses the test to determine 8~8 l if the Xl and Yl counters are equal to the cursor 2 address. A further modification to the backup opera-3 tional loop is indicated by block 398 since the LX indi-4 cator is on. The operation thus proceeds from block 398 to block 920 whereupon the new left margin stops are 6 thereafter utilized in the operation for the test per-7 formed at block 399. Thus, if no word ending character 8 is found on the line defined by the new left margin 9 stop, the operation will proceed to rewrite the entire line and thereafter advance to a new line as necessi-11 tated for the shift of information.
12Referring now to FIGURE lO(a) of the drawings 13 and to the closure operation depicted therein, it has 14 been described how the margin ad~ust operation heretofore described proceeds to block 721 of the closure operation 16 when it is determined that extra space exists in the 17 line containing the newly defined margin stops. There~
18 after, the closure operation as will be described, 19 effects the shi-ft of information up page so that the extra space of the newly defined line is utilized.
21Thus, the operation proceeds from block 721 to 22 block 725 whereupon the Xl counter is incremented so.
23 that it is addressing a new character position within 24 the line containing the newly defined margin stops.
The operation then proceeds to block 707 and thence to 26 block 769 whereupon the X2 counter is set equal to 27 the format storage position of storage an-l the Y2 .: . . . .. . .

~48~5~3 ~

1 counter is set equal to the line beneath the ]ine 2 containing the newly defined margins. Thereafter, 3 this line is checked to determine whether a paragraph 4 mark exists and, if no such mark exists, the I10 indicator is set. Thereafter, a blank character is 6 written at the Yl-Xl position and the operation proceeds 7 to block 718 whereupon it is determined that the LX
8 indicator is set. Thereafter, the new right margin stop 9 is read from the format storage location as indicated by block 923 and utilized for the test to be performed by 11 block 719. Thus, the Xl counter is thereafter checked 12 as indicated by block 719 to determine whether or not 13 the new right margin stop is reached. Since it has not 14 at this time been reached, the operation proceeds from block 719 to block 721 and thence to block 723 slnce the 16 L10 indicator was set as indicated by block 771. There-17 after, the operation proceeds in a normal manner to bloc~ -18 709 whereupon the first character position of the line 19 directly below the line containing the new margin stops is read and this information is then written as indicated 21 by block 713 in the line containing the newly defined 22 margin stops. The operation thereafter proceeds in the 23 same manner as discussed heretofore with respect to the 24 closure operation. It should be noted that the LX
indicator is reset once the Xl counter has reached 26 the rlgh~ margin as denoted by block 727.

., ~ -126-~48~S15 1 (6) Logic Implementation of Margin ~djust Control 2 The operation of the data composing, editing 3 and formatting system of the present invention while 4 performing text content control operations and text modification operations has been described with respect 6 to state diagrams which describe the operation of the 7 device as depicted in FIGURE 3 of the drawings. Thus, 8 FIGURES 5(a) through 14 depict the operation o-f the device 9 shown in FIGURE 3 -for each of the text content control operations and text modification operations. Referring 11 now to FIGURE 3 of the drawings, the state diagrams have 12 described the movement of data from and to the various 13 registers and storage devices in a defined sequence.
14 This explanation has, necessarily, for the purpose of clarlty and understanding, omitted reference to gating 16 and clocking terms and to the logic which controls the 17 flow of information from and to the various registers, ~-18 counters and circuits depicted in FIGURF. 3.
19 In order to describe how the device of FIGURE 3 operates in conjunction with an implementation of the 21 control logic necessary to effect the various state -22 diagrams depicted in FIGURES 5-14, the following de-23 scription will relate to a logic implementation of 24 the state diagram depicted in FIGURE 14 relating to the margin adjust operation. Of course, much of this 26 same logic is utilized to control the operation Ot the 27 system when performing the other operations depicted in ' 3lS8 1 the remaining state diagrams. I-lowever, by describing 2 a specific embodiment of one such operation, one skilled 3 in the art could easily derive the remaining embodlments 4 from the state diagrams.
As is recognized by those skilled in the art, 6 there are severa] alternative methods of embodying the 7 margin adjust state diagram depicted in FIGURE 14 of the 8 drawings. In the embodiment to be described, a fixed 9 counter having a plurality of discrete states is utilized in conjunction with timing pulses and logic 11 signals to provide appropriate gating between the 12 various registers and counters. Referring to FIGURE
13 14 of the drawings, various discrete counter states 14 are depicted alongside each of the blocks labelled 901 through 916. These counter states, labelled "Cl"
16 through "C5" are representative of the state of a logical 17 counter. For example, when performing the functions 18 depicted in block 901, the logical counter is in the 19 state labelled "Cl". When performing the functions depicted by blocks 902-906, the counter is in its "C2"
21 state, etc. Thus, as the operation proceeds along the 22 various sequences depicted in FIGURE 14, the counter 23 is incremented through various states in accordance 24 with the operations to be performed. The counter Utilized to step the device to the various states 26 could be similar to one described in the aforereferenced 27 copending application of ],ouis M. ~lornung, entitled ' ' ~ -128-1~481S~

1 "Electronic Counter".
2 Referring now to FIGURES 15 of the drawings, a 3 portion of the implementation of the state diagram 4 in FIGURE 14 is depicted. More particularly, the logic ` 5 utilized to control the gating of the information from 6 the X and Y counters into the storage address register 7 73 and into the storage register 71 is depicted in 8 FIGURES 15(a) and 15(b). FIGURE 15(c) depicts the logic 9 utilized to control the accessing of the storage unit 9 of FIGURE 3 of the drawings. The logic depicted in 11 FIGURE 15(d) is utili~ed to control the state which 12 the control counter (not shown) will assume and the 13 logic depicted in FIGURE 15(e) is representative of 14 the various control latches which are set in accordance with the operations performed.
16 Referring now to FIGURE 16 of the drawings, a l .
17 series of timing pulses labelled TPl through TPn are 18 depicted. These timing pulses are generated by a 19 counter type of device and recur, as depicted, ::. . . .
20 periodically. A series of n timing pulses is provided 21 in accordance with the operation to be performed. The 22 counter is reset to provide a TPl output each time 23 the control counter (not shown) advances or is reset.
24 A second series of pulses labelled TPX is provided and 25 occur during the latter portion of a TP pulse for a 26 short duration as depicted.
27 Referring once again to FIGURES 15~a) and 15(b) of .~ , .

,: .. , ,. : . :
. .

',' 83~

1 the drawings, the logic utilized to effect the transfer 2 of information between the address counters address 3 registers and the storage register during the margin 4 adjust operation depicted in steps 901 through 916 of FIGURE 14 is depicted. The logical gating circuits which are unique to the operations depicted in FIGURE 14 7 are identified in that they contain a step number identi-8 fication immediately above the gating circuit depicted.
9 Each of the step numbers correspond to the blocks depicted in FIGURE 14. That is, the logical blocks having the 11 identification "step 01" associated therewith are utilized 12 when performing the operations defined by block 901 of 13 FIGURE 1~. In a similar manner, those containing the 1~ identification "step 02" correspond to the operation depicted in block 902, etc.
16 As has been described, a control counter is utilized 17 to provide an output signal indicative of the margin 18 adjust operation to be performed. These output signals 19 are labelled "Cl" through "C5" and are applied to the various logical circuits depicted in FIGURE 15. Addi-21 tionally~ a series of timing pulses labelled "TPl"
22 through TPn" are provided during each of the output 23 cycles of the control counter and are depicted in 24 FIGURE 16. Various quantities of such timing pulses are utilized for each state of the control counter.
26 These timing pulses are also applied to the various 27 logical and gating circuits depicted in FIGURE 15.

~8~8 1 As has been described with respect to FIGURE 14 Z of the drawings, the operation which is performed by 3 block 901 of the margin adjust operation is to enter 4 the new left margin stop information into the Xl counter 79. In order to accomplish this operation, it 6 is necessary to gate the storage address of the working 7 storage position containing the new left margin stop 8 information into the storage address register 73, 9 effect the accessing of the storage unit (not shown) at the addressed location thereby effecting the gating 11 of the information from the storage unit into the 12 storage register 71, and to thereafter effect the trans-13 fer of the information in the storage register 71 to 14 the Xl counter 79. Thereafter, the control counter, -(not shown) is advanced from its "Cl" state to its "C2"
16 state to effect the next operation that is defined by 17 block 902 of FIGURE 14.
18 Referring now to FIGURES 15(a) and 15(b), the control 9 counter ~not shown) is set to state "Cl" to initiate step 901 of the operation depicted in FIGURE 14 Thereafter, 21 when the first timing pulse TPl is supplied to Or gate 22 1001, And gate 1003 is gated with the output signal from 23 the Or gate and provides a signal to the Y and X special 24 encode circuits 1005 and 1007 respectively. Each of these circuits contain combinational logic which is re-26 sponsive to a plurality of input signals to provide a 27 corresponding plurality o~ unique output code signals ., .

.-~ .
' ; ~ . . ~ .

; . . :

1 "Yspl" through "Yspn" and "Xspll1 through "Xspn". The Y
2 signals thus supplied correspond to the number of binary 3 digits necessary to define the Y coordinate storage 4 address positions while the X signals thus applied ` 5 define the X coordinate storage positions.
6 Thus, when performing step 1, the And circuit 7 1003 gates the X and Y special encode circuits 1005 8 and 1007 which in turn supply a parallel set of output 9 signals. The X output signals are applied to a corres-ponding plurality of Or gates 1009 throllgh 1011 which 11 gate the bits into the storage address register 73. In ]2 a similar manner, output signals of the Y special encode 13 circuit 1005 are applied to the corresponding plurality 14 of Or gates 1013 which gate the Y storage address in-formation into the storage address register 73. Also, 16 when pulse TPl is applied during count Cl, the And gate 17 1015 supplies an output signal which resets the Xl 18 counter 79.
19 Referring now to FIGURE 15~c) of the drawings, And gate 1017 is also gated during step 1 with the TPl timing 21 input and the Cl control counter input to provide an 22 output signal to the Or gate 1019 which in turn provides 23 an output signal causing the contents of the storage 24 unit ~not shown) at the location specified by the address register 73 of FIGURE 15~b) to be gated into 26 the storage register 71 of FIGURE 15~b). It should be - 27 noted at this time that the And gate 1017 also is gated when the control counter (not shown) is in states 2 C2, C4, or C5. It is to be understood that this line 3 and others which are similarly labelled with a plurality 4 of terms represent the output signal of an Or gate to which each of the terms has been applied.
6 Because the storage unit utilizes a conventional 7 core storage unit having a destructive readout, it lS
8 necessary to rewrite the information back into the 9 storage unit so that it is not lost. Thus, when the timing pulse TP2 is applied to the And gate 1021, an 11 output signal is applied to the Or gate 1023 causing 12 the contents of the storage register 71 of FIGURE l5(b) 13 to be rewritten back into the storage unit. The output 14 signal o~ the Or gate 1023 is also applied to the And gate 1025 along with the TPX timing pulse and an output 16 signal from the invert circuit 1027. The invert circuit 17 1027 is responsive to the And gate 1029 which supplies 18 an output signal when the control counter is in its 19 states C4 and C5. Since the control counter is now in state Cl, the input circuit 1027 provides the gating 21 signal so that the And gate 1025 gates the Or gate 22 1031 effecting the clearing of the contents of the 23 storage register 71 of FIGURE 15(b).
24 Summarizing the operation described immediately above, when the control counter is in count Cl, the 26 storage unit is accessed during the first timing pulse 27 TPl and its contents transferred to a register. There-, .:

, ~;~` '. '.
' 'l -~lq348~5~
after, during timing pulse TP2, the contents of the 2 register are rewritten back into the storage 3 location. Additionally, during the latter portion 4 of the writing cycle, the TPX pulse appears causlng the storage register to be cleared.
6 Referring once agai.n to FIGURES 15(a) and 15(b) of 7 the drawings, the contents o-f the storage register 71 ~: 8 are transferred to the Xl counter under the control 9 of And gate 1033, Or gate 1035, and And gate 1037 when the second timing pulse TP2 appears while the con~
` 11 trol counter counts Cl 12 Summarizing the above described operations, the 13 first timing pulse TPl applied when the control counter 14 is in count Cl causes the Y and X special encode circuits 1005 and 1007 to provide the storage address 16 of the new left margin stop information to the : 17 storage address register 73. At the same time, the 18 Xl counter 79 is reset and the storage unit (not 19 shown) is accessed thereby supplying its information to the storage register 71. When the second timing 21 pulse TP2 thereafter occurs, the contents o:E the 22 storage register 71 are gated into the Xl counter 23 and, further, they are rewritten back into the addressed 24 storage position. Thereafter, the storage register :.~ 25 71 is reset. At this time, the operation performed 26 during step 1 is complete and it is then desirous 27 to increment the control counter to a new controlling ~l~41~:~LS~
l count position. Referring now to FIGURe 15(d) oE
2 the drawlngs, the And gate 1039 provides an output 3 signal when timing pulse TP2 is applied which is 4 utilized to set the control counter to its C2 state.
As has been described, the counter utilized could be 6 similar ~o that described in the aforereferenced 7 copending application of Louis M. Hornung, entitled 8 "Electronic Counter " This counter contains both 9 counting terms and steering terms which are set during one cycle of the clock which control the next state ll that the clock will transfer to. Thus, the output 12 signal provided by the And gate 1039 would be applied 13 to the steering terms of the control clock 14 Since the control clock will next be advanced to its C2 state, the timing pulse counter (not shown) is 16 reset so that the first signal it will thereafter supply 17 is a TPl signal. Referring now to FIGURE 14 of the 18 drawings, the next step to be performed as defined by 19 block 902 is to cause the contents of the storage unit defined by the Y2' and X2 counters to be read and then 21 rewritten at the location defined by the Yl and Xl 22 counters. Additionally, as denoted by blocks 903 23 through 906, the character thus read and rewritten is 24 tested to determine whether it is an alphanumeric charac-ter or a blank, and certain indicators representative 26 of the character thus detected are set. Further, as 27 denoted by block 905, if the character thus detec~ed : . . . .

- : . .
.. . ,. . . , , . .. ~
,, .,: . . .

~L~48~S8 1 is a syllable hyphen~ it is necessary to clear the 2 syllable hyphen and store its location address. All 3 of these operations are performed during count C2.
4 Referring once again to FIGURES l5~a) and 15(b) of the drawings, the operations de~ined by the second step 6 of the margin adjust operation depicted in FIGUR~, 14 7 are initiated by the And gate 1041 which supplies an 8 output signal when the first timing pulse occurs during g count C2. This output signal is applied to the Or gate 1043 which provides a Y2' and X2 IN signal which desig-11 nates that the contents of the Y2' counter and the 12 contents of the X2 counter will be transferred to the 13 storage address register. This signal is thus applied 14 to the Or gate 1045 and to the Or gate 1047. The Or gate 1045 provides an output gating signal to effect 16 the transfer of the contents of the X2 counter 80 to 17 the storage address register 73. This gating signal 18 is applied by a plurality of And gates 1049 through 19 1051. Each of the And.gates is responsive to a corres-ponding bit located in the X~ counter 80, These output 21 signals are then applied to the Or gates 1009 through 1011 22 and thence to the storage address register 73. In a 23 corresponding manner, the Or gate 1047 provides an 24 output gating signal to a plurality of And gates 1053 which provide a corresponding plurality of output 26 signals to the plurality of Or gates 1013. In this 27 manner~each of the bits of the Y2' counter are trans-' . . .
:
. .
~' ' . ., , , ' ~ ' ' ~L8~
1 ferred to the storage address register Thereafter, 2 during the first timing pulse, -the contents of the 3 storage unit thus addressed are gated into the storage 4 register 71. This gating is effected by the circuitry heretofore described with respect to FIGURE 15(c) of 6 the drawings 7 When the second timing pulse TP2 is thereafter 8 applied, the And gate 1055 provides a Yl and Xl IN
g gating signal. This gating signal is applied through combinational gating logic identical to that described 11 with respect to the output signal of the And gate 1041 12 to effect the gating of the Yl and Xl counters into 13 the storage address register 73. These gated output 14 signals of the Xl counter are depicted by the line XllIN through XlnIN which are applied to the Or gates 16 1009 through 1011 respectively. In a similar manner, the 17 YlnIN signal is depicted as being applied to the Or gate 18 1013, The contents of the storage register 71 are then 19 written into the storage unit (not shown) at the location defined by the storage address register 73 which 21 contains the contents of the Yl ancl Xl counters.
22 This operation is effected by the gating circuitry 23 which has been described with respect to FIGURE 15(c).
24 Referring briefly to FIGURE 14, it can be seen that the operation defined by block 903 is to deter-26 mine whether the character thus read and rewritten 27 was an alphanumeric character or a blan~ character.

,. '.
~137-.,~

~': ' . .
' . '.: ' ' ' ', ' ' : '; ., , . ' '' ~ . ' ' s~

l This operation is efected during the second timing 2 pulse when the contents of the storage register 71 3 of FIGURE 15(b) and FIGURE 3 is gated to the decode 4 circuit 77 of FIGURE 3 by logic (not shown). The decode circuit provides an output indicative of 6 whether it is an alphanumeric character or a blank 7 character~ This output signal is applied to the 8 combinational logic depicted in FIGURE 15(e) o~ the 9 drawings. Referring to FIGURE 15(e) of the drawings, if the character thus detected is a blank character, 11 the operations o~ step 6 are performed and the And gate 12 1057 provides an output signal which sets the L10 latch 13 circuit 1059. If a character is detected by the decode 14 circuit, the And gate 1061 provides an output signal which resets the latch circuit 1059 and further provides 16 a gating signal to the Or gate 1063 which causes the 17 L8 latch circuit 1065 to be set. Additionally, if the 18 decode circuit provides an output indication that the 19 character contained in the storage register was a syllable hyphen, the And gate 1067 provides an output 21 signal which sets the syllable hyphen latch circuit 22 1069. In a similar manner the required hyphen latch 23 circuit 1071 is set with an output signal ~rom the And 24 gate 1073 if a required hyphen is decoded. Further, both the syllable hyphen latch 1069 and the required 26 hyphen latch 1071 are reset with an output signal applied 27 by the And gate 1075 if no hyphen character is detected.

,.

,' ~

- . . . , . . ~ ,. , . . :
; . ~ . , , " . . . .
. ", . . . . ,~
. ~ . :
.. : ~ .. . .

1 In this manner, the various indicators are set in 2 accordance with the defined operations of blocks 904 3 and 906 of FIGURE 14 corresponding to steps 4 and 6 o-f 4 FIGURE 15~e).
Referring once again to FIGURE 14, it is seen 6 that if a syllable hyphen is detected, the syllable hyphen 7 must be cleared and its storage address position stored.
8 These operations are defined by block 905. In order to 9 accomplish the operation specified by block 905, it is necessary to first sample the syllable hyphen latch 1069 ll of FIGURE 15(e) to determine whether the character detected 12 is a syllable hyphen. If the character is not a syllable 13 hyphen, the And gate 1077 of FIGURE 15(d) provides an out-14 put signal when timing pulse 3 occurs which causes the control counter to be thereafter set to its C3 16 state. If, however, a syllable hyphen is detected, 17 the And gate 1079 of FIGURE 15(a) provides an output 18 gating signal which effects the transfer of the 19 contents of the Yl and Xl counters into the storage address register 73. During this same cycle of 21 operation; the And gate 1081 of FIGURE 15(c) provides 22 an output gating signal to the Or gate 1019 effecting 23 the readout of the storage unit (not shown) to the 24 storage register 71 of FIGURE 15(b). In this manner, the hyphen character thus stored at the address de-26 fined by the Yl and Xl counters is reread into the 27 storage register 71. This readout is destructive and .'~ ' .
.; ~139-, .

; . . .: .

. , :

1 thus the syllable hyphen is cleared from the storage 2 unit (not shown).
3 During the next timing pulse, TP4, the And gate 4 1083 of FIGURE 15(a) causes a uni~ue storage address to be gated into the storage address register 73. This 6 storage address corresponds to the working storage posi-7 tion which will receive the contents of the Yl counter.
8 This storage position is then destructively read out under 9 the control of the circuits of FIGURE 15(c) so that it is effectively cleared. Thereafter, on the next timing 11 pulse TP5, the And gate 1085 of FIGURE 15(b) provides a~
12 output signal to the Or gate 1087 which provides a gating 13 Signal to the Or gates 1013 which effect the transfer of 14 the contents of the Yl counter (not shown) into the storage address register 73. Additionally, the output signal of 16 the Or gate 1087 gates the Or gate 1089 which in turn 17 provides an output gating signal to the And gate 1091.
18 The And gate 1091 gates the Y position contents of the 19 storage address register 73 into the storage register 71. Thus, during pulse TP5, the contents of the Yl counter 21 are transferred through the storage address register 73 22 to the storage register 71. During timing pulse TP6, ; 23 the And gate 1083 again causes the Y specia] encode 24 , circuit 1005 and the X special encode circuit 1007 to generate the address in the working storage that will 26 contain the Y counter address. This information is trans-27 ferred to the storage address register 73 which thereafter .. ' , :, - . . .. .
~ ' ' : .

.: . . . .
.. . . . . . . .

~48158 l causes the contents of the storage register 71 to be 2 transferred to the address specified. The And gate 1093 of FIG~RE 15(c) effects the gating necessary to 4 write the contents of the storage register into the addressed storage location.
6 Once the contents of the Yl counter containlng 7 the vertical coordinate position of the now cleared 8 hyphen have been placed into a unique position of 9 working storage, the contents of the Xl counter de-fining the horizontal position of the now removed 11 hyphen are stored. This operation occurs during 12 timing pulse 7 when the And gate 1095 of FIGURE 15(a) 13 provides a signal to the Y and X special encode 14 circuits 1005 and 1007 which in turn transfer the address of the working storage position which 16 will contain the contents of the Xl counter to the 17 S,torage address register 73. At the same time, the 18 And gate 1081 of FIGURE 15~c) causes the defined 19 Storage location to be accessed and read into the storage register 71. During timing pulse TP8, the 21 And gate 1097 of FIGURE 15~b) effects the necessary 22 gating to effect the transfer of the contents of the Xl 23 counter 79 into the storage register in a manner similar 24 to that described with respect to the Yl counter.
Thereafter, during TP9 time, the And gate 1095 26 causes the storage acldress in the working storage 27 which will contain thc contents of the Xl counter . .
': :
, ~ .
.

LSi8 1 to be gated into the storage address register 73 2 and further, the And gate 1093 of FIGURE 15(c) 3 effects the gating of the contents into the storage 4 unit. In this manner, the hyphen is cleared and its address stored. At this time, the operations defined 6 by blocks 902 through 906 of the margin adjust operation 7 depicted in FIGURE 14 are complete and the control 8 counter is advanced to state C3 by an output signal 9 from the And gate lQ99 of FIGURE 15(d), P~eferring briefly once again to FIGURE 14 of the 11 drawings, it can be seen that the next operation to 12 be performed is that defined by block 907 of the 13 drawings. This operation causes the contents of the 14 X2 counter to be compared with the old right margin stop position. It will be recalled that the old right 16 margin stop position is stored in the right margin 17 stop register 153 of FIGURE 4(b)o Referring now to 18 FIGURES 15(a) and 15(b), in order to effect the com-19 parison operation defined by the 7th step of the margin adjust operation, the And gate 1101 provides 21 an output gating signal to the Or gate 1045 when the 22 first timing pulse occurs after the control counter 23 has advanced to state C3. The output of the Or 24 gate 1045 effects the transfer of the contents of the X2 counter into the storage address register 73 26 as has been heretofore described. Simultaneously, 27 during timing pulse TPl, each of the n number of bits , .. ~ , . .
.. . . . .
.
.

~ ( lSI~
1 in the rlght margin stop register (not shown) are 2 gated by a correspond1ng plura:Lity of And gates of 3 which And gate 1103 is representative to a corres 4 ponding plurallty of Or gates of which Or gate 1105 is representative. The output signals of these Or gates 6 are compared with the output signals of the X positions 7 of the storage address register 73 by compare circuit 8 75. As a result of the comparison operation 7 the com-9 pare circuit 75 provides mutually exclusive compare eq~al or compare not equal signals. Thereafter, the 11 control counter (not shown) advances from state C3 to 12 state C4 under the control of the And gate 1107 of 13 FIGURE 15~d) i.f the compare circuit provides a compare ..
14 not equal slgnal. If a compare equal signal is pro-vided, the control counter advances from state C3 to 16 state C5 under the control of the And gate 1109 of 17 FIGURE 15(d)~
18 Referring briefly once again to FIGURE 14 of the 19 drawings, when the operation proceeds from block 907 to block 908, the Xl counter is then compared with the 21 new right margin stop information. Referring now 22 again to FIGURES 15(a) and 15(b) of the drawings, the 23 new righ.t margin stop location is stored in a special 24 position of the working storage. This special position is accessed under the control of the And gate 1111 26 which provides a signal to the special encode circuits 27 which in turn provide the storage address register 73 . .
~143-, .,~ .- . . . . . .
~; .. . . . . .
, ' .

s~

1 with the address in working storage of the new right 2 margin stop position. During the first timing pulse, 3 this informatlon is accessed or read from the storage 4 unit into the storage register 71 in a manner analogous to that described heretofore. During the second timing 6 pulse, this information is rewritten back into the 7 storage unit. During the third timing pulse TP37 the 8 And gate 1113 provides an output gating signal which 9 gates the Or gate 1115~ The output signal -from the Or gate 1115 is applied to the Or gates 1009 through 1011 11 to thereby gate the contents of the Xl counter into 12 the storage address register 73, The output o-~ the 13 Or gate 1115 also provides a gating signal to a 14 plurality of And gates of which And gate 1117 is representative. These And gates gate the contents of 16 each bit position of the storage register 71 to a 17 corrèsponding plurality of Or gates 1105. The out-18 put signals of the Or gates 1105 are compared by 19 the compare circuit 75 with the contents of the Xl counter located in the storage address register 73.
21 If the compare operation results in an unequal com-22 parison, and if the L10 and syllable hyphen indicators 23 are not on, the And gate 1119 provides an output 24 signal during TP3 time which causes the Xl counter 79 to be incremented by 1, Thereafter, during TP4 26 time~ the And gate 1121 provides an output signal 27 which causes the X2 counter 80 to be incremented by 1.

~1~4-., .

. "' - ' . , .
.
;-"' '' . .'' ' ,;"''. ~ ' . ' .' i,................................. . .

1 If, as a result of the compare operation performed 2 during step 8, it was determined that the contents of 3 the Xl counter were equal to the contents of the new 4 right margin stop, And gate 1123 provides a gating signal during TP3 time to the Y counter encode circuit 6 1125. rhe Y counter encode circuit is similar to the 7 Y speclal encode circuit 1005 and is responsive to a 8 plurality of input slgnals provided by various gating 9 circuits to provide a corresponding plurality o-f uniquely coded output signals to the varlous Y counters.
11 Thus, when the And gate 1123 provides a gating signal 12 to the Y counter encode circuit 1125, the Y counter 13 encode circuit provides the Y2 counter 82 with a count 14 equal to the row 1 storage address. If the comparison is equal as has been described, the And gate 1127 of ; 16 FIGURE 15(d) causes the control counter to assume a 17 predetermined state corresponding to the operation to 18 be performed by block 347 of the insert operation o-f 19 ~IGURE G(c). If the compare operation resulted in a compare unequal, the control counter is set to its C2 21 state under the control of the And gate 1129. When 22 the control counter is thus set to its C2 state, 23 the operatïons performed during step 2 are again 24 performed in a manner identical to that heretofore described. The operation continues in this manner 26 until either ~t goes to the insert operation as has 27 been descrlbed or until tlle counter advances to its `' ' ,, .
-145~

' ~ ' ' . ' ', ' 51~
1 CS state when it is found that the contents of the 2 X2 counter equal the contents of the right margin 3 stop.
4 When the control counter advances to its CS state, the operation defined by block 912 of FIGURE 14 is 6 thereafter performed. This operation checks to deter-7 mine whether the contents of the Xl counter are equal 8 to the contents of the right margin stop. The operations 9 utilized for making this determination defined as step 12 of FIGURES lS(a) and lS(b) are identical with those pre~
11 viously des_ribed with respect to step 8, Thereafter, 12 as a result of the comparison made, the operation pro-13 ceeds e~ther to step 13 upon an equal comparison or to 14 step lS upon an unequal comparison. When the operation proceeds to step 15, the Or gate 1131 of FIGURE 15(e) 16 provides a gating signal to the And gate 1133 which provides 17 a signal to set the L6 latch 1135. If the compare operation 18 indicates an equal comparison, the L10 latch is sampled 19 to determine whether the operation advances to step 15 or to step 14. ~hus, the L10 lndicator is provided 21 as in input to the Or gate 1131 which causes the L6 22 indicalor to be set if the L10 indicator is on at this 23 time. Referring no~ to FIGURE 15(d), if the operation 24 proceeds to step 15, the Or gate 1135 provides an output gating slgnal to the And gate 1137 which causes the control 26 counter to assume a state corresponding to the operation 27 defined by bloc~ ~21 of the closurc operation depicted '''~

. .

\

815~3 1 in PIGURE 10(a). If the opcration proceeds from 2 steps 12 and 13 to step 14, the And gate 1139 causes 3 the control counter to be set to a predetermined state 4 of the cursor down operation.
While the foregoing description has related to the 6 operations effected during the margin adjust operation of 7 FIGURE 14, it can be appreciatecl by those skilled in the 8 art that each of the state diagrams depicted in FIGURES
9 5 through 13 can be implemented in a similar manner Utilizing many of the control circuits depicted in 11 FIGURES 15. A different control counter would be associ-12 ated with each operation or different states of the same -~
13 counter could be utilized.
14 (~) Input/Output Control ~ . , .
Referrlng to FI~URE 17 of the drawings, a schematic 16 block dlagram of the output control logic as is incor-17 porated into the data composing, editing and formatting 18 system of the present invention is depicted. When it is 19 desirous to effect a printer output operation, the opera-tor depresses the "print" key or the "set printer stops"
21 key on the function keyboard 17E of FIGURE 2. When the - 22 "set printer stops" key is depressed, the device enters 23 into a special mode of operation wherein previously exis-24 ting tab stops set on the prlnter are cleared and a new set of tab stops corre~ponding to those stored in the 26 output tab stop rol~ of the format storage 51 are set.
27 ~Yhen the operator dcpresses the "print" key, all of the 28 data information located wlthin the page storage unit -l47 .
.~

. ~ .
.

~9L8~S~3 1 53 of the storage unit 9 ls transferred from the page 2 storage unit 53 to the storage register 71 and thence to 3 the print buffer 1201. The print buffer 1201 is a single 4 character buffer which buffers the asynchronous operation of the printer and printer control unit 85. The character 6 thus stored in the print buffer 1201 is then transferred 7 under the control of the swltching logic 1203 which forms 8 a portion of the output control unit 35. Mode latches 9 1205 determine whether the device is operating in a print mode or in a set printer stops mode. The decision latches 11 1207 determine the most effi.cient operation of the printer 12 when in print mode. That is, they determine whether 13 the printer should tab, space, print, or carrier return.
14 The output control sequence latches i209 control the sequencing of the output control logic as will be here-16 inafter explained. The form length logic 1211 insures that 17 the entire block of information located within the page 18 Storage unit 53 is outputted to the printer. The 19 storage address register 73 and the address counters 79-83 operate in the same manner as has been described 21 heretofore.
22 Referring now to FIGURE 18 of the drawings, a de-23 tailed block diagram of the decision latches, the mode 24 latches, and the output control sequence latches is depicted. The decision latches 1207 comprise a set of 26 three latch circuits, the Lll latch 1213, the L12 latch 27 1214, and the L13 latch 1215. These latch circuits are . . " . . . , ~ ., , ~, .

1 set and reset in accordance with signals provided by 2 the combination logic decision control 1217. This 3 combination logic is similar to that hereto-fore de-4 scribed with respect to the margin adjust operation, the gating and ~iming terms applied to the logic to be 6 hereinafter described with respect to the state diagrams 7 depicted in FIGURES l9~a) through l9(d). The output 8 signals of the latch circu~ts are provided to a decision 9 encoding circuit 1219 which encodes the states of the latches into tab, print, carrier return, or space 11 operations in accordance with the state of the latches.
12 These signals are in turn utilized to effect the corres-13 ponding operation. The output control sequence latches 14 1209 provide output timing signals which gate the de-cision encode logic so that it provides an output command 16 signal at the proper time. Additionally, the switching 17 logic 1203 provldes an input signal to the mode latches 18 1205 to assure that they are properly set. The operation 19 of the sequence latches 1209 is similar to that of the control counter heretofore described with respect to 21 the margin adjust operation. The sequence latches 1209 22 are responsive to the signals supplied by the combina-23 tion logic sequence control 1223, the operation of which 24 is described in the state diagrams of FIGURES 19 and 20. An L14 latch circuit 1225 is provided for certain 26 sequencing operations to be described hereinafter.
27 Referring now to FIGURE l9(a) of the drawings, a ~, , ~413~58 1 flow diagram of the sequence of system operations effected 2 during a data output operation is depicted. When the 3 operator depresses the "prïnt" key on the function key-4 board 17E, a start signal is provided as denoted by block 1231. A test is thereafter performed as denoted by block 6 1233 to determine whether a display operation or other 7 data manipulation operations are currently being effected.
8 If such an operation is in progress, it is continued as 9 denoted by block 1235. If~ however, no such operation is in progress, the Ml mode latch is set and the output 11 control sequence latches are set to their OP0 state 12 as denoted by block 1237. Thereafter, the decision 13 latches, the print buffer, and the form length registers ~ are all reset to zero as denoted by block 1239. Then, as denoted by block 1241, the form length (number of 16 lines of page storage) is ~ransferred from a predefined 17 position of the working storage to the form length 18 register which is also located in working storage. The 19 form length register will thereafter be decremented as will be described so that the system always contains an 21 indication of the line of print being outputted. Addi-22 tionally, the address of the format storage column of 23 storage is placed in the X2 counter. Thereafter, as 24 noted by block 12~3, the column 1 address of page storage is transferred into the Xl counter and the ro~ 1 address 26 of page storage is transferred into the Yl counter. A
27 special flag bit is then set at the address contained -150~

,' ' , ' ' : . .
.
:.
:' " ' ' ~' ; ,:., ' ' 1 in the Yl and X2 counters which corresponds to the 2 format storage position of t}le first row of storage.
3 This flag bit is utilized to inhibit the cursor move-4 ment to a page position located below the flag bits.
In this manner, the operator is precluded from manipula-6 ting data in the area of page storage which has not yet 7 been outputted until the output operation is complete.
8 Once the first character has been printed in the 9 manner to be described, the output control sequence latches are set to the "OPl state" in a manner to be 11 described and, thereafter, the test denoted by block 12 1245 is effected. If, at this time, a display or 13 other type of operation has been initiated, the 14 operation proceeds to block 1235 to effect the other operations. If no such other operation interrupts at 16 this point, the decision latches and print buffer are 17 reset as denoted by block 1247, the column register 18 information is transferred to the Xl counter, the 19 format store information is transferred to the X2 counter and the row register information is trans-21 ferred to the Yl counter as denoted by blocks 1249 22 and 1251. Thus, the operatlon deflned by blocks 1247 23 through ~251 is similar to that described with respect 24 to blocks 1239 through 1243, the column and row informa-tion of the character to be printed being defined by 26 the contents of the Xl and Yl counters. Thereafter, the 27 output control sequence latches are set to their OP2 .~ ,, , . ~ .

1 state and the address of the output tab information 2 in the format storage is transmitted to the Y2 counter 3 as denoted by block 1253. Once the counters have thus 4 been initialized, the operation of setting the decision latches is thereafter effected 6 Referring now to FIGURE l9(b) of the drawings, a 7 state diagram depicting the controls necessary to effect 8 the proper setting of the decision latches is depicted.
9 This operation is entered into when the output control sequence latches are in their OP2 state. Thus, as de-11 noted by block 1257, a test is made to determine whether 12 the OP2 sequence latch is on and the L13 decision latch 13 is off or if the Xl counter is not equal to the right 14 margin stop or if the Yl counter is not equal to the end of the page. Once the L13 sequence latch is set 16 or once the Xl counter equals the full right margin 17 stop or once the Yl counter equals the last line of i 18 page storage, the output control sequence latches are .
19 set to their OP3 state as denoted by block 1259. Other-wlse, a test is made as denoted by block 1261 to deter-21 mine whether the L14 decision latch is on and, if it is 22 not on, the output tab stop position of the format 23 storage location defined by the Y2 and Xl counters is 24 read and then rewritten back into the format storage as denoted by block 1263.
:; 26 Once the character is thus read from the output tab 27 row of the format storage, it is tested as noted in . .
~ -152-; .

. . . . .

.: , .

~48~

1 block 1265 to determine whether it is a stop code or 2 a blank character. If it is not a stop code, or the con-3 dition Lll, L12 does not exist, the character in page 4 storage which it is desired to output is read and rewritten so that it is now contained in the storage register. Addi-6 tionally, the Xl counter is incremented by 1 These 7 operations are denoted by block 1267. The character thus 8 read is checked to determine whether it is a print code 9 or not as denoted by block 1269 and, if it is a print code and if the Lll and L12 indicators, are not on as de-11noted by block 1271, the Lll and L14 indicators are set 12 on as denoted by block 1273 and the operation proceeds to 13 the test performed previously described with respect to 14 block 1257. If a print code is not detected as denoted 15by block 1269 and if the Lll or L12 indicators are not ,; ~ .
16on as denoted by block 1275, the L12 and L14 indicators 17 are set on as defined by block 1277 and the operation 18 again returns to the steps of block 1257.
19Summarizing the above operation, the output tab stop row of format storage is read to determine if a 21 stop code is present and, if no stop code is present, 22 the corresponding horizontal character position of page 23 storage is read to detect whether a print code existed 24 at that position. If a print code exists, the Lll and L14 indicators are set on and, if a print code does not 26 exist, the L12 and L14 indicators are set on. There-27 after, the operation proceeds from the test of the L14 '' .

, .

,. ~ .
, 8~L58 l indicator as denoted by block 1261 to block 1279 where-2 upon the contents of the Xlcounter are transferred to 3 the column register and the L14 indicator is reset.
4 Since the Xl counter was advanced as denoted in block 1267 during a preceding operation, the next position of 6 format storage is read for the detection of a stop 7 code and thereafter the next position of the page 8 storage is read for detection of a print code. If 9 no print code thereafter exists, the operation pro~
ceeds from the test indicated in block 1275 to the test 11 of block 1257 and continues to cause the format storage 12 to be read and thereafter the page storage to be read ~ -13 until either a stop code or a print code is detected.
14 When a print code is detected, the operation proceeds from block 1269 to block 1281 whereupon the L13 indicator 16 is set. Thereafter, the operation proceeds to block 17 1259 and the output control sequence latches are set 18 to their OP3 state. If a stop code is detected as 19 denoted by block 1265, a test is made as denoted by block 1283 to determine whether the Lll indicator is 21 off and the L12 indicator is on, If these indicators 22 are thus set, the Lll and Ll4 indicators are set as 23 denoted by block 1285. Thus, if a series of blank 24 characters are read causing the L12 indicator to be set and the Lll indicator to be off, and a tab stop is 26 thereafter detected, the Lll and L14 indicators are set 27 on. Thereafter, as denoted by block 1279, the contents 28 of the Xl counter are set into the column registerO
- D~L~9-67~036 ~ ~154 ; .
~ , " , ` , , :

~g~s8 l This enables the initiation of a line scan after a tab 2 operation starting at the tabbed to location if further 3 print characters exist in the print line.
4 If no print codes are detected in a line, the Xl counter eventually equals the right margin stop positlon 6 and the output control sequence latches are set to their 7 OP3 state as denoted by block 1259. If the first charac~
8 ter detected is a print code and if no further print 9 codes are located on the line, only the Lll indicator is set and the operation proceeds to block 1259. If the 11 first character detected is not a print code, but if a 12 print code thereafter follows, both the L12 and L13 13 indicators will be set. If a series of blanks are 14 detected followed by a stop code and followed by a print code, the Lll, 12 and 13 indicators are all set 16 and the operation proceeds to block 1259.
; 17 Referring now to FIGURE l9(c) of the drawings, 18 once the output control sequence latches are set to 19 their OP3 state, a test is performed as denoted by block 1287 to determine whether the Lll indicator is on and 21 the L12 indicator is off. If the indicators are in 22 this condition, it is desirous to print a character and 23 the output control sequence latches are advanced to their 24 OP4 state as denoted by block 1289. If, however, the -; 25 Lll and not L12 condition does not exist, two parallel 26 tests are macle as denoted by blocks 1289 and 1291 to 27 determine whether the decision latches specify that a : -155-:; , ,, , ~

~a~48~5~
1 space operation or that a tab operation should be 2 thereafter effected. If a space operation is indicated, 3 a space is set into the print buffer by the control 4 logic as denoted by block 1293 and if a tab is indicated, a tab command is set into the print buffer as denoted 6 by block 1295. Once the correct character is thus 7 loaded into the print buffer, the OP4 state is set as 8 denoted by block 1289. If neither a print operation g nor a tab operation nor a space operation is specified, this means that only blank characters exist to the 11 right of the addressed line position and that a carrier 12 return operation should be initiated. Thus, as denoted 13 by block 1297, a carrier return code is set into the 14 print buffer and the flag bit at the Yl and X2 counter locations of format storage is cleared. Thereafter, the 16 column register is reset and the Yl counter is incremented 17 by 1 so that the first character position of the newly 18 addressed line can be outputted. These operations 19 are denoted in block 12g9. Thereafter, as denoted by block 1301, the contents of the Yl counter are 21 gated into the row register and the flag bit is set 22 at the Yl-X2 position of format storage. Thus, the 23 flag bit is moved down by one line with each carrier 24 return operation.
Thereafter, a check is mzde as denoted by block 26 1303 to determine whether the forms length register is 27 equal to zero thereby indicating that an entire page has , . ~

~0~58 l been outputted. If it is equal to zero, thc -flag bit 2 is cleared, the output control sequence latches are 3 reset to their OP0 state, the Ml mode latch is reset 4 and the operation stops as denoted by blocX 1305. If the page length is not exhausted, the forms length reglster 6 is decremented by 1 as denoted by the operation specified 7 by block 1301. Thereafter~ the output control sequence 8 latches are set to their OP4 state which causes a 9 test to be performed as indicated by block 1309 of FIGURE l9(d) to insure that the printer latches have 11 been reset thereby insuring that the printer lS free 12 for a cycle operation. If the printer is in cycle, 13 a delay is effected as indicated by block 1311. Once 14 the printer is free, the contents of the prlnt buffer lS are t.ansferrod .o ~he printer latches as indicated 16 by block 1313 and a print cycle is initiated. The 17 output control sequence latches are then set to their 18 OPl status as denoted by block 1315 and the next 19 character of information is ready to be obtained.
The above description has related to the operation 21 of the system when the operator depresses the "print"
22 key on the function keyboard 17E. Onçe the "print"
23 key has thus been de.pressed, the operator may thereafter 24 wish to enter new information or revise existing in-formation ~hile the output operation is being effected.
26 The flag bit which is set during the output operation 27 in the format storage and which is advanced do~n page , ~157-' ' ' ' ' ' . .

~(J4lil~58 1 line by llne as each llne lS outputted prevents the z opera~or from manipulatlng the cursor vertlcal con-3 trols to address a llne which has yet to be outputted.
4 Referring briefly ~o FIGURE 4(a) of the drawlngs, it can be seen that the And gate 133 has a signal supplled 6 thereto which insures that the ~1 gating signal is 7 prevented from incrementing the cursor vertical posi-8 tion counter 129 if the flag bit address is less than g or equal to the cursor vertical position.
Referring now to FIGURE 20(a) of the drawings, ll the operation of the system when the operator de-12 presses the "set printer stops" key is deplcted.
13 ~en this key is thus depressed, the output control 14 sequence latches are set to their OP0 state as denoted by block 1325 and thereafter a test is performed as 16 denoted by block 1327 to insure that a display or con~
17 trol operation is not required at this point in tlme.
18 Assuming that no interrupt is thus required, the M2 19 mode latch is set and the prlnt bufer is reset as de- -noted by block 1329 and thereafter, the column register 21 is reset to address column 1 and the format ro~ address 22 is gated to the Y2 counter as denoted by block 1331.
23 A carrier return operation i5 then transmitted ~o the 24 print buffer so that the printer will return to lts leftmost position and the output control sequence 26 latches are set to the OP3 sta~us to effect the carrier return as ~ill be described hereinafter. These operatlon -15~-' ' . . , ~, l are denoted by block l333.
2 Referr~ng now to FIGURE 20(b) of the dr~wlngs, 3 once the lnltial ca~rie.r return operation is efLected, 4 .a test is made as ind~catcd by block 1335 to determIne whether a control operation has been requested.
6 Assuming no lnterrupt, the contents of the column 7 register are transferred to the Xl counter as denoted 8 by block 1337 and thereafter, the Xl counter is checked 9 to determine whether it is equal to the full right margin stop as denoted b)~ block 1339. If it is not ll equal to the full right mar~in stop, the output 12 control sequence latches are set to their OP2 status 13 as indicated by block 1341, the output tab stop row 14 format storage is read at the character position indicated by the Xl counter and rewritten 5 and there-16 after~ the character thus read is checked as denoted 1, by block 13.43 to determine whether it lS a stop code.
18 If lt is a stop code, a print stop code is stored în 19 the print buffer as denoted by block 1345. If lt is not a stop code, a print stop clear code is stored ln 21 the prinl buffer as deno~ed by bloc~ 1347. Thereafter, 22 the XI counter is incremented and the contents of the 23 now incremented Xl counter are stored in the column 24 reglster as ~enoted by the operations of block 1349.
If the contents of the Xl counter are less Ihan the 26 full rlght margin stop as indicated by bloc~ 1351, the ~ 27 output control sc~uence latches are set to their OP3 i D-LE9-67-036 l59 .- .

.~ . . . ~, . . .
, : " ' ' ~ '. ' ' '. . . ' ' ':

L515~

l status as noted ~n block 1353 and the tab set or tab 2 clea~ operatlon is thereafter effected as w~ll be .3 described. If the Xl counter is equal to the full rlght 4 margin position, the tab set 07' tab clear character Ln the prlnt bufer is reset and a carrier return code lS
6 stored in the print buffer as noted by block 1355~ In 7 eitheI event, the next operation performed is denoted 8 in block 130~ of FlGURE 19 ~d). The operation of block 9 1309 and the remaining blocks of FlGURE l9 (d) are the same as has been previously described with respect to 11 the print ope~ation. Once they are complete, the opera- :
12 tion returns to block 1335 of FIGURE 20(b).
13 Referring once again to FIGURE 20 (b) of the drawlngs, 14 once the Xl counter equals the full right margln stop lS and a rarrier return operation has been initiated, ~he 16 operalion proceeds from the test indicated at block 1339 17 to the operational steps of block 1357 whereby the M2 1~ mode latch is reset and the output control sequence 19 latches are reset to ~heir OP0 status and the operatlon stops.
21 Summarizln~ the above operation, once the operator 22 depresses the "set printer stop" key, a carr~er return 23 on the printer is initiated and, thereafter, the output 24 tab stop ro-~ form~t storage is read, a character at a tlme. Each character thus read is decoded into a set 26 prlnt~r stop or clear pr~nter stop codes. rhe corres-27 pondlng operation i~ thereafter effected and thc ne.Yt , ~60-. _ , , ' ' ' . ' :' ' . ', , ' , . ' , , '.

~4~1LS~

1 character LS then reacl until all of the characters In 2 the llne have thus been read. Once all of the characters 3 in the llne have been read, a carrler return operatlon 4 is initiated and the printer is then ready for a prLn~
operation as has been heretofore described.
6 The above description has related to the out-7 puttlng of format information and tab control in~orma-8 tion to a printer. As is apparent to those skilled 9 in the art, this information could be outputted ln an ident~cal manner to a serial secondary media reader/
11 recorder unit. Further, the informatlon thus recorded 12 on the secondary media reader/recorder could be in~
13 putted into the storage unit of the system in a manner 14 similar to that of outputting All controls necessary would be similar to those described wlth respect to the 16 output operatlon.
17 ~G~ Dlsplay Control `:
18 Referring once again to FIGURE 1 of the drawings, 19 a CRT display 11 having a plurality of lines of displayed inîormatlon lS depicted. As has been descrlbed, the 21 information thus displayed is stored in the storage unit i2 9 in the form of character representations. Each such 23 character representation consists of e~ght binary blts 24 of information which are transferred to the CRT con~rol unlt 37 under the control of the display address 26 reglster 39. The character lnformatlon thus tran~m1tted 27 to t11e CRT control unit is decoded into a serles o~
D-LE9-6~-U36 . .
; -161-; . ,~ .
- ~ :

~48~58 1 blank and unblank instructlons which are utilized in 2 conjunctlon wlth conventional CR~ sweep circuits to 3 generate the character information. Several forms of 4 .character generation deviccs could be utlllzed. In the embodiment to be described, each character d,splayed 6 conaistj of a series o~ dots which are aligned t3 7 f~rm the character representations Referrin~ briefly 8 to FI~URE 21 of the drawings, a grid 1375 deplcting 9 the area of the CRT display in which a slngle charac~ :
ter representation can be displayed is deplcted Each 11 elemental block 1377 of the grid is adapted to dlsplay 12 a dot or illuminated spotO The elemental blocks 13 utillzed to display the letter "M" have an "X" 13?9 14 depicted therein. In this manner, any character, both upper case and lo~-er case; can bç displayed. A number 16 ol^ su.h lmaginary grids exist adjacent to one another 17 on the display device, the number of grids aligned 18 hori.~ontally corresponding to the number OI charac~ers 19 on a line while the number of such grids aligned verti-2Q cally _orresponds to the number of lines displayed~ In 21 the embodiment to be described, it will be assumed that 22 f-~ve Ines of information are displayed and tha~ 64 23 char~;ter positions are dlsplayed.
24 Referring now to FIGURE 22 of tlle dra~ings, a schematic bloc~ diagram of the CRT control unit la 26 dcplcted In order to achieve an understandlng of the 27 timing control necessitated, referetlce will be made D-LE9- 6?-o36 .

- , '"' ': ' ,` ~ ' ' . ' ' . ' 5~3 l ~o the character grld l375 of FIGURE 21, A vertical 2 ras~er s~eep is utllized during the display of each 3 character so that the raster initially addresses the 4 elemental block labelled 1377 and thereafter moves S in a downward direction until all twelve blocks 6 arranged In that column have been addressed. There~
7 after, the raster continues to sweep in a dowm~ard 8 dlrection through the character displayed in the next g l~!ne and aO on until the first column of five adjacent characters have thus been swept. The raster ia then ll blanked and returned to the second column of the 12 character and thereafter sweeps again in a downl~ard 13 direction. This operation iâ repeated eight times for 14 each olumn or scan line.
Th~ dot clock ~enerator '~01 gcncrates the neces~ary 16 timing pulses to control the blanking and unblanklng of l? the raster during its downward sweep through 2 single 18 character. The character counter 1403 genera~es the l9 timing signals necessary to control the gating of the appropriate vertically aligned five characters. A
Zl slxth timing pulse is provided to control movement of 22 the ras~.er back to an initial pos1tion. A scan line 23 counter 1~05 generates the timing signals necessary to 24 control the blanking and unbl~nking of the raster in accordance hith the scan line of the characters that it 26 is addressing. .~ hori~ontal character counter 1~07 2' supplles the necessary signals to control the proper : -, . . :
~ ~ ' . .' . ~ .

8~58 1 gatlng of each ~equcntial character of the five lines 2 dlsplayed, there belng 64 dlsplayed characters ln each 3 line. It is to be noted that this counter counts to 4 80, the counts 65 through 80 accounting for the horlzonlal retrace time of the raster. The counter 1409 maintalns 6 the vertical storage address in the storage unit 9 of the 7 fi~e lines displayed, these lines corresponding to the 8 line addressed by the cursor and the two lines above tha~
9 line and the two lines below it.
The first scan line of each character lS always 11 blank, this blank space being utilized to separate 12 adjacent characters. It is during the time that the 13 raster is sweeping the first scan line that the five 14 vertically aligned characters ln the format storage 51 or the page st~ragc 53 of the storage unit 9 are 16 gated to the character latches 1411-1415. At this 17 time, the scan llne counter 1405 provides an output 18 signal indicating that the first scan line is being 19 addressed. This signal is applied to the And gates 1417 through 1421 which gate the five characters to the 21 character latches. Additionally, at this tlme, the scan 22 line counter provides an output gating~signal to the 23 horizontal character counter 1407, the output of which 24 is gated with a display function line and applied to the galing circuit 1423 and thence to the storage address 26 reglster 73. In this manner, the horizontal pOSltlOn of 27 the characters to be dlsplayed ls specified to ~he .. ~ .

: . .
'~

: .
.; ' ~ 8~L5~3 1 storage address regis-ter 73.
2 The vert~cal storage address of the characters to 3 be dlsplayed is supplied by the counter 1~09 whlch lS
4 initially reset to a count equal to two less than the cursor vertical position. This counter advances each 6 tlme the character counter provides an input slgnal 7 to the And gate 1425 when the scan line counter 140~
8 is in the flrst scan line. The counter 1409 is reset 9 when the character counter reaches the count of 6~
Thus, as the raster sweeps in a downward direction over 11 the first scan line of the first character to be dis-12 played, the corresponding character in the storage unit 13 9 is addressed by the storage address register and gated 14 to the storage register 71. Thereafter, the character ~s gated by the And gate 1417 to the character latch 16 1411. A gating signal is supplied by the character 17 counter 1403 to the And gate 1417 which insures that the 18 character is placed only in the character latch 1411.
19 Once the flrst scan line of the first character has thus been swept by the raster, the dot clock 1401 supplles 21 a count pulse to the character counter 1403 which causes 22 the second character located in the line immediately 23 below the first character to be gated in a similar 24 manner to the storage register and thence into the character latch 1412. In this manner, all of the 26 characters are loaded into their corresponding character 27 latches.

: .
.
.. . . ~ . . .

1~8~ i8 1 The output of the character counter 1403 also 2 controls the vertical trace circuit 1427 and the vert 3 cal retrace circuit 1~29. Thus, during the first 4 five character counts, the vertical trace circuit causes the raster to sweep in a downward direction and during 6 the sixth character count, the vertical retrace circuit 7 causes the raster to retrace to its initial vertical 8 position.
9 When the character counter 1403 reaches the count of 6 9 the scan line counter is incremented so that it 11 is now addressing the second scan line. When the 12 character counter thereafter reaches a count of 1, the 13 And gate 14~1 gates the eight bits of the binary coded 14 character in the character latch 1411 into the character generator 1433. Additionally, the scan line counter 16 1405 provides an output signal to the character generator 17 which consists of combinational logic which encodes the -18 character and scan line information into a set of 12 19 output signals. These 12 output signals are gated to a serializer 1435 which is further responsive to the 21 dot clock 1401 to provide a series of 12 blank and un-` 22 blank instructions to the intensity control circuit of s 23 the dlsplay tube 1437. These signals are synchronized 24 with the vertical trace of the raster as the output of the dot clock generator 1401 is applied to the vertlcal 26 trace circuit 1~27, which in turn controls the voltage 27 applied to the vertical deflection yokes 1439 of the ` ~ 1'' ' ' ' ' ' ,.~
~, .

~4~5~

1 dlsplay tube 1437, 2 Once the dot clock reaches a count of 12, the 3 character counter 1403 advances and the character con-4 tained in the character latch :L412 is gated by the And gate 1441 lnto the character generator 1433. The 6 second scan line of this character is serialized in 7 a similar manner and the operation proceeds until the 8 second column of all five characters have been displayed.
9 Thereafter, the character counter reaches a count of 6 and the raster is blanked and retraced and the scan line 11 counter 1405 advances so that the third scan line of 12 each character will be thereafter displayed. This 13 operation continues until all eight scan lines of the 14 five characters have been displayed at which time the scan line counter provides an output signal to the hori-16 zontal character counter 1407 causing it to advance one 17 character to the right in the page storage unit 9.
18 At this time, a new group of five characters are 19 gated into the character latches 1411~1415 while the raster scans the first scan line of those characters.
21 Eventually, the horizontal cfiaracter counter 1407 reaches 22 a count of 65 indicating that 64 characters of the five 23 lines of the storage unit 9 which are displayed have 24 been displayed. At this time, the raster is retraced in a horizontal direction under the control o~ the hori-26 zontal retrace circuit 1443. This retrace occurs during 27 horizontal character counts 65 through 80 while a .
~167 ' ' . .

' ' ' - ' ;~'' ' ": ' ~, '' , 3L04~5~

l horlzontal trace is effected during the counts 1 through 2 64 by the horizontal trace circuit 1445. Both the 3 horizontal trace and horizontal retrace circuits cause 4 a saw tooth wave to be applied to the horizontal de-flec-tion yokes 1447 of the display tube 1437 to cause the 6 raster to sweep from the left ~o the right in a linear 7 manner during the trace and to thereafter be retraced 8 to its lnitial position.
9 In order to insure a continuous display of the text information, it is necessary to interrupt long ll character manipulation operations to effect the trans-l? fer of display information from the storage unit 9 to 13 the character latches 1411-1415. Provision for such an 14 interrupt has been described with respect to the output opera.ion. Cor.vcntional interrupt control loglc can 16 readlly be utilized for this purpose.
17 Whenever the storage address register contains the 18 storage address of the cursor or of the left margin l9 stop or right margin stop, the compare circuits 1449 through 1451 provide output signals to the character - 21 generator to effect the display of the cursor mark 19 ?2 of FIGURE 1 or the display mark 29 of FIGURE 1. It 23 should be noted in this connection that the cursor is 24 always displayed along with the character contained in character latch 1413 and the display mar~s are dlsplayed 26 in con~unction with the characters contained in ~he 27 cha~acter latches 1411 and 1415.

;

- ~

, . .

8~LS~

l In the descriptlon of the above embodlment, lt was 2 asswned that five lines of in-formation were displayed.
3 Of course, as is recognized by those skilled in the art, 4 additlonal lines could be displayed in accordance with the speed of the circuits utilized and the type o-f dls-6 play embodiments selected. Since only a portion o-f the 7 llnes stored ln the page storage unit are displayed in 8 the present embodiment, additional circuitry is provided 9 to give the operator a l'visual feelll of the relationship of the lines displayed to the total number of lines stored.
11 Thus, the lines are displayed at the top of the CRT tube 12 1437 if they represent lines of information contained at 13 the top of the page storage unit 53 and they are displayed 14 at intermediate locations :Eor intermediate llnes and at a lower location for lower lines. The cursor vertlcal 16 position register 129 supplies an input signal to the 17 digital to analog voltage generator 1453. An additlonal 18 input representative of the line number of the top o~
19 the page and a further one representative of the line number of the bottom of the page is supplied respectively 21 by the top of page indicator 1~55 and the bottom of page 22 indicator 1457. These signals can either be in digital 23 or analog form and are utilized in conjunction with the 24 digitial slgnal supplied by the cursor vertical positio~
counter 129 to provide an output analog signal to the 26 vertical deflection yoke 1439. Thus, as the cursor 27 vertical position is near the top of the page, a large ,'; .
-163- ~

- ~, . .
; ", " ; , . , ~' : .' . '':' '. . ' . , . .:' ' . , . ::. :

4~5E~
1 DC voltage is applied to the upper vertical yoke causing 2 the raster display to be effected near the top of the 3 display tube 1437. As the cursor vertical position moves downward toward the bottom of the page, a DC
potential is applied to the lower vertical yoke. It 6 will, of course, be recalled that the cursor vertical 7 position defines the middle line displayed of the page 8 storage unit 53 and thus always represents a displayed g line.
A further aid in determining the relative position 11 of the addressed line is to display the line number. This 12 information is located in the cursor vertical position 13 counter and can be generated on the display surface or on 14 an auxillary counter.
While the above description has related primarily 16 to the display of data information on a cathode ray tube, 17 it is understood by those skilled in the art that various 18 forms of electronic display devices such as gas panel 19 displays can be utilized without departing from the spirit and scope of this invention.
21 Referring once again to FIGURE 3 of the drawings, 22 it has been described with respect to the display and 23 output operations how entire lines of text contained in 2~ the page storage unit 53 are outputted. It has further been described ho~ only the text contained in the page 26 Storage unit 53 that is horizontally bounded by the 27 activated margin stops and vertically bounded by the 2~ paragraph marks contained in a column of the format ., , ~

1¢J4~
1 storage unit 51 is operated upon during the text content 2 control operations and text modification operations de-3 scribed. In this manner, columnar informatïon may be 4 entered and adjusted without affecting the displayed information located in adjacent columns. Additionally, 6 paragraphs of information following the operated upon 7 paragraph of columnar information are shifted up or down 8 page to fill void lines or to make room for additional 9 lines. Thereafter, the adjacent columns of information which were entered and adjusted under the constraints of 11 differing sets of margin stops are outputted to a serial 12 printing device 85 as though the column defining margin 13 stops were not present. That is, printing is effected 14 serially across each line, intervening margin stops being - 15 interpreted as tab stops.
16 In the description of the page storage unit 53, it 17 was assumed that there was a one for one correlation be-18 tween the page storage unit 53 and the displayed informationO
19 However, as is apparent to those skilled in the art, a 20 storage unit could readily be structured wherein the .
21 horizontal line limits are defined by control logic there~ :
22 by eliminating the necessity to store blank characters 23 located at column and line ending positions. Thus, in- :
2~ stead of each line being defined as a line of storage, it would be defined as a predetermined number of data ~6 characters corresponding to the number of data characters 27 and space characters displayed in a line of display, A
~i 28 single character representation could then be utilized D~LL9-67-036 "; ' .. . .
' .
' . . ., ' ' ' , . ' ' .~, ' ' ~ ~413~S~

1 to define the number of excessive blank storage locatlons 2 to be displayed thereby eliminating the one to one storage 3 and display described with respect to the preferred embodi-4 ment. In a similar manner, the column defining means in-stead of defining discrete storage locations would define 6 data character locations within each line.
7 It has further been described with respect to the 8 page storage unit 53 that the interword characters defining 9 space characters are stored in storage locations located adjacent to the storage of text character represen~ations~
11 An additional method of storing such character representa-12 tions would be to add an additional binary storage represen-13 tation to each text character storage location. This added 14 binary storage position could indicate whether a space -character was located immediately to the right of the 16 text character, thereby eliminating the necessity of 17 storing interWord spaces. This representation of space 18 characters would be operated upon in the same manner as 19 that described with respect to the preferred embodiment.
However, such a representation would necessarily effect 21 changes in the control logic to recognize this form of 22 space character representation.
23 A further modification that can be made to the storage 24 device without departing from the scope and spirit of the invention is to effect the storage of adjacently displayed 26 characters in physically non-adjacent storage locations 27 This type of operation is often effected in data process-..:
28 ing operations to enhance the characteristics of the .~

:i:

: . .
,,, .~

8~L5~

1 storage device. Thereafter, the storage locations con-2 taining the adjacent characters would be addressed in a 3 defined ordered sequence to effect the operations described and the display described.
S A further feature of the present invention which has 6 been described is that input keyboarding is accomplished 7 without requiring the operator to observe margin and word 8 ending conditions. That is, if the point of action goes 9 beyond the right margin, it is automatically removed to the next subsequent line without splitting words or necessitating 11 the operation of a line return key as with conventional 12 typewriter systems. In order to insure that a word is not 13 split, the keying of a subsequent character without keying 14 a space character causes the entire word of which the sub-sequent character forms a part of to be transferred to the 16 next line of display.
17 The foregoing description has related to the ope~a-18 tion of the system as it is controlled by the control unit 19 23. The various discrete operations of the control unit 23 have been described with respect to state diagrams, the 21 actual implementation of selected ones of the state 22 diagrams having been described with respect to gating 23 circuitry and timing clocks. As is apparent to those 24 skilled in the art, different forms of logic implementa-tion other than that utilized to depict the state diagrams 26 could readily be incorporated by one skilled in the art.
27 These forms would include stored instructions stored in 28 a memory unit and adapted to be gated out in a sequence D^LE9-67 -036 - . ~ .. .. . ..

s~
1 defined by various instruction counters and registers.
2 Additionally, several alternative visual controls 3 such as "light guns" could be utilized to identify 4 the point of action on the display for various opera-tions performed. Further, the storage and control 6 units may be located at a remote site Erom the dis-- 7 play and entry device and form a part of an associated 8 computer system. Additional controls described in 9 the aforereferencèd application of Robert A3 Rahenkamp et al could also be incorporated for statistical in-11 formation control.
12 While the invention has been particularly shown 13 and described with reference to a preferred embodiment - 14 thereof, it should be understood by those skilled in the art that the foregoing and other changes in form 16 and detail may be made therein without departing from 17 the spirit and scope of the invention.
18 What is claimed is:

r.
. ^. .` .

. . .

~, ~

.
. ~

' ~ ' ;~ -174-''~

. ~ .

Claims (3)

1. A data-composing system comprising:
storage means for data character representations in a plurality of ordered storage locations, said stored data character representations in-cluding text character representations and interword representations;
line-defining means for defining sequential lines of successive data char-acter representations stored in corresponding pluralities of successively ordered storage locations, each line of data character representations in-cluding a predesignated number of data character representations;
margin-defining means for establishing a set of column boundaries within each line of data characters, the set of column boundaries defining a fixed number of successive data character representations within said set of column boundaries for each line of data character representations;
word-defining means responsive to text character representations stored in successive ordered storage locations and to interword representations for defining word groups of data character representations;
word-optimizing means responsive to the margin-defining means and to the word-defining means for optimizing the number of word groups located within the set of established column boundaries of each line of data character repre-sentations;
paragraph-defining means for designating vertical text boundaries corres-ponding to preferred ones of said lines of data character representations said vertical text boundary having an ordered storage location adjacent that of the first data character representation of said preferred line;
addressing means responsive to the margin defining means and the paragraph defining means for selecting a storage location located within a selected verti-cal text boundary and within the established set of column boundaries;
character insertion and deletion means alternatively operable to insert and delete data character representations from the selected storage location;
word shift control means responsive to the word defining means and to word optimizing means for shifting selected word groups of text information stored in storage locations of a higher order than the selected storage location and within the same vertical and column boundaries to higher ordered storage loca-tions during an insert operation and to lower ordered storage locations during a delete operation;
line shift control means for shifting the data character representations of lines of storage locations of higher order than a vertical text boundary into lines of storage locations vacated by the operation of the word shift con-trol means and from lines of storage locations occupied by data character repre-sentations shifted by the word shift control means, said vertical text boundary being shifted with its corresponding line of data character representations.
2. The data-composing system set forth in claim 1, further comprising:
column set defining means for defining plural sets of column boundaries within each line of data characters, each set of column boundaries defining a number of successive data character representations located within said set of column boundaries for each line of data character representations and wherein said margin-defining means includes margin set selecting means responsive to the column defining means for selecting the established set of column boun-daries.
3. The data-composing system set forth in claim 2, further comprising:
display means responsive to the storage means and to the addressing means for displaying at least one line of data character representations, said at least one line corresponding to the line of data character representations which include the character stored in the selected storage location.
CA310,475A 1969-09-30 1978-09-01 Automatic data composing editing and formatting system Expired CA1048158B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA310,475A CA1048158B (en) 1969-09-30 1978-09-01 Automatic data composing editing and formatting system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA063,905,A CA951827A (en) 1968-12-09 1969-09-30 Automatic data composing editing and formatting system
CA185,939A CA954225A (en) 1969-09-30 1973-11-16 Automatic data composing editing and formatting system
CA310,475A CA1048158B (en) 1969-09-30 1978-09-01 Automatic data composing editing and formatting system

Publications (1)

Publication Number Publication Date
CA1048158B true CA1048158B (en) 1979-02-06

Family

ID=27160452

Family Applications (1)

Application Number Title Priority Date Filing Date
CA310,475A Expired CA1048158B (en) 1969-09-30 1978-09-01 Automatic data composing editing and formatting system

Country Status (1)

Country Link
CA (1) CA1048158B (en)

Similar Documents

Publication Publication Date Title
US3241120A (en) Message display and transmission system utilizing magnetic storage drum having track with message zone for storing binary-encoded word and display zones for storing corresponding binary display matrix
US4594674A (en) Generating and storing electronic fonts
US3248705A (en) Automatic editor
US4475239A (en) Apparatus for text editing and processing
ES374351A1 (en) Automatic data composing, editing and formatting system
CA1183977A (en) Information processing apparatus
US3676856A (en) Automatic editing system and method
GB1296175A (en)
GB1296174A (en)
US3915278A (en) Right hand margin adjustment feature for an automated typing system
EP0199863B1 (en) Visual display unit with character overstrike
US4837737A (en) System for detecting origin of proprietary documents generated by an apparatus for processing information such as words, figures and pictures
US4228507A (en) Methods and means for reproducing non-alphabetic characters
GB1296176A (en)
US4334286A (en) Data entry apparatus for entering tabular data row by row and column by column
EP0008162A1 (en) Text processing and editing device
US3940746A (en) System for automatically processing and printing the contents and the format of a text
US4580916A (en) Typing device for typing in several languages by combining sub-components of the characters
US4205922A (en) Font and column format control system
US4028681A (en) System for automatically processing and printing the contents and the format of a text
US3709525A (en) Character recognition
CA1111565A (en) Line spacing and column format control system
GB2033633A (en) Ideographic coding
US3714636A (en) Automatic editing method with page formatting
EP0026286A1 (en) Hyphen code converting process for a text processing system