L'assembleur 6502/6510 #09 - AND/ORA/EOR

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ธ.ค. 2024

ความคิดเห็น • 13

  • @bond5174
    @bond5174 19 วันที่ผ่านมา +1

    Encore merci pour cette nouvelle vidéo. Pour l’exercice, il n’y a plus qu’à mettre les mains dans le cambouis. 😊

  • @jackysam2918
    @jackysam2918 13 วันที่ผ่านมา +1

    Je débute en Assembler, est ce que comprendre les bases du 6502 peut m'aider à apprendre x86?

    • @RetroProgrammation-fq1cv
      @RetroProgrammation-fq1cv  13 วันที่ผ่านมา

      Bonjour, les instructions sont différentes entre les 2 types de processeurs, mais surtout, l'adressage mémoire fonctionne complètement autrement. Il est préférable de trouver des tutoriels x86 (ou mieux, x64 pour maintenant, autant apprendre sur ce qu'il y a de plus récent !)

    • @jackysam2918
      @jackysam2918 12 วันที่ผ่านมา +1

      @RetroProgrammation-fq1cv merci

    • @RetroProgrammation-fq1cv
      @RetroProgrammation-fq1cv  12 วันที่ผ่านมา

      de rien 👌

  • @bond5174
    @bond5174 16 วันที่ผ่านมา +1

    Pas si facile que ça : J'ai bien compris ce qu'il fallait programmer pour chaque appui ou combinaison de touches enfoncées, mais je bute sur un problème : Si je programme le UP seul, le LEFT seul et le UP+LEFT enfoncés, j'obtiens des 0 avec UP appuyé, des 7 avec le LEFT enfoncé, mais si j'appuie sur le UP et LEFT en même temps, j'aurais sois du 0 ou du 7 comme résultat. Si je laisse les touches enfoncées, je vois bien le 2, le 0 et le 7 qui défilent, mais je n'arrive jamais à afficher le 2. Pour un appui simultané de 2 touches, il faudrait que je neutralise les tests de vérification d'appui d'une seule touche. Je suis peut-être passé à côté d'un petit détail qui fait tout ....

    • @RetroProgrammation-fq1cv
      @RetroProgrammation-fq1cv  15 วันที่ผ่านมา

      euhhh... Tu peux me mettre le code qui te donne les 0 et les 7 ?

    • @bond5174
      @bond5174 14 วันที่ผ่านมา

      @@RetroProgrammation-fq1cv Oui, voici :
      START_TEST_JOYSTICK
      ldy PRA ; port A du joystick $DC00
      ; *************************************************
      ; * UP Afficher des zéros à l'écran *
      ; *************************************************
      tya
      and #%00000001
      bne SUITE1
      lda #48 ; caractère 0
      jsr FILL_SCREEN
      SUITE1
      ; *************************************************
      ; * LEFT Afficher des 7 à l'écran *
      ; *************************************************
      tya
      and #%00000100
      bne SUITE2
      lda #55 ; caractère 7
      jsr FILL_SCREEN
      SUITE2
      jmp START_TEST_JOYSTICK

    • @bond5174
      @bond5174 14 วันที่ผ่านมา

      @@RetroProgrammation-fq1cv Tiens, c'est curieux, je t'avais mis une réponse vers 14H00, et celle-ci ainsi que tout le code a disparu ...

    • @RetroProgrammation-fq1cv
      @RetroProgrammation-fq1cv  14 วันที่ผ่านมา

      OK...
      Alors, en fait, lorsque tu appuie sur tes 2 touches UP + LEFT, dans ton code, tu commences par tester UP sans regarder LEFT, et donc tu traites UP avec ton JSR et tu reviens pour tester LEFT ... sans UP et ainsi tu traites pour LEFT et tu reviens pour traiter la suite.
      Ce qu'il convient de faire est plutôt de tester les combinaisons. Si elles apparaissent, tu les traites et, surtout, tu sors de tout autre traitement pour recommencer ta boucle. Donc commencer par 2 directions + fire, puis les doubles directions, puis les simples directions avec fire, et enfin les simple direction et fire tout seul.

    • @bond5174
      @bond5174 13 วันที่ผ่านมา

      Bien compris. Je m’en étais sorti avec une méthode qui vaut ce qu’elle vaut : une variable appelée trois boutons et activée à 1 lorsque trois boutons sont appuyés et une variable appelée deux boutons et activée à 1 lorsque deux boutons sont activés. Si l’on passe dans le test d’un seul bouton appuyé et que ces 2 variables sont à 1, le test est ignoré. De même si l’on passe dans le test de l’appui de 2 boutons et que la variable 3 boutons est activée, ce test est ignoré. En fin les variables sont remises à 0 lors du relâchement de tout appui de plusieurs touches.