HP Forums

Full Version: Question to Mike T
You're currently viewing a stripped down version of our content. View the full version with proper formatting.


I like very much the images you have produced for the various calculators. I am asking you for your permission to use these images to implement emulators using Visual Basic 2008 (.Net 3.5). I will write the code either from scratch or borrow/use code from my own existing HP-67 emulator. I will mention, in my source code, your name as the source of the images. Like your emulators, the ones I will create will be freeware.

If you agree, I would like you to send me an email stating that you grant me permission to use your images to implement ,Bet-based freeware emulators.


Feel free - you are welcome to use any of the images, custom controls or code in you own project(s) providing you comply with the GPL....

I don't know if you can use a VB5/6 custom control in a directly VB.net project but I suggest you might try that first as the images are actually screen shots of the Visual BASIC forms which are drawn using a custom button control, designed to behave like the real thing! This allows the colour/text to be changed by the program and since they are 'drawn' dynamically the plan is eventually to make the calculator windows resizable...

Unfortunatly my own code makes entensive use of control arrays which are not avalable in VB.net.

Mike T.

Hi Mike,

Using custom controls is interesting. My approach is to place transparent picture controls over the images of the buttons and switches, and then handle the click event on these controls. My implementations are not resizable.

Thank you for your generosity for letting me use the images.

I envisage creating possibly two versions for each model. The first would perform closely to the original implementation (assuming .Net does not limit me). The second version would be an extended version that packs more functions, memory registers, and program steps.

As for managing programs, I am very tempted to replace the key codes with the mnemonics, a la HP-41C. This variation will make it easier to view the program listing, store them to a file, and read them from a file. I know some purists will not like it, but I often ask myself, "Why make life difficult?"

My approach is also object-oriented, which will allow me to create classes for specific parts of the calculator (the display, the stack, the memory registers, program execution, and so on). I have the VB6 code for the HP-67 and I intent to adapt it to the VB .Net implementations.



Edited: 12 Feb 2008, 3:52 p.m.

You might want to consider lifting all or part of the rpncalc class and math modules. A lot of the fiddling around needed to round the results to the same accuracy as could be expected on a 'real' HP calculator happens there, and some of it isn't pretty!

Mike T.

PS I've worked out the key codes now...

I was aware of the rounding problems when I did the HP-67 emulator. I am going to study your source code. Anything I use or adapt I will include a reference to your work.

I think HHC2008 should have HP emulators as the main conference theme



Hope you find it useful, be warned though that there are some ghastly hacks in there..

If you do use my code don't forget to comply with the GPL.

Have Fun!!

Mike T.

PS. Just out of curiosity where do you live? (Country/City)

I decided to first adapt my old VB6 implementation for the HP-67 to the new VB 2008. I figured that should keep me busy for a little while.


I decided to first adapt my old VB6 implementation for the HP-67 to the new VB 2008. I figured that should keep me busy for a little while.

How about a Python implementation instead?

Python is truly cross-platform (Mac/Windows/Linux), which is not the case for VB or VB.Net. Python also has a nice Decimal arithmetic library.

Good Luck !!