Forums Casio - Actualités

Index du Forum | Actualités | La revue des projets - 102
-florian66-
Hors ligne
Rédacteur
Niveau: Aucun
Points: 2247
Défis: 19
Message
Posté le 27/08/2017 18:00

La revue des projets - 102 :

Bien le bonjour à tous et toutes !
Nous voici rassemblé (autour de la table) pour ce rendez-vous dominical hebdomadaire. En effet, la tradition se perd néamoins elle demeure dans le coeur de grands et valeureux programmeurs, qui nous montrent leurs progrès, leurs nouveaux projets !


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.
À bientôt !




Cakeisalie5
Hors ligne
Administrateur
Niveau: Confirmé
Points: 1468
Défis: 8
Message
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 :
#define select(ARG1, ARG2) select:ARG1+ARG2->ARG2

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é !
----------------------------------
Zezombye
En ligne
Membre
Niveau: Confirmé
Points: 697
Défis: 7
Message
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 )
----------------------------------
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10158
Défis: 130
Message
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/
----------------------------------
Watch me, as I build my empire with my own hands.
Zezombye
En ligne
Membre
Niveau: Confirmé
Points: 697
Défis: 7
Message
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.
----------------------------------
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE


Index du Forum | Actualités | La revue des projets - 102
Publicité et partenaires
Casio Education
Casio éducation

TI-Planet
Casiopeia
Casiopeia
CasioFan, la communauté ClassPad
CasioFan
CodeWalrus
CodeWalrus

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2015 | Il y a 38 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Rugby Manager | Jeu de basket | Jeu de handball | Jeu de tennis | Nova Raider | Réparation téléphone | Soccer Rush | Tasty Tale

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd