CA1222325A - Control structure for a document processing system - Google Patents

Control structure for a document processing system

Info

Publication number
CA1222325A
CA1222325A CA000464489A CA464489A CA1222325A CA 1222325 A CA1222325 A CA 1222325A CA 000464489 A CA000464489 A CA 000464489A CA 464489 A CA464489 A CA 464489A CA 1222325 A CA1222325 A CA 1222325A
Authority
CA
Canada
Prior art keywords
document
routines
supervisory control
providing
manipulation
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
CA000464489A
Other languages
French (fr)
Inventor
James L. Cooper
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.)
Wang Laboratories Inc
Original Assignee
Wang Laboratories Inc
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 Wang Laboratories Inc filed Critical Wang Laboratories Inc
Application granted granted Critical
Publication of CA1222325A publication Critical patent/CA1222325A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • 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

ABSTRACT

A document processing system including a control structure having separated supervisory and document functions. The document functions, including a document buffer and document access control means are the sole means for accessing documents and the document function routines are selected from predetermined library of such routines. The system includes a flexible, expandable document structure incorporating information item blocks and indexing blocks related through pointers and means for applying visual and informational attributes to document text.

Description

1. G~
V

BAcKGRouNn OF THE INVENTION

1. Field of the Invention The present ~nvention relates to a control and data structure for a data processlng system and, more partlcularly, for the type of system referred to as a word processlng or office automatlon system.
2. Description of the Prior Art :
Word processing and offlce systems are primarily concerned wi~h the ~ generatlon, edlt~ng and, for example, pr~nt~ng and filing, of documents. Such systems usually fall lnto two general classes, central~zed and dlstributed.

A centrallzed system may ~nclude a central processor or computer and one or more attached terminals. Data, that ls, documents of various types, and routines for operating upon the documents are stored in the central processor memory. Essentially all operations upon the documents are executed in the central processor, with the terminals operating as input and output devices for the central processor.

~F~

"

~3~

Dlstrtbuted systems are based upon a network of smaller lnteractive units v each havlng memory and proce5sing capabllities. A d~str~buted system may include a central shared memory unit for storlng routines and data and a number of ~ndependently operatlng termlnals. Each terminal may include a memory for storlng currently active segments of rout~nes and data and a processor for operating upon the currently active segments. Routine and data segm~nts are transferred between the memory unit and the terminals as required by the operations of the terminals. An exemplary distr~buted system is shown in U.S. Patent No. 4 145 739 lssued 20 March 1979 and assigned to ~ang Laboratorles Inc. the asslgnee of the present lnventlon.

In any system whether prevlously existing or newly deslgned the memory and processlng capab~l~t~es of the system are usually determlned and llm~ted by economlc and practical considerations. As a result of such l~mltatlons a recurring problem ln word processlny and office systems is that of lmplementlng ~ncreas~ngly more sophist~cated and powerful document processlng systems requirlng increasingly greater memory and processing capabllities within current1y available system lim~tations. The d~stributed system described ln U.S. Patent No. 4 145 739 was developed ln response to thls problem and provided a powerful word processlng capab~llty ln a system havlng minlmal memory and processing capabllltles.

The problem descrlbed above may be regarded as being comprised of two related problem areas. The first is the system control structure that is a structure wh1ch includes and lnterrelates routines for controlling the operation of the
3~

system and routlnes for generatlng and manlpulatlng documents. Because of the above described constralnts, system control structures of the prlor art have either required the use of a large and powerful computer or, In smaller systems, have only allowed document processing systems of llmlted capabillties. The problem is essentially one of implementing the power and flexibility of a large processor and memory system within a system having limited processing and memory capacity.

A related problem is, that due to the same constraints on memory and processi~ng capabillty, the control and document processing syste~s of the prior art have been constructed in such a manner that the system cannot be easily modified. Such modificatlons frequently result in severe operatlonal problems due to unexpected or unforseen interactions between the modlfled and unmodlfled portions of the systems.
The second problem area is that of prov~ding a document structure having the flexibility and expansion capab~lity to allow the generation and manlpulation of very complex documents within the above described constraints on memory and processing capability.

SUMMARY OF THE rNVENTION

The present inventlon relates to a document proeesslng system and, ~n particular, to a control and document structure for implementing a powerful 2Z3~ ( 'I
and flexible document p ocessing system w~thin a system havlng limited memory and processor capab~litles. The system architecture includes a control structure providing supervisory routines for controlling supervisory functions of the system and document manlpulatlon routlnes for operating upon sald S documents. The document manlpu~at~on rout~nes are selected from a l~brary of such routines and, together with an assoclated document buffer and document access control means, comprlse the sole means of accesslng a document and a clear and distinct ~nterface between system supervlsory functlons and document functlons. The document structure of the present ~nventlon is flexible and '0 expandable to allow the generation of complex documents within the minimumrequired memory space and includes information item blocks for containlng the text and data of a document and an adaptlve tndex~ng structure for accessing all information item blocks. The document structure incorporates means for referencing visual, descriptive and informational attributes of document text and data and allows the use of names ln reference to document text and attributes.

It is thus advantageous to ~ncorporate the present invention 3nto a document processing system in that the present invention allows the creation of a powerful and flexible document processing system in a system having limited memory and processor capability. The present invention is further advantageous ln that the document structure of the present ~nvent~on is flexible and expandable to allow the creation of very complex documents while requiring the minimum memory capacity.

~L2;223~
It is thus an object of the present invention to provide an improved document processing system.
It is another object of the present invention to provide an improved control structure for a document processing system.
It is yet another object of the present invention to provide a document processing system control structure providing a clear interface between supervisory and document functions so ~hat portions of the control structure may be modified at will with minimum conflict with umnodified portions o-f the control structure.
It is still another object of the present invention to provide a control structure providing controlled access to the text and data o:E documents.
It is another object of the present invention to provide a flexible and expandable document structure capable of creating complex documents while requiring a minimum of memory capacity.
It is still another object of the present invention to provide a document structure allowing powerful and complex editing capabilities.
Thus, in accordance with one broad aspect of the invention, there is provided, in a documen~processing system including keyboard means for entering document data and document manipulation commands, memory means for storing said documents, processor means for operating upon said documents and means for displaying said documents, means for ccntrolling operations of said system, comprising:
document control means, including buffer means for conducting said document data between said document memory means and said keyboard and display means, said buffer means comprising the sole means for conducting said document data between said document memory means and said keyboard and display means, 3~:~

document access means for storing and providing information identifying the locations in said document memory means of segments of a said document currently being operated upon, and document manipulation means, including means responsive to document operation vectors indicating corresponding operations to be performed upon said document segments and to said document segment location information for providing corresponding document operation routines for controlling said corresponding document operations, said document operation routines comprising the sole routines for accessing and manipulating said document segments residing in said document memory means, and supervisory control means responsive to operation of said system ~or providing supervisory control routines for controlling supervisory operations of said system, including means responsive to operation of said keyboard means for providing corresponding said document operation vectors.
: In accordance with another broad aspect of the invention there is provided, in a.document processing system including system memory means for storing and providing said documents and routines for controlling operation of said system, workstation means including memory and processor means for storing and operating upon said documents, keyboard means for entering document data and document manipulation commands and means for displaying said documents, and bus means for conducting said documents and routines between said system memory means and said workstation means, means for controlling operations of said system, comprising:
in said system memory means, bus control means responsive to operation of said system for controlli.ng said conducting of said documents and routines between said system ~ 5a -~2~

memory means and said workstation means, means responsive to operation of said bus control means for storing and providing to said workstation means supervisory routines for controlling supervisory operations of said workstation means, means responsive to operation of said bus control means for storing a master copy of each of said docwments and providing currently active segments of said documents to be operated upon to said workstation means, and means responsive to operation of said bus control means for storing and providing to said workstation means currently active overlays of routines for operating upon said currently active docwnent segments, in said workstation means, means for storing said currently active segments o:E a said document, docwment control means~ including buffer means for conducting said document data between said document memory means and other portions of said system, said buffer means comprising the sole means for conducting said document data between said document memory means and said other portions of said system, document access means for storing and providing information identifying the locations in said docwment memory means of said currently active segments of said document currently being operated upon, document manipulation means, including means for storing said currently active overlays of said currently active document operation routines and responsive to document operation vectors indicating corresponding operations to be performed upon said document segments and to said docwment segment location information for providing corresponding ones of said currently active document operation routines for controlling said - 5b -~2~ 3~

corresponding document operations~
said document operation routines comprising the sole routines for accessing and manipulating said document segments residing in said document memory means, and workstation supervisory control means responsive to operation of said workstation means for storing a copy of said workstation supervisory control routines and providing said supervisory control routines for controlling operation of said workstation means, including means responsive to operation of said keyboard means for providing corresponding said document operation vectors.
Other objects and advantages o~ the present invention will be understood by those o:E ordina.ry skill in the art after re:~errlng to the detailed description of a preferred embodiment and the drawings~ wherein:

~ 232S ~
,. .

BRIEF DESCRIPTION OF THE DRA~INGS

FIG. 1 is a block d~agram representatlon of a system incorporatin9 the present lnvention;

FIG. 2 is a block diagram representatlon of the control and document structures of the system of Fig. l;

FIG. 3 is a block diagram representat~on of the work station control and document structure of the system of Flg. l; and Flg. 4 is a diagrammic representatlon of the document structure of the present invention.

DESCRIPTION OF A PREFERRED EMBOOIMENT

The following dlscusslon presents the structure and operat~on of a document processing system incorporatlng the present invention. The system and system control and document structures will be described flrst at a block dlagra~
level followed by more detailed descriptions of these structures and the document structure implemented therein.

~ ~az~
1 Svstem 810ck Dlaqraln Structu ~ ~an ~ er~lon (Ftgs. 1 and 2) .

Referrtng to Fig. 1 a block dtagram of a dlstrtbuted System 10 1ncorporattng the present inventlon ls shown. System 10 ls similar in structure and overall S operatton to the data processing system descrlbed tn U.S. Patent No.
4 145 739 previously referenced.

Ma~or elements of System 10 tnclude a Master Unit 12 and one or more Workstattons 14 lnterconnected through System Bus 16. As will be descr~bed further below Master Unit 12 is a system memory and stores a master copy of all routines for controlling operation of the system includtng document manipulation operations executed by Workstations 14. Master Unlt 12 also stores copies of all segments active and lnactlve of all documents being operated upon by Workstatlons 14.

Currently actlve segments of the documents be;ng operated upon by Warkstatlons 14 the document manipulation routines necessary to operate upon the active document segments and the routines necessary to control operation of Workstatlons 14 reside as descrtbed below tn Workstations 14. The currently actlve document segments and routines restding in Workstattons 14 are as descrlbed further belo~ subsets of the master coptes of the documents and routlnes restdlng in Master Unlt 12. Document segments and workstatton control and document manlpulatlon routlnes are transferred between Master Unit 12 and Workstations 14 through System Bus 16 as required by the operations of Workstattons 14.

A. Master Unit 1~ (Fiq. l) 2223Z~i -Master Unit 12 is ln the present embod~ment a disc drive memory including a Dlsc 18 and a Master Disc Controller 20. Master Disc Controller 20 is a mlcroprocessor controlled unit operating under control of routlnes stored on Disc 18 for controlling transfer of ~nformatlon between D~sc 18 and Workstations 14.

Referr~ng to Disc 18 the informatlon residing thereon includes a Master Copy 22 of all rout~nes required to control all operat~ons of System 10 lncluding document manipulation operations and one or more Document Flles 24 wh~ch include copies of all segments active and inactive of all documents resid~ng in System 10. The routines residing in Master Copy 22 include Master Operatlng System (MOS) 26 Supervisor Routines ~SR) 28 and Overlay Routines (OR) 30. MOS
'5 26 includes the routines controlling overall operation of System 10 for example the operation of Oisc Control 20 and the transfer of Informatlon between Master Unit 12 and Workstations 14. SR 28 includes the routines described further below for controlling the lnternal operations of Workstat~ons 14 and essentially comprise an ~nternal operating system for ~orkstations 14. OR 30 in turn includes the document manipulation routines ~ that is routines executed by Workstations 14 in directly operating upon : documents.

Each Docu~ent Flle 24 residing on Disc 18 will include a master copy of a corresponding Document Structure ~DS) 32 of a document residing in System 10.

23~
If the document is currently be~ng operated upon in a Work5tat~0n 14 a eopy of the currently active segments of the document s DS 32 wlll reside ~n the Workstatlon 14 and there will be transfers of document segments between the DS
32 and Workstation 14 as the document is operated upon. Each Document file 24 may also include one or more Saved States (SS) 34. As will be described further below an SS 34 results when an operation being performed upon a document is interrupted to execute a different operation before the ~nterrupted operatlon is completed. In such cases the state of operation of the Workstation 14 that is information completely defin~ng the interrupted operation lncluding the lnterrupted routlne ls saved by belng copied as an SS 34 to the correspond~ng Document Flle 24.

