Page 1 of 12

Convertisseur programmes basic: couleur/monochrome

Unread postPosted: 15 Sep 2015, 12:41
by Wistaro
Hey bonjour à tous,

En ce moment, j'ai comme projet de réaliser un convertisseur multitâche en ligne, codé en PHP/Ajax. Il pourrait convertir:

~ Un programme BASIC pour écran couleurs en programme BASIC pour calculatrices monochromes,
~ Un programme BASIC pour calculatrices monochromes en écran couleur
~ Un programme BASIC pour calculatrices > 83+ en programme compatible avec les anciennes TI82 (cette fonctionnalité reste à voir)


Il permettra par la suite de sauvegarder un programme, de l'éditer sur pc, de l'exporter....



J'ai déjà codé une partie du programme. Malheureusement, je ne vois pas comment "décoder" un fichier 8xp sans me servir d'une application déjà existante. Si quelqu'un aurait une idée, je suis preneur :)

Aussi, je me demandais s'il existait une liste de toutes les fonctions ajoutées (ou modifiées) au basic z80 pour calculatrices couleur.


Merci de m'avoir lu!

Re: Convertisseur basic couleur/monochrome/versions

Unread postPosted: 15 Sep 2015, 12:43
by Ti64CLi++
Bonne chance en tout cas ;)

Re: Convertisseur basic couleur/monochrome/versions

Unread postPosted: 15 Sep 2015, 13:48
by GalacticPirate
Cool ! Je me disais depuis un certain temps que critor devrait organiser une conversion de l'immense bibliothèque basic monochrome vers la 83 PCE, mais si ton projet aboutit, ce sera génial ! En plus, j'imagine que ce serait super d'avoir Dynatrig, ou d'autres programmes utiles sur 83PCE/84+CE !

Re: Convertisseur basic couleur/monochrome/versions

Unread postPosted: 15 Sep 2015, 15:16
by Adriweb
Il te faut un tokenizer/detokenizer.

Le format général est connu est documenté par exemple sur http://www.ticalc.org/pub/text/calcinfo/83pformat.txt
Pour le format d'un 8xp en particulier : http://jonimoose.net/calcstuff/tilp/doc ... ml#program
Pour les tokens (liste plus récente que dans le lien ci-dessus), j'ai justement fait un rassemblement des choses sur le GitHub TI-Planet : https://github.com/TI-Planet/z80_basic_ ... tokens.csv

