!0

                       INTRODUCTION

BOXER(tm) is a full screen text editor designed to run on
IBM PC compatible computers.  BOXER provides the ability
to create, modify, and store ASCII text files.  It has
been written with programmers in mind, but its powerful
features will be appreciated by all types of users.  BOXER
has many word processing features, and is suitable for all
but the most complex word processing tasks.

BOXER supports the editing of multiple files through one
or more windows.  Windows can be any size and may occupy
any location on the screen.  Text can be scrolled
horizontally and vertically using a wide range of cursor
movement commands.  All commands which modify text can be
undone with the Undo command.  By default, the previous
512 changes can be undone - or up to 4,096 if you choose.
Commands are accessible from either the keyboard or from a
pull-down menu interface.  A mouse can be used to access
commands by menu, move and resize windows, and mark text
blocks.  An online, context sensitive help system provides
full information about all of the editor's features.

BOXER also features a global search and selective replace
command with support for wildcard expressions.  Keystroke
macros enable you to create up to 26 macros to play back
common keystroke sequences.  A macro definition file is
read upon startup to initialize all 26 macro keys.  A wide
variety of commands are provided for manipulating marked
blocks of text: cut, copy, append, paste, delete, print,
write, indent, invert, sort, detab, total, average, fill
and case operations.  A collection of word processing
commands are provided to allow formatted documents to be
created without the use a separate word processing
package.  Status lines show the current time and date,
cursor column, cursor row, line number, and keyboard shift
state at all times.  A variety of configuration options
allow for customization to your needs.

|20

                     HOW TO USE HELP

Commands are listed in the same order in which they appear
in the pull-down menus.  Each title on the horizontal menu
is dealt with in a separate section.  The key sequence
which is currently bound to a command is shown in angle
brackets <> to the right of that command.  The key
assignments will change dynamically if another key
definition file is loaded.  Keys which are enclosed with
square brackets [] must be typed from the numeric keypad
at the right of the keyboard.

!35

                   STARTING THE EDITOR

BOXER is run from the command line by typing 'B' followed
by the name(s) of the file(s) to be edited.  You can enter
wildcard specifications, such as '*.h', to edit an entire
class of files.  You may enter the name of an existing
file or create a new file by specifying a unique name.

Each time an editor session is terminated, BOXER stores
the filenames and cursor locations of the files being
edited to a disk file named BOXER.LST.  If BOXER is later
run without naming the files to be edited, this file is
consulted and the files which were most recently edited
are opened automatically.  The current file will be the
file which was last edited, the current line and column in
each file will be restored to the location during the
prior edit session.  Search and replace strings from the
prior edit session are also restored.

This feature serves to smooth the edit-compile-test cycle
by returning you to your exact editing environment in a
painless fashion.

|40

                    1. PULL-DOWN MENUS

BOXER provides a pull-down menu system as an alternative
method of accessing its commands.  The menu system
provides new users with the capability to issue any of
BOXER's commands without knowing the key sequence
associated with that command.  Experienced users will use
the menu system to invoke infrequently used commands, as
well as those few commands which are available only
through the menu system.

Once the pull-down menu has been activated, use the Up and
Down arrow keys, the Home and End keys, or the first
letter of an entry to move the cursor bar to the desired
menu item.  The message line displays further information
about the current item.  Use the Enter key to execute the
desired command.  Each menu records the item last
selected so that a future visit to that menu begins with
that item as the default. Use the Page Left and Page Right
commands to move quickly to the extreme left/right menus.

The Escape command is used to exit both the pull-down and
horizontal command menus.  Alternatively, a full escape
from a pull-down menu can be accomplished immediately by
issuing the F1 sequence.

|50

                      2. HELP SYSTEM

BOXER provides a sophisticated online help system to
assist you in using the full power of the editor.  The
help system can be accessed at any point in the program by
pressing the Alt-H sequence.  A scrollable pop-up window
appears displaying information related to the operation
you were about to perform.

Alternatively, the help system can be accessed using the
help index provided in the pull-down menu system.  A menu
is provided which will allow you to display a Help window
for a variety of pre-indexed topics.

The final method of accessing help is perhaps the most
powerful.  As you are navigating within the pull-down
menus, the Alt-H sequence remains active and will provide a
help window relating to the topic currently highlighted in
the menu.  You do not need to execute the command, simply
highlight the command of interest in the menu and press
Alt-H.  The help system will jump immediately to the
section pertaining to the highlighted command and display
the pop-up window.

|55

                     3. USING A MOUSE

BOXER supports the use of a Microsoft compatible mouse to
perform a variety of window manipulations, text cursor
positioning and text marking.  The use of a mouse is
entirely optional - all mouse actions can be performed
with an equivalent keyboard command.  In all cases the
Left mouse button is used to select or activate an option,
while the Right button is used to abort an option.  The
mouse cursor appears as a reverse video (or colored) text
block with a cross (+) inside.  The mouse cursor is
removed when the keyboard is being used, but reappears as
soon as the mouse is moved.

The window frame style in BOXER is sensitive to whether or
not the system has a mouse installed.  If it does, various
icons will appear in the corners of the window frame.  The
lower right corner is used to resize the window.  The
upper right corner is used to zoom a window to full
screen, or to return a zoomed window to its smaller size.
The upper left corner is used to close the window.  Any
point along the left, upper, or lower window frames may be
used to drag a window to a new position.  The left and
right arrow icons on the lower frame are used to scroll
horizontally.  Likewise, the up and down arrow icons on
the right frame are used to scroll vertically.

Alternatively, the 'elevator' icon can be dragged up or
down to move quickly within large files.  A single click
in the elevator area jumps the file up or down by a single
page.  More simply, the text cursor may be repositioned
within a window by clicking on the point desired.  When
multiple windows are in use, a mouse click within an
inactive window will make that window active.

!56

Block Text marking can be accomplished by holding down the
Left mouse button for about 1/2 second, and then dragging
the mouse to affect the range of marked text.  Column Text
marking is similarly accomplished, except that the Ctrl
key on the keyboard must be depressed at the time marking
is initiated.  It may be released once marking has begun.
Alternatively, if you have a 3-button mouse, the center
button will initiate Column Text marking.  The Right mouse
button may be used to cancel marking.  Once marked, text
may be manipulated using any of the marked text text
commands.

The Pull-Down Menu system is also accessible via a mouse.
By clicking the Left mouse button on the desired title,
the menu system is activated.  A second click drops the
desired pull-down menu.  Mouse motion may be used to
select the desired menu, and the Left mouse button will
activate that selection.

|60

                   4. FILES AND WINDOWS

In order to fully utilize the power of BOXER, it is
necessary to understand the distinction between files and
windows, as implemented by the editor.  BOXER enables you
to edit multiple files simultaneously.  The editor
maintains a list of all files which are being edited.
This list is the FILE LIST.  The 'current window' is the
window with the cursor in it; the 'current file' is the
file within the current window.

In the simplest case, a single full screen window exists
and a single file is being edited within that window.
Other files may be added to the file list via the Edit New
File command.  In this case, a single window is used to
view several files; other files in the file list are
brought into the window via the Next File or Previous File
commands.  These commands cycle through all files in the
file list in the order they were opened.  This
configuration (multiple files, single full screen window)
is sufficient for many editing jobs.

Additional windows may be created with the Open Window
command.  Windows are treated analogously to files - they
are maintained in a WINDOW LIST.  The Previous Window and
Next Window commands are used to move through the window
list.  The Next File command is used as before to cycle
through the file list within the current window.  Windows
may be resized and relocated with the Resize Windows
command or by mouse to provide maximum visibility.  The
Zoom Window command provides a means to quickly (and
temporarily) zoom the current window to full size.

|70

                  5. MESSAGE LINE EDITOR

The Message Line Editor is activated whenever input is
expected in the message area located at the bottom of the
screen.  The Message Line Editor provides for
non-destructive cursor movement within the text being
entered and horizontal scrolling if the text exceeds the
width of the message area.  In addition, most of the
horizontal cursor movement commands are available, namely
Word Left/Right, Beginning/End of Line, Page Left/Right,
and Edge Toggle.  The Delete and Backspace commands are
also operative.  The Toggle Edit Mode command can be used
to toggle between Insert and Typeover modes.  The Escape
command is used to clear the editing string.  If the edit
string is already empty, the Escape command serves to
cancel entry of the string.

Whenever possible, the editor attempts to guess what entry
you will be making next on the message line.  When
prompting for a file path, for example, the editor
displays the previous file path entry on the chance that
it may be easier for you to edit the previous entry than
to type a new file path.  If the default string is to be
accepted as is, simply press Return.  If a new string is
to be entered, disregard the default string - it will
disappear after an insertable key is struck.  If a cursor
motion key is struck first, the editor presumes you wish
to work with the default string and it will remain on the
line for editing.  To add to an entry, press the right
arrow key before typing the characters to be added.

!71

The Message Line Editor provides a sophisticated feature
called "Filename Completion".  As you are typing an entry
you may hit the Tab key at any point to complete the file-
path.  Additional Tab presses will cycle through all files
which match the partial name supplied.  This feature can
greatly speed the process of supplying filepaths.

To further speed the process of supplying input on the
message line, the editor retains the last 30 entries made
in a history list.  Prior entries can be recalled by
pressing the Up and Down arrow keys.  Use the Up arrow key
to review your prior entries until the desired entry is
found and then press Return.  The Home and End keys jump
to the top and bottom of the history list respectively.

The Message Line Editor provides another sophisticated
feature to facilitate input.  It is possible to paste text
from the editor's scrap buffer into the text being edited
on the message line.  First, text is placed into the scrap
buffer in the usual way (see Block Text Commands, section
12).  As you are entering text in the Message Line Editor
use the Paste command to insert the first line of the
scrap buffer into the string being edited.

|75

                       6. FILE MENU

Whenever the entry of a filename is required, BOXER offers
the ability to pick the filename from a menu of files
within the current directory.  The File Menu is activated
automatically for all commands which require that a
filename be specified.  A menu will be displayed which
shows all of the files in the current directory with their
size, dates, etc.  to the right.  The cursor keys can be
used to move within this list, and the Enter key will
select a file.  If you prefer to type a filename yourself,
the menu will disappear as soon as you strike a key.  A
number of other options are provided from the file menu:

!76

Multiple files can be selected by first marking them with
the SPACE key and then using the ENTER key to select the
marked files.  The SPACE key is also used to unmark a
marked entry.

!77

The DELETE key can be used to delete from disk either
the current entry or the currently marked files.  A
confirmation is required before the deletions are
performed.  The ESCAPE key can be used to abort the delete
operation in mid-cycle if a mistake is made in selection.

!78

The TAB key can be used to specify a filter to be used in
displaying the menu.  If a filter of '*.doc' is specified,
only files with a '.doc' extension will appear in the
menu.  The filter can be reset to '*.*' quickly by using
the BACKSPACE key.  You can also specify "D:", for
example, to display a file list for a directory on another
drive.

!79

The '/' key serves to toggle between various sort modes.
When initially displayed, the files are sorted
alphabetically by name.  By pressing the '/' key, the
files will be sorted alternately by extension, by size,
by date, or left unsorted.

!80

The '+' key serves to toggle between two search modes.
The default mode searches the current directory for the
pattern specified.  When the mode is toggled, the search
is performed across the ENTIRE disk drive.  Thus, a 'lost'
file can be located for editing by toggling the search
mode to 'search-the-disk' and using 'Tab' to specify the
filename.  Likewise, a class of files can be located for
selective editing or deletion.  This feature can be a very
powerful tool when used effectively.

!81

To help speed file and search string entry, the pop-up
menu will disappear if you type characters which indicate
you prefer to type an entry rather than select it from the
menu.  At this point you will be returned to the message
line editor.  If you prefer to have the string you are
typing completed for you, simply press F1 to jump to the
nearest match for your string within the menu.

!85

                    FILE MENU COMMANDS

Use any of the following commands to help select a file
from the menu - or simply type the name of the file you
wish to edit on the message line.

 Space  Mark/unmark current file   Up     previous item
 Enter  Select current or marked   Down   next item
 Del    Delete current or marked   Home   top of page
 Tab    Specify filter (eg *.doc)  End    bottom of page
         or a drive designation    ^Home  top of menu
         to change to (eg D:)      ^End   bottom of menu
 Bsp    Reset filter to '*.*'      PgUp   previous page
  /     Toggle Sort mode           PgDn   next page
  -     Toggle Sort direction
  +     Toggle Search mode
 Esc    Return to message line

|95

                    7. ELEVATOR SYMBOL

On the right edge of the window frame a marker is
displayed which illustrates the current cursor position
relative to the size of the entire file.  The elevator
symbol moves up and down as you move within a document.
The elevator symbol provides a quick method to gauge your
location within a file.  If the marker appears midway
along the window frame, the cursor is currently on a line
which is approximately in the middle of the file.  The
marker will appear to move quickly when scrolling through
small files, and slowly when scrolling in large files.
The file position can be changed quickly by clicking with
the Left mouse button in this area, or by dragging the
elevator symbol with the mouse.

|100

                     8. FILE COMMANDS

BOXER provides a variety of commands which operate at the
file level.  Among these are commands to edit, print,
import, paginate, write, and compile files.  Commands are
also available to move between the files being edited.
The File commands are described in more detail in the
sections that follow.

!101,321

8.1 Edit New File                                  <Alt E>

The Edit New File command enables additional files to be
added to the file list.  The name of the file to be edited
is typed on the message line or selected from the pop-up
File Menu.  Wildcard expressions can be used; for example:
specify *.h to edit all files with '.h' extension in the
current directory.  Alternatively, you may specify several
filenames; for example: 'SALES.TXT OFFERS.DOC REPORT.TXT'.
BOXER will also recognize relative path names, so you can
specify names such as '..\SALES\MAY\REPORT.TXT'.  The
file(s) named are added to the file list and the first
named file becomes the current file in the current window.

NOTES:

If the file being loaded contains lines which exceed
BOXER's maximum line length of 1024 characters these lines
will be split at that point.  The over length portion will
appear on the next line.  Truncation is NOT performed, so
data is never lost.

Files containing the DOS end of file character (ASCII 26)
can be edited by BOXER without difficulty.  If you do use
this character within a file, note that some other
programs may not be able to process the file properly.
This character is used to mark the end of a file, and many
programs will stop reading a file once it is encountered.

Files which contain NULL (ASCII 0) characters can be
edited, but the NULLs are discarded as the file is read.
A warning is given whenever a file with NULLs is loaded
and an option is given to cancel the operation.  NULL
characters appear most often in executable program files,
and these files should NOT be edited with any ASCII text
editor.

!102,415

8.2 Locate File(s)                                 <Alt L>

The Locate File command enables the entire disk to be
searched for a file or file pattern.  The matching file(s)
are display in a menu from which one or more may be
selected.  This command makes it easy to edit a file whose
precise location is not known.

!103,308

8.3 Import File                                    <Alt I>

The Import File command enables you to import (merge) a
file into the current file.  The name of the file to be
imported is typed on the message line or selected from the
File Menu.  The file is inserted at the start of the
current line.  Note: the Import File command is not
undoable with the UNDO command, since the import of a
large file could overwrite all other undo information.
The Block Delete command could be used instead to quickly
undo the effect of the Import File command.

!104,325

8.4 New Filename                                   <Alt N>

The New Filename command assigns the current file a new
name within the editor (it does not do a DOS rename).  All
future requests to write the file will be written to the
newly specified name.  The new output name will appear in
the lower center of the window frame.

!105,361

8.5 Print File                                     <Alt P>

The Print File command provides for the printing of a file
to an attached printer.  You will first be asked if you
wish to use printing parameters.  The use of printing
parameters gives you control over the format of the output
page, allows for page numbering, margins, headers,
footers, etc.  (section 15.1).  The Print File command can
be aborted during printing by using the Escape command.

Because some printers are unable to process tab
characters, and because BOXER supports 'tab stop' style
tabs, tab characters within the text being printed are
expanded to spaces before being sent to the printer.  This
ensures that the file will appear on output exactly as it
appears within the editor.

!106,303

8.6 Quit                                           <Alt Q>

The Quit command is used to exit the editor.  If there are
any files which have been modified but not written you
will be presented with the following prompt: 'Quit with #
modified files: Yes No Write' The 'Yes' option allows you
to quit without saving the modified file(s).  The 'No'
option allows you to return to the editor.  The 'Write'
option writes all of the modified files and then exits the
editor.  If you have made changes to the color settings,
macros, or print parameters which you would like to save
you should write them before exiting the editor.

In order to allow for the creation of macros which include
the Quit command, BOXER will record a macro right up until
exit from the editor is requested.  Thus, if a macro is
being recorded upon exit, you will be offered a chance to
save that macro before the request to exit is completed.

!107,402

8.7 Write File                                     <Alt W>

The Write File command writes the current file to disk.
If no changes have been made since the session began, or
since the file was last written, the file will not be
written.  Before the file is written for the first time,
and unless file backups are disabled, the old copy on disk
is moved to the editor's backup directory - usually
\BOXER\BACKUP.  When editing on a drive other than the
editor's 'home' drive, a file with a .BKP extension will
be placed in the current directory.  Subsequent Write File
commands will not alter the original backup file.  The
editor will not allow you to write a file whose name ends
with .BKP.  To write a file with .BKP extension you will
need to change the output name with the New Filename
command (section 8.4).  Note that this command does not
end the editing session, it merely writes the current file
to disk.

!108,408

8.8 Write All Files                                 <menu>

The Write All Files command automatically writes to disk
all files which have been modified since they were last
saved.  The names of the files are displayed on the
message line as they are written to disk.  This command
does not end the editing session.

!109,309

8.9 Paginate File                               <Shift F7>

The Paginate File command provides the ability to paginate
a file with output to a disk file, rather than to a
printer.  A disk file will be created which contains the
file as it would appear after printing parameters are used
to insert margins, page breaks, header and footer strings,
etc.  The file can then be printed at a later time.  This
feature could be especially useful for formatting
documentation which is to be distributed on diskette,
ready for printing by the target audience.  It also
provides an opportunity to search for orphan
lines which may have occurred due to pagination.

!110,359

8.10 Previous File                            <Shift Home>

The Previous File command moves to the previous file in
the file list.  The file is moved into the current window.
The cursor is returned to the position in the file when it
was last visited.

!111,322

8.11 Next File                                 <Shift End>

The Next File command makes the next file in the file list
the current file.  The file is moved into the current
window.  The cursor is returned to the position in the
file when it was last visited.

!112,304

8.12 File List                                  <Shift F1>

The File List command displays a list of the files
currently being edited.  A pop-up menu appears in the
upper right corner of the screen displaying the file list.
The current file will be highlighted with the menu cursor
bar.  Exclamation marks (!) are used to denote files which
have been modified but not written.  It is possible to
close, edit, print, and write files directly from the file
list menu.  The options are displayed on the message line.
The Escape command is used to exit the display.

!113,290

8.13 Close File                                    <Alt X>

The Close File command removes the current file from the
file list.  If changes have been made to the file since it
was last written a warning will appear on the message
line.  You may abort the request or choose to write the
file before it is closed.  The next file in the file list
becomes the current file and is moved into the current
window.

!114,297

8.14 Compile File                                    <F10>

The Compile File command invokes a compiler or assembler
(henceforth called compiler) to operate upon the file
currently being edited.  The editor saves itself and all
currently edited files to EMS memory or disk to provide
the compiler with the maximum amount of memory possible.
The compiler is then invoked with the name of the current
file as an argument.  The output of the compiler is
interpreted to determine if any errors occurred and, if
so, the cursor is placed on the line containing the error
and the error message is displayed on the message line.
When the Compile command is issued again, an option to
move to the previous or next error is provided, as is an
option to compile again.

The name of the compiler to be invoked is described in an
environment variable which is set during installation or
by using the SET command in DOS.  The environment variable
also provides the editor with information which it needs
to interpret error messages from the compiler.  Example
environment settings have been provided for several
popular compilers.  You can determine the appropriate
environment setting for your compiler if it is not
supplied by reading the following section.

!115

The environment variable which needs to be set is named
BOXER_CC.  The variable has 6 fields separated by commas.
They are:

   1. compiler name
   2. compiler flags
   3. keyword denoting an error line  (usu. 'error')
   4. keyword denoting a warning line (usu. 'warning')
   5. the field number of the error line number
   6. the field number of the error message

Examine an error message from your compiler to determine
the field position within the error message of the line
number and error message text.  Fields are considered to
be separated by tabs, spaces, a '(' or a ')'.

Example Output:
Error TEST.C 15: Undefined symbol 'i' in function main
Warning TEST.C 16: Code has no effect in function main
Error TEST.C 16: Statement missing ; in function main

Example Analysis:
The error line number appears in field 3, the error
message begins in field 4.  'Error' is the keyword in an
error message.  'Warning' is the keyword in a warning
message.  The environment variable might be set as:

 set BOXER_CC=tcc,-ml -K -I\tc\include,Error,Warning,3,4

NOTE: a "%s" sequence can be placed among the compiler
flags to dictate the required position of the filename
among those flags.  By default, the filename will be
placed after the flags.  If needed, a "%s" can be placed
at the start of the compiler flags field to dictate that
the filename should precede the flags.  The Clipper
compiler is one which requires this placement.

|200

                     9. EDIT COMMANDS

BOXER provides commands for character, word, and line
deletion, line truncation, character increment and
decrement, and automatic line copy.  Any changes made to
the text within a file can be undone by using the Undo
command (section 9.14).  The Edit Commands are described
in the following sections.

!201

9.1 Character Delete                              <Delete>

The Character Delete command deletes the character at the
cursor.  If the character deleted is a newline character,
the line below the current line will be appended to the
current line.

!202

9.2 Backspace                                  <Backspace>

