30

Dans ce cas il faut que je mette a l'assembleur aussi. Tu pourrai pas m'aider à terminer le code parce qu'il parle de mettre un rte à la fin du code pour faire un handler d'interuption stp?

Merci d'avance.

31

32

J'ai trouvé autre chose en lisant la doc de tigcc dans le header file "events" c'est la fonction EV_defaultHandler(CM_ON) qui excute le programme quand on allume la caltos mais le probleme est que quand je l'excute il me met une adresse error pourtant j'ai ecrit la fonction correctement.Quelqu' un pourrait me trouver ce qui va pas?

Voici la source: // C Source File // Created 31/08/2004; 22:44:45 #include <tigcclib.h>   #undef XFLAGS  #define XFLAGS 15  #undef XF_NO_ALPHA_LOCK  #define XF_NO_ALPHA_LOCK 0x0004000000000000ULL  void _main(void)  { EV_defaultHandler(CM_ON);  int dialogkey,pass_ok; const char *text;  char buffer[10];  const char *a="8908";  HANDLE dialog;    text="Welcome on my TI89"; pass_ok=0; do   {      *buffer=0;     if(!(dialog=DialogNewSimple(140,50)))return;      DialogAddTitle(dialog,"Password",BT_OK,BT_CANCEL);     DialogAdd(dialog,0,0,0,XFLAGS,XF_NO_ALPHA_LOCK);      DialogAddRequest(dialog,4,24,"Request the password",0,5,5);      DialogAddText(dialog,4,15,text);      dialogkey=DialogDo(dialog,CENTER,CENTER,buffer,NULL);      HeapFree(dialog);      if(dialogkey!=13) DlgMessage("Password","You dream!!!",BT_OK,BT_NONE);;      if (!strcmp(a,buffer))        {        pass_ok = 1;         DlgMessage("Password","Access Granted",BT_OK,BT_NONE);       }      else DlgMessage("Password","Access Denied",BT_OK,BT_NONE);     }while(!pass_ok);      }

33

heu... construire un hook sur un événement est loin d'être aussi simple...
je te conseille de jeter un coup sur "SampleTSR"
http://calc.gregd.org/readme/SampleTSR-Readme.html

et de t'en inspirer
(je ne sais pas s'il a été rendu compatible avec la version 0.95 de TIGCC... si ce n'est pas le cas, les manipulations à faire pour le rendre compatible ont déjà été postées sur le forum de la TICT, il me semble : http://tict.ticalc.org )
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

34

spectras
:
Je ne comprend rien à l'assembleur est ce qu'il aurait moyen de "traduire" la source en C ?
Non.

Si:
DEFINE_INT_HANDLER(testoff) 
{ 
  if (peekIO_btst(0x60001a,2)) return;
  if (!(ST_flags & 1)) return;
  ExecuteIntHandler(GetIntVec(TRAP_4)));
} 

(J'ai fait ça à l'arrache, donc il y a peut-être des erreurs, mais c'est l'idée.)
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

Si:
Euh, tu peux me rappeler la définition de DEFINE_INT_HANDLER et ExecuteIntHandler, j'ai comme un trou de mémoire ?

36

C'est de l'assembleur inline, certes, mais ces macros sont dans TIGCCLIB, donc il peut utiliser ça comme si c'était du C pur.
Et si tout marche comme prévu, DEFINE_INT_HANDLER fonctionnera bientôt sans assembleur inline, avec un __attribute__((interrupt_handler)) géré entièrement par GCC. (GCC 3.4 propose un tel attribut, il faudra juste que j'adapte notre hack pour faire marcher OPTIMIZE_ROM_CALLS pour marcher avec cet attribut.)
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é

37

Et si tout marche comme prévu, DEFINE_INT_HANDLER fonctionnera bientôt sans assembleur inline, avec un __attribute__((interrupt_handler))
Ah ça c'est une bonne idée. Parce que l'attribut existe déjà pour d'autres plateformes.

38

Flanker :
avec ça, t'auras pas toutes les extinctions de la calc. Vaut mieux intercepter le trap #4, c'est plus sûr

pep>> tu ve que ton programme sois executé a chaque extinction de la calc meme quant t'es dans txrider ou un jeu ou bien juste quant tu appui sur 2nd on depuis une application de la ti (HOME,TXT_EDITOR,PRGM...)

dans tous les cas telecharge le sample tsr de greg dietsche !
NTW !!!!!

39

Kevin Kofler :

Si:
DEFINE_INT_HANDLER(testoff) 
{ 
  if (peekIO_btst(0x60001a,2)) return;
  if (!(ST_flags & 1)) return;
  ExecuteIntHandler(GetIntVec(TRAP_4)));
} 

