Alvasoft.net : Quelques bugs des premières TI-92

Hardware

CPU, Mobo, Ram Boitiers, Alimentations Cartes graphiques Stockage

Modding

Overclocking Cooling Silence Electronique

Calculatrices TI

Ti 83 (+,SE) Ti 89, 92 & Voyage200 Accessoires, Connectique

Softs & Programmation

Benchmarks Tutoriels Projets

Partenaires

ordinateur portable Fournitures de bureau Ordinateur PC portable Base de registre yAronet Dew's blog

Recherche

Newsletter

Ces bugs figurent uniquement sur les premières versions des ROM's de la TI 92

Copyright

Si vous allez dans VAR-LINK depuis l'écran du "copyright" et que vous resortez ensuite (Esc par exemple), la barre de titre de la boîte de dialogue de VAR-LINK restera à l'écran. La barre de menu habituelle aurait dû être réaffichée à cet endroit, mais l'écran du "copyright" n'a pas de barre de menu.

bug

Vous pouvez taper [S] pour aller dans le self-test. (En fait, vous pouvez taper n'importe quelle touche contenant "S", comme [COS] ou [SIN]). Le contraste sera fixé à 13/31. Le TI92 affichera une liste de ce que vous pouvez faire. Si vous taper [Q], vous quitterez ce menu et le contraste sera fixé à 12/31. Simplement, le fait d'aller dans ce menu avec [S] fera des choses étranges dans la mémoire; 3786 octets seront ajoutés à la mémoire système, et évidemment 3786 seront enlevés de la mémoire libre. S'il n'y a pas beaucoup de mémoire libre, le menu ne sera pas effacé en pressant [Q] pour le quitter. De plus, quand vous quitter ce menu, la ligne séparant les commandes et les drapeaux systèmes ne sera, la plupart du temps, jamais réaffichée, jusqu'à ce que vous réinitialiserez le TI92 ou que vous restauriez un backup.

Depuis l'écran du "copyright", vous pouvez aussi taper [R]. Cela retournera à l'écran Home et le TI92 ne répondra à aucune pression de touche (excepté qu'il répondra aux touches de drapeaux : shift, diamond et 2nd). Ce qui se passe actuellement : le TI92 attend d'être contrôlé par une télécommande. Pour le contrôler, envoyez un word (entier de 2 octets) à travers le port de transfert. Le word doit être en format big-end (MSB avant LSB [Most (Less) Significative Byte]). Ce word sera interprété comme un code clavier (ceux-ci sont listés à partir dans l'annexe B : Tables de référence du manuel). Par exemple, 0x0041 est [a] et 0x0107 est [CLEAR]. Tout les données écran de Home seront envoyées à travers le port de transfert. Pour éteindre le TI92, vous pouvez envoyer 0x2108 (diamond-off), ou enlever une pile et la remettre, ou attendre 5,5 minutes pour que le "Auto Power Down" de la TI92 s'active. Quand il sera rallumé, il ne sera pas dans le mode de contrôle par télécommande. Mais il enverra toujours les données à travers le port de transfert. Pour sortir de ce mode de "transfert", retourner à l'écran du "copyright" et presser [R] de nouveau. Si vous restez dans ce mode de "transfert", le TI92 finira par planter, par manque de mémoire.

Plantages

La plupart des méthodes causant un manque de mémoire feront plutôt bien planter la machine. Voici deux examples :

1) Taper ceci : x|x=x

2) ou ceci :
"entry(1)"
expr(entry(1))
expr(entry(1))

Des variations sur le même thème génèreront différents plantages.

Bizarre !

Voici quelques commandes et leurs résultats correspondants :

2^(a+b)
     e^(ln(2)*(b+a))

2^(a+b+c)
     2^c*e^(ln(2)*(b+a))

2^(a+b+c+d)
     e^(ln(2)*(d+c))*e^(ln(2)*(b+a))

2^(ln(a)+ln(b)+ln(c))
     c^(ln(2))*b^(ln(2))*a^(ln(2))

2^("a"+"b"+"c")
     2^"a"*e^(ln(2)*("b"+"c"))

2^(ln("a")+ln("b")+ln("c"))
     "a"^(ln(2))*"b"^(ln(2))*"c"^(ln(2))

Si Pretty Print est off, toutes les occurences de "e^" seront effacées. Si le résultat est collé de l'écran dans la ligne de commande, ou convertis dans une chaîne avec la fonction "string()", la même chose arrivera. Malgré tout, si le résultat est utilisé dans un calcul, le "e^" sera retenu.

De ces résultats, nous pouvons en déduire que :

* Etant donné une expression qui, quand elle est simplifiée, contient "e^" avec plusieurs termes dans les parenthèses, si l'expression est convertit en une chaîne, soit avec le collé soit avec la fonction "string()", le "e^" sera supprimé.

* Si la base est une constante (ici 2),
a) les variables en exposant seront triés par ordre décroissant
b) les constantes en exposant seront triés par ordre croissant

* Si la base est une variable
a) les variables en exposants seront triés par ordre croissant
b) les constantes en exposant seront trés par ordre décroissant