B. Workstation 14 (Fiq 1) As shown ~n Flg. 1 Workstation 14 includes Workstation Memory ~WSM) 38 for storing currently active document segments (ADS) 40 of a DS 32 currently active segments ~AOR) 42 of OR 30 and the workstation copy of SR 28. As descrlbed further below ADS 38 and AOR 40 are subsets or worklng copies of port~ons of DS 32 and OR 30. Workstatlon 14 further lncludes Workstation Central Processor Unit (CPU)44 for operating upon ADS 40 under direction of AOR
42 and SR 28 a Keyboard (KB) 46 to allow a workstat~on user to enter data ~text) and document manipulatlon commands and a Display 48 for dlsplaylng the results of user and sy~tem operations. The elements of Workstation 14 are ~ntèrconnected through Workstatlon (WS) Bus 50 and ~nformatlon ls conducted between WS Bus 50 and the elements o~ Workstation 14 and System Bus 16 through InputlOutput (I/O) 52.

~2~3;~S
As will be described further below, a primary vls~ble focus of the operation of System lO is the interactive operatlon between System lO and a user, through K8 46 and Dlsplay 48, ln the generation and manipulation of documents.
System 10 may be regarded, therefore, and in certain aspects, as a keystroke processing system. That ls, a user enters data (text) and text/document manipulation commands by means of keystrokes through KB 46. ~orkstat10n 14 responds by executing in CPU 44 the appropriate routines selected from AOR 42 and SR 28, modifies the contents of ADS 40 as determined by the executed routines, and displays the results of the user actions through Display 48.

C. sYstem lO Control and Document Structure (Fig. 2) Referring to Fi~. 2, a diagrammic overview of the System lO control and document structure is shown. As has been prevlously descrlbed, the major elements of System lO s control and document structure include Master Operatlng System ~MOS) 26,Sup~3rvisor Routines (SR) 28, Overlay Routines ~OR) 30 and Actlve Overlay Routines 42, and Document Structures (DS) 32 and Active Document Structures (ADS) 40.

The hierarchical structure of these elements is illustrated in Fig. 2, as are their locations and primary areas of operation in System lO. As will be described further below, MOS 26 primarily resides in Master UNit 12 and comprises an operating system for all of System lO while SR 28 resides in Workstatlon 14 and comprises a workstation operating system. OR 30, the document manlpulation routlnes comprises the actual document processlng ~ Z2~
system, with a t~me varying subset of OR 30, AOR 42, residing in ~orkstation 14. DS 32 contains the actual document, with a time varying subset of DS 32, ADS 40, residlng in Workstatlon 14.

a. Master Operatinq System 26 As previously described, MOS 26 controls the overall operation of System 10 and ~s a resource shared by Master Unlt 12 and all Workstatlons 14 in System 10. MOS 26 is effectively an operating system for System 10 and primarily resides in Master Unit 12. MOS 26, for example, controls the transfer of information between Master Unit 12 and ~orkstations 14.

b.,Service Routines 28 As indicated in Fig. 2, a copy of SR 28 resides ln each Workstation 14 and essentially operates as a workstation operating system. In contrast to MOS 26, whlch resides in Master Unit 12, and to OR 301AOR 42, described below, SR 28 is resldent in ~orkstation 14 at all times while Workstation 14 is operating.
SR 28 lnteracts directly with MOS 26, the user and AOR 42 and lnteracts indirectly with ADS 40, through AOR 42, and with DS 32 and OR 30 through MOS
26. SR 28 is thereby effectively the central, or nodal, element through which all elements of System 10 interact and through which all operations are accomplished.

.

%3~
~- .
In ~nteracting w~th MOS 26, for example, SR 28 ln a Workstatlon 14 manages the avallable memory space ln the workstatlons WSM 3~ and monltors the selectlon of routines to be executed by the workstatlon. If, for example, it becomes necessary to free space in WSM 38 for new active document segments ln ADS 40 or lf a rout~ne is selected which does not presently reside in ~SM 38, SR 28 w~ll generate a request for an appropriate transfer of informatlon between Workstation 14 and Master Unit 12. SR 28 will place that request in I/O 52 and the request will subsequently be read by MOS 26 in a workstation polling procedure. MOS 26 ~ill respond to the request by performing the information transfer, that is, by transferrin~ the necessary document segments, routines or saved state information between Disc 18 and WSM 38 of the Workstat~on 1~.
This interaction between SR 28 and MOS 26 ls an example of the lndirect interaction between SR 28 and OR 30 and DS 32. That ls, SR 28 Interacts with MOS 26 to operate upon ADS 40 and AOR 42 whlch, ln turn, are subsets of DS 32 and OR 30.

As previously descrlbed, System 10 may be regarded, ~n certaln aspects, as a keystroke processing system, that is, accepting text and document manipulation commands from a user through keystrokes through KB 46, performing the lndicated operation upon a document, and d~splaylng the results of the operations to the user through Dlsplay 48.

To accompllsh this function, SR 28 interacts ~ith the user through KB 46 and Display 48 and with the document through document manipulation routlnes OR
30/AOR 42. As described further below, SR 28 accepts keystroke inputs from KB

~;2325 46, selects the appropriate OR 30/AOR 42 or SR 28 routine to be executed and inltiates the execution of the selected rout~ne by CPU 44. At the conclusion of execution of the selected routlne, SR 2B indicates the results of the selected operation to the user through Dlsplay 48 by dlsplaying a message or the portlon of the document currently be~ng operated upon as mod~f~ed by the operation. For example, if the user ls enterlng text, SR 28 wlll accept the alphanumeric keystrokes, select the AOR 40 routines to enter the alphanumeric characters in ADS ~0, and update Display 48 to display the text as the characters are entered.

c. Overlav~Routines 30 As described above, OR 30 lncludes all document manlpulatlon routlnes and thereby effectively comprises the document processing system. MOS 26 and SR 28 in turn comprise the operatlng systems support~ng the document processlng system implemented ln OR 30.

~; In the presently preferred embodiment of the document processing system, the document structure, described further below, may be accessed and manipulated only through OR 30. In this regard, it should be noted that while MOS 26 and SR 28 may perform certain operations w~th regard to DS 32/ADS 40, these operatlons do not include actual manipulation of or access to the document structure. OR 30 thereby defines the interface between the document structure and other elements of System 10 and effectively completely separates the features of the document structure from the remainder of the system. Because ~- ~2223~

of thls, the document structure or the system, for example, MOS 26 or SR 28 or the actual phys~cal structure of System 10, can be freely modlfled or changed w1th m~nlmum effect upon other portions of the system. The document structure may, for example, be transported to or lmplemented in a centrallzed system, S rather than the d~stributed sys~em shown ln System 10, without change.
Alternately, 1f the document structure is modified, only OR 30 need be correspondingly modified and the remainder of System 10, for e~ample, MOS 26 and SR 28, are undlsturbed.

A further feature of OR 30 res1des 1n the method by which the interface and access between OR 30 and the document structures, that ~s, the manner in wh1ch ~he document processlng system ls allowed to manlpulate the document structure, ls controllQd and deflned. Thls control ~S partlcularly s~gn~lCant when an exlstlng system ~s belng modlf~ed, for example, to add new features or to improve ex1sting features. In a document or word processlng system of the prior art, a designer or modifier of a document processing system dlrectly determined and defined the means and manner by and ln wh~ch the system accessed and manipulated the document structure. As a result, there were effectlvely no pos1t~ve constraints upon how the system modifler manipulated the document structure and there were frequent and severe problems w1th a mod~fled systeln.

In the presently preferred embodiment of the present document process1ng system, OR 30 ~s comprised of routines selected from a fixed library of routines referred to as the Document Management Library ~DMLI8~. rhe DMLIB

, , ~223~i ,, ( ~ .
routlnes are the only rou~lnes allowed to access or man~pulate the document structure and effectively comprise a set of building blocks from which a document processing system can be constructed.

The DMLIB includes routines for all possible basic man~pulations of the document structure and may be expanded as new manners of manip~lating the document structure become desirable. To create a new document process~ng system or to modify an existing system, therefore, the deslgner determlnes the operatlons to be performed or how the existlng operations are to be modified and selects and assembles, or links, the appropriate routines from the DMLIB.
By doing so, the designer is assured that the operations of the new or modified system will not confllct with the document structure.

Finally, and as previously described, AOR 42, whlch resides in WSM 38, is a '5 subset of the OR 30 routlnes and 15 comprised of the OR 30 routlnes currently being used to operate upon a document. AOR 42 and OR 30 thereby differ from SR
28 in that AOR 42 does not comprise a complete, resident copy of OR 30 but ~aries with time, depending upon which operations are being performed. It ls for this reason that the document manipulation routines are referred to as overlay routines, that is, routines are selected and overlayed into AOR 42 in WSM 38 as required. A related group of OR 30 routines which are overlayed into AOR 42 as a group are referred to as an overlay .

_1 5_ ~2~232~
d Document Structure 32 As prevlously descrlbed, a Document Flle 24 contains a complete, or nearly complete, copy of a document residing in System 10. This master copy of the document is contained in Document Structure (DS) 32, which resides in Disc 18.
Those portions of the document being operated upon are copied into and reside in ~SM 38 in Active Document Structure (ADS~ 40 and remain thereln while being operated upon. As new portions of a document are operated upon, the previously resident portions of the document are copied back into Gisc 18. Simllarly, ' those portions of a document which are being newly created, that is, by being entered by a user, first reside in ADS 40 and are subsequently copied into Disc 18. DS 32 and ADS 40 are thereby analogous to OR 30 and AOR 42 in that ADS 40 is a, time varying subset of DS 32, the contents of which vary as dlfferent port~ons of a document dre operated upon.

Transfers of portlons of documents between Workstation 14 and Master Unit 12 are executed on the basis of 512 byte blocks, corresponding to the capacities of data entry and transfer buffers, described below, residing in ~orkstation 14 and to the capacity of a double sector of Disc 18. It should be noted that all transfers between Master Unit 12 and a Workstation 14, including transfers of document manipulatlon routines, are performed on this basis.

Having described the overall structure and operation of System 10, certain portions of the control and document structure described above will be described in Further detail below.

, ~22~32~

2. Control and Document Structure (Fiqs. 3 and 4) Referring to F~g. 3, a block d~agram of the control and document structures S residing in Workstation 14, and in partlcular ~n ~SM 38t ls shown. As previously described, the ~Jorkstatlon 14 eontrol and document structures include SR 28 and AOR 42 and ADS 40. Also shown are other structures assoc~ated with and operating with or as part of SR 28, AOR 42 and AD5 40. The relationship and operation of the structures shown in Fig. 3 will be described ' first, followed by a descr~ption of the document structure of the present invention.

The physlcal structure and operation of ~orkstation 14 should be noted during the following descrlptions. That is, that SR 28 and AOR 42 are c~mprised of routines, that is, sequences of instructlons, whlch are read from WSM 38 to CPU 44 to direct and control the operation of CPU 44 and other elements of ~orkstation 14. CPU 44 ln turn responds to instructions provided from SR 28 and AOR 42 to read data, for example, document text from ADS 40, operate upon the data as directed by the instructions, and, for example, transfer the results of the operations into ADS 40.

A. Block Diaqram_Description ~Fig. 3) As previously described, the major elements of the structures shown in Fig. 3 2S include ADS 40~ the document segments currently being operated upon, AOR 42, ~L2Z~3~S~
the document manipulatlon routlnes currently belng u~llized, and SR 28, the workstation operatlng system.

d. ADS 40 and Associated Structures Considering first the document structures and pr~mary data trans~er paths shown ln Fig. 3, as described above ADS 40 is a time varying subset of DS 32 and comprises those portions of the document currently be~ng operated upon. hs differing portions of the document are operated upon, document segments are ' trans~erred between ADS 40 and DS 32. For example, if the already exist~ng text of a document is to be modified, such as by the addition of deletion of text, the portlons of the document to bc changed are read from Disc 18 and into ADS 40. The changes are entered through KB 46 by the user and, after the chan~es arè accompllshed, the changed portions of the document will be lS subsequently read back into DS 32 to provide space in ADS 40 for further segments of the document. In further example, when portions of a document are being newly created, the text information is entered through KB 46 by the user, assembled into the document ln ADS 4G, and subsequently read into D5 32 as the available space in ADS 40 is filled.

1. Buffers 54 Two further structures are dlrectly assoclated wlth ADS 40. The first ls Buffers 54, whlch are a set of general purpose buffers created by SR 28 and primarily used for input/output operakions to and from ADS 40. Buffers 54, for , . . .

~ ~%3;~:~
example, are used ln the transfer of document segments between Dlsc 1B and ADS
40 and ln the entry of text from KB 46 to ADS 40.

In the present)y preferred embodiment, Buffers 54 contalns between three and ten buffers, each of whlch has a capaclty of 512 bytes. The eapaclty of Buffers 54 ls, as descrlbed above, based on the capacity of a double sector of Disc 18 and the slze of the blocks transferred between Master Un~t 12 and Workstation 14.

