home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
educ
/
classify.zip
/
OUTLINE.DOC
< prev
next >
Wrap
Text File
|
1986-11-17
|
52KB
|
1,129 lines
DESCRIPTION OF CLASSICAL CLASSIFIER
AN OUTLINE PROCESSOR
by David E. Toliver
1 November 1986
OUTLINE.DOC
1. Overview of the Package
1.1. What is an Outline Processor?
An outline processor is a computer program that simplifies
the development of outlines and other structured notes. It
shares many features with word processors, but both genres have
their distinctive capabilities. While word processors are tools
for the entry and development of complete formatted texts,
outline processors are tools for evolving a well-organized and
comprehensive structure for a document.
This document describes CLASSIFIER, an outline processing
program developed by David E. Toliver for his own personal
enjoyment and that of his friends. All rights are reserved
worldwide.
1.2. The Programs and Files
CLASSIFIER is delivered with five files, three of which are
programs. These files are:
OUTLINE.COM -- the outline processor program
OUTLINE.000 -- the overlay routines of OUTLINE.COM
OUTINST.COM -- the installation / customizaton program
OUTLINE.DAT -- user-defined command values and data
OUTLINE.HLP -- context-sensitive on-screen prompts
The OUTLINE.COM program is used to develop outlines. It is
called by entering "OUTLINE" at the command prompt. Most of the
remainder of this document describes the features and
capabilities of this program. OUTLINE.000 contains separately
loaded routines (overlays) of the OUTLINE.COM program.
The OUTINST.COM program allows the user to define all the
command keystrokes, default values, and help messages used in the
OUTLINE.COM program. You can use command keystrokes you have
used with other packages or take advantage of convenient function
keys that may be found on your microcomputer.
The OUTLINE.DAT data file stores the command keystrokes and
default vales defined by OUTINST.COM. This data file is read by
OUTLINE.COM as part of its start-up activity. OUTLINE.COM will
then recognize and act upon the defined values.
The OUTLINE.HLP data file contains user-defined on-screen
helps. These helps appear when lead-in keystrokes of commands
have been completed. The prompts will guide you in the selection
and construction of the various command sequences.
1.3. Operating Environments
The CLASSIFIER package was written in TurboPascal. The code
was developed and tested on a Kaypro II under the CP/M-80
operating system and is available in this version. The code has
also been successfully moved to and used on an IBM-PC, a Tandy
1200, a DEC Rainbow, and a Wang PC, all running under the MS-DOS
operating system. CLASSIFIER is thus available for these
machines.
-----------------------------------------------------------------
2. What can it be used for?
What can an outline processor, and CLASSIFIER in particular,
do for you? The following is a short outline of possible
applications.
2.1. Idea Manager
2.1.1. Scratch Pad
2.1.2. Design Tool
2.2. Activity Planner
2.2.1. Appointments Schedule
2.2.2. Things-to-do lists
2.3. Document Planner
2.3.1. Table of Contents
2.3.2. Thought Organizer
2.4. Classification Tool
2.4.1. Cataloging
2.4.2. Inventory
2.5. Program development Tool
2.5.1. Structured Languages
2.5.2. System Documentation
2.5.3. Pascal
2.5.4. "C"
In general, CLASSIFIER can be useful whenever you are
organizing ideas or concepts into a formal structure. CLASSIFIER
lends itself uniquely to classification tasks, with its built-in
decimal and classical labelling notation that automatically
adjusts to changes in the structure. It also is an ideal source-
code development tool for structured languages, including the
popular Pascal and "C" programming languages, since the labels
can be turned of completely.
-----------------------------------------------------------------
3. General Features of CLASSIFIER
3.1. General Outline Processing Features
CLASSIFIER shares a number of features in common with other
outline processsors. These include the following:
3.1.1. Hiding details. Detailed information in the structure
can be hidden or revealed as required, under command control. At
any given time, a maximum level (known as the "depth") is in
effect. Only entries at this level and above are shown on the
screen, when they scroll into view.
3.1.2. Levels and labels. In a CLASSIFIER outline, level can
be counted as the number of periods (.) in the decimal label. For
instance, the entry numbered 7.4.1 is at a level 3. A classical
label also indicates level by its form. For example, an entry
labelled with a lower-case Roman letter is at level 4.
3.1.3. ASCII text output files. The outlines themselves are
stored on disk as standard ASCII text files. These can
subsequently be printed, used with other word processors, sent
through a modem, or otherwise handled as you would any other text
file.
3.1.4. Shifting structures and blocks. Entire substructures
and blocks of contiguous structures can be moved freely through
your workspace and on the screen as you develop your outline.
Lines, structures, and blocks can be shifted up and down levels
of your outline as your conceptual needs require.
3.2. Unique Features of CLASSIFIER
3.2.1. Decimalized and classical labels. A decimal or
classical label reflecting the structure of the outline being
developed adjusts itself automatically to all changes. The label
reflects the level of each entry in the outline. Labelled
outline document development can be selected at the beginning of
the program or at any time by a command while editing a file.
3.2.2. Structured text without labels. A whole outline or
parts of an outline can have their labels suppressed. If this is
to apply consistently to the whole outline, it is called a
structured text file. A structured text file may be selected at
the beginning of the program or by a command during the editing
of an outline.
Within an outline, individual lines may have their label
suppressed. Such lines are called continuation lines. They are
often used with outline entries that require more characters than
the number of characters across the screen. Any number of
continuation lines, formed into any number of paragraphs, can be
part of a labelled outline.
3.2.3. Half-screen showing path from root. The whole
document context can be continually kept in view by selecting
this option under command control. The top half of the screen
presents the first line of every entry that is a direct
antecedent of the top line of the working outline. The latter is
found in the bottom half of the screen. This feature can be
turned on and off as needed, by a command.
3.3. General Text-Editing Features
3.3.1. Full screen and file navigation. Most standard
cursor- and page-control capabilities are found in CLASSIFIER.
These allow the use of the cursor keys and other control keys to
move about the screen and to bring in other parts of the working
document.
3.3.2. Search and Replace. Strings can be located anywhere
in the document. These can be optionally replaced with another
string. The last search or replace can be done again with a
single keystroke.
3.3.3. Delete. Characters, words, lines, and blocks can all
be deleted under command control. The last deleted structure can
always be recovered by an "undelete" command.
3.3.4. Reforming paragraphs. Outline entries longer than a
single line can be reformed so that they fit nicely on the screen
and in the file as a paragraph. This starts with the line on
which the cursor is found and includes any continuation lines
that follow it, up to the first blank line.
3.3.5. Defining margins. The margin of the continuation
line can be defined to be either directly below the text of the
initial line of the paragraph or flush left on the screen and in
the file. The bottom row and the rightmost column of the document
can also be defined, allowing the process to fit nicely into a
window of any dimensions.
3.3.6. Blocking functions. Lines can be marked off as
blocks, which then can be moved, copied, or deleted. Because the
file is structured, blocks must begin and end with siblings.
3.3.7. Print options. Both text and outline documents can be
printed from within the program. There are options to define the
number of lines per page; the left, top, and bottom margin; the
number of copies; and the number of lines to skip for draft copy.
3.3.8. Filing options. The document can be abandoned or
saved, with control returning to either the edit session, the
outline processor, or to the operating system. A block or a
structure may be written from within an edit session. An external
file may be read into another file being edited.
-----------------------------------------------------------------
4. Specialized Terminology
4.1. Root
The first line of the file represents the root of the
document structure. The root and its continuation lines make up
level 0 in the hierarchy. The last level 0 line is the parent of
all level-1 lines, the first ones labelled. In a labelled
outline, no label is assigned to the root; the letter 'T' (for
Title) is always posted in the first column of the root line.
4.2. Node / Line / Entry
Each line of the document, whether on file or in memory
during processing, is a node of the outline's hierarchy. Each
line is related in various ways to other lines near it and
throughout the file. A node is the basic entry from the point of
view of the structured hierarchy; a line is the same basic entry
from the point of view of the screen presentation. The term
"entry" is applied to this basic object when both perspectives
are being discussed.
4.3. Level / Depth
Each entry is at some level between 0 and 9. The root and
its continuation lines are the only lines at level 0. The level
of a line is reflected by the label at the beginning of the line.
The depth of an outline is the last level displayed before the
entries are hidden from view.
4.4. Parents / Sons
Each line relates to other lines in the document. The line
conceptually above a line (one level up) in the hierarchy is
known as its parent. All lines directly below a line in the
hierarchy are known as its sons.
4.5. Siblings / Antecedents / Descendents
All lines at the same level in the hierarchy and that have
the same parent are known as the line's siblings. All lines
conceptually above a line, from its parent to the root, are known
as its antecedents. All sons, their sons, etc., are known
together as the line's descendents.
4.6. Structure
A line, together with all its descendents, is known as a
structure. In CLASSIFIER, certain operations can be applied to an
entire structure. These include shifting it up or down a level,
deleting it, recalling it, writing it out, etc.
4.7. Block
A stucture or group of contiguous sibling structures can be
marked as a block. All descendents are within the block. The
block can be copied, moved, shifted, deleted or written out under
command control. A block is said to be well-formed if the line
marked as the beginning precedes a sibling line marked as the
end. A single line may be both the beginning and end of the
block.
The block is indicated in the left margin of the screen by
the letter 'B' for the beginning of the block, a set of colons
for internal lines of the block, and the letter 'E' for the end
of the block. If available, a well-formed block is highlighted.
If the block is not well-formed, only the beginning and ending
lines are marked by lower-case 'b' and 'e.'
4.8. Continuation Line
Nodes in a labelled outline need not be numbered. Such
nodes can be created in one of three ways: (1) by typing so many
characters on a line that it wraps to the next line, (2) by a
command that explicitly turns the label off, and (3) by a command
that introduces a blank continuation line at the end of a
continuation group.
The introduction of a blank line following a node has two
effects. First, it improves the visual presentation of the
outline by allowing the user to easily distinguish major groups.
Second, it allows intervening lines to be entered as a a
continuation group, even with carriage returns terminating the
lines. Without a continuation line following, a carriage return
will cause a new labelled line to appear in an outline document.
4.9. Continuation Group
A node and all continuation lines immediately following the
node are known as a continuation group. This can also be viewed
as a paragraph within the outline, since lines without labels are
naturally viewed as a continuation of the last line that was
labelled.
-----------------------------------------------------------------
5. Operation of the Package
5.1. Initial Screen Options
CLASSIFIER is called from the system prompt of the micro-
computer's operating system by simply entering "OUTLINE" followed
by a Carriage Return. The first screen allows the user to
specify if an Outline file or a structured Text file is going to
be worked on or if either type of file is to be printed.
To edit a labelled outline file, enter a file name. To edit
a text file, enter a space (or Control-T) and then a file name.
If you enter a name that is not the name of any file on the disk,
a file by that name will be created. If you enter the name of a
file that is on disk, it will be loaded as the type of file
indicated. To print a file, enter two spaces (or Control-P) and
then a file name.
The top line of the edit screen is the status line. It is
normally present with the following information: Current depth,
file name, type of file, mode, and remaining memory. All lines
down to and including the current depth will be shown on the
screen. The file name is the name of the specified document of
either the text or outline type.
Mode is either Insert or Change. In Insert mode, characters
are inserted into the text and existing characters are shifted
and retained; in Change mode, characters typed at the keyboard
replace those under the cursor. All editing is done is a memory
buffer. Remaining memory is reported in bytes for CP/M systems
and in paragraphs (16-byte units) for MS-DOS systems. The
percentage of total memory remaining is also given.
The first two columns of the screen are reserved to present
information to the user. The second column will contain a '+' if
there are entries below the current line that are hidden from
view, i.e., if the current line is at the current depth, and it
has descendents not being displayed. The second column will
contain a 'c' if continuation lines are hidden from view.
A 'T' in the first column indicates that the line is the
Title or Root. A 'B' indicates the beginning of a well-formed
block. A 'b' indicates the block-begin line, although the block
itself is not well-formed. An 'E' indicates the end of a well-
formed block. An 'e' indicates the block-end line, although the
block itself is not well-formed. A colon, ':', indicates lines
contained within the block. A 'V' indicates that the lines are
part of the Root-to-Node path display.
5.2. Line labels
Line labels are found only in Outline files, not in
structured Text files. The type of file can be specified in the
initial screen and can be changed to the other at any time during
an editing session by a toggle command. The line labels indicate
the level of the node. The decimal form also gives the ordinal
position among siblings of the current line and all its
antecedents.
When editing a Text file, the symbol '>' appears wherever a
label would appear in the same document, if it were changed into
an Outline file. The symbols makes it easy to identify
continuation lines in Text files; no continuation line begins
with '>'. The symbol is only for display purposes and is never
written into the text file on disk.
5.3. Depth / Level
At the beginning of any edit session, the default depth of
displayed lines may have been set to any value between 1 and 9.
This value can be changed during the edit session. It is also
possible to increment and decrement the depth one level at a
time.
The depth is automatically adjusted in at least two
instances. First, when a view is requested in which either the
current line or its parent is placed on the top edit line, the
depth is changed to that of the sons of the new top line.
Second, if there is a command to shift a line or structure down
one level and this new level is deeper than the current depth,
the current depth is incremented so that the shifted structure
can still be seen on the screen.
If continuation lines are hidden, they can be explicitly
restored with a toggle command. A selection of other commands
have the effect of automatically restoring continuation lines to
view. These are the commands which create continuation lines, for
example, Reformat.
5.4. Modes
Mode is either Insert or Change. In Insert mode, characters
are inserted into the text and existing characters are moved to
the right and retained. In Change mode, characters typed at the
keyboard replace those under the cursor. No command are affected
by mode.
-----------------------------------------------------------------
6. Detailed Description of Functions
There are 68 distinct commands (as of 12/6/85). The actual
keystrokes that make up each of these commands may be defined by
you as you see fit. These commands are specified under the
installation utility, OUTINST, described in Section 7.
There are two reasons for allowing commands to be completely
user-defined. First, you may want to define CLASSIFIER functions
to be the same as similar functions in other packages with which
you are familiar. Second, you may want to take advantage of pre-
defined function keys on your microcomputer. In the following
sections, the functions are designated only by name. To define,
review, or print the actual keystrokes that make up the function,
run the OUTINST utility.
Any of these commands may be used at any time you are
editing text. Depending on mode, ordinary characters are
inserted into or change the characters on the screen or in the
file. The commands, on the other hand, take actions on the text.
The command may consist of one or more keystrokes.
If you begin a sequence of command keystrokes and decide not
to complete it, you can cancel the command with the Space Bar.
Any invalid keystoke during a sequence will have the same effect
of canceling the command.
6.1. Control Cursor Options
These commands are very much like their counterparts in
conventional word processors. They are responsible for moving
the cursor.
6.1.1. Cursor left. This command moves the cursor one
position to the left. It will move from the beginning of one
line to the end of the previous. The screen will scroll down, if
ncessary. The cursor will not move beyond the beginning of the
file, the root line.
6.1.2. Cursor right. This command moves the cursor one
position to the right. It will move from the end of one line to
the beginning of the next. The screen will scroll up, if
necessary. The cursor will not move beyond the end of the file.
6.1.3. Cursor down. This command moves the cursor down one
line. If the line to which it moves is shorter than the position
the cursor occupied in its previous line, the cursor moves to the
end of the new line. The screen will be scrolled up, if
necessary. The cursor will not move beyond the end of the file.
6.1.4. Cursor up. This command moves the cursor up one line.
If the line to which it moves is shorter than the position the
cursor occuped in its previous line, the cursor moves to the end
of the new line. The screen will be scrolled down, if necessary.
The cursor will not move beyond the beginning of the file, the
root line.
6.1.5. Skip Word right. This command moves the cursor one
word to the right. It will move from the end of one line to the
beginning of the next. The screen will scroll up, if necessary.
The cursor will not move beyond the end of the file.
6.1.6. Skip Word left. This command moves the cursor one
word to the left. It will move from the beginning of one line to
the end of the previous line. The screen will scroll down, if
necessary. The cursor will not move beyond the beginning of the
file.
6.1.7. Left side of line. This command moves the cursor to
the extreme left side of the textual part of the current line.
This will be one space to the right of the label (outline files)
or next to the '>' mark (text files). If the current line is a
continuation line, the command moves the cursor to the left-most
position currently in effect.
6.1.8. Right side of line. This command moves the cursor to
the extreme right side of the textual part of the current line.
This is either the end of the line, if the whole line fits on the
screen, or the last edit column, if the line is too long for the
screen.
6.1.9. Top of page. The command moves the cursor to the top
left-hand corner of the textual part of the first line of the
current screen.
6.1.10. Bottom of page. This command moves the cursor to
the bottom line of the current display screen. If possible, it
will retain its current column position.
6.2. Control Screen Options
These commands are very much like their word processing
counterparts. They shift the document's position on the screen
either up or down.
6.2.1. Scroll page up. This command moves the document up
one line on the screen. The cursor remains in its current
position, except when the cursor is on the first line and the
command is invoked. In this case, the cursor will relocate to
the new first line.
6.2.2. Scroll page down. This command moves the document
down one line on the screen. The cursor remains in its current
position, except when the cursor in on the last line and the
command is invoked. In this case, the cursor will relocate to
the new last line.
6.2.3. Previous page. This command calls in the previous
page of text. If there is none, no action is performed.
6.2.4. Next page. This command calls in the next page of
text. If there is none, no action is performed.
6.2.5. Top of file. This command calls in the very first
page of text. The top line of the edit screen will be the root.
6.2.6. Bottom of file. This command calls in the very last
page of text.
6.3. Make Entries Options
These commands include the basic mechanisms for adding
entries to a document. For labelled outlines, this set of
commands provides for the definition of sibling and descendent
structures.
6.3.1. Add new line below current line. If you are working
on a labelled outline, this command adds a new labelled entry
below the current entry, except when a continuation line follows.
If the current entry already has descendents, the new entry will
become the first son. Otherwise, the new entry is the next
sibling.
6.3.2. Add new line at current line. The entry on the
current line is moved down one line. A new entry is created on
the current line. If you are working on a labelled outline, this
command adds a new labelled entry on the current line. Otherwise,
a blank line is created on the current line.
6.3.3. Split line at cursor. The data on the current line
will be split at the cursor into two lines. Normally, a Carriage
Return is used to perform this function, although any keystroke
can be selected when commands are installed. If the current line
has descendents, the entry consisting of text to the right of the
cursor becomes the new first son. Otherwise, the text becomes
the next sibling. The new line will be a continuation line if a
continuation line follows.
6.3.4. Add blank line after current group. A single blank
continuation line can be added to the end of a group of
continuation lines, using this command. This is useful for
improving the appearance of the outline. It also serves as a
marker that allows multiple continuation groups to be entered
without any intervening numbered lines. The reform function will
not go beyond a blank line.
6.3.5. Shift structure down a level. The whole structure
descending from the current line will be shifted down one level,
if this is logically possible. This is not possible for any line
that relates to its father as a first son, since this would
introduce a gap between the generations.
6.3.6. Shift line down a level. Only the entry on the
current line will be shifted down one level, if this is logically
possible. Again, this is not possible for any line that relates
to its father as a first son. Continuation lines may not be
shifted.
6.3.7. Shift structure up a level. The whole structure
descending from the current line will be shifted up one level, if
this is logically possible. If the current line is at level 0
or at level 1 with siblings preceding it, this is not possible.
6.3.8. Shift line up a level. Only the entry on the current
line will be shifted up one level, if this is logically possible.
Again, if the current line is at level 0 or at level 1 with
siblings preceding it, this is not possible. Continuation lines
may not be shifted.
6.4. Toggle Condition Options
6.4.1. Toggle outline / text. A labelled outline file can
be converted into a structured text file and vice versa, by using
this command. All line labels are removed when an outline is
changed into a text file. Line labels are introduced on all but
continuation lines and the root, when a text file is converted
into an outline file.
6.4.2. Toggle continuation margin. The left margin of
continuation lines can be shifted from the leftmost column to a
position indented below the label, and vice versa, by using this
command.
6.4.3. Toggle labelled / continuation line. The current
line can be switched between labelled and continuation by using
this command. The label is added and stripped off alternately
with this command. The first son cannot be converted into a
continuation line as long as the entry remains the first son.
6.4.4. Toggle help prompts. This command allows you to turn
the context-sensitive help lines on or off. By turning these
lines off, you gain three more lines for editing.
6.4.5. Toggle insert / change mode. Editing begins by
default in insert mode. That is, every character typed is added
to the document; the character under the cursor is pushed to the
right. In change mode, characters typed replace characters under
the cursor. This command allows you to switch at any time
between the two modes.
6.4.6. Toggle classical / decimal labels. The labels on an
outline document are changed from a decimalized form to a
classical form or vice versa. This command has no effect on an
unlabelled text document. Classical labels, from highest to
lowest level are (with examples):
I. upper-case Roman numerals
A. upper-case Roman letters
1. Arabic nunerals
a. lower-case Roman letters
i. lower-case Roman numerals
(A) parenthesized upper-case Roman letters
(1) parenthesized Arabic numerals
(a) parenthesized lower-case Roman letters
(i) paren'd lower-case Roman numerals
6.5 Format Screen Options
Various factors can be specified during an edit session to
determine the size and shape of your screen, and the introduction
of spaces into your text. The default values for all of these
options is set before editing by using OUTINST.
6.5.1. Specify rightmost edit column. This command allows
you to define the last column in which data that can be edited is
displayed. It must be at least one less than the currently
defined rightmost screen column. This command allow you to
"shape" your edit window on the right side.
6.5.2. Specify rightmost screen column. This command allows
you to define the column in which the '+' mark is posted when
the line has undisplayed data to the right. The value specified
must be at least one more than the currently defined rightmost
edit column.
6.5.3. Specify last edit row. This command allows you to
define the last row for the display of data that can be edited.
The maximum number of lines is 25. It allows you to "shape" your
edit window at the bottom. Also, you can use it to retain in view
one part of a document while you edit another part of the same
document elsewhere. Use this command very carefully as the
results are undefined if the value exceeds the actual number of
rows on the screen. Such use may cause peculiar behavior or even
program failure.
6.5.4. Specify TAB position factor. The TAB key can be
defined to move the cursor to every consecutive multiple of some
small number. A value of 5 or 8 is often used, although any
value in the range of 1 to 15 may be defined for this purpose.
6.5.5. Specify spaces to indent per level. You will be
prompted to enter the number of spaces of indentation for each
level of an entry. The change will be reflected both on the
screen and in the written file.
6.6 Hide Information Options
6.6.1. Show node's parent at screen top. The parent of the
current entry is presented at the top of the screen, followed by
its immediate descendents (sons). The depth for editing is set
to the level of the current node.
6.6.2. Show node at top of screen. The current node is
presented at the top of the screen, followed by its immediate
descendents. The depth for editing is set to the level of the
current node plus 1.
6.6.3. Increment depth displayed. One level is added to the
current depth of display, up to the maximum depth of 9.
6.6.4. Decrement depth displayed. One level is deleted from
the current depth of display, down to the minimum depth of 1.
6.6.5. Specify depth displayed. You will be prompted for
the depth of display, a value between 1 and 9. Enter a number in
this range. Only entries down to the level specified will apear
on the edit screen.
6.6.6. Hide / show continuation line. Continuation lines can
be removed from and restored to view during an edit session. This
can give a more compact view of the document. Certain other
operations will automatically restore continuation lines if they
had been switched off. These operations include word-wrapping in
"Add text" and "Reformat.", since these operations must generate
continuation lines.
6.7. Miscellaneous Options
6.7.1. Find text phrase. After entering this command, you
will be prompted for the phrase. A search will be done of the
entire document for the phrase, down to all lines at the depth
currently in effect. If it is not found, the computer will beep.
A Carriage Return will escape from the prompt for a phrase back
to the edit session.
6.7.2. Find and replace phrase. After entering this
command, you will be promted for two phrases in turn. A search
will be done of the entire document for the first phrase. If it
is found, the second phrase will be substituted for it. If it is
not found, the computer will beep. A Carriage Return will escape
from the first prompt for a phrase and return you to the edit
session.
6.7.3. Find or replace next. This command allows you to
repeat the last find or replace operation. The operation may be
repeated by the user until no more search phrases are located in
the document.
6.7.4. Show path from root to node. With this toggle
command, the edit screen is split in half. (If the edit screen
is already a half screen, this command will restore the full
screen to editing.) All editing is now done in the bottom half.
In the top half is presented all the antecedents of the top line
of the edit screen.
6.7.5. Reform entry. All data in a group of continuation
lines are reorganized so that each line is made up of as many
complete words as will fit on a line. The group in this context
is considered to end with the first labelled line or the first
completely blank continuation line. Lines are broken at either a
space or a hyphen. All multiple contiguous spaces are reduced to
a single space. The cursor is placed at the end of the group.
6.8 Delete function options
6.8.1. Delete character at cursor. The character under the
cursor will be deleted. If you are at the right end of a line and
there are no characters further to the right, the next line will
be appended to the current line.
6.8.2. Delete character to the left. The character to the
left of the cursor will be deleted. If you are at the left end of
a line, the current line will be appended to the end of the
previous line.
6.8.3. Delete word to the right. The word to the right of
the cursor will be deleted. If you are at the right end of a line
and there are no characters further to the right, the next line
will be appended to the current line.
6.8.4. Delete text on current line. The entire text of the
current line will be deleted. The line will remain with any
label that may be currently attached to it.
6.8.5. Delete current structure. The structure beginning
with the current line will be deleted. Since even a line with no
descendents is a structure, this is a good way of deleting an
entire line, including its label. This command should be used
carefully, since all descendents are also deleted.
6.8.6. Recall last deleted structure. If you accidentally
delete a line, structure, or block, it can be restored with the
use of this function. Only the last deleted structure is buffered
in this way. You can also use this capability to propagate a
structure throughout the file by deleting it and then recalling
it repeatedly.
6.9. Blocking Function Options
6.9.1. Mark beginning of block. Use this command to mark the
beginning of a block, that is, a group of adjacent structures
that all begin at the same level. If the block is well-formed, a
'B' appears in the leftmost column against the entry so marked,
and the remainder of the structures in the block are indicated by
a ':' in the leftmost column. If the block is not well-formed, a
'b' appears against the entry.
6.9.2. Mark end of block. Use this command to mark the end
of a block. If the block is well-formed, an 'E' appears in the
leftmost column against the entry, and the remainder of the
structures in the block are indicated by a ':' in the leftmost
column. If the block is not well-formed, an 'e' appears against
the entry.
6.9.3. Copy block. This command works only if the block is
well-formed. If the block is well-formed, a copy of the block is
transferred to the location indicated by the cursor. The block
marks move with the transferred copy.
6.9.4. Move block. This command works only if the block is
well-formed. If the block is well-formed, the block is
transferred from its previous location to the location indicated
by the cursor. The block is effectively deleted from the old
location. The block marks move with the transferred block.
6.9.5. Delete block. This command works only if the block
is well-formed. If the block is well-formed, the block is
deleted from the workspace. If accidentally deleted, it can be
immediately recalled with the recall last deleted structure
command.
6.9.6. Shift block down a level. This command causes every
structure in a well-formed block to be moved down a level in the
hierarchy of the outline, if this is possible.
6.9.7. Shift block up a level. This command causes every
structure in a well-formed block to be moved up a level in the
hierarchy of the outline, if this is possible.
6.10. Filing Function Options
These options allow you to save or to discard your edit
session, save a structure or block to another file, and read an
external file into the edit session.
6.10.1. Save file / return to CLASSIFIER. With this command,
the edit session is saved to a textfile on disk. It will be
formatted exactly as you saw it last in the workspace. Control
returns to the main window of CLASSIFIER, where you can select
another document to be edited or printed.
6.10.2. Save file / return to DOS. With this command, the
edit session is saved to a textfile on disk. It will be
formatted exactly as you saw it last in the workspace. Control
returns to the operating system.
6.10.3. Save file / remain in edit. With this command, the
edit session is saved to a textfile on disk. It will be
formatted exactly as you saw it last in the workspace. Control
returns to the workspace and the cursor to its last location in
the edit session.
6.10.4. Quit / Abandon all changes. With this command, the
workspace can be abandoned; it will NOT be saved to a textfile on
disk. Since this could be disastrous, you are asked "Are you
sure? (Y/N) ". If you answer "Y", control returns to the
main menu of CLASSIFIER without updating the file you were just
editing.
6.10.5. Save current block to file. If there is a well-
formed block in the edit buffer, it can be saved to a file. The
name of the current file being edited may not be used. If you are
editing a labelled outline, the current type of label will be
used, with the labels adjusted to start with the number 1.
6.10.6. Save current structure to file. The structure on
which the cursor sits can be saved to a file. If the cursor is on
the root line, the whole edit buffer is saved to file. The name
of the current file being edited may not be used. If you are
editing a labelled outline, the current type of label will be
used, with the labels adjusted to start with the number 1. This
is the only way to save a classical outline to file. Such a file
cannot be subsequently processed as an outline. A decimalized
outline file can, however.
6.10.7. Read a file into the edit buffer. You will be
prompted to enter the name of a file to be read into the edit
buffer. If you are editing an outline, the new material will be
incorporated into the outline. If you are editing a text file,
the new material will be incorporated as part of the text.
6.11 The Print Options
6.11.1. Print current block. If a well-formed block is
defined in the edit buffer, the block will be printed. If you are
editing a labelled outline, the current type of label will be
used, with the labels adjusted to start with the number 1.
6.11.2. Print current structure. The structure on which the
cursor sits can be printed. If the cursor is on the root line,
the whole edit buffer is printed. If you are editing a labelled
outline, the current type of label will be used, with the labels
adjusted to start with the number 1.
6.11.3. From the main CLASSIFIER screen, the option to print
a file may be chosen by entering zero or more spaces or by
entering Control-P. You will then be asked for the name of the
file to be printed.
6.11.4. Whether printing is selected from the main screen or
during an edit session, you will be given the value of six print
options and asked if you want to change each one in turn. These
options are:
-- number of copies to be printed
-- number of spaces in the left margin
-- number of lines on a page
-- number of lines in the top margin
-- number of lines in the bottom margin
-- number of lines to skip between printed lines
The initial values of these options are set under the
default parameter section of the OUTINST program. The values may
be accepted by entering Return for each in turn, or by entering
Escape to accept them all. You may escape from the print option
parameters by entering a Control-U.
-----------------------------------------------------------------
7. Installation of the Package
The program OUTINST will let you define all 68 command
sequences (including as many synonyms as you like for each),
context-sensitive help messages, and 16 default parameter values.
Invoke the program from the command prompt by entering: OUTINST.
You will get a menu of five options:
[C]ommand installation
[H]elp line installation
[D]efaults installation
[K]eep changes
[A]bandon session
If you enter the letter "C" you will be given a menu of
eleven command groups. The menu includes a [P]rint and a [Q]uit
option. The [P] and [Q] options are found on many of the menus of
OUTINST. They allow you to print the current menu or to leave it.
In this screen, [P] allows you to print the entire set of
commands.
Choose the number of any one of the command groups. A
numbered list of the individual commands in the group will now
appear on the screen, followed by the [P] and [Q] options. Choose
a command by number. If it is not yet defined, you will be
prompted to do so.
For each function, you should enter the keystrokes that
trigger the function. Enter the key sequences for each function
in turn. Several keys have special predefined meanings in the
session.
The backslash, '\', will cancel the last keystroke. The
Carriage Return is used to end the defining sequence of
characters. A Carriage Return as the first response to the prompt
will cause the previous value for the function to be retained. A
command sequence may not begin with the TAB key (Control-I) as
this serves its standard function in an edit session.
If you want to define a Carriage Return, or CONTROL-M, as
part of the sequence, you may enter the letter "M". All
keystrokes beyond the first are converted into Control values,
except for DEL and characters beyond ASCII 127. Also, a command
sequence may not be a complete left-subset of another command.
This prevents ambiguous definitions.
If the command chosen from the menu has already been
defined at least once, you will be given the following options:
[A]dd definition
[C]hanged definition
[D]elete definition
[Q]uit
If you choose [A]dd, you will be prompted to enter an
alternate command sequence. You may enter as many unique synonyms
as you wish. If the sequence already defines another command, the
program will ask you to choose which command you really want the
sequence to defined. The other command may be redefined at this
time. If the sequence matches the lead-in sequence of one or more
other commands, you will have to re-enter a sequence for the
current command.
If you choose [C]hange and only one command sequence has
been defined for the current command, you will be immediately
prompted to enter the replacement sequence. If more than one
sequence defines the command, you will be asked to choose from a
menu the sequence to be changed. The rules for resolving
conflicting definitions under the [A]dd option apply to the
[C]hange option as well.
If you choose [D]elete and only one command sequence has
been defined for the current command, that definition will be
immediately deleted. If more than one sequence defines the
command, you will be asked to choose the sequence from a menu to
be deleted.
Returning to the main menu of the program, choose "H" for
help line installation. You will see one of two possible screens.
If help has not been defined before, you will be asked to enter
the three initial help lines. These are the lines that appear at
the top of the outline screen before any command has begun.
On the other hand, if one or more help lines have been
defined, you will be given the following choices:
[A]dd help
[C]hange help
[R]eview help
[D]elete help
[P]rint helps
[Q]uit
If you choose [A]dd, you will be prompted to enter a
sequence. This must be the lead-in sequence of a group of
commands. (Help lines will appear at the top of the screen of the
OUTLINE program when those keystrokes of the command have been
entered.) You will then be prompted for the three help lines that
are to appear on the screen in that context.
If you choose [C]hange, you will see a table of all
sequences. Choose the sequence to be changed and redefine the
sequence and the help lines. You will be able to keep or change
any of the lines.
If you choose [R]eview, you will see the table of sequences.
Choose the sequence of interest by number to see the
corresponding help lines.
If you choose [D]elete, you will again see the table of
sequences. Choose by number the sequence to be deleted.
If you choose [P]rint, all sequences and help lines will be
sent to the printer.
Note that the help lines are stored in the file OUTLINE.HLP,
a text file that can be directly edited with any text editor,
even OUTLINE itself! Remember that all help lines come in
triples. New triples of lines can be defined and subsequently
associated with a lead-in sequence under the "Help option."
Returning again to the main menu of the program, if you
choose "D" for defaults, you will see a menu with the three major
default groups. These groups are: (1) Toggle defaults; (2) Screen
format defaults; and (3) Miscellaneous defaults. The first two
groups correspond directly to the toggle condition commands and
the format screen commands. The last group corresponds to other
miscellaneous commands.
By choosing any group, you will see the particular defaults
that can be set for every edit session. All of these can also be
changed under command control during an edit session. Note that
defaults are values, not commands themselves, so that the idea of
deletion of a default or a synonym for a default does not apply.
The program OUTINST will create or modify the files
OUTLINE.DAT and OUTLINE.HLP. These must eventually be placed on
the same disk or directory as OUTLINE.COM and OUTLINE.000.
-----------------------------------------------------------------
8. Systems Background
Development of CLASSIFIER was done in Pascal. In
particular, the TurboPascal implementation from Borland,
International was used. The application builds an in-memory b-
tree representation of the document. It employs a dynamic
standard Pascal heap for its edit buffer.
When invoked, the entire file is loaded into the edit
buffer. At this time, CLASSIFIER cannot process files that
exceed the size of memory available for the edit buffer. The
exact maximum size of file that can be handled depends on the
amount of memory in your microcomputer. The edit buffer will use
all memory remaining after loading the operating system, any co-
resident programs, and the CLASSIFIER code.
CLASSIFIER provides compatibility with many other word
processors and text processors. The documents it creates and
revises are standard ASCII text files, with no extended codes.
It does use these standard codes in some unconventional ways,
however, making it somewhat easier to port files originally
created under CLASSIFIER to other word processors than it is to
port files from other word processors to CLASSIFIER.
For instance, all continuation lines are marked by one space
at the end of the line. If there is not a space at the end, the
line is assumed to be labelled. If no label is found at the
beginning of the line, this treated as a continuation line.
The first line of every labelled outline file is known as
the control line. This line consists of spaces and tabs. It
serves to associate two format parameters with each file: (1) the
number of spaces of indentation per level and (2) the initial
placement of the left margin of continuation lines. The number
of spaces on this line is equal to the number of lead-in spaces
per level. If one tab follows, continuation lines are flush left;
if two tabs, they are indented below the entry. These values
over-ride the defaults; if they are missing the defaults apply.
Numbers in decimalized labels are not validated; only the
presence of digits and periods is validated. Thus, a number like
'0.0.0.' will convert to the appropriate level 3 entry.
-----------------------------------------------------------------
9. Copyright Acknowledgements
9.1. Borland Int'l 9.5. IBM-PC
9.2. CP/M 9.6. Tandy 1200
9.3. MS-DOS 9.7. DEC Rainbow
9.4. KayPro 9.8. Wang PC