Transfert | Imagerie | Divers | Snippets | Développement
Liste des logiciels
Nom Date
BIDE
LuaHelper
LuaFX
SDK Graph 75 85 95
MLC
Classpad SDK v3.08
Visiteurs :
Si vous souhaitez soumettre un logiciel veuillez prendre contact avec un administrateur seuls à pouvoir ajouter des logiciels par mesure de sécurité.
Logiciels >> Développement >> BIDE
BIDE
Ajouté par :
Zezombye
En ligne
Membre
Niveau: Confirmé
Points: 695
Défis: 7
Message
Pour les calculatrices : Graph 25, 35, 65, 80, 100
Ajouté le : 2017-07-01 18:35
Nombre de visites de la page : 1615

Fichiers à télécharger :

¤ BIDE+3.2.jar.zip 3,6 Mo (148 téléchargements)

Description :

BIDE (Basic IDE) est un éditeur de texte pour programmes Basic Casio (.g1m, .g2m, .g3m, .g1r, .g2r) permettant d'éditer vos programmes basic sur PC, afin de ne pas être limité par la calculatrice (écran monochrome 6*21, faible vitesse de frappe...)

Il nécessite Java, s'il vous fait une erreur dès le lancer et que vous n'avez pas java d'installé vous devez le télécharger ici. Les sources sont ici.



Features :
- Support de la totalité des caractères casio
- Deux polices disponibles :
DejaVu Avec Casio (basée sur DejaVu Sans Mono)
DejaVu Avec Casio (basée sur DejaVu Sans Mono)

Casio Graph
Casio Graph

- Features d'un éditeur de texte : Ctrl+Z, coloration syntaxique, tabulations, autocomplétion
- Editeur (très) basique de pictures/captures
- Conversion png/bmp -> picture
- Supporte les pictures qui ne font pas 2048 octets (voir Picture 1024)
- Gestion de mot de passe
- Escape hexadécimale avec &#XX; ou &#XXXX;
- Gestion de macros
- Customisation (couleur du texte, du fond, etc)
- Importation automatique sur l'émulateur Manager PLUS
- Générateur de Multi Drawstat
- Utilisation possible en CLI
- Benchmark pour optimiser les programmes

FAQ :
- À quoi servent les boutons du menu ?
B : créer un programme basic
P : créer une picture
C : créer une capture

- Comment insérer => (ou ->, <=, >=, !=) dans un string sans que ça fasse ⇒, →, ≤, ≥, ≠ ?
Il faut remplacer le '-' ou '=' par &-; ou &=;

- Comment insérer le caractère/opcode X ?
Les caractères utilisables sur les claviers français (é, ¤, €, §, Ò, etc) sont écrits tels quels. Je rappelle que pour écrire Ò, il faut faire alt gr+7, puis shift+o.
Si vous ne trouvez pas le caractère que vous voulez, regardez son numéro hexa :
Listes des caractères casio
Listes des caractères casio

Le numéro hexa est composé de 2 (ou 4) chiffres.
Les 2 premiers chiffres sont donnés par le titre (7F, E5, E6 ou E7).
Les 2 autres chiffres sont donnés par le tableau : ligne puis colonne.
Par exemple : ⇒ = 13, ∫ = E6BB





Ouvrez ensuite le fichier contenant les opcodes (Tools -> Show list of opcodes).
Dans ce fichier, allez au numéro hexa du caractère et regardez sa valeur en texte. Attention : si la ligne se termine par un "t" alors il faut entourer le caractère avec & et ;
Par exemple, la ligne E593 franc t signifie qu'il faut écrire le caractère ayant le numéro E593 comme &franc;
Pour les opcodes, ils sont écrits comme sur la calculette (attention aux espaces).

- Comment éditer une picture/capture ?
Il faut tout simplement insérer les caractères ' , : ou des espaces. Attention à bien respecter la bordure (si besoin vous pouvez la recréer en insérant ces caractères). L'édition n'étant pas très poussée, si vous créez une picture à partir de 0 je vous conseille de la créer en .png (avec paint ou un autre logiciel) puis de l'importer (Tools -> Convert image to picture).

- Pourquoi il y a 2 cadres dans les pictures ?
Une explication détaillée est fournie par Picture 1024. N'éditez pas le 2e cadre (ni la taille de la picture) si vous ne savez pas ce que vous faites.

- Quelle est la différence entre g1m, g2m, g3m, g1r et g2r ?
Aucune différence au niveau du format, sauvegarder ou renommer un g2r en g1m le rendra toujours lisible.