Il y a environ 8 ans, le créateur du site http://ti.zewaren.net m'avait envoyé son code PHP qui faisait ça... j'ai toujours son .zip, mais c'est du code "vieux". Il faudrait faire ça proprement.
Bref, une bibliothèque PHP de gestion de fichiers TI serait la bienvenue. (Mais... pourquoi pas client-side tout en JS? C'est tout autant faisable et surtout, pourrait marcher en offline... En fait, faudrait les 2, ils peuvent être utiles dans des cas distincts)

J'en profite pour faire de la pub pour ma doc des vartypes exacts des 83PCE :P

Re: Convertisseur basic couleur/monochrome/versions

Unread postPosted: 15 Sep 2015, 16:51
by Epharius
Justement, je comptais en faire un un de ces quatre !
Si tu as besoin d'aide je me débrouille en JavaScript et en PHP, et puis ça fait longtemps que je n'ai pas fait de web alors ça me replongerait dedans :p
En tout cas bonne chance, ça va être cool et puis ça peut permettre de faire autre chose que convertir les programmes basic Z80 en basic eZ80 (par exemple un éditeur de programme en ligne, m'enfin ça c'est autre chose).

Re: Convertisseur basic couleur/monochrome/versions

Unread postPosted: 15 Sep 2015, 16:57
by Wistaro
Adriweb wrote:Il te faut un tokenizer/detokenizer.

Le format général est connu est documenté par exemple sur http://www.ticalc.org/pub/text/calcinfo/83pformat.txt
Pour le format d'un 8xp en particulier : http://jonimoose.net/calcstuff/tilp/doc ... ml#program
Pour les tokens (liste plus récente que dans le lien ci-dessus), j'ai justement fait un rassemblement des choses sur le GitHub TI-Planet : https://github.com/TI-Planet/z80_basic_ ... tokens.csv

Il y a environ 8 ans, le créateur du site http://ti.zewaren.net m'avait envoyé son code PHP qui faisait ça... j'ai toujours son .zip, mais c'est du code "vieux". Il faudrait faire ça proprement.
Bref, une bibliothèque PHP de gestion de fichiers TI serait la bienvenue.


Avoir le code, pourquoi pas... Peut-être a-t-il une autre approche de la chose que moi?
Personnellement, je me base sur des regex et sur tout un travail basé sur les chaînes de caractères. Enfin pour ma fonction précise, pas pour convertir du 8xp en text plain (et vice-versa).

Et merci.

Adriweb wrote:
(Mais... pourquoi pas client-side tout en JS? C'est tout autant faisable et surtout, pourrait marcher en offline... En fait, faudrait les 2, ils peuvent être utiles dans des cas distincts)

J'en profite pour faire de la pub pour ma doc des vartypes exacts des 83PCE :P



Pour plusieurs raisons. Déjà je voudrais faire une interface complète, avec un espace utilisateur où la personne pourrais sauvegarder des programmes, valider leur syntaxe pour un certain modèle, convertir...Peut-être même tester en ligne le code, même si je ne pense pas que cela soit possible (?).

Après une version offline, pourquoi pas...A voir. Déjà si j'arrive à faire la totalité de la partie online, ce sera déjà pas mal je trouve ^^

Re: Convertisseur basic couleur/monochrome/versions

Unread postPosted: 15 Sep 2015, 16:58
by Wistaro
Epharius wrote:Justement, je comptais en faire un un de ces quatre !
Si tu as besoin d'aide je me débrouille en JavaScript et en PHP, et puis ça fait longtemps que je n'ai pas fait de web alors ça me replongerait dedans :p
En tout cas bonne chance, ça va être cool et puis ça peut permettre de faire autre chose que convertir les programmes basic Z80 en basic eZ80 (par exemple un éditeur de programme en ligne, m'enfin ça c'est autre chose).


Lit mon post précédent ^^

Oké, pas de problème ! C'est gentil :)

Re: Convertisseur basic couleur/monochrome/versions

Unread postPosted: 15 Sep 2015, 17:44
by Lionel Debroux
+1 pour du pur JS. Moyennant quelques précautions, le code JS peut tourner à la fois côté serveur (Node.js) et côté client (browser). D'assez nombreux modules JS gèrent les deux modes.
Et puis on peut produire du JS à partir de C/C++, grâce à Emscripten.

Re: Convertisseur basic couleur/monochrome/versions

Unread postPosted: 15 Sep 2015, 17:56
by Clément.7
Salut ! Ça faisait un bon moment que j'étais pas vu sur le forum, alors...

Adriweb wrote:Il te faut un tokenizer/detokenizer.

Le format général est connu est documenté par exemple sur http://www.ticalc.org/pub/text/calcinfo/83pformat.txt
Pour le format d'un 8xp en particulier : http://jonimoose.net/calcstuff/tilp/doc ... ml#program
Pour les tokens (liste plus récente que dans le lien ci-dessus), j'ai justement fait un rassemblement des choses sur le GitHub TI-Planet : https://github.com/TI-Planet/z80_basic_ ... tokens.csv

Il y a environ 8 ans, le créateur du site http://ti.zewaren.net m'avait envoyé son code PHP qui faisait ça... j'ai toujours son .zip, mais c'est du code "vieux". Il faudrait faire ça proprement.
Bref, une bibliothèque PHP de gestion de fichiers TI serait la bienvenue. (Mais... pourquoi pas client-side tout en JS? C'est tout autant faisable et surtout, pourrait marcher en offline... En fait, faudrait les 2, ils peuvent être utiles dans des cas distincts)

J'en profite pour faire de la pub pour ma doc des vartypes exacts des 83PCE :P


Moi en tout cas je serai très intéressé par cette bibliothèque que je souhaite désespérément obtenir depuis plus d'u an ! En plus ça me permettrait de me relancer un peu dans la prog' sur calto.
Mais sinon pour du pure JS côté client ça dépends :
- Si tu veux juste faire une conversion en temps réel, prends du pure JS
- Si tu veux un espace membre, une sauvegarde des programmes, etc., prends du JS+PHP (Ajax) ou du Node.JS avec les WebSockets (j'espère que tout le monde me comprends :p )

Après de toutes façons il ne faut pas que la conversion des tokens se fasse côté serveur, le serveur doit juste s'occupper de convertir au format binaire TI.

Re: Convertisseur basic couleur/monochrome/versions

Unread postPosted: 15 Sep 2015, 18:13
by Adriweb
Clément.7 wrote:Après de toutes façons il ne faut pas que la conversion des tokens se fasse côté serveur, le serveur doit juste s'occupper de convertir au format binaire TI.

Tout peut se faire à la fois en JS-client et PHP-serveur. C'est vraiment pas avec ce genre de petites applis que le JS va être un facteur limitant.
Et comme l'a dit Lionel, il y a toujours Node.js pour faire tourner du JS côté serveur si besoin. (Mais je ne cracherais pas sur une bibliothèque PHP bien faite, donc Orientée objet, avec des tests, etc.)