» A few notes about the storage memory of Casio graphic calculators
A few notes about the storage memory of Casio graphic calculators
Posté le 16/07/2020 10:36
Casio recently released new generation of monochrome calculators (fx-9750GIII/fx-9860GIII/Graph 35+EII) which are treated as USB mass storage device as same as fx-CG50 and Graph 90+E in your PC. This was a good news.
However, supposedly a normal USB mass storage device should also be supported by Android devices through USB On-The-Go (OTG) technology, but I can't connect my fx-9750GIII to my Android phone. The message I got was: "The file format of this USB storage is unsupported by Android."
The file system of the storage memory is FAT (be careful, not FAT32
nor NTFS nor ex
FAT as we know), which is surprisingly not supported by Android. Moreover, you cannot format it to FAT32/NTFS/exFAT as it only supports FAT (File System ERROR will be shown and requires you to initialize it). Currently there is no tool to enable FAT support in Android (I can only find NTFS/exFAT tool) since FAT is a very old file format.
Also, the new-gen monochrome calcs has 8MB storage, while fx-CG50 and Graph 90+E has 16MB capacity. I highly suspect that Casio uses FAT12 (the earliest version of FAT which only supports up to 32MB/file) for their storage memory. Therefore, the above-mentioned problem may also occur in fx-CG50 and Graph 90+E even though if they have USB 2.0.
I am a heavy phone user so this matters me a lot.
But whatever, FAT32 supports up to 4GB/file and long file name, and is supported by Android too. Its benefits overwhelm FAT12 completely.
Citer : Posté le 16/07/2020 11:51 | #
The filesystem used in the storage memory of the fx-9860G III, which was introduced with the fx-CG 10/20, is called Fugue : http://www.kyoto-sr.co.jp/products/fugue/productinfo/cf-fat.html
We don't have any documentation other than the page above, which indicates that FAT 12/16/32 and VFAT are supported. It is possible that Casio used FAT12 for compatibility with its earlier homebrew filesystem. Even though FAT32 is better in all aspects, they probably didn't choose to use it because of space, Flash management, or engineering constraints.
Yatis will probably know a bit more than me on this topic.
Citer : Posté le 17/09/2020 21:14 | #
The "new" file system used by Casio is called Fugue and is a custom FAT12 format. I said "custom" because its use undocumented file attributes (like 0x0f to store the name in FONTCHARACTER) and many file information (like date, time, ...) are not set (replaced by internal Fugue information).
I'm not very surprise that you cannot format the calculator because Casio use wrappers around Fugue's primitives and some addresses are hard-coded in the OS (like Bfile file descriptor table, Bios Parameter Block and more) so is really not possible to add a custom FS on the device. But, recently, I have found internal Fugue's File System primitives which seems unused by Casio. I think that I can trigger some "hidden" Fugue's tests menus that will tell us more about it (?)
Currently, I can list all files from the root directory and get information from the Fugue File System but I don't find the (first?) File Allocation Table (FAT) address So I am not able to handle clusters yet (I'm currently tracing the Bfile_OpenFile(), Bfile_SeekFile() and Bfile_ReadFile() primitives but due to undocumented Fugue structures in RAM, personal projects and school... I don't have time to finish the documentation now).
Your intuition was good because Fugue use 8 sectors of 512 bytes per cluster for each "new-gen" calculators that use this file system and this is the maximum configuration that the FAT12 allow
Citer : Posté le 17/02/2023 11:18 | #
Well it's been around 2.5 years since the last reply But I feel like I need to revive this thread as I got some information from my recently acquired fx-CG20CN. Contrary to GIII calcs, my Android phone successfully detected my fx-CG20CN storage despite having the same Fugue storage with my fx-9750GIII. According to this information (https://github.com/adafruit/circuitpython/issues/2751), FAT16 is widely supported by Android, so I deduce fx-CG calcs use FAT16 format instead of FAT12.