' 2. Screen Buffer 56 and Dlsplav Memory 58 Associated wlth Buffers 54 are Screen Buffer (SB) 56 and Display Memory ~DM3 58. DM 58 contalns, at any time, the ~nformation whlch is currently betng displayed on Dlsplay 48 while SB 56 ls a buffer through which lnformatl~n to be displayed ~s written lnto DM 5~. As wlll be descr~bed below, DM 58 ls the source for information being displayed by Dlsplay 48 and is thereby being frequently read by Display 48. The function of SB 56 is to hold information to be displayed until a time is available to write information lnto DM 58 and~ by doing so, frees Buffers 54 for other operations.

The ~nformatlon displayed by Dlsplay 48 Inay lnclude visual representatlons of portions of a document being operated upon, that is, a portion or all of the contents of ADS 40 and, for example, messages from System lO to the user to ald or gulde the user in operation of System lO. Examples of the latter may include menues through which the user may select operatlons to be performed, ~L22;~:3;~;
e~amples of which are well known through ~ang Labora~ories, Inc. Office Information Systems (OIS).

As indicated In Fig. 3, ~nformatlon to be displayed ~s wrltten ~nto SB 56 through Buffers 54 and may be entered elther a s~ngle character at a t~me or in blocks of informatlon up to the capacity of a Buffer 54 or SB S6. Single character entries are used, for example, when a user is entering alphanumerlc characters into a te~t, that is, a single charaeter at a time through KB 46.
In this case, the indiv~dual characters are entered into one of Buffers 54 and concurrently transferred, again a character at a time, into AQS 40 and SB 56.
Block entries may be used, for example, when a user is moving from one section or page of a document to dnother~ necessitating the display of entirely new screens of information by Dlsplay-48.

'5 Information entered into SB 56 is subsequently transferred into DM 58, wh~ch contalns one or more display screens of the lnformation actually being dlsplayed by Display 48. Dlsplay 48 in turn reads the information for the currently displayed screen from DM 58 and presents this information to the user in vlsual form.

It should be noted at this point that the form in whlch information is stored in DM 58 ls dependent upon the capabilities of Display 48. There are two primary forms of display, character generated and bit mapped. In a charaeter generated display, the information to be displayed is stored in the form of codes representing the characters or symbols to be displayed. The display ~;22;~3;~
~ ( reads these codes and, through a character generator, converts th~ codes into patterns of illuminated dots form~ng the characters on the display CRT. In a bit mapped display, the actual patterns of the dots forming the displayed characters or symbols are stored, rather than codes, and the stored tnformation is displayed directly. A blt mapped display ls advantageous ln that complex graphics displays, such as pictor~al lmages, are more easily generated, bùt are more expensive ~n that they requ~re substantlally greater memory capac~ty for storing the dlsplay information.

As will be descrlbed below, the document structure of the present invention will support b~t mapped images as elements of a document; this capab~lity is not ava~lable, however, in a character generator d~splay. An alternate ~orm of graphics dlsplay, referred to as character set graph~cs, may be provided by the pr~sent document processing system. Character set graphlcs are based ~pon the manner ~n which characters and symbols are generated upon a CRT screen, that is, as rectangular matrices of dots, for example, 5 by 7 dots. The individua} characters are then generated by illumlnating certaln dots of the matrix whlle leaving the remaining dots dark. In a character set graphics display, provision is made to generate a wide range of symbols, or patterns of ~ dots, and a code assigned to each symbol. These graphic symbols, or dot patterns, are then assembled in arrays on the screen to generate the desired graphics image.

;

( ~2;~2325 3. Documene Access Structure 60 The second structure dlrectly associated with ADS 40 is Document Access Structure (DAS) 60, wh1ch contains ~nformdt~on locating and interrelating var10us areas in ADS 40 and Buffers 54 and the information reslding therein.
DAS 60 is used by AOR 42 routines, and in part by SR 2a routines, to locate and operate upon items of information in ADS 40 and Buffers 54, DAS 60 is thereby the principle interface between the document structures, that is, ADS
40, and the document ~anipulation routines, that is, AOR 42. DAS 60, by ' providing informatSon rel~tlng A~S 40 and Buffers 54, the lnput/output path for ADS 40, thereby also comprises the princ~ple link, or access path, between ADS 40 and the remainder of System lO, ~ncluding DS 32.

DAS 60 is originally generated by SR 28 and conta~ns four ma~or elements, a 'S File Reference Block (FRB), a Buffer Table (BT~, a Document Control Block (OCB) and a set of one or more Position Blocks (PBs).

The FRB primarily contains lnformation used for document commun1cat~on between Workstation 14 and Master Unit 12. Examples of this informatlon include a Reference Number identifying the partlcular document during the period in which the document is being operated upon and a Reference Control Block. The Reference Control Block in turn contains lnformation indicattng whether an I/O
request has been generated by the workstat~on, as described above, and whether errors have been detected. The Control Block also contains information generated by the workstation indicating whether a document file is to be ,~

~22~3;~S
~ created for a new document and whether a document ls to be transferred in its entlrety to its DS 32 that ls clean-up at the end of operation on the document.

S The BT is generated by OR 30 and is used by s~ 28 to malnta~n and operate Buffers 54. The 8T ls prlmarily comprised of a set of polnters and lnformatlon indicating the locatlons and capacitles of the buffers of Buffer 54 ln WSM 38.

The DCB contains information identifying the document currently be~ng operated upon and the current status of that document. The DCB also contains informatlon through which OR 30 may locate the FRB and BT.

The PBs contain information denoting speclfic positions wlthln the document belng operated upon. Almost all forms of access to the document are performed lS through a PB and a PB may be lnitlallzed by most routines requ~r~ng access to the document. For example an AOR 42 routlne to move a port~on of text from one location wlthin the document to another location w~ n~t~al~ze a PB
polntlng to the lnltlal and destinatlon locatlons of the text to be moved. The move routine will then use thls information in moving the text.
b. AOR 42 and Associated Structures As prevlously described OR 30 includes all actual document manipulation routines and thereby comprises the actual document processing system. AOR 42 is a tlme varying subse~ of OR 3~ dnd ~s comprlsed of the OR 30 routines ' ~2~32~
~' ( currently being used to operate upon a document. Related groups of OR 30 rout~nes referred to as overlays are read from OR 30 and overlayed ~nto AOR
42 as required for the selected document operations. The routlnes in AOR 42 access and operate upon ADS 40 and Buffers 54 uslng information contained in DAS 60 which is also accessed and operated upon by AOR 42.

As prevlously described the document processing system has the capablllty of nestlng or stacking document manipulation routlnes. For example if the user is executlng an insert routine to insert text into a document the user may without termlnatlng that operation initiate a second operatlon for example an lnsert or delete operat~on with~n the text be~ng ~nserted. The second or interrupting routlne is ~nitiated and executed wlthout exiting the in~t~al or interrupted rout~ne and at the conclus~on o~ the interruptlng routine the system returns to the ~nitial rout~ne. The user may nest several such routines and the rout~nes will be returned to in the reverse of the sequence in which they were initiated.

The nestlng of OR 30 routines and any necessary saving of AOR 42 routines due to overlay operations ls accomplished through the operatlon of Save Stack Z (SAVES) 62 associated with AOR 42. As wlll be descr~bed further below SAVES
62 is d part of the stack structure assoclated wlth and controlled by SR 28.

~he savlng of an A02 42 routlne is accompllshed be transferring a ccpy of the entire routlne into the corresponding DF 24 that is into a SS 34 together with other assoclated information pertainin~ to the state oF operation of the ~ L22232~
system. When thls occurs, SR 28 places on SAVES 6Z Flle Reference Serial Nùmber ~FRSN) ~dentlfylng the memory image of the saved routlne, that ls, the location of the saved routlne. ~hen the saved routlne ~s returned to, SR 28 reads the saved routine FRSN from SAVES 62, uses the FRSN to f~nd and copy, or overlay, the routine from the DF 24 to AOR 42, and relnltiates executlon of the routine.

b. Control_Trans~er and the SR 28/AOR 42 Interface Before continuing to a description of SR 28, it is necessary tc, conslder the structure and operation of the control structures wh~ch form the interface between SR 28 and AOR 42 and whlch are used to transfer control from one routlne to another, either w~th~n SR 28 or AOR 42 or between SR 28 and AOR 42.
The transfer of system control from one routine to another requires, first, an ldentlflcatlon of the routlne to whlch control is passed, and second, a means for passing informa~ion fro~ the orlginal routlne to the routlne assumlng control. The elements through which these operations are acco~plished and which comprise the interface between SR 28 and AOR 42 include Execution Pointer (EP) 64 and Varlable Stack ~VARS) 66.
1. Executlon Pointer (EP) 64 and Vectors Routlnes are identlfled, located and inltlated through the use of vectors , whlch are essentlally loglcal, as opposed to physlcal, addresses of the routines so identifled. Each vector contalns sufflcient information, as 3L2~232~
d~scrlbed below, to ldentlfy overlay lf neCessary and execute a routlne.
Each vector includes three information fields a Type field a SiZe field and a file Reference Serial Number (FRSN)/Address field.

The vector Type field contains informatlon as to whether the corresponding routine is a Resident or Local Overlayed Saved or Internal routlne. A
Res3dent routine i5 any routine which is always resident in memory that is always resides ~n WSM 38. An example of a Res~dent routine is any of the SR 28 routines. A routine which is part of a giuen overlay that is a related group ~O of OR 30 routines is Local to that overlay and to any other routine within that overlay. A Local routine thereby becomes a Resident routine for execution purposes when the overlay to which it i5 Local is read into AOR 42.

An Overlayed routlne Is any routine which must be loaded Into WSM 38 from D~sc lS 18 and includes all OR 30 routlnes in OR 30 overlays.

A Saved routine is any routine or overlay which must due to its nature~ be saved as described above be~ore another overlay is loaded into AOR 42. An Internal rout~ne is any routine or overlay which has been saved) as jus~ described.
That is a Saved routine is a routine which must be saved while an Internal routine is a routine which has been saved.

The vector Size field is used with reference to overlays and ind~cates the size or number of 256 byte sectors in the overlay.

~ 2;2232S
The contents of a vector FRSN/Address field depends upon the Type of the routlne. In the case of a Resldent routlne, the FRSN/Address field contains the address of the starting polnt of the routlne. In the case of an overlay, the FRSNlAddress fleld contains the FRSN of the routlne, that is, a log~cal address used to ldent~fy and locate the routlne and to load the rout~ne tnto AOR 42. The startlng address of an overlay routine ls assumed to be the flrst locatlon ln the overlay area of WSM 38, that is, the flrst location in AOR 42;
this locatlon contalns the start of a rout1ne leading to the selected routlne.

Contro! ls passed from one routlne to another by means of vectors loaded lnto EP 64 from either AOR 42, SR 28 or Reload Stack ~RLDS) 76, which ls associated wlth SR 28 and descrlbed further below. Each time a currently controlling routine is ~o pass control to another routine, the controlling routine loads into EP 64 the vector of the routine to whlch control ls to be passed. SR 28 lS includes routlnes which monltor the contents of EP 64 and, when a vector ls detected thereln, executes a routlne, using the vector, to locate and lnltlate execution of the new routine.

The operatlon performed by SR 28 ln passlng control to a new rsutine depends upon the Type of the rout~ne, as determlned by the vector Type fleld. If the routlne ~s Res~dent or Local to an overlay currently res~d~ng ~n AOR ~2, the vector FRSN f~eld ~s used as a po~nter, or address, to the start of the new routlne and control is transferred to the new routlne at that polnt.
' .

3L2~
If the vector Type field indicates that the new routlne is an Overlayed routlne, the vector FRSNlAddress fleld contalns the FRSN of the routlne. In thls case, SR 28 lnltlates a routlne, ut~lizlng the new rout~nes FRSN, to read the overlay contalnlng the new rout~ne from Dlsc 1~ and lnto AOR 42. ~hen the overlay operation is completed, SR 28 transfers control to the flrst locatlon ln AOR 28 which, as described above, ~s the start of a routine leading to the entry polnt of the new routine.