(J'ai fait ça à l'arrache, donc il y a peut-être des erreurs, mais c'est l'idée.)


Oui c'est fait à l'arrache mais corriger quelque truc mais j'ai un probleme avec ST_flags je ne comprend le compilateur me dit "Invalide type of 'unary *'

Voici la source: // C Source File // Created 31/08/2004; 22:44:45 #include <tigcclib.h>   #undef XFLAGS  #define XFLAGS 15  #undef XF_NO_ALPHA_LOCK  #define XF_NO_ALPHA_LOCK 0x0004000000000000ULL  #define ST_flags DEFINE_INT_HANDLER(testoff)   {     if (peekIO_bit(0x60001a,2)) return;    if (!(ST_flags &1 )) return;    ExecuteIntHandler(GetIntVec(TRAP_4));  }  void _main(void)  {  int dialogkey,pass_ok; const char *text;  char buffer[10];  const char *a="8908";  HANDLE dialog;    text="Welcome on my TI89"; pass_ok=0; do   {      *buffer=0;     if(!(dialog=DialogNewSimple(140,50)))return;      DialogAddTitle(dialog,"Password",BT_OK,BT_CANCEL);     DialogAdd(dialog,0,0,0,XFLAGS,XF_NO_ALPHA_LOCK);      DialogAddRequest(dialog,4,24,"Request the password",0,5,5);      DialogAddText(dialog,4,15,text);      dialogkey=DialogDo(dialog,CENTER,CENTER,buffer,NULL);      HeapFree(dialog);      if(dialogkey!=13) DlgMessage("Password","You dream!!!",BT_OK,BT_NONE);;      if (!strcmp(a,buffer))        {        pass_ok = 1;         DlgMessage("Password","Access Granted",BT_OK,BT_NONE);       }      else DlgMessage("Password","Access Denied",BT_OK,BT_NONE);     }while(!pass_ok);      }

40

Une fois le handler off defini comment l'utiliser? Car on remplace pas le 6 alors lequelle remplacer par le handler off?

41

C'est dans la doc pour ExecuteHandler. Mais je n'arrive pas à l'utiliser je ne comprend pas!! roll

42

Mais de toute facon la chose que tu veut faire ne peut pas marche avec ton prog!! Pour faire que quand on eteigne la TI on que quand on l'allume ton prog de pass se mette au demarage il faut faire un TSR obligatoirement!!

43

Pep
: Oui c'est fait à l'arrache mais corriger quelque truc mais j'ai un probleme avec ST_flags je ne comprend le compilateur me dit "Invalide type of 'unary *'

Mauvais MIN_AMS. Il faut AMS 2.00 minimum.
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é

44

Oui mais comment on s'en sert apres du HANDLER dans le programme??

45

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é

46

Donc d'apres ce que j'ai compris des tutos...Je dois creer mon TSR pour que mon programme s'allume a chaque que j'allume ma caltos hum.

Mais je ne connais pas les adresses à utiliser pour le creer smile .

47

Il y a un tuto pas trop mal sur www.ti-fr.com (écrit par Flanker)
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. »

48

1. C'est pour l'assembleur, pas pour le C.
2. C'est pour les hooks d'évènement, lui, il veut intercepter le trap #4 (ou l'AI6, mais pas EV_hook en tout cas).
Bref, les tutos TICT que je lui ai indiqués correspondent beaucoup plus à ce qu'il veut 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é

49

J'ai lu les tutos.Mais je n'ai pas compris d'ou sort MAGIC_TSR.

50

Je voit pas sur les tuto de la tict pour intercepter quelque chose comme tarp #4 sad

51

dites , pk ca dans mon tsr ca fait line 111 emulator ?
if(ev->Type==CM_OFF)
{
ngetchx();
}
NTW !!!!!

