01-17-2021, 04:54 PM
Hi all,
after 15+ years of HP-41 absence I've been building my own HP-41 frankenclone for some weeks now, based on a Adafruit Feather M4 in Arduino mode (C/C++, not CircuitPython due to some hardware limitations like interrupts and sleep modes). The source code is here (ugly stuff, be careful!) https://github.com/hmilz/hp-99 . Most basic HP-41C stuff is implemented and works fine or requires little work to finish, plus a couple of extra functions not available on the original HP-41, above all the much higher math precision due to the use of MAPM, an arbitrary precision decimal library.
Like Free42, this is a complete rewrite without any HP code, but Free42 is 15 years and a couple of lightyears ahead ;-) The box was meant as a research & fun device and is not HP-41 binary compatible, i.e. there is no programmability yet, and I would have to rewrite everything from scratch. I've come to a point where I need to make a decision either to continue the frankenclone with its inherent limitations, or change direction.
Nonpareil would be something to look at, and basically I would have to write a compatibility layer interfacing my hardware to nonpareil (keyboard and display, namely). The main advantage would be that Nonpareil would give me 100% HP-41 binary compatibility. Now I've played a bit with the build on Linux, and as it seems that version 0.79 (I use the the snap build for Ubuntu https://snapcraft.io/install/nonpareil-cm/ubuntu) seems not to be able to load modules. When I try to load any module that should be supported according to mod1_file.c, I get e.g.
Unsupported hardware: HEPAX Module
and any of the application packages like MATH gives me
Currently only MOD1 pages at fixed page numbers are supported
Question: What am I missing? Should this be working and there is a layer 8 problem?
TIA!
after 15+ years of HP-41 absence I've been building my own HP-41 frankenclone for some weeks now, based on a Adafruit Feather M4 in Arduino mode (C/C++, not CircuitPython due to some hardware limitations like interrupts and sleep modes). The source code is here (ugly stuff, be careful!) https://github.com/hmilz/hp-99 . Most basic HP-41C stuff is implemented and works fine or requires little work to finish, plus a couple of extra functions not available on the original HP-41, above all the much higher math precision due to the use of MAPM, an arbitrary precision decimal library.
Like Free42, this is a complete rewrite without any HP code, but Free42 is 15 years and a couple of lightyears ahead ;-) The box was meant as a research & fun device and is not HP-41 binary compatible, i.e. there is no programmability yet, and I would have to rewrite everything from scratch. I've come to a point where I need to make a decision either to continue the frankenclone with its inherent limitations, or change direction.
Nonpareil would be something to look at, and basically I would have to write a compatibility layer interfacing my hardware to nonpareil (keyboard and display, namely). The main advantage would be that Nonpareil would give me 100% HP-41 binary compatibility. Now I've played a bit with the build on Linux, and as it seems that version 0.79 (I use the the snap build for Ubuntu https://snapcraft.io/install/nonpareil-cm/ubuntu) seems not to be able to load modules. When I try to load any module that should be supported according to mod1_file.c, I get e.g.
Unsupported hardware: HEPAX Module
and any of the application packages like MATH gives me
Currently only MOD1 pages at fixed page numbers are supported
Question: What am I missing? Should this be working and there is a layer 8 problem?
TIA!