New - HP33C Simulator - BETA



#2

OK - For those of you who allways wondered what it was like to use an old HP33C now is your chance to find out!!

It has been a long, long time in the making and may not be of interest to every one but Dave has very kindly placed a copy of a ZIP file containing my own HP33C simulator
here
.

I started work on this a few years after my own HP33C died, and originally it was just intended to be a simple RPN calculator, written as introductory project to keep me interested while I learnt Visual BASIC - but I over the years I've kept on adding features and slowly refining it.

Numeric accuracy is about as good as I can make it given that it uses IEEE floating point underneath and though I'm thinking about writing my own BCD routines I think it is good enough for now, I've been using it for a couple of months and havn't noticed anything obvious - yet. I believe I have trapped all the error conditions properly but know that I have some work to do to handle numeric overflow correctly.

I did add a few 'enhancements' to the original, the backspace key deletes the last digit entered, and the insert key in program mode toggles an insert mode, allowing instructions to be inserted, renumbering GTOs and GSBs as needed.

To run the simulator extract the contents of the ZIP file to a folder and just double click on 'rpncalc33.exe', it will run on Windows NT 4.0, Windows 2K, and Windows XP (but NOT Windows 95/98/Me) providing that the Visual BASIC 5.0 runtime is installed. The program saves it's state in an INI file in the same directory as itself and does not use the registry.

