go41cx
A full HP 41 CX emulator for android.
Importants information at the end of the page -> How to navigate in Android data and find the data used by the App
Step by step settings at LINK
Full memory and X memory.
Timer functionnal, but accuracy not well tested (AF is not emulated).
Automatic save and load of state.
Manage States, Raws, Modules, Overlays, Xmems
exchange with 'import/export' with the 'Download' directory of your SD card.
Use MOD modules format and RAW programs format.
'ON' only active on 'longtouch' to avoid mistakes.
Master clear supported (use 'press back' menu when calculator is off then press 'ON', then press 'back' to release it).
helios printer support
hepax support
41CX or CV (time and x-functions possible)
from x1 up to 'max' speed (around x50 with a 700 MHz phone)
added partial card reader support (only 67 compatibility functions 7... see http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv006.cgi?read=10774)
v1.9.0 (to come)
New printer saving : to initialize : PRT something, quit app (BACK), lauch app
! character corrected, new lcd driver bug corrected (Sandmath) thanks F. Vincent.
more skins and help by Michael Vogel (thanks)
sound still bugged on Android 11 (sorry, major rewrite needed to correct this ... perhaps Google will make the SoundPoll library working again, no problem on android 9 and 10)
working 'full' setting
some bugs in PRT mode with Sandmath (ie NPR in manual or trace mode) ... emulation or module ??
...
v1.8.4 release
Re write of printer (now save the paper between session) and better scrolling
Last version of lib#4 & al.
Can sync the clock
More slider to set the size of displayed text (UI printer, UI Config, UI Help)
Many bugs corrected (even one from the beginning : question mark display was wrong)
Change to cope with android never ending evolving non compatible classes
...
v1.8.1 release
- deal with google breaking compatibility with previous android release (every major breaks something).
To get the menu on the 1.8 release, touch the emulated lcd on the annunciator part : see 1.8.1 manual.pdf
There is a major bug with android 4.4.2: see
http://support.solidexplorer.pl/responses/kit-kat-442-issue
It seems that google changed some behavior related to a REAL external SD card plugged in a device.
Now a non google app can not write on it (so the bug you see)
On My nexus 7 as the 'external SD' is in fact a part of the internal flash, the apps still works.
I don't have any 4.4.2 device with a real sd slot to test. So all you can do is :
1 - root your device to gain back the previous behavior.
2 - see if you can redirect the goxx apps on the 'internal' sd ??
3 - avoid upgrading to 4.4.2 if you can.
I need to rethink the WHOLE behavior of import/export an a majority of goXX apps.
I am sorry for this problems, but they are related to google decisions ??
I will try to find a new way to do import/export ... DONE
v1.6.4 release
I made the following changes :
On kitkat device, import/export directory is now /Android/data/o2s.emul.hp41cx/files/... instead of /go41cx/... on the sdcard.
For android older then kitkat, nothing change.
You can download modules from Warren Furlow's site (modules and manuals).
then put .MOD file in your 'download' directory on your external storage area in your device.
For a quick test, download the 'MATH.MOD' below then use 'Import modules', then choose a port and choose the module. It must appear in 'CAT 2' function.
If you have difficulties to use this emulator, please tell me which device you have and which resolution is your screen.
If the lcd stay 'blank' and you have an android 4 device, please try to deactivate 'hardware acceleration' for the display (see in your preferences/development on your device).
You can try the go41c to test your device (and screen size).
If you have trouble, try to stop the application from 'parameters/application' adroid menu and restart it.
In last ressort, try to 'remove data' from 'Application management' tool.
Raws examples : http://www.hp41.org/raw
Modules : http://www.hp41.org/mod
Manuals for HEPAX, CCD & others modules : http://www.hp41.org/ or buy the manuals on CD/DVD at http://www.hpmuseum.org/cd/cddesc.htm
Sixth release: v1.5.7
- rom patched for lowercase lcd display (see : MoHPC article from J.F Garnier)
- library#4 from A. Martin support (see: search for Library #4)
- all import/export now use '/go41cx/...' directory instead of '/Download'.
- haptic feedback added (activate it in your device).
- short manual to explain all the behaviour (see at the bottom).
- new basic skin (like the first release).
- some interface changes (new really hard reset).
- to conclude, read the manual ....
- added partial card reader support (only hp67 functions)
Fifth release: v1.4
- save state file format changed again, if possible, save your Xmem and Raw before upgrade.
- sound support for TONE and BEEP (even synthetic).- text overlay came back, file named 'xxx_o.txt', one line per key, use them either with opt001 skin or 'black_o' graphic overlay.- ADV printer key now working.
- Inline help added (back pictures, flags, base functions, cx extended functions, printer functions, hepax functions, ccd/osx functions): tap on left side of display then use the buttons on the bottom.
New version of skin&overlay files at the bottom of the page.
Just for fun, I use an old PPC program to compute PI (1160 decimals in 15,5h)Using this program from hepax memory, I just finished 1560 decimals of pi in 22 minutes (max speed on a slow motorola defy) see files PJ.raw for the program, pivalue.png for output of the program and pilist.png for the listing. 1160 decimals takes 13 minutes (and with the printer active...)
Fourth release: v1.3
- save state file format changed again, if possible, save your Xmem and Raw before upgrade.
- full graphic skins (normal and opt-001 given), see files on bottom to create new ones. Choose 'skins' in main menu to change. You can't import your own skins actually, I'll add them if I receive them.
- full graphic overlays (see files on bottom of page to build your own) displayed in 'USER' mode. Press between 'USER' and 'PRGM' as shortcut to 'LOAD Overlay'. Overlays are 'xxx_o.png' files- added top status line (tap it to switch between 'stack', 'alpha' or 'version' display- bank switching corrected (hepax should be ok now)
- faster printer switch (anyway be carefull, PRT and ADV are as all HP key, they 'NULL' is pressed more than 1 sec). Printer files are now 'xxx_p.png'
Third release: v1.2
- save state file format changed, if possible, save your Xmem and Raw before upgrade.- fullnut charset added (see it with sandbox module)- better key input at fast speed (PSE and CAT not patched)- added a more usefull 'About' display with allocated pages- helios printer support added (tap on left or right part of display, leave it with 'back')On/Off: turn the printer on/off (reset png save counter to zero)
Size: set the length of the paper (default 150 lines, max ... depend of device, around 2000)
Refresh: refresh the scrolling part of paper displayed
TRACE/NORM/MANUAL: printer mode
PRT: PRT key, press briefly (pressed too long, do nothing ??)
ADV: ADV key, press briefly (pressed too long, do nothing ??)
Save: save paper as png
New: remove current paper, put a new one
Printed paper is not saved with state, so when android destroy the application, paper disappear.- hepax rom/ram support added (up to 4 x 8KW module)
- some change in config tool (tap on middle of the display)
Top line: special modules, does not occupy a port (but still uses some pages)
Printer: insert/remove a printer in page 6 but doesn't use a port.
Time: insert/remove a time module in page 5 for 41CV mode
Hepax: insert/remove a ROM part only Hepax module in page 8 (turn off calc before, rom will be relocated at next turn on)
Xfuns: insert/remove a X-function module in a free page for 41CV mode. (Xmem regs are always there)
CcdOX: insert/remove a CCD-OSX module in a free page (3 to 7 then 15 downto 8)
Port: now include .hpx files : 8KW image of hepax memory module (16 KB file), still use 'Empty' to remove a moduleRegister view: add a reset option :
soft, just halt cpu, press a key to restart.
hard, halt cpu, remove ALL modules except system.
Hepax view: deals with hepax memory modules
Import/export: copy all .hpx file from/to 'Download'.
Delete, rename: as usual.
New: creta a new empty 8KW module.
Xmem: nothing changed.
Print: new printer files.
Show: display a saved printer paper.
Export/Rename/Delete: as usual.
State: nothing new
Modules: added a change 41CV <> 41CX (turn off calculator before)
Raw: include now the prgram view with 'Save as' menu
'Save as': list programs in memory to save as .raw
Infos: display infos (labels & end) of a raw file
Overlays: nothing changed
Second release: v1.1
- timer bugs corrected
- new config view (tap on display), press putton to choose then menu to do stuff
Access to expansion ports, choose 'Empty' to remove a module.
go back to calculator to and came back to refresh state if you want to save the new modules config as a state.
Registers view: display internal registers (0x000 to 0x3FF)
data: display data regs (0x1FF downto ...)
system: show status register in hexadecimal (0x000 to 0x00F)
buffers: show registers used as buffer (0x0C0 to ...)
program: show registers used as program (from ... to ...)
xmem0: show registers in xfunction module (0x040 to 0x0BF)
xmem0: show registers in xmemory module 1 (0x201 to 0x2EF)
xmem0: show registers in xmemory module 2 (0x301 to 0x3EF)
State view: deals with full state saves of go41cx
save as: copy the current state (auto.41cx) to a new file
export/import copy all .41cx files from/to 'Download' to/from 'internal'.
delete an internal state file.
rename an internal state file.
Module view:
import/export copy all .41cx files from/to 'Download' to/from 'internal'.
infos gives informations about a module.
delete a module file.
Raw view:
load a raw file into program memory (pack mem before and after load to be safe).
import/export copy all .raw files from/to 'Download' to/from 'internal'
infos gives informations about a raw file.
delete a raw file.
rename a raw file.
Overlay view: deals with overlays (text files of 70 lines max, each line is a label for a key, 1st line for top left key primary label, 2nd line for its shifted label, ... row after row, 'null' text means keep original label, see example FINANCE.ovl), only active in USER mode. Such files can be edited with 'jorte' android editor.
load an overlay file, choose 'Empty' to clean overlay.
import/export copy all .ovl files from/to 'Download' to/from 'internal'
delete an ovl file.
rename an ovl file.
Program view: list all program into calculator memory
save a program into a raw file.
info not done.
Xmem view: deals with x-memory
save as: copy the current x-memory contents to a new one file
export/import copy all .xmem files from/to 'Download' to/from 'internal'.
delete an internal xmem file.
rename an internal xmem file.
First release: v1.0
sound not supported.
speed greater than 1 are not patched for 'PAUSE' ...
should work with at teast 600x480 screen.
only applications modules supported.
How to navigate in Android data and find the data used by the App:
Due to new changes in Android (9+ I think) it became difficult to find the data saved by the app. It is due to claimed security concerns where the X app should not see the Y apps files (even the external one).
To correct this situation I recommend to use a good file explorer. Such as Total Commander from C. Ghilser.
With this tool, navigate to /storage/emulated/0/Android/data. You should see an entry called Installed Apps, select it and autorise the app to see all files downward.
Now you could go to the real directory data of go41cx which is at ///_Android_data/o2s.emul.hp41cx/files.
You can now write or read datas from this directory to put modules, raw files and so on.
Emulator loosely based on Non-Pareil from Eric Smith, font by Luiz C. Vieira.
Some files:
- HR.raw : High Roller game (with score on xmem, create a file 'HRs' of 2 regs with CRFLD)
- MATH.MOD: Math module
- Math01.ovl & Math02.ovl: overlays for MATH module (from Alexander Oestert)
- Overlays: more examples