Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » DuCtape, ou la programmation de programmes en JS
Loieducode Hors ligne Membre Points: 192 Défis: 6 Message

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


Tituya Hors ligne Administrateur Points: 2156 Défis: 26 Message

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
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

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 !)

-Read address error dès que j'appuie sur une touche

Quelle adresse, quelle fonction à cette adresse ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Loieducode Hors ligne Membre Points: 192 Défis: 6 Message

Citer : Posté le 23/06/2021 11:41 | #


Lephé a écrit :
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?
Trickswriting(sort le 1er avril):
   100%
Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

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 :

sh-elf-objdump -d build-cg/myaddin

Tu peux aussi générer une carte avec les adresses de toutes les fonctions et variables :

target_link_options(myaddin PRIVATE -Wl,-Map=map)

Et ensuite lire build-cg/map.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Loieducode Hors ligne Membre Points: 192 Défis: 6 Message

Citer : Posté le 23/06/2021 13:02 | #


J'ai fait un
sh-elf-objdump -d build-cg/Duktap+E.elf > out.txt
, et j'ai essayé de voir pour 003062e, mais je trouve rien
Trickswriting(sort le 1er avril):
   100%
Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 23/06/2021 13:13 | #


Elle est très certainement dedans. Tu cites «003062e» mais il manque un chiffre ici.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Loieducode Hors ligne Membre Points: 192 Défis: 6 Message

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
Trickswriting(sort le 1er avril):
   100%
Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Loieducode Hors ligne Membre Points: 192 Défis: 6 Message

Citer : Posté le 23/06/2021 19:52 | #


donc ducoup j'assume que c'est dans un malloc que ca a foiré...
Trickswriting(sort le 1er avril):
   100%
Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Loieducode Hors ligne Membre Points: 192 Défis: 6 Message

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 :|
Trickswriting(sort le 1er avril):
   100%
Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

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
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Loieducode Hors ligne Membre Points: 192 Défis: 6 Message

Citer : Posté le 24/06/2021 19:42 | #


un pauvre case mal placé
Trickswriting(sort le 1er avril):
   100%
Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Loieducode Hors ligne Membre Points: 192 Défis: 6 Message

Citer : Posté le 24/06/2021 19:46 | #


Lephe a écrit :
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)
Trickswriting(sort le 1er avril):
   100%
Eragon En ligne Gardien des bots Points: 479 Défis: 0 Message

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 ?
Loieducode Hors ligne Membre Points: 192 Défis: 6 Message

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
Trickswriting(sort le 1er avril):
   100%

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 220 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