The Backspace command deletes the character to the left of
the cursor.  If the cursor is in the first column of a
line, the newline character on the previous line will be
deleted and the current line appended to the previous
line.  If the cursor is past the end of a line, the
Backspace command acts as the Cursor Left command.

!203

9.3 Enter                                          <Enter>

The Enter command inserts a newline character at the
current cursor position and moves the cursor to the line
below the current line.  If the cursor is mid line in a
line of existing text, the text to the right of the cursor
is moved to a new line below.  If auto indent is selected
(section 16.3), the cursor will be positioned on the new
line at the same level of indent as the current line.

In Typeover mode, this command is non-destructive.  The
cursor will simply be moved to the start of the next line.
Newline characters can be made visible by using the
Visible Spaces command (section 16.1).

!204,313

9.4 Insert Line                               <Ctrl Enter>

The Insert Line command creates a new line below the
current line and moves the cursor to the beginning of that
line.  If auto indent is selected (section 16.3), the
cursor will be positioned on the new line at the same
level of indent as the current line.  The effect of this
command is equivalent to moving the cursor to the end of
the current line and executing the Enter command.

!205

9.5 Tab                                              <Tab>

The Tab command inserts a tab character (ASCII 9) at the
current cursor position and moves the cursor to the next
tab stop.  Tab width values can be set or changed with the
Set Tab Width(s) command (section 16.18).  Note that BOXER
inserts real tab characters (not space characters) into
the text file.  This behavior can be altered by using the
Tab/Space Usage command (section 16.6).

In Typeover mode, this command is non-destructive.  The
cursor will simply move to the next Tab Stop.  Tab
characters can be made visible by use of the Visible
Spaces command (section 16.1). 

!206,292

9.6 Delete Line                                    <Alt D>

The Delete Line command deletes the current line.  The
column position of the cursor within the line being
deleted is irrelevant.  The cursor is moved to the next
line in the file.  If the last line of a file is deleted,
the cursor will move to the previous line.

!207,293

9.7 Delete Next Word                        <Shift Delete>

The Delete Next Word command deletes the word to the right
of the cursor.  A word is considered to be delimited by
Space or Tab characters.  The Delete Next Word command
does not operate across lines.

!208,404

9.8 Delete Previous Word                  <Ctrl Backspace>

The Delete Previous Word command deletes the word to the
left of the cursor.  A word is considered to be delimited
by Space or Tab characters.  The Delete Previous Word
command does not operate across lines.

!209,294

9.9 Kill to Start of Line                          <Alt K>

The Kill to Start of Line command deletes text from the
cursor to the start of the current line.  If the cursor is
at the start of line, no deletion occurs.  If the cursor
is at the end of a line, all text on the line will be
deleted, but the newline character will remain.

!210,280

9.10 Line Clone                                    <Alt O>

The Line Copy command copies the current line to a new
line immediately below the current line.  This command
provides a quick line replication capability while
preserving the contents of the scrap buffer.  A line copy
could also be performed using the block copy and paste
operations.

!211,324

9.11 Open Line                                      <menu>

The Open Line command opens a new line at the current
line.  The position of the cursor is unchanged.  The
effect of this command is similar to the Insert Line
command, except that the new line is created at the
current line rather than below the current line.

!212,317

9.12 Line Swap                                     <Alt S>

The Line Swap command provides a quick method to swap the
text on the current line with that on the line below.  It
is illegal to request a line swap when positioned on the
last line of a file.

!213,291

9.13 Truncate to End of Line                       <Alt T>

The Truncate to End of Line command deletes all text from
the cursor to the end of line.  The newline character is
preserved, so the following line is not appended to the
current line.

!214,393

9.14 Undo                                          <Alt U>

The Undo command cancels the effect of a previous text
modification.  If a line was modified, inserted, or
deleted, the Undo command restores the line to its prior
form.  All commands which result in a modification to text
can be undone (except Import File).  Commands which result
in a change to several lines simultaneously, such as block
text deletes or global replacements, are undone with a
single Undo request.

Undo information is maintained separately for all files
being edited.  Undo is limited by default to the previous
512 text modifications.  If multiple files are being
edited, a total of 512 prior modifications can be undone.
Commands which result in a modification to more than 512
lines (as might a global replacement) cannot be undone in
their entirety.  After 512 modifications are made, the
Undo information for the oldest change is discarded to
make room for new changes.

The Undo command does not affect the contents of the scrap
buffer.  Likewise, the Import File command is not
Undoable.  The Undo limit is set by default to 512.
Larger or smaller limits can be set with the -u option
flag.

!221,412

9.15  Undo All                                      <menu>

The Undo All command restores all changes made to the
current file during the edit session - subject to the
limitation of the size of the Undo limit.  The effect of
this is the same as manually issuing the Undo command
repeatedly until all changes have been restored.  This
command should only be used if you know you want ALL
changes made to a file restored.

!222,413

9.16 Undo Reset                                     <menu>

The Undo Reset command resets the Undo stack to zero
without performing any of the Undo operations therein.
This command can be useful when used as a "place marker".
For example, issue the Undo Reset command when you are
confident that prior changes will not need to be undone,
and before a new "trial" editing task is begun.  If the
trial task proves to be unwanted, you can then safely use
the Undo All command to return to the "place marker".

!215,288

9.17 Increment                                     <Alt +>

The Increment command increments the character or decimal
number at the cursor by 1 or by a specified amount.  If
the cursor is positioned on a character, the command
serves to increment that character by 1 ASCII value.  The
character 'b' becomes a 'c' and so forth.  If the cursor
is positioned on a single or multi digit number, you will
be prompted for the amount to increment the number.  This
command is especially useful when used in conjunction with
the Line Copy command in a macro to perform automatic
numbering (section 17.5).

!216,286

9.18 Decrement                                     <Alt ->

The Decrement command decrements the character or decimal
number at the cursor by 1 or by a specified amount.  If
the cursor is positioned on a character, the command will
serve to decrement that character by 1 ASCII value.  The
character 'c' becomes a 'b' and so forth.  If the cursor
is positioned on a single or multi digit number, you will
be prompted for the amount to decrement the number.

!217,289

9.19 Multiply                                       <menu>

The Multiply command multiplies a single or multi digit
decimal number at the cursor by a specified amount.  After
selecting the command, you will be prompted for the amount
to multiply by.  The arithmetic is performed and the text
at the cursor is updated to reflect the result.

!218,287

9.20 Divide                                         <menu>

The Divide command divides a single or multi digit decimal
number at the cursor by a specified amount.  After
selecting the command, you will be prompted for the amount
to divide by.  The arithmetic is performed and the text at
the cursor is updated to reflect the result.  Integer
arithmetic is performed, not floating point.

!219,395

9.21 Insert ASCII Value                               <F6>

This command provides a means to insert ASCII characters
into a text file which are not directly available from the
keyboard.  Since the Control A-Z keys are used for macro
assignments, a method to enter the characters normally
associated with these keys, as well as those in the range
128-255, is needed.

A prompt appears for the value of the character to be
inserted.  Other bases may be used to enter the character
value as outlined in the Calculator command (section
13.4).  Values in the range 1-255 are legal.  Characters
can also be selected for insertion directly from the
pop-up ASCII chart (section 13.11).

!220,384

9.22 Toggle Edit Mode                       <Shift Insert>

The Toggle Edit Mode command toggles between Insert and
Typeover modes.  In Insert mode, characters typed are
inserted into the text, and characters on the right are
pushed to the right.  In Typeover mode, characters typed
replace the characters under the cursor.  The default is
Insert mode.  When in the Message Line Editor, this
command will toggle the Line Editor's edit mode between
Insert and Typeover.

Unless operating in an extended video mode, the shape of
the text cursor changes from a large block (Insert) to
an underscore (Typeover) to indicate the change in mode.
Also, a small/large circle appears in the lower right of
the screen to indicate the mode.

|300

             10. SEARCH AND REPLACE COMMANDS

The Search and Replace Commands enable you to search for
and replace textual strings within the current file.
Pattern matching characters are recognized to enable
'wildcard' searches (section 10.1).  Search patterns are
retained after movement from file to file, so it is easy
to repeat a search in another file.

Both the Search and Search & Replace commands offer the
opportunity to select strings from a menu of recently
entered search and replace strings.  A pop-up menu will
appear offering the chance to select from a list of
previous strings.  Use the Up and Down arrow keys to
select from the list, and Enter to make your selection.
The selected string will appear on the message line, and
can be edited if necessary.  A second Enter key begins the
operation.  The Search and Replace commands are explained
in the following sections.

!301

10.1 Pattern Matching Characters

To provide more powerful search and replace capabilities,
BOXER recognizes several pattern matching or 'wildcard'
characters.  These characters are punctuation characters
which are interpreted specially during the search process.
The characters recognized are:

  ?       match any single character
  *       match zero or more characters
  ^       if at start of string, restrict search
            to start of line
  $       if at end of string, restrict search
            to end of line
  !       if at end of string, perform search
            for string as a distinct token
  \       remove significance from a pattern
            matching character
  \nnn    match decimal character nnn
  [abc]   match named characters a, b, or c
  [^abc]  match all except a, b, or c
  [a-e]   match a range of characters

The 'C' language sequences: \b, \f, \n, \r, and \t are
also recognized within search patterns.

Consider the following examples:

  String:      Matches:
  a*e          ae OR ale OR arcade
  a*i*e        available
  a?t          ant OR art OR apt
  ^The         The quick brown fox
  dog$         jumped over the lazy dog
  a\?b         a?b
  a\*b         a*b
  a\\b         a\b
  p[aeiou]t    pat OR pet OR pit OR pot OR put
  p[^io]t      pat OR pet OR put, NOT pit OR pot

!302,369

10.2 Forward Search                                <Alt F>

The Forward Search command is used to specify and initiate
a forward search for a string.  When the command is issued
a pop-up menu will appear showing recently entered Search
strings.  You may select a string from the menu, or simply
begin typing your own string.  Pattern matching characters
may be entered in the search string (section 10.1).  The
Enter key terminates specification of the search string
and initiates the search.  The search begins at the cursor
position and proceeds downward toward the end of file.  If
text has been marked, the search will serve to change the
extent of the marked area by advancing the cursor to the
first occurrence of the search string.  If the search
string is found, the cursor will be positioned at the
matching string.  Otherwise, a message will indicate that
the string was not found.  Additional searches for the
same pattern are accomplished with the Find Previous and
Find Next commands (section 10.5 and 10.6).

!303,283

10.3 Backward Search                               <Alt B>

The Backward Search command is used to specify and
initiate a reverse search for a string.  Except for
direction of search, this command is in all ways similar
to the Forward Search command described above.

!304,380

10.4 Replace                                       <Alt R>

The Replace command is used to specify strings and
initiate a search and replace operation.  Search and
replace is performed only in the forward direction, and
proceeds from the current cursor position downward toward
the end of file.  If text has been marked, the search and
replace session will be conducted only on the text within
the marked area.  When the Replace command is issued a
pop-up menu will appear showing recently entered Search &
Replace strings.  You may select a string from the menu,
or simply begin typing your own search string.  Pattern
matching characters may be specified for the search
string.  The search string is terminated by the Enter key.
Next you will be prompted for the replacement string.
Pattern matching characters have no special significance
in the replacement string (i.e.  a '*' will be interpreted
as a '*', not as a wildcard character).