52

cerede2000 :
Je voit pas sur les tuto de la tict pour intercepter quelque chose comme tarp #4 sad

Les traps fonctionnent comme les interruptions du point de vue des TSRs.
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é

53

matthieu :
dites , pk ca dans mon tsr ca fait line 111 emulator ?
if(ev->Type==CM_OFF)
{
ngetchx();
}

Quel AMS? Utilises-tu des ROM_CALLs F-Line? C'est un hook d'évènements ou un handler d'interruptions? ...
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é

54

J'ai un probleme avec les >> dans ma source et je ne trouve pas d'ou cela vient quelqu'un pourrait m'aider.
Voici ma source:
// C Source File // Created 31/08/2004; 22:44:45 #include <tigcclib.h> #define OPTIMIZE_ROM_CALLS  #define MIN_200                #undef XFLAGS  #define XFLAGS 15  #undef XF_NO_ALPHA_LOCK  #define XF_NO_ALPHA_LOCK 0x0004000000000000ULL  #define ST_flags #define SIZE_OF_PRG #define MAGIC_TSR #define sample_prg int InstallTSR(unsigned char* signature) {     unsigned char* mem = HeapAllocPtr(12);          if (!mem) return 0;          *mem++ = (MAGIC_TSR >> 24) & 0xff;     *mem++ = (MAGIC_TSR >> 16) & 0xff;     *mem++ = (MAGIC_TSR >>  8) & 0xff;     *mem++ = (MAGIC_TSR      ) & 0xff;     memcpy(mem,signature,8);     mem+=8;          memcpy(mem,sample_prg,SIZE_OF_PRG);          EX_patch(mem + 0x60001a, mem + SIZE_OF_PRG - 2 + 3 - 2);       enter_ghost_space();       ASM_call(mem + 0x60001a);     return 1; } DEFINE_INT_HANDLER(testoff)   {     if (peekIO_bit(0x60001a,2)) return;    if (!(ST_flags "&1" )) return;    ExecuteHandler(GetIntVec(TRAP_4));  }  void _main(void)  {  int dialogkey,pass_ok; const char *text;  char buffer[10];  const char *a="8908";  HANDLE dialog;    text="Welcome on my TI89"; pass_ok=0; do   {      *buffer=0;     if(!(dialog=DialogNewSimple(140,50)))return;      DialogAddTitle(dialog,"Password",BT_OK,BT_CANCEL);     DialogAdd(dialog,0,0,0,XFLAGS,XF_NO_ALPHA_LOCK);      DialogAddRequest(dialog,4,24,"Request the password",0,5,5);      DialogAddText(dialog,4,15,text);      dialogkey=DialogDo(dialog,CENTER,CENTER,buffer,NULL);      HeapFree(dialog);      if(dialogkey!=13) DlgMessage("Password","You dream!!!",BT_OK,BT_NONE);;      if (!strcmp(a,buffer))        {        pass_ok = 1;         DlgMessage("Password","Access Granted",BT_OK,BT_NONE);       }      else DlgMessage("Password","Access Denied",BT_OK,BT_NONE);     }while(!pass_ok);      }

J'ai utilisé l'adresse que l'on m'a donné dans le post 33 avec le TSR que je veux creer mais je ne sais pas si cela convient sad

55

et ben en fait juste if(ev->Type==CM_OFF) ; me fait un 111
inseré dans le sample tsr
NTW !!!!!

56

57

Pep
: J'ai un probleme avec les >> dans ma source et je ne trouve pas d'ou cela vient quelqu'un pourrait m'aider.

Tu n'as pas défini MAGIC_TSR correctement, il faut lui donner une valeur numérique.
matthieu :
et ben en fait juste if(ev->Type==CM_OFF) ; me fait un 111 inseré dans le sample tsr

La version d'origine du SampleTSR? Normal, elle ne marche pas avec TIGCC 0.95, j'ai posté les corrections à apporter plusieurs fois.
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é

58

Il y faut lui donner quoi comme valeur numérique on va pas lui mettre n'importe ?

59

Pourquoi ne pas le remplacer à la source alors ?
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.

60

ba oui, j'ai tout corrigé comme tu l'a indiqué
NTW !!!!!