1

-

2

3

Voici comment la pile est trouvée dans les versions publiques suffisamment récentes de tthdex (un warning dû à un manque de typecast):
>handle_table = *(unsigned long**)(unsigned long)(*((HANDLE*)HeapDeref+4+AMS_2xx));
Ici, handle_table est un unsigned long*; tu peux mettre aussi unsigned char**...

Si tu veux la version assembleur (ce qui est probable, vu que tu postes dans ce forum):

movea.l 0x96*4(%%a5),%%a0
addq.l #8,%%a0

cmpi.w #0x3E8,-2(%%a5)
blt.s 0f
addq.l #2,%%a0

0:
movea.w (%%a0),%%a4
movea.l (%%a4),%%a4

a4 contient "Heap"
Note: regarder si on peut faire mieux avec ROM_CALL 441 (pour AMS 2.xx), est sur ma todo list.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

4

je vois vraiment pas l'interet de porter un prog kernel en nostub!
avatar

5

-

6

Orion_
a écrit : voila, j'etait en train de porter un petit programme kernel en nostub pour mes besoin perso

Si c'est un programme disponible publiquement, s'il te plaît, fais profiter tout le monde de ce portage! Si tu penses ne pas avoir le droit de sortir une version modifiée, sors-nous un diff.
tout ce passait bien et la je tombe sur une reference a tios::Heap
je cherche donc a koi sa correspond dans tios.h
et la je trouve: tios::Heap equ _RAM_CALL_011
sad comment est ce que je peut faire pour porter l'equivalent de cette ram_call en nostub ? merci d'avance

Si tu programmes proprement, tu remplaces l'utilisation de tios::Heap par un appel à HeapDeref.

Sinon, tu récupères la variable comme ça:
 lea Heap(PC),a4
 cmp.l #$441,-4(a3) ;check if HeapTable is present
 bcs.s getheap_ams1
 lea.l $441*4(a3),a0 ;get address of HeapTable
 move.l a0,(a4)+ ;set Heap
 bra.s getheap_ams2
getheap_ams1:
 move.l HeapDeref*4(a3),a0
 clr.w (a4)+
 move.w 8(a0),(a4)+ ;set Heap
getheap_ams2:

où: Heap dc.l 0.
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é

7

Uther Lightbringer
a écrit : je vois vraiment pas l'interet de porter un prog kernel en nostub!

Ben, on le fait pour qu'il n'ait plus besoin de kernel. smile

J'ai porté DB92, et Greg Dietsche a porté Tetris89/92 et Dr. Mario.
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é

8

-

9

N'écris pas $96, mais plutôt le nom du ROM_CALL correspondant, sinon pour te relire, c'est assez chiant, on doit aller chercher à quel rom_call ça correspond (HeapDeref, dans notre cas)...
Sinon, comment ça se fait que ton code soit assemblable, puisqu'il me semble qu'addq n'accepte que des valeurs comprises entre 0 et 7 (inclus).

Sinon, je ne suis pas capable de t'aider, je n'arrive pas à comprends pas ce que fait ton code (dsl).
Par exemple, je ne comprends pas à quoi sert cette ligne : cmpi.w #$3E8,-2(a5)

Voilà et pour utiliser HeapDeref, il faut mettre l'argument (un handle) sur la pile et tu récupères l'adresse dans a0 (Mais ça ne devait pas être ça ta question, parce que ton code n'a pas trop l'air de correspondre à ça, sauf p-ê la première ligne).

10

-

11

La deuxième ligne c'est plutôt move.w d0,-(a7) puisqu'un handle tient sur 2 octets.
Sinon, je pense que c'est ça.

12

jackiechan a écrit :
Sinon, comment ça se fait que ton code soit assemblable, puisqu'il me semble qu'addq n'accepte que des valeurs comprises entre 0 et 7 (inclus).

Non, c'est plutôt 1 et 8. En effet, même si ça ne tient que sur 3 octets, comme c'est une valeur immédiate donnée au moment de l' "assemblage", la valeur 0 est inutile. Enfin je sais pas trop pourquoi, mais je sais que le addq.l #8,reg marche.
D'ailleurs addq.l #0,reg ne marche pas...
avatar
;)

13

Ah oui, c'est clair que addq #0,Dn n'a pas de sens, donc c'est mieux de permettre d'aller jusqu'à 8...

14

Demande a l'auteur pour l'autorisation d'avoir une version statique de pk92lib.

15

met le au format dll smile (mdr)
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

16

> met le au format dll (mdr)
Imbécile !

>probléme il me faut Heap, or Xdanger ma donner un code pour Heap,
j'ai donc tout simplement remplacer.
mais je pense que je vais faire appel a HeapDeref directement sa sera plus simple.
Plus lent, surtout.
Si tu immobilises un registre (comme je fais dans tthdex, avec a4), c'est plus simple:
Dans ce cas-là, Deref d0,a0 est remplacé par:
lsl.w #2,d0
move.l 0(a4,d0.w),a0
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

17

Orion_ a écrit :
que j'ai essayer de remplacer par sa, par contre je comprend po il me dit
Error: 1 undefined reference(s) to 'a4'. ?
[...] move.l (a4).w,a1 ; tios:: DEREF d0,a1

Voilà l'erreur. Mets movea.l a4,a1.
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é

18

PpHd
a écrit : Demande a l'auteur pour l'autorisation d'avoir une version statique de pk92lib.

Ben, il faudra nous expliquer comment tu veux qu'il le contacte. Pour la seule adresse e-mail qu'on a de lui, il y a écrit "This is on my account at school. [...] I will finish school in july 2000, you shouldn't try to mail me after this date."
TiMad a écrit :
met le au format dll smile (mdr)

bang
XDanger a écrit :
>probléme il me faut Heap, or Xdanger ma donner un code pour Heap,
j'ai donc tout simplement remplacer.
mais je pense que je vais faire appel a HeapDeref directement sa sera plus simple.
Plus lent, surtout.
Si tu immobilises un registre (comme je fais dans tthdex, avec a4), c'est plus simple:
Dans ce cas-là, Deref d0,a0 est remplacé par:
lsl.w #2,d0 move.l 0(a4,d0.w),a0

Utiliser Heap directement est plus sale, et puis le trouver prend nettement plus de place que d'appeler HeapDeref. Pour la vitesse, il n'y a pratiquement pas de différence. Juste l'appel de fonction en plus. HeapDeref fait la même chose que DEREF.
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é

19

J'ai retrouve une adresse valable y'a quelque temps (que j'ai reperdu).
Suffit de le chercher grin