Page 2 sur 5

Re: BAC 2018 : du calcul formel avec Eigenmath sur Graph 90+

Message non luPosté: 12 Juin 2018, 20:36
de parisse
Unfortunately, I must strip some features to spare bytes, I'm trying to keep the most important ones (i.e. keep CAS features, I have dropped all geometry/plot commands for example). If you want to check, I have the current not functional addin test.g3a on my web page:
https://www-fourier.ujf-grenoble.fr/~parisse/casio/
If you need test.bin or object files I can also put them there.

Re: BAC 2018 : du calcul formel avec Eigenmath sur Graph 90+

Message non luPosté: 12 Juin 2018, 22:28
de amazonka
Thanks for sharing - i have checked the checksums and executable code size and file size etc in the header and offset for the checksum at the end of the file and all seems right to me and at correct offsets -so I also suspect that it is OS problem not mkg3a one. It must be really hard to make the file smaller and decide what features to drop. I noticed the strings at the end of the files are occupying quite a lot of space - close to how much you need to lose - maybe you can strip them out into a separate file (to be installed together with the addin) and have the addin read it on the fly via some index to make you addin considerably smaller.

Re: BAC 2018 : du calcul formel avec Eigenmath sur Graph 90+

Message non luPosté: 13 Juin 2018, 06:56
de parisse
I don't think I will do that unless I'm forced to, because it requires too many changes. But looking at the strings is an excellent idea, I can locate positions where I can remove code without loosing much functionnalities.

Re: BAC 2018 : du calcul formel avec Eigenmath sur Graph 90+

Message non luPosté: 13 Juin 2018, 07:02
de Adriweb
On the CE and the Nspire, programs are/can-be compressed first, making transfers faster and storage more efficient. Then, at launch, it's extracted in RAM. This is done by adding some self-extract code at the top of the program, that will run when the program is opened.
Could there be a way to do this quickly on the Casio? Could be RLE to code it faster, but generally a better one would be preferred (zx7 on the CE, zlib on the Nspire)

Re: BAC 2018 : du calcul formel avec Eigenmath sur Graph 90+

Message non luPosté: 13 Juin 2018, 11:37
de parisse
I don't think it is possible, because the RAM visible to the addin seems to be 1M large.

Re: BAC 2018 : du calcul formel avec Eigenmath sur Graph 90+

Message non luPosté: 13 Juin 2018, 12:03
de critor
Ah merci. Donc sur les 8M de RAM, on aurait droit à 1M de mémoire de travail pour l'application courante.
Cela va donc dans le sens de ce qui a été constaté pour le Python.

Re: BAC 2018 : du calcul formel avec Eigenmath sur Graph 90+

Message non luPosté: 13 Juin 2018, 12:34
de parisse
je ne sais pas comment ils arrivent a utiliser 1M, parce qu'il y a me semble-t-il 64K de tas et le reste du mega pour la stack et la ram statique. Sauf s'ils utilisent 2 malloc differents.
On peut soupconner que c'est ca qui permet de passer d'une appli a une autre en conservant la memoire, on observe en effet que si on quitte une appli avec la touche MENU et qu'on revient dedans on la retrouve dans l'etat courant. Si cette hypothese est vraie, il y aurait un maximum de 8 applis qu'on pourrait faire tourner simultanement.

Re: BAC 2018 : du calcul formel avec Eigenmath sur Graph 90+

Message non luPosté: 15 Juin 2018, 06:51
de amazonka
Simon Lothar wrote about g3a virtualisation among others here http://www.casiopeia.net/forum/viewtopi ... ing#p14339 “At best syscall 0x0026 could serve as template. 0x0026 is used to virtualize a G3A. Important syscalls in this course are 0x1DAA, which enumerates the 4096-byte blocks of an open file, and 0x0009, which sets the TLB.
Possibly syscall 0x0027 is informative, too. It virtualizes the static RAM (8*64k) of a G3A and uses 0x000A to set the TLB.

I did not unravel the way of 0x0026 in detail, therefore I cannot present examples. These things are rather complicated.”

Asking him what he knows about size of add-in limitations / workarounds may help a lot.

Separately my understanding of addin states being preserved is that only for the most resently exited addin it is preserved when you leave to main menu and come back to it. Also something gbl08ma I think was calling child process can be launched when another add-in/built-in app is started as e-activity like strip app (with checkered status bar) and then menu key press switches from child process to back to the parent app.

Having said it all it is still possible to create linked with eachother addins- for example have one addin save its state or more like history of inputs etc and when necessary launch another addin reusing those saved inputs for some additional functionality not available in the first addin...

Re: BAC 2018 : du calcul formel avec Eigenmath sur Graph 90+

Message non luPosté: 15 Juin 2018, 19:04
de parisse
I'm afraid I don't understand what you mean by virtualization and so, but perhaps that is not essential if I can fit something good enough in 2M.
For file exchange between addins, I think it could be very useful for khicas programs, because they could be written with the Python addin using Python khicas syntax compatibility.

Re: BAC 2018 : du calcul formel avec Eigenmath sur Graph 90+

Message non luPosté: 15 Juin 2018, 19:28
de amazonka
I don’t know myself but will ask Simon provided my login still works there.