HP-Emulator 64 bit program versions



#2

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.

Regards

Christoph

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


#3

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


#4

Quote:
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.

Christoph

#5

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

#6

Thanks for EMU*.


Possibly Related Threads...
Thread Author Replies Views Last Post
  WP-34S (Emulator Program Load/Save) Barry Mead 1 711 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,105 11-11-2013, 08:28 PM
Last Post: Davi Ribeiro de Oliveira
  bit manips on WP 34S Kiyoshi Akima 8 1,132 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 648 09-26-2013, 01:55 AM
Last Post: Olivier (Wa)
  OT: Simulating a TI calculator with crazy 11-bit opcodes Egan Ford 8 1,276 08-13-2013, 12:06 AM
Last Post: Paul Dale
  WP-34S Overlay - making it a bit more permanent? Marcel Samek 1 520 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,155 06-21-2013, 01:29 PM
Last Post: Diego Diaz
  HP-41CL & NoV(-64): Race condition? Geir Isene 11 1,568 05-03-2013, 01:59 PM
Last Post: Diego Diaz
  [Clonix/NOV] NoV-64 backwards compatibility Doug (NYC) 0 431 01-20-2013, 11:21 AM
Last Post: Doug (NYC)
  NOVRAM 64 / HEPAX bug? M. Joury 2 567 11-03-2012, 02:49 PM
Last Post: M. Joury

Forum Jump: