Extension Visual Studio Code pour l'assembleur Amiga

Forum News Room Projets Extension Visual Studio Code pour l'assembleur Amiga

  • Ce sujet contient 44 réponses, 5 participants et a été mis à jour pour la dernière fois par Jeeg, le il y a 3 années et 2 mois.
  • Créateur
    Sujet
  • #26225
    prb28
    • Level 2
    • Messages : 41

    Bonjour à tous !

    Si ça intéresse quelqu’un j’ai codé une extension pour Visual Studio Code afin de faciliter le codage de l’assembleur pour Amiga.

    https://marketplace.visualstudio.com/items?itemName=prb28.amiga-assembly

    https://github.com/prb28/vscode-amiga-assembly

    Les fonctionnalités les plus intéressantes sont la colorisation (existait déjà), le formatage du code et la documentation assembleur et registres amiga en tooltip.

    Si vous avez des remarques ou vous voulez y apporter des modifications, elles sont les bienvenues !

    Pour la petite histoire : je me suis remis, il y a peu de temps, à l’assembleur sur Amiga (toujours rêvé de faire une copperlist depuis la fin des années 80) :

    • j’ai sorti et nettoyé mon Amiga 500
    • j’ai préparé un FS-UAE avec vscode (plantage -> reboot = 0.5s)
    • enfin j’ai suivi les tutos de Photon sur Youtube

    Sauf qu’arrivé au tuto numéro 13, il commence à dire qu’il va nettoyer son code car c’est pas très propre. Et, en effet, le mien ne ressemblait à rien avec toutes les erreurs de jeunesse.

    Sauf, que moi je suis flemmard alors me retaper les tabulations sur tout le document, non merci ! Donc j’ai codé une extension qui le fait, j’en ai profité pour ajouter quelques bonus.

    Je la ferais vivre en fonction de mes besoins qui apparaîtront à partir du tuto 14 :lol: !

Affichage de 15 réponses de 1 à 15 (sur un total de 44)

