zegoo Le 03/02/2006 à 23:30 Lisez des tutos qu'ils disaient !!!!
C'est ce que j'ai fait, je ne suis pas forcément tombé sur les bons ! J'ai passé trop de temps à comprendre ce qui n'allait pas dans cette routine qui n'est pas de moi. Je vais donc en écouter certains et relire pour la 15ème fois le guide du 68000 ainsi que newbies.txt.
Question plus générale:
Si je crée un tableau dans un prog asm pour y entrer des valeurs (nombres, string, que sais-je...); ce tableau pourra-t-il être consultable en dehors de l'exécution du programme ?Si non j'mremet au basic, si oui de quelle manière ?
Consultable par qui, pour quoi faire ?
zegoo Le 04/02/2006 à 00:19 j'ai dépassé ce stade M.Pollux.
zegoo Le 04/02/2006 à 00:21 move.l #LCD_MEM,a0 ;
move.w #179,d0 ; (3840/16/4)-1
loop1: ;
move.l #$0FF00FF0,(a0)+ ;
dbra.w d0,loop1
Ah, ça commence à devenir intéressant alors ?
A quel stade en es-tu ?

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
zegoo Le 04/02/2006 à 00:24 Je ne sais toujours pas afficher un sprite !! Je ne comprends le principe (la deuxième étape). Je ne suis pas fûté je sais !
est-ce que tu peux faire une fonction qui trace une ligne verticale à une abscisse donnée ?
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
zegoo Le 04/02/2006 à 00:27 En fait j'aurais tendance à vouloir afficher le premier byte (octet) de mon sprite en x, puis rajouter 3O octets à x pour afficher le second byte du sprite et ainsi de suite. C'est faux ?
Oui c'est juste si tu veux afficher le sprite à un x multiple de 8 ^^ dans les autres cas c'est plus compliqué...
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
zegoo Le 04/02/2006 à 00:33 M.Sasume, pour l'écran noir c'est çà :
move.l #LCD_MEM,a0 ;
move.w #959,d0 ; (3840/4)-1
loop1: ; trace un écran noir
move.l #$FFFFFFFF,(a0)+ ;
dbra.w d0,loop1
Dans l'exemple que je t'ai donné je ne voulais qu'1/16 de l'écran.
M.POLLUX, je n'ai pas essayé une ligne verticale, j'ai fait çà:
move.w #7,-(a7); mode d'affichage de la ligne horizontale, ici double ligne noire
move.w #70,-(a7) ; Ordonnée finale
move.w #160,-(a7) ; Abscisse finale
move.w #70,-(a7) ; Ordonnée initiale
move.w #10,-(a7) ; Abscisse initiale
move.l DrawLine*4(a5),a0
jsr (a0)
Sais-tu allumer un pixel en particulier sur l'écran, juste en précisant ses coordonnées cartésiennes ?
La difficulté vient du fait que le processeur est plutôt fait pour manipuler des octets que des bits...

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
zegoo Le 04/02/2006 à 00:35 M.Pollux, cross, oui, dans un premier temps je voudrais afficher un sprite 8x8 et le faire bouger.
Le coup de rajouter 30 octets, çà devrait se faire plus vite que la routine que je n'ai pas compris ?
zegoo Le 04/02/2006 à 00:36 M.Sasume, j'en sais rien, çà doit franchement être tout con si il existe un rom_call, non ?
zegoo Le 04/02/2006 à 00:44 M.Sasume, rotation gauche et droite, très intéressantes pour les multiplications en autres...
Oui, mais elles agissent au niveau de bits.
Or sur l'écran, un pixel est identifié par un bit (et non un octet par exemple).
De même, tu peux regarder la doc des fonctions bset, bclr, bchg et btst.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
zegoo Le 04/02/2006 à 00:53 M.Sasume, en fait je ne comprends pas le principe du déroulement de la chose, çà veut pas rentrer !
Je n'arrive pas à me faire une représentation claire de l'algo à coder !!
Bah si tu veux, à l'adresse LCD_MEM ($4C00), tu prends le premier octet. Il contient 8 bits. Il représente donc 8 pixels à l'écran (les 8 premiers en haut à gauche plus précisément). Pour allumer le 3ème pixel en partant de la gauche, il faut faire un bset.b #5,$4C00. Ou bien un ori.b #%00100000,$4C00 par exemple.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
zegoo Le 04/02/2006 à 01:01 Je voudrais revenir un instant sur mon post 151 > je veux coder en asm car c'est plus rapide mais je veux pouvoir garder un oeil sur le contenu des variables, tableaux que "j'alimenterais" par le biais du prog asm; je voudrais donc pouvoir les consulter en basic. C'est possible ou pas ?
Et à propos de la restauration de la pile....
Oui, c'est parfaitement possible : tu peux accéder au système de fichiers, et donc modifier les variables contenues.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
zegoo Le 04/02/2006 à 01:07 M.Sasume, c'est pas des pixels dont je parlais, je parlais des sprites, par contre merci. Si j'ai bien compris, pour faire une ligne verticale de 10 pixels, il faut faire une boucle de 10 qui fait un bset.b #5 tous les 30 octets à partir de $4C00 ?