1

J'ai quelques questions, surement un peu connes mais vitales pour des newbies comme
moi!! oui

1 Comment fait-on pour mémoriser l'état d'une variable temporaire afin de la réutiliser ultérieurement dans le même programme?

je donne un exemple : dans un prgm nommé "curseur", on définit la vitesse de celui-ci. Comment peut-on faire pour sauvegarder la variable dans laquelle le critère de vitesse est défini pour avoir la même vitesse de curseur à chaque démarrage du prgm?

2 Comment faire pour lancer un prgm du menu VAR-LINK?
En TI Basic :
programme_a_lancer()

3 J'ai un prgm qui fonctionne bien sauf pour un truc: de temps en temps, en quittant, le prgm affiche l'écran Home avec le nom du prgm surligné normalement mais la calto peut rester bloquée... J'utilise _rowread en désactivant AUTO_INT_1, le remplaçant par DUMMY_HANDLER, et le réactivant à la fin.
Le problème serait-il que je n'utilise pas de niveaux de gris, vu qu'il n'y en a pas encore??

4 comment on fait pour ouvrir un fichier .89z ou.9xz avec TIGCC??

Merci d'avance et bon courrage!! rotfloui
François BALLAND

Site Ti : http://www.balland.org

2

1) je pensais à static, mais c'est pas à l'exécution du prog... donc à par en ASM, il te faut sauvegarder la valeur dans une variable externe au programme

2) attend KK, la solution est assez bizarre

3) non.

4) Tu ne peux pas, il faut le désassembler et c'est pas la joie
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

3

1) si ton fichier n'est pas archivé tu peux toujours déclarer ta variable en dehors de main
Sinon utilise un fichier externe


2) HANDLE handle;
push_parse_text ("monprog()")
handle = HS_popEStack ();
NG_execute (handle, 0);
HeapFree (handle);

3) ben euh jsais pas montre ton code

4) smile un fichier .89z est compilé ca s'ouvre pas (enfin tu peux tjs l'ouvrir avec un editeur mais tu comprendras pas grand-chose)
Fiou.

4

1. Tu crees une autre variable qui va memoriser temporairement cette valeur.
2. userlib_runprog("machin")
Ou tu recerches dans la faq de tigcc la reponse a ta question.
3. Remplaces DUMMY_HANDLER par OSSetSR(0x100); pour desactiver, et OSSetSR(0x0000); pour reactiver.
4. Tu peux toujours l'ouvrir en mode hexadecimal, mais il faut savoir que dans le fichier 89z, il n'y a pas les sources : cela prendrait trop de place.

5

1: si ton programme n'est ni archivé, ni compressé, tu peux le faire dans une variable globale...
tu déclare ta variable en dehors de toute fonction, et elle sera commune à toutes les fonctions...
Par contre, si le prog est archivé, ou si il est compressé, cette technique ne fonctionnera pas sad il te faut alors utiliser une variable externe.
Regarde les fonctions de stdio.h et de vat.h
(celles de stdio.h sont pratiques, mais grosses en taille mémoire. celles de vat.h sont plus complexes à utilser, mais moins gourmandes (et plus rapide, certainement)

2: La solution proposée par Tachman est, je crois, celle de la FAQ de TIGCC... mais il me semble que cela ne fonctionnera bien que sur HW1 (et PEUT-ETRE sur HW2 avec Hw2Patch, mais pas sûr)
SInon, il te faut utiliser EX_patch de façon à modifier des trucs... regarde dans les sources de TICTexplorer (http://tict.ticalc.org, mais elles sont assez complexes, surtout pour quelqu'un qu'i n'a pâs bcp d'expérience en programmation axé VAT)

3: Si tu veux que les niveaux de gris soient utilisables, je crois que la technique proposée par PpHd ne fonctionne pas...
mais si tu ne veux coder qu'en noir et blanc, ça doit marcher.
Fais voir ton code, par curiosité (on sait jamais)
sinon, as-tu essayé de désactiver aussi l'AUTO_INT_5 ? (pour _rowread, il est des cas où il faut aussi le désactiver)

4: arf... au pire, avec le fichier .9xz, tu peux avoir le code ASM correspondant à ton programme. Pour cela, il faut utiliser un débugguer.
DB92 était disponible en version Alpha il y a déjà pas mal de temps sur ce site :
http://members.chello.at/gerhard.kofler/kevin/ti89prog/db92-nostub-alpha.zip
je ne sais pas s'il y est encore.
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

6

>flow:
>1 Comment fait-on pour mémoriser l'état d'une variable temporaire afin de la réutiliser ultérieurement dans le même programme?

On l'enregistre dans un fichier externe.

>2 Comment faire pour lancer un prgm du menu VAR-LINK?

1. On compresse son programme (le programme principal, pas nécessairement le programme lancé) avec ExePack pour qu'il s'exécute en l'espace fantôme. ET
2.
  char *fptr, *cptr;
  unsigned short plen;
  SYM_ENTRY *SymPtr = DerefSym (SymFind ($(example)));
  HANDLE h;
  if (!SymPtr) fatal ("Program not found")
  h = SymPtr->handle;
  if (HeapGetLock (h))
    {
      cptr = fptr = HeapDeref (h);
      h = 0;
    }
  else
    {
      cptr = fptr = HLock (h);
    }
  plen = *(short*)(cptr) + 3;
  if (SymPtr->flags.bits.archived)
    {
      if (!(cptr = malloc (plen)))
        {
          if (h) HeapUnlock (h);
          fatal ("Out of memory")
        }
      memcpy (cptr, fptr, plen);
    }
  EX_patch (cptr + 0x40002, cptr + plen +0x3FFFE);
  ASM_call (cptr + 0x40002);
  if (h) HeapUnlock (h);
  if (cptr != fptr) free (cptr);

>3 J'ai un prgm qui fonctionne bien sauf pour un truc: de temps en temps, en quittant, le prgm affiche l'écran Home avec le nom du prgm surligné normalement mais la calto peut rester bloquée... J'utilise _rowread en désactivant AUTO_INT_1, le remplaçant par DUMMY_HANDLER, et le réactivant à la fin.

Bizarre. Je ne peux pas voir ce qui est le problème sans voir ton code ici. Et en effet, il faudrait aussi désactiver l'AUTO_INT_5 pour utiliser _rowread.

>4 comment on fait pour ouvrir un fichier .89z ou.9xz avec TIGCC??

Comment ça "ouvrir avec TIGCC"? Tu veux relever son contenu directement? Alors regarde la documentation de vat.h (et de stdio.h si tu veux).

>squale92:
>DB92 était disponible en version Alpha il y a déjà pas mal de temps sur ce site :
>http://members.chello.at/gerhard.kofler/kevin/ti89prog/db92-nostub-alpha.zip
>je ne sais pas s'il y est encore.

Oui, il y est encore, même si je ne l'ai plus mis à jour depuis des lustres. (J'avais trop de choses à faire pour TIGCC.)
[edit]Edité par Kevin Kofler le 26-02-2002 à 18:56:59[/edit]
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

Kevin> OK.
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

8

Ca ne permet que d'executer des programmes asm.

9

ça marche pas pour les progs en BASIC ?
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

10

Non.

Les programmes BASIC doivent être exécutés avec NG_execute. Mais je déconseille fortement de lancer un programme BASIC sauf si on est certains qu'il ne contient pas d'appels à un programme en assembleur ou C ou de chaînes Exec. Parce que si c'est le cas, ça plante sur HW2 AMS 2 sans HW2Patch ni h220xTSR.
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é

11

d'accord.
Merci
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

12

OK ben j'vais essayer tout ca... eekeekeekeekeek
François BALLAND

Site Ti : http://www.balland.org