If the vector Type f~el~ lnd~cates that the new rout~ne has been saved or stacked, as descr~bed below, SR 28 will, if ~t res~des ln SR 28 or currently resides in AOR 42, execute a rout~ne to r~nltiate the routlne. If the routlne resides in a SS 34, SR 28 will execute a routine to reload the routlne from SS
34 before reinitiating.

lS Z. Variables Stack 66 and Passinq of Information As described above, the passing of control from one routine to another requires a means for passing lnformation from the controlling routine to the routlne to whlch control is to pass and, ln particular, from the passing routine to SR 28, the workstation operatlng system. Thls functlon is performed through Var~able Stack ~VARS) 66, which receives such informatlon from and provides such ~nformatlon to the SR 28 and AOR 42 routlnes.

As will be described further below with regard to SR 28, the workstation operatlng system operates as a state machlne, that ls, the response to any 23:2~
given lnput or condltion will depend upon the state in which the system is operatlng. Accordlngly, the ~nformation wrltten lnto VARS 66 lncludes, as described further below, an ldentiflcat}on of the system state ln whlch routines are to be executed and space ls reserved on VARS 66 and a varlables entry made each tlme a new system state is entered.

Havlng described the interface between SR 28 and AOR 42 and the means by whlch control is passed between routlnes, the operatlon of SR 28 and its associated structures will be described next below.
c. SR 28 and Associated Structures As described above, SR 28 comprises a state machine operating system for Workstatlon 14, that is, the respons~ of the system to ~ny part~cular ~nput or condltion ls, as determlned by SR 28, dependent upon the part~cular current operatlng state of the system. In addltlon to controlllng the overall operation of Workstat~on 14 and supportlng the operatlon of the document processing system implemented in OR 30/AOR 42, SR 28 accepts and processes user keystroke inputs and provides a stack mechanism for the stacking, or nesting, of operations.

1. Slave and Service Routlnes 68 As lndicated in Flg. 3, SR 28 includes Slave and Servlce Routlnes (SSR) 68 for dlrectlng, for example, operations between Workstatlon 14 and MOS 26, such dS

,,~ .

2%3Z!~
~L~
generatlng and hanallng requests for informatlon transfers between Workstation 14 and D~sc 18. The general operation of SSR 68 ~s described in-U.S. Patent No. 4,145,739. supra.

2. Keystroke Processinq and System State As desribed above a pr~mary visible focus of the operat~on of System 10 is the interact~ve opera~lon between System 10 and a user through KB 46 and Dlsplay 48 ~n the generat~on and man~pulatlon of documents. System 10 may be regarded ~n certain aspects there~ore as a keystroke processing system. That is a user enters data ~text) and text/document manipulation commands by means of keystrokes through KB 46 and the system responds by executing the appropriate routines selected from AOR ~2 and SR 28 to correspondingly modlfy the contents of ADS 40. SR 28 s keystroke process~ng mechanlsm whlch lncludes Keystroke Routlnes ~KS) 70 is thereby the principle input intQrface between the user and the system.

The response of the system to particular keystroke ~nputs is as previously described dependent upon the partlcular state of operat~on of the system that ls upon what operations the system is currently executing. SR 28 thereby incorporates a state machine mechanism including State Table (ST) 72 which interacts with SR 28 s keystroke processing mechanism to determine the appropriate response to user keystroke inputs.

~5 The response of the keystroke processing mechanism to particuiar keystrokes is _ " . ... ..

~2223~
further determlned In ST 72 by the class of the particular keystroke, wherein a class is a group of keystrokes having similar functlons. The follow~ng keystroke classes are implemented in the presently preferred e~bodlment of the present invention:

GRAPHIC DELETE COLUMN
CURSOR REPLACE SAVE
SCREEN VISUAL RECALL
PAGE INFORMATIONAL HELP
~OTO PAGE FORMAT SUPER SEARCH

INSERT MARK SUPER COPY
SEARCH COMMAND SUPER REPLACE
COPY , GLOSSARY SUPER COMMAND
MOVE PRINT DEFAULT
EXECUTE NAME VIEW
CANCEL

ST 72, as described above, contains information relating machine state and keystroke class to corresponding routine vectors and is arranged as a set of rows wherein each row contains, ~n order by keystroke class, the vectors for each keystroke class for a particular state. ST 72 may thereby be indexed by state, to select a corresponding state row of vectors, and by keystroke class, to select a vector for that keystroke class in that state.

Considering now the operation of the keystroke processing and state machine, ~ 2~23~5 KS 70 receives information regarding keystroke inputs from KB 46 through CPU
44. This lnforlnation ldentifies both keystroke class and the specific keystroke within the class. As prev~ously described, information regarding current machlne state resides in VARS 66. The keystroke class, keystroke and S state lnformation is provided, as indicated ln Flg. 3, to the keystroke handling routines of KS 70. The keystroke handllng routines ln turn generate a corresponding input to ST 72 to ~ndex the state tables by state and keystroke class. ST 72 responds by prov~dlng as an output a vector ~dentifying the appropr~ate SR 28 or OR 30/Ao~ 42 rout~ne ~or the keystroke and machine ' state. As previously described, the vector output of ST 72 ~s loaded ~nto EP
64 and the appropriate action, depending upon routine Type, is initiated by SR
28. As also indicated in Fig.-3, and as described further below, ST 72 concurrently provides the resulting vector as inputs to SR 28 s stack mechanism.
3. Stack Mechanlsm - As previously described, SR 28 provides a stack mechanism performing three primary functions, whlch are identifying which overlay should eurrently reside in AOR 42, identifying which routine ~s currently being executed, and storing the memory image of saved overlays. The savlng of overlays, that is, AOR 42 routines, by SAVES 62, which is a part of the SR 28 stack mechanism, has been previously described wlth reference to the operation of AOR 42.
, . .
Zs The remaining stack mechanism functlons are performed by Reload Stack (RLDS) 23;~i 76 prevlously mentioned and Module Stack ~MODS) 78 which as indicated in Flg. 3 and previously described receive lnputs from the vector output of ST
72.

RLD5 76 receives and stores vectors from ST 72 and the top of RLDS 76 always contains the vector of the cverlay whlch should currently be in AOR 42. RLDS
76 allows the vectors of interrupted rout~nes to be saved so that ~nterrupted rout~nes may be returned ~o at the completlon of execut~on o~ the interrupting routines In th~s respect RLDS 76 ls the pr~mary means of sav~ng routines when ~t is not necessary to save the actual routlne for examp!e by stacklng the vector of an interrupted overlay routinè. As previously described SAVES
62 is provided to save rou~ines in their entirety that ~s the actual code when necessary. As indicated in Fig. 3 RLDS 76 provides an lnput to EP 64 to allow the loading into EP 64 and subsequent re~n~tlat;on of lnterrupted routines.

MODS 78 receives and stores only the Type field of the vector of the currently executlng routine. The information residlng in MODS 78 is used by SR 28 in determining the appropriate handling of interrupted and returned routines and may be updated as the Type of a routine changes for example from over1ay to resident.

SM 74 includes certain routines which are of interest in understanding the operatlon of SR 28 s stack mechanisms; these routines include FREE LOAD
PUSH POP RELOAD and ENTRY and will be described below in that order.

The prlmary functlon of FREE ls to free the overlay area that ls AOR 42 for the loading of another overlay by setting a flag indicatlng that AOR 42 is to be reloaded with the proper overlay. Other rout1nes ln SR 28 detect the state of th1s flag and 1n1tiate the appropriate operatlon to reload AOR 4Z.
For example 1~ the informatlon res1dlng ~n the top of RLDS 76 1nd1cates that the current overlay must be saved, SR 28 wlll 1n1t~ate an operat10n to save that overlay in SAVES 62 before init1at1ng a request to load AOR 42 with the new overlay.

LOAD ~s used to initiate overlay rout1nes and is called after EP 64 is loaded with a vector to the new overlay routlne. If the rout~ne mùst be overlayed that 1s loaded into AOR 42 LOAD w~ll in turn call FREE. In add~t~on ~OAD
~lll save on RLDS 76 the vector of the rout~ne calling LOAD for subsequent use by PUSH or ENTRY described below.
The function of PUSH 1s to stack 1nformation concerning the last loaded overlay so that the overlay may be recovered ~f destroyed ln some manner. PUSH
f~rst pushes the Type f~eld of the last loaded overlay onto MOD~ 7~. If the routine ls not res1dent PUSH will also push the rout1ne s entlre vector onto RLDS 76. If the rou~ne ~s of the type wh~ch must be saved PUSH wlll push the rout~ne onto SAVES 6Z and place the FRSN of the rout1ne s location in SAVES 6Z
1nto the FRSN/Address f1eld of the rout~ne s vector on RLDS 76. In add~tlon PUSH w111 change the vector s Type field from saved to internal to reflect the change 1n Type of the routine.

__ ~ :Z;Z 3~
The functlon of POP is to throw away the top entry of MODS 78. If th~s routine is not of the res~dent Type, POP wlll also throw away the top entry oF
RLDS 76. If the rout~ne is of the saved Type, POP w~ll also delete the entry in SAVES 62. finally, POP w~ll reset a reload flag to lndicate to SR 28 that the correct overlay is not resident ln AOR 42.

The function of RELOAD is to ensure ~hat the rout~ne speclfled by the top vector of RLDS 7h is current~y res~dent ~n AOR 42. If the reload flag is set and the current routlne, as ~nd~cated by the top entry in MODS 78, ls a ' nonresident Type, RELOAD will load the correct overlay into AOR 42.

ENTRY operates in conjunction wi~h LOAD to provide the entry point of the last LOADed routine.

Having described the structure and certain aspects of the operation of SR 28 and, in particular, the keystroke processlng and stack mechanisms of SR 28, the fundamental operating sequence of SR 28 as a whole will be described next below.

4. Bas1c Operatlnq Sequence of SR 28 The primary functions of SR 23 and the state machine implemented therein are, as described in part above, to maintain and operate the state machine, to overlay routines as required, to handle critical displays, for example, messages and menues, and to accept and process keystrokes. To perform these 23;2~
functlons, SR 28 and the state machine repeatedly execute. in order, a sequence of four phases of operation. These phases are referred to, in the order executed, as the Overlay, Reload, Display and Keystroke phases and will be described next below ln that order.
a. Overlay Phase Overlay Phase is responsible for ensuring that the selected routlne ls ln AOR
42, and for executlng the selected rout~ne~.
This phase begins with t~le vector of ~he selected routine residing in EP 64.
If the routine is resident ~n memory, that is, ln AOR 42 or SR 28, the machlne skips to execution of the routine. If the routine is not resident, that is, is an overlay routine not resident in AOR ~2 SR 28 calls LOAD by loading LOAD s '5 vector into EP 64 and the overlay is loaded into AOR 42.

With the routine resident in mernory, SR 28 proceeds to execution of the routine, by flrst calllng ENTRY to determine the entry point of the routlne and then executing the routine.

The Overlay Phase is usually completed at this point, that is, when the executlon of the selected routine is completed. ~n certain cases, however, the selected routine may invoke routines resid~ng ~n other overlays. In such cases, EP 64 is loaded with the vector to the ~nvoked routine and the Overlay Phase ~s restarted.

~3;2~ii b. Reload Phase Reload phase ls provlded and in~tiated to ensure that the currently act1ve rout~ne ~s resident ~n AOR 42 ~n cer~aln cases when the Overlay Phase does not perform th~s function.

The first such case is that of certain overlay routines which invoke other routines that, when completed, return control to the general SR 28 rout~nes rather than to the invoking routine. The second case occurs when a rout~ne, when completed, calls POP rather than returning to the invoking routln~.

In both cases, the functlon of Reload Phase ls to reload the correCt overlay into AOR 42 and does so by calling RELOAD, descrl~ed aboye.

c. D~splay Phase SR 28 performs all critical display functions to Display 48 during this phase.
Such dlsplays lnclude providing prompts and messages to the user, display~ng menu choices available to the user, and updating the display of attr~butes, descr~bed further below.

d. Keystroke Phase During this phase, SR 28 performs the keystroke processing operations previously described. That is, SR 28 receives a keystroke from K8 46 and state , ~z~

lnformatlon from VARS 66, ~ndexes ST 72 for the class of keystroke and current state to obtain the correct vector for the selected routine, and loads the vector lnto EP 64.

At th1s po~nt, the mach~ne has returned to the lnitial condlt~on of theOverlay Phase and the four phases are repeated ~n the order and~as described above.

Having descrlbed the control structure of the present system, the document structure of the present invention will be described ne~t below.

