Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » [En] 5800p: The exception and functional upgrade
Qq1122 Hors ligne Membre Points: 3 Défis: 0 Message

[En] 5800p: The exception and functional upgrade

Posté le 30/07/2025 08:14

[Statement]

This is a translation and some additions of BCX74687's post. For original post please see this.
First published on cncalc.
The operating instructions were from the translator (qq1122). Preface and some comments are from BCX74687.
Reproductions are allowed, but Don't use this for bussiness.
中文版请参见两斤时间的这个帖子
语言翻译不一定100%准确。Language translations may not be 100% accurate.


[Preface]
Casio's fx-5800P, which was released in 2006, has been in production for nearly 20 years.This not only reflects the important position of fx-5800P in the fields of engineering and education, but also exposes the gradual decline of the calculator business, especially on engineering.
The fx-5800P was once developed a computer connection cable and program around 2018, which is also a great breakthrough in engineering, but because the calculator connection cable is very expensive and difficult to buy, this upgrade has gradually been forgotten by people.
Until today, we launched another attack on fx-5800P, successfully found the abnormality of the calculator and completed the functional upgrade.
Important Note: Function upgrade requires the cost of clearing your programs.
If you want to try, a backup is strongly recommended, such as transferring your programs to another calculator.



[Basical Overflow]
If you want to let your calculator act abnormally, the first thing is to overflow.The following is the overflow process:
1. [MODE] and enter the PROGRAM mode,then select NEW and create a new formula, I named it OUTTEST
2. In the formula editing interface, press [x^] then press [0] until it is full and you can't input anything more
3. [EXIT] [MODE] [1] Return to COMP mode, [SHIFT] [MODE] (setup), [2] to Adjust lineIO, [fmla] [1] and find the previous formula(OUTTEST), [EXE], a "syntax error" appears, [EXIT] [right] [del] [left] [del] [left], press [0] until it cannot be typed
4. [right] [right] [0] [0] [left] [left] [del] [del] and the overflow is succeeded!
The following are two small abnormalities:
1. Lock the machine: (press the p button to recovery)
Replace the second [del] in the fourth step with [=], [exit] and your calculator is locked.
2. Strange errors: (will be mentioned later)
After the fourth step, [=], [left], (if you don't change mode through [MODE]) The entire machine will be abnormal, and executing the program will produce some strange errors.
The abnormality may delete your programs!
If this happens, do not use [SHIFT] [AC] to shut down and save the progress.
Just press the p button on the back (thanks to casio's memory protection) and the program will be restored.


Effect :




[Overflow in TABLE and RECUR]
Enter a operator which includes a box in TABLE and RECUR's MathIO mode and press [EXE] to save it into the memory,
ignore the error, [EXIT] and switch to COMP mode ,then adjust lineIO. Enter TABLE or RECUR again then the box will also appears,
(you can delete other items and only leave the box. Press [EXE] twice, and there will be a Syntax Error, the box is saved into memory again, [MODE] [1] to enter COMP, [SHIFT] [MODE] and select [1] to adjust MathIO, [MODE] [7] to return to TABLE, and only leave the box there.)
and it can also overflow according to the operations above.



[Character Converter]
People who have studied other casio calculators must be familiar with character converters. It is based on the conversion between double-byte characters and single-byte characters.
After our research, fx-5800P also has double-byte characters (the character table is in the attachment), so a character converter naturally came into being.
But this converter only supports double-byte characters conversion to single-byte characters, so we also calls it a 'one-way character converter'.
The following is the instructions for converting characters:
1. Input the box. There are currently two ways:
i) Under COMP and lineIO ([SHIFT] [MODE](setup)[2]), call a boxed fmla (formula)
ii) In TABLE (MODE7) or RECUR (MODE6) mode. The operations are above.
*you can delete other items and only leave the box
2. Make sure that your box is at the end (that is, there are no characters behind the box)
i) Convert a character:
move the cursor to the front of the box, [right], enter a character you need to convert, [left] [9] [del] [del], the converted characters will appear behind the box.
ii) Convert two characters:
move the cursor to the front of the box, [right], enter two characters you need to convert (the result will be the second character) ,
[left] [left] [del] [right] [right] [del] [del] [left] [right],
enter another character you need to convert (the result will be the first character), [left] [9] [del] [del], then the converted two characters will appear behind the box.
Effect :

*This one-way converter also works on CNX and CNCW (and other Casio calculators?). But the disadvantage is that it can only convert double-byte characters to single-byte characters.
*Characters that can be converted include: # ' & @ [line break], etc., see the comparison table for details:

Currently, according to our findings, symbol ' may be used for comments, while symbols & and ' appear in built-in formula names, symbol ~ appear in fmla trans of self-test.
No use of # has been found yet.



[Functional Upgrade]
We have been understood the Basic overflow, and the upgrade method is obvious.
In fact, this function upgrade is to enter a fusion mode (not comp mode, but also has the characteristics of comp).
These functions can be upgraded through the following instructions:
1. Pull out lowercase letters, Greek letters, subscripts, etc. in the program
2. Use program commands in Formula
3. Use constants and other instructions in baseN programs
4. Use >, <,≥, ≤, ≠, = in the table to determine whether the conditions (0 and 1) are met
There's an advanced example program by BCX74687:

