fx-9750GIII Storage Memory Crash
Posté le 26/10/2020 10:10
Updated in 2023-12-7 UTC+8
Introduction
In August 2020, I encountered the problem on my fx-9750GIII where I couldn't use my storage memory. Later, I found that a file with impossible name "僂ASSE.g1m" appeared in my calculator stoarge and couldn't delete it in any available ways. After investigation it's confirmed that this file was originally "-CASSE.g1m" from Calcraft. The reason of having a Chinese character is that the hex code of "僂" is the combination of the hex codes of "-" and "C".
Affected models
Possibly all USB Power Graphic 3 models
- fx-9750GIII: CalcLoverHK,
PhantomOverrideAlpha,
laomo,
0070,
zhuchaokn
- fx-9860GIII:
yukki410
- Graph 35+E II:
yet to be seen
Characteristics
- Unable to modify the storage memory (even "Initialize All" won't work)
- LINK app shows error "Data conversion failed."
- Windows reports error 0X8007045D (I/O device error) when attempting to modify the storage content
- (Uncertain, happened once) A file with impossible name (e.g. 僂ASSE.g1m)
Possible procedures
1. Install
C.Basic for FX (important as while it's possibly the main cause, it's also used to execute the workaround syscall below)
2. Create a new program file in
SMEM mode and save it without typing anything, then re-open the file
OR open an existing file in
SMEM mode
3. Type something randomly and delete what you've exactly typed (even typing and then deleting a single letter works, just make sure the final modified file is exactly the same as the original one)
4. Save the file by pressing [EXIT]
5. The moment when you get a "Can't delete file" error pop-up with error code -6 is where this bug is triggered
At first it seems like nothing happened after the error, but as the time passes under normal use, C.Basic starts to pop up the same error more frequently and eventually even a modified program with a single letter added can't be saved.
Reasons
Deducing from the error description ("Can't delete file"), it appears that C.Basic saves a file by deleting the original file first and creating another one with exactly the same content as the modified one. If there is no actual change in the latter one however, C.Basic may confuse between both files and thus being unable to delete the proper file, while forgetting to change the Bfile status from "file opened" state to "ready" state.
However, such problem also appears in other users' GIII calculators without C.Basic, and the reasons for them are unclear.
Workaround
Warning! This method can only be used on the USB Power Graphic 3 models!
Kudos to yukki410 for discovering this method!
Execute Syscall(0x205) in C.Basic and restart the calculator.
Edit (2023-12-7):
I did more tests on this bug after Sentaro21's return on C.Basic development. Unfortunately, the SMEM on my fx-9750GIII is now permanently unusable without C.Basic after initializaing. Somehow it successfully deleted the whole memory while keeping the SMEM in the locked state. Nevertheless, it confirmed a few things.
> This bug can happen even under C.Basic's default settings.
> You may notice a significantly slower speed of saving program while repeating the procedures.
> Suprisingly Syscall(0x205) becomes one of the main causes of this bug. If you manage to trigger the bug using the workaround/still fail to access SMEM after doing it, DO NOT initialize the whole calculator and keep it as is. C.Basic is probably your last resort to dodge this problem.
If you have any other method to solve this problem, feel free to post it here! Thanks for your help and also @Lephenixnoir @Yatis for helping me tackle the problem ever since the encounter of this bug
Citer : Posté le 05/09/2023 08:39 | #
In the OS ERROR mode the calculator is constantly in receive mode through USB. You might not have a sound when you plug it in but you can check in the device manager that it's here. Make sure to push the cable all the way through on the calc side, sometimes it doesn't hold very well.
Then on the PC, start the OS update program (this one contains the latest fx-9860G III update), ignore the first few steps that tell you to turn off/disconnect the calculator, and press Ok until it starts reinstalling the OS.
Citer : Posté le 05/09/2023 09:21 | #
ok, i will try that now
Citer : Posté le 05/09/2023 09:25 | #
the OS successfully updated but i am still not able to add or delete the addins (the games). The pc displays the things in the calculator drive and lets me delete them, but when I disconnect the calculator the game i want to delete is still there... when i try to add new things it says "error8007045D the request could not be performed because of an I/O error"
Citer : Posté le 05/09/2023 18:30 | #
What add-ins do you currently have installed?
Citer : Posté le 05/09/2023 20:52 | #
Terraria, fruit ninja, geometry dash, runner, space invader. Now they are just... stuck on my calculator, i cant add more games or delete them. To be honest those games being stuck on my calculator wouldnt be a probem, they are probably some of the best games i can get (I think) but the terraria same game doesnt save, it says "Failed to write \TERRARIO\reg0-0.dat Please optimise SMEM and ensure 250kb free if this is a new save" but i have more than 1mb free, is there a way I can delete the addin games USING my calculator without plugging it to my pc?
Citer : Posté le 05/09/2023 20:55 | #
Whenever I try to add games via PC it says something about an I/O error and won't lt me do anything... I plugged the calc into my pc and it displayed "preparing USB" then "Data conversion failed."
Citer : Posté le 05/09/2023 20:57 | #
I am pretty sure there is at least one 3rd party file editor for the FX9860Gs (you can search for them in programmes -> utilitaires), but it will probably get stuck in the same way.
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 05/09/2023 21:11 | #
as soon as I plug in the calculator to my pc it would say "Data conversion failed.".... I would say that nothing that requires plugging my calculator into my pc works but somehow updated the calculator OS
Citer : Posté le 05/09/2023 21:13 | #
Hmm, from what we know about this bug (assuming it's the same as CalcLoverHK) then manipulating files on the calculator wouldn't work either. That's why Terrario fails in the first place. CalcLoverHK used C.Basic to execute custom code to try and solve the problems, but here you don't have any programmable add-in, so it's tricky.
There might be p7's transfer-execute function, but oh boy I don't want to get into that. Only @Yatis vaguely knows how to use it.
Citer : Posté le 05/09/2023 21:16 | #
how did CalcLoverHK solve the bug?
Citer : Posté le 05/09/2023 21:18 | #
He called a system function that deals with the filesystem and as a side effect closed remaining open files or some similar action that solved the issue.
But in order to call that system function, he used C.Basic, which you don't have. This is the tricky part: how to get the calculator to run code to attempt to solve the problem.
Citer : Posté le 05/09/2023 21:19 | #
... what do I do
Citer : Posté le 05/09/2023 21:21 | #
It's a calculator, so you should be able to send directly something to do it through USB
Long live remote unprotected execution
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 05/09/2023 21:26 | #
I don't know. This is an obscure bug, it's specific to the G-III family, and we're very much in a "try things and see what happens" approach.
Let's be clear: there are bugs in the filesystem implementation in the G-III. It is partly Casio's fault. And we don't know yet how to work around them to not trigger them so add-ins that rely a lot on the filesystem tend to create effects like these.
Now as far as your calculator is concerned, there is a theoretical way to get code to run, by using the old communications protocol used by FA-124 (called Protocol 7.00 or p7 for short). Even though FA-124 is no longer used on the calculator, the OS update function relies on a p7 function where a program is sent via USB and the calculator runs it. Casio uses that to send the OS update program to the calculator, which then installs a new OS.
I have a rough idea how to create a p7 updater that would run the syscall that solved the problem for CalcLoverHK, but I believe only Yatis has tested such an updater in the past, so there might be unforeseen difficulties.
Citer : Posté le 05/09/2023 21:30 | #
So sorry @Fries, i would like to add that to my (already long) todo list but don't have a G35+EII/FX-9860GIII to test anything, and Yatis isn't here very often
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 06/09/2023 07:18 | #
ok, so we are in the "try and see what works" phase, what should i try? i have already done a OS update thing
Citer : Posté le 06/09/2023 07:40 | #
Try all storage memory related things such as resets and memory optimization in the MEMORY menu.
Citer : Posté le 06/09/2023 08:35 | #
all the resets do not work, i have tried. Whatis memory optimization, where do i find it?
Citer : Posté le 06/09/2023 08:37 | #
Memory optimization is the F5 key in the MEMORY menu. Basically it defragments the filesystem
Citer : Posté le 06/09/2023 08:37 | #
oh, i tried memory optimization, it displayed "Memory ERROR"
anything else i could try?
Citer : Posté le 06/09/2023 08:44 | #
Ok, I remembered something else.
Turn off the calculator, then turn it on by pressing [OPTN], [x10^], and [AC/ON] at the same time. The calculator should turn on with a black border and a "DIAGNOSTIC MODE" popup. When you see this, press 5, then 9, then 6, then 3. You have a few seconds to do that before the calculator reboots automatically.
Edit: if after 5, 9, 6, 3 the popup closes and you land on the main menu, then the menu is located elsewhere (and I don't know where)
If you input the sequence correctly, you will enter the "TEST MODE" menu. Press [3] for the "File system" menu, then [1] for "Fugue API" (Fugue is the filesystem for the storage memory), then [2] for "LowLevel Format". I don't really remember what happens next, but maybe you'll have to confirm, then it should deep clean the entire filesystem and probably reboot.