1

Je sais que cette question à déjà été posée mais je ne retrouve aucun topic la dessus. J'aimerais savoir comment, en C, on enlèvre le 2nd, le alpha et le diamond qui s'affichent en bas de l'écran quand on utilise ces touches avec la fonction _keytest ?

Désolé si ça fait ch*** certains de revoir un topic la dessus mais je galère à trouver ça.

Si vous pouvez sinon me donner un lien qui mène vers des choses là dessous ce serait sympa.

2

Bah, il faut rediriger les interruptions. Comment on redirige les interruptions ? Çay faciiiiiiile !
Il faut rediriger deux interruptions numérotées 1 et 5. Le seul problème c'est que ça sera affecté même après avoir quitté ton jeu. C'est pour ça qu'il faut sauvegarder les anciennes directions d'interruption :

oldint1 = GetIntVec(AUTO_INT_1);
oldint5 = GetIntVec(AUTO_INT_5); //pour sauver les interruptions

SetIntVec(AUTO_INT_1,DUMMY_HANDLER);
SetIntVec(AUTO_INT_5,DUMMY_HANDLER); //pour rediriger les interruptions vers du rien

//programme

SetIntVec(AUTO_INT_1,oldint1);
SetIntVec(AUTO_INT_5,oldint5); //pour les restaurer.


Voilou. smile (c'est au moins ce qu'il faut faire pour un jeu en gris qui utilise la touche 2ND)

3

Ok merci et pour les touches diamond, shift et alpha c'est quelq interuptions ?

4

Je suppose que c'est pareil.

5

OK merci beaucoup !!!

6

Euh... en fait il y a un problème : sur les 2 première lignes j'ai 2 erreurs "initializer element is not constant"
et sur la 3ème ligne j'ai "Parse error before '{' token"

J'ai mis les 4 premières lignes que tu m'as donné juste après le #include <tigcclib.h>

Je ne trouve pas le problème.

7

Je te donne la moitié de la solution, l'autre moitié tu la trouveras tout seul, tellement c'est idiot.

Il faut que tu définisses le type de oldint1 et de oldint5 (qui doivent être des INT_HANDLER, cf. doc de TIGCC)...

8

ce sont des instructions
=> il faut les mettre dans une fonction
(au début de la fonction _main, et à la fin, par exemple)

pour un exemple, cf http://tigcc.ticalc.org/doc/intr.html#DUMMY_HANDLER

INT_HANDLER save_int_1;
...
save_int_1 = GetIntVec (AUTO_INT_1);
SetIntVec (AUTO_INT_1, DUMMY_HANDLER);   // redirect auto-int 1 to "nothing"

avant tes instructions de lecture clavier bas niveau

et
SetIntVec (AUTO_INT_1, save_int_1);
après, pour restaurer

et pareil pour l'AUTO_INT_5
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

9

Oui je viens de trouver seul désolé de t'avoir fais perdre du temps (en plus j'ai pas finit de lire ton tuto lol).

merci quand même

10

de rien smile

(cela dit, pour le tuto, je n'ai pas encore traité ça dans la nouvelle version, il me semble - et c'était pas très clair dans l'ancienne, il parait)
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

11

ok ! Tant que j'y suis plutot que d'ouvrir un nouveau topic : une petite question :
C'est quoi la taille max que peut avoir un programme .89z sur unt TI68k ?

12

65535 octets. Après ça coince. D'où l'intérêt de gagner un peu en compactant en ppg (dans les menus en haut, c'est un bordel, faut juste avoir l'idée d'y aller). Mais dans ce cas-là, même compressé, le fichier .89y généré ne doit pas dépasser 64ko sur ta TI grin

13

et on fais comment pour compresser en ppg?

14

naPO :
(dans les menus du projet en haut, c'est un bordel, faut juste avoir l'idée d'y aller).

15

AH ok tu parlais de ça mdr j'avais pas très bien compris cette phrase...

16

35000bytes compressés en 14000 !!! ah oui c'est pratique !

17

Encore une question (et oui je suis chiant !) :
Quand j'execute mon programme je perd à chaque fois de la RAM. Je sais que c'est normal vu mon code mais je voulais savoir si ce problème était expliqué dans le tuto de squale92 ? si non : comment se fais-ce ?

18

gni ?

Y'aurait-il du malloc, du heapalloc dans ton code ? trifus
Et en mettant un HS_freeAll() (qui vide l'écran HOME) au début du programme, c'est pas mieux ?

19

pour chaque malloc tu dois avoir impérativement un free
et ce que veut dire napo c'est que tu peux aussi avoir l'impression que ton programme ne libère pas toute la mémoire alors qu'en fait c'est simplement dû au fait qu'à chaque fois que tu le lance tu as une ligne de plus dans l'écran home et que c'est cette ligne qui prend un peu de mémoire
(efface donc l'écran home avant et apres avori lancé ton programme avant de comparer la mémoire restante)
avatar

20

naPO :
65535 octets. Après ça coince. D'où l'intérêt de gagner un peu en compactant en ppg (dans les menus en haut, c'est un bordel, faut juste avoir l'idée d'y aller). Mais dans ce cas-là, même compressé, le fichier .89y généré ne doit pas dépasser 64ko sur ta TI

heu... non
tu restes limité à un exécutable (non compressé, donc), de 64Ko (moins de smiettes)
le fait qu'il soit compressé donne un fichier plus petit, certes... mais il faut qu'il soit décompressé pour être exécuté... et vu qu'un bloc mémoire fait au maximum 64Ko (moins des miettes), la version non compressée ne doit pas faire plus de ces mêmes 64 Ko (idem)
Risike :
Quand j'execute mon programme je perd à chaque fois de la RAM.

Quand tu alloue de la mémoire, tu dois la libérer
(et pense au fait que l'historique de calcul prend un peu de mémoire aussi ^^ donc, une "fuite" de quelques octets, c'est normal^^ => pour être sûr, efface l'historique de calcul, avant de regarder combien de RAM il reste)
(edit: cross)
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

21

Je n'ai pas utilisé de malloc car je viens de voir ça en cours de C cette semaine et j'ai pas encore tout pigé mais je vais voir si c'est ls lignes dans l'écran home et je vous tiens au courrant.

22

Bon ben c'était bien le problème de l'écran Home ! ben dis donc ça en prend de la place de laisser des lignes dans cet écran.

ET pour les fonction malloc et free en fait je n'ai pas encore compris l'utilité d'allouer de la mémoire j'espère que mon prof de C va expliquer ça plus clairement !

23

edit : squale a déjà répondu, ah, la flemme de lire un topic jusqu'au bout...