- Le générateur de Multi Drawstat me génère des sprites inversés ou déformés, comment je fais ?
Il faut bien mettre votre ViewWindow à 1,127,0,63,1,0,0,1,1 (origine en haut à gauche).

- À quoi servent "show character list" et "show syntax coloration test" ?
Cela ne vous servira surement pas, "show character list" montre une liste de tous les caractères casio (pour ceux voulant utiliser une autre police) et "show syntax coloration test" est pour tester une coloration syntaxique qui pourrait être implémentée sur un autre éditeur. d'ailleurs BIDE ne passe pas le test de coloration syntaxique

- Puis-je utiliser BIDE pour Classpad/Prizm ?
BIDE est conçu (et testé) sur les calculatrices monochromes, mais il reste possible de l'utiliser pour Prizm (ou Graph 90+E) car le format g3m est le même que le g1m. Les opcodes spécifiques à la Prizm sont également ajoutés. Toutefois, il n'est pas possible d'utiliser des pictures, qui sont dans un format différent.
Les Classpad ont un format totalement différent, il n'est donc pas géré.

Utilisation en CLI
Utilisation en CLI
L'utilisation est toute simple, il y a 2 commandes :
--compile target.g1m prog1.bide prog2.bide ...
--decompile target.g1m /target/directory/
Les fichiers .bide sont tout simplement des fichiers texte, attention à bien respecter la syntaxe (les directives de préprocesseur). Pour mettre plusieurs programmes dans un seul fichier .bide, il faut les séparer par #End of program.


Utilisation des macros
Utilisation des macros
Les macros se définissent comme en C, avec #define text replacement.
Ainsi, si vous utilisez la variable M pour la vie du joueur, vous pouvez faire #define vieJoueur M.
Quelques choses à savoir sur les macros :
- Sauvegarder en .g1m ne conserve pas les macros. Pour les conserver, il faut enregistrer en .bide (fichier texte).
- Les macros sont définis sur l'ensemble des programmes, peu importe où ils sont déclarés. En cas de conflit, c'est le macro déclaré en premier qui l'emporte. Par exemple dans le code suivant :
#define vieJoueur A
vieJoueur -> C
#define vieJoueur B
vieJoueur -> D

Dans les 2 cas, vieJoueur sera remplacé par A.
- Les macros ignorent les strings/commentaires
- Les macros ont une priorité sur les opcodes
- Les macros sont classés dans l'ordre alphabétique inversé
- Les lignes comportant des macros peuvent fausser la colonne donnée en cas d'erreur
- Les macros ne supportent pas (pour l'instant) les fonctions (par exemple #define write(x) Text 1,2,x


Utiliser l'émulateur
Utiliser l'émulateur
Pour utiliser l'émulateur, il faut être sous Windows (normal, l'émulateur ne marche que sous windows) et avoir l'émulateur Manager PLUS (il doit y avoir "manager plus" dans le titre).

Lors de la première utilisation de l'émulateur, il peut être un peu lent (en particulier lors de l'ouverture de l'explorateur de fichiers), s'il vous fait une erreur il faut alors re-sauvegarder.

