Et voici un projet, sorti de presque nulle part, qui avance au fil de ces RDP.
Zezombye a écrit :BIDE v3.2 est sorti - version finale, je doute que j'ajouterai d'autres features.
La feature principale est la possibilité de faire des benchmarks avec l'émulateur. Par exemple :
beginBenchmark
For 1->I To 4000
A+1->A
Next
endBenchmark
beginBenchmark
For 1->I To 4000
Isz A:
Next
endBenchmark
Ce code déterminera si Isz est plus rapide ou non.
Les benchmarks ont une précision de +/- 50-80ms (oui, même la précision n'est pas précise
), et sont limités à 10 secondes.
Pour faire des benchmarks, il faut bien mettre
beginBenchmark et
endBenchmark au début et à la fin de chaque groupe d'instructions à mesurer, importer le programme sur l'émulateur, puis l'exécuter sans rien faire (il doit y être marqué "Begin" et rien d'autre). Ensuite, faire Tools->Run Benchmark.
Outre ça, j'ai juste ajouté quelques trucs et corrigé quelques bugs :
- Les macros sont désormais prioritaires sur les opcodes, parce qu'on ne pouvait ni mettre de macros en majuscules (vu qu'il considère les majuscules comme un opcode), ni mettre de macros commençant par "sp" ou "se" (comme "speed" ou "select") vu que ce sont des opcodes.
- Ajout de macros par défaut : les keycodes (par exemple key_exe ou key_up), begin/endBenchmark, et les opérateurs C-style (&&, ||, !, % -> And, Or, Not, Rmdr) qui sont également dans l'autocomplétion.
- L'autocomplétion prend désormais en compte des priorités : les opcodes très utilisés tels que &disp;, If, RclPict... ont une priorité sur les autres opcodes chelous.
- Un opcode inconnu lors de l'importation d'un programme ne fait plus une erreur mais un simple warning, en remplaçant l'opcode par une escape hexa &#...;.
- Les onglets et l'autocomplétion utilise désormais la police DejaVu Avec Casio pour afficher correctement l'ensemble des caractères. Comme side effect, le sélecteur de fichiers utilise aussi cette police :/
- L'autocomplétion affiche les caractères spéciaux à côté des entités pour les caractères (par exemple, si j'écris "&theta", il affichera θ). Certains caractères latins et grecs sont affichés 2 fois, c'est parce que Java interprète les entités et affiche le caractère correspondant.
- Ajout des équivalents unicode dans certains opcodes (tels que fn)
- Ajout du caractère pour les fractions, et des nombres encerclés pour la prizm
- Mettre un disp n'ajoute plus de ligne en plus
- L'émulateur peut maintenant importer à son premier lancement
- Les commentaires ne sont plus exportés dans le g1m, parce que ça agrandit la taille et réduit la vitesse de l'interpréteur
- Correction du bug avec Ran# et RanInt#() où le # était coloré comme une directive de préprocesseur
- La console d'output fait moins laguer
- Les commentaires s'arrêtent à ':', ce qui rend possible les commentaires inline avec 'commentaire:. Toutefois je n'ai pas réussi à modifier la coloration syntaxique pour s'arrêter au ':'.
Téléchargement :
https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?cat=6
L'article est déjà fini, retrouvez-nous la prochaine fois pour LA Revue Des Projets.
Citer : Posté le 27/08/2017 20:36 | #
On n'arrête pas le progrès ! Si possible Zezombye, et ça intéressera sans doute des gens, ce serait bien que tu décrives comment les benchmarks fonctionnent, dans un topic ou dans un article sur un blog quelconque.
Au passage, ton préprocesseur prend-il en compte les macros un peu spéciales type :
Aussi, même si une option est préférable (et aussi, certains commentaires sont voués à être exportés, comme tout ce qui est mention de l'auteur etc), sympa d'avoir ajouté la suppression des commentaires lors de l'output, bien joué !
Mon blog ⋅ Mes autres projets
Citer : Posté le 27/08/2017 20:42 | #
Pour les benchmarks c'est tout simple : quand il voit l'écran de "begin", il commence le timer puis appuie sur EXE, et l'arrête quand il voit l'écran de "end". C'est la raison pour les incertitudes car ça prend environ 50 ms pour vérifier si l'écran correspond à l'écran de "end".
Je n'ai pas encore implémenté les macros de fonctions, je le ferai peut être dans un futur lointain (trop de parsage et débuggage )
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 27/08/2017 21:05 | #
Tu ferais mieux de gérer le début et la fin du benchmark en modifiant un octet inutile dans la RAM de l'émulateur, ça permettrait bien plus de précision au niveau du timer !
Ou encore mieux, tu pourrais configurer un timer hardware, attendre une seconde (au début de l'exécution), en déduire une mesure de la fréquence de l'horloge périphérique, ensuite réutiliser le timer hardware, tout ça en le faisant décompter sans arriver à zéro, et du coup tu n'as pas besoin d'un gestionnaire d'interruptions.
Et là, c'est précis à la milliseconde au moins, et t'es pas gêné par le timer qui se lance régulièrement pour vérifier l'état de l'écran o/
Citer : Posté le 28/08/2017 11:40 | #
Un bug que j'avais oublié de signaler : si vous avez installé BIDE auparavant, ça ne marchera pas à cause d'une propriété manquante dans les options. La solution est soit de supprimer le fichier options.txt afin de le régénérer, ou d'ajouter la ligne borderColor=808080.
Ecrivez vos programmes basic sur PC avec BIDE