Sunday, February 19, 2006

Version 0.7

I just finished version 0.7. It contains the usual logic functions for the HEX, OCT and BIN modes. I also started to move some of the panel code out of the InitializeComponent() function which is 'managed' by the resource editor. This will later allow me to implement and use custom buttons.

Unforunately, I wasn't able to upload the new version to filelodge, which seems to be massively overloaded. I already had problems with the site in the past. I now uploaded to http://wkccp.com/ but am looking for a better solution for file storage.

I'll not work on the calculator for another week because I'll be in the US for a corporate engineering meeting.

Saturday, February 11, 2006

Version 0.6

I did some more testing, still not much though. Nevertheless I made a new version. The only new functionality is the integer modes (HEX, OCT and BIN) now support three precisions: 32bit, 16bit and 8bit. The old problem of the screen limiting the stack output to 21 bit remains though. I'll address this later. There's another minor annyoance I noticed: the integer precisions can only be changed by toggling through them from 32bit to 16bit to 8bit. In the case of a number being on the stack which is valid for 16bit but not for 8bit, and you want to change to 32bit, you cannot do this at the moment, since you would have to go over the 8bit mode which gives an out-of-range error.

Next things I want to address are the constants and then the user conversion modes as well as the user definable constants. But first I'll be off for one week of holidays!

Friday, February 10, 2006

Progress

I now implemented three different precisions for integer values, the idea being that when you switch to either HEX, OCT or BIN mode, you can restrict the values to being 32bit, 16bit or 8bit. The functionality is not well tested yet though, which is why I didn't make a release yet.

Thursday, February 09, 2006

Version 0.5

I implemented the factorial fuction this morning and also fixed two bugs. The more serious one made the error messages not show up anymore. You can download version 0.5 by clicking on the download link on the right.

Since I'm using double values the factorial function is good until factorial of 170.

Wednesday, February 08, 2006

Version 0.4

I just uploaded version 0.4. Main new feature is the conversion mode. You activate it by changing the base from DEC to CONV in the Main menu. The Function menu will then change to Convert.

At the moment, the conversion mode offers a few standard conversions. I'll also implement user conversions though (because I want them for currency conversion ;-).

If you look at the above screenshot:
The top four buttons are the categories, you can toggle available categories by pressing the '1/2' button.
The 'Ref' button will let you change the current unit without actually doing a conversion.
Press one of the Unit buttons to convert the current stack argument to that unit.


When you switch back to the DEC mode from the CONV mode, the last conversion you made will be available as a fast conversion on the Function form.

For a complete list of changes in this version see the release history under the download link.

Tuesday, February 07, 2006

About Subversion and special characters

I had a nasty problem with subversion right from the start and finally have a solution for it. As always, the solution is quite obvious when you finally have it.

The problem with subversion is that it treats files with UTF16 characters as binary. Because I had a single such character in one of the source files (the square root character '√'), subversion treated the file as binary which as a consequence doesn't let you diff the file anymore.

I first thought I could use C# partial class feature which lets you define different parts of the same class in different files, but the version of C# (or of the .NET framework) I'm using doesn't seem to support it yet.

The solution is much simpler though. There's a special escape sequence to embed unicode characters into a string: '\xhhhh'. So '√x' becomes '\x221ax'.

Sunday, February 05, 2006

Progress

I'm now using double values for decimal and 32 bit integer values for hex, oct, bin. Nevertheless, with the currently used font for the stack window I can only show 21 bits when in binary display mode. I'm still looking for a satisfactory solution for this problem.

Apart from this I started implementing the conversion functionality. There will be some standard conversion categories plus user definable categories with 12 possible 'units' each.

Friday, February 03, 2006

New ideas

I now decided to build in conversion functions and constants. Currently the idea is to make constants available by pressing the 'Func' softkey followed by the 'Const' softkey (at the moment that softkey is unused). For conversions I will most likely introduce a new mode on the Menu form which will replace the function softkey by a conversion softkey. I also introduced some colours to group related buttons together and make the connection to the respective indication button at the top.

Thursday, February 02, 2006

Version 0.3

I finished verison 0.3 yesterday evening. All numeral systems are now implemented, though Oct and Bin are still limited. I also implemented storing of the settings, except for the stack which will come later.

What's missing?

  • Logic functions
  • I want to build in currency conversion
  • Maybe other conversions
  • Maybe constants
  • Maybe undo
  • storing the stack