B. Document Structure (Flq. 4) The document structure of the present lnvent~on, that is, DS 32, is, aspreviously described, designed for efficient use of memory capacity wh~le providing the flex~bility required to generate very complex documents and to support advanced editing features. The primary function of the document structure is the storage and ready access of sequential text, organized into logical user speclfied pages of arbitrary length. The structure allows fast ~ and efficient character and page edit~ng and allows for the appllcation of a largè number of vlsual attrlbutes, or enhancements, to the characters of a text. Certaln of these edltlng features lnclude visual attributes, such as underllning, bold type and varlous fonts, and lnformation attr~butes, such as notes, footnotes and vo~ce. The document structure also allows the appllcatlon si of character related information which i5 not prim~rily visual in nature~ such as optionally printed text, table of content and index generatlon, and temporary markers used for editlng aids. Additlonal features allow the user to assign names to varlous portions of a document and to access and operate upon named portlons through those names.

The basic element of a document is a ~ixed slze block of lnformation, the slze of wh~ch is determ~ned by a convenient and efficiently slzed unlt of memory space in which the document i5 created and operated upon. In the present embodiment in System 10, the block size is determined to be two Dlsc 18 sectors, that is, 512 bytes. In another system, for example, a centralized system based upon a general purpose computer, the block size may be determined by the size of the data blocks transferred between the computer main memory and a cache memory, or a multiple thereof.

As will be described below, a document structure ls constructed of several different types of blocks, each having a unique Internal structure and serving different, specific purposes and assembled as required to create a document.
Of these blocks, certain blocks are required in any document while others are ~ used as required. Certain blocks are always located at fixed points in thedocument and others are located through the pointers which form an integral part of the document structure. In addition, certain blocks, for example, blocks containing text, may be chained together as required. The document structure is thereby flexible and expandable, occupying no more memory capaclty than is required for a particular document ûut capable of ~;~2Z3;~
~ .. ( accommodating very large and complex documents, and provides fast and easy access to any part of a document.

1. Bas~c Block Structure s All blocks in the present document structure have a fixed lnternal structure comprlsed of a Header area and a Data area. The Header area ~n turn has a standard, fixed structure wh11e the structure of the Data area depends upon the block type.
The Header area lncludes a Block Type field identifylng the block type~Forward and Backward Polnter fields used to chain together blocks of the same type, and Top and Bottom Offset f~elds identify~ng the location of the block data wlthln the Data area. Other Header f~elds include a Number Of Items f~eld lS used in data compression and recovery operations, a Document ID field used to identify the document to which the block belongs, and certain Checksum informatlon for error detection. No~ a~l blocks require the use of all of the fields def~ned within the standard block Header area; in such cases the unused fields are undeflned and are not used but are not deleted from the Header area.
2. has~c Block Types As descrlbed above, each document is compr~sed of a combinat~on or assembly of various types of blocks, whlch can be dlvided lnto three maJor functlonal categor~es, Management Blocks, Indexlng Blocks and Text/Data Storage blocks, ~ Z32~i ~
referred to as Information Item Blocks. Certain blocks are required ~n any document whlle other blocks may appear only ln complex documents and the document structure allows the add~tlon of fur~her block types as requ1red~

S Management blocks are required in any document and contaln prtntlng andstatlstlcal lnformat~on and user defined editlng parameters for the document.
Presently deflned Management Blocks ~nclude an Admin~stratlve/Syste~ Block a Style Block and a Free Block B~t ~ap Block.

Indexlng Blocks are used to locate the various Information Item Blocks which contaln the actual text and ~nformation of the document. Presently deflned Indexing Blocks include a Document Table a Named Item Inde~ and Prlmary and Secondary Indexes. The Document Table ~s located at a fixed polnt ln the document and is used to locate the Named Item Index and the Prlmary Indexes.
The Prlmary Indexes are used In turn to locate the Secondary Indexes and the Secondary Indexes are used to locate Information Item Blocks. Certaln Information Item Blocks and the Named ~tem Indexes may be chained together through the Forward and Backward Pointers contained in their Header areas thus providlng yet another level of link~ng of blocks.

It should be noted that when a document does not contaln more Informatlon Item Blocks of a glven type than can be ~dent~f~ed w~thin the capac~ty of a slngle Secondary Index the Prlmary Indexes for that block type are not created and the Document Table entry for thdt type polnts dlrectly to the slngle Secondary Index for that block type.

Finally, the Information Item Blocks contain, as described above and described in detall below, every type of information appearing in a document. Most Informatlon Item Blocks having text can have that text enhanced by vlsual attr~butes, such as color and font, and can contain references to informatlon attributes, such as format lines and footnotes.

The presently defined types of Informatlon Item Blocks, each of whlch w~ll be described in further deta~l below, include:
lQ
Text Formats HeaderslFooters Pictures Free Form Regions TQXt She1VeSFOOtnOteS
Notes Equation Regions lS Voice Messages Merge Data Data Shelves Certain emhodiments of the present invention may also provide Matrices Blocks and External Data 810cks, as descrlbed below.
As descr~bed above, add~tional Informatlon Item 810ck types may be defined as requlred and incorporated wlthin the document structure in the same manner as the types listed above.

Other types of references which may be inserted into a document include, in , ~2~3~

addltlon to attrlbutes, described below, Text Insertion References and Named Marks. The document structure described below also includes, as described below, means for handllng text appearing in column forrn.

3. Min~mum Document Blocks As described abo~e, certain of the blocks described above are required in any document. In the present embodiment of the document structure, these blocks include, for a minimu~ document, the:

Document Table Secondary Text Index Administrative/System Block Text Block Style Block Secondary Format Index free Block Bit Map Format Information Item Block It should be noted, with regard to the two Secondary Indexes entries listed above, that, as previously described, a minimum document may contain a single Secondary Index for a part~cular Information Item Block and the Secondary Index may be located directly through the correspond~ng Document Table entry.
ZO
Having descrlbed the major categor~es of block type, and brlefly the types of block wlthin each category, each of the block types will be described ln further detail below.

,, ~1~i~3~
(' ~' 4. Manayement_81ocks The Adminlstrative/System Block contains keystroke interpretation and administrative information and may be chalned to other Administrative/System
5 Blocks for very complex documents.

~he Style 810ck contains user definable defaults concerning, for example, document character style to be used if the user defaults, that is, does not define a different style.

The Free Block Bit Map Block contains information ~dentify~ng, for each block in a document, whether a part~cular block ~s currently in use. Bit Map Blocks are used by the system to ef~iciently allocate and deallocate blocks, that is, memory space. 8it Map Blocks may be cha~ned, thereby allowing a complete physical mapping of every bloc~ or, in the present embodiment, dlsc sector.

S. Indexinq Blocks .

The following descriptions of the Index~ng and Information Item Blocks will refer to Fig. 4, which illustrates the document structure of the present inventlon and the relationsh~ps between Indexing and Information Item Blocks.

As prevlously described, the Indexing Blocks ~nclude the Oocument Table, Primary Indexes and Secondary Indexes. Referr~ng to Flg. 4, each document contains a single Document Table (DT) 80, which contains a pointer to a Prlmary Inde~ ~PI) 82 for each type of Information Item Block type appearlng in a partlcular document. Each PI 82 in turn contains polnters to one or more Secondary Indexes ~SIs) 84 for that In~ormatlon Item Block type and each sr 84 contalns, in turn, pointers to the Informatlon Item Blocks (II8s) 86 of that type appearlng in the document. As prevlously described, ~n those cases wherein the number of II8s 86 of a certa1n type is less than the number of polnters whlch may be accommodated in a corresponding single SI 84, the corresponding PI 82 is not used and the DT 80 entry po1nts dlrectly to the SI
84 for that IIB B6 type.

It should be noted that, in the present embodiment, the pointers used in the Indexlng Blocks, that is, ln DT 80, PIs 82 and SIs 84 are compr~sed of Flle Reference Serial Numbers, that ~s, the log~cal as opposed to physlcal addresses of the elements pointed to.

As will be descr~bed further below, IIBs 86 of certain types may be chained together with other IIBs 85 of the same type through the Forward and Backward Pointers ln the IIB 86 Header areas. In such cases, an SI 84 pointer to a chaln of IIBs 86 may poin~ to the f~rst II3 86 of the chain and the remaining 20 IIBs 86 of the chaln may be located through the Forward and Backward Polnters.

a. The Document Table -The DT 80 ls always located dt a fixed poin~ in the document structure, that is, at the start of the document, ~nd there is only one DT 80. The Header area 3~;

of DT 80 ~s o~ the standard, fixed structure previously described. The Data area contains a space or location for a pointer to the PI 82 or SI 84 for each possible type of II8 86. If a partlcular type of IIB 86 does not appear ~n a doeument, the DT 80 entry for thdt type ls null entry, for example, zero.

In the present embodSment, the DT 80 Data area contains the following pointers:

Named Item Index Primary (or Secondary) Text Index Primary (or Secondary) Format Index Prlmary (or Secondary~ Note Index Primary ~or Secondary) Free Form Region Index Primary (or Secondary) Footnote Index Prlmary ~or Secondary) Header Index Primary (or Secondary) Footer Index Primary (or Secondary) Matrix Index Primary (or Secondary) Picture Index Primary (or Secondary) Voice Index Primary (or Secondary) External Data Index Primary tor Secondary) Merge Data Index Primary (or Secondary) Equation Region Index Text Insertion Index Named Marks Index ~ 25 : -46-b. Primary Indexes 3~
As previously described, there is a PI 82 for each IIB 86 type appearing in a document and the Data area of each PI 82 contains pointers to the SIs 84 for the correspondlng block type. In the Header area of a PI 82, the Number Of Items fleld will contaln the number of SIs 84 referenced from the PI 82. There will be, ln the present embodiment, only one PI 84 for each block type; ln other embodiments, for example, PIs 82 may be chainable w~thin each block type.

~hen a document ls flrst created there will be, as previously described. only SIs 84 and probably only two such SIs 84, one for a Text Page IIB 86 and one for a Format Line IIB 86. As the document grows in complexity, the capac~ty of single SIs 84 will be exceeded and further SIs 84 will be created. As a second such SI 84 is created for a pdrticular block type, a PI 82 for that type wlll '5 also be created, wlth pointers to the SIs 84 of tha~ type, and the DT 80 entry for that type will be changed to point to the PI 82 for that type.

c. SecondarY Indexes The general structure of SIs 84 ls slmilar to that of Pls 82 descrlbed above.

As previously described, an SI 84 is pointed to by an entry ln a corresponding PI 8Z and contains po7nters to the IlBs 86 o~ that block type. There may be multiple SIs 84 for a particular block type and, if so, the Header area will contain a f1ag indicating this fact. SIs 84 may not, however, be chained in the present embodiment, but may be chained in other embodiments.

The SI 84 Data area contalns a po~ ~ er ~ each IIB 86 referenced through the SI 84, and for each such pointer, lnformation as to whether the partlcular information item, that is, IIB 86, 1s named, the number of times it ~s referenced, and whether it is referenced from another IIB 86.

1. Secondary Text Paqe Indexes Although ~he structure of a SI 84 for a Text Page IIB 86 is the same as any other SI 84, such SI 84s are unique In tha~t the lnde)t contained therein is continuous, that ls, no vacant entries are allowed. Thls restr~ctlon provides for a speclal property of Text Page IIBs 86; that Is, that the number of a document page, which as illustrated ln Fig. 4 is comprised of one or more IIBs ~6> ~s alway,s the same as that of the ~8 86. For example, the entry of the 45th page In a document is always the 45th entry wlthln the flrst SI 84 Text '5 Pa~e Index.

The Secondary Text Page Index may therefore always be used to find th~ f~rst Text Page Block of a document s page. A document page can be comprised of any number of Text Page Blocks chained together by the Forward and Backward Polnters ln the Block Header areas.

2. Secondary Header and Footer Indexes ; Seeondary Header and Footer Indexes have the same structure as all other SI

~ 2~Z~
84s except that all item numbers must be asslgned on even boundarles when new Header and Footer IIB 86s are created. This restrictlon provtdes space in the 1ndexes to allow for the generation of elther primary or flrst and second alternate Headers and Footers.

d. Named Item Index The Named Item Index, which appears as a P~ 82 in Fig. 4, provides a parallel access path to IIBs 86 which have been assigned names by the user. That is, an IIB 86 can be located by its name as well as by its Item Number, described below, or FRSN.

The Named It,em Index Data area contains an entry for each IIB 86 whlch has been ass~gned a name. Each entry includes the IIB S6~s type, name and Item Number. Text Shelves, a type of IIB 86 described below, are ldentlfied by their FRSNs rather than by their Item Numbers. Entries are maintained in ascending order by type and name, no blank entries are permitted in the index, and Named Item Indexes may be chained through their forward and Backward Pointers.
6. Information Item Blocks As previously described, the actual text or other informatiorl of a document ~s contained in Information Item Blocks ~IIBs) 86 and there ls a type of IIB 86 for each type of information that appears or may appear in a document.

