Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!bu.edu!wang!pvr From: pvr@wang.com (Peter Reilley) Newsgroups: alt.sources Subject: BEAV (08/10) ver 1.2 Binary File Editor, new release Keywords: editor binary data Message-ID: Date: 6 Jun 91 13:30:30 GMT Organization: Wang Labs, Lowell MA, USA Lines: 1250 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'beav1.doc' <<'END_OF_FILE' X X X X X X X X X BEAV X Binary Editor And Viewer X X Manual Copyright 1991 X X Version 1.20 X March 13, 1991 X X By X Peter Reilley X 19 Heritage Cir. X Hudson, N.H. 03051 X pvr@wang.com X X BEAV source and executable can be freely X distributed for non-commercial purposes. X X X X X X X X X X X X X X X BEAV User Manual X X X X X Table of Contents X X1. Introduction X X2. Overview X 2.1 Terms and Definitions X 2.2 The Screen Format X 2.3 Display Modes X 2.4 Commands X 2.5 Buffers X 2.6 Files X 2.7 Key Binding X 2.8 Configuration X X3. Command Description X 3.1 Help X 3.2 Cursor Movement X 3.3 Buffer Management X 3.4 File Management X 3.5 Window Management X 3.6 Inserting and deleting X 3.7 Search and Replace Commands X 3.8 Exiting BEAV X 3.9 Printing X 3.10 Keyboard Macros X 3.11 Key Binding X 3.12 Special Functions X X4. Alphabetical list of commands by name X X5. Alphabetical list of commands by default key binding X X6. Release notes X X X X X X X X X X X X X X X X X X X X X X - 2 - X X X X X X BEAV User Manual X X X X X1.0 Introduction X X BEAV is an editor that brings the features of a powerful Xfull screen editor to the editing of binary files. It is the Xonly editor that I know of that does that. X X When you need to edit a non-text file you generally have Xtwo choices; a text editor or a file zap type editor. Each Xchoice has significant disadvantages. X X Text editors expect the file to be formatted in a certain Xway. At a minimum they expect that all lines be terminated by Xa carriage return or line feed and be limited in length. XThere is no line length limit with BEAV. Most text editors Xget confused by bytes that are outside of the normal range (20 Xto 7E HEX). In BEAV no special characters such as carriage Xreturn or line feed affect the display aside from producing Xtheir numeric value. BEAV can edit any file no matter the Xformat. X X The other choice is to use a file zap type editor which Xcan edit a binary file without difficulty. These editors are Xoften very limited in their features and capabilities. Most Xfile zap programs can edit a file only in HEX or ASCII. They Xgenerally operate on a sector basis and because of this they Xcannot insert or delete data in the middle of the file. X X All these limits are eliminated in BEAV. You can edit a Xfile in HEX, ASCII, EBCDIC, OCTAL, DECIMAL, and BINARY. You Xcan search or search and replace in any of these modes. Data Xcan be displayed in BYTE, WORD, or DOUBLE WORD formats. While Xdisplaying WORDS or DOUBLE WORDS the data can be displayed in XINTEL's or MOTOROLA's byte swap format. Data of any length Xcan be inserted at any point in the file. The source of this Xdata can be the keyboard, another buffer, or a file. Any data Xthat is being displayed can be sent to a printer in the Xdisplayed format. Files that are bigger than memory can be Xhandled. X X Some users may recognize the similarity to the EMACS text Xeditor that was written by Richard Stallman at MIT. This is Xnot a coincidence. I attempted to keep as much of the user Xinterface and functionality as possible given the very Xdifferent tasks of EMACS and BEAV. X X X X X X X X X X X - 3 - X X X X X X BEAV User Manual X X X X2. Overview X 2.1 Terms and Definitions X X Throughout this manual certain terms will be used to Xdescribe the operation and structure of BEAV. X X The data that BEAV is editing is held in a buffer that is Xstructured as a byte stream. There are many commands that Xaffect the way that this byte stream is displayed on to the Xscreen. Whatever display mode is chosen the data in the Xbuffer is not effected, only the presentation. X X One such choice is to display the data as bytes, words, Xor double words. That is; 8 bit values, 16 bit values, or 32 Xbit values. Whatever choice is made the value of the selected Xsize will be displayed. These values are referred to as units Xin this manual. Thus the 'delete-forw-unit' command deletes Xthe unit under the cursor. If 32 bit units are being Xdisplayed then 4 bytes will be deleted. X X Many commands in BEAV start by pressing the 'ESCAPE' Xkey. When this manual refers to a command that requires that Xthe 'ESCAPE' key be pressed it will be abbreviated with X'Esc'. Another frequently used key stroke to start commands Xis 'CONTROL X'. This in done by pressing the 'CONTROL' key Xthen pressing the 'X' key at the same time. In this manual Xthis will be abbreviated by 'Ctl-X'. Many commands contain Xother control characters and these will be abbreviates Xsimilarly. Thus the 'insert-unit' command will be listed as X'Ctl-X I'. This will be entered by pressing the CONTROL key Xand while holding it hitting the 'X' key, release the CONTROL Xkey then hit the 'I' key. X X 2.2 The Screen Format X BEAV presents information to the user in a number of Xareas. The first is the window. There will be at least one Xwindow displayed on the screen at all times. The window Xconsists of two areas. The first is the display area. This Xis where the data that is in the buffer is displayed. Most of Xthe time the cursor will be in this area, as this is where most Xediting is done. Each line in the display area will start Xwith a number that indicates the offset into the buffer for Xthis line of data. At the bottom of the display area for each Xwindow is the status line. X X X X X X X X X X X X - 4 - X X X X X X BEAV User Manual X X X X The status line presents the user with a number of Xspecific pieces of information. The first is the program name Xwhich is "BEAV". Next there are some flags indicating the Xstatus of this particular buffer. X X The first flag indicates if the buffer has been damaged Xby a memory allocation failure. If there is a '?' then the Xbuffer is bad, otherwise there will be a space. Bad buffers Xare set to read only. X X The next flag indicates if the buffer has been changed Xand will need to be written out if the changes are to be Xsaved. This flag is a '*' if the buffer has been changed, Xotherwise there will be a space. X X The next flag indicates insert/overstrike mode; 'I' for Xinsert, 'O' for overstrike. This is only meaningful in ascii Xor ebcdic mode. X X Then the buffer name followed by the file name. A Xwindow can be in read only, read/write, or read/write with size Xlock. These will be displayed as [RO], [RW], or [WL] Xrespectively. If auto-update is enabled then [AU] will be Xdisplayed. X X Next the cursor position in bytes and the character Xposition within the unit. The next piece of information gives Xthe format that the data is being displayed in; HEX, OCTAL, XDECIMAL, BINARY, ASCII, EBCDIC. If a data mode is selected Xthen the size in bytes (1, 2, 4) is displayed. If the data is Xbeing displayed in Intel mode then the swapped flag is Xdisplayed, 'S'. Lastly the byte shift is displayed; 0 only Xfor 8 bit data, 0 or 1 for 16 bit data, or 0, 1, 2 or 3 for 32 Xbit data. X X There can be multiple windows on the screen at the same Xtime but each window will have a status line at the bottom. X X The very bottom line on the screen is the prompt line. XThis is where you enter data that BEAV requests. If you want Xto edit a new file you would type 'Ctl-X Ctl-V', BEAV would Xrespond with "Visit file:" on the prompt line. The cursor Xwould be positioned after the prompt. You would then enter Xthe name of the file that you wished to edit. X X X X X X X X X X X X - 5 - X X X X X X BEAV User Manual X X X X If you entered the command by mistake, you can abort the Xoperation by typing a 'Ctl-G'. 'Control G' is a universal Xabort command and can be used anywhere. If you want to Xperform a search you will enter the search string on this Xline. When you have entered the information that BEAV has Xrequested hit 'Return' and the cursor will return to it's Xoriginal position in the window display area. The prompt line Xis also where error messages are displayed. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X - 6 - X X X X X X BEAV User Manual X X X X 2.3 Display Modes X X The data in the buffer can be displayed in a number of Xformats. First there is the display mode. This can be Xeither; HEXADECIMAL, DECIMAL, OCTAL, BINARY, ASCII, or EBCDIC. X X If ASCII or EBCDIC mode is chosen then each byte in the Xbuffer will be converted to it's ASCII or EBCDIC character and Xdisplayed. Bytes that are outside of the standard character Xset will be displayed as a dot. Each line will be 64 Xcharacters long. The byte value for "carriage return" and X"line feed" will be displayed as a dot as any other Xnon-printable characters. X X Within HEXADECIMAL, DECIMAL, OCTAL, or BINARY format the Xdata can be displayed in 8, 16 or 32 bit values. If 16 or 32 Xbit values are displayed the user can choose to view these Xvalues in either the Intel format or the Motorola format. If XIntel format is chosen then the first byte in each unit is the Xleast significant byte when the value is calculated. Thus in Xhex 32 bit mode a byte string of "32 7A 9F 10" would be Xdisplayed as "109F7A32". If Motorola format is chosen this Xvalue would be displayed as "327A9F10". X X There is another display format choice that affects the X16 or 32 bit formats. This is called shift. The shift can Xbe 0 or 1 for 16 bit modes, or 0, 1, 2, 3 for 32 bit modes. XShift moves the zero point reference for the buffer up by the Xselected value. The default is zero shift. If a buffer is Xdisplaying the following 32 bit hex data; X X "12345678 2F4792AF 673DFEA1 88551199" X Xwith the shift at 0. Changing shift to 1 will produce; X X "3456782F 4792AF67 3DFEA188 55119955" X XThe data has been slid down toward the beginning of the buffer Xby one byte. This has not changed the data in the buffer at Xall, it has only affected the way that the data is presented on Xthe screen. This is useful when looking at WORD or DOUBLE XWORD data that is not aligned on two or four byte boundaries. X X When BEAV is first started or a new window is opened the Xdefault format is HEXADECIMAL BYTES. X X X X X X X X X X X - 7 - X X X X X X BEAV User Manual X X X X 2.4 Commands X X Commands are the means that the user controls the Xoperation of BEAV. A command can be given by using one of two Xmethods. The first is to use the key binding. X X A command can have one or more associated key bindings. XIt can also have no key binding. There are a set of default Xkey bindings that BEAV comes configured with. The current set Xof key bindings can be seen by using the 'help' command. The X'help' command is 'Esc ?' or Function Key 1 'F1' on the IBM XPC. The help buffer can be scrolled by using the up and down Xarrow keys. A printed copy may be obtained by going to the Xbottom of the help buffer using the 'move-to-end' command ('Esc X>' or the 'End' key). Then issue the 'print-mark-to-cursor' Xcommand ('Esc P' or 'Ctl-Print') and enter 'PRN' or a file name Xwhen prompted with "Print to:". This will output the entire Xhelp buffer to a printer connected to the parallel interface or Xthe specified file. X X The second method of issuing a command is to use the X'extended-command' command (Esc X). You are prompted for a Xcommand name that you want to execute. This method is useful Xfor executing commands that have no key binding. X X X 2.5 Buffers X X Buffers are the in memory storage for all data editing Xand viewing. Each buffer has a name that appears in the mode Xline. Buffers generally have a file name that is associated Xwith them. The file name also appears in the mode line. The Xbuffer name and the file name are independent but the buffer Xname defaults to the file name. X X The buffer name is used to refer to a specific buffer. XThe 'change-buffer' ('Ctl-X B') command will prompt you for a Xbuffer name. After you enter a buffer name that buffer will Xbe displayed in the current window. If there is no such Xbuffer, one will be created and displayed (it will be empty). X X When BEAV is run with a file name as a command line Xparameter, the file is read into a new buffer. The buffer name Xwill be made the same as the file name. The file name is only Xused when the buffer is saved. If the file name is changed Xusing the 'buffer-set-file-name' ('Ctl-X Ctl-F') command then Xwhen the buffer is saved it will be saved to the new file. X X X X X X X X X - 8 - X X X X X X BEAV User Manual X X X X Buffers are dynamically allocated. They grow or shrink Xas the size of the data they contain changes. The buffer size Xcan be frozen using the 'buffer-size-lock' ('Ctl-X Ctl-L') Xcommand. This prevents inserting or deleting data from the Xbuffer but data can be modified. X X Buffers continue to exist even if they are not being Xdisplayed. Buffers are saved in a linked list that can be Xstepped through using the 'change-to-next-buffer' ('Esc +') or X'change-to-prev-buffer' ('Esc -') commands. If the X'change-to-next-buffer' command is given then the next buffer Xin the list is displayed in the current window. X X X 2.6 Files X X Files are the means of storing data on disk. Files or Xsegments of files can be loaded into BEAV for editing or Xviewing. The file on the disk has not been changed until BEAV Xdoes a save to that file. When a save to a file is performed Xthe original file contents in saved in a ".bak" file. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X - 9 - X X X X X X BEAV User Manual X X X X X 2.7 Key Binding X X All commands in BEAV have a command name and a default Xkey binding. The bindings may be changed to suit personal Xpreference by using the 'bind-to-key' ('Esc K') command. The Xcurrent binding of a key sequence can be displayed by using the X'binding-for-key' ('Ctl-X ?') command. X X Key bindings can be loaded automatically from a file Xnamed "beavrc". This file must be in a directory specified by Xthe PATH environment variable. When BEAV is started this file Xis read and the bindings are loaded. This file is a simple Xtext file and can be edited to make changes. X X The beavrc file contains three columns. The first is Xthe function name to be bound. The second is the key sequence Xthat is bound to that function. The third is a number that Xdefines the key code. Then the beavrc file is read in only Xthe first and third columns are used. X X The simplest way to create a valid beavrc file is to Xfirst bind the key codes to the desired functions using the Xbind-to-key command. Next display the current bindings in a Xwindow using the help command (Esc ?). Now save that buffer Xto a file with the file-write command (Ctl-X Ctl-W). You will Xbe prompted for a file name. This is a valid beavrc file. XYou may want to edit the beavrc file to remove the commented Xlines, those beginning with #, to make it load faster. X X On unix systems there can be multiple beavrc files, one Xfor each terminal type. This is accomplished by appending the XTERM variable to beavrc. Thus if you use both a vt100 and a Xwyse60 terminal, you could have a beavrc.wy60 and a Xbeavrc.vt100 bindings file. When your TERM variable is XTERM=wy60 then the beavrc.wy60 bindings file will be used. If Xthere is no beavrc.wy60 file then the beavrc file will be used. X X X 2.8 Configuration X X When the MSDOS version of BEAV run it detects whether the Xsystem is an IBM PC or a clone. If a PC is detected then a Xset of key bindings that use the 10 function keys and the Xrelevant keypad keys are loaded. If the system is not Xrecognized then only the standard bindings are loaded. X X X X X X X X X X - 10 - X X X X X X BEAV User Manual X X X X If a PC is detected the screen is managed by making BIOS Xlevel calls that enhance performance. Otherwise, the screen Xis controlled by making ANSI compatible calls to the operating Xsystem. This is much slower but is not sensitive to hardware Xconfiguration. This requires that non-standard MSDOS systems Xsupport ANSI display controls. The following ANSI escape Xsequences are used; X X Position cursor ESC [ ; H X X Erase to end of line ESC [ 0 K X X Erase to end of page ESC [ 0 J X X Normal video ESC [ 0 m X X Reverse video ESC [ 7 m X X On unix systems the termcap library is used. This Xrequires that the TERM environment variable be set correctly. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X - 11 - X X X X X X BEAV User Manual X X X X X3. Command Description X X This section describes all BEAV commands as to their Xfunction and any side effects that they may have. The first Xline of each description of a command will begin with the Xdefault key binding then the command name and follows with the Xkey binding for a PC for the MSDOS version. X X 3.1 Help X X This command returns information that will aid in the use Xof BEAV. X X Esc ? help F1 X X A new window is opened by splitting the current window Xthen all current key bindings are displayed. This buffer is Xlarger than can be shown at one time and must be scrolled up Xand down to see all entries. All commands that do not alter Xdata can be used to move around and search the help buffer. XTo leave the help buffer use the 'window-delete' command X('Ctl-X 0'). X X Lines that begin with the comment character (#) are Xcommands that have the default bindings. Lines without the Xcomment character have been bound by the user or by processing Xa beavrc file. The comment character helps in creating a Xbeavrc file by identifying only those bindings that have Xchanged. X X X X X X X X X X X X X X X X X X X X X X X X X X - 12 - X X X X X X BEAV User Manual X X X X 3.2 Cursor Movement X X There are a number of commands that move the cursor Xaround the current window. If the cursor bumps the top or the Xbottom of the window the position of the window will be Xadjusted so as to keep the cursor within the bounds. When the Xwindow is moved in response to cursor movements it is moved by Xabout one third of the window size. This improves performance Xby reducing the number of window moves. X X Ctl-P move-back-line North (up arrow) X Ctl-N move-forw-line South (down arrow) X X These commands move the cursor up one line or down one Xline. If the cursor is on the top line in the buffer and a X'move-back-line' command is given the cursor will jump to the Xbeginning of the first unit in the buffer. If the cursor is Xon the last line of the buffer and a 'move-forw-line' is given Xthe cursor will move to the last unit in the buffer. X X Ctl-F move-forw-char East (right arrow) X Ctl-B Move-back-char West (left arrow) X X These commands move the cursor forward or backward in the Xcurrent line. If the cursor is at the first character in the Xfirst unit of the line and the 'move-back-char' command is Xgiven then the cursor will wrap to the last character of the Xprevious line. If the cursor is at the last character of the Xlast unit in the current line then it will wrap to the first Xcharacter of the next line. X X Esc F move-forw-unit Ctl-East X Esc B move-back-unit Ctl-West X X These commands are similar to the above set but they move Xthe cursor by units rather than characters. The command X'move-forw-unit' will position the cursor to the first Xcharacter of the next unit. The command 'move-back-unit' will Xmove the cursor to the first character of the previous unit. X X Ctl-V move-forw-page PageUp X Esc V move-back-page PageDown X X These commands move the move the data in the window by Xthe number of lines in the window less one. The cursor will Xstay in the same position relative to the window as the data is Xmoved. X X X X X X X X X - 13 - X X X X X X BEAV User Manual X X X X Esc < move-to-beginning Home X Esc > move-to-end End X X Move the cursor to the beginning or the end of the buffer. X X Ctl-X G move-to-byte F9 X X Prompt for a byte offset, then go to that position in the Xcurrent buffer. X X Ctl-X Ctl-N move-window-down Ctl-Z X Ctl-X Ctl-P move-window-up Esc Z X X Move the buffer in the window up or down by one line. XThis does not effect the cursor until it hits the top or bottom Xof the window. X X Esc . mark-set F2 X X Set the mark position to the current cursor position. XThe mark position is remembered even for nonactive windows and Xbuffers. X X Ctl-X Ctl-X swap-cursor-and-mark X X The position of the cursor and the position of the mark Xare swapped. X X Esc L window-link X X This command causes all windows that are displaying the Xcontents of the current buffer to have the same cursor Xposition. Thus if one window is scrolled then all other Xwindows that display that buffer are scrolled so as to keep the Xcursor in the window. X X Ctl-X = show-position X X The current position of the cursor and the mark are Xdisplayed. The buffer size, file size and file name are also Xshown. X X X X X X X X X X X X X X X - 14 - X X X X X X BEAV User Manual X X X X 3.3 Buffer Management X X Buffers store all data that is being edited. The only Xlimit to the number of buffers is the size of available Xmemory. If a file is loaded into a buffer and there is Xinsufficient memory to hold the entire file, then it will be Xloaded until memory is exhausted. The buffer will then be set Xto read only mode. X X Ctl-X Ctl-B buffers-display Ctl-F1 X X A new window is opened and a list of all buffers in BEAV Xis displayed. The list contains the buffer name, the file Xname (if it exists), the buffer size, and a state flag. If Xthe list is too large for the window, you can go to that window Xand scroll the list. X X Ctl-X B change-buffer Ctl-F2 X X This command prompts you for a buffer name. If you Xenter the name of an existing buffer, that buffer will be Xdisplayed in the current window. If the name does not match Xan existing buffer, a new buffer will be created and Xdisplayed. This buffer will be empty and will have no file Xname. X X Esc + change-to-next-buffer Ctl-F4 X Esc - change-to-prev-buffer Ctl-F5 X X The next or the previous buffer in the buffer list is Xdisplayed in the current window. This does not effect buffers Xthat are displayed in other windows. X X Esc G move-to-buffer-split X X Prompt for a buffer name. Then split the current window Xand display that buffer, creating it if necessary. X X Esc Ctl-N buffer-set-name Esc Ctl-N X X The current buffer name is changed to the name that you Xenter. This does not effect the file name. X X Ctl-X Ctl-F buffer-set-file-name Ctl-F7 X X The file name of the current buffer is changed to the Xname that you enter. This does not affect the buffer name. X X X X X X X X X - 15 - X X X X X X BEAV User Manual X X X X Ctl-X K kill-buffer Ctl-F3 X X This command prompts you for a buffer name. This buffer Xis then deleted. If the buffer is currently being displayed Xyou are prompted for conformation. If the buffer has been Xchanged you are again prompted for conformation. X X Ctl-X Ctl-L buffer-size-lock X X The buffer size is prevented from being changed. Data Xcan be edited but only by changing the existing data. If a Xbuffer is copied into a size-locked buffer the operation well Xbe successful but will overwrite existing data. This command Xtoggles between locked and unlocked. X X Esc Y yank-buffer Ctl-F6 X X Data from one buffer is inserted into the current buffer Xat the cursor position. You are prompted for the name of the Xbuffer to copy from. X X Esc O save-mark-to-cursor X X Prompt for a buffer name. Create a new buffer with that Xname and write the data from the mark to the cursor into that Xbuffer. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X - 16 - X X X X X X BEAV User Manual X X X X 3.4 File Management X X These commands control BEAV's access to files. Files Xare loaded into buffers or are written from buffers. Commands Xthat prompt for a file name also accept range parameters. XRange parameters are always given in the numeric base of the Xcurrent window. Thus if you are displaying data in decimal Xformat then the range parameters must be entered in decimal. X X The size of a file read or write can be limited by Xspecifying a range. The range parameter specifies the offset Xinto the file, not the buffer. Range parameters can be Xspecified in these forms; X X X X X X + X X The first form causes the read or write to begin from the X value until the end of the buffer on write or Xthe end of the file on read. X X The second form reads or writes from Xuntil non-inclusive. X X The third form reads or writes from for X bytes. X X Thus, if the command 'file-read' is given and you enter Xat the prompt; main.obj 1000 +100. If the current display Xmode is hex, the file "main.obj" will be read from hex byte Xaddress 1000 to 10FF into the buffer. X X Ctl-X Ctl-R file-read Sh-F2 X X Prompt for a file name and read that file into the Xcurrent buffer. This overwrites the current contents of the Xbuffer. The buffer name is not changed but the buffer file Xname is set to the new file name. X X Ctl-X Ctl-S file-save Sh-F3 X X Write the current buffer out to the file if it has been Xchanged. If the buffer has not been changed then do nothing. X X X X X X X X X X - 17 - X X X X X X BEAV User Manual X X X X Ctl-X V file-view X X Prompt for a file name and read file into a new buffer Xand display in current window. Set to read-only mode. X X Ctl-X Ctl-V file-visit Sh-F4 X X Prompt for a file name. If the buffer already exists Xthen display it in the current window. Otherwise, read file Xinto a new buffer and display in current window. If there is Xno such file then create it. X X Esc U file-visit-split X X Same as above but split current window and display new Xbuffer. This displays the new buffer as well as the old Xbuffer. X X Ctl-X Ctl-W file-write Sh-F5 X X Prompt for a file name, then write the current buffer to Xthat file. X X Ctl-X Tab insert-file Sh-F8 X X Prompt for a file name and insert that file into the Xcurrent buffer at the cursor position. X X Ctl-X Return save-all-buffers Sh-F6 X X Write all buffers that have been changed to their Xrespective files. X X X X X X X X X X X X X X X X X X X X X X X X - 18 - X X X X X X BEAV User Manual X X X X 3.5 Window Management X X BEAV presents information to the user in one or more Xwindows. Each window is a view into a buffer where the data Xis actually stored. The window controls how this data is Xformatted for display to the user. Data can be displayed as XHEX bytes, OCTAL bytes, ASCII characters, plus many others. XThe display format is associated with the window. Thus if a Xnew buffer is displayed in the current window that new data Xwill be displayed in the current windows format. X X The only limit to the number of windows is the screen Xsize. A window can be no smaller than two lines. This along Xwith the mode line associated with each window limits to eight Xthe number of windows on an IBM PC 25 line screen. X X Any window can view any buffer including having many Xwindows on the same buffer. For example, two windows can Xdisplay the same buffer but present the data in two different Xmodes. One window could display HEX bytes and the other could Xdisplay ASCII characters. X X Ctl-P change-window-back Ctl-PageUp X Ctl-N change-window-forw Ctl-PageDown X X These commands move the cursor to the next or previous Xwindow on the screen, making it the current window. X X Ctl-X Z window-enlarge X Ctl-X Ctl-Z window-shrink X X Enlarge or shrink the current window size by one line. X X Esc ! window-reposition X X Move window position so that the cursor is centered in Xthe window. The cursor position in the buffer does not change. X X Ctl-X 2 window-split X X Split the current window into equal parts. Both haves Xhave the same display mode and view the save buffer. X X Ctl-X 1 window-single X X Expand the current window to fill the entire display, all Xother windows are removed. Make the current window the only Xwindow displayed. This has no effect on the underlying Xbuffers except that they may not be displayed any more. X X X X X X X - 19 - X X X X X END_OF_FILE if test 32050 -ne `wc -c <'beav1.doc'`; then echo shar: \"'beav1.doc'\" unpacked with wrong size! fi # end of 'beav1.doc' fi echo shar: End of archive 8 \(of 10\). cp /dev/null ark8isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 10 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 -- >>>>>>>>>>>>>>>> Peter Reilley ..... pvr@wang.com <<<<<<<<<<<<<<<<<<<<<<< Well, that about says it.