30

C bien :
c'est juste .asciz

Petit détail: c'est .ascii, pas .asciz. grin
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é

31

-

32

1. C'est .long qu'il faut mettre.
2. C'est le même hack que __MARK.
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é

33

#31,1. dc.l marche aussi!

#29, alors c'est vraiment bourin comme hack!! pas metre le 0 quand même! smile
Seb C bien

C bien, C beau, C ni Bosch ni Bush: C ++

34

Pas du tout. On en a besoin pour quoi faire, le 0? ttextract n'en veut pas, du 0, justement!
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é

35

#33> Kevin, j'avais pourtant suivi ta recomandation: metre un smiley pour marquer la dérision. Tu me déçois.
Enfin ça change rien le zero ou pas, c'est juste une convention, pour ttextract vous avez choisi de pas en metre.
Seb C bien

C bien, C beau, C ni Bosch ni Bush: C ++

36

pour le smiley, c'est mieux de mettre un trigni par exemple (ou un autre #tri#)

37

Kevin>

1. utiliser EXECUTE_IN_GHOST_SPACE 2. ajouter 0x40000 à l'adresse de la fonction dans ton fichier externe

Je fais ca a avant chque appel de fonction?
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

38

#36: non, pas besoin.
1. EXECUTE_IN_GHOST_SPACE n'est fait qu'une fois.
2. Tu rajoutes simplement une seule fois 0x40000 au pointeur qui pointe vers ton fichier externe en RAM, avant de l'utiliser.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

39

Autre problème...
Ca marchait nickel pour une fonction ne contenant que ngetchx():


void ma_func(void)
{
ngetchx();

}

Avec 2 ngetchx() ca marche...

mais avec

clrscr();
ngetchx();

ca marche plus j'ai un protected memory....
confus
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

40

Bizarre...
As-tu contrôlé que tu as assez de place sur la pile ?
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

41

La fonction est copié en ram alloué par malloc...
En fait je copie le code associé a la fonction en ram et j'execute....
Pareil pour un

void ma_func(int *a,int *b)
{
(*a)+=*b;
ngetchx();
}
par contre j'ai pas verifier si le malloc me sort bien un adresse paire mais ya pas de raison.....
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

42

malloc sort toujours une adresse paire.

Mais c'est bizarre que ça ne marche pas. Comment tu copies la fonction ?

43

sisi
*a+=*b;
marche c'est bon erreur de ma part..
l'erreur vient d'ailleur...
PS: le fonction je le copie avec memcpy
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

44

Bon je rectifie
l'appel a clrscr() fait tout deconner...
Pourquoi?
Peut etre parce qu'il a a besoin de variable specifique a l'executable et comme l'exe n'a pas de table de relocation...
Moa je vois que ca...
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

45

l'exe n'a pas de table de relogements ?

Ce qu'il faut, c'est que ta petite fonction que tu copies en RAM n'ait pas besoin d'être relogée pour fonctionner, alors tu peux la copier quelque part et l'exécuter.
Mais ton exécutable, si tu le compiles avec TIGCC, il a forcément une table de relogements.

46

mastergb1 :
mais avec

clrscr();
ngetchx();
ca marche plus j'ai un protected memory....

Tu ne peux pas appeler des fonctions de TIGCCLIB avec cette méthode. Mets ClrScr, c'est un ROM_CALL, ça marchera.
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é

47

A condition de na pas faire OIPTIMIZE_ROM_CALL.

48

Ou de le faire aussi dans le programme "client".
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é

49

Nan je sais je vais passer par une interface..
Le programme principal exportera les methodes que la fonction a besoin en gros de la technologie COM....
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

50

Bon ca y est la technologie DLF (dynamic link function ) grin marche bien..
Bon ya des regles a respecté mais ca top..
La je fais un exemple sous genlib.
Et je distribue ensuite datatolib v2.0 wink
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

51

J'ai parlé trop vite...
Ca fonction pas directement sous genlib car un truc comme ca ne marche pas:
void (*addr)();
addr=gl_draw_line;

et apres je fais
addr(10,10,50,50,3); ca marche pas car gl_draw_line n'est pas directement une fonction C (elle passe par les registres)

Et de l'autre coté cette fonction est appelé comme une fonction C
Donc comment casté un pointeur de fonction pour qu'il utilise les conventions qui passe par les registres? comme ci dessous:

void gl_draw_line(short x1 D0, short y1 D1, short x2 D2, short y2 D3, short color D5);

Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

52

quand tu définit ton pointeur sur fonction il faut aussi définir les argument que prendra la fonction.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

53

Oui mais ya des chance que specifier des registres pour arguments ne marche pas..
Sinon c amarche en redefinissant la fonction dans l'executable principal
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

54

Orion_ :
asm(" dc.l 0x12345678 ");
// code C asm(" dc.l 0x87654321 ");


des fois g l'impression que personne ne lit mes posts...... (c pas la premiere fois roll)
topics/25392-fonction-en-code-binaire#16

55

La méthode la plus logique fonctionne:
void (*addr)(register short asm("d0"),register short asm("d1"),register short asm("d2"),register short asm("d3"),register short asm("d5"));
ou si tu préfères:
void (*addr)(register short x1 asm("d0"),register short y1 asm("d1"),register short x2 asm("d2"),register short y2 asm("d3"),register short color asm("d5"));
(Les noms des paramètres peuvent être omis dans les prototypes.)
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é

56

Et si tu as besoin d'attributs:
void (__attribute__((stkparm))*addr)(short,short);
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é

57

Après tout les essai passé avec succès je suis sur l'interface graphique de datatolibV2 Donc plus d'interface dos smile
C'est super convivial et facile d'utilisation..
Je tiens preciser que datatolib peut dorénavant etre utiliser pour des gains de ram sans aucune perte de perf ainsi que l'elaboration de librarie conditionnelle vraiment facile et enfin se prete parfaitement aux plugins (pour les donnnées et fonction) et a la programmation COM.

Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

58

Juste par curiosité, mastergb, que veux tu faire avec des bouts de code en binaire?
Boogerman

Bouger, travailler, manger et se reposer, c'est la devise de la tortue!

59

L'appel de fonction dynamique..
Quand tu charge une librairie ou dll on charge entierement le fichier en memoire.
Dans mon cas j'alloue juste pour la fonction voulue etc...
Ensuite on peut faire des plugin de fou avec etc..
Enfin on peut reduire son exe principal des menus par exemple qui sont present qu'au debut ce qui permet d'alleger la ram puisque l'exe est plus petit.... smile
voila
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com

60

Mais ça ne réduit pas vraiment la taille, ça déplace juste les octets vers un autre fichier. sad En revanche, ça peut réduire la consommation de RAM.
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é