1

j'aimerais savoir comment je peux avoir l'adresse absolu d'une app flash dans la memoire, (en fait je cherche a trouver le dictionnaire que contient l'app flash 'francais' )
j'ai essayé avec SymFindFirst (SYMSTR(NULL),FO_RECURSE); et SymFindNext (); mais sans succes

quelqun aurait - il une idée, merci d'avance !

2

3[(void**)HeapDeref(EV_getAppID("TIFRA"))]
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é

3

cross
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

4

merci kevin et flanker !

5

Oups, c'est 3 et pas 4 qu'il faut mettre (l'offset n'est que de 12, pas de 16).
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é

6

c'est vrai que j'ai beaucoup aidé grin
par contre, dans l'app flash français, c'est pas vraiment un dictionnaire, hein. Dans l'AMS, toutes les chaînes de caractères que tu peux voir dans le système (genre les messages d'erreur, les noms de fonctions) sont "codées en dur", i.e. tu verras des phrases complètes déjà faites, pas les mots séparées.
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

7

Et si tu veux récupérer les chaînes, tu regardes comment récupérer les attributs dans la doc du sdk téléchargeable sur le site de TI. La fonction s'appelle OO_getsuperFrameAttribute ou qqc comme ça
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

8

par contre, dans l'app flash français, c'est pas vraiment un dictionnaire, hein. Dans l'AMS, toutes les chaînes de caractères que tu peux voir dans le système (genre les messages d'erreur, les noms de fonctions) sont "codées en dur", i.e. tu verras des phrases complètes déjà faites, pas les mots séparées.

peut importe : ca prendra moins de place de coder une fonction de recherche que de faire un nouveau dico !

9

oups cross ...
merci flanker !

10

un truc qui a rien a voir avec le topic mais j'ai besoin de creer un menu custom depuis un programme C , j'ai trouver le handle qui correspond au menu custom mais je n'arrive pas a trouver où son adresse est enrengistré...
personne ne sait ?

et à quoi sert menucustomitem ? , j'ai pas touvé dans la sdk

11

> tu veux faire quoi exactement ? un vrai CUSTOM qui reste en permanence (activé par 2nd + 3) ou juste un menu dans un programme ?
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

12

Si tu as un handle, il suffit d'un HeapDeref dessus.
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. »

13

oui un vrai custom permanent
et sasume, je cherche où elle est enrengistré par la ti

14

je vais regarder ça, vu que j'arrive à l'identifier dans mon explorateur de handles, je devrais avoir son adresse
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

15

hum j'ai ce code-là, j'ai l'impression que c'est ça
move.l 5100(a5),a0
cmp.w -4(a0),d3
beq i_h_cust
cmp.w -2(a0),d3
beq i_h_cust
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

16

euh........ si j'ai compris a5 pointe vers une adresse , si on y rajoute 5100 ,c'est l'adresse du handle du custom ...?

17

et y'a quoi dans d3?

18

en gros oué. j'ai oublié d'initialiser a5 (j'ai juste fait un copier-coller)
 move.l  200,a0
 move.l  5100(a0),a0

là t'as a0 qui est un pointeur tel que -4(a0) et -2(a0) sont les 2 handles du custom
Un custom est constitué de 2 handles (regarde la doc de MenuNew ou un truc du même genre). En gros, y en a un qui est affiché et l'autre qui renverra la chaîne insérée
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

19

latisfalada :
et y'a quoi dans d3?

le but de mon code, c'était de voir si le handle d3 était un handle de custom
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

20

donc si j'ai bien compris :
à l'adresse 200 y'a une adresse A1
à l'adresse A1 y'en a une autre A2
à l'adresse A2, y'en a encore une autre, j'y rajoute 5100 et j'obtient A3

à l'adresse A3-4 et A3-2 j'ai l'adresse des 2 handles du custom

non ?

parce que chez moi ca marche pas du tou, je vais essayer de faire de l'asm inline...

21

bon je comprend pas l'asm inline ...
dans main :
void *p;
asm("
move.l  200,a0 \n
move.l  5100(a0),a0\n "
 :"=a"(p)::"a0","cc");[pre]

la ca marche mais si je met quoique ce soit derriere, du style 
[pre]clrscr();
printf("%lX",(unsigned long)p);
ngetchx();

la il me met parse error sur move.l 5100(a0),a0

22

Le code correct est:
asm(" 
move.l  200,%%a0 \n 
move.l  5100(%%a0),%0\n " 
 :"=a"(p)::"a0","cc");
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é

23

Et tu n'as pas besoin d'assembleur inline pour faire ça:
p=1275[*(void***)200];
marche très bien pour ce que tu veux faire.
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é

24

ooh c'est dingue ... comment tu fais kevin?

mais , j'ai l'impression que ca ne vas toujours pas : imaginons que je fasse un petit prpgramme basic comme ceci :
aa()
prgm
custom
title "alors?"
endcustm
endprgm


je l'execute tel quel.
puis je suis ce que vous dites,
void *p=1275[*(void***)200];
on a *(p-2) et *(p-4) qui pointe vers les 2 handle mais voila, (p-2)=0x1E et (p-4)=0x1D mais a ces adresse je ne trouve rien de "alors?"

en faisant une recherche avec hex3() je cherche "alors" et je le trouve a l'adresse 0xECFC, je suis sur qu'il correspond au handle du menu custom car si je modifie une lettre ca modifie le custom...
et dans la memoire ca se presente comme ca : ÿ ÿ ÿ ÿ a l o r s ?
sachant que ÿ=0xFF c sur que ecfc est le debut du handle que je cherche

j'ai esayé ceci apres mais sans succes :
unsigned long i;
clrscr();
for(i=0;i<0xFFFFFF;i++)
if(*(unsigned char*)i==0xEC && *(unsigned char*)(i+1)==0xFC)printf("%lX",i);
printf("\nfini");
ngetchx();


aucun resultat crash tripaf

25

Ben, c'est qu'il te manque une partie du hack de Flanker, c'est-à-dire:
cmp.w -4(a0),d3
beq i_h_cust
cmp.w -2(a0),d3
beq i_h_cust


Et franchement, tu ferais vraiment mieux d'utiliser les ROM_CALLs (CustomBegin etc.) que ces hacks! Même sans documentation, tu iras plus vite avec les ROM_CALLs!
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é

26

Même sans documentation, tu iras plus vite avec les ROM_CALLs!

sans doc, c'est dur d'utiliser les ROM_CALL roll
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

27

Pas du tout, c'est plus simple que d'aller chercher des adresses n'importe où dans la RAM! Pour les ROM_CALLs, on a en général au moins les prototypes. Alors que tes adresses de RAM ne sont pas documentées du tout!
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é

28

Et même avec un simple nom (qu'on n'a pas non plus pour une adresse prise au hasard dans la RAM), on peut deviner comment marche la fonction.
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é

29

Et tu l'as comment le nom, si t'as pas de doc gol
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

30

latisfalada
on a *(p-2) et *(p-4) qui pointe vers les 2 handle mais voila, (p-2)=0x1E et (p-4)=0x1D mais a ces adresse je ne trouve rien de "alors?"


Tu es sûr que tu déréférences (HeapDeref) correctement les deux handles (0x1E et 0x1D dans ton cas) ?
Parce que les deux codes de Flanker et de Kevin fonctionnent très bien chez moi:
en déréférencant les deux handles, j'obtient deux adresses qui l'une comme l'autre pointent
à quelques octets près vers "alors?" (j'ai auparavant exécuté le petit programme en ti-basic
que tu donnes, et j'ai mis le menu customisée sur l'écran Home avec [2nd]+[3]).