BEAV User Manual shift is 0. For example, a double word at address 10 is made up of the bytes at address 10, 11, 12, and 13. With a shift of 1 that double word would be made of bytes 11, 12, 13, and 14. With a shift of 2 then bytes 12, 13, 14, and 15 would be used. The maximum shift in word display mode is one and the maximum shift in double word mode is three. The buffer is in effect shifted toward the beginning of the buffer with 1, 2, or 3 bytes becoming not visible. These bytes are not lost, they become visible when the shift is set to zero. This command cycles through all possible shift values. There is no effect in any byte display mode or any text display mode. 3.6 Inserting and deleting These commands are the core of BEAV. These commands allow the buffer to be edited in a similar fashion to a text editor. BEAV has an insert mode much the same as text editors but it only works when displaying data in one of the text modes, either ASCII or EBCDIC. In other modes it doesn't make any sense to insert characters as they are typed when there is more than one characters per unit. In the data modes there is a command that inserts a unit of zeros into the buffer. Similarly the delete commands always delete a unit rather than a character. In a text mode the delete commands work as in a text editor because a unit is a character. Ctl-X I insert-unit Insert a zero at the cursor position. The rest of the data moves down one place. Thus, if double words are being displayed, four bytes are inserted before the cursor position. These bytes are initialized to zero. This command works in all display modes. Ctl-X Ctl-A insert-toggle Insert In either of the two text modes this command toggles between insert mode and overwrite mode. In insert mode each character that is typed is inserted in front of the cursor and the rest of the buffer is moved down. In overwrite mode the typed characters replace the character that is at the cursor. This command has no effect in a non-text display mode. Ctl-Q insert-literally Esc Q This command sets a special temporary mode where the next typed character is inserted in the buffer no matter what the character is. This allows control codes to be inserted in the buffer when in a text display mode. Alternatively the same byte could be inserted into the buffer by using one of the data display modes. It night be faster to use this command on some occasions. 18 BEAV User Manual Ctl-T unit-twiddle The unit at the cursor is swapped with the previous unit. Rubout delete-back-char Backspace This command deletes the character before the cursor and pulls the rest of the buffer back. The cursor remains on the same character as it moves back. It only works in the text and byte display modes. Ctl-D delete-forw-char Delete The character at the cursor is deleted and the buffer is pulled back. The cursor remains at the same position. It only works in the text and byte display modes. Esc Rubout delete-back-unit Esc Ctl-K This command deletes the unit before the cursor and pulls the rest of the buffer back. The cursor remains on the same unit as it moves back. Esc D delete-forw-unit The unit at the cursor is deleted and the buffer is pulled back. The cursor remains at the same position. Esc W copy-mark-to-cursor F7 The area in the buffer from the mark to the current cursor position is copied into the kill buffer. If the mark is not set before this command is given an error is reported. Ctl-W delete-mark-to-cursor F8 The area in the buffer from the mark to the current cursor position is deleted and placed into the kill buffer. If the mark is not set before this command is given an error is reported. Ctl-Y yank F6 The contents of the kill buffer is inserted into the buffer at the cursor position. The kill buffer itself is not changed. 3.7 Search and Replace Commands BEAV has very powerful search and replace commands. The search and replace string can be entered in any of the display modes. The search and replace strings can each be up to 256 bytes long. The display mode can be changed at any time while 19 BEAV User Manual entering the string. Wild cards can be placed down to the bit level on both the search and replace strings. The wild card character, '?', will match any value that it is compared with. When a wild card is placed in the replace string it leaves the destination data unchanged at that position. Thus, if the destination contains the ASCII string '41 42 43 44' and the replace string contains '66 67 ?? 69' the result would be '66 67 43 69'. Wild cards can be placed in any position that makes sense. If you want to use wild cards in an ASCII string then you must switch to another mode to enter them. You can then switch back to ASCII mode. In this case a '?' will appear in the position where the wild card has been placed but it appears exactly the same as a standard question mark. In fact if you type a '?' over the wild card there will be no apparent change. However, the character will no longer be a wild card but a standard question mark. To see the true wild cards you must use a data display mode. In fact if the wild card has been set on the bit level then you must go to binary display mode to see its actual position. The commands to change the display mode in search and replace are the same as for the window display mode. The search and replace strings can be scrolled back an forth and the cursor moved using the same commands as for the window. While performing a replace command you can switch between the search string and replace string by using the 'move-back-page' or 'move- forw-page' commands. Esc S search-forw F3 Prompts for a search string then searches from the current cursor position for the first match. The cursor is positioned at the first unit of the match. Esc R search-back This command is the same as the previous one except that it searches backward. Esc T search-again F4 This command repeats the previous search command, forward or backward. The cursor is first moved one byte in the appropriate direction before the search is repeated. Esc % replace F5 Prompt for search string. After entering the search string hit return and you will be prompted for the replace string. After entering the replace string hit return. BEAV will then search for the first match with the search string. If 20 BEAV User Manual a match is found you will be prompted with '(R)eplace, (S)kip, (A)ll, (O)ne, (Q)uit' If you type a 'R' the replace will be done at this location and the search will continue. If you type a 'S' the replace will not be done and search will continue. If you type an 'A' the replace will be done and will be done at all future matches without pausing for conformation. If you type an 'O' the replace will be done at this location and the search will stop. If you type a 'Q' then the search will be terminated. Ctl-R recall-srch-string If you enter search or replace previously used strings can be recalled with this command. 3.8 Exiting BEAV While using BEAV individual buffers may be saved to disk during the editing session. When quitting BEAV you must save all buffers or delete all buffers. There are two commands that do this. Ctl-C quit-no-save Sh-F10 If there are any unsaved buffers you will be prompted for conformation before proceeding. All buffers will be deleted then you will return to DOS. Ctl-X Ctl-E quit-save-all Sh-F9 All buffers are saved before exiting to DOS. 3.9 Printing The data that is being displayed in BEAV can be printed or sent to a file in the same format as displayed. If the current window is displaying octal words and a print command is given the format of the print will be in the format of the window; that is, octal words. Esc P print-mark-to-cursor Ctl-Print To use this command you must set the mark and the cursor to define the region that you want printed. If the mark is not set it as assumed to be at the first unit. After you enter the command you will be prompted with 'Print to:'. You can enter a file name or a device name to send the print image to. If you enter 'PRN' most systems will print a hard copy. This is useful for getting a print out of the current key bindings. To do this give the 'help' command 'F1'. Go to the 21 BEAV User Manual bottom of the help window using the 'move-to-end' command 'End', the mark will be assumed to be at the beginning of the buffer. Issue the 'print-mark-to-cursor' command. Enter 'PRN' at the prompt. This should print the complete help buffer and will reflect any changes that you have made to the key bindings. 3.10 Keyboard Macros BEAV has the capability of recording key strokes as they are entered and playing them back later. This is useful for repeating multi-keystroke operations. Ctl-X ( macro-start Start recording key strokes. There is no effect on the operation of the key strokes. Any previous recorded key strokes are cleared. Ctl-X ) macro-end Stop recording key strokes. The key strokes are available for play back. Ctl-X E macro-execute Play back the recorded key strokes. The key strokes that were recorded are played back as if they were typed at the keyboard. 3.11 Key Binding BEAV provides a user configurable interface. The interface is controlled by a set of key bindings. This relates the command that will be executed when a particular key stroke is entered. There are a set of default key bindings as described in this manual. These can be changed to reflect your preferences. When a change is made it is reflected in the help screen. Ctl-X ? binding-for-key Sh-F1 This command will tell you what function a certain key sequence is bound to. When this command is given you will be prompted for a key stroke or key stroke sequence. BEAV will report back with the function name. Esc K bind-to-key First you will prompted for a function name. Enter the name of the function that you wish to create a new binding for. Function names are the names listed in this manual that are of the form of 'move-forw-unit' or 'display-hex'. After you enter 22 BEAV User Manual the name hit return. You will be prompted for a key. This can be in the form of a single standard key such as 'Z'. Standard key sequences can be entered such as 'Ctl-X Z' or 'Esc Z'. Special keys can be entered such as 'F1' (function key 1) or 'Page Down'. It is probably a good idea to not use keys that are needed for editing. If you bound 'Z' to a function then you would not be able to enter it as a keystroke when using ASCII display mode. You could still enter it using the 'insert-literally' command or doing it in one of the data display modes but this would be more cumbersome. Ctl-X L bindings-load You are prompted for a file name that contains the key binding that you wish to set. This file is read in and the appropriate bindings are set. The text in the binding file should be of the form; For example; Ctl-X Ctl-P move-back-char 0550 F1 move-forw-char 04bb Ctl-A move-forw-unit 0141 Esc Ctl-T move-back-unit 0354 The easiest way of producing a valid key binding file is to set the desired bindings in BEAV. Next issue the 'help' command (ESC ?), then write the buffer out with the file-write command (Ctl-X Ctl-W). The file created will be a valid format for loading and can be edited as desired. It is the only reliable way to get the number. 3.12 Special Functions These are the commands that do not logically fit under one of the previous headings Gtl-G abort-cmd F10 This command aborts the current command. It can even abort a partially entered command. Thus, if you have typed an 'Esc' as that start of a command you can type Ctl-G to return to the normal command entry mode. Esc A auto-save BEAV can be set to automatically save the current buffer after a specified number of buffer editing commands are given. This command first prompts for the number of operations before the save is made. If a zero is entered at the prompt, this 23 BEAV User Manual feature is disabled. The default condition of this command is disabled. Esc C compare This is a powerful feature of BEAV. The contents of two windows are compared byte for byte from the current cursor position in each window. There must be exactly two windows to use this command. These windows can be displaying the same or different buffers. When a difference is found the cursor in each window is moved to that position and both windows are moved accordingly. The display mode does not affect the operation of this command except in restricting the cursor position to whole units. Esc X extended-command If any command looses its binding, this command allows the unbound command to be used. A command can loose its binding because the binding was assigned to another command. When this command is given you will be prompted for a command name. Enter the command name that you wish to execute, it will be executed as if you had typed its key binding. Esc Ctl-F n-way-combine The contents of other windows can be copied sequentially into the current window. This is useful in combining odd-even proms into an executable image file. To use this command create an empty window with a buffer file name of an empty or nonexistent file. Read into additional windows the files that you want to combine. While in the empty target window, issue the n-way-combine command. The data in the other windows will be read into the current window. The next window lower on the screen will be read first, then the one below that, etc. For example; if you had two files, promlow.bin and promhi.bin that you wanted to combine into a file called prom.bin. First issue the file-visit command (Ctl-X Ctl-V), enter prom.bin at the prompt. This file should be empty of non- existent. Next read promlow.bin into a new window with the file-visit-split command (Esc U), enter promlow.bin at the prompt. Open another window for promhi.bin with the same command. Go to the window containing prom.bin (empty). Issue the n-way-combine command. BEAV will copy the first byte from the window immediately below the prom.bin window and deposit it in the destination window buffer as well as advance the dot position in both windows. It will advance to the next lower window and copy a byte from there into the destination window and advance the dot in both windows. This process will continue until one of the source buffers is exhausted, or the user terminates the command. 24 BEAV User Manual The user must take care that the source buffers are in the correct order. They are read starting at the window immediately below the current window. If the target window is at the bottom of the screen then it wraps to the top. In this way any order can be used and changed at will. Esc Ctl-S n-way-split This command is the mirror image of the n-way-combine. The data in the current window is distributed among the rest of the window buffers displayed. The current window buffer must be the only window buffer that contains data. If there are two other empty window buffers then the data will be divided two ways. If there are five then the data will be divided five ways Ctl-L refresh-screen The screen is reprinted from BEAV's internal buffer. This is useful if the display is messed up due to transmission errors. On a PC this is unlikely to happen. Esc Ctl-V show-version The version and date of BEAV is displayed in the command line. Ctl-X C spawn-shell A new MSDOS command shell is created. You can return to BEAV by typing 'exit'. Ctl-U repeat count This command prompts for a number to be entered. This causes the next command given to be repeated by that number of times. This command cannot have it's binding changed and cannot be issued using the 'extended-command' function. 25 BEAV User Manual 4. Alphabetical list of commands by name Command Key Binding Manual Section ------- ----------- -------------- abort-cmd Ctl-G 3.12 abort-cmd Ctl-X Ctl-G 3.12 abort-cmd Esc Ctl-G 3.12 abort-cmd F10 3.12 auto-save Esc A 3.12 bind-to-key Esc K 3.11 binding-for-key Ctl-X ? 3.11 binding-for-key Sh-F1 3.11 bindings-load Ctl-X L 3.11 buffer-set-file-name Ctl-F7 3.3 buffer-set-file-name Ctl-X Ctl-F 3.3 buffer-set-file-name Sh-F7 3.3 buffer-set-name Esc Ctl-N 3.3 buffer-size-lock Ctl-X Ctl-L 3.3 buffers-display Ctl-F1 3.3 buffers-display Ctl-X Ctl-B 3.3 change-buffer Ctl-F2 3.3 change-buffer Ctl-X B 3.3 change-to-next-buffer Ctl-F4 3.3 change-to-next-buffer Esc + 3.3 change-to-prev-buffer Ctl-F5 3.3 change-to-prev-buffer Esc - 3.3 change-window-back Ctl-PageUp 3.5 change-window-back Ctl-X P 3.5 change-window-forw Ctl-PageDown 3.5 change-window-forw Ctl-X N 3.5 compare Esc C 3.12 copy-mark-to-cursor Esc W 3.6 copy-mark-to-cursor F7 3.6 delete-back-char Backspace 3.6 delete-back-char Rubout 3.6 delete-back-unit Esc Ctl-K 3.6 delete-back-unit Esc Rubout 3.6 delete-forw-char Ctl-D 3.6 delete-forw-char Delete 3.6 delete-forw-unit Esc D 3.6 delete-mark-to-cursor Ctl-W 3.6 delete-mark-to-cursor F8 3.6 display-ascii Esc Ctl-A 3.5 display-binary Esc Ctl-B 3.5 display-byte-shift Ctl-A 3.5 display-bytes Esc 1 3.5 display-decimal Esc Ctl-D 3.5 display-double-words Esc 4 3.5 display-ebcdic Esc Ctl-E 3.5 display-hex Esc Backspace 3.5 display-octal Esc Ctl-O 3.5 display-swap-order Ctl-E 3.5 display-words Esc 2 3.5 26 BEAV User Manual extended-command Esc X 3.12 file-read Ctl-X Ctl-R 3.4 file-read Sh-F2 3.4 file-save Ctl-X Ctl-S 3.4 file-save Sh-F3 3.4 file-view Ctl-X V 3.4 file-visit Ctl-X Ctl-V 3.4 file-visit Sh-F4 3.4 file-visit-split Esc U 3.4 file-write Ctl-X Ctl-W 3.4 file-write Sh-F5 3.4 help Esc ? 3.1 help F1 3.1 insert-file Ctl-F8 3.4 insert-file Ctl-X Tab 3.4 insert-file Sh-F8 3.4 insert-literally Ctl-Q 3.6 insert-literally Esc Q 3.6 insert-toggle Ctl-X Ctl-A 3.6 insert-toggle Insert 3.6 insert-unit Ctl-X I 3.6 kill-buffer Ctl-F3 3.3 kill-buffer Ctl-X K 3.3 macro-end Ctl-X ) 3.10 macro-execute Ctl-X E 3.10 macro-start Ctl-X ( 3.10 mark-set Esc . 3.2 mark-set F2 3.2 move-back-char Ctl-B 3.2 move-back-char West 3.2 move-back-line Ctl-P 3.2 move-back-line North 3.2 move-back-page Esc V 3.2 move-back-page PageDown 3.2 move-back-unit Ctl-West 3.2 move-back-unit Esc B 3.2 move-forw-char Ctl-F 3.2 move-forw-char East 3.2 move-forw-line Ctl-N 3.2 move-forw-line South 3.2 move-forw-page Ctl-V 3.2 move-forw-page PageUp 3.2 move-forw-unit Ctl-East 3.2 move-forw-unit Esc F 3.2 move-forw-unit Sh-Tab 3.2 move-to-beginning Esc < 3.2 move-to-beginning Home 3.2 move-to-buffer-split Esc G 3.2 move-to-byte Ctl-X G 3.2 move-to-byte F9 3.2 move-to-end End 3.2 move-to-end Esc > 3.2 move-window-down Ctl-X Ctl-N 3.2 move-window-down Ctl-Z 3.2 27 BEAV User Manual move-window-up Ctl-X Ctl-P 3.2 move-window-up Esc Z 3.2 n-way-combine Esc Ctl-F 3.12 n-way-split Esc Ctl-S 3.12 print-mark-to-cursor Ctl-Print 3.9 print-mark-to-cursor Esc P 3.9 quit-no-save Ctl-C 3.8 quit-no-save Ctl-F10 3.8 quit-no-save Ctl-X Ctl-C 3.8 quit-no-save Sh-F10 3.8 quit-save-all Ctl-F9 3.8 quit-save-all Ctl-X Ctl-E 3.8 quit-save-all Sh-F9 3.8 recall-srch-string Ctl-R 3.7 refresh-screen Ctl-L 3.12 replace Esc % 3.7 replace F5 3.7 save-all-buffers Ctl-X Return 3.4 save-all-buffers Sh-F6 3.4 save-mark-to-cursor Esc O 3.3 search-again Esc T 3.7 search-again F4 3.7 search-back Esc R 3.7 search-forw Esc S 3.7 search-forw F3 3.7 show-position Ctl-X = 3.2 show-save-buf Esc Ctl-W 3.3 show-version Esc Ctl-V 3.12 spawn-shell Ctl-X C 3.12 swap-cursor-and-mark Ctl-X Ctl-X 3.2 unit-twiddle Ctl-T 3.6 window-delete Ctl-X 0 3.5 window-enlarge Ctl-X Z 3.5 window-link Esc L 3.2 window-reposition Esc ! 3.5 window-shrink Ctl-X Ctl-Z 3.5 window-single Ctl-X 1 3.5 window-split Ctl-X 2 3.5 yank Ctl-Y 3.6 yank F6 3.6 yank-buffer Ctl-F6 3.3 yank-buffer Esc Y 3.3 28 BEAV User Manual 5. Alphabetical list of commands by key binding Command Key Binding Manual Section ------- ----------- -------------- delete-back-char Backspace 3.6 display-byte-shift Ctl-A 3.5 move-back-char Ctl-B 3.2 quit-no-save Ctl-C 3.8 delete-forw-char Ctl-D 3.6 display-swap-order Ctl-E 3.5 move-forw-unit Ctl-East 3.2 move-forw-char Ctl-F 3.2 buffers-display Ctl-F1 3.3 quit-no-save Ctl-F10 3.8 change-buffer Ctl-F2 3.3 kill-buffer Ctl-F3 3.3 change-to-next-buffer Ctl-F4 3.3 change-to-prev-buffer Ctl-F5 3.3 yank-buffer Ctl-F6 3.3 buffer-set-file-name Ctl-F7 3.3 insert-file Ctl-F8 3.4 quit-save-all Ctl-F9 3.8 abort-cmd Ctl-G 3.12 refresh-screen Ctl-L 3.12 move-forw-line Ctl-N 3.2 move-back-line Ctl-P 3.2 change-window-forw Ctl-PageDown 3.5 change-window-back Ctl-PageUp 3.5 print-mark-to-cursor Ctl-Print 3.9 insert-literally Ctl-Q 3.6 recall-srch-string Ctl-R 3.7 unit-twiddle Ctl-T 3.6 move-forw-page Ctl-V 3.2 delete-mark-to-cursor Ctl-W 3.6 move-back-unit Ctl-West 3.2 macro-start Ctl-X ( 3.10 macro-end Ctl-X ) 3.10 window-delete Ctl-X 0 3.5 window-single Ctl-X 1 3.5 window-split Ctl-X 2 3.5 show-position Ctl-X = 3.2 binding-for-key Ctl-X ? 3.11 change-buffer Ctl-X B 3.3 spawn-shell Ctl-X C 3.12 insert-toggle Ctl-X Ctl-A 3.6 buffers-display Ctl-X Ctl-B 3.3 quit-no-save Ctl-X Ctl-C 3.8 quit-save-all Ctl-X Ctl-E 3.8 buffer-set-file-name Ctl-X Ctl-F 3.3 abort-cmd Ctl-X Ctl-G 3.12 buffer-size-lock Ctl-X Ctl-L 3.3 move-window-down Ctl-X Ctl-N 3.2 move-window-up Ctl-X Ctl-P 3.2 file-read Ctl-X Ctl-R 3.4 29 BEAV User Manual file-save Ctl-X Ctl-S 3.4 file-visit Ctl-X Ctl-V 3.4 file-write Ctl-X Ctl-W 3.4 swap-cursor-and-mark Ctl-X Ctl_X 3.2 window-shrink Ctl-X Ctl-Z 3.5 macro-execute Ctl-X E 3.10 move-to-byte Ctl-X G 3.2 insert-unit Ctl-X I 3.6 kill-buffer Ctl-X K 3.3 bindings-load Ctl-X L 3.11 change-window-forw Ctl-X N 3.5 change-window-back Ctl-X P 3.5 save-all-buffers Ctl-X Return 3.4 insert-file Ctl-X Tab 3.4 file-view Ctl-X V 3.4 window-enlarge Ctl-X Z 3.5 yank Ctl-Y 3.6 move-window-down Ctl-Z 3.2 delete-forw-char Delete 3.6 move-forw-char East 3.2 move-to-end End 3.2 window-reposition Esc ! 3.5 replace Esc % 3.7 change-to-next-buffer Esc + 3.3 change-to-prev-buffer Esc - 3.3 mark-set Esc . 3.2 display-bytes Esc 1 3.5 display-words Esc 2 3.5 display-double-words Esc 4 3.5 move-to-beginning Esc < 3.2 move-to-end Esc > 3.2 help Esc ? 3.1 auto-save Esc A 3.12 move-back-unit Esc B 3.2 display-hex Esc Backspace 3.5 Compare Esc C 3.12 display-ascii Esc Ctl-A 3.5 display-binary Esc Ctl-B 3.5 display-decimal Esc Ctl-D 3.5 display-ebcdic Esc Ctl-E 3.5 n-way-combine Esc Ctl-F 3.12 abort-cmd Esc Ctl-G 3.12 delete-back-unit Esc Ctl-K 3.6 buffer-set-name Esc Ctl-N 3.3 display-octal Esc Ctl-O 3.5 n-way-split Esc Ctl-S 3.12 show-version Esc Ctl-V 3.12 show-save-buf Esc Ctl-W 3.3 delete-forw-unit Esc D 3.6 move-forw-unit Esc F 3.2 move-to-buffer-split Esc G 3.2 bind-to-key Esc K 3.11 window-link Esc L 3.2 save-mark-to-cursor Esc O 3.3 30 BEAV User Manual print-mark-to-cursor Esc P 3.9 insert-literally Esc Q 3.6 search-back Esc R 3.7 delete-back-unit Esc Rubout 3.6 search-forw Esc S 3.7 search-again Esc T 3.7 file-visit-split Esc U 3.4 move-back-page Esc V 3.2 copy-mark-to-cursor Esc W 3.6 extended-command Esc X 3.12 yank-buffer Esc Y 3.3 move-window-up Esc Z 3.2 help F1 3.1 abort-cmd F10 3.12 mark-set F2 3.2 search-forw F3 3.7 search-again F4 3.7 replace F5 3.7 yank F6 3.6 copy-mark-to-cursor F7 3.6 delete-mark-to-cursor F8 3.6 move-to-byte F9 3.2 move-to-beginning Home 3.2 insert-toggle Insert 3.6 move-back-line North 3.2 move-back-page PageDown 3.2 move-forw-page PageUp 3.2 delete-back-char Rubout 3.6 binding-for-key Sh-F1 3.11 quit-no-save Sh-F10 3.8 file-read Sh-F2 3.4 file-save Sh-F3 3.4 file-visit Sh-F4 3.4 file-write Sh-F5 3.4 save-all-buffers Sh-F6 3.4 buffer-set-file-name Sh-F7 3.3 insert-file Sh-F8 3.4 quit-save-all Sh-F9 3.8 move-forw-unit Sh-Tab 3.2 move-forw-line South 3.2 move-back-char West 3.2 31 BEAV User Manual 6. Release notes Version 1.20 (3/10/91) of BEAV contains the following fixes and enhancements; * Under unix files are created with read/write permissions. * Fixed the bug in the terminal I/O routine that caused BEAV to spin rather than give up control when waiting for a character. * Added the ANSI #define that was missing for MSDOS. * Changed the D16 #define to a unsigned short. * Called ttclose on error exit. * Check and limit ncol and nrow to the actual screen array size. * Add the ability to load key bindings from a file automatically under MSDOS and unix. * Add delete current window command. * Support VT100 type function keys. Version 1.30 (7/1/91) of BEAV contains the following fixes and enhancements; * Under MSDOS and 16 bit UNIX systems the kill or copy region could not be over 64K bytes. This limit has been eliminated. * The save buffer can be made visible with the Esc Ctl- W command. The save buffer is not editable. * All memory allocation errors now pause and ask for conformation before continuing. In previous releases only an error message was printed. Since an allocation error generally means data loss, I have forced the user to respond. Memory allocation errors are not otherwise fatal to BEAV, they are probably fatal to the user's data. The decision is left to the user with the appropriate warning. * Two commands have been added to aid in working with PROM files; n-way-split (Esc Ctl-S) and n-way-combine (Esc Ctl-F). * The speed of the delete-mark-to-cursor (Ctl-W) command has been greatly improved. 32 BEAV User Manual * All commands that can potentially take a lot of time can be stopped by pressing Ctl-G. Version 1.31 (11/2/91) of BEAV contains the following fixes; * A serious bug that causes a crash on systems that trapped the use of dereferenced pointers has been fixed. * Beav now names the backup file properly under unix. Previously; if a dot file (.) was edited, the backup file was given a garbage name. Now, a backup file simply has ".bak" appended to the file name. * You can use the buffers-display (Ctl-X, Ctl-B) command to; go to, kill, or save a buffer. * A compile flag for DEC ULTRA was created and a makeable is included in this release (makefile.utx). * When a large region was deleted the offset value was displayed wrong, this is now fixed. * A bug in the parse_f_name that trashed a variable is now fixed. * Regions of never used code have been deleted. * Under UNIX the file permissions are maintained correctly when the file is saved. * A number of un-niceities that lint reported have been fixed. Version 1.32 (11/8/91) of BEAV contains the following enhancements; * BEAV will now compile and run on the Amiga computer. 33 BEAV User Manual 7. Source Availability The source and MSDOS executable BEAV has been posted on news to comp.sources.misc. The MSDOS executable has been posted to the comp.binaries.ibm.pc news group. This is archived at SIMTEL20 in PD1:BEAV131.ZIP. If anyone does not have access to usenet, I will mail a copy of the source on floppy for $20.00 copying charge. The floppies can be in MSDOS file format or UNIX tar format. I can also supply either QIC-24, QIC-120, QIC-150, or 9 track reel to reel tape. The price for the tape will include the cost of the media. 34