Logicielsmoto.com http://www.logicielsmoto.com/phpBB/ |
|
Debut en asm sur TO8 http://www.logicielsmoto.com/phpBB/viewtopic.php?f=3&t=571 |
Page 6 sur 19 |
Auteur: | Samuel Devulder [ 16 Jan 2020, 00:54 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
Il faut faire plusieurs binaires. Un par bank. Débutant en $A000. Ensuite en basic tu fais "BANK no:LOADM "binaire-no.bin" (no un nombre indiquant le numéro de bank). En gros du as des binaires de data. Un par bank, et un binaire de code. Le basic charge tout ca et saute via EXE dans le point d'entrée du binaire de code. Ensuite en ASM c'est à toi de faire les commutations pour récupérer les data. Attention toute fois, perso j'ai toujours trouvé cet exercice assez casse-gueule car il n'y a pas grand chose pour débugger quand ca marche mal, et que finalement c'est vachement plus lent. Mieux vaut dans un 1er temps avoir le max de chose qui n'ont pas besoin des bank et les réserver aux choses qu'on utilise pas souvent comme l'intro par exemple. |
Auteur: | adnz [ 16 Jan 2020, 01:22 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
bon j'ai trouvé ce moyen apparement, faut que je test ORG $7300 ... big_pac_1 EQU $B000 ... END ORG $B000 *debut table big_pac_1 FCB $00,$00,$00,$00,$00,$00,$00,$02 FCB $02,$02,$02,$02,$22,$22,$22,$22 |
Auteur: | adnz [ 16 Jan 2020, 04:11 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
arrg ! impossible de lire le 2eme FDB ! le premier je le lie, mais j'arrive pas a faire un +1, +2 ! Code: LDY big_pac_anim * ici ç'a pointe bien sur le bon graphisme big_pac_1
LDY big_pac_anim+1 * ici ça foire !? ... big_pac_anim FDB big_pac_1 FDB big_pac_2 FDB big_pac_3 FDB big_pac_2 |
Auteur: | Samuel Devulder [ 16 Jan 2020, 08:51 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
Tu veux dire quoi par "ca foire" ? déjà ton LDY label+1 est étrange. "Y" étant 16bits, je comprends que par LDY label tu veux charger les valeurs aux adresses label et lable+1 dans Y, mais que veux tu faire alors avec label+1 ? label+2 je comprendrais, mais label+1 me semble étrange. A moins que tu ne voulais faire LDY #label+1. L'intention de ton code n'est pas assez claire pour que je te réponde. |
Auteur: | adnz [ 16 Jan 2020, 11:45 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
ok dac, désolé c'été pas très clair ! Avant d'appeler la routine d'affichage de sprite (JSR display_sprite), je dois charger Y : LDY #debut_du_tableau_FCB_du_sprite exemple : LDY #big_pac_1 ;ecrit comme cela ça marche, je vois bien mon sprite big_pac_1 ou : LDY #big_pac_2 ;ecrit comme cela ça marche, je vois bien mon sprite big_pac_2 Donc, je me suis dis je vais faire un tableau contenant l'ordre des sprites sur lequel je boucle. Code: big_pac_anim FDB big_pac_1 FDB big_pac_2 FDB big_pac_3 FDB big_pac_2 pour pouvoir faire : LDY #big_pac_anim (ici je pensais que c'été comme si LDY #big_pac_1) puis LDY #big_pac_anim+1 (et ici je pensais que c'été comme si LDY #big_pac_2) |
Auteur: | Samuel Devulder [ 16 Jan 2020, 11:56 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
Non il faut faire "LDY big_pac_anim" pour avoir big_pac_1 dans Y. Il n'y a pas de # là dedans. Ensuite la 2eme valeur n'est pas à big_pac_anim+1, mais big_pac_anim+2 puisque les adresses sont sur 16bits (FDB). Ce que tu veux probablement faire c'est un truc genre: Code: init:
LDU #big_pac_anim ... ...plus loin dans la boucle principale... LDY ,U++ CMPU #big_pac_anim_fin BNE suite LDU #big_pac_anim suite: ..suite du programme.. ... big_pac_anim: FDB big_pac_1 FDB big_pac_2 FDB big_pac_3 FDB big_pac_2 big_pac_anim_fin: |
Auteur: | adnz [ 16 Jan 2020, 11:58 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
ha oui désolé faute de frappe je fais bien LDY big_pac_anim sans le # ------------------------- donc si en dur je mets LDY big_pac_anim+2 ça devrais être comme si LDY #big_pac_2 ? |
Auteur: | adnz [ 16 Jan 2020, 12:13 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
bon bah, ça marche là. fallait faire +2 , +4 etc... j'men doutais un peu car dans la doc vu que j'ai vu FDB 16bit donc 2 octets. ! |
Auteur: | adnz [ 16 Jan 2020, 13:37 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
juste que je comprennent bien ! si on defini U (LDU #qqchose) et ensuite on touche à A ou B (LDA #2 ou LDB #2 pour faire des CMPA etc...) U n'est plus le même ? Donc on dois PSHS U faire les manip avec A, B puis pour récupérer mon U d'origine je PULS U ? est ce que le raisonnement est correct ? |
Auteur: | Samuel Devulder [ 16 Jan 2020, 14:08 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
adnz a écrit: juste que je comprennent bien ! si on defini U (LDU #qqchose) et ensuite on touche à A ou B (LDA #2 ou LDB #2 pour faire des CMPA etc...) U n'est plus le même ? Ben non, pourquoi? Si on ne touche pas un registre, il garde sa valeur. |
Auteur: | adnz [ 16 Jan 2020, 15:26 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
ha zut, ok j'ai cafouillé avec le registre D !! c'est pour ça que je parlais de A et B ! désolé, c'est que l'assembleur fait chauffer le cerveau |
Auteur: | Samuel Devulder [ 16 Jan 2020, 17:04 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
D n'est pas un registre, c'est A et B ensembles. Quand tu touches à D, tu touches à A et B. Quand tu touches A, tu ne touches pas B, mais tu affectes la valeur dans D, idem si tu touche B, La valeur de D est modifié, mais pas celle de A. |
Auteur: | adnz [ 16 Jan 2020, 17:26 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
ok merci. si bigpac_n = 2 est ce que LDY ,U++ c'est pareil que LDY ,U>bigpac_n ou LEAU bigpac_n,U ? il me manque plus que remplacer LDY ,U++ par quelquechose (LDY ,U+bigpac_n) vue que j'incrémente de 2 bigpac_n à chaque boule. si bigpac_n=2 alors LDY ,U+ 0fois si bigpac_n=2 alors LDY ,U+ 2fois si bigpac_n=4 alors LDY ,U+ 4fois si bigpac_n=6 alors LDY ,U+ 6fois mais je pense trop compliqué par rapport au simple instruction à faire en asm. c'est pour ça que je galère je pense. Faut que je prennent l'habitude de plein d'opération simple ! pas évident ! |
Auteur: | Samuel Devulder [ 16 Jan 2020, 23:15 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
Si tu connais le C, "LDY ,U++" est exactement la même sémantique que: "Y = *U++;" avec Y un short et U un pointeur sur short (et oui le C et l'assembleur 6809 ont quelques points communs.) |
Auteur: | adnz [ 17 Jan 2020, 01:20 ] |
Sujet du message: | Re: Debut en asm sur TO8 |
bon j'ai pas trouvé comme je voulais, mais j'ai fais un truc qui fonctionne. PS: la 1er capture : c'est un peu lent à cause la routine d'effacement <- bon j'ai résolu ce soucis là je vais mettre à jour ! car le fond est pas noir (0), j'efface avec une couleur ! faut que j'optimise ! et pour le moment j'efface et redessine tous les elements de l'écran ça ralenti un peu aussi ça ! la 2eme capture j'efface en mettant tout à 0 (noir numero de palette 0) cette routine va plus vite (c'est ta technique de mettre 7bits à 0 d'un coup !). mais je sais pas mettre la couleur ! J'aurais pu me démerder pour gérer la palette 0 en bleu mais j'utilise la meme palette pour tous les screens dont la palette 0 c'est noir !. |
Page 6 sur 19 | Heures au format UTC + 1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |