1

Lut
(je crée un autre topic, car ça ne parle plus de WinCharXY... le titre de l'autre ne convient donc pas au contenu de celui-ci)

Bon, j'ai réussi à déterminer d'où venait le bug dont je parlais plus haut (à savoir, le plantage au moment de quitter KryptonII).
En fait, pour redessiner l'écran du TIOS au moment de quitter, j'envoyais un EVENT de type CM_ACTIVATE
Cela permettait de restaurer tout l'écran, sauf la ST, que je n'avais plus qu'à redessiner à la main avec un DrawLine

Pour cela, j'utilisais le code suivant :
EVENT ev;
ev.Type = CM_ACTIVATE;
EV_sendEvent(AP_CURRENT, &ev);
DrawLine(0, LCD_HEIGHT-7, 239, LCD_HEIGHT-7, A_NORMAL);

Et ça plante au moment du EV_sendEvent

Dans RomCalls.txt, le ROM_CALL EV_sendEvent est marqué comme implémenté (je suppose que c'est pour ça que je n'avais pas une erreur du style "Missing RC"), mais comme débuggué.
Ici encore, je ne sais pas si c'est du au fait que tu ignores qu'il y ait un bug, ou si c'est parce que tu n'as pas encore corrigé un bug connu, ce qui explique ce rapport smile

A part ça, une fois que j'utilise LCD_save/LCD_restore pour sauvegarder restaurer l'écran, plutôt que de le redessiner, ça marche nikel.
Le jeu se lance, on peut jouer, et on peut quitter
(il y a des fonctionnalités de KII que je n'ai pas essayé, mais, vu qu'elles marchent exactement de la même façon que le menu qui, lui, fonctionne, il n'y a pas de raisons qu'elles ne fonctionnent pas smile)


----------------------------------


Tiens, une suggestion qui devrait pas demander trop de boulot : pour le ROM_CALL HelpKeys, qui affiche les raccourcis claviers en 2nd+_quelque_chose_
(celui qui est appellé lorsque l'on fait <>+K sous la ligne de commande PedroM, de même que sous le TIOS)
ça serait pas mal que le raccourci clavier 2nd+SPACE pour $ soit marqué, je pense (même si ce raccourci clavier ne provient pas du TIOS, ça serait pas mal qu'on sache comment afficher un $ sans avoir à te demander smile)


-------------------------------


Un autre truc, mais c'est probablement parce que je fais quelque chose de pas bien grin
considérons le cas où je crée une variable a en lui affectant pour valeur 10, comme suis :
10->a[/cite]
(en remplaçant le "->" par un appui sur la touche Sto)
si je tapes
[pre]a

on m'affiche 10, ce qui est normal
mais si je tapes
cat a

j'ai quelques espaces d'affichés (5 pour être précis), suivis du prompt, sans retour à la ligne, ce qui ne correspond pas à ce que l'on pourrait souhaiter...

dans le même genre :
"salut"->b[/cite]
taper
[pre]b

provoque l'affichage de
"salut"
taper
cat b
provoque l'affichage de
lut:>
(sans guillemet ni rien)

Je suppose que c'est du au fait que cat ne fonctionne que pour les variables de type TEXT ?
Dans ce cas, serait-il possible que, pour les variables de type autre que TEXT, l'interpréteur de commande fasse comme s'il n'y avait pas le "cat" ?
ce que je veux dire, c'est que, si on tape
cat variable_de_type_entier
l'interpréteur comprenne
variable_de_type_entier
et donc, affiche le contenu de la variable...

Il me semble que le fait d'afficher le contenu d'une variable qui n'est pas de type texte n'est pas le job de cat, sous UNIX... mais, ma foi, ça serait bien pratique quand même... (et, puisque pedRom sait le faire sans le cat, ça ne doit pas être trop trop (enfin, j'espère) dur de le faire avec le cat ?)

Aussi (tant que j'y suis, après tout, autant que je dise ce qui me passe par la tête grin), quelque chose du type "hexcat" serait pas mal... afin d'afficher les variable en hexa...
Enfin, hexdump le fait déjà, mais ne dit pas où est la fin de la variable... et n'affiche pas nécessairement la variable en entier : parfois ça affiche plus (petite variable), parfois, moins (grande variable)...
(et une option permettant de préciser de quel ofset à quel ofset on veut dumper la var serait pas mal...)
(des fois, je me dis que je suis vraiment chiant grin)


------------------------------

Aussi (argh), y'a un truc qui me choque :
De toute évidence, tu as repris des notions des shells UNIX (ls, cat, ps, kill, ...)... Mais pourquoi utiliser "cls" et non pas "clear" ???
A chaque fois, je tape "clear", ça me dit commande incorrecte, et je dois retaper cls sad
(enfin, en même temps, ça viendra avec l'habitude, je suppose)


----------------------

Encore une suggestion (avec un peu de chance, la dernière pour aujourd'hui)
Il est possible de faire, par exemple :
"ls -l"->ll
cela dit, quand on tape
ll
ça affiche
"ls -l"
au lieu d'effectuer un ls -l, comme on pourrait le souhaiter...
Pour exécuter le ls -l, il faut taper
$ll
ce qui soule, de taper le $ (oué, je sais, je suis paresseux sad)

Est-ce qu'il n'y aurait pas moyen de définir des sortes d'alias ?
par exemple, faire un alias cls pour clear, un alias ll pour ls -l, un alias lh pour ls -h, enfin, dans le genre ?
(ok, on peut mettre des commandes en F1-F8... mais ce n'est pas pareil (il faut se souvenir de qu'elle Fn on a mis, et faire enter))

---------------------

Une petite question, encore...
(argh, #pastaper#)
quand on écrit un programme (par exemple) en C, que faut-il faire, ou ne pas faire, dans ce programme, pour que la commutation de tâche (enfin, passer à une autre tache, style <>+Fn) soit possible ?
Par exemple, faut-il que je fasse quelque chose de particulier dans KryptonII, pour qu'en fassant <>+F2 pendant le jeu, ça mette celui-ci en pause (enfin, que ça arréte de l'exécuter), que ça m'envoie sur la console 2, et qu'en faisant <>+F1, je revienne au jeu ?
Je suppose que change de tache n'est possible que lorsqu'on est en attente avec ngetchx, de toute façon ? Et encore, je viens de tester (j'ai, dans KII, un endroit où le programme attend un appui sur une touche avec ngetchx), et ça n'a pas marché sad tout en ayant pensé à activer une seconde console auparavant par 2nd+APPS... alors que, quand je suis sous la ligne de commande, ou dans SIDE, ça marche, pour aller vers une autre console (ou revenir vers la première/side)
(j'ai essayé sans activer les flags OffSwitch et GetKeySwitch, et en les activant ; ça n'a rien changé, à priori...)
(ou alors, je m'y prend mal, peut-être)
(en faisant 2nd+APPS sous ngetchx dans KII, j'ai les gris qui s'éteignent, se rallument, et je suis encore dans le jeu)
(je dois avoir les auto-int 1, 5, et 6 d'activés, selon les valeurs par défaut d'AMS (plus les grays qui sont sur le 1), il me semble)

Ou alors, est-ce possible d'envoyer à pedRom une sorte de signal lui disant de changer de console active ?
je m'explique :
je lance KryptonII (je continue avec KII, vu que c'est lui que j'ai sur pedRom actuellement, et que je connais suffisament bien ce prog pour savoir un peu comment il marche smile) dans la console 1
dans KII, l'utilisateur tape A (par exemple)
En tant que programmeur, je veux que A corresponde à la commutation de tache vers la console 2... Je veux donc pouvoir envoyer un signal à pedRom lui faisant savoir qu'il doit cesser d'exécuter KII qui correspond à la console 1, et me montrer la console 2...
Un truc dans ce genre serait-il possible ?
(tout en sachant que le gros problème est que, dans KII, j'ai les grays, j'ai pu détourner des interruptions et tout... mais, à la limite, avant d'envoyer le "signal" à pedRom, je peux désactiver les grays, remettre les interruptions par défaut, si c'est nécessaire)

Aussi, ça serait pas mal qu'un appui sur <>+Fx avec la console x qui ne soit pas encore existante crée la console x, je pense...
De la sorte, qu'on ne soit pas forcé de penser à créer la console avec 2nd+APPS avant de pouvoir l'utiliser... qu'elle soit automatiquement crée au besoin...
(et une commande pour refermer la console quand on n'en n'a plus besoin, c'est possible ? (genre "exit")... mais qui refuse de refermer la console 1, qu'on considére comme indispensable au système)
(argh, le gars à qui on donne la main, et qui demande le bras...)


-----------------------------------

Heu (argh, vais-je réussir à m'arréter un jour ?), encore une suggestion...
(arf grin)
pour l'instant, il y a un historique de commandes, qui est commun à toutes les différentes consoles ouvertes, à priori (quand je fais HAUT dans la console 2, j'ai la commande que je viens de taper dans la console 1, par exemple)...
Est-ce qu'il serait possible d'avoir un historique de commandes différent par console ? (quitte à désactiver cette possibilité par un flags ?)

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

2

squale92
: Mais pourquoi utiliser "cls" et non pas "clear" ???

Parce que c'est plus court? grin

Pour le task switcher, je suis toujours de l'avis que mon système de task switching est meilleur. smile
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é

3

Parce que c'est plus court

arf grin
Pour le task switcher, je suis toujours de l'avis que mon système de task switching est meilleur

heu, il fonctionne comment ?
(enfin, en résumé)
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

4

Bon je vais essayer de faire dans l'ordre et de ne rien oublier:

1. EV_sendEvent: Ok je vais essayer de voir ce qui pose probleme. Ca doit etre le systeme de default qui fait des siennes.
2. Ajouter [2nd]+ space, ok.
3. cat ne fonctionne qu'avec des variables textes comme sous unix. Ca fait un fopen(filename,"r"). A la rigueur je pourrais faire un convertisseur a la volee (variable ti -> Fichier texte). Mais bonjour le boulot sad Je ne pense pas le faire avant un moment.
4. hexcat: Tu peux pas te debrouiller tout seul: ecrit la commande toi meme comme un grand. (Cf Dir Program).
5. cls est plus court que clear. C'est tout. Ok, je vais faire un sondage.
6. J'avais demande pour les alias. Pas eu de reponses. Disons que c'est possible, mais ce n'est pas prioritaire (Surement modifie la commande replace var).
7. Nan, pour les Fn tu peux demander l'execution automatique: ajoute ';' a la fin de ta commande Fn smile
8. Normalement si tu fais GetKeySwitch=On, tu peux faire [2nd]+Switch dans ngetchx et ca doit marcher. Tu ferais mieux de me filer ton KII, que je le teste.
9. Normalement si tu fais OffSwitch=On, tu peux faire un appel a trap #4 et ca marche.
10. Faut que je modifie ngetchx pour supporter Diamond+F1.
11. Il existe une fonction: PID_Switch permettant de wither vers un process connu. Elle est meme exportee dans pedrom. Mais KII ne sera plus utilisable que sous PedroM (Ou sous Kernel avec la lib de compatibilite PedroM). Cependant il est possible que je change les specs. Mais oui c'est possible. Extrait de PedroM-internal.h:
int	PID_Switch(long flags asm("d0"), short pid asm("d1"), const char *str asm("a0"), void (*killfunc)() asm("a1"));
int	PID_CheckSwitch(short key asm("d0"), const char *str asm("a0"));

12. Les flags permettent de dire a PedroM de sauver les vecteurs, les ports IO, l'ecran. Mais il peut etre plus sage de desactiver a la main le plus de chose, pour demander de sauver un minimum. La fonction kill ne fonctionne pas.
13. Pour refermer la console courante, il y a la fonction go qui demande un num de Process. Le probleme est que exit. Ok, mais quel process apres ? Je peux faire un systeme choisissant un process aleatoire smile
14. Non, c'est soit l'un, soit l'autre. Je ferais pas de flags pour decider entre les 2. Sondage ?
15. Oue ca serait bien que Diamond+Fn cree automatiquement la console dediee.

5

KEvin: et moi je reste persuade qu'il n'est pas utilisable pour un OS, et qu'il reste un joli exploit technique tongue

6

16. Y'a un bug de fopen qui ouvre un fichier en mode texte meme s'il n'est pas en mode texte. Je me demande si tigcclib fait la meme erreur ?
Edit: Reponse, oui. En plus si on fait un tigcclib/fopen("machin","r") avec machin qui existe dans la VAT mais ne possede pas d'handle (En gros un SymAdd bateau) ca transforme le mode en ecriture. Je suis pas sur que ca soit interressant.
Edit2: Je prefere vraiment la routine que j'ai ecrite pour PedroM. Plus claire sick

7

C'est normal que fopen fasse n'importe quoi si on utilise le mode texte sur un fichier non-texte. Essaye de faire un fopen en mode texte sur un fichier binaire sous Win32, et il te fera aussi n'importe quoi (caractères 10 et 13, coupure abrupte après certains caractères (je n'ai pas cherché à savoir lesquels: 0? 26?)).
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é

8

3. cat ne fonctionne qu'avec des variables textes comme sous unix. Ca fait un fopen(filename,"r"). A la rigueur je pourrais faire un convertisseur a la volee (variable ti -> Fichier texte). Mais bonjour le boulot Je ne pense pas le faire avant un moment

ok;
4. hexcat: Tu peux pas te debrouiller tout seul: ecrit la commande toi meme comme un grand.

certes smile
7. Nan, pour les Fn tu peux demander l'execution automatique: ajoute ';' a la fin de ta commande Fn

ok.
cela dit, ça ne peut pas être utilisé dans des scripts... et il faut mémoriser les raccourcis (bon, ok, c pas si dur que ça grin)
8. Normalement si tu fais GetKeySwitch=On, tu peux faire [2nd]+Switch dans ngetchx et ca doit marcher. Tu ferais mieux de me filer ton KII, que je le teste. 9. Normalement si tu fais OffSwitch=On, tu peux faire un appel a trap #4 et ca marche

avec les deux swichs à 1, 2nd+APPS n'a pas marché... m'enfin, je fais pas mal de trucs bizarres...
Et il faut que je vérifie si la routine que j'utilise est bien celle qui utilise ngetchx (mais y'a pas de raison qu'il en aille autrement...) ; je te maillerai peut-être une portion du source, qui se rapporte à cette partie là...
(le code de cette partie là n'est pas dans le programme, mais dans un des fichiers externes, compressé)
Par contre, effectivement, un appel à off() (et donc, au trap 4) provoque la commutation de tâches, et on va dans une autre console
(le jeu est mis en veille, on peut bosser dans l'autre console, et quand on revient au jeu, on peut le reprendre, ça marche nikel smile)

Tiens, par contre, quand le flag OffSwitch est à ON, j'ai l'impression (sur VTI, du moins), que la machine ne s'éteint plus au bout de l'APD (alors qu'elle s'éteint en faisant 2nd+ON)
11. Il existe une fonction: PID_Switch permettant de wither vers un process connu. Elle est meme exportee dans pedrom. Mais KII ne sera plus utilisable que sous PedroM (Ou sous Kernel avec la lib de compatibilite PedroM). Cependant il est possible que je change les specs. Mais oui c'est possible. Extrait de PedroM-internal.h:

est-ce qu'il y a un moyen d'utiliser ça si le prog tourne sous pedrom, et de ne pas l'utiliser si ça tourne sous AMS ?
quelque chose du style
if(pedrom)
{
    PID_Switch...
}

(j'utilise déjà ce genre de chose pour effectuer des actions uniquement sur ROM2.0x et pas sur 1.0x)
12. Les flags permettent de dire a PedroM de sauver les vecteurs, les ports IO, l'ecran. Mais il peut etre plus sage de desactiver a la main le plus de chose, pour demander de sauver un minimum.

ok
15. Oue ca serait bien que Diamond+Fn cree automatiquement la console dediee

oui


Pour le reste, que je n'ai pas cité, ok smile


----------------------------------------------------------------------------------

Je viens de tester le TBO de FlashZ (sur VTI, sous pedROM 0.80)
au moment d'entrer un record, aucune saisie clavier n'est possible, on dirait.
Ce que je veux dire, c'est qu'on a l'écran de saisie de records, mais quoi qu'on fasse au clavier, rien n'apparait à l'écran...
(m^^eme pas les indicateurs de la ST)

d'ailleurs, je viens de tester sous AMS (92+, ROM2.05, preOS0.61, VTI), pour être sûr de la façon dont ça se passe sous AMS
(preOS 0.61, c une des versions que g en sauvegarde, et je voulais une version différente de celle inclue dans pedROM)
Sous cette ROM avec cette version de PreOS, la saisie marche nikel ; les indicateurs de la ST (shift et autres) apparaissent, pas de plantage ni de bug...

Et je viens de tester la m^me chose sous AMS (92+, ROM2.05, preOS0.67, VTI)... et là, au moment d'entrer les records, j'ai une "Protected Memory Violation"...
(le jeu affiche "game over", j'appuie sur [hand], et, au lieu de passer à l'écran de saisie de records, ça plante)

Je précise que, dans chacun des trois cas, j'ai effectivement atteint un score qui est un record smile

=> Sous PreOS 0.67 : Protected Memory Violation
=> Sous PredRom 0.80 : impossible de saisir quoi que ce soit au clavier

Dans Compat.txt de PedRom, il est mis que TBO marche "Perfect" ; c'était peut-être le cas avec une des anciennes versions, mais ce n'est plus vrai sad
Et d'après mes tests, j'en déduis que le problème ne vient pas de PedROM en elle-même, mais de PreOS (et de la version de PreOS inclue dans PedRom)
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

Un report de bug de plus smile
(enfin, je pense que c'est un bug... je vois pas ce que ça serait d'autre, et je ne pense pas que le problème vienne de moi)

Je viens de tester phoenix platinum
Version 1.1 - Released December 24, 2002

sous pedrom 0.80, VTI 92+

on lance le jeu, ça marche nikel, on peut jouer...
Enfin, tout est OK.

On quitte le jeu, que ce soit par ESC sans avoir été plus loin que le menu, par APPS en cours de partie, ou après avoir perdu.
=> Quand on essaye de le relancer, le shell affiche :
syntax error (memory)

j'essaye un clean, je suppose qu'il a marché
(pas d'echo à l'écran ni de plantage => à priori c ok)

j'essaye de relancer platinum,
syntax error (memory)
=> le clean n'a pas fait disparaitre le pb.

sachant que je dois avoir dans les
1239000 octets de RAM libre (commande mem)

(un coup, le clean m'a fait une adress error, mais je n'ai pas réussi à reproduire ce cas)


Sous AMS ROM2.05 PreOS 0.61 pas de problème
pas de problèem non plus avec PreOS 0.67
(mais je ne pense pas que le problème vienne de preOS, là, puisque platinum est nostub)


tiens, un truc marrant !
J'avais essayé avec la version non compressée de platinum...
je viens de tester avec la version compressée (en exécutant directement le PPG, puisque PedROM inclu le décompresseur par lui-même)...
Et bien, avec la version compressée, je n'ai pas le problème évoqué plus haut !



Donc, pour résumer :
PedROM0.80
phoenix platinum Version 1.1 - Released December 24, 2002
version compressée : pas de pb
version non compressée : impossibnle de lancer le programme une seconde fois (syntax error (memory))
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

16. Le fopen de PedroM n'ouvre que les fichiers textes en mode texte et renvoit NULL sinon.
9. Ok je verrai le porbleme de l'APD.
11. Recompile Krypton seulement dans une version PedroM et oui ca peut marcher. Sinon tu te demerdes pour identifier PedroM, et recuperer l'adresse (Kevin se ferra une joie de t'expliquer comment).
17. JE vais voir le [b de TBO. Quelle version ?
18. Ok je vais voir. Je suis deborde ces temps-ci sad

11

11. Recompile Krypton seulement dans une version PedroM et oui ca peut marcher. Sinon tu te demerdes pour identifier PedroM, et recuperer l'adresse (Kevin se ferra une joie de t'expliquer comment).

moué, ok.
bah, il doit y avoir un "PM" là où il y a PO pour preOS, DO pour Doors, UO pour universalOS (ou dans le genre), non ?
sinon, si Kevin peut m'expliquer, si tu passes par ici... smile
17. JE vais voir le [b de TBO. Quelle version ?

la version de ticalc.
(tous les jeux que j'ai testé, je les ai dl sur ticalc)
d'après le readme :
v2.10 Final


pr le reste, ok smile
Bon courage 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

12

11. $30.w = 'RO'
mais apres faut recuperer l'adresse de la fonction...
17. Il me semblait que c'etait une version _nostub...

13

11. $30.w = 'RO' mais apres faut recuperer l'adresse de la fonction...

uh, ok.
17. Il me semblait que c'etait une version _nostub

pour TBO ?
il ne me semble pas qu'une version nostub de TBO soit sortie...
vais vérifier dans le readme.
- Une TI-89 / TI-92+ avec : --> DoorsOS ou un kernel compatible installé

donc, pas nostub.


sinon, platinum est nostub, en effet
(je sais pas trop duquel des deux tu parlais)
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

14

Ok