CA1169571A - Display support of indefinite page - Google Patents

Display support of indefinite page

Info

Publication number
CA1169571A
CA1169571A CA000399134A CA399134A CA1169571A CA 1169571 A CA1169571 A CA 1169571A CA 000399134 A CA000399134 A CA 000399134A CA 399134 A CA399134 A CA 399134A CA 1169571 A CA1169571 A CA 1169571A
Authority
CA
Canada
Prior art keywords
area
text
display
address
pointer
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
CA000399134A
Other languages
French (fr)
Inventor
William C. Cason
Ward A. Kuecker
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of CA1169571A publication Critical patent/CA1169571A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G1/00Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data
    • G09G1/02Storage circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Abstract

DISPLAY SUPPORT OF INDEFINITE PAGE

Abstract A text processing system includes a first external storage area for text documents, an internal storage area where, inter alia, edit operations are performed, and a third storage area in which text is formatted for display. The area for formatting text for display is related to the internal text storage buffer by a table containing pointers to the text storage area, one for each line to be displayed. The pointers are expressed relative to a single known address, that of the start of the linc in the text storage buffer containing the point at which the edit operation is to occur.

Description

AT9~81-010 DISPI.AY SUPPORT OF IN[~EFINITE P}~C:E

DE.~;CRI PTI ON
Technical Field This inven-tion rela-tes to interactive text processing. In particular it relates to dynamically displaying documents of indeterminate length, the entirety of which cannot fit at once into either the display storage area or onto the display screen.

Background Art In text processing systems data keyed in and stored is recalled rom the storage medium and placed in a particular storage ~rea which may be reEerred to as a text storage buffer to facilitate editing opera-tions, that is, revisions, additions, deletions, to previously keyed data. ~o optimize the operator interEace -to the -text processing system, access time to the previously keyed text and a response time to any editing changes thereto should be minimized.
Office machines for processing text data to produce hard copies utilize display screens for presenting to an operator visual text as it would appear on hard copy. Typically, such machines incor-porate a conventional typewriter keyboard with addi-tional control keys for operator interface with the system controls. The operator keystrokes are dis-played on a screen quite similar to a home television receiver screen. This screen either displays a full page of text, a partial page, or in some machines only a single line of text. The display not only provides a visual presentation to the operator of the text being prepared but also provides prompting instruc-tions for the operator of how to interface with the machine.

~T9-81-010 RespondincJ to the keyboard strokes of an oper.ltor are system controls including programmed computers which prepare the text display. Most present day t~xt processing sys-tems include electronics hardware programmed -to evaluate the operator keystrokes and -to control the display. This electronics hardware includes memory for storing character data and in-struction data for future use in editing and the preparation of hard copy. Ease of operation of the machine for the operator is in large part determined by the electronics and the associated computers and programs therefor.
Heretofore, -te~t processing systems have worked with finite pages. That is, tex-t was developed and stored in segments equivalent in length to the final desired page size so that the buffer or stor~ge area in which editing is performed was required to also be the same size as the page. This restric-tion proved unacceptable because of limitations resul-ting from a finite page size.
Having a finite page size restricted the choice of size for a random access memory. Two problems in particular resulted. First: In a high productivity environment it is desired that the operator of a text processing system key entire documents without regard to pagination decisions, thus, the requirement for an indefinite page. The second problem relates to RAM
size choice. Regardless how large of RAM is chosen there are s-till "typical" applications which would require more storage space of their "page". Cos-t considerations also discourage choice of this route.
Another prior art technique employed involved a complete exchange of data from the editing storage area, or as referred to in the present invention, the AT~-~l-010 t3~

text storage buffer. This, too, proves ccstly from a sys-tem performance perspective.

Disclosure of the Invention The present invention offer~ advantages which overcome the aforementioned prior art limi-tations. In a text processing system including a keyboard, dis-play, and random as well as direct storage means, documents are created and stored in segments compris-ing a "page" of indefinite length on the direct storage device. A text storage buffer, TSB, is provided in which, inter alia, edit operations are performed, at any point in time, on only a multl-segment subset of the total documen-t. Tlle T9B may be visualized as a "window" by which the indefinite page of a document passes in accordance wi-th the system operator's option. At -the operator's will, text data i5 scrolled vertically and horizontaLly on the screen which is an additional "window" placed upon the TSB.
The system in which the present invention is embodied includes another storage area equivalent in size to the display screen, in which area text data from the TSB is formatted for presentation to the display device. The above described storage area is usually referred to as a screen refresh buffer.
The present invention allows display of text the location of which may change with time without adverse affects on operator perceived response time, because the present invention provides a means for keeping the display screen current without a requirement of reconstruc-ting the display.
The TSs for the present invention, in addition to havin~ the ability for text to circulate between itself and the direct storage device, also is provided with a blank area or "bubble" at the edit point which Ar~ o l n ;'3~7~L