Les erreurs que vous pouvez avoir sont :
- "Could not find emulator" : l'émulateur n'est pas ouvert.
- "Could not find memory menu" : plusieurs cas sont possibles.
Parce que BIDE appuie automatiquement sur les touches nécessaires, il comporte des sécurités : ici, l'image de l'émulateur ne correspond pas à l'image de référence, il s'arrête donc (sinon il continue, et bonne chance pour le stopper )
Tout d'abord, si l'émulateur est en icone, ça ne marchera pas.
Si l'émulateur n'affiche effectivement pas le menu mémoire, il faut se positionner sur le menu des programmes pour que ça fonctionne.
Ensuite, regardez si vous n'avez pas redimensionné l'émulateur (taille de l'écran, ou taille de la fenêtre). Il est parfois nécessaire de le redémarrer.
Si l'écran de mémoire s'affiche correctement, mais qu'il n'est pas à la bonne place, il faut changer les coordonnées de l'écran dans les options de BIDE en se basant sur celles de votre émulateur. Pour les savoir, faites un screenshot (tools -> take emulator screenshot).
Si vous avez un émulateur différent (par exemple celui de Graph 90) il est alors nécessaire de changer les images de référence (directement dans le .jar), et peut être les dimensions de l'écran.
- "Couldn't open file system" : soit l'explorateur de fichiers s'est ouvert trop tard (réessayez), soit il ne s'est pas ouvert du tout (ce qui est bizarre).


Faire un benchmark
Faire un benchmark
Pour faire un benchmark, il faut utiliser les macros beginBenchmark et endBenchmark, à placer au début et à la fin de chaque test. Ensuite, importez votre programme sur émulateur, puis exécutez le. Enfin, faites Tools->Run Benchmark.

Les benchmarks sont limités à 10 secondes, et ont une précision d'environ +/- 75ms.


Créer une police
Créer une police
Si vous voulez créer une police de caractères, il faudra un peu de boulot.
Tout d'abord, je vous conseille de choisir une police qui supporte déjà beaucoup de caractères unicode, ça vous évitera de refaire les caractères russes et grecs (et il y en a beaucoup). Regardez aussi pour les formes géométriques et les symboles mathématiques.
Pour faire la police, FontStruct vous permet de créer une police de toutes pièces (c'est ce que j'ai utilisé pour la police Casio) mais vous aurez de toute façon besoin de FontForge. Si vous voulez utiliser une police déjà existante, vous n'aurez besoin que de FontForge (suffit de rotater et agrandir des caractères déjà existants).
Ouvrez la police DejaVu Avec Casio avec FontForge (et votre police aussi). Allez vers le caractère U+E000. Les caractères à partir de U+E000 sont dans le domaine privé, c'est à dire qu'aucune police ne les supporte. Ils n'existent pas dans Unicode, c'est pourquoi ils sont dans le domaine privé.
Vous avez 101 caractères à créer, mais tous peuvent être faits à partir de caractères déjà existants.

Commençons par les caractères avec serifs : nMGTPEr. Si votre police est avec serifs, je vous conseille d'en prendre une sans serif. Ici il vous suffit d'ajouter des serifs à ces lettres.
On a ensuite les caractères gras : ABCDEFiePrXY. Ici j'ai tout simplement copié/collé les caractères de la version gras de la police, si votre police n'a pas de version gras choisissez en une autre.
Ensuite, les caractères inversés : B,R,L,=,<,>,<=,>=. Il suffit de dessiner un rectangle autour de la lettre. Attention : B,R,L doivent prendre toute la largeur, mais pas les autres !
On a ensuite les caractères divers, je vais faire au cas par cas :
- E00C : dessinez un rectangle de même taille que le symbole degré (°).
- E00D : concaténez les exposants '-' et '1'. Pareil pour E02A.
- E00E, E010 : copiez collez l'exposant r et g (déjà disponibles dans unicode).
- E00F : concaténez les indices 1 et 0.
- E011, E012, E013, E014, E017 : combinez les lettres x et y, et l'overline ou l'accent circonflexe.
- E018, E019 : combinez a,o et l'underline.
- E027, E028, E029 : rétrécissez les indices 0,1,2.
- E02B : prenez le subscript x (attention, il doit être dans le coin en haut à droite).
- E02C : rétrécissez le 'n'.
- E02D : rétrécissez le '3'.
- E064 : rétrécissez le 'E'.
Il vous reste alors tout l'alphabet en indice. Vous pouvez déjà prendre les caractères unicode indices et exposants (en déplaçant les exposants vers le bas), il vous manquera alors les lettres CFQSXYZq. Il suffira de rétrécir ces majuscules pour qu'elles aient la même taille que les autres indices (pour le 'q', il suffit d'inverser le 'p').
Enfin, pour E062 et E063, copiez collez les caractères '*' et '/'. Il faut ensuite remplacer dans la table ascii ces caractères par × et ÷.

Pour le reste des caractères, regardez dans le test des caractères lesquels manquent, et créez les en combinant d'autres caractères (ou en les faisant vous même, mais c'est chaud).


Liste des messages d'erreur
Liste des messages d'erreur

- The char '...' shouldn't be here, BIDE did not recognize that opcode. Check the spelling and case
BIDE n'a pas reconnu l'opcode spécifié, vérifiez que vous avez bien respecté les majuscules et les espaces (l'opcode "And" comporte un espace avant et après, par exemple). Attention à bien remplacer les '&' par "&" (si vous ne faites pas une entité bien entendu).
- Unknown opcode 0x... Tell Zezombye to add it, or add it yourself in opcodes.txt
Postez sur le topic (ou dites le sur la shoutbox, c'est mieux pour éviter le flood) en précisant la valeur de l'opcode et si possible le .g1m que vous avez tenté d'ouvrir. Si je suis pas là, éditez le fichier opcodes.txt qui se trouve dans le .jar.
- Invalid g1m
Le g1m est invalide.
- Couldn't find the name of the program ..., make sure to include the directive "#Program name: <name>" at the beginning. Replace Program by Picture or Capture if necessary
À la première ligne du programme, il faut mettre "#Program name: " suivi du nom. Respectez bien les espaces et les majuscules. Il faut mettre "#Capture name: " si c'est une capture, et "#Picture name: " si c'est une picture.
- Invalid picture size
La taille de la picture n'est pas valide.
- Picture size undefined
Il faut mettre "#Size: 0x800" à la 2e ligne de la picture, juste après le nom.
- No programs detected
Vous essayez de créer un g1m sans aucun programme, ce qui fera une erreur.
- Program "..." has a name too long (8 characters max)
Le programme spécifié a un nom trop long (8 caractères maximum).
- Capture "..."'s name should start with "CAPT"
Le nom d'une capture doit commencer par "CAPT".
- Picture "..."'s name should start with "PICT"
Le nom d'une picture doit commencer par "PICT".
- Number of ... should be 1-20
Le numéro de la capture/picture spécifiée doit être de 1 à 20 inclus.
- Invalid picture/capture number
Une capture/picture doit avoir un numéro après "CAPT" ou "PICT".
- Program "..." has a password too long (8 characters max)
Le programme spécifié a un mot de passe trop long (8 caractères maximum).
- Line length isn't 130
Les lignes des pictures/captures doivent être longues de 130 caractères. Vérifiez que vous avez bien respecté la bordure.
- Border error
Il manque la bordure gauche/droite de la picture.
- Unallowed character '...' in picture
Les pictures/captures doivent seulement avoir les caractères de pixels.
- Hex escape must be 2 or 4 characters long
L'escape hexa doit être uniquement de 2 ou 4 caractères, ajoutez des 0 si nécessaire.
- Could not parse hex string "..."
Il y a une erreur dans le fichier opcodes.txt, la valeur hexa est invalide.
- Unknown boolean "..."
Quand on ajoute un opcode, il ne faut pas oublier de mettre le 't' ou 'f' à la fin.
- BIDE is denied access to the file at "..."
Fermez les programmes ayant accès au g1m (FA-124, éditeur hexa...) ou essayez de lancer BIDE en mode administrateur.


Postez sur le topic s'il y a une erreur (regardez la liste des erreurs avant) ou un bug, ou juste pour du feedback

Commentaires :

Pages: 1, 2, 3 | Suivante

Hackcell
Hors ligne
Membre
Niveau: Intermédiaire
Points: 516
Défis: 4
Message
Posté le 12-07-2017 à 21:48
J'ai une réclamation pour la taille des cadres, comme mon ecran est en 3:4, l'affichage des images donne n'importe quoi.
Zezombye
En ligne
Membre
Niveau: Confirmé
Points: 695
Défis: 7
Message
Posté le 13-07-2017 à 11:21
La prochaine version comportera un éditeur de pictures intégré, qui ne sera plus en ASCII, avec possibilité de modifier le zoom pour les écrans trop petits
Fmc_
Hors ligne
Membre
Niveau: Confirmé
Points: 40
Défis: 0
Message
Posté le 30-07-2017 à 20:47
Alors salut ZZ, déjà un gros GG pour ton travail sur cet IDE, c'est bien foutu et fluide de ce que j'ai pu voir

J'aurais quelques remarques pour l'améliorer, si je puis me permettre.

- Pour que ton soft se réclame du titre d'IDE, il te faut un environnement de test à tout prix. Pas forcément un truc ultra compliqué avec debug instruction par instruction, contrôle des variables, etc (bon j'avoue si t'arrives à faire ça t'es un dieu ), mais genre un émulateur intégré serait tellement la propreté

Si tu fais une interface rapide entre ton éditeur et un émulateur, j'pense que tu tiens facilement une référence en terme de développement Basic Casio sur Dektop, les autres features restent de la déco

- En parlant de déco, pouvoir custom les couleurs de ton éditeur serait aussi un gros plus 8) Genre, un petit dark theme pour pas s'arracher les yeux pendant les sessions de code nocturne.

- De l'ordre du détail, je t'avoue que j'ai un peu galéré à trouver les boutons pour créer un programme, etc. Pourquoi ne pas ajouter un petit hint quand l'utilisateur survole ces boutons énigmatiques ? Ou bien tu pourrais faire comme tout le monde et ajouter un volet "File"

Voilà, c'est à peu près tout pour mes premières impressions, en tout cas c'est déjà la propreté et ça sent le bon travail !
Zezombye
En ligne
Membre
Niveau: Confirmé
Points: 695
Défis: 7
Message
Posté le 31-07-2017 à 09:14
Merci de ton retour

C'est vrai que pour l'instant c'est plus un éditeur de texte qu'un IDE, mais le basic casio est très dur à parser, en particulier à cause de sa syntaxe chelou (il suffit de regarder Clonelab pour se rendre compte de la difficulté) et de ses 34231 opcodes (chelous aussi). Il y a aussi des bugs d'interpréteur (genre 1=>"Option 1: A" fera une erreur syntaxe, ou List List 1[A][B] aussi), et parser un langage qui contient des bugs c'est assez chaud.

L'émulateur intégré ce serait le paradis, mais malheureusement ce n'est pas possible, les seuls émulateurs disponibles sont ceux de Casio où je n'ai pas trouvé comment injecter directement un programme (comme le SDK le fait : il importe directement l'addin). Par contre il y a possibilité de tester sur l'émulateur de Casio, BIDE fera automatiquement les manoeuvres nécessaires à l'importation.