~2~3~
~ .
An IIB 86 may, for example, contaln text and/or attrlbutes, text andlor attributes to be lnterpreted as colu~ns or rows of columns, flle names for lnformation stored externally to the document, and any other form of informatlon. Each II8 86 has an assoclated Item Number that ls used to locate the IIB 86 wlthin the Index Blocks described above. For Information attributes, described below, the Item Number ~s arbitrary. For text pages, however, which have been previously described as comprised of one or more II8s 86, the item number is iimplied and ls the same as the page number.

In all cases, however, the Item Number leads to the first IIB 86 of an ~nformat~on item of arbitrary length and the blocks may be cha~ned together through the Forward and Backward polnters resldlng in their Header areas The general structure of an IIB 86 ~s sim~lar to that of the Index Blocks '5 described above, that is, with a standard Header area and a Data area. TheData area differs, however, and may contain text or attributes or both. Text is entered from the top to the bottom of the Data area and attributes are entered from the bottom to the top. A typical Data area may therefore have text in lts upper portions, attr)butes in its lower portion and free area 2~ between, which becomes filled as text and/or attributes are entered. Either text or attr~butes may occupy the entire Data area, or as much of the Oata area as ls not occupied by, respectively, attributes or text.

In addition to the Forward and Backward pointers and other Header elements.
the Top and Bottom Offset fields of the ~eader are used to point, ~L2;~23~
respectively, to the last valid character ln the Data area and the last valid attribute in the Data area.

Having described the general structure of IIBs 86, the individual types of 5 IIBs 86 of the present embodiment will be descr~bed next below. It should be noted that further types may be added as requ~red and that a type described below need not appear in a particular document or implementation.

a. Text Blocks The most common form of II8 86 is the TeNt Block which contains the text of the document and the attribute information, described further below, pertaining ,to the text contained therein. Text Blocks contain the actual body of a document text, including all visual and descriptive attributes and all lnformation comprising references. Text B10cks can be chained together or can exist as independent blocks with the main body of a document s text exlstlng as a single chain of blocks, beginning with the first block of the first page of the document and ending with the last block of the last page. Document pages wherein the text occupies more than one Text Block are created, to any arbitrary length, bychainin9 together Text Blocks.
,~
As descri~ed above, text occupies the Data area from top to bottom and attribute information from bottom to top. The last text character appearing in a block is always an End of Te~ haracter to identify the end of a page. Any ~2~3~

number of Text Blocks may be chalned and a Text Block is referenced elther through a Text SI 84 by Item NUmber or through a Secondary Named Text Index by page number or name.

b. Format Blocks .
A Format Block contain data pertaining to format llnes, that is, lines definlng the physical layout characterlstlcs of a text line, for example, the locations of Tabs. All documents must contaln at least one format line and a ' format line may be referenced any number of times from an location wlthin the document and may be named.

As described above, a format reference is used to spec~fy data to control text d~splay, formatting, and printing characteristlcs, as well as the width of a slngle or multiple columns. A format reference will be found at the beginning of every text page, at the start of every distinct column region, and at other arbltrary user specified locat;ons withln text pages. In addltlon, a format reference ls requlred at the beginnlng of ltem chalns for all notes, footnotes, headers and footers and may be found at other locat~ons wlthln such ltems.

A format reference ls a forced-break reference, that ls, the attrlbute character, decsrlbed below, w~th whlch the reference is assoclated is always the first character ln the text block in which lt is found. If a new format line is lnserted into a Text Block, the block is split lnto two blocks at the 2;312S
polnt of insertion and an End Of Text Character ins~rted at the end of the text ln the block before the 'nserted format llne. Thls feature allows text to be easily inserted before format llnes and page breaks.

Format references are also used to con~rol the placement and conf~gurat~on of column regions and to speclfy special condltlons, such as the presence of soft or hard page breaks.

c. Text Shelf Blocks , ~.
Text shelves are named storage areas used during editing tosave and retrieve portionS of text and are not normally printed. A text shelf contains both the text and the attributes pertaining thereto and is a permanent part of the document but,cannot be referenced as are other IIBs 86. A Text Shelf Block may '5 be referenced only through the Named Item Index and no SI 84 exlsts for Text Shelf Blocks.

d. ~ote Blocks ~A Note Block contains the text and any applicable attributes of notes appearing in the document and a single note may be comprised of several chained Note Blocks.

~L~2~3~S

e. Free Form Reqion and Equation Blocks A Free Form Region of a document may contain any non-wordwrapped text or any graphlc that can be entered through KB 46 and any attributes applicable thereto. Every space in a Free Form Region ~s deflned that is it does not contain any white space and graphics and text may be entered at any point in the region. Examples of Free Form Regions include scientiflc equatlons and charts. Free form Reglon Blocks may be chained to create as large a Free Form Region as required. An Equation Block is sim~lar to a Free Form Reg~on Block or a Graphics Block but is particularly designated to contain information in the form of equations.

f. Footnote Blocks -A Footnote 810ck contains the text and applicable attrlbutes of a footnote and a single footnote may be comprised of chained Footnote Blocks.

g. HeaderlFooter Blocks Headers and Footers are restricted attributes that is they can be placed only at the top of a page immediately after the format line.

There are three types of Headers and Footers. A Primar~ HeaderlFooter is printed on every page of the document a First Alternate HeaderJFooter ls ~5 printed on every other page and a Second Alternate is printed on the pages interleaved w~th the pages having Flrst Alternate Header/footers.

~L2223;~
t -Headers and Footers contaln optlons which may perta~n to spec~flc Headers and Footers such as prlnt styles lines printed on and page numbering. The Header area of a Header/Footer Block contalns un~que informatlon pertaining to these opt~ons.
h. Matrix Element ~ext 810cks A matrix is a two dimensional table or array of areas of wordwrapped text w~th each sueh area being referred to as a cell. The text and attrlbutes of a single such cell are contained ln a corresponding Matrlx Element Block a type of IIB 86.

Format lines deflning the columns of the matrix are contalned In Format IIB
86s are are treated as elements of the matrix. The first element of a matrix column is always a format line there is always a format line for eaeh column of a matrix and a format line may be referenced by any number of Matrix Element Blocks. This restriction on the asslgnment of format lines that is one for each column allows the columns and rows of the matrix to be easily rotated or ~nterchanged. The text with~n a cell is unlque in that it cannot be ~ modified by any other format line than that appearing with reference to the column containing the cell.

The Matrix Element Block~ and Format Blocks of a particular matr~x are located through a Matrix Descrlption Table which also contains the definit~on of the "

~;~2~3;~i matr~Y. Matrix Description Tables are In turn located through Primary and Secondary Matrlx Indexes.

A Matrix Descript~on Table has the same structure as the blocks prevlously described and conta~ns, as described, the lnformation necessary to completely define a matrix. The Data area contalns FRSNs pointing to the text blocks and format lines of the matrlx with each FRSN po1ntinq to the beginnins of a Matrlx Element Block, the smallest unit of a matrix. In addition to the standard information, the Header area identifies the number of rows and ' columns of the matrlx.

Each Matrlx Element Block contains normal wordwrapped text and any applicable attributes of a cell of the matr~x and are referenced ln the Matr~x ; Description Table In row order from left to r~ght.
i. Picture Blocks A Picture Block contains the name of a file containing, in turn, a graphic, that is, picture and may contain additional Information identlfying the area of the document to be occup~ed by the plcture. As previously described, Picture Blocks will normally be used w~th system having blt mapped display and printlng capabilities.

, ~L22~3~ ~
j. Voice Blocks Voice Blocks may contain the names of files containing voice messages, for example, in Digital Volce Store and Forward (DVX) systems.
k. External Data External Data Blocks may contain the names of files external to the system which contain programs or data operating upon data within the system or used by the system. The provision of External Data Blocks allows, for example, programs residing in external files to be overlayed to operate upon data w~thln a f~le ~n the document. External data may also be incorporated into a document through an attribute reference, as described below.

1. Merge Data Blocks A Merge Data Block is a chain of text which contain encoded instructlons ~or per~orming merge operations between an external text source and the document.
The positlon of a merge attribute character in a text chain specifies the position at which the merging is to occur. The instructions indicate how to perform the merge operation and there is no restrictlon on the contents of the merge data chain. Merge data text may contain additional references to other formats, so that columns may be placed in merge chains.

