[Outil 8F R/B/J] Un compilateur assembleur -> items

Discussions dédiées à l'exécution de code (ACE) sur les trois premières générations (et la quatrième ?). Ce forum permet également de demander de l'aide ou de soumettre de nouvelles idées sur ce sujet !
Avatar du membre
ISSOtm
Programmeur PRAMA
Messages : 206
Enregistré le : dim. 14 juin 2015 20:54
Localisation : Latios ! Utilise Flute Eon !
Contact :

[Outil 8F R/B/J] Un compilateur assembleur -> items

Message par ISSOtm » ven. 19 juin 2015 23:03

QU'EST-CE QUE C'EST QUE CA ?
ou
Comment faire une intro tout en majuscules


Bonjour ami programmeur avec 7ème étage !
Tu t'y connais en assembleur et le 8F Code Execution sur Pokémon Rouge, Bleu et Jaune te passionne !

Peut-être que, comme moi, tu as trouvé qu'écrire du code puis le convertir en items c'est fastidieux.
Si c'est le cas, j'ai un petit truc pour toi !

Grâce à PRAMA, j'ai pu mettre en ligne une page web qui fait le boulot pour toi !
Tu rentre les instructions (même si pour le moment, ça n'est pas aussi simple que taper directement le code, désolé :3), tu clique sur un bouton, et tu reçois gratuitement sur ton écran la liste des items qui correspondent au code !

Si ça te fait vraiment envie, fonce ici !

SI VOUS UTILISEZ INTERNET EXPLORER, LISEZ CECI IMPÉRATIVEMENT
Microsoft a programmé Internet Explorer en ayant toujours du retard sur les standards du Web.
Par conséquent, GBZ80 to Items n'est pas compatible avec les versions d'Internet Explorer antérieures à la version 9. Si vous avez IE 7 ou 8, vous devriez mettre à jour IE ou changer de navigateur (Firefox, Chrome, Opera...). Si vous avez IE 5 ou 6, sachez que Microsoft a officiellement annoncé que ces navigateurs ne devaient plus être utilisés. A bon entendeur.

Avis aux utilisateurs d'Internet Explorer 9 : les versions 2.0 et 2.1 comportent un bug qui fait bugger la sidebar, et donc qui fait planter GBZ80 to Items. Par conséquent, veuillez utiliser la version 2.2 de GBZ80 to Items ou une version plus récente.

Avis aux utilisateurs d'Internet Explorer 8 : je suis actuellement en train de tenter de rendre la version 2.2 compatible avec IE8. Mais sachez qu'à partir de la version 3.0, la compatibilité avec IE8 sera supprimée. La version 2.2 restera néanmoins en ligne pour vous. Si vous êtes sous Windows XP, sachez que ce système est maintenant dangereux car n'est plus mis à jour. Vous devriez vous mettre à jour vers Windows 7 (ou Vista, si vous voulez).

Voilà pour la présentation du truc, donc bienvenue dans le topic officiel de GBZ80 to Items !
Ici, tu peux poster tes remarques (que tu m'envoies des fleurs ou que tu sortes le Low Orbit Ion Cannon), et surtout les bugs que tu trouves.
Si je les confirme (= j'ai une preuve que ce bug existe), je les mets dans le tracker. Quand il est suffisamment plein (5 bugs, ça me suffit comme motivation), je sors une nouvelle version. Simple !

Ce n'est pas obligé de lire tous les messages de ce topic, surtout la première page, qui était une discussion sur l'implantation du truc sur le site.

Donc bref, je mets ici un changelog à partir de la version 2.0 par rapport à la 1.1, ainsi que les build date à partir aussi de la 2.0.
Juste en dessous je mets un bug tracker, qui me servira de TODO list.

CHANGELOG version 2.0 "LE VENT DU CHANGEMENT"
Build Date : 05/08/2015

NOUVEAU :
  • Du code de debug a été ajouté, mais n'est pas activé par défaut.
MODIFIÉ :
  • Réécriture du moteur interne, le code est plus simple (en vrai non, mais ça fait genre de dire ça :D)
  • Ajout de deux instructions oubliées :P
  • Réorganisation d'une partie des instructions.
  • Le déroulement de la table d'items (qui n'existe pas sur téléphone) a été accéléré.
BUGFIX :
  • Un bug graphique lié au spam du bouton "Cacher/Afficher la HEX liste" a été patché. (#005)
  • Un bug lié au déclenchement intempestif de l'avertissement "Items présent plusieurs fois" a été patché. (#007)
  • Un bug faisait que l'avertissement "Utilisation d'items sans quantité..." se déclenchait même s'il était désactivé. (#006)
  • Tenter d'ajouter certaines instructions ne fonctionnait pas et faisait planter le compilateur. (#003 et #004)
CHANGELOG version 2.1 "Un Coup de Balai"
Build date : 19/08/2015

NOUVEAU :
  • Ajout de l'instruction jp (hl), oubliée mais enfin la liste est complète ! (Enfin j'espère)
  • Ajout d'une image donnant sur mon compte Twitter pour se tenir à jour des updates.
  • Ajout de beaucoup d'aides au debug.
  • Le code a été compressé, il pèse 25 Ko de moins.
  • Ajout d'un indicateur de la version du compilateur
  • Un lien vers mon fil Twitter a été ajouté, si vous voulez vous tenir à jour des updates
MODIFIÉ :
  • Certaines instructions (exemple : ret m) sont exclusives au z80 original, je les avais mises par réflexe. My bad, je les ai enlevées.
  • Le code a été réorganisé, commenté et clarifié. En outre, certaines fonctions redondantes ou inutilisées ont été enlevées.
  • Les cases à cocher sont devenues des boutons-poussoirs. Je trouve ça plus joli, et ça me simplifie un peu la vie (rapport à un bug de Firefox...)
  • Enlevé le "(P) " en face des instructions nécessitant un octet $CB en préfixe.
  • [imm8], [imm16] et [mem16] sont maintenant remplacés par l'argument dans la liste.
  • L'organisation de la page a été légèrement modifiée.
BUGFIX :
  • Ajout de jp (hl). (#001)
  • Fixé un bug empêchant la compilation dans certains cas. (#008)
  • Retiré des instructions exclusives au z80 original que j'avais mises dans le compilateur par réflexe. (#002)
  • Le bouton "Tout supprimer" ne fonctionne pas. (#009)
  • Les instructions préfixées ne fonctionnaient pas correctement. (#010)
  • La commande "neg", qui n'existait que sur la version originale du z80, a été retirée. (#011)
BUG TRACKER
BUGS OUVERTS
Ces bugs sont actuellement présents dans la version en ligne sur le site.
#012 Sous Internet Explorer 9, l'animation de la sidebar plante et boucle indéfiniment.
BUGS PATCHÉS
Ces bugs étaient présents sur une ancienne version, mais ils ont été corrigés dans la version actuellement en ligne.
#001 L'instruction jp (hl) n'est pas présente (reporté par Haxel) [Corrigé en 2.1]
#002 Certaines instructions demandent des arguments alors qu'elles ne devraient pas (reporté par Haxel) [Corrigé en 2.1]
#003 Certaines instructions ne sont pas ajoutées lors du clic (reporté par Haxel) [Corrigé en 2.0]
#004 Cela provoque un plantage du compilateur (reporté par Haxel) [Corrigé en 2.0]
#005 Spammer le bouton "Afficher / Cacher la HEX liste" provoque un bug graphique (reporté par BUGLITCH) [Corrigé en 2.0]
#006 L'avertissement "Utilisation d'items sans quantité (exemple : Colis de Chen) en plus d'un exemplaire" se déclenche même si la checkbox n'est pas cochée [Corrigé en 2.0]
#007 L'avertissement "Item présent plusieurs fois" se bloque et reste activé [Corrigé en 2.0]
#008 Parfois, la compilation ne démarre pas. [Corrigé en 2.1]
#009 L'option "Tout supprimer" ne fonctionne pas [Corrigé en 2.1]
#010 Les instructions avec préfixe affichent "PREFIXE" et ne sont pas compilées correctement [Corrigé en 2.1]
#011 L'instruction "neg", qui n'existe que sur le z80 original, se trouve dans le compilateur et devrait être retirée [Corrigé en 2.1]
REMERCIEMENTS
Je remercie Krys de m'avoir permis d'héberger GBZ80 to Items sur le site de PRAMA, ensuite Haxel et BUGLITCH pour m'avoir suggéré les premières améliorations / bugfixes, l'équipe de PRAMA pour m'avoir accepté parmi eux, et enfin les équipes de Bootstrap et de jQuery pour m'avoir énormément simplifié le travail de codage.

_________________________________________________________________________________________

MESSAGE ORIGINAL
Hmmm j'adoore programmer avec 7ème étage !
Mais je n'aime pas convertir les directives ASM en hexa puis en items.

Quelqu'un connaît un truc qui fait la conversion automatique ?
Sinon j'en code un moi-même.
Modifié en dernier par ISSOtm le dim. 28 juin 2015 22:48, modifié 1 fois.
Le vrai aventurier du Bac+2.

Morpheo évolue en Troisticules !
ET PENDANT CE TEMPS-LÀ L'ÉQUIPE DE PRAMA SUR SKYPE a écrit : Haxel: site pas opti pour 4/3 aze
ISSOtm: "Allez vous faire foutre, utilisez un ordinateur moins vieux que vous"
Haxel: mon PC a 3 ans
Haxel: aze
gu3rdin4: Donc
gu3rdin4: Haxel < 3ans

Avatar du membre
XeR
Contributeur
Messages : 157
Enregistré le : sam. 2 juin 2012 21:01
Contact :

Re: [Aide aux devs] Un compilateur assembleur -> items

Message par XeR » sam. 20 juin 2015 00:05

Salut,

Je ne sais pas s'il en existe un, mais si tu es chaud pour coder :
- Assembleur LR35902 : https://en.wikipedia.org/wiki/Small_Device_C_Compiler
- Liste des IDH : http://www.prama-initiative.com/index.php?page=objets
Faire une LUT opcode -> IDH, c'est trivial

Have fun !

Avatar du membre
Krys3000
Fondateur
Messages : 1564
Enregistré le : lun. 28 mai 2012 21:02
Contact :

Re: [Aide aux devs] Un compilateur assembleur -> items

Message par Krys3000 » sam. 20 juin 2015 10:05

Ce serait carrément utile c'est clair :noel:
Image
:bép: Head admin de PRAMA :dvo:
“Anti-intellectualism has been a constant thread winding its way through our political and cultural life, nurtured by the false notion that democracy means that 'my ignorance is just as good as your knowledge.'” - Isaac Asimov

Avatar du membre
ISSOtm
Programmeur PRAMA
Messages : 206
Enregistré le : dim. 14 juin 2015 20:54
Localisation : Latios ! Utilise Flute Eon !
Contact :

Re: [Aide aux devs] Un compilateur assembleur -> items

Message par ISSOtm » sam. 20 juin 2015 16:12

Faire une liste ? Non !

Tu tape ton code, et il est automatiquement converti en liste d'items !
Une fois que ça sera fait, je pense ajouter des trucs comme "Vous utilisez plusieurs fois le même item", puis si ça marche bien, proposer d'ajouter des "instructions intercalaires"...

[EDIT après plusieurs heures de développement]
J'ai fini la liste, reste plus qu'à coder le compilateur. Quelqu'un pourrait-il me proposer une solution d'hébergement ?
Je voudrais mettre le truc sur le Net mais je n'ai pas de serveur (et je ne vais pas en acheter un juste pour ça, c'est cher :P)
Le vrai aventurier du Bac+2.

Morpheo évolue en Troisticules !
ET PENDANT CE TEMPS-LÀ L'ÉQUIPE DE PRAMA SUR SKYPE a écrit : Haxel: site pas opti pour 4/3 aze
ISSOtm: "Allez vous faire foutre, utilisez un ordinateur moins vieux que vous"
Haxel: mon PC a 3 ans
Haxel: aze
gu3rdin4: Donc
gu3rdin4: Haxel < 3ans

Avatar du membre
Haxel
Testeur PRAMA
Messages : 366
Enregistré le : dim. 2 déc. 2012 19:17
Contact :

Re: [Aide aux devs] Un compilateur assembleur -> items

Message par Haxel » dim. 21 juin 2015 14:03

Si c'est un logiciel a télécharger met le sur mega (ou un autre site du même genre).
Pendant ce temps sur skype...
ISSOtm: question : c'est quoi le double écran noir ?
Haxel: quand les deux écrans sont noir
ISSOtm: même le touchpad ?
GG ISSO

Avatar du membre
XeR
Contributeur
Messages : 157
Enregistré le : sam. 2 juin 2012 21:01
Contact :

Re: [Aide aux devs] Un compilateur assembleur -> items

Message par XeR » dim. 21 juin 2015 14:16

ISSOtm a écrit : Une fois que ça sera fait, je pense ajouter des trucs comme "Vous utilisez plusieurs fois le même item", puis si ça marche bien, proposer d'ajouter des "instructions intercalaires"...
Bien vu, j'y avais pas pensé.
C'est bien plus amusant la programmation sous contrainte. :D
En fonction de comment est la RAM, y'a peut-être moyen d'utiliser un autre vecteur ?
J'avais pensé aux noms des pokémons des boites, mais on a un alphabet trop limité.
ISSOtm a écrit : [EDIT après plusieurs heures de développement]
J'ai fini la liste, reste plus qu'à coder le compilateur. Quelqu'un pourrait-il me proposer une solution d'hébergement ?
Je voudrais mettre le truc sur le Net mais je n'ai pas de serveur (et je ne vais pas en acheter un juste pour ça, c'est cher :P)
Pour tester, ou pour le mettre en ligne une fois terminé ?

Avatar du membre
ISSOtm
Programmeur PRAMA
Messages : 206
Enregistré le : dim. 14 juin 2015 20:54
Localisation : Latios ! Utilise Flute Eon !
Contact :

Re: [Aide aux devs] Un compilateur assembleur -> items

Message par ISSOtm » dim. 21 juin 2015 23:49

Haxel a écrit :Si c'est un logiciel a télécharger met le sur mega (ou un autre site du même genre).
AIEEEE raté j'ai oublié de dire : ça ne sera pas un programme mais une page Web

Sinon ça avance bien, je me suis basé sur le framework Bootstrap site en anglais ici, et j'ai fait une petite liste de ce qu'il faut faire, et où j'en suis.

1. Créer le Template de la page, fait.
2. Générer les listes d'items, d'opcodes, de nombre d'arguments par opcode, fait.
3. Créer l'interface utilisateur, la théorie c'est fait.
4. Créer le compilateur, à faire.
5. Mettre en ligne.
6. Améliorer.

Le truc qui m'ennuie le plus c'est les opcodes préfixes...
Le vrai aventurier du Bac+2.

Morpheo évolue en Troisticules !
ET PENDANT CE TEMPS-LÀ L'ÉQUIPE DE PRAMA SUR SKYPE a écrit : Haxel: site pas opti pour 4/3 aze
ISSOtm: "Allez vous faire foutre, utilisez un ordinateur moins vieux que vous"
Haxel: mon PC a 3 ans
Haxel: aze
gu3rdin4: Donc
gu3rdin4: Haxel < 3ans

Avatar du membre
Krys3000
Fondateur
Messages : 1564
Enregistré le : lun. 28 mai 2012 21:02
Contact :

Re: [Aide aux devs] Un compilateur assembleur -> items

Message par Krys3000 » lun. 22 juin 2015 09:50

Pour la mise en ligne ça peut se faire sur notre server ;)
Image
:bép: Head admin de PRAMA :dvo:
“Anti-intellectualism has been a constant thread winding its way through our political and cultural life, nurtured by the false notion that democracy means that 'my ignorance is just as good as your knowledge.'” - Isaac Asimov

Avatar du membre
ISSOtm
Programmeur PRAMA
Messages : 206
Enregistré le : dim. 14 juin 2015 20:54
Localisation : Latios ! Utilise Flute Eon !
Contact :

Re: [Aide aux devs] Un compilateur assembleur -> items

Message par ISSOtm » lun. 22 juin 2015 11:22

Krys3000 a écrit :Pour la mise en ligne ça peut se faire sur notre server ;)
Oui, mais le style actuel de ma page est très différent de celui du reste du site.
Globalement, ça ressemble à ça, mais de toute façon c'est changeable. Me faut juste des specs, des règles concrètes que je mette dans mes feuilles de style, quoi (changer la couleur de la barre de navigation en blanc...)
Le vrai aventurier du Bac+2.

Morpheo évolue en Troisticules !
ET PENDANT CE TEMPS-LÀ L'ÉQUIPE DE PRAMA SUR SKYPE a écrit : Haxel: site pas opti pour 4/3 aze
ISSOtm: "Allez vous faire foutre, utilisez un ordinateur moins vieux que vous"
Haxel: mon PC a 3 ans
Haxel: aze
gu3rdin4: Donc
gu3rdin4: Haxel < 3ans

Avatar du membre
Krys3000
Fondateur
Messages : 1564
Enregistré le : lun. 28 mai 2012 21:02
Contact :

Re: [Aide aux devs] Un compilateur assembleur -> items

Message par Krys3000 » lun. 22 juin 2015 11:47

Pas de souci, je pensais pas forcément à l'intégrer en tant que page du site immédiatement, mais juste à l'héberger sur le server quoi :hap:
Image
:bép: Head admin de PRAMA :dvo:
“Anti-intellectualism has been a constant thread winding its way through our political and cultural life, nurtured by the false notion that democracy means that 'my ignorance is just as good as your knowledge.'” - Isaac Asimov

Répondre