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