Partager sur vos réseaux sociaux préférés :
Facebooktwitterredditpinterestlinkedintumblrmail

  • Auteur
    Réponses
  • #26227
    Jeeg
    • Level 5
    • Messages : 212

      @prb28, carrément que cela m’intéresse, VS code est un superbe éditeur, merci beaucoup, vais tester cela asap.  :-)

      https://www.amigapassion.fr/abbaye/



      #26238
      Staff
      Jim Neray
      • Level 22
      • Messages : 7012

        Hello @prb28 et bienvenu sur AF.

        Merci pour ce partage tu as fais du joli boulot.  :good:

        Je me suis permis de déplacer ton sujet dans la zone projets qui est dédiée à ce type de sujet. (La zone coding est plus destinée au blababla du genre entraide et discussion)

        Les tutos de photon sont super sympa à suivre et bien expliqués. :heart:

        A500 - A500 Plus - A600 HD - A1200 - A2000 - A4000T - CD32 - C=64 - 1040STE - CPC6128
        Mon Amiga 500 Plus : A590, 2MB Chip, 2MB Fast, HD 1,2GB, Floppy ext.
        Mon Amiga 1200 : Blizzard 1220/4, 2MB Chip, 4MB Fast, HD 80GB, Overdrive CD

        - Micromiga.com - La boutique Amiga -
        #26241
        prb28
        • Level 2
        • Messages : 41

          Merci à tous les deux !

          et désolé pour le post dans le mauvais thème, merci de l’avoir déplacé.

          #26246
          Charles-Attend
          • Level 1
          • Messages : 28

            Ah ! Un autre qui veut faire des copper bars depuis 30 ans  :lol: Je ne suis donc pas le seul ! Bienvenue !

            Grace aux vidéos de Photon, j’ai fini par comprendre un peu mieux le copper, et je fais bouger des barres selon une sinusoide, trop topissimme (pour ceux qui n’ont eu accès ni aux outils ni à la connaissance dans les années 80, voire les barres qui montent et qui descendent, ça met la banane :yahoo: ). On doit être à peu près aux mêmes épisodes de la playlist de Photon ;-)

            Sinon, vu que j’utilise de préférence Sublime Text (qui colorise l’ASM68k), faudra que je regarde ce visual studio code … (pour les fois où je code via WinUAE et pas direct sur l’A500)

            A500, Wicher 500i, A501, Gotek, Indivision

            #26248
            gibs
            • Level 9
            • Messages : 978

              Je n’ai pas compris le but STP ?
              Tu codes en ASM dans Visual Studio, mais tu compiles sur Amiga via l’émulateur ? Un tuto en image peut-être ?  :unsure:

              :heart: Team Apollo :heart:

              #26251
              Charles-Attend
              • Level 1
              • Messages : 28

                Yep.

                Enfin, moi c’est Sublime Text et pas Visual Studio, mais ça marche probablement de la même manière.

                J’ai une config WinUAE avec HDD (un répertoire HDD plutot qu’un fichier HDD). Du coup, je peux éditer mes fichiers .asm direct dans Sublime Text depuis mon Mac et les enregistrer dans le répertoire HDD, et je repasse sur WinUAE pour lancer la compil.

                Ca marche nickel. Tant que je n’aurai pas de HDD sur mon A500, j’utiliserai cette méthode pour créer des fichiers data (par exemple, j’ai écrit sur mon Mac un script Python de quelques lignes qui calcule les valeurs entières d’une sinusoïde, et qui écrit le résultat dans un fichier du répertoire HDD, que je n’ai plus qu’à inclure dans mon code assembleur).

                A500, Wicher 500i, A501, Gotek, Indivision

                #26256
                prb28
                • Level 2
                • Messages : 41

                  Tout pareil que Charles-Attends, avec un MacBook / Fs-uae / un disque dur virtuel sur l’émulateur A500 avec mes sources.

                  j’edite sur le Mac, je sauvegarde, dans la vm je recharge le source dans asm-one et je compile et run.

                  Si ça plante je rétablis l’état de la vm.

                  #26260
                  Charles-Attend
                  • Level 1
                  • Messages : 28

                    Roooooh  ! Que c’est bien fait !!!

                    La documentation en tool tip, c’est topissimme !!! La définition des opérandes, des registres de l’Amiga, … c’est trop bien fait ! Super utile ! J’aime :heart:

                    J’ai pas testé le formatage auto, vu que j’écris proprement :-p (Python FTW – à ce propos, il y a un python pour Amiga, faudrait que j’explore ça)

                    A500, Wicher 500i, A501, Gotek, Indivision

                    #26261
                    prb28
                    • Level 2
                    • Messages : 41

                      @Charles-Attend, merci, je profite de ton expérience pour te demander ce qui te semble le plus utile (je n’ai pas encore assez de recul pour ordonner cette liste) :

                      • Lancer vasm pour avoir les erreurs de syntaxe et un exécutable (je sais pas si au final on fait beaucoup d’erreurs de syntaxe en asm :unsure: )
                      • Avoir un color picker
                      • Lister les labels dans le code pour afficher rapidement une fonction
                      • Afficher les hexa en binaires et décimal (ou inversement)
                      • Afficher les bits des registres amiga allumés par un move
                      • ou une autre option à laquelle je n’ai pas pensé !
                      #26262
                      Charles-Attend
                      • Level 1
                      • Messages : 28

                        La conversion binaire/décimale/hexa serait top !

                        Pour le reste, ça peut être pratique, mais je passe souvent par la case calculatrice (quand je suis sur le Mac) pour faire des conversions, donc ça serait cool :D

                        (ah, et j’ai noté que $BFE001 n’est pas repris dans la liste des registres ;) )

                        A500, Wicher 500i, A501, Gotek, Indivision



                        #26263
                        prb28
                        • Level 2
                        • Messages : 41

                          ok pour la conversion, je le mets dans ma TODO.

                          Pour BFExxx en effet je n’ai du mettre que les DFFxxx (au tuto 13 je n’en ai pas encore eu besoin ;-) ) : je le mets dans ma TODO aussi.

                          merci !

                          #26264
                          Charles-Attend
                          • Level 1
                          • Messages : 28

                            Roooooh, mais il est dans le Tuto1 ;-) C’est le registre qui donne l’état des boutons souris/joystick :D

                            A500, Wicher 500i, A501, Gotek, Indivision

                            #26265
                            prb28
                            • Level 2
                            • Messages : 41

                              :wacko: :lol: … j’ai plus besoin de dire que je suis un novice en asm ;-)

                              #26457
                              Charles-Attend
                              • Level 1
                              • Messages : 28

                                @prb28 : j’ai testé le formatage auto, et il y a un truc bizarre sur mon Mac. J’ai utilisé le fichier http://eab.abime.net/attachment.php?attachmentid=36587&d=1378393862

                                Si je sélectionne tout le bloc depuis ‘init:’ jusqu’au moveq avant le ‘mainloop’, j’obtiens un résultat différent que si je formatte le même groupe en 2x :  de ‘init:’ jusqu’à la ligne avant ‘;create palette’, puis ‘;create palette’ jusqu’au moveq …

                                Sinon, toujours top ;) je l’ai adopté pour l’assembler 68K !

                                A500, Wicher 500i, A501, Gotek, Indivision

                                #26504
                                prb28
                                • Level 2
                                • Messages : 41

                                  merci d’avoir testé !

                                  En fait, c’est voulu, mais c’est un choix discutable.

                                  Je m’explique : pour formater je détecte le mot clé asm (par exemple move.l) grâce au fichier de syntaxe, puis je découpe la ligne en 4 ensembles : label, instruction, data et commentaire. Enfin je calcule le maximum de chacune de ces colonnes et je recale en fonction (avec des espacements en plus).

                                  Tout cela est fait que sur la sélection ou sur tout le document si on formate le document en complet.

                                  Quelquefois si les datas ou le label est grand ça fait de grands espaces partout, je me suis donc dit qu’il était préférable d’avoir des alignements locaux. Qu’en penses-tu ?

                                  Je suis, actuellement sur la présentation des nombres et du contenu des registres en binaire / hex / dec . Et sur le calcul de formule – adieu la calculette.

                                  L’idéal a long terme serait de pouvoir compiler avec VASM, lancer le debugger FS-UAE et voir le code en debug depuis vscode – ça demande une tartine de travail – ça risque d’être un projet à long terme (qui m’éloigne de ma copperlist) : https://gist.github.com/emoon/f4cc058dd2a23c6cb9bce16b2548339a

                                Partager sur vos réseaux sociaux préférés :
                                Facebooktwitterredditpinterestlinkedintumblrmail
                                Affichage de 15 réponses de 1 à 15 (sur un total de 44)
                                • Vous devez être connecté pour répondre à ce sujet.