Logicielsmoto.com
http://www.logicielsmoto.com/phpBB/

Debut en asm sur TO8
http://www.logicielsmoto.com/phpBB/viewtopic.php?f=3&t=571
Page 9 sur 19

Auteur:  Samuel Devulder [ 03 Fév 2020, 18:46 ]
Sujet du message:  Re: Debut en asm sur TO8

Je ne comprends pas la question. Tu veux mettre dans Y la valeur pointée par Y ?
==> LDY ,Y (lit 2 octets)

Tu veux mettre dans A la valeur pointée par Y ?
==> LDA ,Y (lit un octet)

Tu veux mettre Y dans D? A reçoit la partie haute, B la partie basse
==> TFR Y,D

Auteur:  adnz [ 03 Fév 2020, 21:53 ]
Sujet du message:  Re: Debut en asm sur TO8

ha merci c'est ça que je voulais.

LDA ,Y

:bien:

Auteur:  adnz [ 04 Fév 2020, 00:20 ]
Sujet du message:  Re: Debut en asm sur TO8

ouuu! :voyons: je pensais que ça aller être plus simple de sauver la zone avant affichage sprite !

Je m'amuse là :hum: ... ça manque de "tiroirs", j'vais mettre un cht'i plus longtemps que prévu.

Auteur:  adnz [ 05 Fév 2020, 11:44 ]
Sujet du message:  Re: Debut en asm sur TO8

Bonjour,

- bon ! la zone sauvegarde en memoire avant affichage sprite est OK

petit bloquage pour la routine "restore"!

- si je veux mettre dans B, la valeur qui est dans Y (ici $A000), puis mettre B dans X (ici $0000) (a savoir donc que je fais varier Y et X)
c'est bien comme ça ?

Code:
LDB ,Y
STB ,X
 


ou

Code:
LDB ,Y
TFR Y,X       <- heuu pas sûr de ça

Auteur:  Samuel Devulder [ 05 Fév 2020, 13:47 ]
Sujet du message:  Re: Debut en asm sur TO8

Ben dans la 2nde version tu fais quoi de B ? :voyons: Y et X ne contiennent que les adresses, pas la valeur, donc la valeur reste dans B. Ce n'est donc pas la bonne solution. :nanana:

La bonne est la 1ère bien entendu (LDB puis STB: on lit en mémoire, puis on écrit en mémoire) :good:

Auteur:  adnz [ 05 Fév 2020, 14:00 ]
Sujet du message:  Re: Debut en asm sur TO8

oui, ça marche, je me disais aussi ça, mais il me fallait une confirmation pour être sûr.
merci.

mes 2 routines save zone et restore zone à la position du pacman sont OK !

maintenant faut que je scénariste l'ordre des choses avec le swap screen... genre : save BG, draw pac, swap screen, restore BG etc...

:bien:

Auteur:  adnz [ 05 Fév 2020, 14:31 ]
Sujet du message:  Re: Debut en asm sur TO8

hoo pas evident le scénario du double buffering ! :voyons:

bon

1 - Soit je trouve le moyen le plus rapide de transférer un écran entier vite vite vite fait!
(code plus simple, on a juste à afficher les sprites dessus le fond !)

2 - Soit je dois garder les "old position" des sprites pour restaurer le fond sur l'ecran buffer qui sera en retard par rapport à celui affiché !!
(et là code plus c'est compliqué !)

mais je pense que la solutions 2 est beaucoup plus rapide !!

j'ai trouvé cette page qui pourrait peut être m'aider ! je vais voir !
https://nowhereman999.wordpress.com/201 ... ying-code/

Auteur:  Samuel Devulder [ 05 Fév 2020, 15:02 ]
Sujet du message:  Re: Debut en asm sur TO8

Oui la 2 est mieux. A noter que les coordonnées n'ont pas besoin d'être hyper précises. Tu peux recopier un peu plus que nécessaire (une colonne avant ou après). L'idéal étant de faire en sorte que le code de restauration soit rapide. Typiquement au lieu de garder 2 coordonnées qu'il faudrait converti en pointeur mémoire, pourquoi ne pas sauver directement le pointeur écran utilisé lors du dessin? Ensuite au lieu de s'occuper de savoir si ce pointeur commence en RAMA ou RAMB (ou 1ere et 2eme moitié des 16ko), pourquoi ne pas toujours le faire démarrer en RAMA (dans les premier 8ko). Enfin lors de la restauration, il n'est pas besoin d'alterner RAMA/RAMB pour chaque octet. Tu peux faire une copie de toute la partie RAMA, puis commuter (ou ajout de 8192 au pointeur) et ré-appliquer le même code pour la RAMB. L'important ici n'est pas la précision (on peut être grossier lors de la restauration), mais d'aller vite.

(je sais pas si je suis très clair)

Auteur:  adnz [ 05 Fév 2020, 15:12 ]
Sujet du message:  Re: Debut en asm sur TO8

C'est certainement bien expliqué, mais je dois relire pour comprendre :D
merci.

Auteur:  adnz [ 09 Fév 2020, 21:56 ]
Sujet du message:  Re: Debut en asm sur TO8

bonsoir,

Y'a un moyen en assembleur d'attendre le balayage de l'écran jusqu'en bas ?

je crois que c'est les VBL, HBL !!

ou de détecter par une adresse qu'une VBL est en cours ...

Auteur:  Samuel Devulder [ 09 Fév 2020, 22:50 ]
Sujet du message:  Re: Debut en asm sur TO8

OUI c'est très simple. C'est ce que fait la routine de changement de palette pour ne pas voir d'artefacts à l'écran:
Code:
FF47 7DE7E7     TST    $E7E7               7
FF4A 2AFB       BPL    $FF47               3
FF4C 7DE7E7     TST    $E7E7               7
FF4F 2BFB       BMI    $FF4C               3
FF51 39         RTS                        5

Auteur:  adnz [ 10 Fév 2020, 00:56 ]
Sujet du message:  Re: Debut en asm sur TO8

ok merci,

Donc si "TST $E7E7" positif alors vbl en cours j'imagine !

j'ai fais ça, ça dois être bon .

Code:
wait_vbl
              TST    $E7E7
              BPL   wait_vbl *si positif
              RTS

Auteur:  adnz [ 10 Fév 2020, 01:46 ]
Sujet du message:  Re: Debut en asm sur TO8

y'a une différence entre ??

LDY 0,U

et

LDY ,U

Auteur:  Samuel Devulder [ 10 Fév 2020, 07:14 ]
Sujet du message:  Re: Debut en asm sur TO8

Le 2e est plus rapide que le 1er.

Auteur:  adnz [ 10 Fév 2020, 12:34 ]
Sujet du message:  Re: Debut en asm sur TO8

ok :bien:

Page 9 sur 19 Heures au format UTC + 1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/