Bug dans WinUAE avec le Copper ? Help pour vérifier

7 sujets de 1 à 7 (sur un total de 7)

  • Yragael

      #290869

      Hello,

      Il se pourrait que je sois tombé sur un bogue dans la manière dont WinUAE gère l’instruction SKIP du Copper, mais j’aurais besoin d’aide pour le vérifier. En effet, ce bogue me semble se manifester dans un petit programme que je code dans ASM-One sur un A500 émulé avec WinUAE, et je n’ai pas de possibilité de tester sur un vrai A500. Si donc quelqu’un pouvait vérifier que le bogue décrit ci-dessous survient pour savoir si c’est bien un problème de WinUAE ?

      Le fichier ci-joint est l’effet sur lequel je travaille. Il se compile dans ASM-One sans nécessiter de fichiers externes. Son objectif est de produire un écran au Copper à l’aide de successions de MOVE sur COLOR00.

      L’image ci-jointe permet de visualiser le bogue qui survient à une position verticale suspecte : 127. Cela me fait penser qu’il pourrait y avoir un bogue dans la manière dont WinUAE gère la position verticale dans une instruction SKIP du Copper.

      Quelqu’un peut-il compiler ce programme sur un vrai A500 et me dire s’il observe le même problème ? Je saurai alors que cela vient ou non de WinUAE. S’il y a un bogue dans mon code, je ne l’ai pas encore trouvé.

      Merci d’avance.

      Attachments:

      Yragael

        #290871

        Ah, comme le forum ne prend pas les fichiers .S en pièce jointe, vous pouvez récupérer le code du programme ici :

        http://www.stashofcode.fr/code/skipbug.s

        Anonyme

          #290888

          Le bug est aussi présent sur une vraie machine.

          __sam__

            #290889

            Donc c’est pas un bug, mais une feature 🙂

            Samuel.

            Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
            A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
            A500 Vampire V2+ ^8^ 🙂
            (mais aussi TO8, TO8D, TO9. Groupe PULS.)

            Sodapop

              #290896

              J’ai pas décortiqué le code, mais si ça arrive à la position verticale 127, y a peut-être un mic-mac avec la manipulation d’un octet / mot / mot long…

              A500 (1.3 / 2.0 / ACA500+) - A2000 - A1200

              Yragael

                #290905

                Un grand merci pour la vérification. Je vais chercher ce qui cloche dans mon code. La documentation décrit bien (longuement) une limitation de l’usage de l’instruction SKIP, mais c’est quand on s’appuie sur la possibilité de masquer des bits de la position verticale. Or ce n’est pas le cas dans mon code. Bon, quelques heures de casse-tête en perspective 🙂

                Yragael

                  #290909

                  Ok trouvé. Je tente de masquer la position verticale dans un WAIT pour que le WAIT se résume à attendre une position horizontale. Or le bit 7 de cette dernière ne peut être  masqué dans un WAIT. Quand la position verticale atteint 128, son bit 7 est à 1 et le WAIT n’attend plus, si bien que tout part en sucette.

                7 sujets de 1 à 7 (sur un total de 7)

                • Vous devez être connecté pour répondre à ce sujet.

                Forums AmigaOS, MorphOS et AROS Développement Bug dans WinUAE avec le Copper ? Help pour vérifier

                Amiga Impact