TMPx et CBM PRG Studio disposent également de macros. La syntaxe n’est pas la même que celle que tu utilises avec tes outils, mais ça fonctionne bien et ça allège bien le code assembleur.
@RetroProgrammation-fq1cv11 күн бұрын
Sans doute ! Je n'utilise ni l'un ni l'autre !
@bond517411 күн бұрын
Bonsoir, pour l’exercice avec ASL, je suis parti à l’envers, du bit du fire jusqu’au bit de la position up. Pour le fire 4 asl, puis un asl à chaque fois pour les autres directions. Pour le traitement de chaque appui du joystick la suite du programme et le traitement de chaque direction commence également par le fire et se termine par le up.
@RetroProgrammation-fq1cv11 күн бұрын
Bien joué... Mission complémentaire, réduire la taille du code ;)
@bond517413 күн бұрын
Bonsoir, si j’ai bien compris, une macro est une sorte de fonction qui attend un paramètre et ça évite d’alourdir le code source dans l’assembleur ? Par contre une fois assemblé en mémoire du C64, chaque appel de macro est remplacé par la totalité du code qu’elle contient, c’est bien ça ?
@RetroProgrammation-fq1cv13 күн бұрын
Hello Une macro est plutôt un script qui peut prendre un nombre variable de paramètres (0 à n) et qui va remplacer l'endroit où elle sera appelée par son propre contenu modifié via les paramètres. Soit le macro suivante : .macro IncrementeCouleurBordure()[ inc $d020 } .macro DisplayChar(x,y,char,color)[ lda #char sta (1024+x+y*40) lda #color sta (55296+x+y*40) } si dans mon code je mets ceci : main:{ :IncrementeCouleurBordure() :DisplayChar(20,12,160,7) :IncrementeCouleurBordure() rts } à la compilation, kick assembler lira et compilera ceci : main:{ inc $d020 lda #160 sta 1524 lda #7 sta 55796 inc $d020 rts }