HexEdit Home Page
|Expert Commercial Software
The company was originally started for our software contracting business. It is now mainly used for Hex Edit.
The company name does not mean anything. It was decided on the spur of the moment when we found out the name we wanted was already taken.
What's in a Name? (HexEdit)
In mid 1998, I (Andrew) had created a basic hex editor which was then called HexView. I thought HexEdit was an obvious name but suspected it was probably already taken. I did a quick search at Altavista and was surprised to find only UNIX and Macintosh software with that name. So I spent the next 6 months integrating that name into the program and the web site.
In January 1999 HexEdit 1.0 was released. (See the History section below.) It was then we discovered that a lot of other people had had the same idea for a name at about the same time. There were also some older MSDOS and Windows programs with the same name.
I am not sure whether the choice of name was a good thing or a bad thing, but probably bad. A lot of people have discovered the product due to using a different program called HexEdit. On the other hand most of the other programs called HexEdit have been of a low standard and I believe this has put a lot of people off trying it.
I created the web site in late 1998 and early 1999 (see the history section below). It is basically as you see it today, but was originally hosted on Tripod (free web hosting service). I started off writing it in raw HTML, but was given a copy of Frontpage 97, so I used that to finish it off and to create the discussion group.
The Background Image
Creating the background image (the light grey hex digits behind this text) took most of my time. The steps below sound simple but it took a lot of time and trial and error, particularly to get the image edges to line up when it was tiled. This is how I created the background image using Micrografx Picture Publisher:
In July 1997 the company I work for seemed to be moving away from C and XVT and towards C++ and MFC. I started reading "The Revolutionary Guide to MFC Programming" by Mike Blasczak, which is an excellent book despite its name. In my work we often use a hex editor to look at all sorts of files, and this book had an example hex viewer program called HexView.
HexView was very disappointing, having severe limitations on the size of files you could view for one thing, but I guess it was only a demo. I decided to rewrite it. This afforded me the opportunity to develop my skills in C++, Windows and MFC. I had been reading about C++ for 10 years but never more than dabbled with it. I had also done the occasional thing with Windows 3.1 and Windows 95 API, but nothing with MFC.
The core of HexEdit was surprisingly easy to create. The one thing that took most of my time was fiddling with the display: scrolling, mapping modes and scrollbars. A major problem was that it turned out that the file size limitations in HexView were due to problems with Windows itself -- there were undocumented limitations apparently due to the use of 16 bit numbers for dimensions. Several times I had to redesign the scrolling and display code.
Also a Windows book I had read earlier emphasised strongly how important it was for code to be mapping mode independent. The MFC examples also implied that you should not use MM_TEXT so that everything was the right size when printed. I spent a lot of time trying to get Hex Edit working with different mapping modes but when using scroll bars there was always a point where rounding errors caused a missing or extra line of pixels. Eventually I gave up on mapping modes for the window display and just used MM_TEXT on screen but used MM_HIENGLISH for printing.
Around the end of 1997, and early 1998 I added the core editing engine. (This was the first of the last 5 years that I have spent most of my Christmas holidays working on HexEdit.) Now the program was an editor not just a viewer. During the year I used the program and added the occasional new feature, mainly out of necessity.
During 1998 I had found HexEdit to be useful and reliable so I decided to give it away as freeware so that others might make some use of it too. During the 1998 Christmas/New Year break I added keystroke macros and prepared 1.0 ready for distribution.
Also at this time I tried dabbling with a web site design and HTML and created the HexEdit web site that was then hosted by Tripod. (Most of the time was spent in Picture Publisher creating the background! Note that if you convert the hex of the background to ASCII, it does not say "I am the devil", as has been suggested.) This is basically the same web site you see here today.
I did nothing with HexEdit during most of 1999 but during the year got a lot of email from people wanting this or that feature but mainly saying how fantastic they thought the program was. I was keen to add more features to HexEdit (mainly some that I wanted but also some suggested by users), but I could not justify the time I would need to spend on it. After the enormous favourable response (without any marketing effort) I decided that maybe we could sell it as shareware, which hopefully would go some way to justifying the time I wanted to spend on enhancing HexEdit.
Again around Christmas and the start of the year (2000) I put a lot of work into HexEdit. This was mainly in adding background searches, and the first try at a hex calculator.
In July 2000 we released HexEdit 1.1. All of the major features added in this version were requests by users of 1.0, except for background searches which was my own idea. I thought that even if no-one else bought it at least those people whose enhancement requests I had addressed would be obliged to buy it.
The hex calculator was not quite ready for 1.1 but appeared in version 1.2. This was requested by a user, but as it turned out was far more than the user had asked for.
About Christmas 2000 and into 2001 I incorporated the BCG Control Bar library which added some nice features, particularly the customization options. HexEdit 2.0 was released in March. After that, the main work has been in redesigning the core display engine to allow editing of huge files. HexEdit 2.1 (released in the end of June 2001) is the only hex editor we know of that can edit files more than 2^32 bytes in size.
Late 2001 and early 2002 worked on Date properties page and started template system. HexEdit 2.2 released in March including major work on display options and printing.
Late 2002 and early 2003 completely redesigned search (and replace dialog) and much of underlying code. Polished template system. HexEdit 2.5 released in February.
HexEdit 2.6 released in January. Work on 3.0 well advanced including disk editor.
HexEdit 3.0 released in January after much work during 2004.
Template system greatly enhanced. HexEdit 3.1 released in November.
Work on 3.2.
Work on 3.3.
Work on 3.4 and 3.5.
Finish 3.5. Start port of code to MFC9 (HexEdit 4.0).
Finish 3.6. Finish port to MFC10/VS2010.
Released HexEditPro 4.0.
Released HexEdit 4.0 (free version).