Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Ajouter CasioPython en mode examen
ZezombyeHors ligneRédacteurPoints: 1625 Défis: 12 Message

Ajouter CasioPython en mode examen

Posté le 05/09/2018 12:45

Pour que CasioPython soit disponible en mode examen, il faudrait faire un OS modifié qui l'inclut.

Niveau technique, ça m'a pas l'air très difficile :
- Mettre le code binaire de CPy dans l'OS
- Soit ajouter un lien vers CPy dans le menu, soit modifier le lien de E-Con2 (qui sert à rien) pour qu'il pointe vers CPy.
- Changer l'icône, mais ça c'est assez facile dès lors qu'on sait où la trouver.

Par contre apparemment il y aurait des problèmes au niveau du copyright. (mais pour moi, on viole déjà la règle "ne pas faire de reverse engineering" rien qu'en flashant des OS custom...)

Du coup ce topic est pour discuter de comment réaliser cette manipulation tout en ne se prenant pas un procès.
(ah et tant qu'on y est, peut être ajouter Eigenmath )


Pages : 1, 2, 3Suivante
KikoodxHors ligneMembrePoints: 1365 Défis: 7 Message

Citer : Posté le 05/09/2018 13:33 | #


(C'est plutôt utopique mais : )
Casio ne pourrait pas l'intégrer de base dans les nouvelles calculatrices avec ton accord ?
LephenixnoirEn ligneAdministrateurPoints: 15757 Défis: 136 Message

Citer : Posté le 05/09/2018 13:35 | #


Pas très difficile ? Tu as au moins oublié plusieurs points non triviaux (en plus des checksums à recalculer).

1. Ça va prendre plus de place que E-CON 2. Il faut donc déplacer l'adresse de début de la mémoire de stockage. Selon le nombre d'endroits où elle est présente dans le code (si encore on est capable de la trouver), cette tâche varie entre difficile et carrément impensable.

2. Ensuite il faut en savoir suffisamment sur la procédure de mise à jour pour s'assurer que le nouvel OS sera bien copié en entier. Si c'est bien codé il n'y a rien à faire, si c'est hardcodé ça peut être une barrière horrible (brickage de caltos en vue pendant les tests).

3. Il faut certainement formater la mémoire de stockage et recréer le système de fichiers puisque le point d'entrée change.

4. Il pourrait carrément y avoir une limite de taille à l'OS pour plusieurs raisons ; si elle existe et que tu passes par-dessus tu peux abandonner l'idée.

Je considère personnellement cette idée une folie et je voudrai avoir des arguments techniques convaincants avant d'essayer... (malheureusement comme tu n'es pas employé chez Casio tu ne les as certainement pas).

Honnêtement ça serait plus simple de filer le port à Casio oui...
Shadow15510Hors ligneAdministrateurPoints: 3789 Défis: 15 Message

Citer : Posté le 05/09/2018 13:50 | #


J'avais entendu dire que certains OS "s'autodétruiseent" dès que l'on essaye de l'ouvrir...
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Moral
   95%
ParisseHors ligneMembrePoints: 182 Défis: 0 Message

Citer : Posté le 05/09/2018 15:15 | #


Ceci m'interesse egalement beaucoup pour KhiCAS. Je n'ai aucune idee de la difficulte technique, par contre concernant le droit voici l'etat de mes reflexions:
1/ si c'est en accord avec Casio, ca peut se faire par exemple sur la base d'un addin sous licence GPL2 pour KhiCAS, il faut alors que Casio mette a disposition les outils necessaires permettant de creer un OS modifie si quelqu'un souhaite modifier KhiCAS.
2/ sans accord avec Casio, il n'y a pas a mon sens de violation de copyright si on suit scrupuleusement le code de la propriete intellectuelle a propos de l'interoperabilite.
Article L122-6-1
Créé par Loi n°94-361 du 10 mai 1994 - art. 5 JORF 11 mai 1994
...
III. La personne ayant le droit d'utiliser le logiciel peut sans l'autorisation de l'auteur observer, étudier ou tester le fonctionnement de ce logiciel afin de déterminer les idées et principes qui sont à la base de n'importe quel élément du logiciel lorsqu'elle effectue toute opération de chargement, d'affichage, d'exécution, de transmission ou de stockage du logiciel qu'elle est en droit d'effectuer.

IV. La reproduction du code du logiciel ou la traduction de la forme de ce code n'est pas soumise à l'autorisation de l'auteur lorsque la reproduction ou la traduction au sens du 1° ou du 2° de l'article L. 122-6 est indispensable pour obtenir les informations nécessaires à l'interopérabilité d'un logiciel créé de façon indépendante avec d'autres logiciels, sous réserve que soient réunies les conditions suivantes :

1° Ces actes sont accomplis par la personne ayant le droit d'utiliser un exemplaire du logiciel ou pour son compte par une personne habilitée à cette fin ;

2° Les informations nécessaires à l'interopérabilité n'ont pas déjà été rendues facilement et rapidement accessibles aux personnes mentionnées au 1° ci-dessus ;

3° Et ces actes sont limités aux parties du logiciel d'origine nécessaires à cette interopérabilité.

Les informations ainsi obtenues ne peuvent être :

1° Ni utilisées à des fins autres que la réalisation de l'interopérabilité du logiciel créé de façon indépendante ;

2° Ni communiquées à des tiers sauf si cela est nécessaire à l'interopérabilité du logiciel créé de façon indépendante ;

3° Ni utilisées pour la mise au point, la production ou la commercialisation d'un logiciel dont l'expression est substantiellement similaire ou pour tout autre acte portant atteinte au droit d'auteur.

LephenixnoirEn ligneAdministrateurPoints: 15757 Défis: 136 Message

Citer : Posté le 05/09/2018 15:17 | #


Ceci m'interesse egalement beaucoup pour KhiCAS. Je n'ai aucune idee de la difficulte technique, par contre concernant le droit voici l'etat de mes reflexions:

Pour KhiCAS, le but du jeu est-il de produire un OS qui contient toutes les applications par défaut plus KhiCAS ou bien produire une image OS qui contienne uniquement KhiCAS et aucune des applications par défaut ?
NemhardyHors ligneGrand maître des Traits d'EspritPoints: 1235 Défis: 54 Message

Citer : Posté le 05/09/2018 15:29 | #


Je rejoins également LePhé sur sa première remarque et le caractère pas si «pas difficile» que ça de l'entreprise.

Ceci dit, je n'ai pas énormément d'infos très techniques et poussées, mais quand je vois ce qu'a fait The6P4C récemment (https://the6p4c.github.io/projects/hollyhock.html), je me dis que ce n'est pas être pas non plus inenvisageable d'avoir quelque chose qui s'approche de ce que l'on veut.
N'attendez pas qu'il n'y ait plus de miel : スススススススススススススススススススススススススス養蜂家スススススススススススススススススススススススススススススススススススス蜂家
Shadow15510Hors ligneAdministrateurPoints: 3789 Défis: 15 Message

Citer : Posté le 05/09/2018 15:37 | #


Ça voudrait dire que l'on peut également chinter le mode exam, que l'on peut mettre tous les add-in de cours et formules comme des add-in de bases...
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Moral
   95%
CritorEn ligneAdministrateurPoints: 1369 Défis: 0 Message

Citer : Posté le 05/09/2018 16:47 | #


Lephenixnoir a écrit :
Ceci m'interesse egalement beaucoup pour KhiCAS. Je n'ai aucune idee de la difficulte technique, par contre concernant le droit voici l'etat de mes reflexions:

Pour KhiCAS, le but du jeu est-il de produire un OS qui contient toutes les applications par défaut plus KhiCAS ou bien produire une image OS qui contienne uniquement KhiCAS et aucune des applications par défaut ?

Personnellement, je serais pour cette 2ème possibilité.
Englober l'appli KhiCAS dans un firmware Graph 90+E minimaliste codé à partir de zéro et gérant un mode examen.
Casio n'aurait légalement rien à y redire puisque l'on ne réutiliserait/modifierait pas son code.
Contrairement à CasioPython, KhiCAS ne fait pas que du Python. C'est un environnement mathématique complet et il est donc envisageable de lui faire remplacer ainsi toutes les fonctionnalités mathématiques de la Graph 90+E.
LephenixnoirEn ligneAdministrateurPoints: 15757 Défis: 136 Message

Citer : Posté le 05/09/2018 16:52 | #


Je demande car tout à coup je doute. Quand on m'a demandé mon avis sur la faisabilité de la chose, j'ai répondu que modulo le travail d'implémentation cela avait toutes les chances de réussir... pour la seconde option.

Pour la première, contactez plutôt Casio, de toute façon sans leurs ingénieurs ça me paraît quasiment impossible.
ZezombyeHors ligneRédacteurPoints: 1625 Défis: 12 Message

Citer : Posté le 05/09/2018 17:28 | #


Je doute que casio soit d'accord pour mettre un port de MPy sur Graph 35+E, s'ils l'étaient ils auraient pas eu besoin de moi pour faire un port

(et surtout que j'ai licencé CPy sous GPL v3, donc ils doivent publier le code source je crois).

1. Ça va prendre plus de place que E-CON 2. Il faut donc déplacer l'adresse de début de la mémoire de stockage. Selon le nombre d'endroits où elle est présente dans le code (si encore on est capable de la trouver), cette tâche varie entre difficile et carrément impensable.


Hmm, c'est vrai que j'avais pas pensé à ça. Qu'en est il de l'espace pris par les 4 langues autres que le français ?

3. Il faut certainement formater la mémoire de stockage et recréer le système de fichiers puisque le point d'entrée change.


Ca c'est le cas pour le flash simple (35 -> 75) non ? Du coup l'OS gère tout seul.

Il faudrait débuter par un simple "hello world" (pas de contraintes de taille) pour voir déjà si c'est possible et quelles adresses à modifier (pour moi, y'a que le pointeur du programme quand on clique sur E-Con2 dans le menu, la taille change pas donc on modifie pas la mémoire de stockage).
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
LephenixnoirEn ligneAdministrateurPoints: 15757 Défis: 136 Message

Citer : Posté le 05/09/2018 17:35 | #


Hmm, c'est vrai que j'avais pas pensé à ça. Qu'en est il de l'espace pris par les 4 langues autres que le français ?

Définitivement non. Tu tiens vraiment à casser l'OS ? Tu dois avoir une notion que quand tu fais ce genre du greffes, tu dois changer le moins de choses possibles, sinon t'es bon pour tout réécrire.

Cette place suffit peut-être mais là pour le coup l'utiliser je qualifie ça de définitivement impossible. Surtout que l'espace libéré ne sera pas continu.

Ca c'est le cas pour le flash simple (35 -> 75) non ? Du coup l'OS gère tout seul.

Pas forcément, la mémoire de stockage est peut-être placée de façon à ce que l'OS ait, par exemple, toujours 2.5 Mo. Tant que l'OS fait moins que ça tu n'as pas besoin de refaire le système de fichiers car il n'écrase pas la mémoire de stockage. C'était ça mon idée de « limite fixe ».

Il faudrait débuter par un simple "hello world" (pas de contraintes de taille) pour voir déjà si c'est possible et quelles adresses à modifier (pour moi, y'a que le pointeur du programme quand on clique sur E-Con2 dans le menu, la taille change pas donc on modifie pas la mémoire de stockage).

Voilà déjà plus intelligent. As-tu localisé le code de E-CON 2 dans la ROM ? (On ne va pas le faire à ta place.)
CritorEn ligneAdministrateurPoints: 1369 Défis: 0 Message

Citer : Posté le 05/09/2018 18:52 | #


Lephenixnoir a écrit :
Hmm, c'est vrai que j'avais pas pensé à ça. Qu'en est il de l'espace pris par les 4 langues autres que le français ?

Définitivement non. Tu tiens vraiment à casser l'OS ? Tu dois avoir une notion que quand tu fais ce genre du greffes, tu dois changer le moins de choses possibles, sinon t'es bon pour tout réécrire.

Cette place suffit peut-être mais là pour le coup l'utiliser je qualifie ça de définitivement impossible. Surtout que l'espace libéré ne sera pas continu.


Les langues autres que l'anglais sont stockées à la suite en fin d'OS.
Il est possible d'en supprimer/déplacer, il y a un index en fin des images ROM.

Justement, quand on patche une image ROM Graph 35+USB (SH3) pour l'installer sur Graph 25+ Pro, l'outil que j'ai codé demande de choisir 1 langue à supprimer. Parce que sinon, ça ne rentrera pas dans la petite Flash de la Graph 25+Pro..
Voir code source : https://tiplanet.org/forum/archives_voir.php?id=4475
LephenixnoirEn ligneAdministrateurPoints: 15757 Défis: 136 Message

Citer : Posté le 05/09/2018 19:25 | #


Merci de me corriger, ça fait du bien. Y a-t-il une documentation du format de stockage ? Combien de versions d'OS ont été testées avec ce mécanisme ?

Enfin, comment savez-vous que modifier le tableau ne casse rien d'autre dans le système. Sans pousser au vice, existe-t-il a minima un syscall qui abstraie les adresses et dont on puisse supposer qu'il soit le seul à les connaître ?
ZezombyeHors ligneRédacteurPoints: 1625 Défis: 12 Message

Citer : Posté le 05/09/2018 19:40 | #


Critor : ça prend combien de place les langues autres que l'anglais ? Voir s'il est possible de mettre CPy à la place des langues (faut environ 256ko) afin de pas avoir à bouger la mémoire de stockage. (ou alors, faudrait voir si la limite fixe de 2.5mo est bonne : l'OS actuel faisant 2,43 mo, y'a peut être moyen de grapiller)
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
ParisseHors ligneMembrePoints: 182 Défis: 0 Message

Citer : Posté le 05/09/2018 20:20 | #


Pour Khicas, je pense qu'il faut etudier en priorite la resistance au mode examen pour des raisons techniques et non techniques:
- Khicas fait appel a pas mal de syscalls de l'OS Casio, je ne vois pas comment s'en passer facilement. Sauf si le firmware Numworks est portable sur la Casio Graph 90+e, auquel cas on peut faire un firmware Numworks+giac qui tournerait sur Casio en attendant que Numworks se decide a upgrader la memoire flash disponible. Mais meme dans ce cas, ce serait beaucoup de developpement.
- Khicas n'a pas l'equivalent de certaines applications de Casio: tableur, les addins de physique/chimie, la 3d. D'autres applications de Casio comme l'application fonction ont des equivalents par des commandes, ces commandes sont simples mais ca necessite plus de maturite.
C'est bien mieux d'avoir les apps Casio et KhiCAS en meme temps comme actuellement, le seul probleme de la solution c'est que ce n'est pas disponible en mode examen. Et meme si le firmware Numworks est portable sur la Graph 90+e, ca risque d'etre difficile de faire fonctionner la led du mode examen de la Casio: si on a les infos pour le faire, ce serait probablement bien plus simple de faire fonctionner la led pendant l'execution de Khicas.
A mon avis, la strategie qui a le plus de chance de reussir, c'est de convaincre Casio d'avoir des addins resistants au mode examen qu'ils selectionneraient eux (a commencer par les leurs!). Sinon, il faut arriver a eviter le mode examen aux examens de maths: j'envisage d'ecrire a l'inspection generale en leur demandant que l'activation du mode examen soit au choix du redacteur du sujet. Je ne pense pas que les matheux soient les demandeurs. On a un argument fort en mettant en evidence que le mode examen defavorise les eleves modestes : en gros on passe de milieu de gamme a haut de gamme en ajoutant KhiCAS, ou d'entree de gamme a milieu de gamme en ajoutant MicroPython et Eigenmath sur les casio monochrome. Peut-etre faut-il lancer une petition sur change.org ou alerter les medias.
LephenixnoirEn ligneAdministrateurPoints: 15757 Défis: 136 Message

Citer : Posté le 05/09/2018 20:32 | #


- Khicas fait appel a pas mal de syscalls de l'OS Casio, je ne vois pas comment s'en passer facilement. Sauf si le firmware Numworks est portable sur la Casio Graph 90+e, auquel cas on peut faire un firmware

Mon plus gros projet actuel consiste à développer une sorte de kernel isolé sur les Graph 75 et 90 ; à moins que KhiCAS utilise des fonctions très exotiques du système il y a de bonnes chances pour que je sois capable de produire un firmware approprié avec la bonne quantité de travail.

À l'inverse, « porter » le firmware Numworks me paraît plus subtil. Je ne connais pas le matériel de la Numworks mais ce n'est pas probablement pas un microprocesseur à base de SuperH de chez Renesas. Sous cette hypothèse, la plupart des drivers seraient inutiles donc ce ne serait même pas un « port », juste réécrire la moitié du code.

C'est bien mieux d'avoir les apps Casio et KhiCAS en meme temps comme actuellement, le seul probleme de la solution c'est que ce n'est pas disponible en mode examen.

Sur ce point-là, je suis bien d'accord. La limite de 2 Mo est dommage mais ça reste la meilleure solution en termes de fonctionnalités.

A mon avis, la strategie qui a le plus de chance de reussir, c'est de convaincre Casio d'avoir des addins resistants au mode examen qu'ils selectionneraient eux (a commencer par les leurs!).

Avec une sorte de signature cryptographique, notamment... on a déjà évoqué cette idée ici sur Planète Casio. Cela dit leur système est tellement l'incarnation d'une faille de sécurité que je ne sais pas s'ils réussiront à se convaincre eux-mêmes qu'ils peuvent regarder nos sources et dire « ok, c'est safe ». Ça vaut le coup d'essayer, certainement.

Quant à médiatiser tout ça, j'ai plus de réserves, mais je ne fais pas tellement partie de ce monde alors ce n'est pas trop à moi d'émettre un diagnostic.
ZezombyeHors ligneRédacteurPoints: 1625 Défis: 12 Message

Citer : Posté le 05/09/2018 20:35 | #


Hmm, j'avais regardé pour tester les OS sur les émulateurs, mais apparemment ils utilisent des OS différents (outre l'IO, les langues sont compressées ou dans des fichiers différents).