But please note that these functions come at the cost of your data disappearing.
Therefore, it is recommended to prepare 2 fx-5800Ps and use a spare machine to transfer the "advanced" program to the main machine.
The instructions are as follows:
1.[MODE] [7](TABLE)[SHIFT] [MODE] [1](MthlO)
2.[sqrt] [left] and input "0" as more as you can, then [=] [=] [EXIT]
3.[SHIFT] [MODE] [2](LinelO)[MODE] [1] [MODE] [7]
4.[DEL] [left] [DEL] [left] [0] [0] [0] [right] [right] [0] [0] [left] [left] [DEL](to overflow)[DEL] [=] [=] [EXIT]
5.[SHIFT] [MODE] [1](MthlO)[MODE] [1] [MODE] [7]
6.[+]then input [fraction]as more as you can
7.[=] [EXIT]
8.[+]then input [fraction]as more as you can
9.[=] [EXIT]
10.[+] keep inputting [Fraction] and the screen will go blank
11.Once the screen goes blank, input more than 14 numbers and wait for obvious lag
*Steps 1-11 will cause the 'unmapped write'. An alternative way will be mentioned later.
12.[MODE]and enter a mode
13.[SHIFT] [AC](OFF)
14.[AC] to turn on, the calculator automatically resets and deletes all data, but the screen just now will be recovered, and the comp mode will be merged with the mode you just selected.
Notice: Run BaseN programs and switch modes will clear the merged effect.
In step 12,
If you use [MODE] [7] to enter program mode, after turning on,press [SHIFT] [MODE] [2] to switch LinelO,
and then create a new COMP program,
in the program editing interface, press [FUNCTION] [Down] [1](ALPHA), you can enter lowercase English letters, Greek letters, superscripts, etc. in your program.You can also create a new FMLA or BASE-N program, under the editing interface, [FUNCTION] can enter the function menu that is no different from COMP, and you can use program commands, stat, reg, etc. in your formula or BASE-N program.
If you use [MODE] [5] to enter TABLE mode, similarly, press [SHIFT] [MODE] [2] to switch LinelO,
[FUNCTION] can enter the function menu that is the same as comp,
[3] [Down] can enter the verifying symbol for judging the expression's true or false,
after the table is generated, if the expression is true, f(X)=1, and if it is not, f(X)=0.
If you use [MODE] [8] to enter EQN mode, under the equation input interface,
[FUNCTION] can enter the function menu that is the same as MAT, and <Edit Row> and <Edit Column> works normally.
*So, the essence of the eqn input interface may be a mat.



[Supplements]
In steps 1 to 11, the following instructions also work:
(Please see the original post. Translate of this part is currently not available.)

After abnormal shutdown, the 'set version' of Fmla trans in the self-test will be available, but the calculator will crash when trying to transfer.


Overflow in any inputting interface (except the naming interface) :
Follow the Steps 1-11 above and cause the 'unmapped write'.
Then input any content in any input box you want to overflow.
[SHIFT] [AC] to shut down, then input any content after booting.
Effect:




[Special Thanks]
BCX74687 (1kgTime)
CALCF (for telling me how to input the "box")
Telecomadm1145 (The creator of CasioEmuMsvc, who said that the box of 5800p is "nothing")
CNCALC



Lephenixnoir Hors ligne Administrateur Points: 25276 Défis: 174 Message

Citer : Posté le 30/07/2025 09:03 | #


Hi Qq1122! Thanks for translating the post for us!!

If I understand correctly, the bug is essentially a buffer overflow on the formula input. The exploit consists in overwriting a setting in memory which enables features that are normally not available on the fx-5800P?
Mon graphe (27 Juin): (MQ || Rogue Life) ; serial gint ; passe gint 3 ; Azur ; ...) || (shoutbox v5 ; v5)
Qq1122 Hors ligne Membre Points: 3 Défis: 0 Message

Citer : Posté le 30/07/2025 11:10 | #


Lephenixnoir a écrit :
Hi Qq1122! Thanks for translating the post for us!!

If I understand correctly, the bug is essentially a buffer overflow on the formula input. The exploit consists in overwriting a setting in memory which enables features that are normally not available on the fx-5800P?


I'm not study that further. But I think once the "Unmapped write"(according to log recorded in CasioEmuMsvc) is caused, the calculator will automatically check itself then reset and delete all data. But Casio made a "Memory protection" so that it can restore some value to memory, including the mode characteristics and the state before turning off. So the setting you are seeking might can be found through memory changes after the calculator resetting.
Lephenixnoir Hors ligne Administrateur Points: 25276 Défis: 174 Message

Citer : Posté le 01/08/2025 18:39 | #


I see, it would make sense. I've never really used the scientific calculators (we usually work with the graphical ones on Planète Casio) but I can see that this is a good thing for fx-5800P users. I wonder if it will be practical enough to use frequently.
Mon graphe (27 Juin): (MQ || Rogue Life) ; serial gint ; passe gint 3 ; Azur ; ...) || (shoutbox v5 ; v5)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2025 | Il y a 110 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd