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

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

Auteur:  adnz [ 20 Jan 2020, 05:57 ]
Sujet du message:  Re: Debut en asm sur TO8

bon finalement ça marche,
j'ai remplacer mes LDU #player_r_anim par JSR setanimplayerstart
maintenant j'arrive à choisir quel anim en fonction de ma valeur player_set_num (0,1,2,3), mis a jour avec le joystick (0,1,2,3)

:coolfuck:

Code:
setanimplayerstart              * set player what anim
            LDA  player_set_num
            CMPA #0
            BEQ  p_set_anim_r
            CMPA #1
            BEQ  p_set_anim_l
            CMPA #2
            BEQ  p_set_anim_t
            CMPA #3
            BEQ  p_set_anim_b
           
p_set_anim_l
            LDX #player_l_anim
            STX player_anim
            LDU player_anim
            RTS
p_set_anim_t
            LDX #player_t_anim
            STX player_anim
            LDU player_anim
            RTS
p_set_anim_b
            LDX #player_b_anim
            STX player_anim
            LDU player_anim
            RTS
p_set_anim_r
            LDX #player_r_anim
            STX player_anim
            LDU player_anim
            RTS
setanimplayerend


Image

Auteur:  Samuel Devulder [ 20 Jan 2020, 12:42 ]
Sujet du message:  Re: Debut en asm sur TO8

adnz a écrit:
à ce que je comprend, SET permet de redefinir quelque chose mais il est perdu dès que y'a un saut.

donc SET s'utilise mais dans une succession de ligne de code sans coupure ?

Non. SET est une directive d'assemblage qui concerne l'assembleur, pas le processeur.

Citation:
j'ai l'impression que mon soucis c'est la compréhension de "au cours de l'assemblage".

L'assemblage est la phase de compilation, c'est à dire la traduction des instructions machines en code binaire machine. Cette traduction utilise des LABEL qui seront remplacée par leur valeur numérique dans le binaire machine. Le SET est juste une des façon d'assigner une valeur à un LABEL. Ca concerne le processus de traduction du code en binaire, mais dans le binaire il n'y a aucune trace des labels. Juste des codes haxadécimaux.

Auteur:  adnz [ 20 Jan 2020, 12:56 ]
Sujet du message:  Re: Debut en asm sur TO8

oui en effet, j'ai bien compris ça, ce matin :W
du coup j'ai fais autrement finalement, et ça marche. :bien:

merci.

Auteur:  adnz [ 29 Jan 2020, 17:41 ]
Sujet du message:  Re: Debut en asm sur TO8

salut,

quant je build avec cela dans mon code :

Code:
*******************
(main)pac_1_9.ASS
         ORG   $7300
 
   |...
   MON PROGRAMME ICI....
   |...

         includ PACFCB1.ASS

         END
*******************

(include)PACFCB1.ASS
big_pac_1
          FCB   $ff,$ff,$ff,$ff,$ff,$ff,$f2,$f5
          FCB   $f6,$f6,$26,$56,$56,$66,$66,$66
          etc..



1 - mon code s'implante donc à partir de $7300
2 - et les includes (les FCB...), s'implantent à la suite ? cad à partir de la fin du programme (après le END)?
3 - donc je dois faire gaffe de pas dépasser $9FFF ?

Auteur:  adnz [ 30 Jan 2020, 00:39 ]
Sujet du message:  Re: Debut en asm sur TO8

ha bah oui, je le vois dans le fichier codes.lst
7300 --> 9FAC

les graphismes que j'ai mis dans les FCB bouffe pratiquement la place !
faut que je trouve un moyen de les stocker autrement ! ou ailleurs !

Auteur:  adnz [ 30 Jan 2020, 05:46 ]
Sujet du message:  Re: Debut en asm sur TO8

Y'a un truc à faire de spécifique pour executer un code implanté à partir de $A000 au lieu d'implanter en espace non commutable $7300 ??

j'ai mis ORG $A000 !

et je charge ici : BANK4 : EXEC&HA000

(ça s'execute pas comme quant je l'implante en $7300 !!)

