150

je mieux pour convertir ton nombre en chaîne , c'est le ROM_CALL sprintf qui devraît t'être pas mal utile... le seul inconvénient, c'est qu'il faut que tu prévois un espace assez grand...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

151

nounoun
: Sasume-> C'est bien ce que je pensais, donc il faut que je fasse un alog pour convertir mon nombre hexa nombres décimaux, et après le convertir en caractère ?
Oui, sinon, le ROM_CALL sprintf peut te faire le boulot.
Enfin, je n'ai pas très bie compris to algo. Il n'y a qu'une phase : convertir le nombre en chaine. Tu n'as pas besoin de convertir un nombre en hexa en un nombre en decimal (ça n'a pas vraiment de sens en fait).
avatar
« 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. »

152


* Sur HW1, il ne faut pas toucher aux espaces fantôme à protection Flash désactivée parce que ça modifie la protection anti-exécution en FlashROM. Mais pratiquement aucun programme n'est exécuté à protection Flash désactivée.

Il faut desactiver la protection materielle pour que ca marche. Donc ca ne pose aucun probleme sur HW1.

153

ok, merci Sasume et Link smile

154

155

Le résultat de rand est dans le registre d0 tout simplement.

Cf. http://tigcc.ticalc.org/doc/asminfo.html:
Any function which returns any non-pointer type (char, short, int, long), including not-too-long structures (like HSym), keeps the result in the register D0.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

156

157

158

C'est à mon avis inutile de gérer le cas particulier où le sprite est à une abscisse multiple de 8, parce que de toute façon, les autres cas seront plus lents à gérer, donc tu seras obligé de te baser dessus pour régler la vitesse de ton jeu si tu veux qu'il soit fluide.
avatar
« 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. »

159

160

161

Et es-tu sûr qu'on puisse afficher un sprite avec la même routine, que l'abcisse soit multiple de huit ou pas

oui, puisque le cas ou l'abscisse est divisible par 8 n'est qu'un cas particulier du cas general. Ton decalage sera nul, c'est tout.

162

Martial Demolins :
je ne comprends pas ces lignes:
move.l #80*$1000000+20*$10000+100*$100+40,10(a7) malgré avoir bien lu la doc de tigcc sur la fonction de rectangle utilisée, je ne comprends pas pourquoi il faut utiliser tous ces nombres pour dessiner un rectangle, tu peux m'éclairer stp?

C'est (SCR_RECT){{80,20,100,40}}.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

163

164

165

t'as besoin de 4 coordonnées, codées chacune sur un octet. Ces 4 octets peuvent être considérés colmme un longint (compris entre $0 et $FFFFFFFF) et non comme 4 octets séparés. Et on a $ABCDEFGH = $AB * $1000000 + $CD * 10000 + EF * $100 + GH
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

166

167

168

random est une macro C, tu ne peux pas l'utiliser en ASM.
Il faut que tu utilises la fonction rand de TIGCCLIB, qui te retournera un nombre entre 0 et 32767, et que tu utilises cette valeur aléatoire pour obtenir ton nombre.
avatar
« 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. »

169

Si tu regardes la doc tu peux voir que random est une macro. Donc tu ne peux pas l'appeller vu qu'elle n'est pas dans tigcclib.
Donc il faut que tu ailles dans les headers, que tu regardes le code de la macro et que tu le copie en ASM.

Edit: crosspost
avatar
;)

170

171

Si tu compiles avec TIGCC, tigcclib.a est automatiquement linké avec ton programme, donc tu n'auras rien besoin d'inclure.

Sinon, j'ai peut-être mal compris, mais tu ne peux pas copier le code C de la macro, il faut que tu réécrives un code équivalent en ASM. Enfin, la macro fai une ligne, donc ça devrait être simple... Au fait, pour info : diviser par 32768 <=> décaler de 15 bits vers la droite (ou bien swap + 1 rol)
avatar
« 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. »

172

173

Pour le random, tu appelles rand, puis tu fais:
 mulu #2*x,d0
 swap d0

x est le nombre maximum que tu veux obtenir, qui doit être inférieur à 32768 pour que cette méthode marche.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

174

175

mulu.w #2,d0 est une instruction du 68000.
En assembleur, toute instruction que tu tapes correspond à une instruction du processeur.
avatar
« 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. »

176

177

Dans ce cas, il faut que x soit constant au moment de la compilation.
Donc tu peux utiliser equ pour définir x.
Mais bon, tu n'es pas obligé de recopier tel quel le "code" Kevin. D'ailleurs ce n'est pas du code, c'est juste le principe.
avatar
« 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. »

178

Si tu veux des nombres aléatoires entre 0 et 123-1=122, tu marques mulu #2*123,d0, ou tout simplement mulu #246,d0, ça revient au même.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

179

180

la syntaxe move.s -(an),(an)+ n'existe pas
c'est soit move.s -(an),-(an), soit move.s (an)+,(an)+, tu peux regarder dans le 68k guide

la méthode, ça serait de faire lea -3840(a7),a7, puis des move.l (a0)+,(a7)+, ou qqc comme ça


pour le reste, je connais pas la fonction rand, donc je peux pas dire. Essaie de remplacer la fonction rand par moveq #1,d0:rts pour voir si c'est ça qui fait planter
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant