1

existe -til un moyen sur ti 89 de pouvoir connaître l'etat des status key(2nd,mode <> ) sans derouter l'auto int 1?

2

c simple,
avant les include tu mets
#define MIN_AMS 200

ensuite la ou t'en a besoin, tu met
if (ST_flags & ST_2ND) printf("2nd"),ST_modKey (ST_NONE); 
if (ST_flags & ST_DIAMOND ) printf("\x7F"),ST_modKey (ST_NONE); 
if (ST_flags & ST_SHIFT ) printf("\x1B"),ST_modKey (ST_NONE); 
if (ST_flags & ST_ALPHA) printf("alpha"),ST_modKey(ST_NONE);  



mais c'est pas une super methode, c'est assez lent et par exemple si t'appuie sur 2 touche de mode , ca ne voit pas la seconde
euh...

3

... pourquoi quand je fais cela ca fonctionne pas ?
while(ngetchx()!=264){if (ST_flags & ST_2ND) printf("2nd"),ngetchx(),ST_modKey (ST_NONE);  
if (ST_flags & ST_DIAMOND ) printf("\x7F"),ngetchx(),ST_modKey (ST_NONE);  
if (ST_flags & ST_SHIFT ) printf("\x1B"),ngetchx(),ST_modKey (ST_NONE);}  

4

ngetchx() impose une pause a ton prgm donc ca bloque avant les tests
fais plutot ca
void *kbq = kbd_queue ();
unsigned short key=0;
for(;; )
{
if (ST_flags & ST_2ND) printf("2nd"),ST_modKey (ST_NONE);  
if (ST_flags & ST_DIAMOND ) printf("\x7F"),ST_modKey (ST_NONE);  
if (ST_flags & ST_SHIFT ) printf("\x1B"),ST_modKey (ST_NONE);  
if (ST_flags & ST_ALPHA) printf("alpha"),ST_modKey(ST_NONE); 
if (!OSdequeue (&key, kbq))if(key==264)break; // dans key, tu a le meme code que si tu avais utilisé ngetchx()
}
euh...

5

merci bidoo !
mais j'ai encore une question, est ce que on peut desactiver les status key sans desactiver l'auto int 1 ?
parce que si j'ai bien compris , st_modkey ne modifie que ce qu'il y a dans la status line...

6

pour diamond, t'enleve 16384 au code de ta touche (sauf pour home=277 et pour la parenthese ouvrante(lettres grecques) y fo locker en off la aplha en continu)

pour le reste, perso, j'ai jamais reussi , le mieux c'est de faire un TSR, enfin ... encore faut-il savoir en faire un
la solution de facilité c'est de faire une table mais c long et chiant et ca prend de la place.
euh...

7

faut réécrire l'auto int je pense, un TSR en EV_Hook ne marchera pas (il n'est pas appelé pendant l'attente de la touche)
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

le réécrire ??? wahou, ca parait dur, je sais meme pas comment c'est construit un vecteur d'interruption ..
mais y'a pas un moyen de simuler l'appui d'1 touche??? comme ca, si on detecte l'appui d'1 touche status , on simule l'appuie d'1 touche quelconque ....

9

ca parait un peu dur...
le mieux serait de trouver où la ti stoke en memoire le fait que t'ai appuyé sur 2nd ou shift ou alpha et de modifier ce qu'il y a
mais bon ca parait quasiment impossible en C
tu devrais lire la doc de ti : la sdk (librement telechagable sur le site de ti), y'a plein de truc sur les fondements de ta calc,

ptet que ta reponse se trouve a l'interieur
euh...

10

Flanker
: faut réécrire l'auto int je pense, un TSR en EV_Hook ne marchera pas (il n'est pas appelé pendant l'attente de la touche)

regarde ds la doc de tigcc une eventstructure (=EVENT)
a quoi sert event->extra.Key.Mod? c'est pas ca qui gere justement les touches 2nd,alphe,shift et <> ?
ca fait quoi si on le met tous le temps a 0 ?
euh...

11

je connais déjà la structure EVENT

seulement, si tu fais un ngetchx, je peux t'assurer que les EVENT ne sont pas concernés du tout par ç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

12

ah bon?? bon dsl
euh...

13

En revanche, il y a des fonctions d'attente de touche qui gèrent les événements standard. Regarde GKeyIn (enfin pas sûr que ce soit ça).
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

14

il ne me semble pas que ce soit celle-là
il y a bien une fonction qui remplit un event avec le code de la touche, ou avec EV_BLINK au bout de 0.5s, mais je me souviens plus de son nom
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

Tu penses à EV_getc, mais ce n'est pas du tout la même chose. EV_getc crée une structure EVENT, mais EV_getc ne reçoit aucun évènement! GKeyIn gère le blink et l'APD, mais ne passe pas non plus par les évènements. Pour avoir une lecture de touches évènementielle, c'est du côté de EV_eventLoop qu'il faut aller voir.
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é