home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / editor / beav / beav133.txt < prev    next >
Text File  |  1994-01-30  |  91KB  |  1,938 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                                          THE
  16.  
  17.  
  18.                                         BEAV
  19.  
  20.  
  21.  
  22.  
  23.                               Binary Editor And Viewer
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.                                 Manual Copyright 1992
  31.                                     Version 1.33
  32.                                    August 9, 1992
  33.  
  34.  
  35.  
  36.                                          By
  37.                                     Peter Reilley
  38.                                  19 Heritage Circle
  39.                                  Hudson, N.H. 03051
  40.                                     pvr@wang.com
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.                       BEAV source and executable can be freely
  49.                       distributed for non-commercial purposes.
  50.  
  51.  
  52.  
  53.                                 BEAV User Manual                2
  54.  
  55.  
  56.                  Table of Contents
  57.  
  58.  
  59.           1.0  Introduction                                          3
  60.               1.1   Quick Start                                      4
  61.  
  62.           2.   Overview                                              5
  63.               2.1   Terms and Definitions                            5
  64.               2.2   The Screen Format                                5
  65.               2.3   Display Modes                                    7
  66.               2.4   Commands                                         8
  67.               2.5   Buffers                                          8
  68.               2.6   Files                                            9
  69.               2.7   Key Binding                                      9
  70.               2.8   Configuration                                   10
  71.  
  72.           3.   Command Description                                  11
  73.               3.1   Help                                            11
  74.               3.2   Cursor Movement                                 11
  75.               3.3   Buffer Management                               13
  76.               3.4   File Management                                 15
  77.               3.5   Window Management                               16
  78.               3.6   Inserting and deleting                          18
  79.               3.7   Search and Replace Commands                     20
  80.               3.8   Exiting BEAV                                    22
  81.               3.9   Printing                                        22
  82.               3.10  Keyboard Macros                                 23
  83.               3.11  Key Binding                                     23
  84.               3.12  Special Functions                               24
  85.  
  86.           4.   Alphabetical list of commands by name                27
  87.  
  88.           5.   Alphabetical list of commands by key binding         30
  89.  
  90.           6.   Release notes                                        33
  91.  
  92.           7.   Source Availability                                  36
  93.  
  94.  
  95.  
  96.                                 BEAV User Manual                3
  97.  
  98.  
  99.  
  100.           1.0   Introduction
  101.  
  102.                 BEAV is an editor that brings the features of a powerful
  103.           full screen editor to the editing of binary files.   It is the
  104.           only editor that I know of that does that.
  105.  
  106.                 When you need to edit a non-text file you generally have
  107.           two choices; a text editor or a file zap type editor.   Each
  108.           choice has significant disadvantages.
  109.  
  110.                 Text editors expect the file to be formatted in a certain
  111.           way.   At a minimum they expect that all lines be terminated by a
  112.           carriage return or line feed and be limited in length.   There is
  113.           no line length limit with BEAV.   Most text editors get confused
  114.           by bytes that are outside of the normal range (20 to 7E HEX).
  115.           In BEAV no special characters such as carriage return or line
  116.           feed affect the display aside from producing their numeric value.
  117.           BEAV can edit any file no matter the format.
  118.  
  119.                 The other choice is to use a file zap type editor which can
  120.           edit a binary file without difficulty.  These editors are often
  121.           very limited in their features and capabilities.   Most file zap
  122.           programs can edit a file only in HEX or ASCII.   They generally
  123.           operate on a sector basis and because of this they cannot insert
  124.           or delete data in the middle of the file.
  125.  
  126.                 All these limits are eliminated in BEAV.   You can edit a
  127.           file in HEX, ASCII, EBCDIC, OCTAL, DECIMAL, and BINARY.   You can
  128.           display but not edit data in FLOAT mode.   You can search or
  129.           search and replace in any of these modes.   Data can be displayed
  130.           in BYTE, WORD, or DOUBLE WORD formats.   While displaying WORDS
  131.           or DOUBLE WORDS the data can be displayed in INTEL's or
  132.           MOTOROLA's byte swap format.   Data of any length can be inserted
  133.           at any point in the file.   The source of this data can be the
  134.           keyboard, another buffer, of a file.   Any data that is being
  135.           displayed can be sent to a printer in the displayed format.
  136.           Files that are bigger than memory can be handled.
  137.  
  138.                 Some users may recognize the similarity to the EMACS text
  139.           editor that was written by Richard Stallman at MIT.   This is not
  140.           a coincidence.   I attempted to keep as much of the user
  141.           interface and functionality as possible given the very different
  142.           tasks of EMACS and BEAV.
  143.  
  144.  
  145.  
  146.                                 BEAV User Manual                4
  147.  
  148.  
  149.  
  150.            1.1  Quick Start
  151.  
  152.                 This is a brief description of the minimal set of commands
  153.           that are necessary to start using BEAV effectively.
  154.  
  155.                 The file-visit command, Ctl-X Ctl-V, can be used to read a
  156.           file in for editing.   The file can also be read in from the
  157.           command line; beav <edit_file>.
  158.  
  159.                 These commands can be used to navigate around the window.
  160.                      move-back-char      Ctl-B     moves left
  161.                      move-back-line      Ctl-P     moves up
  162.                      move-forw-char      Ctl-F     moves right
  163.                      move-forw-line      Ctl-N     moves down
  164.  
  165.                 The move-to-byte command, Ctl-X G, will prompt you for a
  166.           byte position to move to.
  167.  
  168.                 These commands will insert a zero byte at the cursor
  169.           position or delete the byte at that position.
  170.                      insert-unit         Ctl-X I
  171.                      delete-forw-unit    Esc D
  172.  
  173.                 The file-save command, Ctl-X Ctl-S, will save the data to
  174.           the file if a change has been made.
  175.  
  176.                 The help command, Esc ?, will display a list of all
  177.           commands and their current key bindings.
  178.  
  179.                 The abort-cmd command, Ctl-G, will abort any command that
  180.           is in operation.
  181.  
  182.                 The quit-no-save command, Ctl-X Ctl-C, will exit BEAV.   If
  183.           there is any data that has not been saved you will be warned.
  184.  
  185.  
  186.  
  187.                                 BEAV User Manual                5
  188.  
  189.  
  190.           2.    Overview
  191.  
  192.  
  193.            2.1      Terms and Definitions
  194.  
  195.                 Throughout this manual certain terms will be used to
  196.           describe the operation and structure of BEAV.
  197.  
  198.                 The data that BEAV is editing is held in a buffer that is
  199.           structured as a byte stream.   There are many commands that
  200.           affect the way that this byte stream is displayed on to the
  201.           screen.   Whatever display mode is chosen the data in the buffer
  202.           is not effected, only the presentation.
  203.  
  204.                 One such choice is to display the data as bytes, words, or
  205.           double words.   That is; 8 bit values, 16 bit values, or 32 bit
  206.           values.   Whatever choice is made the value of the selected size
  207.           will be displayed.   These values are referred to as units in
  208.           this manual.   Thus the 'delete-forw-unit' command deletes the
  209.           unit under the cursor.   If 32 bit units are being displayed then
  210.           4 bytes will be deleted.
  211.  
  212.                 Many commands in BEAV start by pressing the 'ESCAPE' key.
  213.           When this manual refers to a command that requires that the
  214.           'ESCAPE' key be pressed it will be abbreviated with 'Esc'.
  215.           Another frequently used key stroke to start commands is 'CONTROL
  216.           X'.   This in done by pressing the 'CONTROL' key then pressing
  217.           the 'X' key at the same time.   In this manual this will be
  218.           abbreviated by 'Ctl-X'.   Many commands contain other control
  219.           characters and these will be abbreviates similarly.   Thus the
  220.           'insert-unit' command will be listed as 'Ctl-X I'.   This will be
  221.           entered be pressing the CONTROL key and while holding it hitting
  222.           the 'X' key, release the CONTROL key then hit the 'I' key.
  223.  
  224.  
  225.            2.2      The Screen Format
  226.              BEAV presents information to the user in a number of areas.
  227.           The first is the window.   There will be at least one window
  228.           displayed on the screen at all times.   The window consists of
  229.           two areas.   The first is the display area.   This is where the
  230.           data that is in the buffer is displayed.   Most of the time the
  231.           cursor will be in this area, as this is where most editing is
  232.           done.  Each line in the display area will start with a number
  233.           that indicates the offset into the buffer for this line of data.
  234.           At the bottom of the display area for each window is the status
  235.           line.
  236.  
  237.                The status line presents the user with a number of specific
  238.           pieces of information.   The first is the program name which is
  239.           "BEAV".   Next there are some flags indicating the status of this
  240.           particular buffer.
  241.  
  242.  
  243.  
  244.                                 BEAV User Manual                6
  245.  
  246.  
  247.  
  248.                The first flag indicates if the buffer has been damaged by a
  249.           memory allocation failure.   If there is a '?' then the buffer is
  250.           bad, otherwise there will be a space.   Bad buffers are set to
  251.           read only.
  252.  
  253.                The next flag indicates if the buffer has been changed and
  254.           will need to be written out if the changes are to be saved.
  255.           This flag is a '*' if the buffer has been changed, otherwise
  256.           there will be a space.
  257.  
  258.                The next flag indicates insert/overstrike mode; 'I' for
  259.           insert, 'O' for overstrike.  This is only meaningful in ascii or
  260.           ebcdic mode.
  261.  
  262.                Then the buffer name followed by the file name.   A window
  263.           can be in read only, read/write, or read/write with size lock.
  264.           These  will be displayed as [RO], [RW], or [WL] respectively.
  265.           If auto-update is enabled then [AU] will be displayed.
  266.  
  267.                Next the cursor position in bytes and the character position
  268.           within the unit.   The next piece of information gives the format
  269.           that the data is being displayed in; HEX, OCTAL, DECIMAL, FLOAT,
  270.           BINARY, ASCII, EBCDIC.   If a data mode is selected then the size
  271.           in bytes (1, 2, 4) is displayed.  If the data is being  displayed
  272.           in Intel mode then the swapped flag is displayed, 'S'.   Lastly
  273.           the byte shift is displayed; 0 only for 8 bit data, 0 or 1 for 16
  274.           bit data, or 0, 1, 2 or 3 for 32 bit data.
  275.  
  276.                There can be multiple windows on the screen at the same time
  277.           but each window will have a status line at the bottom.
  278.  
  279.                The very bottom line on the screen is the prompt line.
  280.           This is where you enter data that BEAV requests.   If you want to
  281.           edit a new file you would type 'Ctl-X Ctl-V', BEAV would respond
  282.           with "Visit file:" on the prompt line.   The cursor would be
  283.           positioned after the prompt.   You would then enter the name of
  284.           the file that you wished to edit.
  285.  
  286.                If you entered the command by mistake, you can abort the
  287.           operation by typing a 'Ctl-G'.   'Control G' is a universal abort
  288.           command and can be used anywhere.   If you want to perform a
  289.           search you will enter the search string on this line.   When you
  290.           have entered the information that BEAV has requested hit 'Return'
  291.           and the cursor will return to it's original position in the
  292.           window display area.   The prompt line is also where error
  293.           messages are displayed.
  294.  
  295.  
  296.  
  297.                                 BEAV User Manual                7
  298.  
  299.  
  300.  
  301.            2.3      Display Modes
  302.  
  303.                 The data in the buffer can be displayed in a number of
  304.           formats.   First there is the display mode.   This can be either;
  305.           HEXADECIMAL, DECIMAL, OCTAL, BINARY, FLOAT, ASCII, or EBCDIC.
  306.  
  307.                 If ASCII or EBCDIC mode is chosen then each byte in the
  308.           buffer will be converted to it's ASCII or EBCDIC character and
  309.           displayed.   Bytes that are outside of the standard character set
  310.           will be displayed as a dot.   Each line will be 64 characters
  311.           long.   The byte value for "carriage return" and "line feed" will
  312.           be displayed as a dot as will any other non-printable characters.
  313.  
  314.                 Within HEXADECIMAL, DECIMAL, OCTAL, or BINARY format the
  315.           data can be displayed in 8, 16 or 32 bit values.   If 16 or 32 it
  316.           values are displayed the user can choose to view these values in
  317.           either the Intel format or the Motorola format.   If Intel format
  318.           is chosen then the first byte in each unit is the least
  319.           significant byte when the value is calculated.   Thus in hex 32
  320.           bit mode a byte string of "32 7A 9F 10" would be displayed as
  321.           "109F7A32".   If Motorola format is chosen this value would be
  322.           displayed as "327A9F10".
  323.  
  324.                 The FLOAT mode displays the data in floating point
  325.           representation.   This is somewhat machine dependent so a given
  326.           hex number may produce different floating point numbers on
  327.           different machines.   Generally, not all combinations of bits are
  328.           legal floating point numbers.   The display representation will
  329.           depend on how printf was implemented.   It is conceivable that
  330.           BEAV will crash if the printf function is not robust.
  331.  
  332.                 There is another display format choice that affects the 16,
  333.           32 or 64 bit formats.   This is called shift.   The shift can be
  334.           0 or 1 for 16 bit modes, 0, 1, 2, or 3 for 32 bit modes, or
  335.           between 0 - 7 for floating point mode.   Shift moves the zero
  336.           point reference for the buffer up by the selected value.   The
  337.           default is zero shift.   If a buffer is displaying the following
  338.           32 bit hex data;
  339.  
  340.                      "12345678 2F4792AF 673DFEA1 88551199"
  341.  
  342.           with the shift at 0.   Changing shift to 1 will produce;
  343.  
  344.                      "3456782F 4792AF67 3DFEA188 55119955"
  345.  
  346.           The data has been slid down toward the beginning of the buffer by
  347.           one byte.   This has not changed the data in the buffer at all,
  348.           it has only affected the way that the data is presented on the
  349.           screen.   This is useful when looking at WORD or DOUBLE WORD data
  350.           that is not aligned on two or four byte boundaries.
  351.  
  352.  
  353.  
  354.                                 BEAV User Manual                8
  355.  
  356.  
  357.  
  358.                 When BEAV is first started or a new window is opened the
  359.           default format is HEXADECIMAL BYTES.
  360.  
  361.  
  362.            2.4      Commands
  363.  
  364.                 Commands are the means that the user controls the operation
  365.           of BEAV.   A command can be given by using one of two methods.
  366.           The first is to use the key binding.
  367.  
  368.                A command can have one or more associated key bindings.   It
  369.           can also have no key binding.   There are a set of default key
  370.           bindings that BEAV comes configured with.   The current set of
  371.           key bindings can be seen by using the 'help' command.   The
  372.           'help' command is 'Esc ?' or Function Key 1 'F1' on the IBM PC.
  373.           The help buffer can be scrolled by using the up and down arrow
  374.           keys.   A printed copy may be obtained by going to the bottom of
  375.           the help buffer using the 'move-to-end' command ('Esc >' or the
  376.           'End' key).   Then issue the 'print-mark-to-cursor' command ('Esc
  377.           P' or 'Ctl-Print') and enter 'PRN' or a file name when prompted
  378.           with "Print to:".   This will output the entire help buffer to a
  379.           printer connected to the parallel interface or the specified
  380.           file.
  381.  
  382.                The second method of issuing a command is to use the
  383.           'extended-command' command (Esc X).   You are prompted for a
  384.           command name that you want to execute.   This method is useful
  385.           for executing commands that have no key binding.   Commands that
  386.           can take a long time to complete can be stopped by pressing Ctl-
  387.           G.
  388.  
  389.  
  390.            2.5      Buffers
  391.  
  392.                 Buffers are the in memory storage for all data editing and
  393.           viewing.   Each buffer has a name that appears in the mode line.
  394.           Buffers generally have a file name that is associated with them.
  395.           The file name also appears in the mode line.   The buffer name
  396.           and the file name are independent but the buffer name defaults to
  397.           the file name.
  398.  
  399.                 The buffer name is used to refer to a specific buffer.
  400.           The 'change-buffer' ('Ctl-X B') command will prompt you for a
  401.           buffer name.   After you enter a buffer name that buffer will be
  402.           displayed in the current window.   If there is no such buffer,
  403.           one will be created and displayed (it will be empty).
  404.  
  405.                 When BEAV is run with a file name as a command line
  406.           parameter, the file is read into a new buffer.  The buffer name
  407.           will be made the same as the file name.   The file name is only
  408.  
  409.  
  410.  
  411.                                 BEAV User Manual                9
  412.  
  413.  
  414.           used when the buffer is saved.   If the file name is changed
  415.           using the 'buffer-set-file-name' ('Ctl-X Ctl-F') command then
  416.           when the buffer is saved it will be saved to the new file.
  417.  
  418.                 Buffers are dynamically allocated.   They grow or shrink as
  419.           the size of the data they contain changes.   The buffer size can
  420.           be frozen using the 'buffer-size-lock' ('Ctl-X Ctl-L') command.
  421.           This prevents inserting or deleting data from the buffer but data
  422.           can be modified.
  423.  
  424.                 Buffers continue to exist even if they are not being
  425.           displayed.   Buffers are saved in a linked list that can be
  426.           stepped through using the 'change-to-next-buffer' ('Esc +') or
  427.           'change-to-prev-buffer' ('Esc -') commands.   If the 'change-to-
  428.           next-buffer' command is given then the next buffer in the list is
  429.           displayed in the current window.
  430.  
  431.  
  432.            2.6      Files
  433.  
  434.                 Files are the means of storing data on disk.   Files or
  435.           segments of files can be loaded into BEAV for editing or viewing.
  436.           The file on the disk has not been changed until BEAV does a save
  437.           to that file.   When a save to a file is performed the original
  438.           file contents in saved in a ".bak" file.
  439.  
  440.  
  441.            2.7      Key Binding
  442.  
  443.                 All commands in BEAV have a command name and a default key
  444.           binding.   The bindings may be changed to suit personal
  445.           preference by using the 'bind-to-key' ('Esc K') command.   The
  446.           current binding of a key sequence can be displayed by using the
  447.           'binding-for-key' ('Ctl-X ?') command.
  448.  
  449.                 Key bindings can be loaded automatically from a file named
  450.           ".beavrc" under UNIX or "beavrc" under MSDOS.   I will refer to
  451.           this file as the beavrc file in this document.   This file must
  452.           be in a directory specified by the PATH environment variable.
  453.           When BEAV is started this file is read and the bindings are
  454.           loaded.   This file is a simple text file and can be edited to
  455.           make changes.
  456.  
  457.                 The beavrc file contains three columns.   The first is the
  458.           function name to be bound or "extended-command" for commands to
  459.           be executed.
  460.  
  461.                 For functions to be bound, the second column is the key
  462.           sequence that is bound to that function.   The third is a number
  463.           that defines the key code.   The second column is not actually
  464.           used, but is for informational purposes only.
  465.  
  466.  
  467.  
  468.                                 BEAV User Manual                10
  469.  
  470.  
  471.  
  472.                 For commands to be executed, the second column is the
  473.           command name.   The third column is optional and is the number to
  474.           be passed to that command.   For example; to set the number of
  475.           screen rows to 10 hex (16 decimal); the first column would
  476.           contain "extended-command", the second column would contain
  477.           "screen-rows", and the third would contain "10" to set 16 decimal
  478.           screen rows.
  479.  
  480.                 The simplest way to create a valid beavrc file is to first
  481.           bind the key codes to the desired functions using the 'bind-to-
  482.           key' command (Esc K).   Next display the current bindings in a
  483.           window using the 'help' command (Esc ?).   Then save that buffer
  484.           to a file with the 'file-write' command (Ctl-X Ctl-W).   You will
  485.           be prompted for a file name.   The file written is a valid beavrc
  486.           file.   You may want to edit the beavrc file to remove the
  487.           commented lines, ie, those beginning with #, to make it load
  488.           faster.
  489.  
  490.                 On UNIX systems there can be multiple .beavrc files, one
  491.           for each terminal type.   This is accomplished by appending the
  492.           TERM variable to .beavrc.   Thus if you use both a vt100 and a
  493.           wyse60 terminal, you could have a .beavrc.wy60 and a
  494.           .beavrc.vt100 bindings file.   When your TERM variable is
  495.           TERM=wy60 then the .beavrc.wy60 bindings file will be used.   If
  496.           there is no .beavrc.wy60 file then the .beavrc file will be used.
  497.  
  498.  
  499.            2.8      Configuration
  500.  
  501.                 When the MSDOS version of BEAV runs it detects whether the
  502.           system is an IBM PC or a clone.   If a PC is detected then a set
  503.           of key bindings that use the 10 function keys and the relevant
  504.           keypad keys are loaded.   If the system is not recognized then
  505.           only the standard bindings are loaded.
  506.  
  507.                 If a PC is detected the screen is managed by making BIOS
  508.           level calls that enhance performance.   Otherwise, the screen is
  509.           controlled by making ANSI compatible calls to the operating
  510.           system.   This is much slower but is not sensitive to hardware
  511.           configuration.   This requires that non-standard MSDOS systems
  512.           support ANSI display controls.   The following ANSI escape
  513.           sequences are used;
  514.  
  515.                 Position cursor          ESC [ <row> ; <column> H
  516.  
  517.                 Erase to end of line     ESC [ 0 K
  518.  
  519.                 Erase to end of page     ESC [ 0 J
  520.  
  521.                 Normal video             ESC [ 0 m
  522.  
  523.  
  524.  
  525.                                 BEAV User Manual                11
  526.  
  527.  
  528.  
  529.                 Reverse video            ESC [ 7 m
  530.  
  531.                 On unix systems the termcap library is used.   This
  532.           requires that the TERM environment variable be set correctly.
  533.  
  534.  
  535.           3.    Command Description
  536.  
  537.                 This section describes all BEAV commands as to their
  538.           function and any side effects that they may have.   The first
  539.           line of each description of a command will begin with the default
  540.           key binding then the command name and follows with the key
  541.           binding for a PC.
  542.  
  543.  
  544.            3.1  Help
  545.  
  546.                 This command returns information that will aid in the use
  547.           of BEAV.
  548.  
  549.                 Esc ?          help                     F1
  550.  
  551.                 A new window is opened by splitting the current window then
  552.           all current key bindings are displayed.   This buffer is larger
  553.           than can be shown at one time and must be scrolled up and down to
  554.           see all entries.    All commands that do not alter data can be
  555.           used to move around and search the help buffer.   To leave the
  556.           help buffer use the 'window-delete' command ('Ctl-X 0').
  557.  
  558.                 Lines that begin with the comment character (#) are
  559.           commands that have the default bindings.   Lines without the
  560.           comment character have been bound by the user or by processing a
  561.           beavrc file.   The comment character helps in creating a beavrc
  562.           file by identifying only those bindings that have changed.
  563.  
  564.  
  565.            3.2  Cursor Movement
  566.  
  567.                 There are a number of commands that move the cursor around
  568.           the current window.   If the cursor bumps the top or the bottom
  569.           of the window the position of the window will be adjusted so as
  570.           to keep the cursor within the bounds.   When the window is moved
  571.           in response to cursor movements it is moved by about one third of
  572.           the window size.   This improves performance by reducing the
  573.           number of window moves.
  574.  
  575.                 Ctl-P     move-back-line      North (up arrow)
  576.                 Ctl-N     move-forw-line      South (down arrow)
  577.  
  578.  
  579.  
  580.                                 BEAV User Manual                12
  581.  
  582.  
  583.                 These commands move the cursor up one line or down one
  584.           line.   If the cursor is on the top line in the buffer and a
  585.           'move-back-line' command is given the cursor will jump to the
  586.           beginning of the first unit in the buffer.   If the cursor is on
  587.           the last line of the buffer and a 'move-forw-line' is given the
  588.           cursor will move to the last unit in the buffer.
  589.  
  590.                 Ctl-F     move-forw-char     East (right arrow)
  591.                 Ctl-B     Move-back-char     West (left arrow)
  592.  
  593.                 These commands move the cursor forward or backward in the
  594.           current line.   If the cursor is at the first character in the
  595.           first unit of the line and the 'move-back-char' command is given
  596.           then the cursor will wrap to the last character of the previous
  597.           line.   If the cursor is at the last character of the last unit
  598.           in the current line then it will wrap to the first character of
  599.           the next line.
  600.  
  601.                 Esc F          move-forw-unit     Ctl-East
  602.                 Esc B          move-back-unit     Ctl-West
  603.  
  604.                 These commands are similar to the above set but they move
  605.           the cursor by units rather than characters.   The command 'move-
  606.           forw-unit' will position the cursor to the first character of the
  607.           next unit.   The command 'move-back-unit' will move the cursor to
  608.           the first character of the previous unit.
  609.  
  610.                 Ctl-V          move-forw-page     PageUp
  611.                 Esc V          move-back-page     PageDown
  612.  
  613.                 These commands move the move the data in the window by the
  614.           number of lines in the window less one.   The cursor will stay in
  615.           the same position relative to the window as the data is moved.
  616.  
  617.                 Esc <          move-to-beginning  Home
  618.                 Esc >          move-to-end        End
  619.  
  620.                 Move the cursor to the beginning or the end of the buffer.
  621.  
  622.                 Ctl-X G        move-to-byte       F9
  623.  
  624.                 Prompt for a byte offset, then go to that position in the
  625.           current buffer.
  626.  
  627.                 Ctl-X Ctl-N    move-window-down   Ctl-Z
  628.                 Ctl-X Ctl-P    move-window-up     Esc Z
  629.  
  630.                 Move the buffer in the window up or down by one line.
  631.           This does not effect the cursor until it hits the top or bottom
  632.           of the window.
  633.  
  634.  
  635.  
  636.                                 BEAV User Manual                13
  637.  
  638.  
  639.                 Esc .          mark-set           F2
  640.  
  641.                 Set the mark position to the current cursor position.   The
  642.           mark position is remembered even for nonactive windows and
  643.           buffers.
  644.  
  645.                 Ctl-X Ctl-X    swap-cursor-and-mark
  646.  
  647.                 The position of the cursor and the position of the mark are
  648.           swapped.
  649.  
  650.                 Esc L          window-link
  651.  
  652.                 This command causes all windows that are displaying the
  653.           contents of the current buffer to have the same cursor position.
  654.           Thus if one window is scrolled then all other windows that
  655.           display that buffer are scrolled so as to keep the cursor in the
  656.           window.
  657.  
  658.                 Ctl-X =        show-position
  659.  
  660.                 The current position of the cursor and the mark are
  661.           displayed.   The buffer size, file size and file name are also
  662.           shown.
  663.  
  664.  
  665.            3.3  Buffer Management
  666.  
  667.                 Buffers store all data that is being edited.   The only
  668.           limit to the number of buffers is the size of available memory.
  669.           If a file is loaded into a buffer and there is insufficient
  670.           memory to hold the entire file, then it will be loaded until
  671.           memory is exhausted.   The buffer will then be set to read only
  672.           mode.
  673.  
  674.                 Ctl-X Ctl-B    buffers-display    Ctl-F1
  675.  
  676.                 A new window is opened and a list of all buffers in BEAV is
  677.           displayed.   The list contains the buffer name, the file name (if
  678.           it exists), the buffer size, and a state flag.   If the list is
  679.           too large for the window, you can scroll the list.   If you
  680.           position the cursor on a line describing a buffer and give the
  681.           set-mark (Esc .) command you will be prompted to; Go to, Kill, or
  682.           Save that buffer.
  683.  
  684.                 Ctl-X B        change-buffer      Ctl-F2
  685.  
  686.                 This command prompts you for a buffer name.   If you enter
  687.           the name of an existing buffer, that buffer will be displayed in
  688.           the current window.   If the name does not match an existing
  689.  
  690.  
  691.  
  692.                                 BEAV User Manual                14
  693.  
  694.  
  695.           buffer, a new buffer will be created and displayed.   This buffer
  696.           will be empty and will have no file name.
  697.  
  698.                 Esc +          change-to-next-buffer    Ctl-F4
  699.                 Esc -          change-to-prev-buffer    Ctl-F5
  700.  
  701.                 The next or the previous buffer in the buffer list is
  702.           displayed in the current window.   This does not effect buffers
  703.           that are displayed in other windows.
  704.  
  705.                 Esc G          move-to-buffer-split
  706.  
  707.                 Prompt for a buffer name.   Then split the current window
  708.           and display that buffer, creating it if necessary.
  709.  
  710.                 Esc Ctl-N      buffer-set-name    Esc Ctl-N
  711.  
  712.                 The current buffer name is changed to the name that you
  713.           enter.   This does not effect the file name.
  714.  
  715.                 Ctl-X Ctl-F    buffer-set-file-name     Ctl-F7
  716.  
  717.                 The file name of the current buffer is changed to the name
  718.           that you enter.   This does not affect the buffer name.
  719.  
  720.                 Ctl-X K        kill-buffer        Ctl-F3
  721.  
  722.                 This command prompts you for a buffer name.   This buffer
  723.           is then deleted.   If the buffer is currently being displayed you
  724.           are prompted for conformation.   If the buffer has been changed
  725.           you are again prompted for conformation.
  726.  
  727.                 Ctl-X Ctl-L    buffer-size-lock
  728.  
  729.                 The buffer size is prevented from being changed.   Data can
  730.           be edited but only by changing the existing data.   If a buffer
  731.           is copied into a size-locked buffer the operation well be
  732.           successful but will overwrite existing data.   This command
  733.           toggles between locked and unlocked.
  734.  
  735.                 Esc Y          yank-buffer        Ctl-F6
  736.  
  737.                 Data from one buffer is inserted into the current buffer at
  738.           the cursor position.   You are prompted for the name of the
  739.           buffer to copy from.
  740.  
  741.                 Esc O          save-mark-to-cursor
  742.  
  743.                 Prompt for a buffer name.   Create a new buffer with that
  744.           name and write the data from the mark to the cursor into that
  745.           buffer.
  746.  
  747.  
  748.  
  749.                                 BEAV User Manual                15
  750.  
  751.  
  752.  
  753.                 Esc Ctl-W      show-save-buf
  754.  
  755.                 Displays the contents of the save buffer in a new window.
  756.           The save buffer cannot be edited.   This command can be used to
  757.           see the data that the yank (Ctl-Y) command will insert into the
  758.           current buffer.
  759.  
  760.  
  761.            3.4  File Management
  762.  
  763.                 These commands control BEAV's access to files.   Files are
  764.           loaded into buffers or are written from buffers.   Commands that
  765.           prompt for a file name also accept range parameters.   Range
  766.           parameters are always given in the numeric base of the current
  767.           window.   Thus if you are displaying data in decimal format then
  768.           the range parameters must be entered in decimal.
  769.  
  770.                 The size of a file read or write can be limited by
  771.           specifying a range.   The range parameter specifies the offset
  772.           into the file, not the buffer.   Range parameters can be
  773.           specified in these forms;
  774.  
  775.                 <file name> <start address>
  776.  
  777.                 <file name> <start address> <end address>
  778.  
  779.                 <file name> <start address> +<length>
  780.  
  781.                 The first form causes the read or write to begin from the
  782.           <start address> value until the end of the buffer on write or the
  783.           end of the file on read.
  784.  
  785.                 The second form reads or writes from <start address> until
  786.           <end address> non-inclusive.
  787.  
  788.                 The third form reads or writes from <start address> for
  789.           <length> bytes.
  790.  
  791.                 Thus, if the command 'file-read' is given and you enter at
  792.           the prompt;   main.obj 1000 +100.   If the current display mode
  793.           is hex, the file "main.obj" will be read from hex byte address
  794.           1000 to 10FF into the buffer.
  795.  
  796.                 Ctl-X Ctl-R    file-read          Sh-F2
  797.  
  798.                 Prompt for a file name and read that file into the current
  799.           buffer.   This overwrites the current contents of the buffer.
  800.           The buffer name is not changed but the buffer file name is set to
  801.           the new file name.
  802.  
  803.  
  804.  
  805.                                 BEAV User Manual                16
  806.  
  807.  
  808.                 Ctl-X Ctl-S    file-save          Sh-F3
  809.  
  810.                 Write the current buffer out to the file if it has been
  811.           changed.   If the buffer has not been changed then do nothing.
  812.  
  813.                 Ctl-X V        file-view
  814.  
  815.                 Prompt for a file name and read file into a new buffer and
  816.           display in current window.   Set to read-only mode.
  817.  
  818.                 Ctl-X Ctl-V    file-visit         Sh-F4
  819.  
  820.                 Prompt for a file name.   If the buffer already exists then
  821.           display it in the current window.   Otherwise, read file into a
  822.           new buffer and display in current window.   If there is no such
  823.           file then create it.
  824.  
  825.                 Esc U          file-visit-split
  826.  
  827.                 Same as above but split current window and display new
  828.           buffer.   This displays the new buffer as well as the old buffer.
  829.  
  830.                 Ctl-X Ctl-W    file-write         Sh-F5
  831.  
  832.                 Prompt for a file name, then write the current buffer to
  833.           that file.
  834.  
  835.                 Ctl-X Tab      insert-file        Sh-F8
  836.  
  837.                 Prompt for a file name and insert that file into the
  838.           current buffer at the cursor position.
  839.  
  840.                 Ctl-X Return   save-all-buffers   Sh-F6
  841.  
  842.                 Write all buffers that have been changed to their
  843.           respective files.
  844.  
  845.  
  846.            3.5  Window Management
  847.  
  848.                 BEAV presents information to the user in one or more
  849.           windows.   Each window is a view into a buffer where the data is
  850.           actually stored.   The window controls how this data is formatted
  851.           for display to the user.   Data can be displayed as HEX bytes,
  852.           OCTAL bytes, ASCII characters, plus many others.   The display
  853.           format is associated with the window.   Thus if a new buffer is
  854.           displayed in the current window that new data will be displayed
  855.           in the current windows format.
  856.  
  857.                 The only limit to the number of windows is the screen size.
  858.           A window can be no smaller than two lines.   This along with the
  859.  
  860.  
  861.  
  862.                                 BEAV User Manual                17
  863.  
  864.  
  865.           mode line associated with each window limits to eight the number
  866.           of windows on an IBM PC 25 line screen.
  867.  
  868.                 Any window can view any buffer including having many
  869.           windows on the same buffer.   For example, two windows can
  870.           display the same buffer but present the data in two different
  871.           modes.   One window could display HEX bytes and the other could
  872.           display ASCII characters.
  873.  
  874.                 Ctl-P       change-window-back    Ctl-PageUp
  875.                 Ctl-N       change-window-forw    Ctl-PageDown
  876.  
  877.                 These commands move the cursor to the next or previous
  878.           window on the screen, making it the current window.
  879.  
  880.                 Ctl-X Z        window-enlarge
  881.                 Ctl-X Ctl-Z    window-shrink
  882.  
  883.                 Enlarge or shrink the current window size by one line.
  884.  
  885.                 Esc !          window-reposition
  886.  
  887.                 Move window position so that the cursor is centered in the
  888.           window.   The cursor position in the buffer does not change.
  889.  
  890.                 Ctl-X 2        window-split
  891.  
  892.                 Split the current window into equal parts.   Both halves
  893.           have the same display mode and view the save buffer.
  894.  
  895.                 Ctl-X 1        window-single
  896.  
  897.                 Expand the current window to fill the entire display, all
  898.           other windows are removed.   Make the current window the only
  899.           window displayed.   This has no effect on the underlying buffers
  900.           except that they may not be displayed any more.
  901.  
  902.                 Ctl-X 0        window-delete
  903.  
  904.                 Delete the current window and expand the upper window to
  905.           fill the space.   This has no effect on the underlying buffer
  906.           except that it may not be displayed any more.
  907.  
  908.                 Esc Ctl-A      display-ascii
  909.                 Esc Ctl-E      display-ebcdic
  910.                 Esc Ctl-F      display-float
  911.                 Esc Ctl-H      display-hex
  912.                 Esc Ctl-O      display-octal
  913.                 Esc Ctl-D      display-decimal
  914.                 Esc Ctl-B      display-binary
  915.  
  916.  
  917.  
  918.                                 BEAV User Manual                18
  919.  
  920.  
  921.                 These commands set the window display mode.   Text buffers
  922.           can be displayed as ASCII or EBCDIC characters.   Buffers that
  923.           are not human readable can also be displayed in hexadecimal,
  924.           octal, decimal, float, or binary format.
  925.  
  926.                 Esc 1          display-bytes
  927.                 Esc 2          display-words
  928.                 Esc 4          display-double-words
  929.  
  930.                 As a further option on the non-text display modes, data can
  931.           be displayed as 8, 16, or 32 bit values.   Floating point numbers
  932.           are assumed to be 64 bit values.
  933.  
  934.                 Ctl-E          display-swap-order
  935.  
  936.                 When data is displayed as words or double words the order
  937.           of significance can be changed.   In Intel microprocessors the
  938.           least significant byte of a word is stored at the lowest address.
  939.           Thus if the word 5892 (HEX) were stored at memory address 10,
  940.           then 92 (HEX) would be stored at address 10 and 58 (HEX) would be
  941.           stored at address 11.   In Motorola microprocessors the reverse
  942.           is true.
  943.                 This command toggles between the Intel and Motorola schemes
  944.           of assembling bytes into words and double words.   This command
  945.           has no effect on byte display or on the text display modes.   The
  946.           data in the buffer is not changed.
  947.  
  948.                 Ctl-A          display-byte-shift
  949.  
  950.                 This command changes the offset from the beginning of the
  951.           buffer used to assemble words and double words.   The default
  952.           shift is 0.   For example, a double word at address 10 is made up
  953.           of the bytes at address 10, 11, 12, and 13.   With a shift of 1
  954.           that double word would be made of bytes 11, 12, 13, and 14.
  955.           With a shift of 2 then bytes 12, 13, 14, and 15 would be used.
  956.           The maximum shift in word display mode is one and the maximum
  957.           shift in double word mode is three.
  958.  
  959.                 The buffer is in effect shifted toward the beginning of the
  960.           buffer with 1, 2, or up to 7 bytes becoming not visible.   These
  961.           bytes are not lost, they become visible when the shift is set to
  962.           zero.   This command cycles through all possible shift values.
  963.           There is no effect in any byte display mode or any text display
  964.           mode.
  965.  
  966.  
  967.            3.6  Inserting and deleting
  968.  
  969.                 These commands are the core of BEAV.   These commands allow
  970.           the buffer to be edited in a similar fashion to a text editor.
  971.           BEAV has an insert mode much the same as text editors but it only
  972.  
  973.  
  974.  
  975.                                 BEAV User Manual                19
  976.  
  977.  
  978.           works when displaying data in one of the text modes, either ASCII
  979.           or EBCDIC.   In other modes it doesn't make any sense to insert
  980.           characters as they are typed when there is more than one
  981.           characters per unit.   In the data modes there is a command that
  982.           inserts a unit of zeros into the buffer.   Similarly the delete
  983.           commands always delete a unit rather than a character.   In a
  984.           text mode the delete commands work as in a text editor because a
  985.           unit is a character.
  986.  
  987.                 Ctl-X I        insert-unit
  988.  
  989.                 Insert a zero at the cursor position.   The rest of the
  990.           data moves down one place.   Thus, if double words are being
  991.           displayed, four bytes are inserted before the cursor position.
  992.           These bytes are initialized to zero.   This command works in all
  993.           display modes.
  994.  
  995.                 Ctl-X Ctl-A    insert-toggle      Insert
  996.  
  997.                 In either of the two text modes this command toggles
  998.           between insert mode and overwrite mode.    In insert mode each
  999.           character that is typed is inserted in front of the cursor and
  1000.           the rest of the buffer is moved down.   In overwrite mode the
  1001.           typed characters replace the character that is at the cursor.
  1002.           This command has no effect in a non-text display mode.
  1003.  
  1004.                 Ctl-Q          insert-literally   Esc Q
  1005.  
  1006.                 This command sets a special temporary mode where the next
  1007.           typed character is inserted in the buffer no matter what the
  1008.           character is.   This allows control codes to be inserted in the
  1009.           buffer when in a text display mode.   Alternatively the same byte
  1010.           could be inserted into the buffer by using one of the data
  1011.           display modes.   It night be faster to use this command on some
  1012.           occasions.
  1013.  
  1014.                 Ctl-T          unit-twiddle
  1015.  
  1016.                 The unit at the cursor is swapped with the previous unit.
  1017.  
  1018.                 Rubout         delete-back-char   Backspace
  1019.  
  1020.                 This command deletes the character before the cursor and
  1021.           pulls the rest of the buffer back.   The cursor remains on the
  1022.           same character as it moves back.   It only works in the text and
  1023.           byte display modes.
  1024.  
  1025.                 Ctl-D          delete-forw-char   Delete
  1026.  
  1027.  
  1028.  
  1029.                                 BEAV User Manual                20
  1030.  
  1031.  
  1032.                 The character at the cursor is deleted and the buffer is
  1033.           pulled back.   The cursor remains at the same position.   It only
  1034.           works in the text and byte display modes.
  1035.  
  1036.                 Esc Rubout     delete-back-unit   Esc Ctl-K
  1037.  
  1038.                 This command deletes the unit before the cursor and pulls
  1039.           the rest of the buffer back.   The cursor remains on the same
  1040.           unit as it moves back.
  1041.  
  1042.                 Esc D          delete-forw-unit
  1043.  
  1044.                 The unit at the cursor is deleted and the buffer is pulled
  1045.           back.   The cursor remains at the same position.
  1046.  
  1047.                 Esc W          copy-mark-to-cursor      F7
  1048.  
  1049.                 The area in the buffer from the mark to the current cursor
  1050.           position is copied into the kill buffer.   If the mark is not set
  1051.           before this command is given an error is reported.
  1052.  
  1053.                 Ctl-W          delete-mark-to-cursor    F8
  1054.  
  1055.                 The area in the buffer from the mark to the current cursor
  1056.           position is deleted and placed into the kill buffer.   If the
  1057.           mark is not set before this command is given an error is
  1058.           reported.
  1059.  
  1060.                 Ctl-Y          yank               F6
  1061.  
  1062.                 The contents of the kill buffer is inserted into the buffer
  1063.           at the cursor position.   The kill buffer itself is not changed.
  1064.  
  1065.  
  1066.            3.7  Search and Replace Commands
  1067.  
  1068.                 BEAV has very powerful search and replace commands.   The
  1069.           search and replace string can be entered in any of the display
  1070.           modes.   The search and replace strings can each be up to 256
  1071.           bytes long.   The display mode can be changed at any time while
  1072.           entering the string.   Wild cards can be placed down to the bit
  1073.           level on both the search and replace strings.   The wild card
  1074.           character, '?', will match any value that it is compared with.
  1075.  
  1076.                 When a wild card is placed in the replace string it leaves
  1077.           the destination data unchanged at that position.   Thus, if the
  1078.           destination contains the ASCII string '41 42 43 44' and the
  1079.           replace string contains '66 67 ?? 69' the result would be '66 67
  1080.           43 69'.
  1081.  
  1082.  
  1083.  
  1084.                                 BEAV User Manual                21
  1085.  
  1086.  
  1087.                 Wild cards can be placed in any position that makes sense.
  1088.           If you want to use wild cards in an ASCII string then you must
  1089.           switch to another mode to enter them.   You can then switch back
  1090.           to ASCII mode.   In this case a '?' will appear in the position
  1091.           where the wild card has been placed but it appears exactly the
  1092.           same as a standard question mark.   In fact if you type a '?'
  1093.           over the wild card there will be no apparent change.   However,
  1094.           the character will no longer be a wild card but a standard
  1095.           question mark.   To see the true wild cards you must use a data
  1096.           display mode.   In fact if the wild card has been set on the bit
  1097.           level then you must go to binary display mode to see its actual
  1098.           position.
  1099.  
  1100.                 The commands to change the display mode in search and
  1101.           replace are the same as for the window display mode.   The search
  1102.           and replace strings can be scrolled back an forth and the cursor
  1103.           moved using the same commands as for the window.   While
  1104.           performing a replace command you can switch between the search
  1105.           string and replace string by using the 'move-back-page' or 'move-
  1106.           forw-page' commands.
  1107.  
  1108.                 Esc S          search-forw        F3
  1109.  
  1110.                 Prompts for a search string then searches from the current
  1111.           cursor position for the first match.   The cursor is positioned
  1112.           at the first unit of the match.
  1113.  
  1114.                 Esc R          search-back
  1115.  
  1116.                 This command is the same as the previous one except that it
  1117.           searches backward.
  1118.  
  1119.                 Esc T          search-again       F4
  1120.  
  1121.                 This command repeats the previous search command, forward
  1122.           or backward.   The cursor is first moved one byte in the
  1123.           appropriate direction before the search is repeated.
  1124.  
  1125.                 Esc %          replace            F5
  1126.  
  1127.                 Prompt for search string.   After entering the search
  1128.           string hit return and you will be prompted for the replace
  1129.           string.   After entering the replace string hit return.   BEAV
  1130.           will then search for the first match with the search string.   If
  1131.           a match is found you will be prompted with '(R)eplace, (S)kip,
  1132.           (A)ll, (O)ne, (Q)uit'
  1133.  
  1134.                 If you type a 'R' the replace will be done at this location
  1135.           and the search will continue.   If you type a 'S' the replace
  1136.           will not be done and search will continue.   If you type an 'A'
  1137.           the replace will be done and will be done at all future matches
  1138.  
  1139.  
  1140.  
  1141.                                 BEAV User Manual                22
  1142.  
  1143.  
  1144.           without pausing for conformation.   If you type an 'O' the
  1145.           replace will be done at this location and the search will stop.
  1146.           If you type a 'Q' then the search will be terminated.
  1147.  
  1148.                 Ctl-R          recall-srch-string
  1149.  
  1150.                 If you enter search or replace previously used strings can
  1151.           be recalled with this command.
  1152.  
  1153.  
  1154.            3.8  Exiting BEAV
  1155.  
  1156.                 While using BEAV individual buffers may be saved to disk
  1157.           during the editing session.   When quitting BEAV you must save
  1158.           all buffers or delete all buffers.   There are two commands that
  1159.           do this.
  1160.  
  1161.                 Ctl-C          quit-no-save       Sh-F10
  1162.  
  1163.                 If there are any unsaved buffers you will be prompted for
  1164.           conformation before proceeding.   All buffers will be deleted
  1165.           then you will return to DOS.
  1166.  
  1167.                 Ctl-X Ctl-E    quit-save-all      Sh-F9
  1168.  
  1169.                 All buffers are saved before exiting to DOS.
  1170.  
  1171.  
  1172.            3.9  Printing
  1173.  
  1174.                 The data that is being displayed in BEAV can be printed or
  1175.           sent to a file in the same format as displayed.   If the current
  1176.           window is displaying octal words and a print command is given the
  1177.           format of the print will be in the format of the window; that is,
  1178.           octal words.
  1179.  
  1180.                 Esc P          print-mark-to-cursor     Ctl-Print
  1181.  
  1182.                 To use this command you must set the mark and the cursor to
  1183.           define the region that you want printed.   If the mark is not set
  1184.           it as assumed to be at the first unit.   After you enter the
  1185.           command you will be prompted with 'Print to:'.   You can enter a
  1186.           file name or a device name to send the print image to.   If you
  1187.           enter 'PRN' most systems will print a hard copy.
  1188.  
  1189.                 This is useful for getting a print out of the current key
  1190.           bindings.   To do this give the 'help' command 'F1'.   Go to the
  1191.           bottom of the help window using the 'move-to-end' command 'End',
  1192.           the mark will be assumed to be at the beginning of the buffer.
  1193.           Issue the 'print-mark-to-cursor' command.   Enter 'PRN' at the
  1194.  
  1195.  
  1196.  
  1197.                                 BEAV User Manual                23
  1198.  
  1199.  
  1200.           prompt.   This should print the complete help buffer and will
  1201.           reflect any changes that you have made to the key bindings.
  1202.  
  1203.  
  1204.            3.10 Keyboard Macros
  1205.  
  1206.                 BEAV has the capability of recording key strokes as they
  1207.           are entered and playing them back later.   This is useful for
  1208.           repeating multi-keystroke operations.
  1209.  
  1210.                 Ctl-X (        macro-start
  1211.  
  1212.                 Start recording key strokes.   There is no effect on the
  1213.           operation of the key strokes.   Any previous recorded key strokes
  1214.           are cleared.
  1215.  
  1216.                 Ctl-X )        macro-end
  1217.  
  1218.                 Stop recording key strokes.   The key strokes are available
  1219.           for play back.
  1220.  
  1221.                 Ctl-X E        macro-execute
  1222.  
  1223.                 Play back the recorded key strokes.   The key strokes that
  1224.           were recorded are played back as if they were typed at the
  1225.           keyboard.
  1226.  
  1227.  
  1228.            3.11 Key Binding
  1229.  
  1230.                 BEAV provides a user configurable interface.   The
  1231.           interface is controlled by a set of key bindings.   This relates
  1232.           the command that will be executed when a particular key stroke is
  1233.           entered.   There are a set of default key bindings as described
  1234.           in this manual.   These can be changed to reflect your
  1235.           preferences.   When a change is made it is reflected in the help
  1236.           screen.
  1237.  
  1238.                 Ctl-X ?        binding-for-key    Sh-F1
  1239.  
  1240.                 This command will tell you what function a certain key
  1241.           sequence is bound to.   When this command is given you will be
  1242.           prompted for a key stroke or key stroke sequence.   BEAV will
  1243.           report back with the function name.
  1244.  
  1245.                 Esc K          bind-to-key
  1246.  
  1247.                 First you will prompted for a function name.   Enter the
  1248.           name of the function that you wish to create a new binding for.
  1249.           Function names are the names listed in this manual that are of
  1250.           the form of 'move-forw-unit' or 'display-hex'.   After you enter
  1251.  
  1252.  
  1253.  
  1254.                                 BEAV User Manual                24
  1255.  
  1256.  
  1257.           the name hit return.   You will be prompted for a key.   This can
  1258.           be in the form of a single standard key such as 'Z'.   Standard
  1259.           key sequences can be entered such as 'Ctl-X Z'
  1260.           or 'Esc Z'.   Special keys can be entered such as 'F1' (function
  1261.           key 1) or 'Page Down'.   It is probably a good idea to not use
  1262.           keys that are needed for editing.   If you bound 'Z' to a
  1263.           function then you would not be able to enter it as a keystroke
  1264.           when using ASCII display mode.   You could still enter it using
  1265.           the 'insert-literally' command or doing it in one of the data
  1266.           display modes but this would be more cumbersome.
  1267.  
  1268.                 Ctl-X L        bindings-load
  1269.  
  1270.                 You are prompted for a file name that contains the key
  1271.           binding that you wish to set.   This file is read in and the
  1272.           appropriate bindings are set.   The text in the binding file
  1273.           should be of the form;
  1274.  
  1275.           <key name>           <function name>    <key code>
  1276.  
  1277.                 For example;
  1278.  
  1279.           Ctl-X Ctl-P          move-back-char     0550
  1280.           F1                   move-forw-char     04bb
  1281.           Ctl-A                move-forw-unit     0141
  1282.           Esc Ctl-T            move-back-unit     0354
  1283.  
  1284.                 The easiest way of producing a valid key binding file is to
  1285.           set the desired bindings in BEAV.   Next issue the 'help' command
  1286.           (ESC ?), then write the buffer out with the file-write command
  1287.           (Ctl-X Ctl-W).   The file created will be a valid format for
  1288.           loading and can be edited as desired.   It is the only reliable
  1289.           way to get the <key code> number.
  1290.  
  1291.  
  1292.            3.12 Special Functions
  1293.  
  1294.                 These are the commands that do not logically fit under one
  1295.           of the previous headings
  1296.  
  1297.                 Ctl-G          abort-cmd          F10
  1298.  
  1299.                 This command aborts the current command.   It can even
  1300.           abort a partially entered command.   Thus, if you have typed an
  1301.           'Esc' as that start of a command you can type Ctl-G to return to
  1302.           the normal command entry mode.
  1303.  
  1304.                 Esc A          auto-save
  1305.  
  1306.                 BEAV can be set to automatically save the current buffer
  1307.           after a specified number of buffer editing commands are given.
  1308.  
  1309.  
  1310.  
  1311.                                 BEAV User Manual                25
  1312.  
  1313.  
  1314.           This command first prompts for the number of operations before
  1315.           the save is made.   If a zero is entered at the prompt, this
  1316.           feature is disabled.   The default condition of this command is
  1317.           disabled.
  1318.  
  1319.                 Esc C          compare
  1320.  
  1321.                 This is a powerful feature of BEAV.   The contents of two
  1322.           windows are compared byte for byte from the current cursor
  1323.           position in each window.   There must be exactly two windows to
  1324.           use this command.   These windows can be displaying the same or
  1325.           different buffers.   When a difference is found the cursor in
  1326.           each window is moved to that position and both windows are moved
  1327.           accordingly.   The display mode does not affect the operation of
  1328.           this command except in restricting the cursor position to whole
  1329.           units.
  1330.  
  1331.                 Esc X          extended-command
  1332.  
  1333.                 If any command looses its binding, this command allows the
  1334.           unbound command to be used.   A command can loose its binding
  1335.           because the binding was assigned to another command.   When this
  1336.           command is given you will be prompted for a command name.   Enter
  1337.           the command name that you wish to execute, it will be executed as
  1338.           if you had typed its key binding.
  1339.  
  1340.                 Esc Ctl-P      n-way-combine
  1341.  
  1342.                 The contents of other windows can be copied sequentially
  1343.           into the current window.   This is useful in combining odd-even
  1344.           proms into an executable image file.   To use this command create
  1345.           an empty window with a buffer file name of an empty or
  1346.           nonexistent file.   Read into additional windows the files that
  1347.           you want to combine.   While in the empty target window, issue
  1348.           the n-way-combine command.   The data in the other windows will
  1349.           be read into the current window.   The next window lower on the
  1350.           screen will be read first, then the one below that, etc.
  1351.  
  1352.                 For example; if you had two files, promlow.bin and
  1353.           promhi.bin that you wanted to combine into a file called
  1354.           prom.bin.   First issue the file-visit command (Ctl-X Ctl-V),
  1355.           enter prom.bin at the prompt.   This file should be empty of non-
  1356.           existent.   Next read promlow.bin into a new window with the
  1357.           file-visit-split command (Esc U), enter promlow.bin at the
  1358.           prompt.   Open another window for promhi.bin with the same
  1359.           command.   Go to the window containing prom.bin (empty).   Issue
  1360.           the n-way-combine command.   BEAV will copy the first byte from
  1361.           the window immediately below the prom.bin window and deposit it
  1362.           in the destination window buffer as well as advance the dot
  1363.           position in both windows.   It will advance to the next lower
  1364.           window and copy a byte from there into the destination window and
  1365.  
  1366.  
  1367.  
  1368.                                 BEAV User Manual                26
  1369.  
  1370.  
  1371.           advance the dot in both windows.   This process will continue
  1372.           until one of the source buffers is exhausted, or the user
  1373.           terminates the command.
  1374.  
  1375.                 The user must take care that the source buffers are in the
  1376.           correct order.   They are read starting at the window immediately
  1377.           below the current window.   If the target window is at the bottom
  1378.           of the screen then it wraps to the top.   In this way any order
  1379.           can be used and changed at will.
  1380.  
  1381.                 Esc Ctl-S      n-way-split
  1382.  
  1383.                 This command is the mirror image of the n-way-combine.
  1384.           The data in the current window is distributed among the rest of
  1385.           the window buffers displayed.   The current window buffer must be
  1386.           the only window buffer that contains data.   If there are two
  1387.           other empty window buffers then the data will be divided two
  1388.           ways.   If there are five then the data will be divided five ways
  1389.  
  1390.                 Ctl-L          refresh-screen
  1391.  
  1392.                 The screen is reprinted from BEAV's internal buffer.   This
  1393.           is useful if the display is messed up due to transmission errors.
  1394.           On a PC this is unlikely to happen.
  1395.  
  1396.                 Esc Ctl-V      show-version
  1397.  
  1398.                 The version and date of BEAV is displayed in the command
  1399.           line.
  1400.  
  1401.                 Ctl-X C        spawn-shell
  1402.  
  1403.                 A new MSDOS command shell is created.   You can return to
  1404.           BEAV by typing 'exit'.
  1405.  
  1406.                 Ctl-U          repeat count
  1407.  
  1408.                 This command prompts for a number to be entered.   This
  1409.           causes the next command given to be repeated by that number of
  1410.           times.   This command cannot have it's binding changed and cannot
  1411.           be issued using the 'extended-command' function.
  1412.  
  1413.                 Esc Ctl-R      screen-rows
  1414.  
  1415.                 The number of rows that beav will use to paint the screen
  1416.           can be set with this command.   This command can be given any
  1417.           time, the displayed windows will be adjusted or killed as needed.
  1418.  
  1419.  
  1420.  
  1421.                                 BEAV User Manual                27
  1422.  
  1423.  
  1424.           4.  Alphabetical list of commands by name
  1425.  
  1426.           Command                        Key Binding       Manual Section
  1427.           -------                        -----------       --------------
  1428.           abort-cmd                      Ctl-G             3.12
  1429.           abort-cmd                      Ctl-X Ctl-G       3.12
  1430.           abort-cmd                      Esc Ctl-G         3.12
  1431.           abort-cmd                      F10               3.12
  1432.           auto-save                      Esc A             3.12
  1433.           bind-to-key                    Esc K             3.11
  1434.           binding-for-key                Ctl-X ?           3.11
  1435.           binding-for-key                Sh-F1             3.11
  1436.           bindings-load                  Ctl-X L           3.11
  1437.           buffer-set-file-name           Ctl-F7            3.3
  1438.           buffer-set-file-name           Ctl-X Ctl-F       3.3
  1439.           buffer-set-file-name           Sh-F7             3.3
  1440.           buffer-set-name                Esc Ctl-N         3.3
  1441.           buffer-size-lock               Ctl-X Ctl-L       3.3
  1442.           buffers-display                Ctl-F1            3.3
  1443.           buffers-display                Ctl-X Ctl-B       3.3
  1444.           change-buffer                  Ctl-F2            3.3
  1445.           change-buffer                  Ctl-X B           3.3
  1446.           change-to-next-buffer          Ctl-F4            3.3
  1447.           change-to-next-buffer          Esc +             3.3
  1448.           change-to-prev-buffer          Ctl-F5            3.3
  1449.           change-to-prev-buffer          Esc -             3.3
  1450.           change-window-back             Ctl-PageUp        3.5
  1451.           change-window-back             Ctl-X P           3.5
  1452.           change-window-forw             Ctl-PageDown      3.5
  1453.           change-window-forw             Ctl-X N           3.5
  1454.           compare                        Esc C             3.12
  1455.           copy-mark-to-cursor            Esc W             3.6
  1456.           copy-mark-to-cursor            F7                3.6
  1457.           delete-back-char               Backspace         3.6
  1458.           delete-back-char               Rubout            3.6
  1459.           delete-back-unit               Esc Ctl-K         3.6
  1460.           delete-back-unit               Esc Rubout        3.6
  1461.           delete-forw-char               Ctl-D             3.6
  1462.           delete-forw-char               Delete            3.6
  1463.           delete-forw-unit               Esc D             3.6
  1464.           delete-mark-to-cursor          Ctl-W             3.6
  1465.           delete-mark-to-cursor          F8                3.6
  1466.           display-ascii                  Esc Ctl-A         3.5
  1467.           display-binary                 Esc Ctl-B         3.5
  1468.           display-byte-shift             Ctl-A             3.5
  1469.           display-bytes                  Esc 1             3.5
  1470.           display-decimal                Esc Ctl-D         3.5
  1471.           display-double-words           Esc 4             3.5
  1472.           display-ebcdic                 Esc Ctl-E         3.5
  1473.           display-float                  Esc Ctl-F         3.5
  1474.           display-hex                    Esc Backspace     3.5
  1475.  
  1476.  
  1477.  
  1478.                                 BEAV User Manual                28
  1479.  
  1480.  
  1481.           display-octal                  Esc Ctl-O         3.5
  1482.           display-swap-order             Ctl-E             3.5
  1483.           display-words                  Esc 2             3.5
  1484.           extended-command               Esc X             3.12
  1485.           file-read                      Ctl-X Ctl-R       3.4
  1486.           file-read                      Sh-F2             3.4
  1487.           file-save                      Ctl-X Ctl-S       3.4
  1488.           file-save                      Sh-F3             3.4
  1489.           file-view                      Ctl-X V           3.4
  1490.           file-visit                     Ctl-X Ctl-V       3.4
  1491.           file-visit                     Sh-F4             3.4
  1492.           file-visit-split               Esc U             3.4
  1493.           file-write                     Ctl-X Ctl-W       3.4
  1494.           file-write                     Sh-F5             3.4
  1495.           help                           Esc ?             3.1
  1496.           help                           F1                3.1
  1497.           insert-file                    Ctl-F8            3.4
  1498.           insert-file                    Ctl-X Tab         3.4
  1499.           insert-file                    Sh-F8             3.4
  1500.           insert-literally               Ctl-Q             3.6
  1501.           insert-literally               Esc Q             3.6
  1502.           insert-toggle                  Ctl-X Ctl-A       3.6
  1503.           insert-toggle                  Insert            3.6
  1504.           insert-unit                    Ctl-X I           3.6
  1505.           kill-buffer                    Ctl-F3            3.3
  1506.           kill-buffer                    Ctl-X K           3.3
  1507.           macro-end                      Ctl-X )           3.10
  1508.           macro-execute                  Ctl-X E           3.10
  1509.           macro-start                    Ctl-X (           3.10
  1510.           mark-set                       Esc .             3.2
  1511.           mark-set                       F2                3.2
  1512.           move-back-char                 Ctl-B             3.2
  1513.           move-back-char                 West              3.2
  1514.           move-back-line                 Ctl-P             3.2
  1515.           move-back-line                 North             3.2
  1516.           move-back-page                 Esc V             3.2
  1517.           move-back-page                 PageDown          3.2
  1518.           move-back-unit                 Ctl-West          3.2
  1519.           move-back-unit                 Esc B             3.2
  1520.           move-forw-char                 Ctl-F             3.2
  1521.           move-forw-char                 East              3.2
  1522.           move-forw-line                 Ctl-N             3.2
  1523.           move-forw-line                 South             3.2
  1524.           move-forw-page                 Ctl-V             3.2
  1525.           move-forw-page                 PageUp            3.2
  1526.           move-forw-unit                 Ctl-East          3.2
  1527.           move-forw-unit                 Esc F             3.2
  1528.           move-forw-unit                 Sh-Tab            3.2
  1529.           move-to-beginning              Esc <             3.2
  1530.           move-to-beginning              Home              3.2
  1531.           move-to-buffer-split           Esc G             3.2
  1532.  
  1533.  
  1534.  
  1535.                                 BEAV User Manual                29
  1536.  
  1537.  
  1538.           move-to-byte                   Ctl-X G           3.2
  1539.           move-to-byte                   F9                3.2
  1540.           move-to-end                    End               3.2
  1541.           move-to-end                    Esc >             3.2
  1542.           move-window-down               Ctl-X Ctl-N       3.2
  1543.           move-window-down               Ctl-Z             3.2
  1544.           move-window-up                 Ctl-X Ctl-P       3.2
  1545.           move-window-up                 Esc Z             3.2
  1546.           n-way-combine                  Esc Ctl-P         3.12
  1547.           n-way-split                    Esc Ctl-S         3.12
  1548.           print-mark-to-cursor           Ctl-Print         3.9
  1549.           print-mark-to-cursor           Esc P             3.9
  1550.           quit-no-save                   Ctl-C             3.8
  1551.           quit-no-save                   Ctl-F10           3.8
  1552.           quit-no-save                   Ctl-X Ctl-C       3.8
  1553.           quit-no-save                   Sh-F10            3.8
  1554.           quit-save-all                  Ctl-F9            3.8
  1555.           quit-save-all                  Ctl-X Ctl-E       3.8
  1556.           quit-save-all                  Sh-F9             3.8
  1557.           recall-srch-string             Ctl-R             3.7
  1558.           refresh-screen                 Ctl-L             3.12
  1559.           replace                        Esc %             3.7
  1560.           replace                        F5                3.7
  1561.           save-all-buffers               Ctl-X Return      3.4
  1562.           save-all-buffers               Sh-F6             3.4
  1563.           save-mark-to-cursor            Esc O             3.3
  1564.           screen-rows                    Esc Ctl-R         3.12
  1565.           search-again                   Esc T             3.7
  1566.           search-again                   F4                3.7
  1567.           search-back                    Esc R             3.7
  1568.           search-forw                    Esc S             3.7
  1569.           search-forw                    F3                3.7
  1570.           show-position                  Ctl-X =           3.2
  1571.           show-save-buf                  Esc Ctl-W         3.3
  1572.           show-version                   Esc Ctl-V         3.12
  1573.           spawn-shell                    Ctl-X C           3.12
  1574.           swap-cursor-and-mark           Ctl-X Ctl-X       3.2
  1575.           unit-twiddle                   Ctl-T             3.6
  1576.           window-delete                  Ctl-X 0           3.5
  1577.           window-enlarge                 Ctl-X Z           3.5
  1578.           window-link                    Esc L             3.2
  1579.           window-reposition              Esc !             3.5
  1580.           window-shrink                  Ctl-X Ctl-Z       3.5
  1581.           window-single                  Ctl-X 1           3.5
  1582.           window-split                   Ctl-X 2           3.5
  1583.           yank                           Ctl-Y             3.6
  1584.           yank                           F6                3.6
  1585.           yank-buffer                    Ctl-F6            3.3
  1586.           yank-buffer                    Esc Y             3.3
  1587.  
  1588.  
  1589.  
  1590.                                 BEAV User Manual                30
  1591.  
  1592.  
  1593.           5.    Alphabetical list of commands by key binding
  1594.  
  1595.           Command                        Key Binding       Manual Section
  1596.           -------                        -----------       --------------
  1597.           delete-back-char               Backspace         3.6
  1598.           display-byte-shift             Ctl-A             3.5
  1599.           move-back-char                 Ctl-B             3.2
  1600.           quit-no-save                   Ctl-C             3.8
  1601.           delete-forw-char               Ctl-D             3.6
  1602.           display-swap-order             Ctl-E             3.5
  1603.           move-forw-unit                 Ctl-East          3.2
  1604.           move-forw-char                 Ctl-F             3.2
  1605.           buffers-display                Ctl-F1            3.3
  1606.           quit-no-save                   Ctl-F10           3.8
  1607.           change-buffer                  Ctl-F2            3.3
  1608.           kill-buffer                    Ctl-F3            3.3
  1609.           change-to-next-buffer          Ctl-F4            3.3
  1610.           change-to-prev-buffer          Ctl-F5            3.3
  1611.           yank-buffer                    Ctl-F6            3.3
  1612.           buffer-set-file-name           Ctl-F7            3.3
  1613.           insert-file                    Ctl-F8            3.4
  1614.           quit-save-all                  Ctl-F9            3.8
  1615.           abort-cmd                      Ctl-G             3.12
  1616.           refresh-screen                 Ctl-L             3.12
  1617.           move-forw-line                 Ctl-N             3.2
  1618.           move-back-line                 Ctl-P             3.2
  1619.           change-window-forw             Ctl-PageDown      3.5
  1620.           change-window-back             Ctl-PageUp        3.5
  1621.           print-mark-to-cursor           Ctl-Print         3.9
  1622.           insert-literally               Ctl-Q             3.6
  1623.           recall-srch-string             Ctl-R             3.7
  1624.           unit-twiddle                   Ctl-T             3.6
  1625.           move-forw-page                 Ctl-V             3.2
  1626.           delete-mark-to-cursor          Ctl-W             3.6
  1627.           move-back-unit                 Ctl-West          3.2
  1628.           macro-start                    Ctl-X (           3.10
  1629.           macro-end                      Ctl-X )           3.10
  1630.           window-delete                  Ctl-X 0           3.5
  1631.           window-single                  Ctl-X 1           3.5
  1632.           window-split                   Ctl-X 2           3.5
  1633.           show-position                  Ctl-X =           3.2
  1634.           binding-for-key                Ctl-X ?           3.11
  1635.           change-buffer                  Ctl-X B           3.3
  1636.           spawn-shell                    Ctl-X C           3.12
  1637.           insert-toggle                  Ctl-X Ctl-A       3.6
  1638.           buffers-display                Ctl-X Ctl-B       3.3
  1639.           quit-no-save                   Ctl-X Ctl-C       3.8
  1640.           quit-save-all                  Ctl-X Ctl-E       3.8
  1641.           buffer-set-file-name           Ctl-X Ctl-F       3.3
  1642.           abort-cmd                      Ctl-X Ctl-G       3.12
  1643.           buffer-size-lock               Ctl-X Ctl-L       3.3
  1644.  
  1645.  
  1646.  
  1647.                                 BEAV User Manual                31
  1648.  
  1649.  
  1650.           move-window-down               Ctl-X Ctl-N       3.2
  1651.           move-window-up                 Ctl-X Ctl-P       3.2
  1652.           file-read                      Ctl-X Ctl-R       3.4
  1653.           file-save                      Ctl-X Ctl-S       3.4
  1654.           file-visit                     Ctl-X Ctl-V       3.4
  1655.           file-write                     Ctl-X Ctl-W       3.4
  1656.           swap-cursor-and-mark           Ctl-X Ctl_X       3.2
  1657.           window-shrink                  Ctl-X Ctl-Z       3.5
  1658.           macro-execute                  Ctl-X E           3.10
  1659.           move-to-byte                   Ctl-X G           3.2
  1660.           insert-unit                    Ctl-X I           3.6
  1661.           kill-buffer                    Ctl-X K           3.3
  1662.           bindings-load                  Ctl-X L           3.11
  1663.           change-window-forw             Ctl-X N           3.5
  1664.           change-window-back             Ctl-X P           3.5
  1665.           save-all-buffers               Ctl-X Return      3.4
  1666.           insert-file                    Ctl-X Tab         3.4
  1667.           file-view                      Ctl-X V           3.4
  1668.           window-enlarge                 Ctl-X Z           3.5
  1669.           yank                           Ctl-Y             3.6
  1670.           move-window-down               Ctl-Z             3.2
  1671.           delete-forw-char               Delete            3.6
  1672.           move-forw-char                 East              3.2
  1673.           move-to-end                    End               3.2
  1674.           window-reposition              Esc !             3.5
  1675.           replace                        Esc %             3.7
  1676.           change-to-next-buffer          Esc +             3.3
  1677.           change-to-prev-buffer          Esc -             3.3
  1678.           mark-set                       Esc .             3.2
  1679.           display-bytes                  Esc 1             3.5
  1680.           display-words                  Esc 2             3.5
  1681.           display-double-words           Esc 4             3.5
  1682.           move-to-beginning              Esc <             3.2
  1683.           move-to-end                    Esc >             3.2
  1684.           help                           Esc ?             3.1
  1685.           auto-save                      Esc A             3.12
  1686.           move-back-unit                 Esc B             3.2
  1687.           display-hex                    Esc Backspace     3.5
  1688.           Compare                        Esc C             3.12
  1689.           display-ascii                  Esc Ctl-A         3.5
  1690.           display-binary                 Esc Ctl-B         3.5
  1691.           display-decimal                Esc Ctl-D         3.5
  1692.           display-ebcdic                 Esc Ctl-E         3.5
  1693.           display-float                  Esc Ctl-F         3.5
  1694.           abort-cmd                      Esc Ctl-G         3.12
  1695.           delete-back-unit               Esc Ctl-K         3.6
  1696.           buffer-set-name                Esc Ctl-N         3.3
  1697.           display-octal                  Esc Ctl-O         3.5
  1698.           n-way-combine                  Esc Ctl-P         3.12
  1699.           screen-rows                    Esc Ctl-R         3.12
  1700.           n-way-split                    Esc Ctl-S         3.12
  1701.  
  1702.  
  1703.  
  1704.                                 BEAV User Manual                32
  1705.  
  1706.  
  1707.           show-version                   Esc Ctl-V         3.12
  1708.           show-save-buf                  Esc Ctl-W         3.3
  1709.           delete-forw-unit               Esc D             3.6
  1710.           move-forw-unit                 Esc F             3.2
  1711.           move-to-buffer-split           Esc G             3.2
  1712.           bind-to-key                    Esc K             3.11
  1713.           window-link                    Esc L             3.2
  1714.           save-mark-to-cursor            Esc O             3.3
  1715.           print-mark-to-cursor           Esc P             3.9
  1716.           insert-literally               Esc Q             3.6
  1717.           search-back                    Esc R             3.7
  1718.           delete-back-unit               Esc Rubout        3.6
  1719.           search-forw                    Esc S             3.7
  1720.           search-again                   Esc T             3.7
  1721.           file-visit-split               Esc U             3.4
  1722.           move-back-page                 Esc V             3.2
  1723.           copy-mark-to-cursor            Esc W             3.6
  1724.           extended-command               Esc X             3.12
  1725.           yank-buffer                    Esc Y             3.3
  1726.           move-window-up                 Esc Z             3.2
  1727.           help                           F1                3.1
  1728.           abort-cmd                      F10               3.12
  1729.           mark-set                       F2                3.2
  1730.           search-forw                    F3                3.7
  1731.           search-again                   F4                3.7
  1732.           replace                        F5                3.7
  1733.           yank                           F6                3.6
  1734.           copy-mark-to-cursor            F7                3.6
  1735.           delete-mark-to-cursor          F8                3.6
  1736.           move-to-byte                   F9                3.2
  1737.           move-to-beginning              Home              3.2
  1738.           insert-toggle                  Insert            3.6
  1739.           move-back-line                 North             3.2
  1740.           move-back-page                 PageDown          3.2
  1741.           move-forw-page                 PageUp            3.2
  1742.           delete-back-char               Rubout            3.6
  1743.           binding-for-key                Sh-F1             3.11
  1744.           quit-no-save                   Sh-F10            3.8
  1745.           file-read                      Sh-F2             3.4
  1746.           file-save                      Sh-F3             3.4
  1747.           file-visit                     Sh-F4             3.4
  1748.           file-write                     Sh-F5             3.4
  1749.           save-all-buffers               Sh-F6             3.4
  1750.           buffer-set-file-name           Sh-F7             3.3
  1751.           insert-file                    Sh-F8             3.4
  1752.           quit-save-all                  Sh-F9             3.8
  1753.           move-forw-unit                 Sh-Tab            3.2
  1754.           move-forw-line                 South             3.2
  1755.           move-back-char                 West              3.2
  1756.  
  1757.  
  1758.  
  1759.                                 BEAV User Manual                33
  1760.  
  1761.  
  1762.           6.    Release notes
  1763.  
  1764.  
  1765.                 Version 1.20 (3/10/91) of BEAV contains the following fixes
  1766.           and enhancements;
  1767.  
  1768.           *           Under unix files are created with read/write
  1769.                 permissions.
  1770.  
  1771.           *           Fixed the bug in the terminal I/O routine that caused
  1772.                 BEAV to spin rather than give up control when waiting for a
  1773.                 character.
  1774.  
  1775.           *           Added the ANSI #define that was missing for MSDOS.
  1776.  
  1777.           *           Changed the D16 #define to a unsigned short.
  1778.  
  1779.           *           Called ttclose on error exit.
  1780.  
  1781.           *           Check and limit ncol and nrow to the actual screen
  1782.                 array size.
  1783.  
  1784.           *           Add the ability to load key bindings from a file
  1785.                 automatically under MSDOS and unix.
  1786.  
  1787.           *           Add delete current window command.
  1788.  
  1789.           *           Support VT100 type function keys.
  1790.  
  1791.  
  1792.                 Version 1.30 (7/1/91) of BEAV contains the following fixes
  1793.           and enhancements;
  1794.  
  1795.           *           Under MSDOS and 16 bit UNIX systems the kill or copy
  1796.                 region could not be over 64K bytes.   This limit has been
  1797.                 eliminated.
  1798.  
  1799.           *           The save buffer can be made visible with the Esc Ctl-
  1800.                 W command.   The save buffer is not editable.
  1801.  
  1802.           *           All memory allocation errors now pause and ask for
  1803.                 conformation before continuing.   In previous releases only
  1804.                 an error message was printed.   Since an allocation error
  1805.                 generally means data loss, I have forced the user to
  1806.                 respond.   Memory allocation errors are not otherwise fatal
  1807.                 to BEAV, they are probably fatal to the user's data.   The
  1808.                 decision is left to the user with the appropriate warning.
  1809.  
  1810.           *           Two commands have been added to aid in working with
  1811.                 PROM files; n-way-split (Esc Ctl-S) and n-way-combine (Esc
  1812.                 Ctl-P).
  1813.  
  1814.  
  1815.  
  1816.                                 BEAV User Manual                34
  1817.  
  1818.  
  1819.  
  1820.           *
  1821.                 The speed of the delete-mark-to-cursor (Ctl-W) command has
  1822.                 been greatly improved.
  1823.  
  1824.           *           All commands that can potentially take a lot of time
  1825.                 can be stopped by pressing Ctl-G.
  1826.  
  1827.  
  1828.                 Version 1.31 (11/2/91) of BEAV contains the following
  1829.           fixes;
  1830.  
  1831.           *           A serious bug that causes a crash on systems that
  1832.                 trapped the use of dereferenced pointers has been fixed.
  1833.  
  1834.           *           BEAV now names the backup file properly under unix.
  1835.                 Previously; if a dot file (.<filename>) was edited, the
  1836.                 backup file was given a garbage name.   Now, a backup file
  1837.                 simply has ".bak" appended to the file name.
  1838.  
  1839.           *           You can use the buffers-display (Ctl-X, Ctl-B)
  1840.                 command to; go to, kill, or save a buffer.
  1841.  
  1842.           *           A compile flag for DEC ULTRA was created and a
  1843.                 makeable is included in this release (makefile.utx).
  1844.  
  1845.           *           When a large region was deleted the offset value was
  1846.                 displayed wrong, this is now fixed.
  1847.  
  1848.           *           A bug in the parse_f_name that trashed a variable is
  1849.                 now fixed.
  1850.  
  1851.           *           Regions of never used code have been deleted.
  1852.  
  1853.           *           Under UNIX the file permissions are maintained
  1854.                 correctly when the file is saved.
  1855.  
  1856.           *           A number of un-niceties that lint reported have been
  1857.                 fixed.
  1858.  
  1859.  
  1860.                 Version 1.32 (11/8/91) of BEAV contains the following
  1861.           enhancements;
  1862.  
  1863.           *           BEAV will now compile and run on the Amiga computer.
  1864.  
  1865.  
  1866.                 Version 1.33 (8/9/92) of BEAV contains the following
  1867.           enhancements;
  1868.  
  1869.  
  1870.  
  1871.                                 BEAV User Manual                35
  1872.  
  1873.  
  1874.           *           A new command, "screen-rows", allows you to change
  1875.                 the number of rows that BEAV will use on the CRT.   The
  1876.                 command can be issued anytime, the windows will be adjusted
  1877.                 or killed as necessary.
  1878.  
  1879.           *           Floating point numbers can be displayed using the
  1880.                 "display-float" command.   This will set the current window
  1881.                 to floating point display, but the window cannot be edited.
  1882.  
  1883.           *           The "beavrc" file processing has been enhanced to
  1884.                 allow most commands to be executed from the rc file when
  1885.                 BEAV loads.
  1886.  
  1887.           *           The default key binding for the "n-way-combine" has
  1888.                 been changed to Esc Ctl P.   This frees up the old binding
  1889.                 Esc Ctl F to be used for the "display-float" command which
  1890.                 is more in line with the other display mode commands.
  1891.  
  1892.           *           The replace command would fail to find all
  1893.                 occurrences of a search pattern if the pattern fell on the
  1894.                 boundary of certain internal data structures.   This is
  1895.                 fixed.
  1896.  
  1897.           *           The memory used to handle screen images is now
  1898.                 allocated at load time rather than statically allocated.
  1899.                 This will allow systems with any screen size to be fully
  1900.                 used.   This depends on the variable "nrow" being properly
  1901.                 set by whatever termcap description you have configured.
  1902.                 The default for "nrow" is the #define "NROW" as set in the
  1903.                 def.h file, generally 24.   The columns remain fixed at 80.
  1904.  
  1905.           *           Under Unix, BEAV will use the full screen rows as
  1906.                 reported by the ioctl inquiry of the tty device.
  1907.                 Previously, the bottom line was not used.
  1908.  
  1909.           *           Under MSDOS, BEAV will use the full screen rows as
  1910.                 reported by the int 10 function 1b call.
  1911.  
  1912.           *           Not new to this release, but important for foreign
  1913.                 language users.   All English text in BEAV is contained in
  1914.                 the file "text.c".   It should be relatively easy to
  1915.                 translate and recompile.   If someone wants to send me a
  1916.                 translated version of "text.c", I will include it in my
  1917.                 next release.
  1918.  
  1919.           *           The prompt line is now erased properly.
  1920.  
  1921.  
  1922.  
  1923.                                 BEAV User Manual                36
  1924.  
  1925.  
  1926.           7.    Source Availability
  1927.  
  1928.                 BEAV source and executable is maintained at WSMR-
  1929.           SIMTEL20.ARMY.MIL in PD1:<MSDOS.FILUTL>BEAV133.ZIP.   The source
  1930.           and manual is available in PD1:<MSDOS.FILUTL>BEAV133S.ZIP.
  1931.  
  1932.                 If anyone does not have access to usenet, I will mail a
  1933.           copy of the source on floppy for $20.00 copying charge.   The
  1934.           floppies can be in MSDOS file format or UNIX tar format.   I can
  1935.           also supply either QIC-24, QIC-120, QIC-150, or 9 track reel to
  1936.           reel tape.   The price for the tape will include the cost of the
  1937.           media.
  1938.