1

voila ce que j'ai trouve dans une doc de Kevin Kofler(Kevin Kofler's homepage) :
move.l HeapAllocPtr*4(a5),a0

comment je peux mettre ca sous as(de nitro)?
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

2

remplace HeapAllocPtr par son addr

3

Non, par son n° de ROM_CALL (ou simplement si tu as le fichier AMS, tu écris le nom du ROM_CALL).
Mais AS possède un HACK, qui te permet d'utiliser facilement les ROM_CALLS avec le fichier AMS_C.
Il te suffit d'un jsr _nom_du_rom_call.

4

-

5

>>neurone

je connaissais le hac,mais j'ai pas compris ce que Kevin a voulu faire.T'es sur que ca revient au meme?
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

6

Il te suffit d'inclure ams.h par :
include "ams"
et tu peux alors écrire le code de Kevin sans modification.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

7

move.l $c8,a5
move.l HeapAllocPtr*4(a5),a0
jsr (a0)

EST le code complet.

8

C'est l'écriture HeapAllocPtr*4 qui surprenait ordivore tongue
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

9

Mais en fait ca fait quoit,ca post incremente a5 de 4*l'adresse de HeapAlloc Ptr?
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

10

Non, ça lit ce qu'il y a à l'adresse a5+HeapAllocPtr*4.
HeapAllocPtr est une constante qui vaut l'index du ROM_CALL dans la table des RC.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

11

$c8 est le debut d'un tableau d'adresse, chacune de ces adresse est celle d'une romcall.
Donc HeapAllocPtr*4 est l'offset a ajouter a partir de l'adresse $c8 pour avoir l'adresse vers la romcall HeapAllocPtr (tu multiples par 4, car un pointeur est codé sur 4 octets).
Une fois que l'opération est faite, tu sais que a0 pointe sur la RomCall HeapAllocPtr, tu n'a plus qu'a faire un saut vers cette adresse (jsr (a0)).

12

ok merci
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

13

Nerick a écrit :
$c8 est le debut d'un tableau d'adresse, chacune de ces adresse est celle d'une romcall. Donc HeapAllocPtr*4 est l'offset a ajouter a partir de l'adresse $c8 pour avoir l'adresse

Enfin $c8 pointe vers le tableau des adresses de ROMCALL, donc il ne faut pas ajouter l'offset à partir de $c8 mais à partir de l'adresse pointée par $c8. :]
avatar
;)

14

exact, je me suis mal exprimé. smile

15

Et ,si j'ai bien compris,le "*4" vient du fait que l'on parcoure des pointeurs
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

16

On multiplie le numéro du handle par sizeof(void *) pour avoir le bon offset.

17

ok!
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!