After specification of the search and replace strings, the
cursor will move to the first occurrence of the search
string (if found) and a prompt will appear in the message
area.  You can select one of the following options:

 Yes        yes, replace this one, move to next
 No         no, disregard this one, move to next
 Remaining  replace all remaining occurrences w/o asking
 5          replace  5 occurrences w/o asking
 10         replace 10 occurrences w/o asking
 20         replace 20 occurrences w/o asking

If you select the 'Remaining' option the replacements will
be made without further interaction.  Occurrences above
the cursor are not replaced.  The number of replacements
made will be displayed upon completion.  Note that the
search string specified by the Forward Search or Backward
Search commands is not disturbed by the Replace command.

!305,306

10.5 Find Previous                        <Shift Up Arrow>

The Find Previous command is used to repeat a search for
the current search string.  The search will proceed from
the cursor upward.  If the string is found, the cursor
will be positioned at the matching string.  Otherwise, a
message will indicate that the string was not found.

!306,305

10.6 Find Next                          <Shift Down Arrow>

The Find Next command is used to repeat a search for the
current search string.  The search will proceed from the
cursor downward.  If the string is found, the cursor will
be positioned at the matching string.  Otherwise, a
message will indicate that the string was not found.

!307,375

10.7 Find Open                                    <Ctrl [>

The Find Open command locates and displays the mating
character to the character at the cursor.  If the cursor
is situated on a right parenthesis ')', right square
bracket ']', right brace '}' or right angle bracket '>',
this command will locate the mating open character '(',
'[', '{', or '<', with consideration given to nesting
levels.  If the cursor is on any other character, the
first prior occurrence of that character will be
displayed.  This command can be of considerable use in
locating mating parenthesis characters in deeply nested
expressions.  Once located, an option is provided to
remain at the mating character, or to return to the
previous cursor location.  If a mating character cannot be
found, the character will be reported as unbalanced.

!308,374

10.8 Find Close                                   <Ctrl ]>

The Find Close command locates and displays the mating
character to the character at the cursor.  If the cursor
is situated on a left parenthesis '(', left square bracket
'[', left brace '{' or left angle bracket '<', this
command will locate the mating close character ')', ']',
'}', or '>', with consideration given to nesting levels.
If the cursor is on any other character, the next
occurrence of that character will be displayed.  This
command can be of considerable use in locating mating
parenthesis characters in deeply nested expressions.  Once
located, an option is provided to remain at the mating
character, or to return to the previous cursor location.
If a mating character cannot be found, the character will
be reported as unbalanced.

!309,406

10.9 Search All                                     <menu>

The Search All command provides a quick method to search
across all files currently being edited for a specified
search string.  The string to be found is specified as
described in the sections above.  All files in the file
list are searched for occurrences of the string and
matching lines are written with filename and line number
information to a disk file.  The disk file is named
'BOXER.FND' and will appear in the current directory.  The
results can be viewed, if needed, by issuing the Edit New
File command.  The filename 'BOXER.FND' will appear as the
default filename in anticipation of your request.

!310,414

10.10 Replace All                                   <menu>

The Replace All command provides a means to perform a
search and replace operation across all files currently
being edited.  The replacements are performed
automatically, so a prompt will appear to confirm your
intent.  The search string and replace string are
specified as described in the sections above.  All files
within the file list are searched for occurrences of the
string and the replacements are performed automatically,
without additional confirmation.  The number of
replacements made will be displayed upon completion.

!315,407

10.11 Search and Count                              <menu>

The Count command counts the number of occurrences of a
specified string in the current file.  The string which is
to be found is specified as described in the sections
above.  The cursor is not moved to show the location of
any of the occurrences of the string - the number of
matches found is simply reported on the message line.  The
entire file is searched regardless of cursor position.

|400

                   11. WINDOW COMMANDS

BOXER provides the capability to view several different
files simultaneously through different windows.  A window
always contains one file, but the same file may appear in
several different windows.  Thus it is possible to view
different sections of the same file at the same time.
Despite the power and flexibility of BOXER's windows, only
a few commands are needed to access them.  The window
commands are explained in the following sections.

!401,399

11.1 Open Window                                      <F2>

The Open Window command creates an additional window for
the current file.  Options are provided to either split
the current window horizontally or vertically, or to
create a new full screen window.  The split options make
it easy to 'tile' the screen with windows.  There is
virtually no limit to the number of windows which may be
opened, though it is unlikely you will ever need more than
four windows open simultaneously.

!402,401

11.2 Resize Windows                                   <F3>

The Resize Windows command allows for the resizing and
relocation of editor windows by keyboard.  Upon invoking
this command, the editor switches to a mode in which the
size and location of the current window can be changed.
The frame of the current window is redrawn in bold to
indicate the operation being performed.  The upper left
corner of the frame contains a symbol to indicate that
this corner of the frame will be fixed when the window is
resized.

During resizing, the arrow keys move the current window
about the screen.  If the window is full size, no movement
can occur.  The Shifted arrow keys serve to resize the
window.  The Shifted Up and Left arrow keys reduce the
size of the window at the lower and right edges
respectively.  The Shifted Down and Right arrow keys
increase the size of the window at these same edges.  The
upper left corner of the window remains fixed as the size
of the window is changed.

!403,400

11.3 Close Window                                     <F4>

The Close Window command is used to remove the current
window from the window list.  This command has no effect
on the file contained within the current window.  After
the current window is closed the cursor will be moved to
the next window and the screen will be adjusted to reflect
the change.  A window will not be closed if it is the only
window open.

!406,411

11.4 Zoom Window                                   <Alt Z>

The Zoom Window command temporarily expands the current
window to fill the screen.  A second invocation of the
command returns the window to its previous size.  Zoom
information is maintained for one window only - if you
zoom a window and then move to a new window and zoom it,
the window first zoomed cannot be returned to its prior
size via the Zoom command.  The Resize Windows command
could be used instead.

!404,360

11.5 Previous Window                          <Shift PgUp>

The Previous Window command makes the previous window in
the window list the current window.  The file contained in
the new window becomes the current file.  The window list
is circular; if the current window is the first window in
the list, the new window will be the last window in the
list.

!405,323

11.6 Next Window                              <Shift PgDn>

The Next Window command makes the next window in the
window list the current window.  The file contained in new
window becomes the current file.  The window list is
circular; if the current window is the last window in the
list, the new window will be the first window in the list.

|500

                 12. BLOCK TEXT COMMANDS

BOXER provides commands to cut, copy, append, paste,
delete, and print marked text blocks.  In addition,
commands for writing marked blocks to disk and for
performing alphabetic sorts and case operations on marked
blocks are provided.  The following sections describe the
Block Text commands.

!516,409

12.1 Mark Column                                   <Alt C>

The Mark Column command begins the marking of a
rectangular area of text.  A reverse video block is placed
at the current cursor position.  As the cursor is moved
through the file the rectangle of text between the cursor
and the start mark is displayed in reverse video.  Any
cursor movement command may be used to move the cursor -
including the Search and Goto commands.  Additionally, the
mark can be advanced by typing characters from the
keyboard - a search is performed automatically for the key
struck and the mark is advanced to that character.

Marking can be terminated by invoking the Mark Column
command again, or by use of the Escape command.  All
commands which alter text are disabled during marking,
except the Replace command.  Marking is automatically
terminated by the cut and delete commands described below.
Other commands purposely leave the text marked in case
additional operations on the marked text are desired.

!501,386

12.2 Mark Block                                    <Alt M>

The Mark Block command begins the marking of a text block.
A reverse video block is placed at the current cursor
position.  As the cursor is moved through the file the
text between the cursor and the start mark is displayed in
reverse video.  Any cursor movement command may be used to
move the cursor - including the Search and Goto commands.
Additionally, the mark can be advanced by typing
characters from the keyboard - a search is performed
automatically for the key struck and the mark is advanced
to that character.  Thus, by typing a '.' the mark could
be extended quickly to the end of a sentence.

Marking can be terminated by invoking the Mark Block
command again, or by use of the Escape command.  All
commands which alter text are disabled during marking,
except the Replace command.  Marking is automatically
terminated by the cut and delete commands described below.
Other commands purposely leave the text marked in case
additional operations on the marked text are desired.

!502,361

12.3 Print Block                                   <Alt P>

The Print Block command provides for the printing of
marked text to a serial or parallel printer.  You will
first be asked if you wish to use printing parameters
(section 15.1).  If the Print Block command is requested
when there is no text marked, you will be asked if the
entire file is to be printed.  Because some printers are
unable to process tab characters, and because BOXER
supports typewriter style tab stops, tab characters
within the text being printed are expanded to spaces
before being sent to the printer.  The Print Block command
can be aborted in-process by using the Escape command.

!503,402

12.4 Write Block                                   <Alt W>

The Write Block command provides for the writing to disk
of a marked area of text.  This command makes it easy to
extract sections of text from one file for later addition
into another file.  The Write Block command is bound to
the same key as the Write File command.  The editor
performs a Write Block if text is marked, or a Write File
if text is not marked.

!504,367

12.5 Cut Block                                       <[-]>

The Cut Block command removes the currently marked area
from the file and places it into a scrap buffer for later
use by the Paste command.  If no text is marked, the
current line is cut to the scrap buffer.  This command is
useful for MOVING text from one part of a file to another.
The content of the scrap buffer is cleared prior to
cutting the marked area or current line into it.

!505,366

12.6 Copy Block                                      <[+]>

The Copy Block command copies the currently marked area
from the file into a scrap buffer for later use by the
Paste command.  If no text is marked, the current line is
copied to the scrap buffer.  The original text is not
disturbed.  This command is useful for COPYING text from
one part of a file to another.  The content of the scrap
buffer is cleared prior to copying the marked area or
current line into it.

!506,379

12.7 Paste Block                                     <Ins>

The Paste Block command copies text from the scrap buffer
into the current file at the current cursor position.  The
scrap buffer is not altered by this command; subsequent
Paste Block commands would continue to insert text from
the scrap buffer into the file.  The Paste Block command
can also be used to insert text (from the FIRST line in
the scrap buffer) into the string being entered in the
Message Line Editor.

!507

12.8 Delete Block                                 <Delete>

The Delete Block command deletes the currently marked area
from the file.  The block is NOT placed in the scrap
buffer and so cannot be restored by the Paste Block
command (though it could be restored by UNDO).  The Delete
Block command is bound to the same key as the delete
character command.  The editor will perform a Delete Block
if text is marked, otherwise a Delete Character is
performed.

!508,368

12.9 Destructive Append Block                     <Ctrl _>

The Destructive Append Block command deletes and appends
the currently marked block to the scrap buffer for later
use by the Paste command.  If no text is marked, the
current line is deleted and appended to the scrap buffer.
The content of the scrap buffer is NOT cleared prior to
appending the block to it.