corresponds to -the cursor perceived by the operator on the screen of the display device. This buhble is an advantageous feature which improves system performance by e:Liminating the need for massive memory manipula-tion for any given edit s-tep.
A scrolling operation and/or bubble si2e or location change, hereinafter collectively referred to as a TSB "float", increase the need for efficient means within the system to correlate to some easily maintainable point of reference where a piece of text is .
It is necessary to correlate where a piece of text is currently because a text entity is clynamic wi-thin -the TSB. A given text entity nloves for -two reasons. One, because of the bubble, the size and location oE whiah can be changed, and b~cause o~
vertical scrollin(J wllich move~ segments into ar)d out o~ the TSB. The system in which the pres~nt invention is embodied includes a table called the line vector table which contains one entry for each line to be displayed. Each entry contains format informatlon, called a point format, such as characters set, etc.
Each entry also includes a pointer to the TSB location of the text to be displayed. This table i9 initial-ized during an operation called "BUILD" during which the entire screen is formatted. The validity of these pointers disappears when the contents of the TSB
shifts.
Generatillg and maintaining complex tables of pointers and the like to correlate TSB text locations with the LVT pointers would cause an increase in RAM
requirement and the time required to update the display. The present invention provides a technique by which all I.VT pointers are made relative to a single address, which, while movable in fact, is AT9`~ 1 I O

always provided when control is given to the clisplay routine in which the present inve~-tiorl is embodied.
This fixed reference pOillt iS the starting address in -the TSB of the line COntairlinCJ the edit point. rrhis address, assigned a clisplacement value of zero, serves as the base. All other I,VT pointers are expressed relative -thereto.
The foregoing and other features and advantages will become apparent from the more particular descrip-tion of the preferred embodiment of the invention isillustrated in the accompanying drawings.

~rieE Description o the Drawing Fig. 1 is a basic block cliagram oE n text pro-cessing system including a keyboard, processor, memory s-torage and a display screen for visual preselltatian to an operator of text and opera tinCJ instructions.
Fig. 2 is a detail showing the contents oE memory 18 of Fig. 1 as structured for displaying payes oE
indefinite length.
Fig. 3 is a schematic illustration of relative text capaci-ty of components of the text processing system oE Figs. 1 and 2 and -their relationship to the LVT.
Fig. ~ illustrates parts of the operation of processor 10 of Fig. 1 during an editing operation Fig. 5 is a flow chart illustrating steps fol-lowed by DAM during display operations.
Fig. 6 shows steps performed by DAM in expressing text location addresses in terms relative to TSB
start.
Fig. 7 represents the steps performed in DAM to express text location addresses in terms relative to CLA.

.~T9-8l-010 Figs. 3-14 are illustrations oE the i.mpact of the present invention during a sequence of edit operations involving on varying tex-t locations in the system of Fig. 1.
S Fig. 8 reElects the corresponding locations of the edit point in the screen, TSB, and diskette.
Fig. 9 reflects the state of the screen, TSB, and diskette before a MOVE.
Fig. 10 reflects the intermedia-te effect of the MOVE on the screen and TSB.
Fi~. 1I reflects the final state o~ the T~B a~ter the MOV~.
Fi~. 12 reflects the corresponding location o~ a new edit point in the screen, TSB, and diskette oE
Figs. 8-11.
Fig. 13 reElects the correspondin~ screen, T5B, and diskette text locations after vertical scroll in the TSB.
Fig. 14 reflects the final result oE the edit point MOVE of Figs. 12 and 13.

Detailed Description Referring to Fig. 1, a text processing system is shown including a processor 10, interconnected by means of a data bus 12 and control lines 14 to a keyboard 16. Included on the keyboard are conven-tional alphanumeric characters found on the standard typewriter keyboard. In addition, the keyboard includes symbol keys, such as backspace, carrier return and tab settings along with function keys used to instruct the system to perform certain operations, to control the way a display is created, or to provide information about stored textual data. In addition, the keyboard includes code keys that are used in AT9--8~ OlO

.4;~3~7.^~

conjunc-tion wi.-tll another key to input specia:l instruc-tions to -the processor 10.
Keystroke da-ta transEerred to -the processor lO
over -the data bus ].2 in -the orm of 7-bit bytes is processed by instructions stored in a random access memory IR~M) 18 by means of an interconnecting data bus 20. The random access memory 18 stores the keystroke data bytes in addition to instructions for operation of the processor 10.
The text processing system shown includes flexi-ble diskette storage means 21 connected via data bus 20 to processor 10 and random access memory L8 to provide additional da-ta and program storago c~paci~y.
Also connected to the random access memory 18 by lS means o.E a data bus 22 is a display refresh buffer 2 -that rece,ives clisplay da-ta fox fo.rmattillg a visual presentation on a display screen 26. Con-trol signals for operation of the display screen 26 are provided along a data bus 28.
Typically, the display screen 26 is a cathode ray tube, and in a preferred embodiment of the present invention, is formatted into four virtual images, the major one of which displayed twenty lines oE text information. The total line capacity of the display is twenty-five lines with the first two lines reserved as a virtual display for document format-ting informa-tion and the bottom two lines of the display reservedfor virtual images as a prompt line and a message line to give an operator instructions on the control of the text processing system of Fig. 1.
Referring to Fig. 2 there is shown one opera-tional format of the random access memory 18 of Fig.
1. In Fig. 2 the keyboard 16 is shown with the data bus 12 connected direct to the processor 10 while the control bus 14 is connected through an interrupt AT9-81-0l() arbitrator 15 to the processor. The interrupt arbi-trator 15 is logic hardware that re~eiveC; all. system interrupts and processes them on a priority basis to the con-trol logic uni.t 30 o -the processor 10. for purposes of describing the present invention, only the keystroke interrup-t will be considered.
As formatted, the random access memory 18 in-cludes a keystroke access method 60 made up from defined storage locations. It should be understood that each of the identifiable areas of storage in the random access memory 18 comprise storagc loccltions addressable by c:onventional techni-lues. Thu.~3, the keystroke access me-thod 60 rece.ives keystroke data by-tes over -the data bus 20 which i.s also connected to an application program memory 62. Stored in the applic~tion program memory 62 are application p:rograms consisting of instructions and data bytes trans~erred between the application program memory 62 and a text storage buffer 64 or a display control block memory 66. As -the name implies, the text storage buEfer (TSB) 64 contains a data stream of unformatted text.
Each byte in this data stream is either a graphic item : (that is, letters, numbers, etc.) of single byte length, a single by-te control instructlon (that i5, a line end, tab stop, carriage return, etc.) or a multi-byte control code. A multi-by-te control code is a string of data "N" bytes long that contains informa-tion on how to format the data stream in the text storage buffer. Typical of multi-byte control codes are "left" and "right" margin settings, tab stops, ~ character pitch, etc. Thus, the text storage buffer : 64 is that area of the random access method 18 that contains the data stream, part or all of which is to be formatted on the display screen 26.

i~[~9-~.L-()IO

~, 'I,, t.i!3.,.;1,r;i~1 That area of the memory 18 identified as the display control block 66 receives data and instruc-tions from the applications program memory area 62 to ~enerate Eormatting instruetions to a di.sp].ay ac:cess method ~n~M) pro~ram 68. These :Eormat-tiny instru~-tions, are passed between the display control ~lock and the DAM program 68 by means of an instruction bus 70.
Also received by the display access method program 68 are ~raphic bytes and eontrol bytes from the text storage buffer 64 on a data bus 72.
In response to instruetions from the display control bloek 66, the display aeeess method proc31-am 68 formats the data from the text storage buffer 64 for inputting to the display refresh hufEer 24 over -the data bus 22. Also required for formatting of a display by the DAM program 68 is display information stored in the Line Vector Tabl~ (I.,VT) 74 which data is transferred between the DAM program 68 and the storac3e 74 by means of a data bus 76. The Line Vector Table 74 has an entry for each line of display on display screen 26. The Line Veetor Table entries inelude a pointer to the text storage buffer TSB 64 location of the data to be displayed in the eorresponding line of display 26. Other information referred to collec-tively as point formats comprise the remainder of the entry for each line in the Line Vector Table. Point formats inelude items sueh as indent level, tab raek address, and similar information required by DAM 68 to format the sereen on the display deviee 26 via the refresh buffer 24. The display aecess method (DAM) interface~ with the Line Vectc)r l'able to construct ancl update a display.
By operation of the random access memory 18 in conjunction with the proeessor 10, in the manner to be AT~ 8l-0l0 i, 3~

clescri~ed wi-th reference to other figures, a presenta-tion of text is made on the display screerl 26 that includes a cursor at a location deEinecl by operator keystrokes.
Typically, the random access memory 1~ contains instruc-tions and data stored therein at various address locations. Instructions are loaded into the random access memory 18 for forma-t-ting the address loeations to perform the function identified -to -the system. Alternatively, the random access memory may be replaced entirely by a combirlation of hard wired logic which would also replace the processor 10 such that "instructions" and the processor are no-t uti-lized. The flow diagrams described herein.lf-ter will enable any person havlng skill in the art of logic design to speciEy harclware logic in accordanee with the concepts o;E the elaimed invention. ~hese 10w diagrams will also enable anyone having skill in the art c~f eomputer programming to program a general purpose digital eomputer to perform the funetions deseribed.
As a further explanation prior to proeeeding with deseription of the present invention, it should be pointed out that the display screen 26 does not necessarily include all the text data in the text storage buffer 64. Refer now to Fig. 3 which repre-sents schematically the relative capacities of -the several text stora~e location in the system. Only a limited number of text lines will be clisplayed wher~as the total number of text lines may often exeeed this number. Further, there is more data stored in the text storage buffer 64 than may be displayed in either dimension on the display sereen 26.
Shown in Fig. 3 at the far right is representa-tion of the diskette or other external stora~e means A~r9~ olo i ' 3 ~

21, Fiys. l and 2. I-t can be seerl that the storage area ,is divided into segment; s}lown as Sl;:CI t~lrouyh SEGn. Segmellt~ are o~ varying lengths. Th~ totc,]
capacity of storage means 21 is representecl by t:he letter Z. Moving to the lef-t in Fig. 3 text stQrage buffer 64 from Fig. 2 is represented. The length oE
TSB 64 is variable as a function of the application program in the text processing system which creates it. I-ts total length however is represented by the letter Y. The display refresh buffer from Fig. 2 at 24 is represented. Display refresh buffer 24 has a capacity equal to that of -the c~isplay scrcen 26. That is, there is a one to one correspondencc be-tween lille locations in the display refresh buFfer and the display screen. The total capacity of refrestl bu~er 24 and screen 26 is indicat~d by the letter X. The problem solved by the presen-t invention arises when the relationship is such that X i9 less than Y which is less than Z.
Also represented in Fig. 3 is the Line Vector Table LVT (74, Fig. 2) and its relationship to the TSB
64 and display refresh buffer 24. There is an entry in LVT 74 for each displayable line whose contents are actually formatted in the refresh buffer 24. The Display Access Me-thod DAM looks to the LVT to get information about format attributes such as Character Set, indent level, etc., and a pointer to a location in the TSB, that is, the location of the Tab Rack, Tab Stop setting information for that line which has been formatted into the Refresh Buffer 24. It is these pointers in LVT 74 which are invalidated by the actual movement of data through the TSB. It is the LVT
pointers which DAM maintains expressed as a displace-ment from the CLA when DAM is inactive (not running).
The actual CLA is assigned displacement of zero by , AT~-8L--010 DAM, when and only when DAM is :inactive, th~lt iS prior to conver-t:ing the Saved Address to TS~ Relative OTl an UPDATE or MOVF. call and aEter convert:intJ the addret;s to Cl,A l~clative at the end oE all cal1s.
Prior to con-tlnuinc3 with the description o e the figures describing display support of e(litirlg opera-tions on an indefinite page, certain terms need to be defined to assist in an understand of the invention.

DEFINITIONS
1. TEXT STORAGE BVFFER (TSB) is the area 64 in the random access memory 1B that contains the data stream, all or part of which is to be Eormatted on the display screen 26.
2. CONq`~XTl~AT. Cl~RSOR ADDI~ESS ~CC~) is the address in -the c~ata stream that the operator perceives as an edit point, this address can be any place within the defined boundaries of the text storage buffer.
3. CURSOR LINE ADDRES5 (CLA) is the text line starting address on which is found the contextual cursor address.
4. SCREEN TOP ADDRESS (STA) is the first byte in the TSB relative to the TSB start that is displayed on the display.
5. TAB RACK ADDRESS (TRA) are pointers to tab rack image in the TSB which tell the display access method where tab stops are and this image may be changed throughout the docu-ment.