Pour la référence vu le nombre d'opcodes ce sera assez long, surtout que toutes les fonctions ne sont pas forcément documentées (même dans le manuel). Mais ça pourrait être possible en tant que documentation insérée dans l'autocomplétion (je pense qu'elle supporte la documentation, comme dans Eclipse).

La customisation est déjà faite, et j'ai ajouté des tooltips dans la 3.1
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10155
Défis: 130
Message
Posté le 31-07-2017 à 11:02
Aucune erreur de syntaxe à signaler pour 1⇒"Option 1: A" sur ma Graph 75+E.

Pour List List 1[A][B], si la grammaire du parser était bien écrite, ça irait comme sur des roulettes. Si j'ai bien suivi ce qui se passe :
Incorrect:
  <expr>    -> List <expr>[<expr>]
Correct:
  <expr>    -> List <list-no>[<expr>]
  <list-no> -> <variable> | <integer>
Zezombye
En ligne
Membre
Niveau: Confirmé
Points: 695
Défis: 7
Message
Posté le 31-07-2017 à 11:20
Ouaip, ce bug n'a l'air de se faire que dans certaines circonstances. La ligne que j'ai donnée ne marche pas, mais 1->A:Not A:":t" fera une erreur syntaxe. (du coup je peux même pas être sur de ce qui cause ce bug...

Pour les listes je pense que tu as raison, l'utilisation d'une expression crée une erreur syntaxe. Je pense que c'est parce qu'il parse List 1+List 1[2] comme (List 1)+(List 1[2]) au lieu de List (1+List 1[2]). Par contre pourquoi List (1)[1] crée une erreur syntaxe, aucune idée.
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10155
Défis: 130
Message
Posté le 31-07-2017 à 11:22
Toujours rien à signaler pour 1→A:Not A:":t", affiche :t.

Oui, c'est faux d'utiliser une expression. Mais c'est parce que tu n'as pas compris la grammaire que j'ai donnée ! Elle explique parfaitement pourquoi List (1)[1] crée une erreur de syntaxe.
Eltoredo
En ligne
Modérateur
Niveau: Intermédiaire
Points: 4270
Défis: 35
Message
Posté le 31-07-2017 à 14:17
Damn, je plussoie Breizh, un grand GG pour ton travail ! Je soutiens particulièrement ces félicitations par rapport à tes débuts où beaucoup de personnes ont souligné la difficulté voire l'impossibilité de ton projet alors bravo

J'aurais adoré avoir ça quand je codais mes cours à la main à l'école ou alors quand j'améliorais des petits programmes, ça me donne presque envie d'en refaire mais j'en suis dans l'incapacité maintenant (#CakeTueurEnSérie)
Theprog
Hors ligne
Membre
Niveau: Intermédiaire
Points: 1435
Défis: 20
Message
Posté le 07-08-2017 à 19:05
Franchement pas dégueulasse
C'est quand même nettement plus pratique au niveau visuel de coder sur un éditeur aussi grand Par contre c'est vrai qu'on perd le charme de pouvoir tester directement les programmes sur la calto mais bon, faut bien qu'il y ai des défauts.

Un petit détail aussi, le manque du Ctrl+S. Je dois avouer ma déception moi qui adore bourriner cette combinaison magique
Ah oui aussi, quand on modifie le nom du fichier dans son entête, le nom de l'onglet n'est pas modifié lui

J'ai peut-être raté un truc mais
ElTo a écrit :
je plussoie Breizh
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10155
Défis: 130
Message
Posté le 08-08-2017 à 15:46
Breizh a pas mal parlé de BIDE avec Zezombye sur le chat.

Pages: 1, 2, 3 | Suivante
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 58 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