Est ce qu'on pourrait facilement briquer une calto avec un OS custom ? Flasher un OS ne détruit pas le bios (qui permet la mise en mode OS error) si ?
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
LephenixnoirEn ligneAdministrateurPoints: 15757 Défis: 136 Message

Citer : Posté le 05/09/2018 20:38 | #


Zezombye a écrit :
Est ce qu'on pourrait facilement briquer une calto avec un OS custom ? Flasher un OS ne détruit pas le bios (qui permet la mise en mode OS error) si ?

Très bonne question. D'après ce que Cakeisalie5 en a dit, il semblerait que non. Toutefois, dans ses tests il a quand même brické deux caltos, donc... la réponse à la deuxième question est incertaine mais la réponse à la première est clairement oui.
ParisseHors ligneMembrePoints: 182 Défis: 0 Message

Citer : Posté le 05/09/2018 21:22 | #


Lephenixnoir a écrit :

Mon plus gros projet actuel consiste à développer une sorte de kernel isolé sur les Graph 75 et 90 ; à moins que KhiCAS utilise des fonctions très exotiques du système il y a de bonnes chances pour que je sois capable de produire un firmware approprié avec la bonne quantité de travail.

Non, pas de fonctions exotiques. Si une bonne partie du travail est deja fait, ca change bien sur la perspective. Mais quid du mode examen?


