Join us on Discord!
You can help CodeWalrus stay online by donating here.

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Cakeisalie5

For making apps on GNU/Linux for the fx-9860G, we had two main libraries in the CASIO community:

  • the fx-9860G library (fxlib), which appeared in 2006 with the SDK and hasn't been updated since;
  • gint, some sort of "kernel library" which takes control of the machine for a better control over it.
Ideally, for making an app under GNU/Linux, you would just have to use gint; the fact is, gint is already a two-years old project and even if it is still in active development, some features are missing and will probably be for some time, such as serial/usb port management, so for quick hacking, I was using fxlib. Unfortunately, fxlib is not well done at all, the conversion to GNU/Linux is subject to some fails (sprintf doesn't work correctly), and is made to be C89-compliant where I like to develop using the C99/C11 standard, so headers such as inttypes.h are missing.

This library is a solution to all of these problems. It still uses the system for most things, such as hardware control, though re-implements some functions in the system such as drawing functions in order not to be too slow.

It is an in-development project I've had for a month now. Its sources are available on Github:

>> grab it! <<

The fact is, I'd like to focus more on the P7 project, and would like to hand this project over to someone else. In order to ease this, I made a contribution guide that describes more or less accurately the coding style I have been using up to now, and a TODO list. Is anyone here interested in taking over this project? I'd really like it :)
Hi! I've been developing this project for a while, but Critor suggested me to make a topic here about it, and I saw a few reactions that made me thought a little CASIO on this forum wouldn't hurt too much :P

The origin of the name is "Protocol 7", as it's the name Simon Lothar (the one and only) gave to the proprietary protocol CASIO used on the fx-9860G and upper, and is still using on Prizm & the fx-CG50 (or Graph 90+E) for screenstreaming and OS updating.

Before I started the project, there were already a few projects, but none satisfied me: xfer9860 by Andreas Bertheussen, which only managed the fx-9860G by hardcoding its model ID (for what I've understood), and UsbConnector by Nessotrin (an occasional member of Planète Casio), which I didn't like the project organization (also, C++, yuk).

So I started the P7 project in August 2016, which at the time was only made of a library, called libp7, and a transfer utility, p7. The first version was published a week later, even though it couldn't do a lot (I have lost part of the commit history because of the reunion of the utilities under a `p7utils` repository, but I think I could only send and request a file on the storage memory, which was already great for the time). In september, I added a new utility, p7screen, which could display a streamed screen for your fx-9860G! I also made, in january 2017, a little Python 3.x module, pyp7, which uses libp7, and Intelligide (another member from Planète Casio) started a GUI project using C++ and Qt, p7gui. Also, but that's a little under the hood project, I'm making p7os, which will be able to backup and, maybe later, install a new OS on your fx-9860G calculator. :)

Aside from the P7 project, I'm making projects which will later be merged to it, although this is unofficial for now: libg1m (for manipulating files under CASIO format), and libfontcharacter (a library for managing CASIO's encoding and tokens), based on the FONTCHARACTER reference, a reference of all existing characters, with Unicode equivalents, known tokens, ...

Today, the released version of p7utils/libp7 (3.0) cannot, to me, do a lot today, although it makes what wasn't so basic to now something easily accessible. But there's still a lot to do, which will probably be done for the 4.0 release:
- include usage of libg1m in libp7, in order to manage MCS transactions;
- manage the old CAS protocol(s), so libp7 allow you to interact with your Graph 100 or any old calculator;
- integrate file encoding using libg1m (which can only decode for now), for saving your backups in the G1M/G2M/G1R/G2R format;
- manage the fx-CG*0 screenstreaming formats (Projector mode is already supported in the indev version);
- manage CASIO's SB-88[A] cables (libp7 only manages active serial cable for now, such as the PC/CASIO USB cable sold by Util Pocket in France);
- plenty of other awesome stuff! :)

The official website of the P7 project is right here (thanks to Planète Casio for hosting it):

Any suggestions or complaint? Don't hesitate, answer to this topic! :P
(also, thanks p4nix, the website couldn't allow me to answer your private message :D)
Powered by EzPortal