DuCtape, ou la programmation de programmes en JS
Posté le 19/06/2021 18:21
Bon, si vous avez regardé le salon #projets de la shoutbox, vous le savez peut-etre, je travaille sur un add-in pour interpreter du JS pour la Graph 90+E.
Le developpement de l'add-in étant à un état presque utilisable(y a toujours des bugs), j'ai voulu en parler ici
Vu que au début du dev de l'add-in j'ai eu une flemme incroyable de seulement lire le fichier
\\fls0\code.js
ca a résulté en un truc sympa: des loaders(en gros c'est des programmes en JS qui load d'autres programmes en JS)
Je commence à en écrire un, CasioRun qui permet aussi de charger des modules
(aussi j'ai envie de faire un module qui permetterait d'utiliser l'USB pour se connecter a l'Interwebz. Quoi? J'en ai dit trop?)
Bon c'est temps de parler de problemes connus:
-Read address error dès que j'appuie sur une touche (retirer le
getKey
ne fait pas crash) voici le code JS
var obj = {
name: "Maxime",//Si tu es Maxime, ping moi sur le Discord avec le message "Flag found, capt'n" :kappa:
color: RGB888(255, 0, 188), //RGB888 -> RGB565
x: 1,
y: 1
}
clear(RGB888(255, 255, 255))
text(obj.x, obj.y, obj.color, obj.name)
update()
getKey()
@RDP
Citer : Posté le 20/06/2021 02:16 | #
N'est pas affiché dans la liste des messages avec @RDP.
Ce message sert juste d'aide mémoire pour le rédacteur en charge de la revue de ce soir
[EDIT] My bad il y était mais je l'avais pas vu Excusez moi il est 2h du matin j'ai pas toute ma tête
(Et de toute façon, vous pouvez pas dire le contraire)
MultipliCasio
RDM Calculs
Back Mirror
A Switch To The Top C
Citer : Posté le 23/06/2021 11:34 | #
Ça fait beaucoup trop longtemps que j'attends de poster ici, désolé !
Je trouve ça absolument génial ! C'est vraiment cool qu'on puisse porter des interpréteurs comme ça, et ça montre que les programmes écrits de façon vraiment portables passent vraiment à toutes les plateformes.
Oubliez le rendu HTML, on va bientôt avoir Planète Casio v5 dans toute sa splendeur sur la calto !
(Après tout y'a pas beaucoup de JS sur PCv5 !)
Quelle adresse, quelle fonction à cette adresse ?
Citer : Posté le 23/06/2021 11:41 | #
Quelle adresse, quelle fonction à cette adresse ?
Pour ca, ca été fix
mais j'ai toujours quelques bugs
Genre avec ce code
clear(white)
text(1,1,black,"Goose Edit 1.0")
line(0,12,396,12,black)
var lS = 0
var lines = openFile("\\\\fls0\\EDIT.JS").split("\n")
for(var i = 0; i < lines.length; i++) {
text(1,11*i+15,black,lines[i])
if (i == lS) {
line(0,15+(i*11)+11,15,15+(i*11)+11,red)
line(0,15+(i*11),15,15+(i*11),red)
}
}
update()
getKey()
(merde j'ai oublié
j'ai un autre read address error
0e0 Read address error (probably alignment)
PC= 003062e
TEA= 8c3f94d6
TRA= 0x0
Parcontre comment on récupere le nom d'une fonction a partir d'une addresse, on utilise un décompilo?
Citer : Posté le 23/06/2021 11:52 | #
J'ai corrigé des bugs récemment sur dline(), vérifie que c'est pas ça déjà.
Tu peux désassembler :
Tu peux aussi générer une carte avec les adresses de toutes les fonctions et variables :
Et ensuite lire build-cg/map.
Citer : Posté le 23/06/2021 13:02 | #
J'ai fait un
Citer : Posté le 23/06/2021 13:13 | #
Elle est très certainement dedans. Tu cites «003062e» mais il manque un chiffre ici.
Citer : Posté le 23/06/2021 19:38 | #
(deso pour la longue absence)
A bah non c'était à 0033062e
Le out.s
https://t.breizh.pm/HQdM8/out.s
Citer : Posté le 23/06/2021 19:48 | #
C'est dans remove_link(), une fonction de l'allocateur dynamique. Il est très probable que le programme ait commis un buffer overflow sur un objet alloué avec malloc.
Citer : Posté le 23/06/2021 19:52 | #
donc ducoup j'assume que c'est dans un malloc que ca a foiré...
Citer : Posté le 23/06/2021 19:56 | #
Pas le malloc, mais l'usage de la mémoire qui a été fournie. Par exemple tu alloues 10 int, tu en écris 11, boum tu obtiens ce bug.
Citer : Posté le 24/06/2021 17:05 | #
Bon j'ai fait un autre programme, et j'ai eu la meme read address error.
C'était juste une erreur de syntaxe :|
Citer : Posté le 24/06/2021 19:41 | #
Ha ha c'est presque décevant comme conclusion. Quelle erreur de syntaxe exactement ?
Au fait, c'est pas pour provoquer, mais les points-virgules implicites c'est universellement considéré comme une mauvaise idée, il faut les mettre
Citer : Posté le 24/06/2021 19:42 | #
un pauvre case mal placé
Citer : Posté le 24/06/2021 19:43 | #
Ah dans le code C, je vois, je croyais dans le JS (ça paraîssait gros vu qu'il y a si peu de code dans les fichiers de test). Ok, bon courage pour la suite du coup !
Si tu as une démo, un truc testable ou quoi que ce soit, n'hésite pas à mettre le paquet dessus.
Citer : Posté le 24/06/2021 19:46 | #
Ah dans le code C, je vois, je croyais dans le JS (ça paraîssait gros vu qu'il y a si peu de code dans les fichiers de test). Ok, bon courage pour la suite du coup !
alors, c'était sur un autre programme JS qui avait beacoup trop de switches, mais je travaille dessus(pour info c'est un corgi quest 7, pour les fans de AHiT)
Citer : Posté le 25/06/2021 09:00 | #
Tu nous ajoute le support de HTML et CSS avec un moteur de rendu, des onglets et tout ?
Citer : Posté le 25/06/2021 10:19 | #
ok j'ai fait un truc con
J'essayais de load mon programme avec mon loader, et il ne veut pas run.
Je regarde mon code, et la, je me rends compte que le programme avait dépassé la limite de 8KiB que j'avais mis.
Ajouté le 11/10/2021 à 08:40 :
Voici la première vidéo venant de DuCtape(oui j'ai changé le nom, et j'ai aussi mis un loader par defaut)
Bon c'est pas très stable mais bon, au moins c'est quelquechose