» fxSDK / Gint "extension" to support fx-CP400/500(+E) - Utopia or Not ?
fxSDK / Gint "extension" to support fx-CP400/500(+E) - Utopia or Not ?
Posté le 21/11/2023 09:46
Hi Guys,
following the upload of
CPBoy on Planete Casio, a program working with the Hollyhock-II hook and considering that the base architecture of fx-CP400/500 is very similar to what we can find either on fx-CG50/Graph90+E or on Prizms (fxCG10/20), it is maybe achievable to extend the scope of the fxSDK/gint to support this machine. For sure there is a strong interest in creating links with the ClassPadNet Team to share experience and knowhow.
From a technical point of view, ClassPad is running on a SH4 also (SH7305), so many stuff can be directly reused. There are some parts that are actually different (screen with touchscreen capabitlities, memory, keyboard) from the usual Graph (Mono or Color). Specific drivers would then be certainly required for these elements.
Would some of you interested in checking what is available or not and what would be the amount of energy needed to put on the project to add full support of FXCP ?
Today, Addins are not supported officially, so third parties programs (Homebrews) are launched through a Hook. We need to compile a bin that is loaded into memory by the hook and launched. This is close to what is currently done on fxCGs with the "Addin Push".
Please let us know in the comment section if you are interested in working on this.
Many additionnal information can be found here :
ClassPadNet
Citer : Posté le 21/11/2023 10:45 | #
Hello,
Quite an interesting idea ! From what I've checked there are a lot of similarities between the CG50 and the CP400 from the GInt drivers address. Some of them are found here : https://classpaddev.github.io/wiki/dev/notes/
But most of them are yet to be discovered. There is the HexEditor tool that will help you browsing the memory for specific address or value, and also try writing to some sections (https://github.com/SnailMath/CPhexEditor)
Parts of the touchscreen are already known, like where to read the touch position. Still, I've no idea how difficult it would be to port GInt as I never used it nor know all of its internals. But if you know it enough (I'm pretty sure some of you here do) I think most is doable!
If you have questions, need help or testing, I'll be glad to help ! Feel free to reach me over discord (I'm on the classpaddev team)
Citer : Posté le 21/11/2023 11:11 | #
On Gint side, there are lot of stuff already well documented with identified addresses here : MPU headers
I had a (brief) look yesterday at CPClock program which contains a RTC.h file and it was absolutely similar to one of fxCG50.
So definitely a lot of stuff is common, and considereing we are talking of SH70305 in both cases this is aboslutely expected.
Regarding screen, Gint is already able to manage 3 types of screen (T6K11 rev 1 (old monochromes) and 2 (fx9860GIII/G35+EII) and R61524 of Prizms/fxCG50), adding one more should not be a strong issue as everything is modular (Lephe, correct me if I am wrong). As usual, the tricky part is to understand how it works and to get accurate documentation. Extra-stuff like touchscreen can be added in a model-related module. This is definitely easy (for example the "Gray Engine" aiming at "blinking" very quickly the screen to give the illusion of 4 gray tones instead of just B&W is only activated when the model is a Monochrome calculator).
I guess we need to start with an inventory and then think on what can be reused. I am a bit busy with work at the moment and will be off for ~10day, but will try to do that at my return in early december.
The part far is a bit far from my confort zone is all the stuff dealig with memory allocation and filesystem cause it is a pain. But for sure Lephe and Yatis could be of great help on this.
Citer : Posté le 21/11/2023 11:25 | #
I'd like to try. I'm optimistic because it's the same SH7305, so loading a program should be a matter of specifying the memory layout and done. Then if we're lucky only the display and keyboard drivers will need changes... which I'm hoping should be a lot less work than the drivers we get in exchange, ie. timers, CPG, USB...
A few weeks ago I'd have said I didn't want to get into the CP because getting code to run felt like a lot of work and too much of a side quest. But since Hollyhock gives us this, it is really tempting indeed.
(I've long given up on trying to tell people how to pronounce it, but at least FYI the preferred capitalization is "gint").
Being a man of constantly too many projects, I'm hoping to have a look in December. I'd like to say cleaning up my list of projects is my priority, but this post is proving otherwise x)
Citer : Posté le 21/11/2023 11:31 | #
Sure, will stop using capital "G"
There is definitely not hurry. Let's evaluate the situation and then check the size of such a project. I will first try to install the CP SDK on my PC to dig a bit more on what's inside.