[ASM 68000] Petit défi rotation de tile 32×32 90°

Forum Amiga Coding [ASM 68000] Petit défi rotation de tile 32×32 90°

  • Ce sujet contient 8 réponses, 4 participants et a été mis à jour pour la dernière fois par Arnaud.68K, le il y a 2 années.
  • Créateur
    Sujet
  • #161376
    Arnaud.68K
      • Level 3
      • Messages : 69

      Bonjour,

       

      Je vous propose un petit défi en assembleur 68000.

      Voici le contexte :

      Il y a un peu plus de 30 ans j’avais codé un scroll rotatif 2D, malheureusement j’ai perdu la disquette et son code source. Je me suis dit que ce serait bien de le refaire.

      Le source utilisait un bitmap 1c de lettres et chiffres 32×32 structuré de la façon suivante (réalisé avec Deluxe Paint) :

      A-0°, … , Z-0°

      A-15°, ….. , Z-15°

      A-75°, ….., Z-75°

      La première chose que faisait le code dans sa phase d’init, c’était de faire 3 rotations de 90° de chaque Tile 32×32 de façon à avoir toutes les lettres sur 360° par pas de 15°

       

      Alors voilà le défi que je vous propose :

      Faire le code qui opère 3 rotations de 90° et communiquer le nombre de cycles obtenus.

       

      Pour cela je vous propose d’utiliser http://www.easy68k.com qui permet de compter les cycles.

      J’ai préparé la base du code avec la lettre G en data (voir plus bas)

      Ce code permet d’afficher les 4 tiles 0, 90°, 180° et 270°

      Il permet d’afficher le résultat dans la fenêtre de sortie

      Bien sûr, en lançant le code vous obtiendrez que le premier Tile (celui d’origine)

      il ne reste plus qu’à coder l’opération de 3×90° ;)

      Bien entendu le score du nombre de cycles à poster est sans l’affichage des tiles et sur la base du Tile fourni dans le source, pour cela passer la variable Afficher equ 0 et relevez vos nombre de cycles dans esay68k

      En temps utile je posterai mon code. N’hésitez pas à poster vos scores et à la fin à poster vos sources.

      N’hésitez pas non plus à mentionner que vous tentez le défi ou à poser des questions encore plus si vous débutez en assembleur. C est un petit exercice formateur

      Bon défi.

      Arnaud

       

      `
      *———————————————————–
      * Title :
      * Written by :
      * Date :
      * Description:
      *———————————————————–
      ORG $1000
      START
      Afficher equ 1
      OffsetEntre2Rotations equ 32*4+4 ’tile + offsetTourner90Degres:****** VOTRE CODE ICI

      ******* FIN DE VOTRE CODE

      IFNE Afficher
      jsr Afficher4Tiles
      ENDC

      rts

      Afficher4Tiles:
      ;affiche image origine
      lea ImageSource(pc),a0
      move.l #0,d5
      bsr afficherGFX

      ;affiche image 90°
      lea ImageSource(pc),a0
      add.l #OffsetEntre2Rotations, a0
      move.l #64,d5
      bsr afficherGFX

      ;affiche image 180
      lea ImageSource(pc),a0
      add.l #2*OffsetEntre2Rotations, a0
      move.l #128,d5
      bsr afficherGFX

      ;affiche image 270
      lea ImageSource(pc),a0
      add.l #3*OffsetEntre2Rotations, a0
      move.l #192,d5
      bsr afficherGFX

      rts

      afficherGFX:
      ;a0 = adr de départ
      ;d5 = offset y

      add.l #32*4,a0
      moveq.l #31,d7
      .loopY:
      ;d7=Y compteur de lignes
      move.l -(a0),d3
      moveq.l #31,d6
      ;d6=X compteur de colonnes
      .loopX:
      btst d6,d3
      beq .FinTraitement

      ;Pixel ON, on affiche
      move.l #32,d1
      sub.w d6,d1
      move.w d7,d2
      add.w d5,d2
      MOVEQ #82,d0 * draw pixel d0=82, d1=x, d2=y
      TRAP #15 * do draw

      .FinTraitement:

      dbra d6,.loopX
      dbra d7,.loopY

      rts

      ImageSource:
      dc.l %00000000000011111111000000000000
      dc.l %00000000011111111111111000000000
      dc.l %00000001111111111111111110000000
      dc.l %00000011111111111111111111000000
      dc.l %00000111111111111111111111100000
      dc.l %00001111111111111111111111110000
      dc.l %00011111111111111111111111111000
      dc.l %00101111111110000000011111110100
      dc.l %00101111111100000000001111100100
      dc.l %01001111111100000000000000000010
      dc.l %01001111111100000000000000000010
      dc.l %01001111111100000000000000000010
      dc.l %10001111111100000000000000000001
      dc.l %10001111111100000000000000000001
      dc.l %10001111111100000000000000000001
      dc.l %10001111111100001111111111110001
      dc.l %10001111111100001111111111110001
      dc.l %10001111111100001111111111110001
      dc.l %10001111111100001111111111110001
      dc.l %10001111111100001111111111110001
      dc.l %01001111111100000000011111110010
      dc.l %01001111111100000000011111110010
      dc.l %01001111111100000000011111110010
      dc.l %00101111111100000000011111110100
      dc.l %00101111111110000000011111110100
      dc.l %00011111111111111111111111111000
      dc.l %00001111111111111111111111110000
      dc.l %00000111111111111111111111100000
      dc.l %00000011111111111111111111000000
      dc.l %00000001111111111111111110000000
      dc.l %00000000011111111111111000000000
      dc.l %00000000000011111111000000000000

      dc.l $FFFF ;données arbitraires entre 2 tiles

      ImageDest:
      ;TILE 90°
      dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      dc.l $FFFF ;données arbitraires entre 2 tiles
      ;TILE 180°
      dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      dc.l $FFFF ;données arbitraires entre 2 tiles
      ;TILE 270°
      dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      dc.l $FFFF ;données arbitraires entre 2 tiles

      ;ds.l 32 ; remplit des 1 !!!

      * Put program code here

      SIMHALT ; halt simulator

      * Put variables and constants here

      END START ; last line of source

      `

      A500 + 512k, adepte du SM attention avec un A devant !

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

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

    • Auteur
      Réponses
    • #162844
      Arnaud.68K
        • Level 3
        • Messages : 69

        J’au eu peu de succès :(

        Voici mon score et mon code.

        J’ai quelques idées d’optimisation si toutefois des intéressés.

        
        *-----------------------------------------------------------
        * Title :
        * Written by :
        * Date :
        * Description:
        *-----------------------------------------------------------
        ORG $1000
        
        START
        
        Afficher equ 0
        
        OffsetEntre2Rotations equ 32*4+4 'tile + offset
        
        Tourner90Degres:
        ;sur lettre G
        ;cycles avec affichage / sans affichage
        ;249770 / 90134
        
        lea ImageSource+32*4(pc),a0 ;0° origine, on se place en y=31
        lea ImageSource+(1*OffsetEntre2Rotations)+(31*4)(pc),a1 ;90°
        lea ImageSource+2*OffsetEntre2Rotations(pc),a2 ;180°
        lea ImageSource+(3*OffsetEntre2Rotations)(pc),a3 ;270°
        
        moveq.l #0,d5 ;31-y -> [0..31]
        moveq.l #31,d7 ;y -> [31..0]
        .loopY:
        ;d6=X, d7=Y
        
        move.l -(a0),d0 ;données source
        
        move.l a1,a5 ;90
        move.l a3,a6 ;270
        ;move.l (a2),d1 ;180°
        moveq.l #0,d1 ;180°
        
        moveq.l #31,d6 ;x --> [31..0]
        moveq.l #0,d4 ;31-x --> [0..31]
        .loopX:
        ;d6=x, d7=y, d4=31-x, d5=31-y
        ;d0=data origine, d1= data 180°
        btst d6,d0
        beq .FinTraitement
        
        ;Pixel ON, on traite
        
        ;--rot 90° sens trigo soit (32-y,x)
        move.l (a5),d3
        bset.l d5,d3 ;d5=31-y
        move.l d3,(a5)
        
        ;--rot 180° sens trigo soit (32-x,32-y)
        bset.l d4,d1
        
        ;--rot 270° sens trigo soit (y,32-x)
        move.l (a6),d3
        bset.l d7,d3 ;y
        move.l d3,(a6)
        
        .FinTraitement:
        sub.l #4,a5 ;90°
        add.l #4,a6 ;270°
        
        addq.b #1,d4 ;31-y
        dbra d6,.loopX
        move.l d1,(a2)+ ;data 180°
        
        addq.b #1,d5 ;31-y
        dbra d7,.loopY ;y
        
        IFNE Afficher
        jsr Afficher4Tiles
        ENDC
        
        rts
        
        Afficher4Tiles:
        ;affiche image origine
        lea ImageSource(pc),a0
        move.l #0,d5
        bsr afficherGFX
        
        ;affiche image 90°
        lea ImageSource(pc),a0
        add.l #OffsetEntre2Rotations, a0
        move.l #64,d5
        bsr afficherGFX
        
        ;affiche image 180
        lea ImageSource(pc),a0
        add.l #2*OffsetEntre2Rotations, a0
        move.l #128,d5
        bsr afficherGFX
        
        ;affiche image 270
        lea ImageSource(pc),a0
        add.l #3*OffsetEntre2Rotations, a0
        move.l #192,d5
        bsr afficherGFX
        
        rts
        
        afficherGFX:
        ;a0 = adr de départ
        ;d5 = offset y
        
        add.l #32*4,a0
        moveq.l #31,d7
        .loopY:
        ;d7=Y compteur de lignes
        move.l -(a0),d3
        moveq.l #31,d6
        ;d6=X compteur de colonnes
        .loopX:
        btst d6,d3
        beq .FinTraitement
        
        ;Pixel ON, on affiche
        move.l #32,d1
        sub.w d6,d1
        move.w d7,d2
        add.w d5,d2
        MOVEQ #82,d0 * draw pixel d0=82, d1=x, d2=y
        TRAP #15 * do draw
        
        .FinTraitement:
        
        dbra d6,.loopX
        dbra d7,.loopY
        
        rts
        
        ImageSource:
        dc.l %00000000000011111111000000000000
        dc.l %00000000011111111111111000000000
        dc.l %00000001111111111111111110000000
        dc.l %00000011111111111111111111000000
        dc.l %00000111111111111111111111100000
        dc.l %00001111111111111111111111110000
        dc.l %00011111111111111111111111111000
        dc.l %00101111111110000000011111110100
        dc.l %00101111111100000000001111100100
        dc.l %01001111111100000000000000000010
        dc.l %01001111111100000000000000000010
        dc.l %01001111111100000000000000000010
        dc.l %10001111111100000000000000000001
        dc.l %10001111111100000000000000000001
        dc.l %10001111111100000000000000000001
        dc.l %10001111111100001111111111110001
        dc.l %10001111111100001111111111110001
        dc.l %10001111111100001111111111110001
        dc.l %10001111111100001111111111110001
        dc.l %10001111111100001111111111110001
        dc.l %01001111111100000000011111110010
        dc.l %01001111111100000000011111110010
        dc.l %01001111111100000000011111110010
        dc.l %00101111111100000000011111110100
        dc.l %00101111111110000000011111110100
        dc.l %00011111111111111111111111111000
        dc.l %00001111111111111111111111110000
        dc.l %00000111111111111111111111100000
        dc.l %00000011111111111111111111000000
        dc.l %00000001111111111111111110000000
        dc.l %00000000011111111111111000000000
        dc.l %00000000000011111111000000000000
        
        dc.l $FFFF ;données arbitraires entre 2 tiles
        
        ImageDest:
        ;TILE 90°
        dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        dc.l $FFFF ;données arbitraires entre 2 tiles
        ;TILE 180°
        dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        dc.l $FFFF ;données arbitraires entre 2 tiles
        ;TILE 270°
        dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        dc.l $FFFF ;données arbitraires entre 2 tiles
        
        ;ds.l 32 ; remplit des 1 !!!
        
        * Put program code here
        
        SIMHALT ; halt simulator
        
        * Put variables and constants here
        
        END START ; last line of source
        
        

        A500 + 512k, adepte du SM attention avec un A devant !



        #162860
        Klassik
          • Level 5
          • Messages : 216

          J’ai eu peu de succès :(

          Je suppose que c’est lié au manque de membres du forum qui maîtrisent l’assembleur….

          Perso mon niveau en programmation est très… BASIC…

          10 PRINT « Bravo Arnaud.68000 »

          20 GOTO 10

          :whistle:

          #162861
          stephbb75
            • Level 12
            • Messages : 1532

            Salut,

            J’au eu peu de succès :(

            C’est surtout une question de temps pour moi (mais je pense que beaucoup on des notions de code, mais peut être pas suffisamment pour faire ce type de travail)

            Mais c’est intéressant surtout si tu explique un peu.

            J’avais il y a bien longtemps commencé à faire une page web avec plein de petites fonction réutilisable pour du code ASN et C. Mais j’ai jamais fini :wacko:

            https://youtube.com/@stephbb75

            #162864
            demether
              • Level 10
              • Messages : 1170

              c’est du chinois, malheureusement. Pourtant j’etais pas si mauvais ya 10ans en javascript et en actionscript…mais c’est carrément pas le meme niveau :lol:

              #163372
              Arnaud.68K
                • Level 3
                • Messages : 69

                Merci pour vos retours.

                Effectivement vous avez raison, l’ASM touche un public restreint et pire si on tape dans le 68000 !

                J’y replonge par pure nostalgie. @stephbb75 si tu veux je peux expliquer

                @Demether, pour moi c’est l’inverse, les technos d’aujourd’hui (coder n’est pas mon métier) sont pour moi du chinois ;) Un exemple, je ne suis même pas foutu de faire un C++ avec une interface graphique ! J’en suis resté au VBA, VB.net où les IHM (certes basiques)sont intégrées.

                 

                 

                A500 + 512k, adepte du SM attention avec un A devant !

                #163385
                stephbb75
                  • Level 12
                  • Messages : 1532

                  Salut,

                  …si tu veux je peux expliquer

                  C’est pas que pour moi, j’ai survolé le code est vue ce que tu faisais rapidement ;-)
                  Mais avec des explications cela peu permettre a certain de s’y (re)mettre.

                  Un exemple, je ne suis même pas foutu de faire un C++ avec une interface graphique !

                  C’est pas un problème ce C++ (ou C du reste) mais de connaissance du système graphique, j’ai très longtemps dev en C++ sous win (MFC en autre) et fait des IHM très complexe, mais j’ai du mal a faire une interface graphique en QT par exemple pour linux, simplement car je ne le maitrise pas !

                  …où les IHM (certes basiques)sont intégrées.

                  Mais pour le C++ sous win (et QT pour linux) c’est pareil il y a des intégrations pour faire « facilement » des IHM, il faut juste savoir comment faire ;-)

                  Bon, sur Amiga c’est un peut plus manuel de faire une IHM :lol:

                  Mais je suis sur que des petites fonction en ASM (ou C ?) bien expliqué intéresserais du monde.
                  Et de mémoire il y a ici quelques personnes qui maitrise (ou on maitrisés) le codage sur Amiga

                  Alors il faut le temps pour le faire … :scratch:

                  https://youtube.com/@stephbb75

                  #163395
                  Arnaud.68K
                    • Level 3
                    • Messages : 69

                    Hello,

                    Pas de problèmes, je vais tâcher de commenter le plus possible et poster à nouveau le code. D’ailleurs j’ai commencé hier soir.

                    Pour le code C++ avec IHM simple (par exemple fenêtre avec une zone de texte et un affichage), je suis preneur (en MP pour pas polluer)

                    @+

                    A500 + 512k, adepte du SM attention avec un A devant !

                    #163530
                    Arnaud.68K
                      • Level 3
                      • Messages : 69

                      Bonjour,

                      Voici le code avec des commentaires. Si pas clair, n’hésitez pas afin que je corrige.

                      A+

                      *-----------------------------------------------------------
                      * Title :
                      * Written by :
                      * Date :
                      * Description:
                      *-----------------------------------------------------------
                      ORG $1000
                      
                      START
                      
                      Afficher equ 0
                      
                      OffsetEntre2Rotations equ 32*4+4 'tile + offset
                      
                      Tourner90Degres:
                      ;sur lettre G
                      ;249770 / 90134
                      
                      ;principe
                      ;image source(x,y)
                      
                      ;image source 0° (x,y)
                      ;l'image source est composée de 32 lignes de 32 bits
                      ; ....F
                      ; .....
                      ; .....
                      ; 678..
                      ; 12345
                      ;
                      ;on lit l'image source 0° dans l'ordre défini par 1,2,3,..,F (pour Fin)
                      ;on balaye x en partant du bit 31 pour arriver au bit 0
                      ;puis on change de ligne Y en remontant (on va de 31 à 0)
                      
                      ;image DEST 90° (X90, Y90)=(31-y, x)
                      ; F...5
                      ; ....4
                      ; ...83
                      ; ...72
                      ; ...61
                      ;
                      ; le pixel X90 est défini par d5 qui s'incrémente à chaque fois qu'on change de ligne source y
                      ; le pixel Y90 est defini par l'adresse (a5) qui se décrémente à chaque fois que x se décrémente
                      
                      ;image DEST 180° (X180, Y180)=(31-x,31-y)
                      ; 54321
                      ; .....
                      ; .....
                      ; .....
                      ; F....
                      ;
                      ; le pixel X180 est défini par d4 qui s'icrémente à chaque fois que x se décrémente
                      ; le pixel Y180 est defini par l'adresse (a2) qui s'incrémente à chaque fois que y se décrémente
                      
                      ;image DEST 270° (X270, Y270)=(y, 31-x)
                      ; 1....
                      ; 2....
                      ; 3....
                      ; 4....
                      ; 5...F
                      ;
                      ; le pixel X270 est défini par d7 qui se décrémente à chaque fois que y se décrémente
                      ; le pixel Y270 est defini l'as=dresse (a6) qui s'incrémente à chaque fois que x se décrémente
                      
                      ;-- on charge les adresses des Tiles 32x32
                      lea ImageSource+32*4(pc),a0 ;0° tile d'origine, on se place sur la dernière ligne
                      lea ImageSource+(1*OffsetEntre2Rotations)+(31*4)(pc),a1 ;adresse image destination 90°, on se place à la fin
                      lea ImageSource+2*OffsetEntre2Rotations(pc),a2 ;180°
                      lea ImageSource+(3*OffsetEntre2Rotations)(pc),a3 ;270°
                      
                      moveq.l #0,d5 ;31-y -> [0..31]
                      moveq.l #31,d7 ;y -> [31..0]
                      
                      .loopY:
                      ;d7 indique la position Y de la ligne lue
                      
                      move.l -(a0),d0 ;données source
                      ;-(a0) permet de faire a0=a0-4 octets donc on remonte d'une ligne source
                      ;d0 recoit alors les 32 bits de la ligne source indiquée par a0
                      ;rappel : on commence par la dernière puisque a0 est l'adresse de fin
                      
                      move.l a1,a5 ;on copie l'adresse du tile de destination 90° dans a5
                      move.l a3,a6 ;idem pour le tile 270
                      moveq.l #0,d1 ;on met tout à zero pour la ligne 180°
                      
                      moveq.l #31,d6 ;x --> [31..0]
                      moveq.l #0,d4 ;31-x --> [0..31]
                      .loopX:
                      
                      ;le bit 31 (poids fort) est à gauche, et le bit 0 à droite (poids faible)
                      btst d6,d0 ;on teste le bit x (d6) de la ligne y (valeur dans d0)
                      beq .FinTraitement ; si à 0 (pixel éteint) on saute
                      
                      ;Pixel à 1, on traite
                      
                      ;--rot 90° sens trigo soit activer le pixel (31-y,x)
                      move.l (a5),d3 ;on charge la ligne dans d3
                      bset.l d5,d3 ;on met à 1 le bit 31-y (valeur d5) de d3
                      move.l d3,(a5) ;on sauve la valeur de d3 à l'adresse a5
                      
                      ;--rot 180° sens trigo soit (31-x,31-y)
                      bset.l d4,d1 ;on met à 1 le bit 31-x
                      
                      ;--rot 270° sens trigo soit (y,31-x)
                      move.l (a6),d3
                      bset.l d7,d3 ;y
                      move.l d3,(a6)
                      
                      .FinTraitement:
                      sub.l #4,a5 ;90°, on remonte d'une ligne en fonction de x
                      add.l #4,a6 ;270°, on descend d'une ligne en fonction de x
                      
                      addq.b #1,d4 ;31-y
                      dbra d6,.loopX ;x=x-1, et on boucle tant que x>=0
                      
                      ;fin de colonne x
                      move.l d1,(a2)+ ;data 180° : on sauve la ligne
                      
                      addq.b #1,d5 ;31-y
                      dbra d7,.loopY ;y=y-1, et on boucle tant que y>=0
                      
                      IFNE Afficher
                      jsr Afficher4Tiles
                      ENDC
                      
                      rts
                      
                      Afficher4Tiles:
                      ;affiche image origine
                      lea ImageSource(pc),a0
                      move.l #0,d5
                      bsr afficherGFX
                      
                      ;affiche image 90°
                      lea ImageSource(pc),a0
                      add.l #OffsetEntre2Rotations, a0
                      move.l #64,d5
                      bsr afficherGFX
                      
                      ;affiche image 180
                      lea ImageSource(pc),a0
                      add.l #2*OffsetEntre2Rotations, a0
                      move.l #128,d5
                      bsr afficherGFX
                      
                      ;affiche image 270
                      lea ImageSource(pc),a0
                      add.l #3*OffsetEntre2Rotations, a0
                      move.l #192,d5
                      bsr afficherGFX
                      
                      rts
                      
                      afficherGFX:
                      ;a0 = adr de départ
                      ;d5 = offset y
                      
                      add.l #32*4,a0
                      moveq.l #31,d7
                      .loopY:
                      ;d7=Y compteur de lignes
                      move.l -(a0),d3
                      moveq.l #31,d6
                      ;d6=X compteur de colonnes
                      .loopX:
                      btst d6,d3
                      beq .FinTraitement
                      
                      ;Pixel ON, on affiche
                      move.l #32,d1
                      sub.w d6,d1
                      move.w d7,d2
                      add.w d5,d2
                      MOVEQ #82,d0 * draw pixel d0=82, d1=x, d2=y
                      TRAP #15 * do draw
                      
                      .FinTraitement:
                      
                      dbra d6,.loopX
                      dbra d7,.loopY
                      
                      rts
                      
                      ImageSource:
                      dc.l %00000000000011111111000000000000
                      dc.l %00000000011111111111111000000000
                      dc.l %00000001111111111111111110000000
                      dc.l %00000011111111111111111111000000
                      dc.l %00000111111111111111111111100000
                      dc.l %00001111111111111111111111110000
                      dc.l %00011111111111111111111111111000
                      dc.l %00101111111110000000011111110100
                      dc.l %00101111111100000000001111100100
                      dc.l %01001111111100000000000000000010
                      dc.l %01001111111100000000000000000010
                      dc.l %01001111111100000000000000000010
                      dc.l %10001111111100000000000000000001
                      dc.l %10001111111100000000000000000001
                      dc.l %10001111111100000000000000000001
                      dc.l %10001111111100001111111111110001
                      dc.l %10001111111100001111111111110001
                      dc.l %10001111111100001111111111110001
                      dc.l %10001111111100001111111111110001
                      dc.l %10001111111100001111111111110001
                      dc.l %01001111111100000000011111110010
                      dc.l %01001111111100000000011111110010
                      dc.l %01001111111100000000011111110010
                      dc.l %00101111111100000000011111110100
                      dc.l %00101111111110000000011111110100
                      dc.l %00011111111111111111111111111000
                      dc.l %00001111111111111111111111110000
                      dc.l %00000111111111111111111111100000
                      dc.l %00000011111111111111111111000000
                      dc.l %00000001111111111111111110000000
                      dc.l %00000000011111111111111000000000
                      dc.l %00000000000011111111000000000000
                      
                      dc.l $FFFF ;données arbitraires entre 2 tiles
                      
                      ImageDest:
                      ;TILE 90°
                      dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                      dc.l $FFFF ;données arbitraires entre 2 tiles
                      ;TILE 180°
                      dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                      dc.l $FFFF ;données arbitraires entre 2 tiles
                      ;TILE 270°
                      dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                      dc.l $FFFF ;données arbitraires entre 2 tiles
                      
                      ;ds.l 32 ; remplit des 1 !!!
                      
                      * Put program code here
                      
                      SIMHALT ; halt simulator
                      
                      * Put variables and constants here
                      
                      END START ; last line of source
                      
                      *~Font name~Courier New~
                      *~Font size~10~
                      *~Tab type~1~
                      *~Tab size~4~
                      

                      A500 + 512k, adepte du SM attention avec un A devant !

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