Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Bêta ON] Apprendre l'ASM Z80 pour TI

Dans la catégorie "Ti" par mdr1, nightmat et noelthebest

    8 janvier 2011 à 13:02:21

    Lire le tutoriel
    Tuto ouvert aux bêta-tests
    Réservé aux membres

    • Partager sur Facebook
    • Partager sur Twitter
      8 janvier 2011 à 13:02:23

      Bonjour à tous !

      L'assembleur n'est pas un langage évident aux premiers abords, mais permet de comprendre nombre de choses quand au fonctionnement des appareils électriques. Ce tutoriel vous apprendra justement le plus simplement possible comment programmer avec ce langage et comment faire de nombreuses choses que vous ne poussiez pas faire sans.

      Vous pourrez vous amuser avec, accéder aux fonctions systèmes, créer plusieurs programmes de même nom, créer un programme qui se nomme M@TEO21 (si si, je vous jure !), les rendre éditables / non éditables, faire pointer une chaine de caractères sur un programme etc. etc. etc.


      C'est bien beau tout ça, mais on saura faire quoi concrètement à la fin du tuto ?

      Argh, la question qui tue. Ce tutoriel vous aura enseigné de nombreuses choses, comment accéder à des fonctions système, enfin, vous devrez connaitre de nombreuses choses dans ce langage pour faire de jolis programmes. Après, cela dépend de vous, ce que vous en tirerez. Si vous voulez être à l'aise en assembleur, comme dans tout langage, il faut s'entrainer en faisant des essais, vos propres programmes, pour vérifier que vous avez bien compris un chapitre.

      Et quelque chose que je vous souhaite savoir faire, mais là, ce n'est pas du tout évident, c'est de fabriquer un environnement de développement.


      C'est quoi un environnement de développement ?

      Vous connaissez le TI-Basic ? Ou encore le Java ? Ils ont un point commun, bien qu'ils soient extrêmement éloignés : ils sont tous les deux interprétés. Cela signifie que tels quel, le processeur ne comprend pas leur langage, et sont donc inutilisables, il faut donc un environnement de développement. Quel est sont rôle ? Lui, comme le processeur comprend son langage, va pouvoir regarder le contenu du programme, et en fonction de ce qu'il y trouve, affichera du texte, effacera l'écran etc.


      Qu'est-ce qu'un processeur ?

      Holà, on s'éloigne du sujet ! Pour faire très simple, c'est un paquet de circuits électroniques (c'est lui qui fait fonctionner l'appareil). Et ce gros paquet de circuits, si on lui donne des 01011110, les 1 vont faire passer le courant dans les fils correspondant, ce qui va faire certaines choses en fonction des fils dans lesquels le courant passe. Eh bien le langage dans lequel on va programmer est en fait une "traduction" de ces 10010100, ce qui va nous permettre de faire des programmes qui se feront comprendre par le processeur.



      En apprenant à programmer en assembleur, vous allez découvrir petit à petit une monde merveilleux, et apprendre de nombreuses choses, qui vous pourront d'ailleurs vous permettre d'avoir dans d'autres langages (comme le C) une programmation plus optimisée.

      À quoi ressemble un programme en assembleur z80 ?

      Si vous connaissez déjà d'autres langages, vous allez être bien étonnés : la syntaxe est très différente de celle des langages habituels.
      Voici par exemple un programme que vous réaliserez dans le chapitre sur les graphismes :

      #include "ultimate.inc"
      #include "ultimate.inc"
      
      start:
              ld    hl, 0
              ld    de, $3E5E
              bcall(_fillrect)
              ld    hl, $0101
              ld    de, $1E1E
              bcall(_clearrect)
              ld    hl, $2020
              ld    de, $3A30
              bcall(_eraserectborder)
              ld    hl, $0F0F
              ld    de, $2F4F
              bcall(_invertrect)
              bcall(_getkey)
      
      quit:
              ret
      
      .end
      


      Comme vous pouvez le voir, il y a régulièrement des retours à la ligne et aucune indentation n'est présente (mis à part une seule tabulation). C'est parce-qu'on est vraiment dans le langage du processeur, on fait tout étape par étape. Par exemple, en C, pour afficher du texte, ça se fait en une seule ligne, en asm, il y en aura besoin de 3 lignes.

      J'espère que ça vous donne envie de vous y mettre, le tutoriel est déjà validé et disponible ici, mais la version bêta ON est beaucoup plus récente, comporte de nombreuses améliorations à travers les chapitres et dispose en plus de chapitres supplémentaires.

      J'attends vos reproches critiques pour améliorer mon tutoriel !

      Merci d'avoir pris le temps de lire ce message,
      bien cordialement.
      • Partager sur Facebook
      • Partager sur Twitter
        8 janvier 2011 à 23:44:27

        Cool ! Je pense que certaine partie vont m'intéresser. ;)
        • Partager sur Facebook
        • Partager sur Twitter
          11 janvier 2011 à 15:02:17

          Ah bah enfin !
          Depuis le temps qu'on attendait ce tuto !
          Nightmat n'avait plus le temps de continuer.
          J'ai comme même quelques critiques à faire :

          - Pourquoi n'y a-t-il pas d'annexe sur mimas qui permet de programmer directement sur sa calculatrice ? Peut être que tu me diras qu'il y a déjà la notice mais je peux répondre que pour l'assembleur, il y a déjà un super tuto qui s'appelle "assembly language in 28 days for ti 83 +". Le point communs : Tout les deux sont écrits dans la langue de Shakespeare . C'est pour ça que Nightmat a créé une version française sur le site du zéro.

          -On aurait besoin d'une annexe sur wabbit code : C'est un IDE puissant permettant de compiler ses programmes en un clique et de les émuler directement sur une calculatrice virtuelle !
          Cela évite de passer des heures avec le très lent ti connect. De plus ceux qui n'ont pas de câble peuvent voir avec ce logiciel le code hexadécimale du code. Pour finir, cela un a dissuadé plus d'un, de voir à quel point la compilation est difficile !

          -Bonne chance pour la compilation, j'espère pour toi que tu n'auras pas un valido trop lent !
          • Partager sur Facebook
          • Partager sur Twitter
            11 janvier 2011 à 18:15:58

            Je pense qu'il n'y a pas assez de QCM, c'est pourtant une méthode simple pour que le lecteur puisse testé ce qu'il a appris, et donc se rendre compte de sa progression.

            EDIT :

            Citation : mdr1

            Alors... 96 x 64 pixels... Allumés ou éteints... Ça fait...
            :waw: 3.4 * 10^1849 possibilités !! (Un 3 suivit de 1849 zéros)


            C'est comme même plus précis de dire 2^6144 possibilités, non ?
            Ou alors il faut tous mettre : 3,3751521821438561184911174488683...e+1849
            • Partager sur Facebook
            • Partager sur Twitter
              12 janvier 2011 à 14:39:15

              Citation : Le solutionneur

              - Pourquoi n'y a-t-il pas d'annexe sur mimas qui permet de programmer directement sur sa calculatrice ? Peut être que tu me diras qu'il y a déjà la notice mais je peux répondre que pour l'assembleur, il y a déjà un super tuto qui s'appelle "assembly language in 28 days for ti 83 +". Le point communs : Tout les deux sont écrits dans la langue de Shakespeare . C'est pour ça que Nightmat a créé une version française sur le site du zéro.


              J'utilise mon temps sur ce que j'estime de plus compliqué. Même sans notice, cette appli s'utilise facilement.

              Citation : Le solutionneur

              -On aurait besoin d'une annexe sur wabbit code : C'est un IDE puissant permettant de compiler ses programmes en un clique et de les émuler directement sur une calculatrice virtuelle !
              Cela évite de passer des heures avec le très lent ti connect. De plus ceux qui n'ont pas de câble peuvent voir avec ce logiciel le code hexadécimale du code. Pour finir, cela un a dissuadé plus d'un, de voir à quel point la compilation est difficile !


              Je connais ce logiciel, mais je m'en occuperais plus tard (pour la même raison).

              Citation : Le solutionneur

              -Bonne chance pour la compilation, j'espère pour toi que tu n'auras pas un valido trop lent !


              La compilation !!???

              Citation : kindermoumoute

              Je pense qu'il n'y a pas assez de QCM, c'est pourtant une méthode simple pour que le lecteur puisse testé ce qu'il a appris, et donc se rendre compte de sa progression.


              À la base, il y en avait pas du tout, et j'en ai donc rajouté. Je vais essayer d'en mettre partout. ;)

              Citation : kindermoumoute

              EDIT :

              Citation : mdr1

              Alors... 96 x 64 pixels... Allumés ou éteints... Ça fait...
              :waw: 3.4 * 10^1849 possibilités !! (Un 3 suivit de 1849 zéros)


              C'est comme même plus précis de dire 2^6144 possibilités, non ?
              Ou alors il faut tous mettre : 3,3751521821438561184911174488683...e+1849


              Pour le 2^6144, c'est de là que part le calcul, et je pense qu'il est mieux de ne pas donner 36 chiffres au lecteur, si ? ^^
              Tu en est déjà à là ? Bravo !
              • Partager sur Facebook
              • Partager sur Twitter
                12 janvier 2011 à 14:49:06

                Citation : mdr1

                Pour le 2^6144, c'est de là que part le calcul, et je pense qu'il est mieux de ne pas donner 36 chiffres au lecteur, si ? ;)


                Justement, 2^6144 est plus juste, m'enfin je dit ça, je dit rien. ^^

                Citation : mdr1

                Tu en est déjà à là ? Bravo !


                Moi je n'ai rien lu du tout, c'est juste en faisant défilé la page que ça m'a surpris. :-°
                • Partager sur Facebook
                • Partager sur Twitter
                  12 janvier 2011 à 15:09:50

                  Citation : kindermoumoute

                  Justement, 2^6144 est plus juste, m'enfin je dit ça, je dit rien. ^^


                  Oui mais le lecteur ne sait pas trop combien ça représente (car c'est une puissance de 2 et non de 10).

                  Citation : kindermoumoute

                  Moi je n'ai rien lu du tout, c'est juste en faisant défilé la page que ça m'a surpris. :-°


                  :'(

                  EDIT : j'en profite pour préciser que de nombreux chapitres ne sont pas dans la bêta test car pas encore terminés. Je les mettrais lorsque je les aurais fini.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 janvier 2011 à 18:21:30

                    Citation : mdr1


                    La compilation !!???


                    et la validation (en effet, pour essayer de tester tout les programmes d'exemples qui sont dans le tuto, cela doit prendre du temps !)

                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 janvier 2011 à 21:17:49

                      Ce n'est pas du tout le plus long, c'est gentil de t'inquiéter.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        16 janvier 2011 à 17:41:21

                        4 QCM ajoutés aux chapitres :

                        • Un peu de texte...
                        • La théorie du binaire ... et du fichier include
                        • Les graphismes à travers les ROM call
                        • Les graphismes : techniques avancées
                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 janvier 2011 à 18:18:21

                          C'est le top ce tuto! :D
                          Par contre, j'ai quelques demandes...: :-°
                          • Pour les utilisateurs de windows 7 (dont moi!), il faudrait montrer SPASM (un compilateur) et DOSBox pour faire marcher DevPac8x. ;)
                          • Tu n'indique pas la ROMCall _newline .equ $452E ? :euh:


                          Sinon, une petite question: $xxxx est une adresse et xxxxh est de l'hexadécimal, c'est ça?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            16 janvier 2011 à 19:57:08

                            Citation : Kiligolo

                            C'est le top ce tuto! :D
                            Par contre, j'ai quelques demandes...: :-°

                            • Pour les utilisateurs de windows 7 (dont moi!), il faudrait montrer SPASM (un compilateur) et DOSBox pour faire marcher DevPac8x. ;)
                            • Tu n'indique pas la ROMCall _newline .equ $452E ? :euh:



                            Sinon, une petite question: $xxxx est une adresse et xxxxh est de l'hexadécimal, c'est ça?


                            Salut Kiligolo, ça fait plaisir de vois de nouvelles personnes qui suivent ce tutoriel.
                            En ce qui concerne SPASM, l'utilisation n'est-elle pas la même ? D'ailleurs, je suis sous Windows 7 et TASM marche très bien...

                            Pour le _newline, je comptais l'ajouter mais étais en train d'oublier, je pense le mettre dans le chapitre sur afficher du texte.
                            J'en profiterais pour indiquer également la ROM call _DispDone (devine à quoi elle sert :p ).

                            Ensuite, l'écriture $xxxx et xxxxh sont équivalentes, elles représentent exactement la même chose : une valeur en hexadécimal. Tu peux utiliser indifféremment l'une de l'autre, selon tes goûts.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 janvier 2011 à 13:11:56

                              J'ai cassé en deux 2 parties :

                              • le chapitre sur les graphismes que je trouvais bien trop long
                              • le chapitre qui s'appelait avant "trucs utiles", je l'ai coupé en "Eh oui ! c'est logique !" et en "La syntaxe de l'asm" (auquel j'ai rajouté une sous-partie).
                              • Partager sur Facebook
                              • Partager sur Twitter
                                9 février 2011 à 17:22:42

                                • Ajout de la sous-partie "D'autres horizons..." dans le chapitre "Un peu de texte... "
                                • Ajout du chapitre "Calcsys " qui décrit comment utiliser l'application Calcsys sous toutes ses coutures. Croyez-moi, avec cette application, vous pourrez faire des choses vraiment amusantes !


                                EDIT: et aussi complément de la sous-partie "Utilisation" du chapitre "Les OPs".
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  10 février 2011 à 21:40:33

                                  Ajout aujourd'hui du chapitre sur le préprocesseur, il en est environ à 50%.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    23 février 2011 à 15:28:10

                                    Génial !
                                    Depuis le temps que j'attendais de comprendre le préprocesseur ...
                                    A quand la validation ?
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      23 février 2011 à 19:23:10

                                      Quand j'aurais terminé la partie 2 c'est-à-dire gérer la mémoire (programmes, variables) + les interruptions.
                                      EDIT : avec bien entendu les procédures en jouant à fond avec le stack.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        23 février 2011 à 20:52:22

                                        Et les bibliothèques Axiom ? :euh:
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          24 février 2011 à 17:37:38

                                          Je n'ai pas encore eu le temps de me pencher dessus, on verra ça après le bac blanc. :p
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            13 mars 2011 à 18:34:47

                                            EF4540C9???ça remplace la commande Clrlcdfull ? Pourtant je croyais que c'était 4540h...Et pour les commandes du style jp, add, res..., c'est quoi le code hexadécimal ?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              13 mars 2011 à 18:39:33

                                              Je pense que ces tableaux peuvent t'intéresser : ici. ;)

                                              Edit : la même version mais hors-ligne : ici.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                14 mars 2011 à 16:28:36

                                                Citation : llclimb

                                                EF4540C9???ça remplace la commande Clrlcdfull ? Pourtant je croyais que c'était 4540h...Et pour les commandes du style jp, add, res..., c'est quoi le code hexadécimal ?


                                                Le EF correspond au rst 28h, le deux octets suivants, tu l'as deviné, et le dernier, C9, à ret.
                                                Pour les commandes du style jp/jr, c'est très complexe car il faut indiquer l'adresse où sauter ou le nombre d'octets à sauter.

                                                Je n'ai pas encore eu le temps de mettre les autres codes hexa.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  2 avril 2011 à 21:36:27

                                                  Hello ,
                                                  MERCI ! car ça va faire longtemps que j'attends un bon tuto d'ASM sur le Site du Zéro ,parce que quand on entends son père dire "Vive Commodor (amiga 4000, 500 ,1200)" en racontant les anciennes démos (sur l'amiga , spectrum ,...) toutes codés en assembleur, et pour un futur programmeur ne pas avoir fais de l'assembleur c'est ...(aucun mot pour qualifier ce que j’ai envie de dire x) ) juste merci ,les mecs vous faites du bon boulot continué comme ça ,j'espère que le tuto sera publié entièrement !! en tout cas vous avez un fan de plus ;D.

                                                  PS : http://www.youtube.com/watch?v=FublQwmMYVk (une démo faite en assembleur pesant 4 ko durant 3 mins 55s c'est tout simplement ENORME ! à voir !!)
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    2 avril 2011 à 22:59:28

                                                    Ah ouais, c'est dingue !
                                                    Le tutoriel existe déjà depuis pas mal de temps, mais la prochaine mise à jour de la version en ligne sera plutôt grosse...
                                                    Merci des compliments !
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      22 avril 2011 à 18:45:28

                                                      Pourras-tu proposer une version hors-ligne de ton tuto ?(par exemple en pdf)
                                                      Cela éviterais d'enregistrer la page sous et de profiter d'une page affreusement lourde.
                                                      Je pense que avec le zeditor, on peut enregistrer la page html. Tu changes les images ? ! etc avec celles du sdz.
                                                      Après tu l'ouvres avec libreoffice (nouveau nom de openoffice) et dans le pire des cas avec word, tu le convertis en pdf.
                                                      Le tour est joué !
                                                      Si tu ne sais pas comment faire, je pourrais t'expliquer !

                                                      :p
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        22 avril 2011 à 19:01:18

                                                        zEditor propose une page html vraiment pourri par rapport à celle mise en ligne. Si tu as les capacités de modifier les pages de mon tutoriel en ligne pour créer un dossier html hors-ligne, je suis preneur.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          22 avril 2011 à 23:44:56

                                                          "Si tu as les capacités de modifier les pages de mon tutoriel en ligne pour créer un dossier html hors-ligne, je suis preneur. "

                                                          Je peux toujours essayer : envoies moi le .tuto, je te ferais ça.

                                                          Il me suffit ensuite de juste changer les images, modifier le css et le convertir en pdf ce sera bon je pense.

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            22 avril 2011 à 23:55:45

                                                            Non, à partir du tutoriel en ligne.. (clique droit ==> enregistrer la page sous..).
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            [Bêta ON] Apprendre l'ASM Z80 pour TI

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                            • Editeur
                                                            • Markdown