1

Bonsoir,

J'ai posté également ce qui va suivre sur le forum gfa mais vu que ce n'est pas a priori un problème spécifique au GFA, je me permet de demander de l'aide ici aussi

----
http://atari.gfa.forum.free.fr/viewtopic.php?f=6&t=268
Je suis en train de tester la programmation directe du blitter pour compléter le tutorial, et j'obtiens un resultat étrange : pendant près d'une vingtaine de ligne, tout va bien (note : en faisant des tests sur le nombre de mots copiés par ligne, je dirais même que tout va bien pendant un certain nombre de mots ), puis à partir d'un moment les données sont décalé d'un mot supplémentaire.
Est-ce ma faute ? Un bug du blitter ?


sur le message d'origine, vous trouverez les captures d'écran (couleur et monochrome) et le programme de test.

Merci d'avance

2

Je ne vois pas les captures puisqu'il faut être loggé (et pas envie de créer un Xième compte juste pour ça) mais vérifie bien ce que tu mets dans les registres du blitter, n'oublie pas des fois de faire un "& 0x0FF" (| 255 en GFA je crois) pour éviter les débordements.

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

3

ha, je pensais qu'on pouvait voir les données des postes sans besoin d'avoir un compte...

tromb Fichier joint : OMew (le résultat en monochrome)

tromb Fichier joint : F6YM (le resultat en couleurs)

tromb Fichier joint : DABLITFO.LST le source gfa

4

Je pense que la valeur dst_y_inc (incrementation compteur en fin de ligne de destination) est incorrect, genre tu dois avoir +2 ou -2 en trop par rapport à ce que tu as besoin.
Web: http://pmandin.atari.org/
Programmeur Linux, Atari
Spécialité: Développement, jeux

5

J'ai essayé ce que tu as dit, mais dans ce cas toutes les lignes sont décalées, et cela ne règle pas le problème car j'ai toujours ce décalage parasite.

En jouant sur mes variable x_count et y_count (les compteurs de mots par ligne et de ligne), j'ai établi que je peux déplacer correctement 128 mots. Le 129eme mot est décalé d'un mot supplémentaire (en jouant avec dst_x_inc et dst_y_inc, je trouve que ce décalage est indépendant de ces valeurs) puis le reste de la copie se poursuit sans autre décalage intempestif.

6

ca vient peut etre des bits fxsr ou nfsr alors?
Web: http://pmandin.atari.org/
Programmeur Linux, Atari
Spécialité: Développement, jeux

7

D'après moi il devrais utiliser des CARD pour taper dans les registres, sinon ça risque d'écrire dans les registres d'à coté et faire des effets de bord...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

8

je viens juste de faire un test avec des LONG/WORD/BYTE{...} au lieu d'utiliser des variables ABSOLUTE pour manipuler les registre, et ça marche.

Conclusion : mon idée d'utiliser ABSOLUTE n'est pas si bonne >_<

9

CQFD tongue Depuis hier que je te le dit ! C'est une erreur typique, t'inquiètes, si je la connais si bien c'est pour l'avoir faite moi même...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/