!509,376

12.10 Non-Destructive Append Block                <Ctrl \>

The Non-Destructive Append Block command appends the
currently marked block into the scrap buffer for later use
by the Paste command.  If no text is marked, the current
line is appended to the scrap buffer.  The marked text (or
current line) is NOT disturbed.  The content of the scrap
buffer is NOT cleared prior to appending the block to it.

!510,394

12.11 Block Utilities                                <[*]>

The Block Utilities command provides access to the Case,
Fill, Detab, Invert, Sort, and Total commands.  After
marking the area of interest, select the Block Utilities
command.  A prompt will be displayed in the message area
for selection of the desired utility.

Case:
The Change Case utility will prompt for 'Upper Lower Swap
Capitalize'.  The options are described below.

  Upper      - convert marked text to all UPPER case
  Lower      - convert marked text to all lower case
  Swap       - reverse the case of marked text
  Capitalize - Capitalize the 1st letter of each word

!516

Fill:

The Fill utility provides the capability to fill the
currently marked area with a character of your choice.
After the fill character has been specified the marked
area will be filled entirely with that character.  This
command is especially useful when used to fill a marked
column with a specific character.

!511

Detab:

The Detab utility provides a means to automatically
convert Tabs to Spaces with a marked range of lines.  Tabs
are converted to Space intelligently, according to their
column position within the line.  All lines within the
marked ranged are detabbed, regardless of the column
positions of the start or end mark.

!511

Invert:

Upon selection of the Invert operation the marked lines
will be inverted and redisplayed.  The last marked line
will become first within the block, and the first marked
line will become the last.

Example:
          the                          house
          big        would become      green
          green                        big
          house                        the

!512

Sort:

The Block Sort utility will first prompt for Ascending or
Descending.  Ascending provides an A-Z sort, Descending
gives Z-A.  Next a prompt will appear for Alphabetic or
Numeric.  Select Numeric if you wish for the marked lines
to be sorted based on their numeric values.  (Numeric
Sorts are performed on integer values, and disregard
digits after a decimal point).  Lastly, a prompt will
appear for Sensitive or Insensitive.  An Insensitive sort
will treat upper and lower case characters as equivalent.
After these prompts have been satisfied the currently
marked lines will be sorted and redisplayed.

The sort performed is sensitive to the column position of
the starting (upper) mark.  If a sort is desired on a
column other than the first column, move the cursor to
that column before you begin marking.  The column location
of the end marker is not considered.  The end marker is
used only to determine the last line affected by the sort.

!513

Total:

The Block Total utility can be used to numerically total a
column of integer values.  Mark the range of lines to be
totaled with the start mark positioned in the column where
the numbers begin.  Select the Total option and the total
and average of the marked lines will be displayed in the
message area.  Note: Tab characters can confuse the total
utility.  You may wish to detab the area to be sorted
prior to totaling if you are operating on a column other
than column 1.

!515

Blanks:

The Blanks utility removes Spaces and Tabs from the ends
of lines in the marked range.  Mark the range of lines to
be operated upon and select this option.  If trailing
Spaces or Tabs are found they will be deleted and the
number removed will be reported.

!520

12.12 Block Indent                            <Space, Tab>

While marking text, the Space and Tab keys can be used to
indent the entire marked block with either a Space or a
Tab character, respectively.  This command can be useful
to increase the level of indent of several lines of a file
with just a few keystrokes.  The Spaces or Tabs are
inserted at the current cursor column, thus making
sophisticated columnar operations possible.

!525

12.13 Block Unindent                           <Backspace>

While marking text, the Backspace key serves to reduce the
level of indent of the entire marked block.  If the marked
block of text is not indented, the first character of each
line is deleted.  This command can be useful to decrease
the level of indent of several lines of a file with just a
few keystrokes.

|600

                13. MISCELLANEOUS COMMANDS

There are some editor commands which do not logically
group in the previous sections.  These commands are
presented in the following sections.

!601

13.1 Escape                                       <Escape>

The Escape command is used to escape from marking, search
and replace sessions, printing, help, message line input,
and other commands.  The Escape command is never
dangerous, so if you find yourself in the middle of a
command you didn't want to execute, use the Escape
command.

!602,311

13.2 Help                                          <Alt H>

The Help command displays context sensitive help
information in a scrollable pop-up window.  Whenever
possible, the information displayed will be pertinent to
the operation which you are about to perform.  If you are
being prompted for a line number to Goto, for example, the
Help command will display information which pertains to
the Go to Line # command.  A particularly effective way to
use the Help command is to use the pull-down menu system
to locate a topic of interest.  When issued from anywhere
within the pull-down menu system, the Help command will
display help for the command currently highlighted in the
menu.

The text in the pop-up help window can be scrolled using
the Up and Down arrow keys if its length exceeds the
height of the window.  The Page Up and Page Down keys are
also active for scrolling within a help section.  The Left
and Right arrow keys can be used to move to the previous
and next Help sections respectively.  The Escape command
is used to exit the Help display.

!603,285

13.3 Count                                            <F5>

The Count command displays a report of the number of
characters, words, and lines in the current file.  If text
is marked, the count will be computed on the marked area
only.  A statistic showing what percentage of the file is
represented by the report is also given.

!604,314

13.4 Integer Calculator                               <F7>

The Integer Calculator command prompts on the command line
for an expression to be evaluated.  Integers are whole
numbers - numbers without decimal points.  Expressions can
be arbitrarily complex, conventional rules for operator
precedence are obeyed.  Parentheses can be used to control
the order of evaluation.  The result of the expression is
reported in four bases and, if appropriate, as an ASCII
character.

Entering a number without other operators provides a quick
way to perform base conversions.  Numbers may be entered
in any of four bases or ASCII, and bases may be mixed
within the expression.  The following prefixes are used to
denote the bases:

     x  hexadecimal   ex.  xFF3D
     d  decimal       ex.  d1234 or 1234
     o  octal         ex.  o37
     b  binary        ex.  b1101011
     a  ASCII         ex.  aG

  Operators supported are:

     +  addition
     -  subtraction
     *  multiplication
     /  integer division
     %  modulus
     &  logical AND
     |  logical inclusive OR
     ^  logical exclusive OR
     >> bit shift right
     << bit shift left

To perform arithmetic on floating point numbers, omit the
decimal points during entry and shift the decimal
appropriately in the result.

!605,279

13.5 ASCII Value                                    <menu>

The ASCII Value command prompts for a keyboard key to be
pressed.  Once pressed, the ASCII value of that key will
be displayed in four bases: hexadecimal, decimal, octal
and binary.  Also displayed are the main, auxiliary, and
shift status bytes for the key pressed.  This information
is of interest to programmers.  The editor remains in this
mode, displaying ASCII values for all keys pressed, until
the Escape command is entered.

!608,320

13.6 Keystroke Multiply                            <Alt Y>

The Keystroke Multiply command provides a method for
multiple execution of the same key.  When invoked, a
prompt will appear on the message line for the multiply
value.  After entering the value, the next key or command
entered will be executed repetitively.  Text keys or
command keys can be multiplied.  The multiplication value
is terminated after the next keystroke.  This command
makes it easy, for example, to create a long string of
identical characters without having to count them.  The
Keystroke Multiply command is disallowed during macro
recording - however, the playback of a macro may be
multiplied.

!610,426

13.7 Ruler                                           <F11>

This command provides a floating multi-scale ruler which
can be used to measure text within a document.  The ruler
can display scales for 10, 12, 15 and 17 character/inch
output in all of the following units: columns, inches,
centimeters and picas.  Many of the cursor motion commands
are recognized so that different parts of the file beneath
the ruler can be easily examined.

!612,298

13.8 Drawing Mode                                    <F12>

The Drawing Mode command provides the ability to do simple
line drawing within a file.  Several modes of drawing are
available: each combination of single and double ruling
characters, simple ASCII characters and other solid
blocks.  Once Drawing Mode has been entered, the path of
the cursor is traced with the selected line style.  The
Escape command is used to exit drawing mode.

!614,304

13.9 File List                                  <Shift F1>

See Section 8.12

!616,381

13.10 Status Window                             <Shift F2>

The Status Window command displays a window which contains
a report of the editor's current configuration.  The state
of many of the configuration options is displayed, the
current search pattern, current file, available memory,
and other useful information.

!618,278

13.11 ASCII Chart                               <Shift F3>

This command displays a pop-up window which shows ASCII
characters 0-255 and their numeric values.  The SPACE key
will toggle between the hexadecimal, decimal and octal
displays.  The first page of the chart shows characters
0-127, the second page shows 128-255.  The Page Up and
Page Down commands will toggle between pages.

The four arrow keys are used to position a pointer to
characters in the display.  The Enter command will insert
that character at the current cursor position.  This
provides a simple method for entering accented characters,
for example.

The display page and base are stored so that subsequent
requests for the ASCII chart will return to the same page
and base.  The Escape command is used to exit the display.

!620,316

13.12 Keyboard Reconfigure                      <Shift F6>

The Keyboard Reconfigure command allows you to load a key
definition file which defines the mapping between editor
commands and key sequences.  BOXER has been supplied with
ready-made key definition files for a several popular
editors.  BOXER also has a standalone utility called
RECONFIG.EXE which allows you to create key definition
files of your choosing.  Read the file RECONFIG.DOC for
full information on this utility.

BOXER will automatically adjust the key assignments which
are displayed while navigating within the pull-down menus
to reflect the current key assignments.  BOXER also
adjusts the key assignments displayed during online help
to reflect the reassignment.

NOTE: macros are stored as commands, not keys, so a change
in keyboard configuration will not affect macro playback.

!622,284

13.13 Calendar                                  <Shift F4>

The Calendar command displays a window with a calendar for
the current month and year, as read from the system clock.
The Up and Down arrow keys increment and decrement the
year.  The Left and Right arrow keys increment and
decrement the month.  The Escape command is used to exit
the calendar display.

!624,392

13.14 Typewriter                                <Shift F8>

The Typewriter command enables a mode in which input is
taken on the message line and passed to the printer each
time the Return key is pressed.  This mode can be useful
when a couple of lines of text need to be printed to the
printer to label output, address an envelope, etc.  The
Escape command is used to exit Typewriter mode.

!626,427

13.15 Insert Date                              <Shift F11>

This command causes the current system date to be inserted
at the current cursor position.  The COUNTRY setting in
CONFIG.SYS is consulted to determine the proper format and
date separator characters.

!628,428

13.16 Insert Time                              <Shift F12>

This command causes the current system time to be inserted
at the current cursor position.  The COUNTRY setting in
CONFIG.SYS is consulted to determine the proper format and
time separator characters.

!636,296

13.17 DOS Command/Shell                               <F9>

The DOS Command/Shell option provides the capability to
execute a single DOS command from within the editor or to
initiate a DOS shell session.  The command to be executed
is entered on the message line and a return to the editor
occurs immediately following execution of the command.  If
a '%1' sequence appears in the command to be executed,
that sequence will expanded to the full path name of the
current file before being executed.

