Bonjour
Je suis en train de porter un jeu vidéo shot m up de 1981, célèbre jeu d'arcade, sur Thomson, Scramble pour ne pas le citer.
Voici le bout de code sensé afficher un rectangle de sol (incomplet)
Code:
*************************************
*Routine début Scrolling
* Affichage Rectangle
* Les coordonnées Col se déduisent
*************************************
DebScr *
LDA #8
LDB #CuDeBc
SUBB #65
MUL
STD XXXXX X1 Rectangle
TFR D,X X2 rect Provisoire
LDA #8
LDB #LargEc Fct de largeur Ecran
MUL
LEAX B,X X2 rect Définitif
LDA #8
LDB #CuDeBl
SUBB #64
MUL
STD YYYYY Y1 Rectangle
ADDD #32
TFR D,Y Y2 rectangle
LDA $FF
STA FILFLG
LDB #BOX
* LDU #MOTIF
* STU MACP
JSR EXTRA
RTS
MOTIF FCB 255,255,255,255,255,255,255,255
Et lors de mes tests pour afficher le sol de début, j'ai utilisé
LEAX B,X
Sauf que le résultat n'affiche qu'une ligne verticale de 32 pxl de haut et vide en largeur!
En remplaçant par
LEAX D,X,
ça affiche bien un rectangle
Idem si je fais
LEAX 160,X
Mais quand on met en décalage A ou B, il ne se produit pas de décalage, alors que dans la documentation assembleur que j'ai ("Le microprocesseur 6809, ses périphériques est le processeur graphique 6365-66" aux éditions Eyrole, et "Manuel de l'assembleur 6809" pour TO8) il n'est fait mention nulle part que les régistres A et B ne peuvent pas servir à l'adressage indexé pour LEA.
Je précise que l'étiquette LargEc est initialisé à 20 ici (ça représente la largeur écran en caractères).
Est ce que ce problème là est connu ?
J'utilise l'Asembleur 3.0 pour TO8 (De préhisto) via DC Moto d'avril 2023.