~`9-~L~0:L0 Reviewing the discussion of the system with respect to Fig. 4, the application program 62, Fig. 2, calls DAM to change the display i.mage. When complete, DAM re-turns control. to the appliGation progr~rll, During the tlme perioc~ when the disp1.ay image J.s undergoing change ~Inder the control of D~M, llO ChangC'3 are made to the TSB . This .is a synchronous operation.
It will be recalled that DAM is first called to BuILn a new display image when a document is first read into the TSB from the diskette. While BUILDING
a new display image, DAM sets up the Line Vector Table pointers. After the initial BUILD, DAM is called when it isj as a function of operator keystrokes, desired to UPDATE a porti.on of the display or MOVE to a new lS edit point. During each such opera-tion DAM maintains the currellcy o;E the pointers in the LVT. For every call the application program 62 passes -to DAM:

l. The starting address of the TSB (TSBS);
2. Length of the TSB (TSBI.);
3. Bubble start address (BBS) relative to TSBS;
4. Bubble length (BBI.)~

For every BUILD and UPDATE call the application program passes a contextual cursor address (CCA) to DAM. Each time it is called DAM saves the old bubble length (OBL) in its private memory area and returns to the application program the cursored line starting address (CLA) relative to the TSBS. Each time DAM is called to MOVE or UPDATE, the application program passes the previous CLA to DAM expressed relative to TSBS. It is the responsibility of the application program to adjust CLA if its position has changed in the TSB.

AT9~ ()lO

.i! 3~r~'3l 1~

Some examples of events which cause the change of position of the cursorecl line address in the T5B are scrol.ling of segments as a result of reaching the boundary of the lrsB and movin~ the cursor wh.ich movcs no-t only thc cu:rsored line address but a:Lso may cause the bubble to shift dramatically.
DAM maintains the information concerning text displayed on -the screen in the LVT 74. DAM obtains the information during a scan of the TSB during BUILD, MOVE or UPDATE operations. This information is used in subsequent MOV~ and UPDATE operations so -tha-l. DAM
need not star-t at the beginning of the TSB to find data needed to format text. As will become cl.ear a~
the discussion and descrip-tion proceeds, DAM ltera-tes through .its routines to convert to pointers relative to the cursored line address in the TS~.
All addresses, saved by DAM are current while DAM
changes the display image as a result of -the synchro-nism requirement. Returning to the application : 20 program enables operator keystroke action which may change those pointers in the TSB. On the next subse-quent MOVE or UPDAT~ call the saved addresses in LVT
74 may not have any meaning. DAM places a requirement on the application programs 62 to allow this text line format to be correlated to an absolute text location. This requirement is that one and only one ~ absolute pointer be maintained between DAM and the : application program. That one pointer is the cursored line address. All other text addresses are maintained by DAM in the LVT relative to the cursored line address. Jus-t prior to the return of control from DAM
to an application program, DAM converts all saved addresses to be expressed relative to CLA.
Referring to Figs. 2 and 4, there is shown in Fig. 4 a flow chart of the operation of the DAM

.~r9- ~3~-0l0 ~3~

program 68 for displaying text on the display screen 26~ An operator inputs a keystrolce data at 78 to es-tablish a cursor position in either the vertical or hori~ontal ~osi~ion clisplclccd from the prcC30nt c~lrs~o~
posltioll orl the display screen ~6. Tlli.q c~lrsor keystroke i9 processed into a spatial cursor position to identify a new cursor spatial location on the display screen 26. The keystroke is processed in -the processor 10 at 8V and input into the keystro]ce access method 60. An application set-up is selected at 82 which or purposes of the description of the present invention will be defined as a text application. The various application programs are called by a commancl from the applications program 62 in response to an interrupt. Other application proqrams Eor display include a "menu" application, multiple virtual ima~
displays, ancl a diagnosis applica~ion. An apE~Iicatlo program 62 calls the DAM pro~ram 68. The DA~ procJram 68 retrieves instructions from the display control block 66 and for a text display looks to the text storage buffer at sequence 84 to provide graphic and control data bytes.
After retrieving data from the text storage buffer 64, the display access method program 68 receives data from the display control block 66 and calls one of several subroutines by a call from control block 86. One subroutine 90 that is available to be called is identified as a "MOVE" and during the running of this subrou-tine the DAM program 68 converts a spatial loca-tion, relative to a current spatial cursor position, to its contextually equivalent location. This subroutine is called to resolve a contextual pointer position and receives a spatial location as an input and outputs the corresponding contextual location. Still another possible ~rrs- ~ .L o :1 0 '7~

subroutine call.ed hy the DAM program 68 at control block 86 is identified as an "UPDAT~" subroutine 92.
This subrout.ine provides instructions for operation o.f -the display access method program 68 to upclate the textual dis~].~y C;tartincJ with the Li.ne orl wllich thc cursor preserltly appears on the dic;play screerl ~6.
During this subroutine the display access method program 68 reformats the identified line and performs horiæontal or vertical segmentation as required.
The primary subroutine that is called by the control block a-t 86 is used not only for cursor movement but for other applications of the tex-t processing system and is identified as a "BUILD"
subrou-tine 9~. The BUILD subroutine provides data and instructions to format the display using the unformat-ted data from -the text stora~e bufer 6~. Thi.s subrou-tine is run to return khe display screen 26 to a prior state, Eor example, following the return Erom a menu display; initially format text, for example, entry by an operator to revise text on a page; or to Eormat text which has been changed, for example, following a "boundary" key. Primarily the BUILD
subroutine is run when the text from the text storage buffer 64 has changed such that the prior image is obsolete. Input to the BUILD subroutine for cursor motion is the contextual cursor with an output repre-: senting the corresponding spatial location. I-t should be noted that during the BUILD operation, DAM 68 initializes the LVT 74.
Following the return of any of the subroutines 90, 92, or 94 to the routine of E'ig. 4 an application check 98 .is made on the output data in the display control bl.ock, as represented by the block 66, to again run the DAM program 68. The program call may be for one of the discussed subroutines for cursor AT~-81~010 tis3X'~'~

motion, or another operation of the text processing s~stem. ~ tes~ is made at 102 to deterrnine i~ the display program is to be called again by the applica-tion set-up 82, or iE thc pro~ram is to step to an cncl at 104.
Recalllng Fig. 4 and referring to Fig. 5, when an applications interrupt occurs as the result of a keystroke the DAM program 68 is called and runs the illustrated routine which is called at 112 from the control block 86. Initially input parameters are obtained at 114 from the display input/output storage area of the d.isplay control block 66 and test 116 is made to determine if the build fl.ag has been set.
Whell the control block 86 calls the "BUII,D" display subroutine -then it is called at 118. Upon completio of the BUILD subroutine all output parameters Are saved at 120. The output parameters are transEerred to the displ.ay input and output storage area 66. D~M
then converts saved addresses in LVT 74 to be relative to CLA at step 121 which conversion will be explained in more detail with respect to Fig. 7. The display routine returns to the caller at 122.
If the BUIL~ suhroutine is not identified as being called at test 116, then at step 117 DAM con-verts the CLA relative address to be relative to TSBS.More details of this conversion will be explained iJI
connection with Fig. 6. The DAM performs test 124 to determine if the control block 86 is calling for a display update which calls the UPDATE subroutine at 126. Upon completion of the UPDATE subroutine r all the output parameters are saved at sequence 120 in the display input and output storage area 66. It should also be noted that required corrections to LVT entries are also made at this time in the UPDATE routine. The saved addresses in LVT .74 are converted to CLA

A~rs~

relative expression at step 121. The DAM program 68 returns operation of the memory 18 to the applications program 62.
If the UPDATE subroutine is not to be called at sequence 12A, then the routine of Fig. 5 calls the MOVE subroutine at sequence 1~8 and upon completion of th.i.s subrou-tine output parameters are saved a-t se-~uence 120 in the display input and output storage area 66. It should also be no~ed -that required corrections to LVT entries are also made at thi.s time in the MOVE routine. Again, after DAM converts the saved addresses in LVT 74 to CLA relative, control of the memory 18 returns to the applica-tions program 62.
Refer now to Fig. 6 which reElects in more detail the function represented at step 117 in Fig. 5, per-formed by D~M on subsequent screen UPDATE ancl MOVE
calls. Terminal point 600 represents DAM's assumpt.ion of control. The first determination at 602 macle by DAM as to whether this is an UPDATE operation. If it is, as shown at 604, DAM sets the bubble offset (BBO) equal to the difference between the old bubble length and the current bubble length. If the test done at 602 indicated -that it was not an UPDATE operation, then at step 606 DAM sets the bubble offset (BBO) to zero. Once a new value has been assigned to bubble offset then at step 608 DAM sets the bubble end address (BBE) equal the bubble start tBBS) address plus the bubble length. Step 610 represents the sub-traction by DAM of the saved address (SA) from cursor-ed line address (CLA). The rest of the steps are usedto factor out the buble from the now TSBs relative SA.
Determination step 612 is used by DAM to decide whether the bubble end (BBE) address is greater than the saved address. If it is, DAM determines at step 614 whether bubble end is less than or equal to the '7~

cursored line addre~s,. If so, D~l performs subtrac-tion 616 to subtrac-t the bubble length from the saved address. At save operation 618, ~AM places the now TSB rela-tive save address in i-ts private storage area and returns control at 620 to -the calling application program. Re-turning to decision steps 612 and 614, if BBE is nei-ther greater than nor equal to SA, or less than or equal to the cursored line address then determination process 622 decides whether the cursored line address is less than or equal to the bubble start address. If it is not, then DAM saves the address at step 618 and returns control at terminal 620. If, however, the cursored line address occurs in the TSB
prior to or just at the start of the bubble ~AM
decides at s-tep 62~ wheth~r the saved address occurs after the cursored line address. If it does not, then step 61~ and 620 are taken. If, how-ever, -the saved address occurs aft~r the cursored line, then at test 626 DAM determines whether the saved address is greater to or equal to the bubble start address. If not, then the save and return st~ps 618 and 620 are taken. If the saved address does coincide with or come after the bubble start address, then DAM adds at step 628, the bubble offset and bubble length to the saved address and follows with save and return steps 618 and 620.
Referring now to Fig. 7, there is shown an expansion of step 121 in Fig. 5. Fig. 7 is a flow diagram of the steps taken by DAM relating to convert-ing addresses to be expressed relative to the CLAbefore control is returned by DAM. DAM first factors out the effect of the bubble on the address before determining its displacement from the CLA. Terminal point 700 indicates when control is assumed by VAM.
The first step as shown at 702 is to save the bubble AT9~ 10 3~

length in -the area private storage known as OBL. Step 704 represents the determina-tion by DAM whether bubble start address (B~S) is greater than the saved address (SA). If so, DAM determines at 706 whether tilC3 bubble S start address is less than the cursored line addrescs (CLA). If so, the bubble length is added to the saved address at step 708. Following the path to comple-tion, DA~l would, at step 710, subtract the saved address from the cursored line address and place in the line vector table (74, Fig. 2). The corrected address returns control as shown a-t 714.
Referring again to the steps shown at 704 and 706, if the bubble star-t address is not clreat~r than the saved address and no-t less than the cursored line address then DAM takes step 720 to de-termine whether the bubble start address is le5s than the saved address. If no-t, the steps shown at 710 through 714 are again taken. If the bubble start address is less than the saved address, then DAM determines at 722 -~hether the bubble start address is grea-ter than the cursored line address. If this condition is not met, the path comprised of steps 710, 712, and 714 is taken and control is returned to the application program calling DAM. If, however, the bubble start address is greater -than the cursored line address, DAM subtracts at 724 the bubble length from the saved address and follows the path which begins with step 710. DAM
subtracts the saved address from the cursored line address and saves the corrected address in the line vector table and returns control to the calling application program.
The address in the area called saved address (SA) may for example be the display screen top address (STA) which indicates the first location in the TSB

AT 9 - ~ I - O :L O

~.~tiS3~

relative to the TSB start which i5 displayed on the screen or it mc~y be a tab rack address (TRA).
Figs. 8-14 will be used in a discussion of -the operation of the present invention during specific S editing operations.
Figs. ~ are similar to Fi~. 3 in that il) eact there is a schematic representation o~ the screen, display 26, which corresponds with display refresh buffer 24, TSB 64, and diskette 21. Additionally, the edit point and other information such as bubble, TRA, STA and CLA locations are indicated.
In Fi~. 8 the three storage locations are ill-ls-trated after a BUILD at a point in time when the operator of t.he text processing sys-tem wishes to edit the document shown segmentized on the d:iskette, at point A. All addresses are saved arld converted beE~re returning to the application program. The steps illustrated in Fig. 6 are utili~ed. It will be recalled that TSBS represents the starting location of the text storage buffer and STA is the screen top address. The cursored line address CLA is the address of the line which contains the edit point A which is shown to be after the bubble. TRAl and TRA2 represent the tab rack addresses which are part of the text stream. We recall from the discussion of point formats that in text processing systems such as the one in which the present invention is embodied a tab rack is given for each line of text. The same tab rack may be employed throughout an entire document or it may change with every line. Tab racks are not stored in the LVT but within the text itself in the TSB. Within the finite length of an entry in the line vector table LVT, there is only a pointer to the more complete tab rack description in the TSB.

~T9-81-010 2~

Fig. 8 also illustrates the point in time when DAM has been called to UPDATE the display when an operator wishes to inser-t or delete a character. This addition or deletion would occur at point ~ which would cause the bubble length to change. This illu~-trates why i-t was necessary in the routine of Fig. 6 to have both the old and new bubble lengths passed to DAM because it is the difference between those two lengths which must be considered in expressing an address relative to the cursored line address when updating the screen. When DAM is called to UPDATE it converts all of the addresses using a routine of Flg.
6 and before returning control to the application program uses the s-teps illustrated in Fig. 7 to convert the address to CLA relative.
Figs. 9, 10, and 11 should be considered together to illustrate the MOVE which causes the eclit point to move from point A to point B on the CRT. The assump-tion for this example is that no previous changes have been made to the TSB. Fig. 10 shows the changes after the MOVE has been performed by DAM. The saved ad-dresses are converted using the steps of Fig. 7. Fig.
11 illustrates the change in position of the bubble as a result of the MOVE of the edit point from point A to point B. As explained previously, this action changes the CLA which will be passed to DAM at the next call.
Figs. 12, 13, and 14 should likewise be consider-ed together. Fig. 12 illustrates relative posi-tion in the storage areas when the operator of the text pro-cessing system wishes to move the edit point to pointC which is not within that small window of text in the refresh memory or in fact, contained in the TSB. Fig.
13 shows the results of a vertical scroll of the TSB
upwardly in order to allow another segment from the diskette to be placed therein. It is to be noted AT~-81~010 . ti ~ 3 ~i 7 :~

particularly that -the tab rack addresses as well as the screen start address and the cursored line address have moved. When DAM is called the new cursored line address is passed by the appLication program and all of the addresses are converted usin~ thc~ stepx shown in Fig. 6. Fig. 14 illustrates the relative text positions after the DAM MOVE call. Edit po:int C is now in the refresh memory and, therefore, on the screen. One can see that it is in a different segment lQ in Figs. 14, 13, and 12 and all addresses will be converted following the process outlined in Fig. 7.
The particular series of edit operations just described highlights the dynamic na-ture of the loca-tion ln the TSB of any given text entity in an inter-active system such as the one in which the presentinvention is included~
Maintaining a single absolute addresfi CLA with all others expressed relative thereto, enhances system performance by reducing the time required for response to operator requests which cause modifications to the screen contents.
The invention has been described with respect to ; a particular embodiment as implemented using a parti-cular processor and display device. Obviously, the time saving performance improving concept of correlat-ing text entity location in the TSB to the absolute address of the line containing the edit point may be applied to other systems having other and different size screen displays without departing from the scope of the present invention.

Claims

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
Claim 1 An interactive text processing system including random access and direct access stor-age, a keyboard, a display for displaying at least one line of cursored text, and a processor wherein in said random access storage includes a first area for holding a first amount of text;
a second area for holding a second amount of data sufficient to be displayed;
a third area having one entry for each line of text to be displayed, each entry including format information and a pointer to the location in said first area containing the text to be displayed on that line;
said system further including means for circulating data between said first area and said direct access storage so that the absolute location of text in said first area changes; and means for expressing each pointer entry in said second area relative to a known address in said first area.

Claim 2 The system of Claim 1 wherein said known address is the starting point of a line in said first area containing the cursored text location.

Claim 3 The system of Claims 1 or 2 wherein said first area also holds further format information and said entry in said third area additionally includes a pointer to said further format infor-mation in said first area.

Claim 4 In a word processing system including a display and a dynamically changing text storage area a method of maintaining pointers for lines of text to be displayed so as to optimally relate to locations in said dynamic storage area includ-ing the step of converting each pointer to an expression of relative displacement from a known address in said dynamic text storage buffer.
Claim 5 The method of Claim 4 including the steps of determining the size and location of a variable size area in said dynamically changing text storage area and factoring out the so determined size for the converting step.

Claim 6 In an interactive text processing system including random access and direct access storage a keyboard, a display, and a processor, wherein said random access storage includes a first area for holding a first amount of text;
a second area for holding a second amount of data sufficient to be displayed; and a third area having one entry for each line of text to be displayed, each entry including format information and a pointer to the location in said first area containing the text to be displayed on that line;
said first storage area including a variable size area at the edit point which area shrinks and expands as a result of edit operations; and Claim 6 (continued) means for circulating data between said first area and said direct access storage so that the absolute location of text in said first area changes; and means for assigning each pointer entry in said third area relative displacement value from a known address in said first area.

Claim 7 The system of Claim 6 wherein said known address in said first area is the starting address of the line containing the edit point.

Claim 8 The system of Claim 6 wherein said means for assigning also includes means for factoring out the size of the variable area in said first storage area.

Claim 9 The system of Claim 7 wherein said means for assigning also includes means for factoring out the size of the variable area in said first storage area.

Claim 10 The system of Claims 6 or 7 wherein said first area also holds further format information and said entry in said third area additionally includes a pointer to said further format information in said first area.

Claim 11 The system of Claims 8 or 9 wherein said first area also holds further format information and said entry in said third area additionally includes a pointer to said further format information in said first area.

Claim 12 The system of Claims 7, 8 or 9 wherein the means for assigning each pointer entry in said third area relative to a known address in said first area further comprises means for determining whether a display image is to be structured or modified;
first means responsive to said determining means for initializing said third area pointers if a new display image is to be structured;
second means responsive to said determining means for updating said third area pointers to reflect the modified display image.

Claim 13 The system of Claims 7, 8, or 9 wherein the means for assigning pointer contents in said third area in terms of relative displacement from the start of said first area comprises means for calculating the amount of shrinkage or expansion in the variable size area in said first storage area, means for determining where a given pointer points relative to said variable size area; and means for accounting for said variable size area in arriving at the relative displacement value.
CA000399134A 1981-06-16 1982-03-23 Display support of indefinite page Expired CA1169571A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US274,048 1981-06-16
US06/274,048 US4425629A (en) 1981-06-16 1981-06-16 Display support of indefinite page

Publications (1)

Publication Number Publication Date
CA1169571A true CA1169571A (en) 1984-06-19

Family

ID=23046551

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000399134A Expired CA1169571A (en) 1981-06-16 1982-03-23 Display support of indefinite page

Country Status (3)

Country Link
US (1) US4425629A (en)
JP (1) JPS6046466B2 (en)
CA (1) CA1169571A (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4481603A (en) * 1981-05-18 1984-11-06 International Business Machines Corporation File processing method using expanding display windows for selected records and text fields
US4460975A (en) * 1982-09-17 1984-07-17 Saga Data, Inc. Easily accessible formating of computer printouts
US4498147A (en) * 1982-11-18 1985-02-05 International Business Machines Corporation Methodology for transforming a first editable document form prepared with a batch text processing system to a second editable document form usable by an interactive or batch text processing system
US4924409A (en) * 1983-11-22 1990-05-08 Canon Kabushiki Kasiah Image processing apparatus wherein character string processing can be performed on a display screen
JPS60189568A (en) * 1984-03-09 1985-09-27 Canon Inc Information processor
US5289569A (en) * 1985-05-21 1994-02-22 Canon Kabushiki Kaisha Document processing system capable of simultaneously displaying two continuous document pages in accordance with a selected binding position
DE3682880D1 (en) * 1985-11-28 1992-01-23 Canon Kk DOCUMENT PROCESSING SYSTEM.
US4827447A (en) * 1986-06-13 1989-05-02 International Business Machines Corporation Method for selectively returning to the beginning or the previous revision point in document edition
US5287538A (en) * 1986-07-15 1994-02-15 Brother Kogyo Kabushiki Kaisha Word processor for reformatting a character group by locating line feed codes and selecting the beginning and end of the text when the line feed codes cannot be located
DE3838740A1 (en) * 1987-11-16 1989-06-01 Canon Kk Documentation processing system
US5131090A (en) * 1988-08-31 1992-07-14 Casio Computer Co., Ltd. Word processor with simplified character train designation for modifying fonts
US5050071A (en) * 1988-11-04 1991-09-17 Harris Edward S Text retrieval method for texts created by external application programs
JP3007103B2 (en) * 1989-10-30 2000-02-07 株式会社日立製作所 Printing control device
US5664074A (en) 1990-10-30 1997-09-02 Hitachi, Ltd. Print control apparatus with error recovery function and its print control method
DE19707502C2 (en) * 1997-02-25 2002-08-22 Siemens Ag Detail of a document

Also Published As

Publication number Publication date
US4425629A (en) 1984-01-10
JPS57206953A (en) 1982-12-18
JPS6046466B2 (en) 1985-10-16

Similar Documents

Publication Publication Date Title
CA1169571A (en) Display support of indefinite page
US5021973A (en) Method for assisting the operator of an interactive data processing system to enter data directly into a selected cell of a spreadsheet
EP0327781B1 (en) Method to automatically vary displayed object size with variations in window size
US4899292A (en) System for storing and retrieving text and associated graphics
EP0062121B1 (en) Text processing apparatus with two-stage formatting of text
EP0052755A2 (en) Text-processing system generating multiple virtual displays on a single display screen
JPH0833806B2 (en) Multilingual conversion processing method in data processor
JPH087654B2 (en) Method to specify to user the field to input data
KR20040015096A (en) Image navigating browser for large number image and small window size applications
EP0301922B1 (en) Text processing apparatus
US4393463A (en) Insertion of character set change codes in an altered text stream
US4445194A (en) Multidirectional cursor motion
US4370645A (en) Ghost cursor in display all codes mode
EP0108520B1 (en) Method for controlling windows displayed in a card image data processing system
US20200265612A1 (en) Automatic patent drawings displaying device
US4835735A (en) Card image data processing system
CA1168367A (en) Bidirectional character definition
JPH0241783B2 (en)
JPS6038750B2 (en) How to enter characters in a word processor
JP2001184052A (en) Display controller and its program recording medium
JP3091116B2 (en) XY coordinate display method
KR930009781B1 (en) Inputting method of chinese character using computer terminal
JPH08180118A (en) Table processor
JPH07152530A (en) Icon display system
Bennion General purpose operator interface

Legal Events

Date Code Title Description
MKEX Expiry