If a DOS shell is desired, type 'DOS' and the editor will
initiate a command shell for executing DOS commands.
BOXER swaps the editor and all edited files either to EMS
memory (if available) or to a disk file, so that all
available memory will be available for the shell session.

For a DOS command, BOXER will use only available memory
while trying to execute the command.  If this proves
insufficient, use the DOS Shell to issue the command.

!638

NOTE: Do not invoke any program from within BOXER which
installs itself as a memory resident utility.  This
restriction applies to all Terminate and Stay Resident
(TSR) programs, including the DOS PRINT command.  These
programs should be run initially from the DOS command line
to ensure they are properly installed.  This restriction
is not due to any limitation of BOXER, and is in fact
sound advice for any other applications which allow access
to DOS during their execution.

NETWORKS: Use of the DOS Shell command from within BOXER
should be used especially carefully on a system attached
to a network.  It is strongly recommended that you save
your files to disk before issuing this command when
editing on a networked PC.

!640

The environment variable BOXER_SWAPPATH, if present, will
be consulted by BOXER to determine where best the program
can be swapped to for a DOS command/shell.  If available,
set this environment variable to a RAM disk to speed the
swapping process which occurs before entering DOS.

For example:
                set BOXER_SWAPPATH=E:\

might be used if E: designated a RAM disk.  If this
environment variable is not assigned a temporary file
will be written to the default drive.

|700

                   14. CURSOR MOVEMENT

BOXER provides a large number of commands to facilitate
cursor motion throughout a document.  Cursor motion
commands have been assigned to keys in a logical
progression.  Cursor keys are (generally) recognized in 3
shift states: Unshift, Shift, and Control.  The shift
states should be imagined to increase in power in the
order just listed.  That is, a Control arrow key causes
more motion than a shifted arrow key, and a Shifted key
causes more than Unshift.  In the case of the Left and
Right arrow keys, the movement proceeds: character, word,
and start/end of line.  For the Up and Down arrow keys,
the movement proceeds: line, and previous/next pattern.
The Control Up and Down arrow keys do not generate any
keyboard information, and so cannot be sensed.  This
hierarchical progression should make it easier to recall
the commands associated with each shift state.

All cursor movement commands act on the current file in
the current window.  Cursor commands are by nature
non-destructive.

!701,257

14.1 Cursor Up                                  <up arrow>

The Cursor Up command moves the text cursor up one line,
maintaining the column position.  If the cursor is at the
top edge of a window the file will scroll down to display
the new line.  If the cursor is on the first line of the
file, no movement occurs.

!702,258

14.2 Cursor Down                              <down arrow>

The Cursor Down command moves the text cursor down one
line, maintaining the column position.  If the cursor is
at the bottom edge of a window the file will scroll up to
display the new line.  If the cursor is on the last line
of the file, no movement occurs.

!703,259

14.3 Cursor Left                              <left arrow>

The Cursor Left command moves the text cursor left one
column.  If the cursor is at the left edge of a window,
and the file is scrolled, the file will scroll right to
display the new column.  If the cursor is at the left edge
of a window and the file is not scrolled, no movement will
occur.

!704,260

14.4 Cursor Right                            <right arrow>

The Cursor Right command moves the text cursor right one
column.  If the cursor is at the right edge of a window
the file will scroll right to display the new column.
Notice that the cursor does not advance to the next line
when the end of a line is crossed.  This allows for easier
character insertion past the end of a line; tabs and/or
spaces are automatically inserted to fill to the cursor
position.

!705,261

14.5 Page Up                                        <PgUp>

The Page Up command displays the previous page of the file
in the window.  The number of lines moved depends on the
height of the current window and the paging overlap value
(section 16.5).  If the first page of the file is
currently displayed, no movement occurs.

!706,262

14.6 Page Down                                      <PgDn>

The Page Down command displays the next page of the file
in the window.  The number of lines moved depends on the
height of the current window and the paging overlap value
(section 16.5).  If the final page of the file is
currently displayed, no movement occurs.

!707,312

14.7 Top of Screen                                  <Home>

The Top of Screen command positions the text cursor to the
top line of the current window, maintaining the column
position.

!708,300

14.8 Bottom of Screen                                <End>

The Bottom of Screen command positions the text cursor to
the bottom line of the current window, maintaining the
column position.

!709,377

14.9 Top of File                               <Ctrl Home>

The Top of File command positions the cursor to the top
line of the file, maintaining the column position.

!710,302

14.10 Bottom of File                            <Ctrl End>

The Bottom of File command positions the cursor to the
last line of the file, maintaining the column position.

!711,397

14.11 Word Left                         <Shift left arrow>

The Word Left command moves the cursor to the beginning of
the previous word.  If necessary, the cursor will move to
the previous line.  The definition of a word has been
selected to provide meaningful cursor movement across
program source code.

!712,398

14.12 Word Right                       <Shift right arrow>

The Word Right command moves the cursor to the beginning
of the next word.  If necessary, the cursor will move to
the next line.  The definition of a word has been selected
to provide more meaningful cursor movement across program
source code.

!713,282

14.13 Start of Line                      <Ctrl left arrow>

The Beginning of Line command moves the cursor to the
beginning of the current line.  If the file was scrolled
right, a full return to column 1 will occur.

!714,301

14.14 End of Line                       <Ctrl right arrow>

The End of Line command moves the cursor to the end of the
current line.  If the line is longer than can be viewed in
the window, the file will scroll left as needed to display
the end of line.

!715,328

14.15 Page Left                                <Ctrl PgUp>

The Page Left command scrolls the file left by half the
width of the window.  If the file is not scrolled right,
no movement will occur.

!716,329

14.16 Page Right                               <Ctrl PgDn>

The Page Right command scrolls the file right by half the
width of the window.

!717,281

14.17 Back Tab                                 <Shift Tab>

The Back Tab command provides for backward cursor movement
to a prior tab stop.  If necessary, the file will scroll
right to reach a prior tab stop.

!718,299

14.18 Edge Toggle                              <Shift [5]>

The Edge Toggle command moves the cursor alternately
between the left edge, middle, and the right edge of the
window.  The cursor moves first to the middle, then right
edge, then left edge.

!719,310

14.19 Goto Line or Column                          <Alt G>

This command provides for absolute movement to a specified
line number or relative movement from the current line.
A prompt for the line number will appear on the message
line.  If a number without a plus or minus sign is
entered, the request is taken as absolute and the cursor
is moved directly to the requested line.  If the number is
preceded by a negative sign (-), the cursor is moved up by
the requested number.  If a plus sign (+) precedes the
number, the cursor is moved down by the requested number.
Any entries which would cause movement past the start or
end of file simply move to that extreme.

To position the cursor to a particular column, precede the
entry with the letter C. Thus "C55" would move the cursor
to column 55.  This feature can be especially useful when
used within a Macro to move the cursor to a known column.

!720,307

14.20 Drop Text Anchor                             <Alt A>

The Drop Text Anchor command records the current cursor
position in the current file for later return via the Jump
to Text Anchor command.  Up to 8 text anchors can be
dropped for each file being edited.  If a line which
contains a text anchor is deleted, that reference point is
lost.  A Text Anchor can be deleted by jumping to it (see
next section) and issuing this command immediately.  Text
Anchors are used to mark several positions of interest
within a large file so that they can be returned to
quickly.

!721,315

14.21 Jump to Text Anchor                          <Alt J>

The Jump to Text Anchor command is used to return to a
previously dropped Text Anchor.  The command will jump
between as many text anchors as have been dropped, up to 8
anchors can be used.  A Text Anchor can be deleted by
issuing the Drop Text Anchor command immediately after
issuing this command.  Text Anchors are used to mark
several positions of interest within a large file so that
they can be returned to quickly.

|800

               15. WORD PROCESSING COMMANDS

BOXER provides some of the more useful features found in
word processors.  These features have been added in an
effort to enable you to perform small word processing jobs
without having to use a word processing program, and thus
sacrifice the power of a programmer's text editor.  The
word processing commands have been assigned to the
Control-Function Keys and are explained in the following
sections.

!801,357

15.1 Set Printing Parameters                     <Ctrl F1>

The Set Printing Parameters command provides for the
setting of a group of parameters which control the format
of the printed page.  The following parameters can be set:

 printer port              select LPT1 through LPT4
 lines per page            (66 for 11" form @ 6 LPI)
 columns per page          (80 for 8-1/2" form @ 10 CPI)
 left margin               # cols of margin on left side
 right margin              # cols of margin on right side
 margin above header       # lines above header line
 left header text          text for left header
 center header text        text for center header
 right header text         text for right header
 header underline char     character to underline header
 margin below header       # lines between header and body
 margin above footer       # lines between body and footer
 footer overline char      character to overline footer
 left footer text          text for left footer
 center footer text        text for center footer
 right footer text         text for right footer
 margin below footer       # lines below footer line
 line spacing              1=single, 2=double, 3=triple...
 start printing at pg #    page # to begin printing at
 stop printing at pg #     page # to stop printing at
 number first pg as pg #   page # on 1st page printed
 print line numbers        If YES, line #s will be placed
                           at left of each output line
 pause between pages       If YES, printing will pause at
                           page btm to allow manual feed
 send FF to eject page     If YES, a formfeed character
                           will be used after the footer
 send FF at end of job     If YES, a formfeed character
                           will be sent at end of job
 swap H/F for recto/verso  If YES, the left H/F string and
                           right H/F strings are swapped
                           for right facing pages
 skip header on page 1     If YES, the header will not
                           appear on page #1
 skip footer on page 1     If YES, the footer will not
                           appear on page #1
 printer code filename     name of file with control codes
                           for the attached printer

!802

Notes:

Users with Serial printers will need to use the DOS 'MODE'
command to configure their serial port for use as a
printing port.  Refer to your DOS manual for details on
how this is accomplished.

The actual right margin of a body of text on output is
determined by the text width within the file being
printed, the left margin, and the columns per page.  The
right margin parameter provides a means to align headers
and footers with the right edge of the text body - not to
automatically reformat existing formatted text.  No
reformatting of text occurs during printing, nor simply
because a change was made to printing margins.  To change
the width of a paragraph the text width must be changed
(section 15.4) and the paragraph must be manually
reformatted (section 15.10).

Header and Footer lines each contribute a single line to
the overall top and bottom margins even if no text is to
appear on these lines.

A page break can be forced prematurely by placing a lone
form feed character (ASCII 12) in column 1 of the text
being printed.  The page break will be handled
intelligently - blank lines will be sent to the printer
and the footer line will be printed.

!802

Substitution Sequences

Within the header and footer strings there are several
substitution sequences which can be used.  These sequences
provide a convenient and flexible method of inserting
time, date, filename, and page number elements within the
header and footer strings.  The lead character '~' is used
to 'escape' the sequences so they are not interpreted
as printable header/footer text.

       sequence:   expands to:
         ~nn       page number
         ~ff       current filename
         ~pp       current file path
         ~mm       month  (1-12)
         ~dd       date   (1-31)
         ~yy       year   (two digit)
         ~HH       hour   (0-23)
         ~MM       minute (leading zero)
         ~SS       second (leading zero)

Ex.  ~mm/~dd/~yy  might yield  11/23/88
     file: ~ff    might yield  file: manual.doc

After setting the Print Parameters you will be asked to
supply a filename for the print parameters to be written
to.  The name of the current file with a '.PP' extension
is suggested for you.  A '.PP' file extension will be
added automatically to the filename entered.  The file
'DEFAULT.PP' is loaded automatically upon startup.

!803,356

15.2 Read Print Parameters                       <Ctrl F2>

The Read Print Parameters command allows for the retrieval
of previously written printing parameters from a disk
file.  You will be asked to supply a filename to read the
print parameters from.  The name of the current file with
a '.PP' extension is suggested for you.  A file extension
of '.PP' will be added automatically to the filename
entered.  The file 'DEFAULT.PP' is loaded automatically
upon startup.

!804,391

15.3 Toggle Printer Codes                        <Ctrl F3>

The Toggle Printer Codes command toggles on and off the
recognition of a set of characters (240-249 decimal) as
embedded printer codes.  When ON, these characters will be
displayed as underlined (or specially colored) digits and
interpreted during printing as special codes to be
translated according to a printer definition file.  When
OFF, these characters have no special significance and are
displayed as themselves.  See section 18 for a full
discussion of embedded printer codes.

!805,373

15.4 Set Text Width                              <Ctrl F4>

The Set Text Width command allows you to set the number of
characters on a line for purposes of justification.  The
text width value will be used by the Line Left, Line
Center, Line Right and Paragraph Reformat commands when
justifying text.

!806,388

15.5 Toggle Wordwrap                             <Ctrl F5>

The Toggle Wordwrap command toggles on or off a mode in
which text is automatically justified to the current text
width (section 15.4) as it is typed.  When this mode is
active, paragraphs are reformatted automatically as they
are entered from the keyboard.  When this mode is off, no
automatic reformatting will be performed.  The default is
off.  Reformatting is performed only when the text width
is exceeded, so a manual reformat (section 15.10) may be
required if a formatted paragraph is later edited.

!807,370

15.6 Set Justify                                 <Ctrl F6>

The Set Justify command allows the mode of justification
used during paragraph reformat to be specified.  When
selected, a prompt appears for one of the four
justification types:

    Ragged Left - text will be justified flush
   against the right edge, the left edge being
                                  left ragged.

     Ragged Center - text will be centered
  within the current text width, the left and
           right edges being ragged.

  Ragged Right - text will be justified flush
  against the left edge, with the right edge
  being left ragged.

  Smooth - text will  be  flush against both the
  left and right margins.   Spaces are  inserted
  alternately  in  the left,  center,  and right
  portions of a line  to minimize the appearance
  of 'rivers and valleys' in the justified text.

Once selected, the justification mode will be used in all
future manual or automatic paragraph reformatting
operations.

!808,363

15.7 Line Left                                   <Ctrl F7>

The Line Left command moves the line at the cursor flush
against the left margin.  The cursor is moved to the line
below upon completion.  If text is marked, all lines
within the marked range are affected.

!809,362

15.8 Line Center                                 <Ctrl F8>

The Line Center command centers the line at the cursor
within the current text width (section 15.4).  The cursor
is moved to the line below upon completion.  If text is
marked, all lines within the marked range are affected.

!810,364

15.9 Line Right                                  <Ctrl F9>

The Line Right command moves the line at the cursor flush
against the right margin.  The cursor is moved to the line
below upon completion.  If text is marked, all lines
within the marked range are affected.

!811,327

15.10 Paragraph Reformat                        <Ctrl F10>

The Paragraph Reformat command reformats the current
paragraph from the current line to the end of the
paragraph.  The paragraph is reformatted according to the
current text width (section 15.4) and the current
justification mode (section 15.6).  The cursor is placed
on the first line of the next paragraph upon completion.

BOXER uses the amount of indent on the last line of the
paragraph to determine the indent level for the whole
paragraph.  A paragraph can be made "fully indented" by
manually indenting the last line of the paragraph and then
reformatting.

The indent on the first line of the paragraph is not
applied to other lines in the paragraph.  A "hanging
indent" can be achieved by placing less indent on the
first line of the paragraph than on the last.  Likewise,
if the first line of a paragraph has extra indent, it too
will be preserved.

Ordinarily, BOXER looks for a blank line to locate the end
of a paragraph.  The '<' character can also be used to
denote the end of a paragraph, as indicated by the SII
News Editing standard.  This technique will allow the
reformat command to operate properly on paragraphs which
do not have blank lines between them.

|900

                16. CONFIGURATION OPTIONS

BOXER provides several configuration options to further
enhance its flexibility.  The configuration options have
been bound to the Alt function keys whenever possible.
All configuration options are non-destructive.

!901,387

16.1 Visible Spaces                               <Alt F1>

The Visible Spaces command toggles on or off a mode in
which space, tab, and newline characters are displayed as
visible graphics characters.  These characters are often
called 'whitespace'.  This mode is useful for locating
extraneous space characters at the ends of lines, or to
see exactly what characters reside in the file.  The
default is Invisible spaces.

!902,383

16.2 Set Search Parameters                        <Alt F2>

The Set Search Parameters command allows for the
specification of case sensitivity and whether 'regular
expressions' (wildcards) are to be recognized during the
search.  Select case insensitive if you would like 'fred'
to match 'Fred' or 'FRED'.  Select NO regular expressions
if you would like '******' to match a string of asterisks,
rather than a string of anything.  Case Sensitive searches
are faster than Case Insensitive, searches without regular
expressions are faster than those with.

!903,385

16.3 Toggle Indent                                <Alt F3>

The Toggle Indent command toggles on or off a mode in
which automatic line indentation is performed.  Auto
indentation is useful for writing source code for
languages in which indentation is used to indicate
nesting.  When toggled on, auto indent mode causes the
Enter and Insert commands to create a new line which has
indentation matching that of the current line.  The
default is auto indent on.

!904,382

16.4 Toggle/Set Autosave                          <Alt F4>

The Toggle/Set Autosave command toggles on or off a
feature which will automatically write to disk the file
being edited after a specified number of changes have been
made to the file.  When autosave is toggled on, a message
will appear showing the current change value and prompting
for a new value.  If you are satisfied with the current
value, type Enter or Escape.  Otherwise, you may enter a
new value.  The default is off (no automatic save).

!905,371

16.5 Set Paging Overlap                           <Alt F5>

The Set Paging Overlap command allows you to specify the
number of lines of overlap which will be used for the Page
Up and Page Down commands.  A paging overlap value of 2
(the default) would cause the bottom 2 lines to remain
visible as the top 2 lines after a Page Down command is
issued.

!906,378

16.6  Tab/Space Usage                             <Alt F6>

The Tab/Space Usage command toggles between modes in which
either spaces or tabs are inserted when the Tab key is
struck.  In Spaces mode, an equivalent number of spaces
sufficient to advance the cursor to the next Tab Stop are
inserted when the Tab key is pressed.  Additionally, when
characters are automatically added to pad an underlength
line to the cursor position for insert past end of line,
these characters will all be spaces.  In Tabs mode, Tab
characters (ASCII 9) are inserted when the Tab key is
pressed, and Tabs and Spaces are used to extend under
length lines when needed.

If you wish to create a file which has no Tab characters
within it, toggle to Spaces mode before creating the file.
This command does not affect Tabs which are already
resident within a file.  The Detab command can be used to
Detab a range of marked lines (section 12.11).

!907,405

16.7 Set/Save Colors                              <Alt F7>

The Set/Save Colors command allows users with color
monitors to select the colors to be used for various
portions of the display screen.  Users with monochrome
systems can make selections from a restricted menu with
black, white and bright white as the only available
colors.  A menu appears showing the various text types
along with a miniaturized editor screen.

As colors are selected for each text type, the miniature
screen changes to show the effect of that change.  The
Escape command is used to exit the option.  If the color
selection is valid, the screen will be repainted to
reflect the changes and an option to save the color
pattern to disk will be provided.  You can overwrite an
existing color file, or simply type a name for a new file.
Any color selection which would cause invisible text
(background same as foreground) is disallowed.  The file
DEFAULT.CLR is automatically loaded upon startup.

!908,358

16.8 Load Colors                                  <Alt F8>

The Load Colors command provides the opportunity to load a
previously stored color setup from disk.  BOXER is
supplied with several color setup files from which to
choose; additional setups can be saved after using the
Set/Save Colors command described above.  The file
DEFAULT.CLR is automatically loaded upon startup.

!909,372

16.9 Set Tab Width(s)                             <Alt F9>

The Set Tab Width(s) command enables you to specify the
screen width of the tab character, or to specify a varying
set of widths.  Tab stops every 'n' columns are achieved
by simply entering the number 'n'.  If variable tab widths
are desired, the values are listed as below:

              4,9,12,18,22,30,43,49

As these values represent tab widths, the tab stop columns
will be at 5,10,13 etc.  The width of the final tab will
be used for points beyond the range given.  Spaces or
commas may be used to separate the values entered.  The
screen will rewrite to display the effect of the new
value(s).

Unless disabled by option (section 16.6), BOXER inserts
tab characters, not spaces into the file.  If a file is
printed from outside BOXER, tabs will be interpreted by
the printer as having width 8. If you wish to print a file
with varying tab widths, you must do so from within BOXER
so that the tabs are expanded according to the widths
specified.

!910,396

16.10 Toggle File Backups                        <Alt F10>

The Toggle File Backups command toggles between modes in
which backup copies of files written to disk are/are not
made.  Ordinarily, when writing a file to disk, the
original is preserved in a BACKUP subdirectory in BOXER's
home directory (usually \BOXER).  Those who edit files so
large that both the original and backup cannot reside on
the same disk will want to disable file backups.  NOTE:
files in the BACKUP directory should be deleted period-
ically to recover disk space.

!911,295

16.11 Toggle RAM/BIOS Video Output               <Alt F11>

The Toggle RAM/BIOS Video Output command selects whether
BOXER writes to the screen directly through RAM or via
BIOS calls.  True PC compatibles support output through
video memory - which provides for faster screen update
than BIOS calls.  If your computer cannot support direct
RAM video output, use this command to select output via
BIOS calls.  If this is the case, it will probably be best
to invoke this option from the command line with -o option
before any RAM video output is attempted (section 19).

!912,389

16.12 Toggle Frames/Menus                        <Alt F12>

This command allows for the toggling ON and OFF of window
frames and/or the top menu bar.  Some users may wish to
forego one or both of these display elements to gain extra
screen lines for editing.  If the top menu bar is disabled
the F1 key will cause the menu to reappear on request.
Toggling window frames to OFF disables the ability to use
the mouse window closing, dragging, resizing, etc.
Likewise, if the top menu bar is turned OFF, the mouse
cannot be used to access menu commands.

!913,326

16.13 Toggle Passive Edit                         <Ctrl @>

The Toggle Passive Edit command allows the editor to be
run in a mode in which modifications to text become
impossible.  When selected, this command permits files to
be viewed passively without fear of accidental
modification.  All commands which are non-destructive
remain active.

!914,410

16.14 Video Rows                                   <Alt V>

The Video Rows command allows users with either EGA, VGA
or MCGA video adapters to exploit the capability of these
adapters to display more than 25 lines of text on the
screen.  If an EGA adapter is installed, this command will
allow selection of 25 or 43 lines.  If a VGA adapter is
installed, this command will allow selection of 25, 28, 43
or 50 lines.  This command will not operate if a
Monochrome Display Adapter (MDA) is active.

If Ultravision(tm) by Personics is active, BOXER will
sense this and allow you to switch into all modes which
are allowed for your video card.  A prompt will first
appear to select the number of rows, and then the number
of columns.  Ultravision offers screen sizes as large as
132 columns by 63 rows, depending on your video card.

If a utility program was supplied with your video card to
switch into alternate screen sizes, BOXER will recognize
these modes on startup and adjust accordingly.

|1000

                    17. MACRO COMMANDS

BOXER provides a keystroke macro facility which allows for
the storage of up to 26 macros and a macro which is
automatically executed upon startup.  Macros are created
'by example', that is, a series of keystrokes is typed and
stored for later playback.  A utility is also provided to
create an editable macro file - see BMAC.DOC for full
details.

The 26 macro assignments can be written to a disk file
which is automatically loaded upon startup.  A 'startup'
macro is also available which is automatically executed
each time the editor is invoked.  The startup macro can be
useful for storing configuration commands to initialize
the editor on startup.  (See Sections 19 and 20 for other
methods of editor configuration).

!1001,390

17.1 Assign Macro                                     <F8>

The Assign Macro command initiates and terminates the
storage of a macro.  When the command is first issued, a
prompt appears for the alphabetic key (A-Z) which the
macro is to be assigned to.  After pressing a letter,
keystrokes will be executed normally and saved in a
storage area.  If a macro already exists for that key, you
may either append or renew the macro.  If the selected key
has been assigned to another command by keyboard
reassignment, you will not be allowed to assign a macro to
it.

If the SPACE key was entered, a startup macro will be
stored and, after macros have been written to disk
(section 17.3), executed automatically each time the
editor is run.  Ordinary text may be entered, editor
commands, or any combination thereof.  A wait-for-key
command can be stored in the macro by issuing the same
Control sequence (Ctrl A, eg) of the macro being stored.

The storage of a keystroke macro is terminated by
issuing the Assign Macro command again.  Macros can be
up to 500 keystrokes in length.  Upon completion of the
macro, you will be offered a chance to name the macro.
This can aid in recalling stored macros.  Macro names
and key assignments are displayed in the Macro Chart
(section 17.6).

NOTE: macros are stored as commands, not keys, so a change
in keyboard configuration will not affect macro playback.

!1002

17.2 Play Macro                          <Ctrl A...Ctrl Z>

The Play Macro command causes keystrokes which have been
saved as a macro to be replayed.  If the letter 'A' had
been specified at the time the macro was saved, Ctrl A is
used to playback the macro.  Note that this command may
not be executed during macro storage, since recursive
macros are not permitted.  The play macro command may be
used in conjunction with the Multiply command to further
reduce keystrokes (section 17.5).

!1003,403

17.3 Write Macros                               <Shift F9>

The Write Macros command writes all macros stored to a
disk file.  A file extension of .MAC is automatically
added by the editor to the name you select.  Any filename
can be used to save the macros, but if you wish for the
macros to be automatically loaded upon startup, you should
enter the name 'DEFAULT' as a filename.  The Write Macros
command is disallowed during macro storage.

!1004,365

17.4 Read Macros                               <Shift F10>

The Read Macros command is used to read a disk file
containing the 26 macro definitions.  A file extension of
.MAC is automatically added by the editor to the name you
select.  This command is disallowed during macro storage.

!1005

17.5 Macro Examples

Example 1:

The following example shows how to create a macro which
will perform auto line numbering.

  1<enter><up arrow>     create initial number
  <F8>                   begin saving keystrokes
  A                      save macro on Ctrl A
  <Alt O>                clone the line
  <Alt +>                select increment cmd
  1<enter>               specify increment value
  <F8>                   stop saving keystrokes
  <Ctrl A>               replay as necessary

To further automate the process, the keystroke multiply
command could be used after the macro has been defined:

  <Alt Y>25<enter>       set multiply value to 25
  <Ctrl A>               play macro 25 times

Example 2:

The following example shows how to create a macro which
can be played when needed to reconfigure the editor:

  <F8>                   begin saving keystrokes
  Z                      save macro on Ctrl Z
  <Alt F3>               toggle auto-indent
  <Alt F10>              toggle file backups
  <Alt F9>8<enter>       set tab widths to 8
  <F8>                   stop saving keystrokes
  <Ctrl Z>               replay

The Ctrl Z sequence will now perform the configurations
above.

!1006,318

17.6 Macro Chart                                <Shift F5>

The Macro Chart command displays a pop-up window which
shows the status of each of the 26 macro areas.  Each
macro is labeled with the name which was provided at the
time it was recorded and the number of keys within the
macro.  If keyboard reassignment has assigned any of the
macro keys to other commands the macro key will be shown
as reassigned.

|1100

                18. EMBEDDED PRINTER CODES

BOXER provides the ability to access up to 100 printer
options by recognizing special 2-digit codes within a text
file.  These codes range from 00-99 and are inserted by
using the Alt-0 to Alt-9 keys.  (Be sure to use the digits
above the alphabetic portion of the keyboard, not the
numeric keypad.) The printer codes will appear as
specially colored or underlined digits to distinguish them
from ordinary text.

At print-time these codes are translated according to the
printer definition file named in the Printing Parameters
menu.  By default the Print Parameter menu names the file
DEFAULT.COD.  The printer definition file equates the
symbolic printer codes (00-99) with the actual ASCII
code(s) which your printer requires to activate a
particular printing option.

Examples:

  The word 18italics19 will be printed in italics

    The word 4italics5 will be printed in bold

Note that leading zeroes are only required when their
absence would create an ambiguous code sequence.
 
BOXER is supplied with an example printer configuration
file, and may have been supplied with a file for your
printer.  If not, consult the example configuration file
and your printer manual to construct a configuration file
for your printer.  Be sure to name the file with a ".COD"
file extension so that it will appear in the printer code
menu when accessed from within printing parameters.
You may then either rename this file to DEFAULT.COD or
place its name in the Printing Parameters menu in place
of DEFUALT.COD.

The recognition of printer codes can be disabled with the
Toggle Printer Codes command (section 15.3).

|1200

                 19. COMMAND LINE OPTIONS

Most of the commands which deal with BOXER's configuration
can be controlled by using command line options.  By using
command line options, it becomes possible to automate the
configuration of the editor via a batch file, without the
need to set the configuration upon entering the editor.
A collection of batch files might configure the editor
differently for different editing tasks.

Command line options can be displayed with the '-?' flag:

  -a#        autosave ON, value=#
  -b         file backups disabled
  -c         case insensitive search
  -dPATH     set editor's Home directory          
  -e         embedded printer codes OFF
  -f         file backups go in current directory
  -g#        go to line '#' on startup
  -h         hide window frames
  -i         auto indent OFF
  -j         juggle Insert/Typeover cursors
  -kr#       keyboard rate (0-31) (0=fast)    
  -kd#       keyboard delay (0-3) (0=short)   
  -ke        force Enhanced keyboard usage    
  -ks        force Standard keyboard usage    
  -kx        let rate/delay persist on exit   
  -k0        no keyboard adjustment at all
!1201
  -l         BOXER.LST files go in current directory
  -m         disable top menu bar        
  -n         force monochrome output
  -o         output via BIOS calls
  -p#        set paging overlap to #
  -qNAME     load key file "NAME"
  -r         regular expressions OFF
  -s         tab key inserts spaces
  -t#,#...   set tab widths
  -u#        set max # of Undo operations
  -v         visible spaces/tabs/newlines              
  -w#        wordwrap ON, text width=#
  -x         passive edit mode ON
  -y1        static clock display, no date
  -y2        static date display, no clock
  -zNAME     load macro file "NAME"
  -0         present file menu on startup
  -1         ignore the attached mouse
  -2         file/search menus on request
  -3         allow menus to wrap around
  -4         save/restore screen on entry/exit
  -5         allow Esc to access pull-down menus
  -6         activate Home-Home-Home style motion
  -7         disable extra "Quit" confirmation
  -8         no cursor size changes at all
  -9         no EMS swap for shell/compile
  -$         no "* End of File *" marker
  -%         no "contains NULL characters" warning
  -@#        set file menu sort style (0-4)
  -.         reformats 1 space after sentence enders
  -?         display usage

Example:

The following command line would invoke BOXER to edit the
file TEST.DOC, disable auto indent, and enable visible
spaces.

        b -i -v TEST.DOC

|1300

                 20. ENVIRONMENT SETTINGS

BOXER can also be configured by the use of environment
settings.  Environment settings are placed in the
AUTOEXEC.BAT file and are available for all programs to
read.  By placing an environment definition line in the
your AUTOEXEC.BAT file, you can control various
configuration options without using command line options
or issuing commands editor commands manually from within
the editor.  All of the options which are recognized on
the command line can be placed in the 'BOXER' environment
setting.

Example:

The following line could be added to the AUTOEXEC.BAT file
to configure BOXER to disable file backups, set the
editor's 'home' directory to \bestapps\boxer, toggle
window frames OFF, set tab widths to 8, and set wordwrap ON
to 72 columns:

  set BOXER = -b -d\bestapps\boxer -h -t8 -w72

Please note that a system reboot or manual execution of
AUTOEXEC.BAT is required in order to have the environment
settings take effect.

!1400

                  21. SIZES AND LIMITS

The following table summarizes the limits which BOXER
imposes on certain operations:


   # of open files            limited only by RAM
   # of open windows          limited only by RAM
   file size                  limited only by RAM
   line length                1020 characters
   undo                       4096 changed lines
   macro length               500 keys
   length of search string    40 characters
   search strings in menu     32
   files loaded from a        32
     prior session
   text anchors               8
   number of files in the     32
     edited files list
   number of files in the     200
     directory file list
   number of entries saved    30
     in message line history

|9000

                  22. USER DEFINED HELP

This section of Help is reserved for any text which the
user may wish to have quick access to.  This may include
programming related information such as operator
precedence tables, or more mundane topics such as a
telephone list.

To place your Help text here, edit the file 'ONLINE.HLP'
in BOXER's home directory.  Go to the bottom of the file
and locate this text.  Edit the file to contain the Help
text you desire.  After saving the file and returning to
DOS, type 'MAKEINDX' to update the help index file.  The
text which you added will then be available from the User
option of the Help menu.

NOTE: the maximum number of lines within a help section is
50.  You may add new sections by entering a line which
begins with a '!' and has section number in column 1 such
as '!9001'.  Be careful not to use any numbers lower than
9000.

