I'm the main author of Giac/Xcas, a CAS (computer algebra system) that I ported to several calculators under the name KhiCAS : Casio Graph 90/fxcg10/20/50, Casio Graph 35eii, TI Nspire (mono, CX, CX2) and HP Prime (builtin CAS), unlocked Numworks N0110 (with Epsilon version 15.5 or a 3rd-party fork). It also provides interactive geometry (2d/3d), 3d plots and a spreadsheet. Cf. https://xcas.univ-grenoble-alpes.fr/en
Recently some users have complainted about the KhiCAS nwa application with Epsilon version >=16, e.g. on tiplanet (https://tiplanet.org/forum/viewtopic.php?f=99&t=26532). This port was originally authored by a mysterious developer named Nwagyu (see note at the end), from the original port for unlocked N0110 calculators I made. His site (https://www.nwagyu.com/) has disappeared at the end of last year, it was cloned and later updated here https://yaya-cout.github.io/Nwagyu.
But this port of KhiCAS has several issues that are not present in the original unlocked Numworks N0110 port or on competing calculators:
- complex install
- sudden crashes
- stripped keyboard support (e.g. shift-1 ... shortcuts), no shift/alpha feedback
- no persistance : as soon as you press the Home key, your work is lost, there is no access to the Numworks scriptstore, because the Numworks SDK does not expose function to load/store Python scripts
- **the KhiCAS app is disappearing after each reboot or crash.**
**It's beginning to be a major concern for me because it gives a bad opinion on the whole Xcas ecosystem to Numworks users trying KhiCAS on recent calculators**. I have therefore decided to see if I could improve the port, my University has bought for me 2 Numworks calculators for development/testing. While some issues can probably be solved without Numworks intervention, the last issue I mentionned is a key issue that can not be solved without Numworks. It's also a key issue for anyone trying to develop an external application for Numworks calculators, and that probably explain why there are only a few of them, compared to other calculator brands. AFAIK, there are about 10 external apps for the Numworks, compared to a few hundreds for the FXCG50/Graph 90 (https://www.cemetech.net/downloads/browse/prizm) or the TI84 (https://www.cemetech.net/downloads/browse/84pce/asm).
Indeed the current behaviour after a reset is to delete the external applications, by writing in flash a 0x0 byte at a location where a magiccode for the additional app was flashed. This is done in the file ion/src/device/userland/boot/rt0.cpp:
` Ion::Device::Init::configureRAM();
Ion::Init();
// Initialize slotInfo to be accessible to Kernel
Ion::Device::USB::slotInfo();
Ion::ExternalApps::deleteApps();
ion_main(0, nullptr);`
There is no way to re-enable external app, you must make a full reinstallation after a reset/crash or an exammode in/out cycle. This is time consuming, very developer-unfriendly. Moreover, while writing a 0 does not really account for a flash writing cycle, reflashing the whole app does (and even reflashing only othe sector where the magic code was replaced by a 0 would still affect one sector). It will cause premature use of the concerned flash sectors, especially on developer calculators.
I do not understand the rationale behind this security measure. Why not :
- disable listing additional apps that are not authentified by Numworks in exam mode in apps/home/controller.cpp
- call downgradeClearanceLevelTo in apps/home/controller.cpp before starting any non authentified additional app
On a Casio or a TI, if you reset or do an exammode cycle, you keep access to the installed 3rd-party addins and asm programs.
I really hope that Numworks will improve external app support, as it is now, it is not seriously usable for 3rd party development. 3rd party development is not just games, it's also serious applications that are interesting to teach math at the highschool/college level, like CAS, 3d plots, interactive 2d and 3d geometry or spreadsheet, all these functionnalities are provided by KhiCAS, while not available on Numworks official firmware. Some countries like France allow CAS calculators during tests, some tests in the US allow CAS, Numworks users should be able to have access to a CAS that is competing with high-end calculators models like the TI Nspire CX2 CAS or HP Prime that cost about twice more. Students with less money should not be disadvantaged.
Bernard Parisse, Institut Fourier, Université Grenoble Alpes
A note about Nwagyu: There are conjectures in the community that Nwagyu might be a pseudonym for someone within Numworks. The rationals behind this conjecture are:
* AFAIK, before Nwagyu, nobody outside Numworks wrote an external app (except the Phi exploit to unlock N0110 calculators). Then suddenly someone ported all the external applications that are available for unlocked Numworks N0110. Moreover the same guy published a tricky memory extender in order to support applications like KhiCAS that require more flash memory than normally available for external apps in a Numworks slot.
* Numworks was bought by Aldebaran in 2023 (https://www.aldebaran.fr/en/news/aldebaran-realise-son-premier-investissement-via-son-fonds-atf-i-et-acquiert-numworks-le-champion-francais-de-la-calculatrice-graphique) and the Nwagyu site was abandonned a few months later.
Recently some users have complainted about the KhiCAS nwa application with Epsilon version >=16, e.g. on tiplanet (https://tiplanet.org/forum/viewtopic.php?f=99&t=26532). This port was originally authored by a mysterious developer named Nwagyu (see note at the end), from the original port for unlocked N0110 calculators I made. His site (https://www.nwagyu.com/) has disappeared at the end of last year, it was cloned and later updated here https://yaya-cout.github.io/Nwagyu.
But this port of KhiCAS has several issues that are not present in the original unlocked Numworks N0110 port or on competing calculators:
- complex install
- sudden crashes
- stripped keyboard support (e.g. shift-1 ... shortcuts), no shift/alpha feedback
- no persistance : as soon as you press the Home key, your work is lost, there is no access to the Numworks scriptstore, because the Numworks SDK does not expose function to load/store Python scripts
- **the KhiCAS app is disappearing after each reboot or crash.**
**It's beginning to be a major concern for me because it gives a bad opinion on the whole Xcas ecosystem to Numworks users trying KhiCAS on recent calculators**. I have therefore decided to see if I could improve the port, my University has bought for me 2 Numworks calculators for development/testing. While some issues can probably be solved without Numworks intervention, the last issue I mentionned is a key issue that can not be solved without Numworks. It's also a key issue for anyone trying to develop an external application for Numworks calculators, and that probably explain why there are only a few of them, compared to other calculator brands. AFAIK, there are about 10 external apps for the Numworks, compared to a few hundreds for the FXCG50/Graph 90 (https://www.cemetech.net/downloads/browse/prizm) or the TI84 (https://www.cemetech.net/downloads/browse/84pce/asm).
Indeed the current behaviour after a reset is to delete the external applications, by writing in flash a 0x0 byte at a location where a magiccode for the additional app was flashed. This is done in the file ion/src/device/userland/boot/rt0.cpp:
` Ion::Device::Init::configureRAM();
Ion::Init();
// Initialize slotInfo to be accessible to Kernel
Ion::Device::USB::slotInfo();
Ion::ExternalApps::deleteApps();
ion_main(0, nullptr);`
There is no way to re-enable external app, you must make a full reinstallation after a reset/crash or an exammode in/out cycle. This is time consuming, very developer-unfriendly. Moreover, while writing a 0 does not really account for a flash writing cycle, reflashing the whole app does (and even reflashing only othe sector where the magic code was replaced by a 0 would still affect one sector). It will cause premature use of the concerned flash sectors, especially on developer calculators.
I do not understand the rationale behind this security measure. Why not :
- disable listing additional apps that are not authentified by Numworks in exam mode in apps/home/controller.cpp
- call downgradeClearanceLevelTo in apps/home/controller.cpp before starting any non authentified additional app
On a Casio or a TI, if you reset or do an exammode cycle, you keep access to the installed 3rd-party addins and asm programs.
I really hope that Numworks will improve external app support, as it is now, it is not seriously usable for 3rd party development. 3rd party development is not just games, it's also serious applications that are interesting to teach math at the highschool/college level, like CAS, 3d plots, interactive 2d and 3d geometry or spreadsheet, all these functionnalities are provided by KhiCAS, while not available on Numworks official firmware. Some countries like France allow CAS calculators during tests, some tests in the US allow CAS, Numworks users should be able to have access to a CAS that is competing with high-end calculators models like the TI Nspire CX2 CAS or HP Prime that cost about twice more. Students with less money should not be disadvantaged.
Bernard Parisse, Institut Fourier, Université Grenoble Alpes
A note about Nwagyu: There are conjectures in the community that Nwagyu might be a pseudonym for someone within Numworks. The rationals behind this conjecture are:
* AFAIK, before Nwagyu, nobody outside Numworks wrote an external app (except the Phi exploit to unlock N0110 calculators). Then suddenly someone ported all the external applications that are available for unlocked Numworks N0110. Moreover the same guy published a tricky memory extender in order to support applications like KhiCAS that require more flash memory than normally available for external apps in a Numworks slot.
* Numworks was bought by Aldebaran in 2023 (https://www.aldebaran.fr/en/news/aldebaran-realise-son-premier-investissement-via-son-fonds-atf-i-et-acquiert-numworks-le-champion-francais-de-la-calculatrice-graphique) and the Nwagyu site was abandonned a few months later.