HP-Emulator 64 bit program versions


Hello, there was a thread from Mike about running Emu42 on Win7-64bit some weeks ago. Three years ago I began making my emulators x64 compatible. Last week Richard Garner tried a x64 bit version of Emu42 on his Win7 64bit PC. A new session emulating a HP-42S worked, but when loading a state file created with the Win32 version of Emu42 the x64 version freezed. I detected the reason for this behavior, which is a design problem of the original Emu48 emulator and was handed down to Emu28 and Emu42.

So you shouldn't create x64 versions base on the current published sources of Emu28, Emu42 and Emu48 by yourself.

Meanwhile I fixed the design problem in my beta versions of Emu28 v1.20, Emu42 v1.13 and Emu48 v1.50. This allowed me to make a benchmark test with Emu48. Several years ago I wrote UserRPL program splitting a real number into it's prime factors. Which a large prime number the program runs about 3 minutes depending on the PC hardware.

On my test computer with Win7-64bit Enterprise the x64 version of Emu48 was about 8% slower then the x86 version. Because Emu42 x64 takes no advantage from the larger address area, it makes IMHO no sense to publish the x64 versions.



Edited: 25 Feb 2010, 4:57 p.m. after one or more responses were posted


Christoph, just out of curiosity: Alignment problems? Data size differences (long, int?)


Christoph, just out of curiosity: Alignment problems? Data size differences (long, int?)

A structure hold the internal state of the CPU, but also contain three memory pointers to the port memory. These pointer grow up from 4 bytes in the x86 to 8 bytes in the x64 version. It's also possible that these pointers moved too, to adjust them to an aligned address.

This "CPU structure" is part of the calculator state file, so the state file format differed from the x86 to the x64 version and caused the described problems.



No surprise that the extra address space isn't of any use.

The wider registers could be useful -- the saturn is 64 bits internally (at least sort of). Making use of these will likely require extra effort and the benefits are unlikely to be huge.
More so given the weirdness of the saturn's register fields etc.

- Pauli


Thanks for EMU*.

Possibly Related Threads...
Thread Author Replies Views Last Post
  WP-34S (Emulator Program Load/Save) Barry Mead 1 701 12-09-2013, 05:29 PM
Last Post: Marcus von Cube, Germany
  HP Prime: run a program in another program Davi Ribeiro de Oliveira 6 1,098 11-11-2013, 08:28 PM
Last Post: Davi Ribeiro de Oliveira
  bit manips on WP 34S Kiyoshi Akima 8 1,128 10-06-2013, 06:25 AM
Last Post: Paul Dale
  Where to the 32-bit version of User Code Utiltiy for HP-41 ? Olivier (Wa) 2 640 09-26-2013, 01:55 AM
Last Post: Olivier (Wa)
  OT: Simulating a TI calculator with crazy 11-bit opcodes Egan Ford 8 1,259 08-13-2013, 12:06 AM
Last Post: Paul Dale
  WP-34S Overlay - making it a bit more permanent? Marcel Samek 1 511 07-05-2013, 09:02 PM
Last Post: htom trites jr
  HP-41 New versions of your favorite modules - with an AOS twist :-) Ángel Martin 13 2,125 06-21-2013, 01:29 PM
Last Post: Diego Diaz
  HP-41CL & NoV(-64): Race condition? Geir Isene 11 1,559 05-03-2013, 01:59 PM
Last Post: Diego Diaz
  [Clonix/NOV] NoV-64 backwards compatibility Doug (NYC) 0 423 01-20-2013, 11:21 AM
Last Post: Doug (NYC)
  NOVRAM 64 / HEPAX bug? M. Joury 2 558 11-03-2012, 02:49 PM
Last Post: M. Joury

Forum Jump: