═══ 1. About HexEdit/2 ═══ HexEdit/2 is a shareware OS/2 Presentation Manager binary file editor from B::Ware. It allows you to edit an existing file or create a new one. You can view and edit the file in hexadecimal, decimal, or octal representation, as an array of 1, 2, or 4-byte entities. In addition, file offsets can also be presented as hexadecimal, decimal, or octal numbers. HexEdit/2 is copyright (c) 1994 - 1996 by Bennett C. Baker and B::Ware. All rights are reserved. o Using HexEdit/2 - an overview o About B::Ware o HexEdit/2 Support o HexEdit/2 License Agreement o Registering HexEdit/2 ═══ 1.1. About B::Ware ═══ B::Ware is a consulting firm with over 16 years experience in: o MS-DOS and OS/2 applications and system development o Novell NetWare NLM and driver development o Real-time embedded systems hardware and software development o General telecomm and ISDN protocols and implementations Call, write, or e-mail us at: B::Ware 75 Greenlodge Street Dedham, MA 02026 USA Voice/FAX: (617)-326-4719 Compuserve: 70274,3147 Internet: bcb@bware.com ═══ 1.2. HexEdit/2 Support ═══ HexEdit/2 is supported on CompuServe in the OS2SHARE forum (section 1 of OS2BVEN). Send messages to Bennett C. Baker, user ID 70274,3147. Internet users can address e-mail messages to 70274.3147@compuserve.com or to bcb@bware.com. ═══ 1.3. HexEdit/2 License Agreement ═══ Evaluation Period You may use this shareware copy of this program for an evaluation period of up to 30 days, in order to determine whether the program meets your needs before purchasing it. Once the evaluation period ends, you agree to either register this Program, or to stop using it. Making and Distributing Shareware Copies You may make copies of this program and distribute them freely, as long as you include all of the files that you originally received with your shareware copy. When you give a shareware copy of this program to another person, you agree to inform them that their copy is to be used for a time limited evaluation period, and that they must register their copy if they continue to use the program after the end of the evaluation period. You may not sell or distribute this program for a fee in excess of media costs and/or shipping charges actually incurred in selling or distributing this program. Limitations on Liability IF USED IMPROPERLY, THIS PROGRAM IS CAPABLE OF DESTROYING ALL DATA ON YOUR COMPUTER SYSTEM. THIS SOFTWARE IS PROVIDED "AS-IS", WITH NO WARRANTY OF MERCHANTABILITY OR FITNESS OF PURPOSE. IN NO EVENT SHALL B::WARE OR BENNETT C. BAKER BE LIABLE FOR ANY INCIDENTAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES WHATSOEVER ARISING OUT OF USE OF THIS PROGRAM. ═══ 1.4. Registering HexEdit/2 ═══ HexEdit/2 is shareware. If you find it useful, you should register it. When you decide to register, please send U.S. $20.00 (U.S. funds, please!) to: B::Ware 75 Greenlodge Street Dedham, MA 02026 USA There is a registration form in the REGISTER.TXT file for you to fill out when you register HexEdit/2. Please print this form, fill it out, and send it in with your registration. When we receive your registration, we will send you a unique registration key to personalize your copy of HexEdit/2. When you receive your registration key, select the Options/Register menu option to enter the registration data into the product. Once the registration data has been properly entered, this menu option will no longer display. ═══ 1.5. HexEdit/2 Usage Overview ═══ HexEdit/2 allows you to manipulate files at the binary representation level. The File Menu allows you to read and write existing files or create new ones. The Edit Menu allows you to insert a block of nulls or delete a block of characters from the existing file. The Search Menu allows you to perform Search or Search and Replace functions within the currently edited file using binary or ASCII search criteria. The Options Menu controls HexEdit/2 configuration. Finally, the Display Dialog allows you to select the format of displayed binary data. HexEdit/2 allows you to use a combination of Keyboard and Mouse controls to facilitate data manipulation. ═══ 2. File Menu ═══ The File menu contains the following choices: Open Opens and reads in a new file Save Saves the current buffer into the current file name (runs Save As if no current file name). Save As Saves the current buffer under as user-selected file name. Clear Clear the current buffer and erase the current file name. Allocate Allocate a block of memory for editing. Resize Resize either the current file or an allocated block of memory. Exit Exit from HexEdit/2 without saving anything. ═══ 2.1. File Open ═══ Use File Open to bring up the File Open Dialog to read in an existing file for editing. The file can be any length, up to the limit allowed by the operating system. ═══ 2.1.1. File Open Dialog ═══ Use File Open to open a file, read it into the current buffer space, and then close the file. The current buffer will be identical to the file size. You can select a file with the File Open Dialog in several ways. If you already know the file's name and directory, you can enter that information by typing directly into the Open Filename: field. If you don't know the filename, you can browse for it by using the Type of File:, Drive:, Directory:, and File: fields of the dialog. When you see the file you want, either double-click on the entry in the File: field, or highlight that file name (still in the File: field) and click on the OK button. You can cancel the file selection process by clicking on the Cancel button (or by hitting the Esc key). ═══ 2.2. File Save ═══ Use File Save to save the current buffer under the current file name. If there is no current file name (for instance, if you have done a File Allocate) this selection will bring up the File Save As menu instead. ═══ 2.3. File Save As ═══ Use File Save As to bring up the File Save Dialog to save the current buffer under the current file name. ═══ 2.3.1. File Save As Dialog ═══ Use File Save As to save the current buffer into a disk file. You can select a file with the File Save As Dialog in several ways. If you already know the name and directory, of the file you want to save, you can enter that information directly into the Save as Filename: field. Otherwise, you can use the Drive: and Directory: fields of the dialog to maneuver into a chosen directory, and then either select an existing name from the File: field (to overwrite that file) or type in a new name in the Save as Filename: field. When you have selected a file name to save to, click on the OK button. You can cancel the file selection process by clicking on the Cancel button (or by hitting the Esc key). ═══ 2.4. File Clear ═══ Use File Clear to clear the current buffer and current file name (if any). ═══ 2.5. File Allocate ═══ Use File Allocate to bring up the File Allocate Dialog, which allows the user to allocate buffer space for a new file. ═══ 2.5.1. File Allocate Dialog ═══ Use File Allocate to allocate current buffer space for a new file. The allocation must be non-zero. Enter the allocation quantity in the Desired Size field. The size is interpreted according to the setting in the Display Mode field, so make sure that you are entering a number valid for the display mode (for instance, don't use the hex digits 'A' through 'F' if you are editing in decimal). ═══ Desired Size ═══ Enter the desired allocation (i.e. file) size in this field, in a format consistent with what is selected in the Display Mode field. ═══ Display Mode ═══ The Display Mode selector allows you to select the mode (hex, decimal, or octal) in which to interpret the value entered in the Desired Size field. The value in the Desired Size field must be valid for the selected Display Mode. ═══ 2.6. File Resize ═══ Use File Resize to bring up the File Resize Dialog, which allows the user to resize the current buffer space. ═══ 2.6.1. File Resize Dialog ═══ Use File Resize to resize the current buffer space. The new size must be non-zero. The Initial Size field displays the current buffer size, in units specified by the Display Mode field. This field cannot be edited: it is there for information only. Enter the desired new size in the New Size field, but make sure you enter the new number in a format acceptable to the Display Mode field. ═══ Initial Size ═══ This is the current size of the buffer, displayed in the current Display Mode format. This field cannot be edited: it is provided for information only. ═══ New Size ═══ Enter the desired new allocation size in this file, in units compatible with the current Display Mode format. ═══ Display Mode ═══ The Display Mode selector allows you to select the mode (hex, decimal, or octal) in which to display the Initial Size field and interpret the value entered in the New Size field. The value in the New Size field must be valid for the selected Display Mode. ═══ 2.7. File Exit ═══ Clear the current buffer and exit HexEdit/2. ═══ 3. Edit Menu ═══ The Edit menu contains the following choices: Insert Insert a specified number of bytes into the buffer at the current cursor location. The buffer is expanded by the number of inserted bytes. Delete Delete a specified number of bytes from the buffer starting at the current cursor location. The buffer is shrunk by the number of deleted bytes. ═══ 3.1. Edit Insert ═══ Select Edit Insert to bring up the Edit Insert Dialog, which allows the user to specify the number of bytes to insert into the buffer at the current cursor location. The inserted bytes are all set to 0. ═══ 3.1.1. Edit Insert Dialog ═══ Edit Insert will insert the specified number of bytes of zero (0x00) into the buffer at the current cursor point; the newly-inserted bytes can then be edited. ═══ 3.2. Edit Delete ═══ Select Edit Delete to bring up the Edit Delete Dialog, which allows the user to specify the number of bytes to delete from the buffer starting at the current cursor location. ═══ 3.2.1. Edit Delete Dialog ═══ Edit Delete deletes the specified number of bytes from the buffer starting at the current cursor point. ═══ 4. Search Menu ═══ The Search menu contains the following choices: Search Forward Search for a string forward from the current buffer position. Search Backward Search for a string backward from the current buffer position. Search Again Repeat the previous search (data and direction). Replace Forward Search and Replace for a string forward from the current buffer position. Replace Backward Search and Replace for a string backward from the current buffer position. Replace Again Repeat the previous Replace (data and direction). Go To Offset Go to a specific offset within the current buffer. ═══ 4.1. Search Selections ═══ HexEdit/2 allows you to search the current buffer for any sequence of octal, decimal, hex, or ASCII characters. Select Search Forward to search from the current cursor position to the end of the buffer, Search Backward to search backward from the current cursor position to the beginning of the buffer, or Search Again to repeat the last search (same search string and direction). Selecting either Search Forward or Search Backward brings up the Search Dialog, which allows you to control the search parameters. ═══ 4.1.1. Search Dialog ═══ The Search Dialog controls the parameters of the search. Enter the string to search for in the Search String field, and select how that string is to be interpreted in the Search Type selection. ═══ Search String ═══ The Search String is the string to search for. Enter either an ASCII string or a sequence of bytes in the format indicated by the Search Type field. ═══ Search Type Selection ═══ The Search Type field determines how the string entered in the Search String or Replace String field is interpreted. For a non-ASCII search (octal, decimal, or hex), make sure that the byte sequence is in a format acceptable to the Search Type field; for instance, do not enter any hex digits unless the Search Type field is Hex. For an ASCII search, the string is interpreted as an ordinary ASCII character string. The Case Sens. checkbox performs a case-sensitive search ASCII search when checked; it has no meaning for the Replace String (the Replace String data is replaced as is - it is always case sensitive). ═══ 4.2. Replace Selections ═══ HexEdit/2 allows you to search the current buffer for any sequence of octal, decimal, hex, or ASCII characters and replace that sequence with an alternate sequence. Select Replace Forward to search and replace from the current cursor position to the end of the buffer, Replace Backward to search and replace backward from the current cursor position to the beginning of the buffer, or Replace Again to repeat the last search and replace (same search string, replace string and direction). Selecting either Replace Forward or Replace Backward brings up the Replace Dialog, which allows you to control the search and replace parameters. ═══ 4.2.1. Replace Dialog ═══ The Replace Dialog controls the parameters of the search and replace. Enter the string to search for in the Search String field, enter the replacement string in the Replace String field, and select how those strings are to be interpreted in the Search Type selection. Both the Search and Replace strings are interpreted in the same manner by the Search Type selection. ═══ Replace String ═══ The Replace String is the string to replace the Search String with. Enter either an ASCII string or a sequence of bytes in the format indicated by the Search Type field. ═══ 4.3. Go To Offset ═══ Use Go To Offset to bring up the Go To Offset Dialog, which allows you to enter the buffer offset at which to position the cursor. ═══ 4.3.1. Go To Offset Dialog ═══ Use this dialog box to position the cursor to any offset within the current buffer. Enter the desired offset in the Desired Offset field, in the format indicated by the Offset Mode field. You can select relative offset positioning by prefixing the desired offset with either a + or - sign, indicating positive or negative relative movement, respectively. ═══ 5. Options ═══ The Options menu contains the following choices: Font Selects a font for use by the client window. Read Only Toggles the buffer Read Only flag. Auto Resize Toggles the Auto Resize flag. Register Run the product Registration dialog. ═══ 5.1. Options/Font ═══ The Font menu selection brings up a standard Font Dialog Box, allowing the user to select which fixed-pitch font to use for display purposes. Note that only the currently available fixed-pitch fonts appear in the selection list. ═══ 5.1.1. Font Selection Dialog ═══ The Font Selection dialog allows you to choose the font for information display within the HexEdit/2 window. Only fixed fonts can be used. The selected font will be saved at program exit and used again when the program is next run. The initial default font is 10 point System Monospaced. ═══ 5.2. Options/Read Only ═══ The Read Only flag toggles whether the buffer is editable. This options defaults to on (checked), but can be un-checked to allow editing within the buffer. If this option is checked, you will not be able to edit the buffer. ═══ 5.3. Options/Auto Resize ═══ The Auto Resize flag toggles whether the client window will automatically resize when the display options (offset mode, main display mode, bytes-per-entity) are changed. This option defaults to off (unchecked), but can be checked to allow automatic window resizing. ═══ 5.4. Options/Register ═══ This option allows you to register HexEdit/2. It does not appear in a properly registered version. ═══ 6. Display Help ═══ The Display menu selection brings up the Display Dialog, which allows the user to specify the format of on-screen information. ═══ 7. Display Dialog ═══ Use this dialog to alter the way information is displayed on the screen. Change the file offset format with File Offsets selection, change the default data representation with the Data Format selection, and chose the number of bytes per item with the Bytes Per Item selection. ═══ 7.1. File Offsets ═══ Use this field to select the format of the file offset display; octal, decimal, or hexadecimal. ═══ 7.2. Data Format ═══ Use this field to select the format of the main data display; octal, decimal, or hexedecimal. This field interacts with the Bytes Per Item field to control the actual number of bytes/entities displayed on each line. ═══ 7.3. Bytes Per Item ═══ Use this field to select the number of bytes displayed in each entity in the main data display. This field interacts with the Data Format field to control the actual number of bytes/entities displayed on each line. Note: Multi-byte entities are displayed in Little-Endian format (used by VAXen and Intel), with the first (least significant) physical byte appearing at the end of the entity. ═══ 8. Help ═══ There are several entries in the Help menu: Help Contents Displays the Help Table of Contents Help Index Displays the Help Index General Help Displays General Help for HexEdit/2 Using Help Displays a guide on how to use the OS/2 help system. Keys Help Displays a list of special keys used by HexEdit/2. About Displays the "About HexEdit/2" dialog box. ═══ 8.1. Help Table of Contents ═══ Select Table of Contents to bring up the Table of Contents of HexEdit/2 help topics. ═══ 8.2. Help Index ═══ Select Index to bring up the index of HexEdit/2 help topics. ═══ 8.3. General Help ═══ Select General Help to bring up the initial HexEdit/2 help window (or just hit the F1 key). ═══ 8.4. Using Help ═══ Select Using Help to display a guide on how to use the OS/2 help system. ═══ 8.5. Keys Help ═══ Select Keys Help for a list of special keys used by HexEdit/2. ═══ 8.6. Key Information ═══ Hexedit/2 supports cursor movement, data editing, and hot-keys display formatting. o Cursor Movement Keys o Data Editing Keys o Hot Keys o Mouse Support ═══ 8.6.1. Cursor Movement Keys ═══ Up Arrow Moves the cursor up one line Ctrl-Up Scrolls the screen up one line Down Arrow Moves the cursor down one line Ctrl-Down Scrolls the screen down one line Left Arrow Moves the cursor left one character Right Arrow Moves the cursor right one character PgUp Moves up one screenful PgDn Moves down one screenful Home Moves to the beginning of the buffer End Moves to the end of the buffer Tab Switches between Binary edit and ASCII edit fields Spacebar Moves the cursor right one character (only when in the Binary edit field). Note: You cannot edit the File Offset field (only the Binary and ASCII fields). ═══ 8.6.2. Data Editing Keys ═══ In the Binary field, you can use the standard 0-9, A-F keys to edit the data display in place. You must use the appropriate keys for the current Data Format: for instance, you cannot use the A-F keys if the current Display Format is Octal or Decimal. In the ASCII field, type any displayable character (one with an ASCII code greater than 0x1F) to edit the field. Remember that you cannot edit the file offset field. ═══ 8.6.3. Hot Keys ═══ HexEdit/2 supports the following hot keys: Display File Offset Format Control Ctrl-T Octal Ctrl-C Decimal Ctrl-X Hexadecimal Display Data Format Control Ctrl-O Octal Ctrl-D Decimal Ctrl-H Hexadecimal Display Byte Count Control Ctrl-1 1 byte per entity Ctrl-2 2 bytes per entity Ctrl-4 4 bytes per entity Search Keys F5 Search Forward from current cursor position Alt-F5 Search Backward from current cursor position Shift-F5 Repeat last search operation Replace Keys F6 Replace forward from current cursor position Alt-F6 Replace backward from current cursor position Shift-F6 Repeat last replace operation Go To Key Ctrl-G Invoke the Go To Offset Dialog ═══ 8.7. About ═══ Select Help About to display an "About HexEdit/2" screen. ═══ 9. Mouse Support ═══ You can move the cursor to any character within the Binary or ASCII fields by positioning the mouse cursor on that character and clicking button 1 (usually the left button).