home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2878 / beav.doc1 next >
Encoding:
Text File  |  1991-02-28  |  26.7 KB  |  945 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                                BEAV
  11.                      Binary Editor And Viewer
  12.  
  13.                       Manual Copyright 1991
  14.  
  15.                                 By
  16.                           Peter Reilley
  17.                          19 Heritage Cir.
  18.                         Hudson, N.H. 03051
  19.                            pvr@wang.com
  20.  
  21.              BEAV source and executable can be freely
  22.              distributed for non-commercial purposes.
  23.  
  24.  
  25.                         BEAV User Manual
  26.  
  27.  
  28.  
  29.  
  30.                         Table of Contents
  31.  
  32. 1.    Introduction
  33.  
  34. 2.    Overview
  35.  2.1       Terms and Definitions
  36.  2.2       The Screen Format
  37.  2.3       Display Modes
  38.  2.4       Commands
  39.  2.5       Buffers
  40.  2.6       Files
  41.  2.7       Key Binding
  42.  2.8       Configuration
  43.  
  44. 3.    Command Description
  45.  3.1       Help
  46.  3.2       Cursor Movement
  47.  3.3       Buffer Management
  48.  3.4       File Management
  49.  3.5       Window Management
  50.  3.6       Inserting and deleting
  51.  3.7       Search and Replace Commands
  52.  3.8       Exiting BEAV
  53.  3.9       Printing
  54.  3.10      Keyboard Macros
  55.  3.11      Key Binding
  56.  3.12      Special Functions
  57.  
  58. 4.    Alphabetical list of commands by name
  59.  
  60. 5.    Alphabetical list of commands by default key binding
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.                               - 2  -
  75.  
  76.  
  77.  
  78.  
  79.                         BEAV User Manual
  80.  
  81.  
  82.  
  83.  
  84. 1.0   Introduction
  85.  
  86.       BEAV is an editor that brings the features of a powerful 
  87. full screen editor to the editing of binary files.   It is the 
  88. only editor that I know of that does that.
  89.  
  90.       When you need to edit a non-text file you generally have 
  91. two choices; a text editor or a file zap type editor.   Each 
  92. choice has significant disadvantages.
  93.  
  94.       Text editors expect the file to be formatted in a certain 
  95. way.   At a minimum they expect that all lines be terminated by 
  96. a carriage return or line feed and be limited in length.   
  97. There is no line length limit with BEAV.   Most text editors 
  98. get confused by bytes that are outside of the normal range (20 
  99. to 7E HEX).   In BEAV no special characters such as carriage 
  100. return or line feed affect the display aside from producing 
  101. their numeric value.   BEAV can edit any file no matter the 
  102. format.
  103.  
  104.       The other choice is to use a file zap type editor which 
  105. can edit a binary file without difficulty.  These editors are 
  106. often very limited in their features and capabilities.   Most 
  107. file zap programs can edit a file only in HEX or ASCII.   They 
  108. generally operate on a sector basis and because of this they 
  109. cannot insert or delete data in the middle of the file.
  110.  
  111.       All these limits are eliminated in BEAV.   You can edit a 
  112. file in HEX, ASCII, EBCDIC, OCTAL, DECIMAL, and BINARY.   You 
  113. can search or search and replace in any of these modes.   Data 
  114. can be displayed in BYTE, WORD, or DOUBLE WORD formats.   While 
  115. displaying WORDS or DOUBLE WORDS the data can be displayed in 
  116. INTEL's or MOTOROLA's byte swap format.   Data of any length 
  117. can be inserted at any point in the file.   The source of this 
  118. data can be the keyboard, another buffer, of a file.   Any data 
  119. that is being displayed can be sent to a printer in the 
  120. displayed format.   Files that are bigger than memory can be 
  121. handled.
  122.  
  123.       Some users may recognize the similarity to the EMACS text 
  124. editor that was written by Richard Stallman at MIT.   This is 
  125. not a coincidence.   I attempted to keep as much of the user 
  126. interface and functionality as possible given the very 
  127. different tasks of EMACS and BEAV.
  128.  
  129.  
  130.  
  131.                               - 3  -
  132.  
  133.  
  134.  
  135.  
  136.                         BEAV User Manual
  137.  
  138.  
  139.  
  140. 2.    Overview
  141.  2.1       Terms and Definitions
  142.  
  143.       Throughout this manual certain terms will be used to 
  144. describe the operation and structure of BEAV.
  145.  
  146.       The data that BEAV is editing is held in a buffer that is 
  147. structured as a byte stream.   There are many commands that 
  148. affect the way that this byte stream is displayed on to the 
  149. screen.   Whatever display mode is chosen the data in the 
  150. buffer is not effected, only the presentation.
  151.  
  152.       One such choice is to display the data as bytes, words, 
  153. or double words.   That is; 8 bit values, 16 bit values, or 32 
  154. bit values.   Whatever choice is made the value of the selected 
  155. size will be displayed.   These values are referred to as units 
  156. in this manual.   Thus the 'delete-forw-unit' command deletes 
  157. the unit under the cursor.   If 32 bit units are being 
  158. displayed then 4 bytes will be deleted.
  159.  
  160.       Many commands in BEAV start by pressing the 'ESCAPE' 
  161. key.   When this manual refers to a command that requires that 
  162. the 'ESCAPE' key be pressed it will be abbreviated with 
  163. 'Esc'.   Another frequently used key stroke to start commands 
  164. is 'CONTROL X'.   This in done by pressing the 'CONTROL' key 
  165. then pressing the 'X' key at the same time.   In this manual 
  166. this will be abbreviated by 'Ctl-X'.    Many commands contain 
  167. other control characters and these will be abbreviates 
  168. similarly.   Thus the 'insert-unit' command will be listed as 
  169. 'Ctl-X I'.   This will be entered be pressing the CONTROL key 
  170. and while holding it hitting the 'X' key, release the CONTROL 
  171. key then hit the 'I' key.
  172.  
  173.  2.2       The Screen Format
  174.       BEAV presents information to the user in a number of 
  175. areas.   The first is the window.   There will be at least one 
  176. window displayed on the screen at all times.   The window 
  177. consists of two areas.   The first is the display area.   This 
  178. is where the data that is in the buffer is displayed.   Most of 
  179. the time the cursor will be in this area, as this is where most 
  180. editing is done.   Each line in the display area will start 
  181. with a number that indicates the offset into the buffer for 
  182. this line of data.   At the bottom of the display area for each 
  183. window is the status line.
  184.  
  185.       The status line presents the user with a number of 
  186. specific pieces of information.   The first is the program name 
  187. which is "BEAV".   Next there is a flag indicating the status 
  188. of this particular buffer.   Then the buffer name followed by 
  189. the file name.   Next the cursor position in bytes and the 
  190. character position in the unit.   The last pieces of 
  191. information give the format that the data is being displayed 
  192. in.   There can be multiple windows on the screen at the same 
  193. time but each window will have a status line at the bottom.
  194.  
  195.  
  196.  
  197.                               - 4  -
  198.  
  199.  
  200.  
  201.  
  202.                         BEAV User Manual
  203.  
  204.  
  205.  
  206.  
  207.       The very bottom line on the screen is the prompt line.   
  208. This is where you enter data that BEAV requests.   If you want 
  209. to edit a new file you would type 'Ctl-X Ctl-V', BEAV would 
  210. respond with "Visit file:" on the prompt line.   The cursor 
  211. would be positioned after the prompt.   You would then enter 
  212. the name of the file that you wished to edit.
  213.  
  214.       If you entered the command by mistake, you can abort the 
  215. operation by typing a 'Ctl-G'.   'Control G' is a universal 
  216. abort command and can be used anywhere.   If you want to 
  217. perform a search you will enter the search string on this 
  218. line.   When you have entered the information that BEAV has 
  219. requested hit 'Return' and the cursor will return to it's 
  220. original position in the window display area.   The prompt line 
  221. is also where error messages are displayed.
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.                               - 5  -
  252.  
  253.  
  254.  
  255.  
  256.                         BEAV User Manual
  257.  
  258.  
  259.  
  260.  2.3       Display Modes
  261.  
  262.       The data in the buffer can be displayed in a number of 
  263. formats.   First there is the display mode.   This can be 
  264. either; HEXADECIMAL, DECIMAL, OCTAL, BINARY, ASCII, or EBCDIC.
  265.  
  266.       If ASCII or EBCDIC mode is chosen then each byte in the 
  267. buffer will be converted to it's ASCII or EBCDIC character and 
  268. displayed.   Bytes that are outside of the standard character 
  269. set will be displayed as a dot.   Each line will be 64 
  270. characters long.   The byte value for "carriage return" and 
  271. "line feed" will be displayed as a dot as any other 
  272. non-printable characters.
  273.  
  274.       Within HEXADECIMAL, DECIMAL, OCTAL, or BINARY format the 
  275. data can be displayed in 8, 16 or 32 bit values.   If 16 or 32 
  276. bit values are displayed the user can choose to view these 
  277. values in either the Intel format or the Motorola format.   If 
  278. Intel format is chosen then the first byte in each unit is the 
  279. least significant byte when the value is calculated.   Thus in 
  280. hex 32 bit mode a byte string of "32 7A 9F 10" would be 
  281. displayed as "109F7A32".   If Motorola format is chosen this 
  282. value would be displayed as "327A9F10".
  283.  
  284.       There is another display format choice that affects the 
  285. 16 or 32 bit formats.   This is called shift.   The shift can 
  286. be 0 or 1 for 16 bit modes, or 0, 1, 2, 3 for 32 bit modes.   
  287. Shift moves the zero point reference for the buffer up by the 
  288. selected value.   The default is zero shift.   If a buffer is 
  289. displaying the following 32 bit hex data;
  290.  
  291.            "12345678 2F4792AF 673DFEA1 88551199"
  292.  
  293. with the shift at 0.   Changing shift to 1 will produce;
  294.  
  295.            "3456782F 4792AF67 3DFEA188 55119955"
  296.  
  297. The data has been slid down toward the beginning of the buffer 
  298. by one byte.   This has not changed the data in the buffer at 
  299. all, it has only affected the way that the data is presented on 
  300. the screen.   This is useful when looking at WORD or DOUBLE 
  301. WORD data that is not aligned on two or four byte boundaries.
  302.  
  303.       When BEAV is first started or a new window is opened the 
  304. default format is HEXADECIMAL BYTES.
  305.  
  306.  
  307.  
  308.  
  309.                               - 6  -
  310.  
  311.  
  312.  
  313.  
  314.                         BEAV User Manual
  315.  
  316.  
  317.  
  318.  2.4       Commands
  319.  
  320.       Commands are the means that the user controls the 
  321. operation of BEAV.   A command can be given by using one of two 
  322. methods.   The first is to use the key binding.
  323.  
  324.       A command can have one or more associated key bindings.   
  325. It can also have no key binding.   There are a set of default 
  326. key bindings that BEAV comes configured with.   The current set 
  327. of key bindings can be seen by using the 'help' command.   The 
  328. 'help' command is 'Esc ?' or Function Key 1 'F1' on the IBM 
  329. PC.   The help buffer can be scrolled by using the up and down 
  330. arrow keys.   A printed copy may be obtained by going to the 
  331. bottom of the help buffer using the 'move-to-end' command ('Esc 
  332. >' or the 'End' key).   Then issue the 'print-mark-to-cursor' 
  333. command ('Esc P' or 'Ctl-Print') and enter 'PRN' when prompted 
  334. with "Print to:".   This will output the entire help buffer to 
  335. a printer connected to the parallel interface.
  336.  
  337.  2.5       Buffers
  338.  
  339.       Buffers are the in memory storage for all data editing 
  340. and viewing.   Each buffer has a name that appears in the mode 
  341. line.   Buffers generally have a file name that is associated 
  342. with them.   The file name also appears in the mode line.   The 
  343. buffer name and the file name are independent but the buffer 
  344. name defaults to the file name.
  345.  
  346.       The buffer name is used to refer to a specific buffer.   
  347. The 'change-buffer' ('Ctl-X B') command will prompt you for a 
  348. buffer name.   After you enter a buffer name that buffer will 
  349. be displayed in the current window.   If there is no such 
  350. buffer, one will be created and displayed (it will be empty).
  351.  
  352.       When BEAV is run with a file name as a command line 
  353. parameter, the file is read into a new buffer.  The buffer name 
  354. will be made the same as the file name.   The file name is only 
  355. used when the buffer is saved.   If the file name is changed 
  356. using the 'buffer-set-file-name' ('Ctl-X Ctl-F') command then 
  357. when the buffer is saved it will be saved to the new file.
  358.  
  359.       Buffers are dynamically allocated.   They grow or shrink 
  360. as the size of the data they contain changes.   The buffer size 
  361. can be frozen using the 'buffer-size-lock' ('Ctl-X Ctl-L') 
  362. command.   This prevents inserting or deleting data from the 
  363. buffer but data can be modified.
  364.  
  365.       Buffers continue to exist even if they are not being 
  366. displayed.   Buffers are saved in a linked list that can be 
  367. stepped through using the 'change-to-next-buffer' ('Esc +') or 
  368. 'change-to-prev-buffer' ('Esc -') commands.   If the 
  369. 'change-to-next-buffer' command is given then the next buffer 
  370. in the list is displayed in the current window.
  371.  
  372.  
  373.  
  374.                               - 7  -
  375.  
  376.  
  377.  
  378.  
  379.                         BEAV User Manual
  380.  
  381.  
  382.  
  383.  2.6       Files
  384.  
  385.       Files are the means of storing data on disk.   Files or 
  386. segments of files can be loaded into BEAV for editing or 
  387. viewing.   The file on the disk has not been changed until BEAV 
  388. does a save to that file.   When a save to a file is performed 
  389. the original file contents in saved in a ".BAK" file.
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.                               - 8  -
  429.  
  430.  
  431.  
  432.  
  433.                         BEAV User Manual
  434.  
  435.  
  436.  
  437.  
  438.  2.7  Key Binding
  439.  
  440.       All commands in BEAV have a command name and a default 
  441. key binding.   The bindings may be changed to suit personal 
  442. preference by using the 'bind-to-key' ('Esc K') command.   The 
  443. current binding of a key sequence can be displayed by using the 
  444. 'binding-for-key' ('Ctl-X ?') command.
  445.  
  446.       If there is an environment variable "BEAV=" and it is set 
  447. to a file name, all key bindings that the user sets are saved 
  448. in this file.   When BEAV is started again this file is read 
  449. and these bindings are loaded.   Thus, any bindings that a user 
  450. creates becomes permanent.   This file is a simple text file 
  451. and can be edited to make changes.
  452.  
  453.  2.8  Configuration
  454.  
  455.       When BEAV is first run it detects whether the system is 
  456. an IBM PC or a clone.   If a PC is detected then a set of key 
  457. bindings that use the 10 function keys and the relevant keypad 
  458. keys are loaded.   If the system is not recognized then only 
  459. the standard bindings are loaded.
  460.  
  461.       If a PC is detected the screen is managed by making BIOS 
  462. level calls that enhance performance.   Otherwise, the screen 
  463. is controlled by making ANSI compatible calls to the operating 
  464. system.   This is much slower but is not sensitive to hardware 
  465. configuration.   This requires that non-standard systems 
  466. support ANSI display controls.   The following ANSI escape 
  467. sequences are used;
  468.  
  469.       Position cursor          ESC [ <row> ; <column> H
  470.  
  471.       Erase to end of line     ESC [ 0 K
  472.  
  473.       Erase to end of page     ESC [ 0 J
  474.  
  475.       Normal video             ESC [ 0 m
  476.  
  477.       Reverse video            ESC [ 7 m
  478.  
  479.  
  480.  
  481.  
  482.                               - 9  -
  483.  
  484.  
  485.  
  486.  
  487.                         BEAV User Manual
  488.  
  489.  
  490.  
  491.  
  492. 3.    Command Description
  493.  
  494.       This section describes all BEAV commands as to their 
  495. function and any side effects that they may have.   The first 
  496. line of each description of a command will begin with the 
  497. default key binding then the command name and follows with the 
  498. key binding for a PC.
  499.  
  500.  3.1  Help
  501.  
  502.       This command returns information that will aid in the use 
  503. of BEAV.
  504.  
  505.       Esc ?          help                     F1
  506.  
  507.       A new window is opened by splitting the current window 
  508. then all current key bindings are displayed.   This buffer is 
  509. larger than can be shown at one time and must be scrolled up 
  510. and down to see all entries.    All commands that do not alter 
  511. data can be used to move around and search the help buffer.   
  512. To leave the help buffer you move to the next window using the 
  513. 'change-window-forw' command ('Ctl-X N').   The help window can 
  514. be removed from the screen by making the current window the 
  515. only window with the 'window-single' command ('Ctl-X 1').
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.                               - 10 -
  537.  
  538.  
  539.  
  540.  
  541.                         BEAV User Manual
  542.  
  543.  
  544.  
  545.  3.2  Cursor Movement
  546.  
  547.       There are a number of commands that move the cursor 
  548. around the current window.   If the cursor bumps the top or the 
  549. bottom of the window the position of the window will be 
  550. adjusted so as to keep the cursor within the bounds.   When the 
  551. window is moved in response to cursor movements it is moved by 
  552. about one third of the window size.   This improves performance 
  553. by reducing the number of window moves.
  554.  
  555.       Ctl-P          move-back-line           North (up arrow)
  556.       Ctl-N          move-forw-line           South (down arrow)
  557.  
  558.       These commands move the cursor up one line or down one 
  559. line.   If the cursor is on the top line in the buffer and a 
  560. 'move-back-line' command is given the cursor will jump to the 
  561. beginning of the first unit in the buffer.   If the cursor is 
  562. on the last line of the buffer and a 'move-forw-line' is given 
  563. the cursor will move to the last unit in the buffer.
  564.  
  565.       Ctl-F          move-forw-char           East (right arrow)
  566.       Ctl-B          Move-back-char           West (left arrow)
  567.  
  568.       These commands move the cursor forward or backward in the 
  569. current line.   If the cursor is at the first character in the 
  570. first unit of the line and the 'move-back-char' command is 
  571. given then the cursor will wrap to the last character of the 
  572. previous line.   If the cursor is at the last character of the 
  573. last unit in the current line then it will wrap to the first 
  574. character of the next line.
  575.  
  576.       Esc F          move-forw-unit           Ctl-East
  577.       Esc B          move-back-unit           Ctl-West
  578.  
  579.       These commands are similar to the above set but they move 
  580. the cursor by units rather than characters.   The command 
  581. 'move-forw-unit' will position the cursor to the first 
  582. character of the next unit.   The command 'move-back-unit' will 
  583. move the cursor to the first character of the previous unit.
  584.  
  585.       Ctl-V          move-forw-page           PageUp
  586.       Esc V          move-back-page           PageDown
  587.  
  588.       These commands move the move the data in the window by 
  589. the number of lines in the window less one.   The cursor will 
  590. stay in the same position relative to the window as the data is 
  591. moved.
  592.  
  593.       Esc <          move-to-beginning        Home
  594.       Esc >          move-to-end              End
  595.  
  596.       Move the cursor to the beginning or the end of the buffer.
  597.  
  598.  
  599.  
  600.                               - 11 -
  601.  
  602.  
  603.  
  604.  
  605.                         BEAV User Manual
  606.  
  607.  
  608.  
  609.  
  610.       Ctl-X G        move-to-byte             F9
  611.  
  612.       Prompt for a byte offset, then go to that position in the 
  613. current buffer.
  614.  
  615.       Ctl-X Ctl-N    move-window-down         Ctl-Z
  616.       Ctl-X Ctl-P    move-window-up           Esc Z
  617.  
  618.       Move the buffer in the window up or down by one line.   
  619. This does not effect the cursor until it hits the top or bottom 
  620. of the window.
  621.  
  622.       Esc .          mark-set                 F2
  623.  
  624.       Set the mark position to the current cursor position.   
  625. The mark position is remembered even for nonactive windows and 
  626. buffers.
  627.  
  628.       Ctl-X Ctl-X    swap-cursor-and-mark
  629.  
  630.       The position of the cursor and the position of the mark 
  631. are swapped.
  632.  
  633.       Esc L          window-link
  634.  
  635.       This command causes all windows that are displaying the 
  636. contents of the current buffer to have the same cursor 
  637. position.   Thus if one window is scrolled then all other 
  638. windows that display that buffer are scrolled so as to keep the 
  639. cursor in the window.
  640.  
  641.       Ctl-X =        show-position
  642.  
  643.       The current position of the cursor and the mark are 
  644. displayed.   The buffer size, file size and file name are also 
  645. shown.
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.                               - 12 -
  655.   
  656.  
  657.  
  658.                         BEAV User Manual
  659.  
  660.  
  661.  
  662.  3.3  Buffer Management
  663.  
  664.       Buffers store all data that is being edited.   The only 
  665. limit to the number of buffers is the size of available 
  666. memory.   If a file is loaded into a buffer and there is 
  667. insufficient memory to hold the entire file, then it will be 
  668. loaded until memory is exhausted.   The buffer will then be set 
  669. to read only mode.
  670.  
  671.       Ctl-X Ctl-B    buffers-display          Ctl-F1
  672.  
  673.       A new window is opened and a list of all buffers in BEAV 
  674. is displayed.   The list contains the buffer name, the file 
  675. name (if it exists), the buffer size, and a state flag.   If 
  676. the list is too large for the window, you can go to that window 
  677. and scroll the list.
  678.  
  679.       Ctl-X B        change-buffer            Ctl-F2
  680.  
  681.       This command prompts you for a buffer name.   If you 
  682. enter the name of an existing buffer, that buffer will be 
  683. displayed in the current window.   If the name does not match 
  684. an existing buffer, a new buffer will be created and 
  685. displayed.   This buffer will be empty and will have no file 
  686. name.
  687.  
  688.       Esc +          change-to-next-buffer    Ctl-F4
  689.       Esc -          change-to-prev-buffer    Ctl-F5
  690.  
  691.       The next or the previous buffer in the buffer list is 
  692. displayed in the current window.   This does not effect buffers 
  693. that are displayed in other windows.
  694.  
  695.       Esc G          move-to-buffer-split
  696.  
  697.       Prompt for a buffer name.   Then split the current window 
  698. and display that buffer, creating it if necessary.
  699.  
  700.       Esc Ctl-N      buffer-set-name          Esc Ctl-N
  701.  
  702.       The current buffer name is changed to the name that you 
  703. enter.   This does not effect the file name.
  704.  
  705.       Ctl-X Ctl-F    buffer-set-file-name     Ctl-F7
  706.  
  707.       The file name of the current buffer is changed to the 
  708. name that you enter.   This does not affect the buffer name.
  709.  
  710.  
  711.  
  712.  
  713.                               - 13 -
  714.  
  715.  
  716.  
  717.                         BEAV User Manual
  718.  
  719.  
  720.  
  721.       Ctl-X K        kill-buffer              Ctl-F3
  722.  
  723.       This command prompts you for a buffer name.   This buffer 
  724. is then deleted.   If the buffer is currently being displayed 
  725. you are prompted for conformation.   If the buffer has been 
  726. changed you are again prompted for conformation.
  727.  
  728.       Ctl-X Ctl-L    buffer-size-lock
  729.  
  730.       The buffer size is prevented from being changed.   Data 
  731. can be edited but only by changing the existing data.   If a 
  732. buffer is copied into a size-locked buffer the operation well 
  733. be successful but will overwrite existing data.   This command 
  734. toggles between locked and unlocked.
  735.  
  736.       Esc Y          yank-buffer              Ctl-F6
  737.  
  738.       Data from one buffer is inserted into the current buffer 
  739. at the cursor position.   You are prompted for the name of the 
  740. buffer to copy from.
  741.  
  742.       Esc O          save-mark-to-cursor
  743.  
  744.       Prompt for a buffer name.   Create a new buffer with that 
  745. name and write the data from the mark to the cursor into that 
  746. buffer.
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.                               - 14 -
  767.  
  768.  
  769.  
  770.                         BEAV User Manual
  771.  
  772.  
  773.  
  774.  3.4  File Management
  775.  
  776.       These commands control BEAV's access to files.   Files 
  777. are loaded into buffers or are written from buffers.   Commands 
  778. that prompt for a file name also accept range parameters.   
  779. Range parameters are always given in the numeric base of the 
  780. current window.   Thus if you are displaying data in decimal 
  781. format then the range parameters must be entered in decimal.
  782.  
  783.       The size of a file read or write can be limited by 
  784. specifying a range.   The range parameter specifies the offset 
  785. into the file, not the buffer.   Range parameters can be 
  786. specified in these forms;
  787.  
  788.       <file name> <start address>
  789.  
  790.       <file name> <start address> <end address>
  791.  
  792.       <file name> <start address> +<length>
  793.  
  794.       The first form causes the read or write to begin from the 
  795. <start address> value until the end of the buffer on write or 
  796. the end of the file on read.
  797.  
  798.       The second form reads or writes from <start address> 
  799. until <end address> non-inclusive.
  800.  
  801.       The third form reads or writes from <start address> for 
  802. <length> bytes.
  803.  
  804.       Thus, if the command 'file-read' is given and you enter 
  805. at the prompt;   main.obj 1000 +100.   If the current display 
  806. mode is hex, the file "main.obj" will be read from hex byte 
  807. address 1000 to 10FF into the buffer.
  808.  
  809.       Ctl-X Ctl-R    file-read                Sh-F2
  810.  
  811.       Prompt for a file name and read that file into the 
  812. current buffer.   This overwrites the current contents of the 
  813. buffer.   The buffer name is not changed but the buffer file 
  814. name is set to the new file name.
  815.  
  816.       Ctl-X Ctl-S    file-save                Sh-F3
  817.  
  818.       Write the current buffer out to the file if it has been 
  819. changed.   If the buffer has not been changed then do nothing.
  820.  
  821.       Ctl-X V        file-view
  822.  
  823.       Prompt for a file name and read file into a new buffer 
  824. and display in current window.   Set to read-only mode.
  825.  
  826.  
  827.  
  828.  
  829.                               - 15 -
  830.  
  831.  
  832.  
  833.                         BEAV User Manual
  834.  
  835.  
  836.  
  837.       Ctl-X Ctl-V    file-visit               Sh-F4
  838.  
  839.       Prompt for a file name.   If the buffer already exists 
  840. then display it in the current window.   Otherwise, read file 
  841. into a new buffer and display in current window.   If there is 
  842. no such file then create it.
  843.  
  844.       Esc U          file-visit-split
  845.  
  846.       Same as above but split current window and display new 
  847. buffer.   This displays the new buffer as well as the old 
  848. buffer.
  849.  
  850.       Ctl-X Ctl-W    file-write               Sh-F5
  851.  
  852.       Prompt for a file name, then write the current buffer to 
  853. that file.
  854.  
  855.       Ctl-X Tab      insert-file              Sh-F8
  856.  
  857.       Prompt for a file name and insert that file into the 
  858. current buffer at the cursor position.
  859.  
  860.       Ctl-X Return   save-all-buffers         Sh-F6
  861.  
  862.       Write all buffers that have been changed to their 
  863. respective files.
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.                               - 16 -
  883.  
  884.  
  885.  
  886.                         BEAV User Manual
  887.  
  888.  
  889.  
  890.  3.5                 Window Management
  891.  
  892.       BEAV presents information to the user in one or more 
  893. windows.   Each window is a view into a buffer where the data 
  894. is actually stored.   The window controls how this data is 
  895. formatted for display to the user.   Data can be displayed as 
  896. HEX bytes, OCTAL bytes, ASCII characters, plus many others.   
  897. The display format is associated with the window.   Thus if a 
  898. new buffer is displayed in the current window that new data 
  899. will be displayed in the current windows format.
  900.  
  901.       The only limit to the number of windows is the screen 
  902. size.   A window can be no smaller than two lines.   This along 
  903. with the mode line associated with each window limits to eight 
  904. the number of windows on an IBM PC 25 line screen.
  905.  
  906.       Any window can view any buffer including having many 
  907. windows on the same buffer.   For example, two windows can 
  908. display the same buffer but present the data in two different 
  909. modes.   One window could display HEX bytes and the other could 
  910. display ASCII characters.
  911.  
  912.       Ctl-P          change-window-back       Ctl-PageUp
  913.       Ctl-N          change-window-forw       Ctl-PageDown
  914.  
  915.       These commands move the cursor to the next or previous 
  916. window on the screen, making it the current window.
  917.  
  918.       Ctl-X Z        window-enlarge
  919.       Ctl-X Ctl-Z    window-shrink
  920.  
  921.       Enlarge or shrink the current window size by one line.
  922.  
  923.       Esc !          window-reposition
  924.  
  925.       Move window position so that the cursor is centered in 
  926. the window.   The cursor position in the buffer does not change.
  927.  
  928.       Ctl-X 2        window-split
  929.  
  930.       Split the current window into equal parts.   Both haves 
  931. have the same display mode and view the save buffer.
  932.  
  933.       Ctl-X 1        window-single
  934.  
  935.       Expand the current window to fill the entire display, all 
  936. other windows are removed.   Make the current window the only 
  937. window displayed.   This has no effect on the underlying 
  938. buffers except that they may not be displayed any more.
  939.  
  940.  
  941.  
  942.                               - 17 -
  943.  
  944.  
  945.