;23~S;
(' ~ .
m~ Text Insert A text insert reference ls a temporary local reference attribute which does not bear an item number and which consists only of a reference attribute character and a reference word, as described below. The purpose of a Text Insert ls to create a forced block break at a point where text is to be inserted.

n. Named Marks Named Marks are user specified permanent position markers~ Nhen applled, the character to be marked ls moved to the beginning of a new block and the occurrence of a Named Mark is lndicated in the header of the new block, resulting in d forced block break. The block or item number of the new block i5 then placed in the Named Item Index.

o. Columns Parallel columns of text appearing in a document are treated as a special case of normal word-wrapped text. The text in a column consists of a portion of a text page chain contalning text, visual attributes, and reference attrlbutes.
Each column beglns with a format line controlling the display of text therein, and has essentlally unllmited length. A column may be interrupted by a format break or page break. A column is terminated by another format, whlch may in turn contain one or more columns and may be at a page break. It is therefore ~58-23~5i possible to have, in a single page, a region of three columns followed by a region of two columns, and so on. In additlon to format data, columns require block llnking pointers to connect columns together, if necessary.

Format llne ~nd data spec~f~ca~ons oF columns appearing in a single page are all included into a slngle format line wlth multiple codes to delimit the extent of each column.

Column tex~ is stored in a text page chain ln sequential form, with the text of the first column in a multi-column region following immediately after the text of the preceeding region. The last block of text of the preceeding region is chained to the first block of text in the column region, which contain a reference to the Formats for the column regions. The last block of the first column is chalned to the first block of the next column, and so on to the end of the column region, wherein the last block of the last column is chalned to the next succeed~ng block.

In order to easily perform whole-column operations, the top bloeks of each column in a column reglon are linked together by side pointers located in the format attribute words found at the start of each column.
.
Having described the various types of IIB 86, the relationship between text and attributes, referred to in the above descriptions, will be described next below.
~5
7. Text and Attrlbutes 3L2~232~

As previously described, any IIB 86 may contaln, in the Data area, both text and attributes. Attrlbutes, which appear as words written in the lower part of the block Data area may, as prev~ously described, effect the vlsual appearance of the text, may be descriptive In indicatlng that a character ls to be optionally printed or is to be used ln generatlng a table of contents or an index, or may contaln information pertaining to the text, for example, footnotes.

V~sual and descrlpt~ve attributes are always applled to a range of characters.
which may be as short as one character. There may be a number of distinct visual/descriptive attributes appearing in a single block. If the same visual or descriptive attribute is applied to characters separated by at least one 5 characterJ two attributes will be present; if, however, the same attribute is applied to consecutive characters, a slngle attribute will result Informational attributes usually appear as units of text or data existing between two text characters and are referenced or incorporated into the text through a ~eference to a block containing the informational text or data.

Attribute words occupy space in an IIB 86 Data area only when deflned. In an IIB 86 containing only text with no assigned attributes, therefore, the text may occupy the entire Data area. Conversely, it is possible to have an IIB 86 wherein the entire Data area is occupied by attribute words. Attribute words ~ . _ . . ..... . .. . _ . . . ..... . .. .. _ . _ . . .. . _ . _ 3L22~S
- are defined only w!thln a Text Block and have mean~ng and are applicable only wlthln the Text Block: attrlbute5 cannot span over two or more Text Blocks.

1. Visual/DescriptlvQ Attributes Visual/Descriptive attributes are applied by the user over a range of characters appearing in the tëxt, from one character to all characters appearlng in the Text Block. ~hether or not certaln visual attributes are displayable, depends upon the capabillties of Display 48.
A visual/descriptive attribute word will contaln information ident~fy~ng whether the at~r~bute is vlsual or informational, the posltion of the flrst character in the Text Block effected by the attribute, and the position of the last character in the Text Block effected by the attribute. Also lncluded is '5 information identifying the apptribute to be applied. Only one attribute is specified by each attribute word and, if text characters have more than one visual attribute, mu1tiple attribute words are required.

Attributes implemented in the present embodiment of the document structure include, but are not llmited to, the following:

Underline Color Change Double Underline Revision Mark Superscript Sub.cript Bold Table of Contents Mark ` 2~: 3 Font Change Index/Occurrence Mark Merge Hyphen Character Set Change Table Of Contents No Break Strike-Through Optlonal Text Index Generatlon .
2. Informational Attributes As described above, in~ormational attributes are units of text of data that exist between two text characters. Informational attributes are represented by a unique, unprintable character and by informational attribute words appearing in the attribute area of the Text Block Data area. Only one informational attribute may be associated with the informational character in a single occurrence of the informational character and each informational word may define only one informat10nal attribute.

The data associated with the information character is, for each occurrence, kept in IIB 86s and are located through the Inde~ing Blocks through their Item Numbers.

An informational attribute word conta~ns informa~ion identifying the word as referring to an informational attribute, the type of attribute, and the Item Number of the attributQ. The word also contains information identifying the location within the text where the informational attribute takes effect and, in the case of, fof example, Picture or Free Form Regions, may identify the horizontal and vertical space required in the document for the attribute.

~;223~;

The forms of informatlonal attrlbute implemented in the present embodlment include but are not l~mited to:

Format References Matrix References Note Re~erences Picture References Free Form Region References Voice References Footnote References External Data References 3. Attribute sorting Order The attribute words stored in the attribute area of a Text Block are maintained in a specific order to provide ready and logical access to the words while fetching characters and associated attributes. If two or more attributes begin or are located at the same point in the text their order is '5 determined first by attribute type that is reference attributes such asinformational attributes will occur prior to visual or descriptive attributes.

The invention described above may be embodied in yet other speclfic forms w~thout depart~ng from the spirit or essential characteristics thereof. For example the system described here~n may be implemented in a centrallzed document processlng system or in a system whereln lndependent processors or computers are located separate from and receive document and routine lnformation from a central memory or other computer system. Such downloading of data and routines may occur as a single operation rather than as an interactive downloadins of currently actlve routines and document segments. In 31 ~2~5 further example, the document structure described above may be lmplemented in any form of document processing system, ~hether dtstributed or centraltzed or the system may be implemented with additlonal of less edlting capabilities.
Thus, the present embodlments are to be cons~dered in all respects as tllustrative and not restricttve, the scope of the lnventton belng tndicated by the appended cla~ms rather than by the forego~ng descr~ption, and all changes which come within the meaning and range of equivalency of the claims are intended ~o be embraced therein.

Claims (20)

THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. In a document processing system including keyboard means for entering document data and document manipulation commands, memory means for storing said documents, processor means for operating upon said documents and means for displaying said documents, means for controlling operations of said system, comprising:
document control means, including buffer means for conducting said document data between said document memory means and said keyboard and display means, said buffer means comprising the sole means for conduting said document data between said document memory means and said keyboard and display means, document access means for storing and providing information identifying the locations in said document memory means of segments of a said document currently being operated upon, and document manipulation means, including means responsive to document operation vectors indicating corresponding operations to be performed upon said document segments and to said document segment location information for providing corresponding document operation routines for controlling said corresponding document operations, said document operation routines comprising the sole routines for accessing and manipulating said document segments residing in said document memory means, and .

supervisory control means responsive to operation of said system for providing supervisory control routines for controlling supervisory operations of said system, including means responsive to operation of said keyboard means for providing corresponding said document operation vectors.
2. The document processing system of claim 1, wherein said document operation vectors selected in response to said operation of said keyboard means are dependent upon the current state of operation of said system, said supervisory control means being further responsive to said current state of operation for providing said corresponding document operation vectors, and said document control means for providing said document operation routine further including means for providing information identifying said current state of operation of said system.
3. The document processing system of claim 2, further comprising:
control interface means, including execution pointer means connected from said supervisory control means for providing said document manipulation vectors to said manipulation control means, and state storing means connected from said manipulation control means for providing said state information to said supervisory control means.
4. The document processing means of claim 1, wherein said document access means further includes:
means for storing and providing information identifying the locations within said buffer means of said document data, said document manipulation means responsive to said buffer location information for controlling said conducting of said document data.
5. The document processing means of claim 1, wherein said document operation routines are selected and assembled from a predetermined library of routines.
6. The document processing system of claim 2, wherein said supervisory control means for providing said document manipulation vectors further comprises:
means for accepting and classifying keystroke inputs from said keyboard means, and state table means responsive to said state information and to operation of said classifying means for relating said state information and said keystroke classifications to said corresponding document manipulation vectors and providing said corresponding document manipulation vectors to said execution pointer means.
7. The document processing system of claim 3, wherein said control interface execution pointer means is further connected from said said document manipulation means, and is responsive to operation of said document manipulation means and said supervisory control means for providing supervisory control vectors from said document manipulation routines and said supervisory control means to said supervisory control means for selecting corresponding said supervisory control routines and said state storing means is further connected from said supervisory control means, and is responsive to operation of said supervisory control means for receiving further said state information from said supervisory control means.
8. The document processing means of claim 3, wherein said supervisory control means further comprises:
stack means responsive to operation of said supervisory control means and said document manipulation control means for storing information identifying state of execution of said document operation routines.
9. The document processing means of claim 8, wherein said stack means further comprises:
supervisory control stack means for storing type of routine information and said vectors of current and interrupted said document operation routines, and document operation stack means for storing certain of said interrupted document operation routines.
10. In a document processing system including keyboard means for entering document data and document manipulation commands, memory means for storing said documents, processor means for operating upon said documents and means for displaying said documents, means for controlling operations of said system, comprising:
document control means, including buffer means for conducting said document data between said document memory means and said keyboard and display means, said buffer means comprising the sole means for conducting said document data between said document memory means and said keyboard and display means, document access means for storing and providing information identifying the locations in said document memory means of segments of a said document currently being operated upon and information identifying the locations within said buffer means of said document data, document manipulation means, including means responsive to document operation vectors indicating corresponding operations to be performed upon said document segments and to said document segment and data location information for providing corresponding document operation routines for controlling said corresponding document operations and for providing information identifying current state of operation of said system, said document operation routines comprising the sole routines for accessing and manipulating said document segments residing in said document memory means, supervisory control means responsive to operation of said system for providing supervisory control routines for controlling supervisory operations of said system, including keystroke processing means, including means for accepting and classifying keystroke inputs from said keyboard means, and state table means responsive to said state information and to operation of said classifying means for relating said state information and said keystroke classifications to corresponding said document operations and providing said corresponding document manipulation vectors, and stack means responsive to operation of said supervisory control means and said document manipulation means for storing information identifying state of execution of said document operation routines, including supervisory control stack means for storing type of routine information and said vectors of current and interrupted said document operation routines, and document operation stack means for storing certain of said interrupted document operation routines, and control interface means, including execution pointer means connected from said supervisory control means and said document manipulation means for providing said document manipulation vectors to said manipulation means and supevisory control vectors to said supervisory control means for selecting said supervisory control routines, and state storing means connected from said manipulation control means and said supervisory control means for providing said state information to said supervisory control means.
11. The document processing means of claim 10, wherein said document operation routines are selected and assembled from a predetermined library of routines.
12. In a document processing system including system memory means for storing and providing said documents and routines for controlling operation of said system, workstation means including memory and processor means for storing and operating upon said documents, keyboard means for entering document data and document manipulation commands and means for displaying said documents, and bus means for conducting said documents and routines between said system memory means and said workstation means, means for controlling operations of said system, comprising:
in said system memory means, bus control means responsive to operation of said system for controlling said conducting of said documents and routines between said system memory means and said workstation means, means responsive to operation of said bus control means for storing and providing to said workstation means supervisory routines for controlling supervisory operations of said workstation means, means responsive to operation of said bus control means for storing a master copy of each of said documents and providing currently active segments of said documents to be operated upon to said workstation means, and means responsive to operation of said bus control means for storing and providing to said workstation means currently active overlays of routines for operating upon said currently active document segments, in said workstation means, means for storing said currently active segments of a said document, document control means, including buffer means for conducting said document data between said document memory means and other portions of said system, said buffer means comprising the sole means for conducting said document data between said document memory means and said other portions of said system, document access means for storing and providing information identifying the locations in said document memory means of said currently active segments of said document currently being operated upon, document manipulation means, including means for storing said currently active overlays of said currently active document operation routines and responsive to document operation vectors indicating corresponding operations to be performed upon said document segments and to said document segment location information for providing corresponding ones of said currently active document operation routines for controlling said corresponding document operations, said document operation routines comprising the sole routines for accessing and manipulating said document segments residing in said document memory means, and workstation supervisory control means responsive to operation of said workstation means for storing a copy of said workstation supervisory control routines and providing said supervisory control routines for controlling operation of said workstation means, including means responsive to operation of said keyboard means for providing corresponding said document operation vectors.
13. The document processing system of claim 12, wherein said document operation vectors selected in response to said operation of said keyboard means are dependent upon the current state of operation of said system, said supervisory control means being further responsive to said current state of operation for providing said corresponding document operation vectors, and said document control means for providing said document operation routine further including means for providing information identifying said current state of operation of said system.
14. The document processing system of claim 13, further comprising:
control interface means, including execution pointer means connected from said supervisory control means for providing said document manipulation vectors to said manipulation control means, and state storing means connected from said manipulation control means for providing said state information to said supervisory control means.
15. The document processing means of claim 12, wherein said document access means further includes:
means for storing and providing information identifying the locations within said buffer means of said document data, said document manipulation means responsive to said buffer location information for controlling said conducting of said document data.
16. The document processing means of claim 12, wherein said document operation routines are selected and assembled from a predetermined library of routines.
17. The document processing system of claim 13, wherein said workstation supervisory control means for providing said document manipulation vectors further comprises:
means for accepting and classifying keystroke inputs from said keyboard means, and state table means responsive to said state information and to operation of said classifying means for relating said state information and said keystroke classifications to said corresponding document manipulation vectors and providing said corresponding document manipulation vectors to said execution pointer means.
18. The document processing system of claim 14, wherein said control interface execution pointer means is further connected from said said manipulation means, and is responsive to operation of said document manipulation means and said supervisory control means for providing supervisory control vectors from said document manipulation routines and said supervisory control means to said supervisory control means for selecting corresponding said supervisory control routines, and said state storing means is further connected from said supervisory control means, and is responsive to operation of said supervisory control means for receiving further said state information from said supervisory control means.
19. The document processing means of claim 13, wherein said supervisory control means further comprises:
stack means responsive to operation of said supervisory control means and said document manipulation means for storing information identifying state of execution of said currently active document operation routines.
20. The document processing means of claim 19, wherein said stack means further comprises:
supervisory control stack means for storing type of routine information and said vectors of current and interrupted said document operation routines, and document operation stack means for storing certain of said interrupted document operation routines.
CA000464489A 1983-10-03 1984-10-02 Control structure for a document processing system Expired CA1222325A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US538,726 1983-10-03
US06/538,726 US4633430A (en) 1983-10-03 1983-10-03 Control structure for a document processing system

Publications (1)

Publication Number Publication Date
CA1222325A true CA1222325A (en) 1987-05-26

Family

ID=24148161

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000464489A Expired CA1222325A (en) 1983-10-03 1984-10-02 Control structure for a document processing system

Country Status (6)

Country Link
US (1) US4633430A (en)
EP (1) EP0136711B1 (en)
JP (1) JP2537482B2 (en)
AU (1) AU575340B2 (en)
CA (1) CA1222325A (en)
DE (1) DE3484493D1 (en)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4959769A (en) * 1983-10-03 1990-09-25 Wang Laboratories, Inc. Structures and methods for representing and processing documents
US4731750A (en) * 1984-01-04 1988-03-15 International Business Machines Corporation Workstation resource sharing
US5173854A (en) * 1984-06-11 1992-12-22 Tandem Computers Incorporated Distributed text editing system with remote terminal transmits successive audit messages each identifying individual editing operation
US5089990A (en) * 1984-08-14 1992-02-18 Sharp Kabushiki Kaisha Word processor with column layout function
USRE36653E (en) * 1984-09-06 2000-04-11 Heckel; Paul C. Search/retrieval system
US4713754A (en) * 1984-10-09 1987-12-15 Wang Laboratories, Inc. Data structure for a document processing system
US4897780A (en) * 1984-10-09 1990-01-30 Wang Laboratories, Inc. Document manager system for allocating storage locations and generating corresponding control blocks for active documents in response to requests from active tasks
JPS61120275A (en) * 1984-11-16 1986-06-07 Toshiba Corp Japanese word processor
US5055998A (en) * 1984-12-10 1991-10-08 Wang Laboratories, Inc. Intermediate spreadsheet structure
DE3686682T2 (en) * 1985-05-30 1993-04-01 Ibm METHOD FOR CONTROLLING THE SEQUENCE OF EDITING CELLS IN AN ELECTRONIC CALCULATION SHEET.
US4710885A (en) * 1985-07-02 1987-12-01 International Business Machines Corp. Generating figures in a document formatter directly from a declarative tag
JPS6267670A (en) * 1985-09-20 1987-03-27 Toshiba Corp Document editing system
US4730252A (en) * 1985-09-24 1988-03-08 International Business Machines Corp. Document composition from parts inventory
JPS6286435A (en) * 1985-10-11 1987-04-20 Nec Corp Document processing tool start system
US4924434A (en) * 1985-10-15 1990-05-08 International Business Machines Corporation Sharing word-processing functions among multiple processors
US5133066A (en) * 1985-10-24 1992-07-21 International Business Machines Corporation Method for selecting multiple versions of data in a reduced record units text editing system
EP0225191B1 (en) * 1985-11-28 1991-12-11 Canon Kabushiki Kaisha Document processing system
US4974194A (en) * 1986-04-04 1990-11-27 International Business Machines Corporation Method for modifying intermingled text object and graphic object within an object set individually or correspondingly
JPH0776969B2 (en) * 1986-04-18 1995-08-16 株式会社東芝 Document processor
US4831526A (en) * 1986-04-22 1989-05-16 The Chubb Corporation Computerized insurance premium quote request and policy issuance system
US4901223A (en) * 1986-04-30 1990-02-13 International Business Machines Corporation Method and apparatus for application software control of echo response
US4780821A (en) * 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US5101494A (en) * 1986-09-26 1992-03-31 Bull Hn Information Systems Inc. System for producing memory maps by interpreting a descriptor file which identifies and describes the data structures present in memory
US4881197A (en) * 1987-02-13 1989-11-14 Addison Fischer Document composition system using named formats and named fonts
US4942541A (en) * 1988-01-22 1990-07-17 Oms, Inc. Patchification system
US5077658A (en) * 1987-10-19 1991-12-31 International Business Machines Corporation Data access system for a file access processor
JPH01237757A (en) * 1987-12-23 1989-09-22 Internatl Business Mach Corp <Ibm> Retrieval of document object in information processing system
US4949300A (en) * 1988-01-07 1990-08-14 International Business Machines Corporation Sharing word-processing functions among multiple processors
JPH01205260A (en) * 1988-02-12 1989-08-17 Toshiba Corp Document shaping device
US5210874A (en) * 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
JPH01248188A (en) * 1988-03-30 1989-10-03 Toshiba Corp Display attribute conversion controller
US5091849A (en) * 1988-10-24 1992-02-25 The Walt Disney Company Computer image production system utilizing first and second networks for separately transferring control information and digital image data
US5063495A (en) * 1988-12-21 1991-11-05 International Business Machines Corporation Method of associating document processing states with an action market
US5142678A (en) * 1988-12-21 1992-08-25 International Business Machines Corporation Method for a requesting user to use a marker to associate a document with an end user action
US5185698A (en) * 1989-02-24 1993-02-09 International Business Machines Corporation Technique for contracting element marks in a structured document
US5113341A (en) * 1989-02-24 1992-05-12 International Business Machines Corporation Technique for creating and expanding element marks in a structured document
US5140521A (en) * 1989-04-26 1992-08-18 International Business Machines Corporation Method for deleting a marked portion of a structured document
US5079700A (en) * 1989-04-26 1992-01-07 International Business Machines Corporation Method for copying a marked portion of a structured document
US5339423A (en) * 1989-06-16 1994-08-16 International Business Machines Corporation System for accessing objects external to an application using tables containing path definitions
US5175810A (en) * 1989-06-19 1992-12-29 Digital Equipment Corporation Tabular data format
US5799320A (en) 1989-08-23 1998-08-25 John R. Klug Remote multiple-user editing system and method
US5317733A (en) * 1990-01-26 1994-05-31 Cisgem Technologies, Inc. Office automation system for data base management and forms generation
US5579519A (en) * 1990-03-05 1996-11-26 Interleaf, Inc. Extensible electronic document processing system for creating new classes of active documents
DE69031491T2 (en) * 1990-04-10 1998-03-26 Ibm Hypertext data processing system and method
CA2036859C (en) * 1990-04-30 1994-04-05 Eric M. Hesse System and method for editing a structured document to modify emphasis characteristics
US5276793A (en) * 1990-05-14 1994-01-04 International Business Machines Corporation System and method for editing a structured document to preserve the intended appearance of document elements
JPH04116746A (en) * 1990-09-06 1992-04-17 Sharp Corp Communication processor
US5434962A (en) * 1990-09-07 1995-07-18 Fuji Xerox Co., Ltd. Method and system for automatically generating logical structures of electronic documents
US5359729A (en) * 1991-05-31 1994-10-25 Timeline, Inc. Method for searching for a given point in regions defined by attribute ranges, then sorted by lower and upper range values and dimension
JP2939050B2 (en) * 1992-05-26 1999-08-25 シャープ株式会社 Data communication device
JP3210102B2 (en) * 1992-11-17 2001-09-17 松下電器産業株式会社 Electronic document filing apparatus and filing document search method
US7249026B1 (en) 1993-03-24 2007-07-24 Engate Llc Attorney terminal having outline preparation capabilities for managing trial proceedings
US5369704A (en) 1993-03-24 1994-11-29 Engate Incorporated Down-line transcription system for manipulating real-time testimony
US7631343B1 (en) 1993-03-24 2009-12-08 Endgate LLC Down-line transcription system using automatic tracking and revenue collection
US5444615A (en) * 1993-03-24 1995-08-22 Engate Incorporated Attorney terminal having outline preparation capabilities for managing trial proceeding
US5365434A (en) * 1993-06-04 1994-11-15 Carolyn E. Carlson Book enhancer
JPH0744535A (en) * 1993-07-27 1995-02-14 Matsushita Electric Ind Co Ltd Document processing device
JPH0816669A (en) * 1994-06-27 1996-01-19 Fujitsu Ltd Information processor provided with slip editing function
US5583563A (en) * 1995-01-12 1996-12-10 Us West Marketing Resources Group, Inc. Method and system for delivering an application in an interactive television network
US5961588A (en) * 1996-02-22 1999-10-05 Alcatel Usa Sourcing, L.P. Handling of commands passed between the server and client stations of a telecommunications system
US6092088A (en) * 1996-09-20 2000-07-18 Canon Kabushiki Kaisha Method for controlling document processing apparatus connected to network
US5956687A (en) * 1997-04-04 1999-09-21 Wamsley; Vaughn A. Personal injury claim management system
US6014681A (en) * 1997-07-15 2000-01-11 Microsoft Corporation Method for saving a document using a background save thread
US6185681B1 (en) 1998-05-07 2001-02-06 Stephen Zizzi Method of transparent encryption and decryption for an electronic document management system
EP1242960A1 (en) * 1999-05-11 2002-09-25 Clicknsettle.Com, Inc. System and method for providing complete non-judicial dispute resolution management and operation
US6766307B1 (en) * 1999-05-11 2004-07-20 Clicknsettle.Com, Inc. System and method for providing complete non-judicial dispute resolution management and operation
US7107278B1 (en) 1999-05-11 2006-09-12 Cd-Lit Solutions, Llc System and method for managing observational information items
US7797730B2 (en) 1999-06-24 2010-09-14 Engate Llc Downline transcription system using automatic tracking and revenue collection
US20030115269A1 (en) * 2001-12-14 2003-06-19 Klug John R. Computer file editing system
US7254588B2 (en) * 2004-04-26 2007-08-07 Taiwan Semiconductor Manufacturing Company, Ltd. Document management and access control by document's attributes for document query system
US8621549B2 (en) 2005-12-29 2013-12-31 Nextlabs, Inc. Enforcing control policies in an information management system
US9942271B2 (en) 2005-12-29 2018-04-10 Nextlabs, Inc. Information management system with two or more interactive enforcement points
US7877781B2 (en) * 2005-12-29 2011-01-25 Nextlabs, Inc. Enforcing universal access control in an information management system
US8627490B2 (en) * 2005-12-29 2014-01-07 Nextlabs, Inc. Enforcing document control in an information management system
US9063932B2 (en) 2009-12-18 2015-06-23 Vertafore, Inc. Apparatus, method and article to manage electronic or digital documents in a networked environment
US8700682B2 (en) 2009-12-24 2014-04-15 Vertafore, Inc. Systems, methods and articles for template based generation of markup documents to access back office systems
US9043296B2 (en) 2010-07-30 2015-05-26 Microsoft Technology Licensing, Llc System of providing suggestions based on accessible and contextual information
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
US9304672B2 (en) 2010-12-17 2016-04-05 Microsoft Technology Licensing, Llc Representation of an interactive document as a graph of entities
US9024952B2 (en) 2010-12-17 2015-05-05 Microsoft Technology Licensing, Inc. Discovering and configuring representations of data via an insight taxonomy
US9864966B2 (en) 2010-12-17 2018-01-09 Microsoft Technology Licensing, Llc Data mining in a business intelligence document
US9111238B2 (en) 2010-12-17 2015-08-18 Microsoft Technology Licensing, Llc Data feed having customizable analytic and visual behavior
US9069557B2 (en) 2010-12-17 2015-06-30 Microsoft Technology Licensing, LLP Business intelligence document
US9110957B2 (en) 2010-12-17 2015-08-18 Microsoft Technology Licensing, Llc Data mining in a business intelligence document
US9171272B2 (en) 2010-12-17 2015-10-27 Microsoft Technology Licensing, LLP Automated generation of analytic and visual behavior
US9336184B2 (en) 2010-12-17 2016-05-10 Microsoft Technology Licensing, Llc Representation of an interactive document as a graph of entities
US9104992B2 (en) 2010-12-17 2015-08-11 Microsoft Technology Licensing, Llc Business application publication
US8731973B2 (en) 2011-04-19 2014-05-20 Vertafore, Inc. Overlaying images in automated insurance policy form generation
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation
US10664183B1 (en) 2016-07-25 2020-05-26 Oracle International Corporation Method and apparatus for storing memory attributes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4145739A (en) * 1977-06-20 1979-03-20 Wang Laboratories, Inc. Distributed data processing system
US4463417A (en) * 1980-12-29 1984-07-31 International Business Machines Corporation Modular, processor-controlled document distribution terminal
DE3174925D1 (en) * 1981-04-08 1986-08-21 Ibm Text processing apparatus with two-stage formatting of text
US4454576A (en) * 1981-05-18 1984-06-12 International Business Machines Corporation Report preparation
US4458311A (en) * 1981-10-09 1984-07-03 International Business Machines Corporation Text processor having an interactive display terminal which alternately functions as a data processing terminal
US4480308A (en) * 1982-11-09 1984-10-30 International Business Machines Corporation Text processing system with communication data save facility
US4509122A (en) * 1982-11-18 1985-04-02 International Business Machines Corporation Method for controlling the file transfer capability of an interactive text processing system that is emulating a host processing system terminal
US4503516A (en) * 1982-11-18 1985-03-05 International Business Machines Corporation Methodology for transforming a first editable document form prepared by an interactive text processing system to a second editable document form usable by an interactive or batch text processing system
US4996662A (en) * 1983-10-03 1991-02-26 Wang Laboratories, Inc. Method for generating document using tables storing pointers and indexes

Also Published As

Publication number Publication date
AU575340B2 (en) 1988-07-28
AU3231584A (en) 1985-04-18
DE3484493D1 (en) 1991-05-29
EP0136711B1 (en) 1991-04-24
JPS6095679A (en) 1985-05-29
US4633430A (en) 1986-12-30
JP2537482B2 (en) 1996-09-25
EP0136711A3 (en) 1988-10-05
EP0136711A2 (en) 1985-04-10

Similar Documents

Publication Publication Date Title
CA1222325A (en) Control structure for a document processing system
US4996662A (en) Method for generating document using tables storing pointers and indexes
US4959769A (en) Structures and methods for representing and processing documents
US4513391A (en) Text processing apparatus with two-stage formatting of text
CA1309187C (en) Sharing word-processing functions among multiple processors
US4454576A (en) Report preparation
US4970678A (en) System for providing context-sensitive on-line documentation in a data processor
JP3489119B2 (en) Document processing device
WO1991008538A1 (en) Document management and production system
JP3083314B2 (en) Document processing method and apparatus
US5133066A (en) Method for selecting multiple versions of data in a reduced record units text editing system
US4924434A (en) Sharing word-processing functions among multiple processors
EP0444669A2 (en) System for managing cooperative preparation of a document by a plurality of partakers
JP2593548B2 (en) Data processing device
JPS6365988B2 (en)
JPH03210668A (en) Processor for electronic manual having hierarchical form
JPS62271048A (en) Index output device
JPH01169672A (en) Character processor
JPH0346831B2 (en)
JPH03288961A (en) Document data processor
Rogers Monographs in visual communication
Acock Computer Software Review. WordPerfect for the Macintosh
Wagner Manual for Using the cnbwp Class to Write CNB Working Papers
JPH03172962A (en) Diagram arranging method
JPS6242229A (en) Retrieving device

Legal Events

Date Code Title Description
MKEX Expiry