EXEC&HA000 : ça change de mode graphique puis ça revient au basic (en restant en mode 160x200 avec les barres ! )

Auteur:  Samuel Devulder [ 30 Jan 2020, 08:31 ]
Sujet du message:  Re: Debut en asm sur TO8

Il faut faire le BANK4 avant le LOADM, sinon tu charges dans une banque indéfinie, et execute dans la banque 4 qui contient tout sauf le programme chargé.

Tu aura aussi un problème si tu as programmé l'écran pour apparaître en $A000 dans ton exe.

Auteur:  adnz [ 30 Jan 2020, 13:30 ]
Sujet du message:  Re: Debut en asm sur TO8

oui c'est ce que je fais !

1 - je rentre dans le basic 512 donc DCMOTO dans le basic ...
2 - dans le debugger de DCMOTO : je load le .BIN a partir de $A000 dans Ram paginée 5
3 - je quit le debug, et dans le basic je fais : BANK4:EXEC &HA000

(oui BANK 4 car y'a un décalage de -1 entre le debugger DCMOTO et le basic, j'ai verifié les valeurs mis en memoire avec des PEEK)

Citation:
programmé l'écran pour apparaître en $A000 dans ton exe

mon swap ecran il est sur $0000-$2000

Auteur:  Samuel Devulder [ 30 Jan 2020, 15:26 ]
Sujet du message:  Re: Debut en asm sur TO8

je connais pas trop la manip de DCMOTO, mais est-ce que quand tu charges en $A000 ca charge dans la bank sélectionnée par le basic ou dans une bank à préciser dans l'interface utilisateur?

A la limite, ce que tu peux faire en étant sous émulateur c'est mettre un point d’arrêt en $A000 et voirt si tu y retrouves ton programmes, puis l’exécuter pas à pas pour voir ce qui fait que tu revienne rapidement au basic au lieu de rester dans le programme.

Auteur:  adnz [ 30 Jan 2020, 15:38 ]
Sujet du message:  Re: Debut en asm sur TO8

oui je vois bien que le prog est bien en A000 dans la bonne BANK.

ha oui ! ok je vais tester pas à pas pour voir !

Auteur:  adnz [ 30 Jan 2020, 17:35 ]
Sujet du message:  Re: Debut en asm sur TO8

ok !

dans mon code un moment,je swap la bank pour aller chercher le sample audio !
(NOBANK c'est BMIN qui est EQU à 3)

LDA NOBANK * choix de la bank
STA $E7E5 * commute la bank

je vois bien dans le debugger que la ram paginée passe à 3 juste à ce moment là!

-Donc du coup en faite vu que je reviens pas sur la bank 4 là où j'ai mon programme en memoire, ba ça continu pas !

- Quant j'enlève le son et son swap bank, l'execution à partir de $A000 fonctionne bien, donc c'est bien ça !

merci

Auteur:  adnz [ 30 Jan 2020, 19:53 ]
Sujet du message:  Re: Debut en asm sur TO8

lol trop c..
j'execute un programme en bank 4 en $a000 puis en plein programme je swap de bank pour essayer d'executer la suite,

mais lol, si je swap, mon programme il est plus là :W

donc il faut que mon programme source tourne en ram non commutable obligé.

Auteur:  Samuel Devulder [ 30 Jan 2020, 22:23 ]
Sujet du message:  Re: Debut en asm sur TO8

Oui, il te faut impérativement mettre les routines qui vont chercher des trucs en banque dans la partie non commutable. Pas forcément tout le moteur du jeu, mais les routines qui sont susceptible d'être appelées alors que la bank est commutée.

Auteur:  adnz [ 30 Jan 2020, 22:31 ]
Sujet du message:  Re: Debut en asm sur TO8

oui c'est ce que je viens de comprendre :oui:

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

Comment on faisait déjà pour mettre la valeur qui est dans l'adresse dans Y

je voudrais faire genre si dans Y j'ai $B000:

LDA Y

j'me melange un peu les pinceaux là :voyons:

merci.

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