home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / beav1402.zip / beav140.txt < prev    next >
Text File  |  1993-04-16  |  92KB  |  1,942 lines

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