1

Serait-il possible de désactiver l'affichage de la StatusLine pendant l'execution d'un programme sans détourner l'AUTO_INT_1 et ainsi garder l'utilisation des fonctions en dépendant comme kbd_queue, OSdequeue... et l'apd timer en état marche.

Ce qui me gène le plus est l'affichage des indicateurs 2ND, ♦, et shift.
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

2

sous les ROM 2.0x, il est possible de désactiver l'affichage des modificateurs, oui, sans désactiver l'auto_int_1
(cela dit, ça ne fonctionnera pas sous AMS 1.0x)

cherches à St_flags, ou ST_Flags, je sais plus
arf, il apparait comme non documenté dans la doc de tigcc... erf
bon, vais voir si je retrouve la façon dont je l'utilisais

Bon, j'ai retrouvé.
NOTE: c'est du code qui date, qui n'a pas été testé depuis pas mal de temps, et il se peut qu'il y ait une autre méthode plus simple, maintenant (avec tigcclib qui évolue, et tout)

voila, avant de faire ton ngetchx (ou équivalent) :
if(/* AMS 2 */)
    *ST_Flags&=~(0x100000);   // On cache les indicateurs
         //(2nd, Hand, <>, Shift, Alpha) de la barre de statut...


et après :
if(/* AMS 2 */)
    *ST_Flags|=0x100000;   // On ré-active les indicateurs
      //de la Status Line


le test d'AMS 2 est nécessaire si tu veux que ton programme tourne sur ROM 1.0x, mais ne plante pas (les indicateurs dans la ST apparaitront, par contre;.. mais bon, on peut pas les masquer, à priori)

et quelque part avant, il faut que tu ais définir ST_Flags :
// Utilisé pour désactiver et ré-activer les indicateurs de la Status line, lorsqu'on utilise
// des fonctions de lecture du clavier à haut niveau (ngetchx, par exemple)
// NOTE : ceci ne fonctionnera que sur ROM2.0x, PAS SUR ROM1.0x !!!
// Remerciements à ExtendeD qui m'a donné ceci.
#define ST_Flags ((unsigned long*)(_rom_call_addr(443)))


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

3

4

Merci à vous deux vos deux solutions sont ok. top



note: (au cas ou ST_flags sortait de unknown.h dans une version suivante de TIGCC)
dans la version de TIGCC que j'ai (0.96 Beta 4), ST_flags est défini dans unknown.h comme ca : (le pointeur est déjà déférencé)
#define ST_flags (*((unsigned long*)(_rom_call_addr(443))))
donc le code de squale92 devient:
ST_flags&=~(0x100000); //cacher
ST_flags|=0x100000;    //restaurer
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

5

merci pour le complément d'informations, ça peut servir le jour où d'autres se poseront la question smile
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

7

Une solution moins performante qui fonctionne sous tous AMS est HideStatKeys. Elle est utilisée dans l'ebook de TICT (nécessité de doublebuffering de la status line).


> quand à la compatibilité PedroM on ne parle même pas...
Justement, je ne suis pas sûr que ça ne fasse pas partie des rares features d'AMS 2.xx plus ou moins réimplémentées par PedroM (et qui nécessitent de tester si un ROM_CALL est disponible avant de l'utiliser - super pour l'efficacité !).
Mais PedroM ne réimplémente pas de nombreuses choses du tout (pas besoin de faire la liste) ou d'une façon approchante de l'original (la VAT surtout, pSymPG en particulier).
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

8

9

Je ne suis pas sûr du tout de ce que je dis à propos de ST_flags sur PedroM. Je crois que c'est ce que Patrick appelle parfois "ST_statut".
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

10

Chouette, on va pouvoir en profiter pour installer un truc de localisation pour pouvoir écrire car *pointeur = allouem(chnlong(chaine)+1); chncpie(pointeur,chaine); libere(chaine); cheeky

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

11

Je ne crois pas que ST_flags marche sous PedroM.

12

> [Sous AMS 1.xx] les indicateurs dans la ST apparaitront, par contre;.. mais bon, on peut pas les masquer, à priori
En effet. Je viens de vérifier (puisque j'aurais aussi besoin de désactiver les flags) que ST_flags n'existe manifestement pas du tout sous AMS 1.xx (comparer ST_modKey sur AMS 1.xx et AMS 2.xx).
Qu'une variable ne soit pas dans la jump table n'est pas toujours un problème, puisqu'il n'est pas rare qu'il y ait un hack (qui est sûr, vu que tous les AMS 1.xx existants sont connus et qu'AMS 1.xx n'évolue plus depuis environ 6 ans). Ce n'est malheureusement pas le cas ici...
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.