* Les exposants seront répartis en groupes de deux et triés dans le même ordre qu'ils le sauraient autrement. Si il y a un nombre impair d'exposants, le premier sera placé seul, et les "e^(" et "ln(" s'annuleront l'un et l'autre.

* Vous ne devriez pas placer trop de confiance dans les manipulations symboliques du TI92. ;-)

Ce bug a été corrigé dans les ROM's 1.05.

Autre bizarrerie

A l'écran Home, taper 1|1=2 générera le message d'erreur "Constraint expression invalid".

Malgré cela vous pouvez taper 1|1=x and x=2. La réponse sera 2.

Blocages

Il y a un premier moyen pour bloquer l'édition de programmes. La structure Try...Else...EndTry a une syntaxe alternative.
La syntaxe normale est :
:Try
: [Bloc 1]
:Else
: [Bloc 2]
:EndTry

Si le bloc 1 provoque une erreur, le TI92 saute au bloc 2. Voici une version simplifiée mais équivalente de la même structure :
Try:[Bloc 1]:Else:[Bloc 2]:EndTry

La syntaxe alternative est la suivante :
Try [Bloc 1]:Else:[Bloc 2]:EndTry

Quand elle est "simplifiée" à la première éxecution, tout ce qui suit le "Try" disparaîtra.
Pour bloquer l'édition d'un programme, insérez la construction suivante au début du programme :
Try Else:EndTry

Il y a un autre moyen de bloquer l'édition d'un programme :
Taper 56789:Return 123
depuis l'écran Home, de préférence dans le mode Pretty Print. Vous verrez apparaître un étrange résultat. Vous pouvez remplacee les nombres par ceux que vous voulez. Le côté droit de la première expression sera coupé selon la longueur de la deuxième expression. Des choses étranges et diverses peuvent être faite avec ce résultat.

Pour bloquer l'édition d'un programme, taper d'abord
1:Return 1
depuis l'écran Home. Puis, créer un programme et mettez y ce que vous voulez. Assurez vous que la première ligne est
If false:ans()
Après que le programme a éxecuté une première fois, visualisez le depuis VAR-LINK. Tout ce qui est après "If false:" semblera être parti; mais le programme pourra toujours être éxecuté. Si vous éditez le programme, il s'autodétruira de façon permanente. Qui a besoin de TI-Graph Link pour bloquer l'édition d'un programme ?

Expressions non gérables

Il existe quelques expressions que le TI92 ne peut pasintégrer.Essayez integ(deriv(e^(x^2+x),x),x) en remplaçant "integ", "deriv" et "e^" avec leur symboles repectifs. L'intégrale devrait annuler la dérivation, et donner "e^(x^2+x)". Mais à la place, le TI92 renvoie un résultat contenant deux nouvelles intégrales insolubles. Voici, la forme plus générale de l'intégrale qui peut être résolue mais que le TI92 ne peut résoudre : integ(deriv(e^(f(x)+g(x)),x),x)

Mode Exact

Il existe des equations simples que la TI-92 ne peut résoudre en mode exact. Essayez
exact(solve(x^2/(x-2)^2=1,x))
Il ne peut le résoudre (la réponse est 1). Mais il peut résoudre
exact(solve(x^2=(x-2)^2,x))
Il peut aussi le résoudre correctement si vous remplacez "1" par une variable, comme cela:
exact(solve(x^2/(x-2)^2=a,x))

On/Off

Allez dans VAR-LINK et visualisez n'importe quelle variable ou répertoire avec [F6]. Eteignez le TI92 avec [Diamond] [ON].Rallumez-le. La fenêtre "contents" disparaîtra. Tapez [Diamond] [K] pour faire apparaître la fenêtre "keyboard". Eteignez le TI92 avec [Diamond] [On]. Rallumez le. La fenêtre "keyboard" disparaîtra, mais cette fois le TI92 s'éteindra de nouveau tout seul. Notez que les fenêtres "contents" et "keyboard" ont toutes les deux la même bordure.

Bug divers

Le bug suivant apparaît quand vous êtes très bas en mémoire. Tapez [2nd] [RCL], puis [DIAMOND] [K]. Taper quelquechose pour annuler la fenêtre "keyboard", comme [SPACE]. Le contenu de la fenêtre "Recall" sera effacé, et seulement les changements seront réaffichés. Cela marche aussi pour d'autres fenêtres qui vous demande d'entrer une chaîne, comme "Save Copy As"et "New".

Send

Il y a un bug dans la commande "Send". Cette commande est utilisée pour envoyer des données à l'unité CBL. Les données doivent être placées dans une liste numérique. En utilisation normale, une telle liste est très petite. Si vous essayez d'envoyer une liste avec plus de 128 éléments, la TI92 plantera.

Pic

1) stopic pict,0,1,0,1 [Enter]
2) rplcpic pict,1,1 [Enter]
  ou rclpic pict,1,1 [Enter]
Mais cela ne fonctionne pas à tous les coups ! Bug testé sur la version 1.12.