Quant à médiatiser tout ça, j'ai plus de réserves, mais je ne fais pas tellement partie de ce monde alors ce n'est pas trop à moi d'émettre un diagnostic.

Je prefererais aussi de loin un bon accord avec Casio (signature cryptographique par exemple, qui pourrait obliger TI et HP a suivre) ou un geste de l'education nationale a une mediatisation de type canard enchaine, mais il ne faut pas s'interdire ce genre de possibilites.
LephenixnoirEn ligneAdministrateurPoints: 15757 Défis: 136 Message

Citer : Posté le 05/09/2018 21:25 | #


Non, pas de fonctions exotiques. Si une bonne partie du travail est deja fait, ca change bien sur la perspective. Mais quid du mode examen?

Pour le mode examen, je pense que le travail de reverse-engineering de Critor a permis de localiser la zone de code qui gère la LED, non ? Dans ce cas il doit suffir de copier ce que l'OS fait. Après tout je ne fais que ça. xD

Je prefererais aussi de loin un bon accord avec Casio (signature cryptographique par exemple, qui pourrait obliger TI et HP a suivre)

Peut-être peut-on trouver dans nos communautés quelqu'un qui soit assez calé en cryptographie pour nous fournir un avis éclairé sur la faisabilité de la signature d'add-ins ?
Pages : 1, 2, 3Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 80 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd