Menu

Tree [333776] master /
 History

HTTPS access


File Date Author Commit
 common 2014-05-27 Ryan Harkin Ryan Harkin [333776] Add QT version of HexTool as initial commit
 qt 2014-05-27 Ryan Harkin Ryan Harkin [333776] Add QT version of HexTool as initial commit
 qtc_packaging 2014-05-27 Ryan Harkin Ryan Harkin [333776] Add QT version of HexTool as initial commit
 win32 2014-05-27 Ryan Harkin Ryan Harkin [333776] Add QT version of HexTool as initial commit
 qt.pro 2014-05-27 Ryan Harkin Ryan Harkin [333776] Add QT version of HexTool as initial commit
 readme.txt 2014-05-27 Ryan Harkin Ryan Harkin [333776] Add QT version of HexTool as initial commit

Read Me

                  HexTool Release Note

                    Version 1.7.0.0

                    14 September 2005


1. COPYRIGHT AND CREDITS
------------------------

HexTool (c) Ryan Harkin 2001-2005
HexTool is written and maintained by Ryan Harkin.


2. CONTACT
----------

Currently, the project is hosted on harkin.org:

	http://harkin.org/hextool

Any correspondence, support or otherwise, should be directed there.



3. VERSION NUMBERING
--------------------

The version numbering uses quite a common format:

	major.minor.build.patch

*major - The "generation" of the product.
         Increments whenever the project is changed radically, e.g. re-written
*minor - Increments as new functionality is added, e.g. add a new dialog box control
*build - Increments whenever I release the code from my machine - not for every test build!
*patch - This should always be zero.   However, if a fix is added to an older version,
         this increments to show that it was added after newer versions were made available.
         (I don't envisage using this, but you never know!)


4. VERSION 1.1.1.0
------------------

This is the first version of HexTool.

It is quite simple to use. Just type a number into one of the edit boxes and the other box shows the converted value.


5. VERSION 1.2.1.0
------------------

I've added binary checkboxes to the dialog box.

To use HexTool, type a value into one of the edit boxes and the other edit box will update and then the binary digits will be updated.

Toggle a binary digit and both of the edit boxes will be updated.

I couldn't figure out how to make the edit boxes for the binary digits toggle when you clicked in them, so I've added check boxes above each digit so that the value can be manipulated by the bit.


6. VERSION 1.3.1.0
------------------

I've added a signed checkbox so that negative values can be represented in decimal.

6.1 KNOWN BUGS
-------------

Handling of negative numbers vian the binary digits is not implemented very well.

If you set the decimal value to -1 (0xFFFFFFFF, all ones) and then clear a single digit, the value is set to zero.


7. VERSION 1.4.1.0
------------------

Added the 8/16/32 bit radio buttons, but I haven't coded them up.
This code was abandoned because I decided to re-work the binary digits, so the bug from the previous version with negative numbers and the binary check boxes has not been fixed


8. VERSION 1.5.1.0
------------------

Changed the binary digit representation from a check and edit box combination to buttons with dynamic labels.

Fixed the bug with negative numbers and binary digits.


9. VERSION 1.5.2.0
------------------

I've finally implemented the 8/16/32 bit radio buttons!

Any binary digits that are no longer used are set to the label "." and will not do anything - even though you can still press them.  I wanted to grey them out, but I can't remember or find the functions that do it now.  I have done this before, a long time ago, so I will have to dig out my old code and see how to do it.

Added a "not" button to do a ones compliment of the number entered.

Added a "+" and "-" button so that you can increment the value easily.


10. VERSION 1.5.3.0
-------------------

It looks like the previous version, except it isn't!  There's now a maximise button.

Pressing the maximise button removes the dialog box and re-draws a new dialog box with extra functions in it.  Pressing it again re-displays the original dialog box without the extra functions.

Functions added:
* Registers - You can store values in three "registers" A, B, and C.  This is how old calculators used to work.
* Logical Operators - AND, OR and XOR  
* Mathematical Operators - Add, subtract, divide and minus.  I even added protection for divide by zero.  Dividing by zero always gives -1 - it's better than crashing!
* Shift Operators - left and right shift each register

This functionality is only experimental.  I considered making this more like a calculator where you enter one number, press a function, enter another number and then press equals to get the result.  However, it was easier to implement registers!

Views on this subject appreciated....

I might try to implement a calculator style interface and see how it works.


11. VERSION 1.6.0.0
-------------------

An extensive re-write of the code, splitting the code between generic code and Windows specific code.  This paves the way for a future Linux port.

Code is now layered so that each exported function is contained in its own file, with any private functions contained within this file as static functions.  This simplifies header file dependancy and (hopefully) makes the code more maintainable as changes are isolated to specific source files.

Changes to existing features:
* Moved the "+" and "-" buttons so that tabbing between Hex and Decimal entry isn't effected and the tab order is consistent.
* Tidied up the logical and mathematical operations to make them more intuitive

New features:
* ASCII - values can now be entered and displayed in ASCII
* Added a command line parameter to allow HexTool to start in full mode of minimal mode.
  To start HexTool in minimal mode, use without a parameter of use the parameter 0.  Any other parameter will start HexTool in full mode.
  Examples:  "HexTool 0" and "HexTool 1".


12. VERSION 1.7.0.0
-------------------
Added the IP Address fields and the "flip" button.

The IP Address fields allow you to enter up to 4 decimal values in the range 0..255.  If the user enters 3 valid digits the focus is moved to the next IP address field, or back to the first field if we were at the last one.

Currently, if the user enters a value greater than 255 then the focus is not moved and the user can continue entering digits.  I couldn't think of a quick way to fix this without zero-ing the field, which I thought was less than idea.

The "flip" button performs an endian swap, where (in 32 bit mode) the original value looks like this:
	0x01020304

And the flipped value becomes 0x04030201.  In 16 bit mode, 0x0102 becomes ox0201 and in 8 bit mode, nothing happens!


13. VERSION 1.7.0.1
-------------------

Fixed bug #3296496: "entering signed 0x80000000 results in -0, which is wrong. signed 0x80000000 is -2147483648", reported by Danny Schneifer (digitalus).

From version 1.7.0.0, I changed updatedisplay.c, function UpdateDisplay.

Line 205 was:

case NUMBITS_32: SetDlgItemInt ( hDlg, IDC_DECIMAL,
(int) value, TRUE ); break;

But I've changed it to this:

case NUMBITS_32:
{
char text [16];
wsprintf(text, "%d", value);
SetDlgItemText ( hDlg, IDC_DECIMAL, text);
}
break;

It seems that if I call SetDlgItemInt with 0x80000000 and set the value as
a signed number, Windows decides to print -0.


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.