Nous t'avions déjà présenté et testé différents prototypes de calculatrices Texas Instruments. Mais jusqu'à cette année nous n'avions jamais eu ni même vu passer le moindre prototype de TI-92, la calculatrice haut de gamme innovante sortie par Texas Instruments pour la rentrée 1995.
Grâce à Frédéric Desautels pour qui nous l'avons acheté, dans une actualité précédente nous te présentions une formidable découverte, tout premier prototype connu au monde des TI-92 sorties pour la rentrée 1995 !
Sur la seule photo de face alors présentée par l'annonce, Frédéric - œil de lynx l'a reconnu grâce à la touche de verrouillage avec la main présentant un visuel différent de celui des modèles de production, sans manche ni poignet, comme on pouvait déjà remarquer sur les premiers visuels de la communication de l'époque :
Au moins 3 visuels différents avaient été envisagés par TI pour cette touche selon les illustrations qui ont varié dans les communications promotionnelles de l'époque :
Le prototype présente un module ROM amovible muni de la version finale 1.12 du 8 Mai 1996, et utilisant des connecteurs Zebra, physiquement incompatibles avec les modèles de production.
Mais contrairement aux premiers modèles de production, ce prototype présentait également une ROM interne, pour sa part munie d'une version 0.5d23 jamais vue compilée le 16 Janvier 1995 !
L'urgence pour nous était donc de dumper cette version historique pendant que le prototype fonctionnait encore, un véritable trésor pour en apprendre davantage sur l'histoire du développement de la TI-92.
Grâce à Frédéric Desautels pour qui nous l'avons acheté, dans une actualité précédente nous te présentions une formidable découverte, tout premier prototype connu au monde des TI-92 sorties pour la rentrée 1995 !
Sur la seule photo de face alors présentée par l'annonce, Frédéric - œil de lynx l'a reconnu grâce à la touche de verrouillage avec la main présentant un visuel différent de celui des modèles de production, sans manche ni poignet, comme on pouvait déjà remarquer sur les premiers visuels de la communication de l'époque :
Au moins 3 visuels différents avaient été envisagés par TI pour cette touche selon les illustrations qui ont varié dans les communications promotionnelles de l'époque :
Le prototype présente un module ROM amovible muni de la version finale 1.12 du 8 Mai 1996, et utilisant des connecteurs Zebra, physiquement incompatibles avec les modèles de production.
Mais contrairement aux premiers modèles de production, ce prototype présentait également une ROM interne, pour sa part munie d'une version 0.5d23 jamais vue compilée le 16 Janvier 1995 !
L'urgence pour nous était donc de dumper cette version historique pendant que le prototype fonctionnait encore, un véritable trésor pour en apprendre davantage sur l'histoire du développement de la TI-92.
Problème, contrairement aux TI-92 Plus, les TI-92 n'ont pas la fonction Asm() pour exécuter du code en langage machine.
Il est certes possible de la rajouter avec le shell Mallard, mais ce dernier utilise des fichiers d'installation spécifiques pour chaque version TI-92 connue, et n'a donc aucune chance de fonctionner sur la version 0.5d23 ici inconnue jusqu'à cette semaine.
Il est certes possible de la rajouter avec le shell Mallard, mais ce dernier utilise des fichiers d'installation spécifiques pour chaque version TI-92 connue, et n'a donc aucune chance de fonctionner sur la version 0.5d23 ici inconnue jusqu'à cette semaine.
Lorsqu'une TI-92 présente à la fois une ROM interne et le module ROM externe amovible, c'est le module externe qui est prioritaire pour l'amorçage.
Et dans cette configuration, le prototype TI-92 démarre donc sur la version 1.12 sur laquelle on peut installer Mallard.
Selon la documentation communautaire, la ROM utilisée est mappée en mémoire à la fois aux adresses 0x200000 et 0x400000.
Mais bizarrement ici, l'option PEEK de l'écran de diagnostics en version 0.5d23 présentait des valeurs différentes aux adresses 0x200000 et 0x400000.
Peut-être que la documentation est fausse, peut-être n'a-t-elle vérifié ce qui se passait dans le cas d'une ROM interne, configuration qui n'a concerné que les toutes dernières TI-92 à partir de la version 1.11, ou peut-être tout simplement que ce prototype se comporte différemment.
Bref, et si on en tentait alors d'amorcer notre prototype sur la ROM externe 1.12, d'y installer Mallard puis de dumper non pas à l'adresse 0x400000 les 1 Mio de la version 1.12 dont nous disposons déjà, mais un éventail bien plus large de 4 Mio à partir de l'adresse 0x200000 ?
Et dans cette configuration, le prototype TI-92 démarre donc sur la version 1.12 sur laquelle on peut installer Mallard.
Selon la documentation communautaire, la ROM utilisée est mappée en mémoire à la fois aux adresses 0x200000 et 0x400000.
Mais bizarrement ici, l'option PEEK de l'écran de diagnostics en version 0.5d23 présentait des valeurs différentes aux adresses 0x200000 et 0x400000.
Peut-être que la documentation est fausse, peut-être n'a-t-elle vérifié ce qui se passait dans le cas d'une ROM interne, configuration qui n'a concerné que les toutes dernières TI-92 à partir de la version 1.11, ou peut-être tout simplement que ce prototype se comporte différemment.
Bref, et si on en tentait alors d'amorcer notre prototype sur la ROM externe 1.12, d'y installer Mallard puis de dumper non pas à l'adresse 0x400000 les 1 Mio de la version 1.12 dont nous disposons déjà, mais un éventail bien plus large de 4 Mio à partir de l'adresse 0x200000 ?
C'est maintenant fait avec un TiLP modifié grâce à l'aide exhaustive de Lionel Debroux, et bingo, même quand on amorce sur le module ROM externe, la ROM interne semble quand même mappée en mémoire, plutôt deux fois qu'une d'ailleurs :
La version 0.5d23 s'amorce alors sans problème sur un émulateur TI-92 compatible comme TiEmu !
(pas trop de choix en fait, on trouve beaucoup d'émulateurs de TI-92 Plus mais très peu d'émulateurs de TI-92, pour la plupart en version bêta ou même alpha très inachevée, pour des systèmes d'exploitation désuets comme Windows 95 ou même MS-DOS, ou encore ne fonctionnant pas correctement avec cette version).
- 0x200000 : ROM interne (1 Mio)
- 0x300000 : ROM interne (1 Mio)
- 0x400000 : ROM externe (1 Mio)
La version 0.5d23 s'amorce alors sans problème sur un émulateur TI-92 compatible comme TiEmu !
(pas trop de choix en fait, on trouve beaucoup d'émulateurs de TI-92 Plus mais très peu d'émulateurs de TI-92, pour la plupart en version bêta ou même alpha très inachevée, pour des systèmes d'exploitation désuets comme Windows 95 ou même MS-DOS, ou encore ne fonctionnant pas correctement avec cette version).
Avec cette version 0.5d23 du 16 Janvier 1995 nous sommes donc en gros 6 mois avant le lancement de la TI-92. Pour d'autres modèles, il nous est déjà arrivé de trouver des traces de développement logiciel ou matériel allant jusqu'à 1 an avant la sortie.
Comparons avec la version supérieure la plus proche dont nous disposons, la 1.3 du 20 octobre 1995, soit 9 mois plus tard.
En cherchant bien on arrive à trouver quelques différences dans l'organisation des éléments de l'interface utilisateur, mais en gros l'interface semblait déjà finalisée, quasiment identique à ce que nous avons eu. Depuis combien demois années Texas Instruments développait-il la TI-92 ?
On peut également trouver quelques renommages, plusieurs des fonctions de zoom adoptant pour préfixe Z et pas encore Zoom.
Quelque chose qui semble bien plus pratique sur la version 0.5d23, c'est la gestion des erreurs de saisie. Sur les versions de production, tout ce que tu obtiens en cas de saisie incorrecte, c'est une popup d'erreur bloquante indiquant la plupart du temps un bête "Syntax" et à fermer avec la touche
Ici tu obtiens un avertissement non bloquant en bas d'écran t'indiquant exactement ce que le vérificateur syntaxique attendait à la position du curseur, et peux immédiatement corriger !
Pourquoi avoir abandonné ça ?
Comportement similaire si l'on saisit par exemple un nom de variable de plus de 8 caractères.
Comparons avec la version supérieure la plus proche dont nous disposons, la 1.3 du 20 octobre 1995, soit 9 mois plus tard.
En cherchant bien on arrive à trouver quelques différences dans l'organisation des éléments de l'interface utilisateur, mais en gros l'interface semblait déjà finalisée, quasiment identique à ce que nous avons eu. Depuis combien de
On peut également trouver quelques renommages, plusieurs des fonctions de zoom adoptant pour préfixe Z et pas encore Zoom.
Quelque chose qui semble bien plus pratique sur la version 0.5d23, c'est la gestion des erreurs de saisie. Sur les versions de production, tout ce que tu obtiens en cas de saisie incorrecte, c'est une popup d'erreur bloquante indiquant la plupart du temps un bête "Syntax" et à fermer avec la touche
Esc.
Ici tu obtiens un avertissement non bloquant en bas d'écran t'indiquant exactement ce que le vérificateur syntaxique attendait à la position du curseur, et peux immédiatement corriger !
Pourquoi avoir abandonné ça ?
Comportement similaire si l'on saisit par exemple un nom de variable de plus de 8 caractères.
Jetons un coup d'œil à la boîte à caractères accessible via
Des différences également dans les autres sous-menu. Dans Greek par exemple, manquent les 2 caractères grecs θ et π car pouvant être saisis au clavier.
Pour le reste, il s'agit de déplacements :
2nd
+. On y trouve déjà de façon évidente un sous-menu Contrôle supplémentaire avec plein de caractères ne pouvant être saisis sur les versions de production !
Des différences également dans les autres sous-menu. Dans Greek par exemple, manquent les 2 caractères grecs θ et π car pouvant être saisis au clavier.
Pour le reste, il s'agit de déplacements :
- les caractères « et » étaient bizarrement dans Math et pas encore dans Punctuation
- les caractères a et o n'étaient pas encore dans les déclinaisons internationales du a et du o, mais dans Punctuation
Tentons maintenant de comparer les versions en terme de fonctionnalités. On peut par exemple accéder à l'éditeur de programme et vérifier ce qu'il a au menu.
On remarque l'absence de l'onglet F6 avec les différents paramètres et valeurs de la fonction setMode(), ainsi que l'absence des délimiteurs de bloc Custom dans l'onglet F2.
En pratique toutefois ces différents tokens (jetons) semblent bien connus de la version 0.5d23, ils ne sont juste pas au menu et doivent donc être saisis caractères par caractère.
La caractère © servant de préfixe identifiant les commentaires est également absent de ce même onglet ainsi que du catalogue. On peut toutefois le saisir via la boîte à caractères, mais il n'est pas reconnu en tant que tel et génère une erreur de syntaxe.
Dans l'onglet F3 on note que les boîtes de dialogue construites par les programmes étaient initialement prévues pour comporter des icônes, même si le token icon était non reconnu si saisi à la main.
On y note également que la version 0.5d23 disposait d'une instruction supplémentaire Show à utiliser sous la forme
En pratique toutefois Show ne marche pas, ce mot n'étant pas reconnu en tant qu'instruction. Peut-être s'agit-il juste d'un ancien nom pour l'instruction Text permettant d'afficher une boîte avec un message.
Les fonctions de connectivité du sous-menu Link sont ici non exposées, mais bien reconnues si saisies manuellement au clavier.
On remarque l'absence de l'onglet F6 avec les différents paramètres et valeurs de la fonction setMode(), ainsi que l'absence des délimiteurs de bloc Custom dans l'onglet F2.
En pratique toutefois ces différents tokens (jetons) semblent bien connus de la version 0.5d23, ils ne sont juste pas au menu et doivent donc être saisis caractères par caractère.
La caractère © servant de préfixe identifiant les commentaires est également absent de ce même onglet ainsi que du catalogue. On peut toutefois le saisir via la boîte à caractères, mais il n'est pas reconnu en tant que tel et génère une erreur de syntaxe.
Dans l'onglet F3 on note que les boîtes de dialogue construites par les programmes étaient initialement prévues pour comporter des icônes, même si le token icon était non reconnu si saisi à la main.
On y note également que la version 0.5d23 disposait d'une instruction supplémentaire Show à utiliser sous la forme
Show "string"
selon le catalogue.En pratique toutefois Show ne marche pas, ce mot n'étant pas reconnu en tant qu'instruction. Peut-être s'agit-il juste d'un ancien nom pour l'instruction Text permettant d'afficher une boîte avec un message.
Les fonctions de connectivité du sous-menu Link sont ici non exposées, mais bien reconnues si saisies manuellement au clavier.
Nous l'avons déjà évoqué plusieurs fois, alors passons au catalogue accessible via
Plusieurs fonctions sont absentes du catalogue en version 0.5d23, mais bel et bien reconnues si saisies à la main. On peut citer :
getFold( semble avoir toutefois un petit problème, acceptant ici anormalement un paramètre optionnel et affichant alors un message d'erreur signalant un bug : "BUG: Illegal data tag".
La version 0.5d23 présentait bizarrement 2 fonctions différentes pour retourner les dimensions de variables :
On note également qu'en version 0.5d23 l'instruction DrawSlp pour tracer une droite connaissant les coordonnées d'un de ses points et sa pente, s'appellait alors SlpLine.
La TI-92 simplifie automatiquement les résultats littéraux au maximum, ce qui ne permet pas d'obtenir des étapes des calculs contrairement à d'autres modèles.
Peut-être que sur cette version 0.5d23 ça ne marchait pas encore bien dans certains cas, car 2 fonctions explicites de simplification étaient encore présentes :
Enfin, les fonctions de zoom adoptent ici le préfixe Z et pas encore Zoom comme déjà vu plus haut. À la différence qu'ici ces fonctions ne sont pas fonctionnelles si appelées en l'état, TI devait être en plein renommage.
En pratique il faut remplacer le préfixe Z par Zoom dans la saisie afin que ça marche.
On remarque en passant que l'instruction ZoomInt est absente du catalogue en version 0.5d23.
Elle est bien reconnue si saisie à la main, mais son interface souffre alors d'un bug d'affichage.
2nd
2pour terminer la comparaison.
Plusieurs fonctions sont absentes du catalogue en version 0.5d23, mais bel et bien reconnues si saisies à la main. On peut citer :
- ClrErr
- DispG
- DispTbl
- EndPrgm
- DelFold()
- getFold()
- setFold()
getFold( semble avoir toutefois un petit problème, acceptant ici anormalement un paramètre optionnel et affichant alors un message d'erreur signalant un bug : "BUG: Illegal data tag".
La version 0.5d23 présentait bizarrement 2 fonctions différentes pour retourner les dimensions de variables :
- dim() comme sur les versions de production mais uniquement pour les listes, vecteurs et matrices
- et une fonction supplémentaire length() dédiée aux seules chaînes de caractères
On note également qu'en version 0.5d23 l'instruction DrawSlp pour tracer une droite connaissant les coordonnées d'un de ses points et sa pente, s'appellait alors SlpLine.
La TI-92 simplifie automatiquement les résultats littéraux au maximum, ce qui ne permet pas d'obtenir des étapes des calculs contrairement à d'autres modèles.
Peut-être que sur cette version 0.5d23 ça ne marchait pas encore bien dans certains cas, car 2 fonctions explicites de simplification étaient encore présentes :
- cExpand() dans le contexte des nombres imaginaires ou complexes
- simplify() dans le seul contexte des nombres réels
Enfin, les fonctions de zoom adoptent ici le préfixe Z et pas encore Zoom comme déjà vu plus haut. À la différence qu'ici ces fonctions ne sont pas fonctionnelles si appelées en l'état, TI devait être en plein renommage.
En pratique il faut remplacer le préfixe Z par Zoom dans la saisie afin que ça marche.
On remarque en passant que l'instruction ZoomInt est absente du catalogue en version 0.5d23.
Elle est bien reconnue si saisie à la main, mais son interface souffre alors d'un bug d'affichage.
Comme déjà dit, il ne nous est pas possible à ce jour de publier l'image ROM 0.5d23.
En effet Texas Instruments combat farouchement la diffusion d'images ROM de ses calculatrices car, contrairement aux images d'OS qui n'ont pas le code amorce, elles sont directement utilisables pour faire fonctionner des émulateurs non officiels, notamment sur smartphones et tablettes, ce qui dans certains pays autorisant ces appareils aux examens évite ainsi d'avoir à s'acheter une calculatrice.
Toutefois, l'image 0.5d23 récupérée est désormais dans les mains des quelques personnes qui ont aidé directement ou indirectement à sa sauvegarde, et qui sauront on espère la conserver en privé en lieu sûr jusqu'à des temps plus propices.
En effet Texas Instruments combat farouchement la diffusion d'images ROM de ses calculatrices car, contrairement aux images d'OS qui n'ont pas le code amorce, elles sont directement utilisables pour faire fonctionner des émulateurs non officiels, notamment sur smartphones et tablettes, ce qui dans certains pays autorisant ces appareils aux examens évite ainsi d'avoir à s'acheter une calculatrice.
Toutefois, l'image 0.5d23 récupérée est désormais dans les mains des quelques personnes qui ont aidé directement ou indirectement à sa sauvegarde, et qui sauront on espère la conserver en privé en lieu sûr jusqu'à des temps plus propices.