Eventually I intend to release this simulator under the GPL, if possible, but for now am only making the binary available (it did start life as a learning exercise for Visual BASIC, and I'm not really a programmer so I would like to tidy things up a bit more first - you will have to be patient).

Please treat this as a BETA release, for use entirely at your own risk.

Please post any feedback here.

Mike T.


#3

neat! i particularly like the way it just works from the keypad. although mouse clicking is a bit slow, but hey, the enter key works and so does E.

so how does your treatment of ieee work? for example 61/60 ->HMS gets the right answer and so does stuff like 4.6 - 0.2 - 0.2 - 0.2 - 4.0. but when i take, say sqrt(99) and subtract 9.94987437, multiply and subtract again, i don’t get zero, so there is some non-base 10 appearing in the low digits. but this is my only clue is not really base 10??


#4

Yippee - a bug !!

Well spotted, the problem seems to be that when you key in 9.949874371 the simulator is not accepting the last digit, believing the mantessa to be full - but this only appears to be happening when the decimal point occurs after the first digit. The result, you can't enter '9.949874371', but you can enter '99.49874371'.

Thank you for spotting this ... now to figure out why it is happening, and how to fix it.

My treatment of IEEE floating point results is actually quite simple, a double float has a 16 or 17 digit mantessa, which seems to be just enough to produce the results expected of decimal arithmetic when the mantessa is truncated to 10 digits, rounding the 11 digit up or down as appropriate. If there is any trick to this at all it is remembering to truncate any intermediate results (though I did have a lot of fun with conversions from H.MS to decimal hours which required quite a bit of type coercion as well).

Mike T.

PS - Try 99; SQRT; 10; *; 99.49874371; -

#5

Hello!

Just tried it alas with an older vbrun300.dll, so I can only say: looks quit nice. Would it be possible to restart the minimized application from the system-tray with a single click?

Ciao.....Mike


#6

I based the behaviour on the Windows NT task manager which uses a single right click for the context menu, and a double left click to restore application window. I'm rather surprised that the program runs at all if you only have the Visual BASIC 3.0 runtime installed. Take a look in %windir%\system32 for msvbvm50.dll...

Mike T.

#7

Visual BASIC 5.0 runtime can be found on the Microsoft web site here.

Mike T.


#8

Thank you very much for that link. Alas I am not allowed to use it at work. I'll try at home and let you know.

BTW - for those on this list interested in computer history, see this emulator: http://www.cary.demon.co.uk/acorn/acornEmulator.html
(Once more the name Mike Cowlishaw pops up, he coded the interpreter language REXX _after_ the documentation of it was written!)

Ciao.....Mike


#9

Is this the same company that created the BBC Micro computer ? All my teens...


#10

Yep, seems so. One link shows devices that used this CPU. Reads like a sellers list on a electronics flea market. They say the MPS6502 is still build today. But - frankly spoken - up to now I can not see any use of such a machine other than educational purpose. Anyone here with a hint point me to the right direction?

Ciao.....Mike


#11

The now famous ARM processor architecture is nothing else than an "Acorn Risc Machine", the processor behind later Acorn computers. The company specialized on processor *designs* later and sold intellectual property to manufacturers like Intel (Xscale architecture).

#12

I think the chronology was something like this


1979 Acorn System 1 - 6502

1980 Acorn Atom - 6502

1981 BBC Model A/B - 6502 (+ 6502/Z80)

1983 Acorn Electron - 6502

1986 BBC Master - 6502 (+ 6502/Z80)


Spot the pattern, someone at Acorn liked the 6502, guess I did too come to think of it, though I never did quite get used to page zero addressing modes...

Mike T.

#13

Well, first I looked for DLLs starting with "VBRUN" and did not find a version 5 of it. At home I installed it from the link you gave us here. But still no VBRUNxxx.DLL found. Aha, seems since version 5 the DLLs have a new name. There now are MSVBVM50.DLL _and_ MSVBVM60.DLL -- but your simulator still has some slipups: decimal point not operable (1,2 from keybord or mouse results in 12), ->HMS does not care for decimal places. Then I gave up.

The behaviour is the same on XP (w/o service pack 2) and W2kP. BTW: in your EXE I found a directory mentioned that does not exist on my PCs: E:\BIN\System32

Ciao.....Mike


#14

Do you expect 1.2 or 1,2 ?

Given you write 1.2 as 1,2 I suspect that you have the same locale issue as Michel Beaulieu...

The good news is that I've figured out how to detect which number format to use depending on your locale settings.

Mike T.

#15

Hi, i have already visual studio 6.0 installed but when i run the emulator, it start well but as soon i push a number on the keyboard, i got "Run time error 13" and the program close. What is it suppose to be.

Michel

Edited: 12 Apr 2005, 4:31 p.m.


#16

Thank you for you feedback, I've had to think about this one a bit ... Even though you have Visual Studio 6.0 installed I think you must have the Visual BASIC 5.0 runtime installed as well for the program run at all.

You didn't say which version of Windows you are using - so my best guess (for now) is that you are using Windows 2000, in which case the following Knowledge Base article may be of some relevence as the buttons and display are custom controls.

http://support.microsoft.com/kb/297692/EN-US/

Mike T.


#17

I have windows XP. The problem arise "only" when i push numbers, decimal point and EE. All other keys seems to work properly. I will try to install runtime 5 insted of runtime 6.

Michel


#18

I install runtime 5 and still not working. Even on another machine running win XP.


#19

Michel - This was a tough one!

I'm pleased to say that I was able to reproduce the problem - eventually. I suspect that your locale (country settings) are set to use a comma as a decimal separator (and point as a digit separator). This results in an error when converting any digits you enter to a floating point value since the CDBL function is locale aware, the good news is that I think I've figured out a solution - which will also result in the display being formatted correctly depending on your regional settings.

To confirm my suspicions this could you tell me if the simulator displays Pi as 3,1416 or 3.1416?

Mike T.

PS If you want to use the simulator it should work if change your regional settings...


#20

Wow! you are as great as a debugger! I change my decimal from , to . in windows and the program works great!

You were right, i live in Québec and the separator is officially , for numbers...

Thanks for your debogging and your great program.

Michel


Possibly Related Threads...
Thread Author Replies Views Last Post
  HP33C help with display madjack 3 410 12-05-2013, 05:58 PM
Last Post: madjack
  HP-70 simulator updated Willy R. Kunz 3 415 11-26-2013, 08:20 PM
Last Post: BShoring
  where can I get the HP Prime simulator? John Ioannidis 4 406 09-27-2013, 12:28 PM
Last Post: John Ioannidis
  OT: EDSAC simulator Mike (Stgt) 2 308 08-20-2013, 07:27 AM
Last Post: Mike (Stgt)
  Yet another simulator Mike T. 3 375 08-05-2013, 07:10 AM
Last Post: Namir
  HP-16C simulator fhub 12 795 06-30-2013, 10:14 PM
Last Post: Robert Prosperi
  HP-15C Simulator / Release 3.2.00, Build 5319 Torsten 10 712 05-11-2013, 05:19 PM
Last Post: Thomas Klemm
  OT: Beta testers for the dark side of the universe Joerg Woerner 7 466 01-28-2013, 12:20 PM
Last Post: Geoff Quickfall
  Christmas tree simulator on HP39gII Mic 0 205 12-08-2012, 07:19 AM
Last Post: Mic
  CAS beta testers wanted Oliver Unter Ecker 5 420 07-30-2012, 07:11 AM
Last Post: Oliver Unter Ecker

Forum Jump: