1453 lines
58 KiB
Plaintext
1453 lines
58 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1
|
||
~~~~~~~ ~~~
|
||
|
||
By Mike Graham.
|
||
Copyright 1986,1991.
|
||
|
||
April 20th, 1991. 7:26.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Contents
|
||
|
||
|
||
1 Introduction . . . . . . . . . . . . . . . . . . . . 2
|
||
2 Features . . . . . . . . . . . . . . . . . . . . . . 2
|
||
3 What is Freeware? . . . . . . . . . . . . . . . . . . 3
|
||
4 What does registration get you? . . . . . . . . . . . 3
|
||
5 Distributing HexEdit . . . . . . . . . . . . . . . . 4
|
||
6 Commercial use of HexEdit . . . . . . . . . . . . . . 4
|
||
7 Unlimited? . . . . . . . . . . . . . . . . . . . . . 4
|
||
8 Installing HexEdit . . . . . . . . . . . . . . . . . 5
|
||
8.1 General Installation . . . . . . . . . . . . . . 5
|
||
8.2 Installing for DESQview . . . . . . . . . . . . 5
|
||
8.3 Installing for Windows 3.0 . . . . . . . . . . . 5
|
||
9 The Basics . . . . . . . . . . . . . . . . . . . . . 6
|
||
9.1 Starting up HexEdit . . . . . . . . . . . . . . 6
|
||
9.2 Once You're Started . . . . . . . . . . . . . . 6
|
||
10 The Keys . . . . . . . . . . . . . . . . . . . . . . 7
|
||
10.1 F1: Help . . . . . . . . . . . . . . . . . . . 7
|
||
10.2 F2: Jump to Byte . . . . . . . . . . . . . . . 7
|
||
10.3 Shift-F2: Jump to Sector . . . . . . . . . . . 8
|
||
10.4 F3: Search . . . . . . . . . . . . . . . . . . 8
|
||
10.5 F4: Search and Replace . . . . . . . . . . . . 8
|
||
10.6 F8: Mask non-text bytes . . . . . . . . . . . . 8
|
||
10.7 F9: Mode . . . . . . . . . . . . . . . . . . . 8
|
||
10.8 Alt-A: ASCII Table . . . . . . . . . . . . . . 9
|
||
10.9 Alt-B: Base Conversion . . . . . . . . . . . . 9
|
||
10.10 Alt-C: Configuration . . . . . . . . . . . . . 9
|
||
10.11 Alt-N: Next Found . . . . . . . . . . . . . 10
|
||
10.12 Alt-P: Previous Found . . . . . . . . . . . 10
|
||
10.13 Alt-S: Shell to DOS . . . . . . . . . . . . 10
|
||
10.14 Alt-T: Text Search . . . . . . . . . . . . . 10
|
||
10.15 Alt-U: Undo . . . . . . . . . . . . . . . . 10
|
||
10.16 Alt-X: Panic Abort . . . . . . . . . . . . . 11
|
||
10.17 Esc:Exit . . . . . . . . . . . . . . . . . . 11
|
||
10.18 Backspace . . . . . . . . . . . . . . . . . 11
|
||
10.19 Cursor Keys . . . . . . . . . . . . . . . . 11
|
||
11 System Requirements . . . . . . . . . . . . . . . 12
|
||
12 Odd Notes . . . . . . . . . . . . . . . . . . . . 12
|
||
13 Future Enhancements . . . . . . . . . . . . . . . 13
|
||
14 Revision History . . . . . . . . . . . . . . . . . 14
|
||
15 Legal Crud . . . . . . . . . . . . . . . . . . . . 18
|
||
16 Credit where credit is due . . . . . . . . . . . . 20
|
||
17 Contacting the Author . . . . . . . . . . . . . . 21
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
i
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
1 Introduction
|
||
|
||
|
||
HexEdit is a programmer's hexadecimal patch editor. "What," you ask,
|
||
"is a programmer's hexadecimal patch editor?" Well, it's a special
|
||
editor, similar to a text editor except that it deals with unformatted
|
||
binary files, rather than nice, clean text. For more info on the uses of
|
||
patch editors, see the HEXEARL.TXT file.
|
||
|
||
HexEdit has evolved greatly since version 1.0 back in '86. The
|
||
revision history is near the end of this document.
|
||
|
||
|
||
2 Features
|
||
|
||
|
||
- Handles files of unlimited size.
|
||
|
||
- Records all changes to a file, with an UNDO feature wherein you
|
||
can selectively UNDO any number of changes.
|
||
|
||
- UNDO log files can be saved to disk before you leave HexEdit, so
|
||
the next time you edit the file, you will have the same changes
|
||
available for UNDO.
|
||
|
||
- Searches files at a rate of around 10 seconds per megabyte on a
|
||
high-powered machine.
|
||
|
||
- Fast and flexible search / search and replace. You can search
|
||
with or without case-sensitivity. Searches can be aborted mid-
|
||
stream, even when doing a replace, with no problems.
|
||
|
||
- High-speed, crisp response; HexEdit can keep up with every
|
||
keyboard accelerator I've tried it with.
|
||
|
||
- Random access jump to any byte(F2) or sector(SF2) of a file.
|
||
Location can be specified in decimal or hexadecimal format, or you
|
||
can simply specify top or bottom of file.
|
||
|
||
- Searches for character strings or hexadecimal series'.
|
||
|
||
- Will store the location of up to 15,000 search matches.
|
||
|
||
- Move through file by jumping to locations where items were found
|
||
in the last search operation.
|
||
|
||
- On-line base conversion including decimal, hexadecimal, and
|
||
binary.
|
||
|
||
- Pop-up ASCII table (Alt-A) for quick reference of weird
|
||
characters.
|
||
|
||
- Search for random text strings (Alt-T) in binary files.
|
||
|
||
|
||
|
||
|
||
Page Two.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
- Swapping DOS shell
|
||
|
||
- Full colour customization, with all changes stored directly in the
|
||
executable file, meaning no configuration files to fool around
|
||
with.
|
||
|
||
- Panic abort of edit. If all else fails... PANIC! The file being
|
||
edited will revert to its original (pre-edited) state, and you
|
||
will instantly drop back to DOS.
|
||
|
||
|
||
3 What is Freeware?
|
||
|
||
|
||
We're all familiar with the Shareware concept: you're allowed to use
|
||
the product for so many days, then if you intend to continue using it you
|
||
have to send a cheque for so many dollars ere you burn in hell forever.
|
||
|
||
Freeware is different.
|
||
|
||
We're all TOO TOO familiar with Crippleware (an evil, perverted
|
||
mutation of Shareware) in which you get a product that has all of the
|
||
nice features disabled. Or it dies and will never run again after a
|
||
certain number of days. To get one that works, you have to cough up the
|
||
money. How can you tell if it will do what you need it to DO, if you
|
||
can't USE IT???
|
||
|
||
Freeware is better.
|
||
|
||
With the Freeware concept, I'm not TELLING you to send me money. I'm
|
||
giving you a completely working product which you can use forever and a
|
||
day without paying for, if you want. However, if you DO like this
|
||
product, and you'd like to see new versions of it in the future, then it
|
||
would likely be in your best interest to register the product and support
|
||
my programming efforts. There is no preset registration fee (though $20
|
||
per copy used is recommended). Send whatever your conscience tells you.
|
||
All I ask is that you at least cover the cost of mailing out the latest
|
||
version to you (minimum $10 to cover postage, disk, disk mailer, etc.).
|
||
|
||
Some of the companion products that come with HexEdit (such as
|
||
HexConvert and KEYLOCK) have actually been released to the public domain.
|
||
This means that I have basically abandoned all ownership of the programs
|
||
(though I still reserve the names as copyright) so you can give them to
|
||
anyone with no registration obligation at all. Feel free to install
|
||
KEYLOCK on the machine at work, or whatever.
|
||
|
||
|
||
4 What does registration get you?
|
||
|
||
|
||
If you register your product, you get the latest version mailed to you
|
||
on whatever size of floppy disk you specify (also specify the version you
|
||
have, so if you already have the latest then I'll wait and send you the
|
||
next one when it's out). Once registered, your name goes on file, and
|
||
|
||
|
||
|
||
Page Three.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
you will be alerted of the next release by mail (or whatever method is
|
||
most convenient). At any time you can send me $10 and I'll send you the
|
||
most recent version. See HEXORDER.FRM for further information regarding
|
||
registration.
|
||
|
||
Oh yeah, if you send me a good idea regarding alterations to improve
|
||
HexEdit, or if you send in a good (read 'current and real') bug-alert,
|
||
you will be automatically registered for the next version (which will
|
||
include your suggestion or bug-fix).
|
||
|
||
I'm expecting to release new versions of HexEdit roughly every three
|
||
months or so.
|
||
|
||
|
||
5 Distributing HexEdit
|
||
|
||
|
||
Feel free to upload any UNMODIFIED copies of HexEdit anywhere you like.
|
||
You can ADD HexEdit-related files to the HEXEDnn.ZIP, but don't CHANGE or
|
||
DELETE files. I.e, if you came up with a really amazing help screen or
|
||
icon for HexEdit, you can include it with the zip file to give to someone
|
||
or distribute, but make sure that the original file remains with its
|
||
original name. You can add a readme file to promote your addition. BBS
|
||
Advertisements can be added, but I'd appreciate it if it doesn't appear
|
||
each time you run HexEdit (i.e. those irritating RUNME.BAT files that
|
||
some people come up with... I DESPISE title screens!)
|
||
|
||
|
||
6 Commercial use of HexEdit
|
||
|
||
|
||
If you represent a company that would like to use HexEdit, but require
|
||
a special version, detailed technical specs, source code, better docu-
|
||
mentation, site licensing, or whatever, then drop me a line, and I'll see
|
||
what I can do. Changes can usually be made in a weekend, but if they're
|
||
really in-depth and nasty, then it might take a week. Drop me a letter!
|
||
What do you have to lose? Even if you are a mere human being, and not a
|
||
company at all...
|
||
|
||
|
||
7 Unlimited?
|
||
|
||
|
||
Occasionally throughout this document I will use words and phrases like
|
||
'unlimited', 'unending', 'really totally humongous' etc. It should be
|
||
noted that there are limits to everything, so when I say unlimited I mean
|
||
limits so huge that you have to be NASA to exceed them. For instance, I
|
||
mention unlimited file size, when in reality you can only edit files of
|
||
up to 2.5 gigabytes or so (well, up to almost 5 gigabytes, but I suspect
|
||
it gets pretty flaky after 2.5 gigabytes.. I haven't exactly been able to
|
||
test that part...). Of course, it relies on hard drive size as well,
|
||
which limits most people to files of around 100 megabytes and less. For
|
||
all intents and purposes, that's big enough that I can get away with
|
||
saying unlimited.
|
||
|
||
|
||
|
||
Page Four.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
8 Installing HexEdit
|
||
|
||
|
||
8.1 General Installation
|
||
|
||
The only file absolutely required to use HexEdit is the executable file
|
||
HE.EXE. If this file is put in your path somewhere, then you should have
|
||
no trouble at all. To use the on-line help, the file HEXEDIT.HLP should
|
||
be copied into the same directory as HE.EXE. To use HEB.BAT for
|
||
automatic backups (see subsection "Starting up HexEdit" below) then you
|
||
will need to copy HEB.BAT and MAKEBAK.EXE to your path (they do not need
|
||
to be in the same directory as HE.EXE).
|
||
|
||
8.2 Installing for DESQview
|
||
|
||
HexEdit is a DESQview-aware application. Because of this, it can be
|
||
run more fluidly under DESQview than a non-aware application could be.
|
||
To install HexEdit, you should copy the HE-PIF.DVP file into the
|
||
directory with HE.EXE. Now, simply pop up the DESQview main menu, select
|
||
the "Open Window" menu, pick "Add a Program", and select "O" for "Other
|
||
(add program not in list)". In the dialogue box that appears, fill in
|
||
the directory that you copied HE.EXE and HE-PIF.DVP to. Once you hit
|
||
enter, you can select to install HexEdit. Note that if you also copied
|
||
the Windows 3.0 PIF file to the HE.EXE directory, then you will actually
|
||
have a choice between TWO seemingly identical "HexEdit" applications to
|
||
install. This is because DESQview partially understands PIF files. Pick
|
||
the HexEdit in the left-hand column. HexEdit is now installed. Note
|
||
that the DVP file assumes that the HE.EXE file is in the path. If it
|
||
isn't, you will have to modify the DVP file slightly.
|
||
|
||
8.3 Installing for Windows 3.0
|
||
|
||
HexEdit comes with a Windows 3.0 PIF file, and two icon files. If you
|
||
want to run HexEdit under Windows, then you should copy at least the PIF
|
||
file to the HexEdit directory. To install, simply run Windows, select
|
||
the group you want to add HexEdit to as the current group, and select
|
||
"New" under the "File" menu. You will now see a dialogue box asking you
|
||
whether you want to add a new program item or a new group. Make sure the
|
||
"Program Item" radio button is pressed, and click on "OK". You now see
|
||
the "Edit Properties" dialogue box. Type in the full path of the HexEdit
|
||
PIF file (HE.PIF). Once that's typed in, click on "Change Icon", and
|
||
type in the full path of one of the HexEdit .ICO files. Click on "View
|
||
Next" to make sure the path is right, and you should see the custom icon.
|
||
Try changing the icon path to the other icon file (there's "HE.ICO" and
|
||
"HE2.ICO") and viewing it; each icon has its merit. Once the icon is
|
||
selected, just click on "OK" a few times, and you're done. It's
|
||
installed. You will likely have to change the PIF file slightly to
|
||
specify where you copied HE.EXE, though.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Page Five.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
9 The Basics
|
||
|
||
|
||
9.1 Starting up HexEdit
|
||
|
||
Just call up HexEdit with a file name as the first parameter, and an
|
||
UNDO file as the (optional) second parameter. Additionally, you can add
|
||
"/MONO" after the last file parameter to force the 'factory default'
|
||
monochrome colours. For a quick refresher of parameters, you can just
|
||
run HexEdit with no parameters, and you will get a help screen listing
|
||
all of the parameter choices.
|
||
|
||
For example: "HE JUNK.DAT JUNK.LOG /MONO" will start HexEdit and load
|
||
JUNK.DAT using JUNK.LOG as the UNDO log. The monochrome 'factory
|
||
default' colour set will be used.
|
||
|
||
If you want HexEdit to make a backup of the file you're editing, then
|
||
replace "HEB" for "HE" in the above commands. HEB is a batch file that
|
||
automatically copies whatever file you want to edit to a file with the
|
||
extension .BAK. If the file you're editing IS a .BAK file, then a file
|
||
with the extension .BA0 will be created.
|
||
|
||
9.2 Once You're Started
|
||
|
||
The file is read in, and you see the first page (256 bytes) of it. It
|
||
looks sort of like this:
|
||
<EFBFBD>[Editing: C:\UTIL\HE\HE.EXE]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[HexEdit 2.1]<5D><><EFBFBD><EFBFBD><EFBFBD>
|
||
Found: 127/290 Changes : 4297 Mask:Off Mode:C Page:1
|
||
Current Sector: 39(00000027) Byte: 20360(00004F88)
|
||
Total Sectors : 127(0000007F) Bytes: 65503(0000FFDF)
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>00<EFBFBD>01<EFBFBD>02<EFBFBD>03<EFBFBD>04<EFBFBD>05<EFBFBD>06<EFBFBD>07<EFBFBD>08<EFBFBD>09<EFBFBD>0A<EFBFBD>0B<EFBFBD>0C<EFBFBD>0D<EFBFBD>0E<EFBFBD>0F<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0123456789ABCDEF<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
00- 74 69 6F 6E 20 6F 66 20-48 45 58 45 44 49 54 2E -00- tion of HEXEDIT. -00
|
||
01- 54 58 54 20 66 6F 72 20-6D 6F 72 65 20 69 6E 66 -01- TXT for more inf -01
|
||
02- 6F 72 6D 61 74 69 6F 6E-2E 36 54 68 65 72 65 20 -02- ormation.6There -02
|
||
03- 69 73 20 6E 6F 20 64 69-66 66 65 72 65 6E 63 65 -03- is no difference -03
|
||
04- 20 62 65 74 77 65 65 6E-20 74 68 65 20 72 65 67 -04- between the reg -04
|
||
05- 69 73 74 65 72 65 64 20-61 6E 64 20 6E 6F 6E 2D -05- istered and non- -05
|
||
06- 33 72 65 67 69 73 74 65-72 65 64 20 76 65 72 73 -06- 3registered vers -06
|
||
07- 69 6F 6E 73 20 28 74 68-69 73 20 69 73 20 4E 4F -07- ions (this is NO -07
|
||
08- 54 20 43 72 69 70 70 6C-65 77 61 72 65 21 21 21 -08- T Crippleware!!! -08
|
||
09- 21 21 29 2E 0F 20 20 20-20 4D 69 6B 65 20 47 72 -09- !!). Mike Gr -09
|
||
0A- 61 68 61 6D 0D 20 20 20-20 42 6F 78 20 36 30 30 -0A- aham Box 600 -0A
|
||
0B- 33 36 18 20 20 20 20 55-20 6F 66 20 41 20 50 6F -0B- 36 U of A Po -0B
|
||
0C- 73 74 61 6C 20 4F 75 74-6C 65 74 10 20 20 20 20 -0C- stal Outlet -0C
|
||
0D- 45 64 6D 6F 6E 74 6F 6E-2C 20 41 42 13 20 20 20 -0D- Edmonton, AB -0D
|
||
0E- 20 43 61 6E 61 64 61 20-20 54 36 47 20 32 53 34 -0E- Canada T6G 2S4 -0E
|
||
0F- 3C 20 6F 72 20 63 6F 6E-74 61 63 74 20 22 6D 69 -0F- < or contact "mi -0F
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>00<EFBFBD>01<EFBFBD>02<EFBFBD>03<EFBFBD>04<EFBFBD>05<EFBFBD>06<EFBFBD>07<EFBFBD>08<EFBFBD>09<EFBFBD>0A<EFBFBD>0B<EFBFBD>0C<EFBFBD>0D<EFBFBD>0E<EFBFBD>0F<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0123456789ABCDEF<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
F1:Help F2/SF2:Jump F3:Search F4:Srch/Rep F8:Mask F9:Mode ESC:Exit
|
||
Alt keys: A:Ascii B:Base C:Config S:Shell X:Abort! T:Text U:Undo
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
At the top, you see the name of the file being patched (in this case,
|
||
HE.EXE) and the version of HexEdit. On the next line you see 'Found:
|
||
127/290' which indicates that the last search you did resulted in 290
|
||
|
||
|
||
|
||
Page Six.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
finds, and you most recently jumped to the location of the 127th found
|
||
item (think of it as location 127 of 290 locations). In the center of
|
||
that line you see 'Changes: 4297'. This indicates that 4297
|
||
modifications have been made to the file (use UNDO (Alt-U) to restore the
|
||
file to its original form). To the right is 'Mask:Off'. This is the
|
||
indicator for the text filter mask. Farther to the right is 'Mode:C'.
|
||
This indicates that you're currently in character editing mode, so any
|
||
key you hit (besides arrow keys etc.) will overwrite the character under
|
||
the cursor. If you were to change to hex mode (F9) then you can edit the
|
||
hex value of the byte directly (the C will change to an H). Farther to
|
||
the right is 'Page:1'. This tells you that you're on the second
|
||
(numbered from 0) 256 byte chunk (or 'page') of the current 512 byte
|
||
sector. On the next line is the number of the current 512 byte sector
|
||
within the file (in decimal, with hex in the brackets) and the offset of
|
||
the current byte (hex in the brackets). The next line is similar to the
|
||
one above, except that it indicates the maximums for the file, i.e. the
|
||
number of sectors and bytes in the file. Bytes, pages and sectors are
|
||
numbered with the first one being zero. Everything else is pretty
|
||
obvious.
|
||
|
||
A word about nomenclature: a file is divided in to any number of 512 byte
|
||
sectors, which are in turn divided into two 256 byte pages. At any given
|
||
time you are looking at ONE PAGE of the CURRENT SECTOR. Any time you
|
||
specify a sector target, you will jump to the first PAGE of that sector
|
||
(in other words, you might have to hit page-down once after the jump to
|
||
get where you want to be if you wanted the second page of a certain
|
||
sector).
|
||
|
||
|
||
10 The Keys
|
||
|
||
|
||
10.1 F1: Help
|
||
|
||
This key will call up the one-page text file 'HEXEDIT.HLP' if it can
|
||
be found in the same directory as the HexEdit executable file. Feel free
|
||
to edit this file to your liking.
|
||
|
||
10.2 F2: Jump to Byte
|
||
|
||
Hitting this key will call up a command line which asks: 'Byte to jump
|
||
to [dec/$hex/MIN/MAX/F/L/N/P]'. The net effect, is that if you type in a
|
||
decimal number like '100' or '51231', then you will be instantly
|
||
transported to that byte (Remember! Bytes are numbered from ZERO, so byte
|
||
#1 is the second byte in the file). If you type in a hexadecimal string
|
||
beginning with a dollar sign (i.e. '$F10F') then you will jump to the
|
||
byte denoted by that value. If you type in MIN, you will jump to the
|
||
first (minimum) byte, MAX will jump to the last (maximum) byte in the
|
||
file. F is the first found item, L is the last found item, N is the next
|
||
and P is the previous found item.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Page Seven.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
10.3 Shift-F2: Jump to Sector
|
||
|
||
This works almost exactly the same as F2 except that if you specify a
|
||
number in decimal or hex, you will be 'jumped' to the first page of that
|
||
SECTOR, not BYTE. Other than that, the MIN/MAX/F/L/N/P choices work
|
||
exactly the same. You will find that you will generally use F2, but this
|
||
function is included for completeness.
|
||
|
||
10.4 F3: Search
|
||
|
||
This feature works differently depending on whether you are in HEX or
|
||
CHAR editing mode. If you are in HEX mode, it will prompt and search for
|
||
a HEX string. If you're in CHAR mode, then it will prompt and search for
|
||
a character string. After the string is entered you will be prompted as
|
||
to whether you want the search case sensitive or not. Hitting <ESC>
|
||
instead of <ENTER> to terminate input of the search string will cause the
|
||
search to abort.
|
||
|
||
10.5 F4: Search and Replace
|
||
|
||
Same as search (F3) except after the case sensitivity prompt, you are
|
||
asked for a string/hex series to replace the search string/hex series
|
||
with (must be the same length if hex, can be shorter if you're searching
|
||
for text (string will be padded with space (ASCII 32) characters if
|
||
shorter). After the replacement string/series is entered, a box pops up
|
||
asking you if the details are correct (remember: short strings are
|
||
padded at the right!). If not, you can retype the replace string/series
|
||
until it IS right (or ESC to abort). After the replace string/series is
|
||
entered correctly, you are asked whether you want to be prompted for each
|
||
replace. If you indicate that you do NOT want to be prompted, then
|
||
everything will happen automatically, and every occurrence of the search-
|
||
string/series in the file will be replaced by the replace string/series.
|
||
If you indicate that you DO want to be prompted, then every time the
|
||
search string is found, you are prompted whether you want to 'Replace?
|
||
<Y/N/A/Q>'. 'Y' and 'N' are simply 'yes' and 'no'. If you want to
|
||
replace this occurrence, then type 'y'. If you don't want to replace
|
||
this occurrence, then type 'n'. If you type 'A' (for Automatic or All)
|
||
then all of the remaining occurrences will be replaced automatically. If
|
||
you type 'Q' (for Quit), then you will be returned to the main HexEdit
|
||
screen without replacing this, or any subsequent occurrences.
|
||
|
||
10.6 F8: Mask non-text bytes
|
||
|
||
Hitting this key will toggle the text mask on and off. When active,
|
||
the text mask causes all bytes that are not text bytes (i.e. ASCII
|
||
#32-#126) to appear on the screen as periods ('.') rather than as their
|
||
actual values. This is convenient when you are looking through a file,
|
||
and want to view only the textual information (see also Alt-T: Text
|
||
Search).
|
||
|
||
10.7 F9: Mode
|
||
|
||
Toggle between character editing mode and hex editing mode. In
|
||
character editing mode you can replace characters by typing directly with
|
||
|
||
|
||
|
||
Page Eight.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
the keyboard (the cursor will be on the character array on the right hand
|
||
side of the screen). In hex mode, you enter the hex codes with the
|
||
keyboard, and the characters are replaced with the ones represented by
|
||
that hex code (the cursor will be on the hex grid on the left side of the
|
||
screen).
|
||
|
||
10.8 Alt-A: ASCII Table
|
||
|
||
Hitting this key will pop up an ASCII table which has fairly simple
|
||
commands. All of the standard cursor commands (PGUP, PGDN, ARROWUP,
|
||
ARROWDN, HOME, and END) do things that make sense, so it shouldn't be a
|
||
really stressful thing to get the hang of. Hit ESC when you're done with
|
||
it.
|
||
|
||
10.9 Alt-B: Base Conversion
|
||
|
||
Hitting Alt-B will pop up a small window in the upper-left corner of
|
||
the screen. There are three lines in this window. The first line is the
|
||
value in decimal, the second hexadecimal, the third in binary. On pop-
|
||
up, the value displayed will be whatever value was under the cursor when
|
||
you hit Alt-B. Once in the window, however, you can tab about the lines
|
||
and change them. A change in one is reflected in them all. Hit ESC to
|
||
return to HexEdit.
|
||
|
||
10.10 Alt-C: Configuration
|
||
|
||
Change the default colours. If you're running a monochrome system,
|
||
you might not want to run this, as I designed default colours that work
|
||
pretty nicely for monochrome, but it never hurts to check it out. It's
|
||
REAL easy. After hitting ALT-C, you will be looking at a box with a list
|
||
of items down the left, and a facsimile of the HexEdit main screen on the
|
||
right. Just use the cursor keys to pick the item to change. Once you
|
||
have selected an item, you get the attribute box, which shows you the
|
||
current foreground/background/blink options for that item. You use the
|
||
cursor keys to change the colours (note the sample colour swatch at the
|
||
bottom of the attribute box). When you have the colour set the way you
|
||
want, just hit enter, and you will return to the main configuration box,
|
||
and the screen will be updated with the colours you selected. If you
|
||
pick some really gross colours, and decide to switch back to the colours
|
||
you had before you entered the configuration section, just select
|
||
"RESTORE". Once you have the screen the way you like it, just hit
|
||
<ESCAPE> and you will be asked whether you want to save the changes to
|
||
disk or not. If you reply no, then the changes will last for the current
|
||
editing session only, otherwise they will be saved permanently. Just
|
||
give it a try and see what happens. Changes are written directly to the
|
||
HexEdit executable. Note that you can rename 'HE.EXE' with impunity.
|
||
HexEdit always knows what you've renamed it to. The only thing that
|
||
needs to be changed if you rename HE.EXE is HEB.BAT. By default, HEB
|
||
calls "HE %1 %2 %3 %4". If you change the name of HE.EXE, than you
|
||
should change HEB.BAT accordingly.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Page Nine.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
10.11 Alt-N: Next Found
|
||
|
||
This is just a shortcut for F2/N. It will jump you to the next found
|
||
item on the FOUND list.
|
||
|
||
10.12 Alt-P: Previous Found
|
||
|
||
This is just a shortcut for F2/P. It will jump you to the previous
|
||
found item on the FOUND list.
|
||
|
||
10.13 Alt-S: Shell to DOS
|
||
|
||
Use this function to quickly drop to DOS to copy files etc. Just type
|
||
"EXIT" at the DOS command line to return to HexEdit. A note regarding
|
||
swapping to DOS: don't delete any of the files that are in use by HexEdit
|
||
while swapped to DOS! I.e. don't delete the file you're editing, or the
|
||
HEXEDIT.LOG file, or the HEXEDIT.SWP file!. Changing directories is
|
||
okay, but you DON'T want to delete any files that are currently open. If
|
||
you DO delete any of the really important files (even if they have a 0
|
||
file size) then bad things could happen, and you will likely have to run
|
||
a CHKDSK/F to clean things up.
|
||
|
||
10.14 Alt-T: Text Search
|
||
|
||
Search for random strings of text (ASCII characters 32 to 126) of a
|
||
certain minimum length. For instance, you're patching COMMAND.COM, and
|
||
you want to change the name of the batch file that's executed on start-up
|
||
(i.e. instead of AUTOEXEC.BAT, make it RUNME.BAT). After you've done
|
||
this with a quick search and replace (F4), you suddenly wonder to
|
||
yourself "Gee, I wonder what ELSE I can change?". Rather than using
|
||
PGUP/PGDN to crawl around the file looking for text, you can simply do a
|
||
text search for strings with a length of 12 or so. This will find all
|
||
the interesting (changeable) parts of the file. Give it a try. It's
|
||
hard to explain, but you'll like it.
|
||
|
||
10.15 Alt-U: Undo
|
||
|
||
You can undo an unlimited number of changes made to the file currently
|
||
being edited. After you hit Alt-U, you will be prompted for the number
|
||
of changes to undo (the default is 1, or whatever number you undid the
|
||
previous time). You can either type in a number (decimal only.. why
|
||
bother with hex in this instance?) or either of the keywords 'ALL' or
|
||
'PURGE'. Entering 'ALL' will undo all of the changes, just as if you had
|
||
typed in the number of changes that had actually been done (saves you
|
||
from typing weird numbers all of the time). If you enter the keyword
|
||
'PURGE' instead of a number, then you will be prompted for the number of
|
||
changes to retain. For instance, say you had done a rather huge search
|
||
and replace and had replaced 100 20 character strings (resulting in 2000
|
||
changes). Perhaps you don't want all 2000 changes in your logfile. If
|
||
you don't, you can hit Alt-U to pop up the UNDO prompt, enter 'PURGE',
|
||
then enter 20 or something somewhat smaller to reduce the size of your
|
||
purge file. You don't HAVE to do this... the undo file can grow to any
|
||
size that your hard drive will permit, but sometimes it's nice the prune
|
||
the sucker down. Remember that when you UNDO something, that UNDO action
|
||
|
||
|
||
|
||
Page Ten.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
is added to the UNDO log... the net effect is that if you keep UNDOing
|
||
one action, you will just toggle between two values and keep adding to
|
||
the UNDO log. For instance, if you change a 'b' to an 'a' and back
|
||
again, then HexEdit remember each change, even though they are redundant
|
||
(i.e. you're back where you started from). Keeping this in mind, another
|
||
example of when you would want to purge would be if you had done a
|
||
massive search and replace, then decided that you really didn't want to
|
||
do that... If you UNDO the search and replace, then you have redundant
|
||
UNDO records in the log: a set of records changing the file, and a set
|
||
changing it back. You can PURGE the log down to what it was before the
|
||
whole search and replace fiasco, and still be able to UNDO everything.
|
||
What the heck; if you want to do it, do it. Remember: if you purge the
|
||
UNDO log, the panic-abort option may not restore the file entirely
|
||
(unless the changes you purged were redundant).
|
||
|
||
10.16 Alt-X: Panic Abort
|
||
|
||
Hitting this key combination pops up a window which asks if you really
|
||
want to fast-abort the edit. If you respond yes, then all of your
|
||
changes to the file are undone, and you are immediately kicked out to
|
||
DOS. Use this if you have maimed the file you're editing beyond all
|
||
recognition, and just want to get out HexEdit, lick your wounds, and hope
|
||
nobody ever finds out about the incident. Note that HexEdit can only
|
||
UNDO the changes that are recorded in the current UNDO log, so if you
|
||
have PURGED it, you're out of luck.
|
||
|
||
10.17 Esc:Exit
|
||
|
||
If you can't figure this one out, you need more help than I can give
|
||
you.
|
||
|
||
10.18 Backspace
|
||
|
||
Yes, believe it or not the backspace key gets a separate subsection.
|
||
When you use the backspace key, the cursor will move one space to the
|
||
left, and it will additionally undo any changes made to the character on
|
||
the space it just moved onto. Note that this is not the same as the
|
||
ALT-U UNDO, this is just a quick way to undo changes that haven't been
|
||
saved yet. Just type in a couple of characters and hit the backspace key
|
||
a few times and you'll see what I mean. You'll love it!
|
||
|
||
10.19 Cursor Keys
|
||
|
||
See the on-line help file "HEXEDIT.HLP" (F1) for fast reference to all
|
||
of the movement key assignments. The only thing you need to remember is
|
||
that if you hit the up arrow when you're at the top of the current page,
|
||
then you will move to the bottom line of the previous page. All of the
|
||
cursor keys work in that fashion. A little experimentation will reveal
|
||
all.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Page Eleven.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
11 System Requirements
|
||
|
||
|
||
HexEdit requires one floppy disk drive, and 384K of memory. However,
|
||
just because HexEdit will USE pedestrian hardware doesn't mean it LIKES
|
||
it. Give HexEdit hard drives and things like that, and you will have a
|
||
friend for life. For ultimate performance, run it on a RAM disk. EMS
|
||
will be utilized for the swapping DOS shell (up to about 700K or so) if
|
||
it's found. The only incompatibility that I know of is this: HexEdit
|
||
uses direct memory checks to see if a key has been pressed. For this
|
||
reason, if your system has the keyboard buffer in a nonstandard place,
|
||
then you might have problems aborting from searches etc. TSR programs
|
||
that expand the keyboard buffer are known to cause problems. Note that
|
||
HexEdit currently even works on Tandy 1000's, so any clone that calls
|
||
itself "100% compatible" should work with no problems.
|
||
|
||
|
||
12 Odd Notes
|
||
|
||
|
||
These are NOT bugs, they're simply somewhat unexpected operating
|
||
methods.
|
||
|
||
- You may find the cursor speed in HexEdit to be not so hot.
|
||
HexEdit uses BIOS functions for most keypress functions, therefore
|
||
it can only go as fast as your keyboard sends the keypress info.
|
||
If you use a keyboard accelerator like Cruise Control, PC-Kwik
|
||
key, or something similar then you will find MARKED improvements.
|
||
HexEdit spends about 80% if its time waiting for keystrokes, so if
|
||
you use an accelerator then you can pump keystrokes into HexEdit
|
||
MUCH faster, making for faster scrolls, etc. Note also that if
|
||
you use DOS 4.01 or better, then you can use the command "MODE
|
||
CON:RATE=32 DELAY=2" and that will speed up the keyboard as well
|
||
(though not NEARLY as fast as Cruise Control or PC-Kwik key can).
|
||
|
||
- HexEdit REQUIRES DOS 3.0 or better. It might work on prior
|
||
releases, but some of the features might not work properly. The
|
||
reason it needs the recent DOS is because HexEdit needs to
|
||
backtrack the executable file in order to do the configuration,
|
||
find the help file, etc.
|
||
|
||
- The file is saved as you go along. Whenever you change the
|
||
displayed sector, the 'Changes: n' display at the top of the
|
||
screen starts blinking. Also, every character that has been
|
||
altered is highlighted. When you try to exit or move from this
|
||
sector using PGUP or PGDN or whatever, you will be prompted
|
||
whether you want to save the sector or not. If you answer yes,
|
||
the sector will be saved to disk within the original file,
|
||
otherwise the changes will be discarded. Note that these saves
|
||
are made directly to the original file, so if you want to play
|
||
around with a file, and you're too paranoid to trust the wonderful
|
||
UNDO feature, then you should use the HEB.BAT file which is
|
||
documented above.
|
||
|
||
|
||
|
||
|
||
Page Twelve.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
13 Future Enhancements
|
||
|
||
|
||
Most of these enhancements will happen in phases. The next big phase
|
||
is conversion to TurboVision. Each potential enhancement has been
|
||
labeled either "Soon", "TVision" or "Maybe". Enhancements labeled "Soon"
|
||
will appear in the next version or two. Enhancements labeled "TVision"
|
||
will appear when I convert to TurboVision (during the summer, hopefully).
|
||
Those enhancements labeled "Maybe" are ones that I haven't even decided
|
||
whether I'll DO yet.
|
||
|
||
Soon:
|
||
|
||
- Keyboard remapping will be implemented in the next version or two
|
||
to allow people to change the default keys to whatever they happen
|
||
to want them to be.
|
||
|
||
- Final implementation of my buffered file access unit will be
|
||
happening soon, too, which will nail shut all of the disk
|
||
thrashing problems.
|
||
|
||
- Some day, I will code a method to actually INCREASE or DECREASE
|
||
the size of files, in order to do a search and replace with
|
||
unlike-sized search and replace strings. At first I thought that
|
||
this would be somewhat of a waste of time, because you can't mess
|
||
around with the innards of an executable file THAT much without
|
||
REALLY knowing what you're doing. I have been informed, however,
|
||
that people also use HexEdit to edit binary data files, and an
|
||
unlike-sized search&replace would be VERY handy. Okee dokee.
|
||
|
||
TVision:
|
||
|
||
- Pull-down windows will be implemented with TurboVision (of
|
||
course). I'm partially against it, but I sort of know it has to
|
||
happen sooner or later. If anyone would suffer at the
|
||
implementation of menus, it's me; remember I've been using these
|
||
keystrokes for 5 years! Ah well. There but for the grace of the
|
||
user go I.
|
||
|
||
- Upon conversion to TurboVision, editing multiple files will be a
|
||
reality!
|
||
|
||
- The pop-up calculator will be thrown in with the TurboVision
|
||
release.
|
||
|
||
- Context-sensitive help
|
||
|
||
- Enhanced screen customization
|
||
|
||
- Mouse support
|
||
|
||
Maybe:
|
||
|
||
|
||
|
||
|
||
|
||
Page Thirteen.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
- Do we want to be able to patch disk sectors directly? I'm not
|
||
sure. That's not really the PURPOSE of HexEdit, but it wouldn't
|
||
be too hard to do. How about a directory editor? Unerase? Maybe
|
||
as a separate product?
|
||
Feedback! Need user feedback!
|
||
|
||
Well, Frank Lenk (senior editor of Computing Now... wonderful magazine)
|
||
recently put up his list of "Bare Necessities" for the applications of
|
||
today. Well, HexEdit holds up pretty well (once the TurboVision release
|
||
hits the streets). The point in Mr. Lenk's editorial that really hit
|
||
home for me was his including "A Future" in with his vital attributes.
|
||
That's something that not everyone thinks about when they buy software.
|
||
One example of an excellent product that appears to have no future is
|
||
Borland's Sprint. I'm one of the many people who bought Sprint only to
|
||
find out that it's basically a dead product now. Sure it's powerful, and
|
||
it does an excellent job with text documentation (such as the
|
||
documentation you're reading right now) but if there's no new development
|
||
happening, then how long is it going to STAY powerful? What about
|
||
printer drivers, etc? The point of my meandering is that I've sweated
|
||
blood over HexEdit, and there's more where that came from, so you can
|
||
rest easy. HexEdit will continue to evolve for as long as the money
|
||
keeps rolling (limping, crawling) in.
|
||
|
||
|
||
14 Revision History
|
||
|
||
|
||
(Reverse chronological order)
|
||
|
||
|
||
Version 2.1: April 20, 1991
|
||
|
||
A vast improvement over 2.0.
|
||
|
||
New Additions:
|
||
|
||
- The HEB.BAT file was added to pacify the people who REALLY want to
|
||
have .BAK files.
|
||
|
||
- F8 now toggles a text mask which, when active, causes all non-text
|
||
characters to appear on the screen as a period '.'.
|
||
|
||
- ALT-N now jumps to next found item.
|
||
|
||
- ALT-P now jump to previous found item.
|
||
|
||
- ALT-X is now the panic button (previously ALT-P).
|
||
|
||
- ALT-A now pops up an ASCII table.
|
||
|
||
- ALT-S will call a fully swapping DOS shell (swaps to EMS if
|
||
available, otherwise swaps to disk).
|
||
|
||
|
||
|
||
|
||
|
||
Page Fourteen.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
- Backspace now works in a much more intelligent way, rather than
|
||
just being the same as a back-arrow.
|
||
|
||
- The FastRep program was added as a very vertical-market, niche
|
||
application that I happened to have lying around and thought
|
||
someone might be able to use.
|
||
|
||
- I tossed in KEYLOCK as well, even though it has nothing to do with
|
||
HexEdit at all (but it's SO nice to add to your autoexec.bat to
|
||
shut off the bleedin' NUM lock).
|
||
|
||
- Windows support has been greatly expanded with a PIF file, two
|
||
icon files, and enough rewrites to let HexEdit run in a graphic
|
||
window. Pretty nifty.
|
||
|
||
- DESQview support has been enhanced as well. HexEdit is a
|
||
DESQview-aware application, and there is a .DVP file included.
|
||
|
||
Fixes:
|
||
|
||
- That weird bug regarding searches being SO SLOW under Windows was
|
||
solved (it was Windows' fault).
|
||
|
||
- The search engine was heavily modified to remove some intermittent
|
||
problems dealing with finding null characters, and finding strings
|
||
that overlapped sector boundaries.
|
||
|
||
- The UNDO engine was rebuilt from the ground up. It now works so
|
||
fast and clean it even amazes ME.
|
||
|
||
- A really dumb bug was found (sharp eyes, Craig!) in the Jump
|
||
routines. If you used Shift-F2 (for jump by sector) and selected
|
||
to jump to the next found item, it wouldn't jump there in all
|
||
cases. Dumb dumb dumb.
|
||
|
||
- Documentation overhauled.
|
||
|
||
|
||
Version 2.0: February 16, 1991
|
||
|
||
The official release! Very clean... no known bugs. You can now abort
|
||
from searches and UNDO activities. Percent-done boxes were added to the
|
||
UNDO engine, so now everything that can possibly take more than a second
|
||
or two now has a percent-done box and the facility to abort the process
|
||
cleanly. Also added was the /MONO parameter, and the RESTORE function in
|
||
the configuration. I think I'll take a break from programming HexEdit
|
||
for a little while to work on my next big project (still top-secret, but
|
||
it will make efficient programming a MUCH more enjoyable experience).
|
||
|
||
|
||
Version 1.9g: February 9, 1991
|
||
|
||
There were actually fairly few bugs to fix for this release. There was
|
||
a weird bug that only appeared if you were editing files with sizes that
|
||
|
||
|
||
|
||
Page Fifteen.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
were evenly divisible by 256. Go figure. I modified the exit prompt to
|
||
revert to the old default of 'Y' instead of 'N'. The position bar things
|
||
on the main screen (the ones that show you what byte you're on... you
|
||
know, those hex things in highlight at the side and top of the screen?)
|
||
were a bit hard to track if you were far away from them, so I added more
|
||
at the right and bottom of the screen. One or two minor things were
|
||
improved, but basically this is version 1.9e with a minor facelift. (1.9f
|
||
was not released). Also added was the 'Panic Button' (Alt-P) which will
|
||
automatically undo all of your changes, and kick you out to DOS with the
|
||
file in it's original, pristine condition (providing you haven't PURGED
|
||
the UNDO log). Also, I swapped F2 and SF2, so that F2 is now Jump by
|
||
Byte, rather than Jump by Sector. I did this because Jump by Byte is
|
||
used MUCH MUCH more often. (Jump by Sector was F2 by inertia... it had
|
||
been F2 for over five years..). I went over HexEdit with the Turbo
|
||
Profiler, and I found that HexEdit spends about 85% of it's time waiting
|
||
for user keypresses, and that's when the a key is HELD DOWN. Quite
|
||
efficient. The search could use a minor tweak, though. So could the
|
||
UNDO function. Using Turbo Pascal 6.0, I was able to compile HexEdit to
|
||
a 57K executable!!! Unbelievable! I am... speechless.
|
||
|
||
|
||
Version 1.9e: February 3, 1991.
|
||
|
||
I've managed to streamline the code further; we're down to about a 70K
|
||
executable file. A few programming glitches were exterminated, including
|
||
one miserable bug that still amazes me to this minute. The previous
|
||
version of HexEdit, 1.9d, required a math coprocessor. I don't know WHY,
|
||
but it did. I guess I just left the compiler switch in the wrong
|
||
position. Anyway, because I HAVE a coprocessor, I never noticed this
|
||
flaw. Things like this BUG me. The other things that were fixed
|
||
included some idiosyncrasies regarding saving log files, and some general
|
||
cursor movement stuff. The cursor routines were updated so that if
|
||
you're at the top of a page and cursor up, you will automatically PGUP.
|
||
The net effect is that you can scroll through a file with the cursor.
|
||
|
||
|
||
Version 1.9d: January 30, 1991.
|
||
|
||
Several bugs were fixed in this release. The major ones were in the
|
||
UNDO engine which I thought worked like a charm (of course). Many minor
|
||
changes were also implemented, including changing the 'Exit to DOS'
|
||
prompt to default to no, and changing the F3/F4 key assignments.
|
||
Documentation updated. I rewrote a lot of the code to more heavily
|
||
encapsulate it. HexEdit now consists of TEN source files. Every major
|
||
function (jump, search, undo, etc.) each has their own unit. Makes for
|
||
faster compiles. Anyway, this rewrite caused a few things to glitch, but
|
||
I think I have them all sorted out. We're up to 7000 lines of code now,
|
||
with almost 3000 lines of it being HexEdit-specific, and the rest
|
||
library-specific. Changed default colours to something that looks pretty
|
||
bland, but is visible for monochrome users without being utterly
|
||
disgusting in colour. Previously, monochrome users were right out of
|
||
luck because they couldn't even SEE the prompts and stuff in the
|
||
configuration section. Now, if they screw up the colours they only have
|
||
themselves to blame...
|
||
|
||
|
||
|
||
Page Sixteen.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
Version 1.9c: January 26, 1991.
|
||
|
||
I'm home from work, and I can see that there were quite a few minor
|
||
things wrong with the UNDO. They're fixed. This release will be the
|
||
official BETA release for this week. I've fixed some glitches in the
|
||
configuration section that were driving me absolutely around the bend.
|
||
It's weird how sometimes the small bugs can drive you nuts when the big
|
||
ones get fixed fast. I re-coded the base conversion procedure and saved
|
||
25K in the bargain. I'm not sure if I like it as much, though. Figures.
|
||
I've decided to release only one BETA version per week, that way I don't
|
||
have people pointing out bugs that I've already fixed (for a while there,
|
||
I was always a version or two ahead of the BETA testers).
|
||
|
||
|
||
Version 1.9a: January 26, 1991.
|
||
|
||
Added UNDO, and BYTE JUMP. Modified the screen layout to display total
|
||
sectors and total bytes. This release was VERY hurried. I got the undo
|
||
working about a half an hour before I had to be at work... I started the
|
||
upload and RAN. I knew it worked for the easy test instance I gave it,
|
||
but I did no real testing. I'll be more considerate for future BETA
|
||
releases (I mean, even the word 'BETA' doesn't excuse THAT many sins...)
|
||
|
||
|
||
Version 1.4b: January 10, 1991 (I took a rest.)
|
||
|
||
Added Search/Replace. Also modified HexEdit to track down what its
|
||
executable filename is, so you can rename the executable with impunity
|
||
and the self-modification still works. Also, the help files and such are
|
||
no longer searched in the path. Everything is looked for in the
|
||
directory in which the HexEdit executable resides.
|
||
|
||
|
||
Version 1.3b: January 5, 1991 (I don't learn, do I? :-> )
|
||
|
||
Added option to select window style (no more totalitarianism for THIS
|
||
guy). Added a procedure to search for any TEXT (ALT-T). I.e. if you're
|
||
looking for text, ANY text, in a humongous file, you can specify to find
|
||
a string of characters at least n characters long, and it will find them.
|
||
Also added a selection for case-insensitive searches.
|
||
|
||
|
||
Version 1.2c: January 3, 1991
|
||
|
||
Fixed a few bugs (yeah. real, ugly bugs). Nothing else really changed.
|
||
This was an emergency release, something I hope not to have to repeat. I
|
||
guess you're kind of asking for it when you release three versions in two
|
||
days.... I documented the call for base conversion as Alt-B, but coded it
|
||
as Alt-H. I must have been tired.
|
||
|
||
|
||
Version 1.2b: January 3, 1991
|
||
|
||
|
||
|
||
|
||
|
||
Page Seventeen.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
Version 1.1b with a face-lift. I've added the ALT-C configuration
|
||
section that modifies the EXE file directly to set colours. Works nice,
|
||
but you can't LZEXE the file until after you have it configured. Ah
|
||
well. If you have UNLZEXE or use PKLITE, then you can always just create
|
||
a batch file that uncompresses HexEdit, runs it, and then compresses it
|
||
again for those few occasions when you need to redefine the colours. Of
|
||
course, you can just set them once then compress it. This would keep you
|
||
going for the rare occasions that you need to reconfigure HexEdit. Also
|
||
added was the ALT-B base conversion utility. A few minor critters were
|
||
cleaned up (the kind that never pop up unless the user does something
|
||
WRONG. I've got to work on the user-hostility HexEdit tends to exude.).
|
||
|
||
|
||
Version 1.1b: January 2, 1991
|
||
|
||
After using my patch editor in a mostly-working capacity for a long
|
||
time, I started a project wherein I had to figure out the Turbo Pascal
|
||
TPU file structure. Well, I spent a LOT of time using HexEdit, and I
|
||
became painfully aware of its limitations. I abandoned my TPU project
|
||
(I've got to get back to it, though) and rewrote HexEdit. Version 1.1 is
|
||
basically a total rewrite, with support for files of any size etc. The
|
||
speedy search was refined, blockreads and writes are used for speed. Many
|
||
of the seams were caulked, and it appears a much more bullet proof
|
||
application.
|
||
|
||
|
||
Version 1.0: circa 1986
|
||
|
||
I first wrote 1.0 way back a few years when I was around 16 years old.
|
||
It sort of worked, and I used it faithfully, but it wasn't distributed
|
||
much. It would only handle files of up to 50K (No, I'm not kidding) and
|
||
it generally handled like a dog. Not bad for a 16-year-old, but not
|
||
great. It took forever to read and save files (files were defined FILE
|
||
OF BYTE... Turbo Pascal version 3.0). I'm not entirely sure why I kept
|
||
using it... I guess because it was free!
|
||
|
||
|
||
15 Legal Crud
|
||
|
||
|
||
As far as hardware compatibility goes, here is the HexEdit standard
|
||
system:
|
||
|
||
- Dell system 310 20MHz 386
|
||
|
||
- Dell DOS 4.01 and Dell OS/2 1.21
|
||
|
||
- 8MB RAM
|
||
|
||
- 155MB CDC Wren III hard drive
|
||
|
||
- Archive tape backup unit
|
||
|
||
- ATI VGAWonder/NEC MultiSync 3D
|
||
|
||
|
||
|
||
Page Eighteen.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
- HP LaserJet III
|
||
|
||
- Roland LAPC Synthesizer card with Rhodes 760 keyboard
|
||
|
||
- Logitech Series 9 bus mouse
|
||
|
||
- Gravis Deluxe joystick and controller
|
||
|
||
- Artist's mannequin
|
||
|
||
- Profile of me, done when I was in grade 2, on the wall.
|
||
|
||
- Two gumball machines.
|
||
|
||
- Me.
|
||
|
||
- A big Pioneer stereo with no less than FOUR remote controls and
|
||
lots of CDs by Enya, Robert Palmer, Billy Joel, Chris de Burgh,
|
||
The Moody Blues, and the B-52's.
|
||
|
||
- A fridge with lots of A&W Rootbeer and President's Choice
|
||
Grapefruit juice in it. (Not even *I* can handle rootbeer first
|
||
thing in the morning..)
|
||
|
||
This is the standard system. If your system doesn't match the standard
|
||
system EXACTLY, right down to the last mote of dust on the nose that you
|
||
crank on one of my gumball machines, then I do not guarantee that it
|
||
works (in fact, I don't even guarantee that it will work on the standard
|
||
system!).
|
||
|
||
I will say, however, that I've never found a system that professes to be
|
||
100% PC compatible that HexEdit doesn't like.
|
||
|
||
Basically, I don't guarantee anything. Every word of this document could
|
||
be a big lie. I could be sitting at home snickering, thinking of all the
|
||
people who wasted their on-line time downloading a patch editor that
|
||
doesn't work. I might ENJOY typing in a thousand lines of sundry
|
||
documentation in the hopes of sucking some poor individual into wasting
|
||
their time with a worthless product. I'm not, and I don't, but I could
|
||
be, and I might.
|
||
|
||
If HexEdit works for you, then great, I'm happy, send me money. If it
|
||
doesn't, then darn, I'm ashamed, send me a letter describing the error
|
||
and I'll do my best to fix it.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Page Nineteen.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
16 Credit where credit is due
|
||
|
||
|
||
The following wonderful folks generously donated some of their valuable
|
||
time to aid in BETA testing HexEdit:
|
||
Neal Sanche
|
||
Monroe Thomas, Sysop of The Keep
|
||
Ben Graham
|
||
Paul Brown
|
||
Craig Harris
|
||
|
||
Thanks to Martin Silva for catching that odd bug in the search algorithm.
|
||
|
||
Supreme thanks to j William Donovan, who taught me Turbo Pascal when I
|
||
was just a wee shaver.
|
||
|
||
I used the TechnoJock Turbo Toolkit windowing and fastwrite library for
|
||
Turbo Pascal 5.5 in the later versions of HexEdit. It is a spiffy
|
||
product, well worth the money.
|
||
|
||
TechnoJock Software Inc.
|
||
PO Box 820927
|
||
Houston, Texas
|
||
77282-0927
|
||
|
||
Also used was Kim Kokkonen's EXECSWAP unit. Turbo Pascal just wouldn't
|
||
be the same without that guy... Kim is the president of TurboPower
|
||
software, which is a major producer of Turbo Pascal programming tools.
|
||
If you program Turbo Pascal and don't own any Turbo Power software
|
||
products, you should seriously look into it. You can contact Kim at:
|
||
|
||
P.O. Box 66747
|
||
Scotts Valley CA
|
||
95066
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Page Twenty.
|
||
|
||
|
||
|
||
|
||
HexEdit 2.1 By Mike Graham
|
||
|
||
|
||
|
||
17 Contacting the Author
|
||
|
||
|
||
I can be reached by mail at the following address:
|
||
|
||
Michael A. Graham
|
||
Box 60036
|
||
U of A Postal Outlet
|
||
Edmonton, AB
|
||
Canada, T6G 2S4
|
||
|
||
Or I can be contacted on InterNet as
|
||
"michael_graham@mts.ucs.ualberta.ca".
|
||
(if that doesn't work, substitute "MGRM" for michael_graham.
|
||
|
||
I can be contacted on the McNamara Software BBS in Edmonton, Alberta,
|
||
(403)433-8375, as "Mike Graham" and am also available under the same name
|
||
at The Keep BBS, also in Edmonton, (403)437-1428. The latest version of
|
||
HexEdit and all of my other PD and Freeware programming efforts will
|
||
always be available on these two BBS's. Feel free to contact me if you
|
||
have suggestions for improvements, or (perish the thought!) a bug report.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Page Twenty-One.
|
||
|
||
|
||
|