3615 X0R.FR

Comme annoncé dans mon post sur le Minitel comme terminal Linux, j'ai participé à l'événement "3615 au revoir" organisé par le SIANA. C'était l'occasion rêvée de parler avec les autres collègues, que je salue au passage, mais aussi de montrer à des enfants n'ayant jamais connu le Minitel ce à quoi ça ressemble en vrai.

Photo du stand de face

Photo du stand de dos

Mon stand, très dépouillé, était une façon de dire que le Minitel est maintenant mort peut-être, mais les quelques centaines de milliers de terminaux qui restent encore seront maintenant très prisés par les collectionneurs, qui continueront certainement de s'amuser avec.

J'ai fait tourner un Minitel en mode terminal 80-colonnes, avec un petit jeu en Python et ncurses d'anagrammes. Le code source du jeu est à la disposition de tous sur mon dépôt BitBucket.

Photo de près du jeu d'anagrammes

Je tiens donc à remercier les gens du SIANA, et Sephi qui m'a informé de cet événement et qui m'a permis de prendre l'initiative de les rejoindre, alors que les débats et les bricolages autour de cette invention fascinante continueront, eux, à faire vivre le Minitel désormais séparé de son légendaire 3615.

Et pourquoi pas...

Je me propose maintenant de formuler quelques pistes de réflexion qui nous permettront certainement de sauvegarder cet objet qui fait partie du patrimoine français. Ce que nous pourrions faire n'implique pas forcément de l'informatique ou des bricolages électroniques, mais j'imaginais par exemple la possibilité de fournir un serveur open source de contenus pour Minitel. Un truc qui ne fonctionnerait pas forcément comme un serveur Web, étant donné que la navigation sur un "site" Minitel se fait forcément en gardant l'état côté serveur (pas de cookies de session ou ce genre de trucs, par exemple).

Une fois cela fait, le plus intéressant sera ensuite de se livrer à un exercice de "rétro-adaptation" de services Web actuels (Google, Wikipédia, ou pourquoi pas Facebook) afin de réfléchir ce que ces services auraient donné sur Minitel. Les contraintes, les exigences et les moyens techniques ne sont pas du tout les mêmes : j'imaginerais par exemple assez aisément un Wikipédia en version Minitel (lynx se débrouillait d'ailleurs plutôt bien pour ça), ou une "appli Minitel" qui reproduirait le contenu des écrans Infogare pour avoir la liste des horaires des prochains RER.

Quoi qu'il en soit, les documents techniques sont maintenant à la portée de tout le monde, et j'imagine aisément l'apparition de petits projets à gauche et à droite pour continuer à faire vivre ce petit terminal.

(Note : cet article n'a pas été tapé sur un Minitel, mais j'aurais pu ! :])

Commentaires

Poster un commentaire

#1 — Sébastien C.

Bonjour à tous,

Merci à vous x0r pour le rajout des liens dans votre premier post sur le Minitel ; je continue mes propres réflexions sur celui-ci (que je ne découvre qu’aujourd’hui par manque de suivi de vos publications) pour ne pas surcharger le premier et faire suite aux vôtres que j'aime bien.

Votre programme « xtab-anagrammes » est tout simplement excellent pour une démonstration ! Python, dans ce domaine fait des merveilles. Mais surtout NCurses qui mâche franchement le travail en gérant, par exemple, le scrolling de texte si nécessaire. Sous écran Minitel, j'aimerai d'ailleurs bien voir...

Il faut évidemment réfléchir le pourquoi et le comment de la conservation de cet objet, produit à des millions d’exemplaires, pour arriver à ceci :

http://www.lemonde.fr/technologies/portfolio/2012/06/29/le-minitel-symbole-d-une-epoque_1727096_651865.html

Nous avons déjà noté ici la solidité éprouvée de ce petit terminal ; il n’a pas que cet avantage. Par exemple, il peut très bien faire office de terminal avec Arduino, ou, comme vient de le poster « IPiWT » dans votre post sur « le Minitel comme terminal Linux » un Raspberry Pi. Au passage, parce que plus spartiate (ce n’est qu’un micro-contrôleur, pas un ordinateur), le premier me semble plus adapté que le second. De plus, Arduino cause RS232 de manière native alors qu’il faut un convertisseur USB pour Raspberry Pi. Donc il y a un côté grandiose avec Arduino parce ce petit bout de plastique est quand même capable d’avoir de la mémoire. Elle n’est certes pas énorme (et cela dépend des modèles) mais souvent bien suffisante pour ce que l’on veut traiter. Surtout, Arduino est fait pour communiquer à l’extérieur et, s’il est capable d’allumer de simples leds, peut aussi commander des relais... L’illustration en vidéo :

http://www.youtube.com/watch?v=6KiFMGsUMy0&feature=related

La connexion par le biais de la prise péri-informatique permet, certes, de se servir de la petite boite comme d’un terminal Linux. C’est une très bonne chose à connaître mais ce n’est pourtant pas, il me semble, la meilleure.

Parce que le Minitel possède aussi un modem et que ça, ce serait bon de ne pas l’oublier... Nous possédons aussi une quantité incroyable de cartes V92 qui, RJ45 aidant, ne servent plus à rien. Or, il y a encore beaucoup de PC qui possèdent des ports PCI libres et donc, qui sont capables de recevoir de telles cartes. Cela veut dire, entre le PC et le minitel, une SIMPLE paire de fils, certes alimentés comme l’est la ligne RTC classique en 10 et 22 volts (et 40mA), mais qui peut facilement faire plusieurs centaines de mètres... Vous me suivez ?

Partant de là, on peut tout à fait imaginer un minitel, branché sur un Arduino qui affiche un menu-écran des plus basiques MAIS capable de télécommander à distance une vielle machine.

Donc le scénario serait le suivant :

1) Arduino est en veille 2) On pousse le bouton d’alimentation du minitel et Arduino détecte ce signal. 3) Arduino affiche un menu de patience très simple, 4) Arduino pousse un relais d’alimentation d’une vieille machine Linux et passe le contrôle au modem (attente de porteuse). 5) Linux prend le relais et envoie une porteuse qu’éventuellement Arduino détecte pour un « Connexion/Fin » logiciel. Ce truc-là n’est peut être pas possible mais il faut y réfléchir, voire hacker physiquement le clavier. 6) Linux envoi du Vidéotext suivant la vrai finalité de son récipiendaire, via modem ; et moi je pleure tout la jeunesse... 7) Arduino reste en veille pour détecter soit « connexion/fin », soit une rupture d’alimentation du Minitel. S’il y a lieu, avec gestion de temporisation, Arduino décide d’éteindre la machine Linux.

Avantage (énorme) : Le Minitel peut se trouver dans des conditions assez épouvantables sachant qu’on peut en plus faire provision de quelques-uns pour l’avenir. Si on gère bien les temporisations, on peut même envisager de couper l’alimentation d’Arduino par lui-même... Dans tous les cas, c’est passionnant et ça vaut sans doute le coup de commencer à se pencher sur les vieux composeurs VidéoText M$ puisque je n’en connais pas qui fonctionnait sous autre chose que ce machin...

Il y a aussi une notion d’Histoire qu’il ne serait pas négligeable de commencer à écrire... Par exemple, tout le monde connaît la fameuse page Vidéotext affichée à la télévision lors de l’élection de François Mitterrand.

http://silicium.org/site/images/stories/catalog/minitel/mitterrand.jpg

Un nombre conséquent de photos ont été prises, lors de l’apparition de cet écran et l’INA possède bien entendu la vidéo de cet affichage. Mais quid de son code ? Je n’ai pas fait de recherches en ce sens et je sais qu’elles ne seraient pas aisées. Mais je n’arrive pas à croire qu’il soit perdu ; il est forcément quelque part, perdu sur un disque dur ou une disquette. Et il fait partie de l’Histoire... L’idéal serait aussi de retrouver le code Vidéotext prévu pour être affiché en cas de victoire adverse ; on ne l’a jamais vu celle-là...

Et puis j’ai trouvé quatre petites perles sur le site http://www.epi.asso.fr

http://www.epi.asso.fr/fic_pdf/b47p207.pdf

http://www.epi.asso.fr/fic_pdf/b48p205.pdf

http://www.epi.asso.fr/fic_pdf/b56p229.pdf

http://www.epi.asso.fr/fic_pdf/b67p223.pdf

C’est évidemment très daté, mais ça m’a touché au vu de quelques souvenirs... C’est à ce genre de lecture que l’on se rend compte que l’on rentre progressivement dans un temps qui ne sera plus (du tout) un jour où l’autre... C’est forcément le lot de tous, un jour, mais ce n’est pas anodin d’en prendre note au plus tôt. Pour ceux qui n’ont pas connu cette époque, GW-Basic est présenté ici en français

http://3615cricri.over-blog.fr/pages/Programmation_GW_Basic-3411502.html

et on peut en obtenir autant l’exécutable que la documentation par ici :

http://www.oocities.org/KindlyRat/GWBASIC.html

Bien entendu, inutile de vous dire que tout cela fonctionne très bien sous les émulateurs « Dos Emu » ou « DosBox » ; donc GW-Basic fonctionne sous la plus récente des distributions Linux ce qui ne manque pas de poursuivre le côté « très classe »...

Ah et puis j’ai aussi trouvé cette page :

http://www.oocities.org/siliconvalley/vista/6443/tipe.html

qui outre le fait qu’elle dégrossie bien la notion de codage Videotext s’attache surtout sur la génération d’images ; un sujet qui vous intéresse, je crois...

Bien à vous, :-)

#2 — IPiWT

D'après ce que j'ai lu il y a pas mal de débats sur l'appellation d'ordinateur pour les appareils sur architecture arm... (sur la page wikipédia du raspberry pi ils parlent aussi d'ordinateur), mais bon ceci n'est pas très grave.

Il est vrai qu'un arduino serais peut-être plus adapté, mais le fait que le raspberry pi soit plus complet (distro linux inside) peut je pense être aussi utile, je me voit bien me pointer en ampli avec un minitel et pouvoir prendre des notes avec, aller sur internet (par exemple grâce à une clef wifi sur le rasp pi et connecté à un téléphone 3g, ou alors via ethernet) ...Mais bon c'est vrai que là ce serais une utilisation "futile". Le minitel peut je pense aussi être utilisé vraiment, comme vous l'expliquez avec le couplage arduino-pc, cependant mes compétences sont trop faible pour ce type de montage (il va falloir je pense reprogrammer le protocole teletex sur le pc).

Il serais en effet très intéressant de réussir à récupérer le source de 81, cependant je pense que cela peut être très compliqué, quand on pense que la nasa a perdu pas mal de documents a propos de apollo 11~17... mais il n'est pas impossible que ce source existe encore. Après je n'ai que très peut connu le minitel en fonctionnement donc je ne sais pas trop quel organisme gérais ce service (celui de l'affichage de Mitterrand), on pourrais commencer par demander à France Télécom, il y a peut être un encore quelqu'un qui s'intéresse encore un peut au minitel là bas, et qui en sais plus que nous. En tout cas ce fut un plaisir de vous lire, et votre démonstration montre bien que cette petite boite n'est pas morte et se porte même très bien Bonne journée

#3 — x0r

Bonjour,

@Sébastien C. : j'ai lu la plupart de vos URLs, et en particulier, le dernier est particulièrement intéressant. La plupart des fonctions d'optimisation de l'affichage sur Minitel (dont la fonction de répétition) sont déjà dans la lib ncurses et renseignés sur terminfo, donc tout le travail d'optimisation devrait être correctement géré si on utilise ncurses...

@Sébastien C., IPiWT : Il paraît absolument évident que se cantonner à l'utilisation d'un shell UNIX sur un Minitel reste limité, et que les possibilités restent limitées par notre propre créativité. Mais pas besoin de tout refaire à partir de zéro : sous Linux, n'importe quel programme ncurses peut tourner en boucle dessus, une fois mis dans /etc/inittab. Donc sur un environnement UNIX, c'est relativement facile de faire tout ce qu'on veut. Un Arduino permet également beaucoup d'autres choses intéressantes (dont la domotique, justement), mais je pense que programmer là-dessus serait un plus gros défi. En particulier, pour avoir un affichage efficace, une idée serait de porter une version "mini" de ncurses (éventuellement optimisée uniquement pour le minitel) sur Arduino. L'utilisation d'un Raspberry Pi, qui consomme quasiment rien du tout (un Minitel allumé tire environ 20 W, au passage), peut aussi se révéler intéressante.

J'ai passé un bon bout de temps à examiner les fichiers terminfo de la définition "minitel1b" (Minitel 1B en mode vidéotex) et "minitel1b-80" (mode péri-informatique). Le fichier "minitel1b" semble pas mal, mais "minitel1b-80" comporte des erreurs, en particulier sur la reconnaissance des touches Sommaire, Annulation, etc. qui sont censés se comporter comme des touches F1 à F4. Je pourrais peut-être soumettre un patch aux devs de ncurses (c'est eux qui maintiennent terminfo je crois, mais je ne suis pas sûr).

Enfin, je pourrais essayer de voir de mon côté si quelqu'un se souvient de cette fameuse image, ou si quelqu'un sait quel(le) est le/la boîte/labo/service/personne qui l'a fait.

Bonne journée,

x0r

#4 — Sébastien C.

Bonjour à tous,

Merci de vos réactions. Le simple fait que nous échangions sur un canal comme celui-ci est une bouteille à la mer qui peut provoquer une lecture par autrui. Le Web est ainsi fait qu’il offre une permanence et une accessibilité tout de même extrêmement grande, en tous les cas pas comparable aux publications papier. Quand on songe que même Géocities n’est pas mort mais est conservé à titre mémorial pour nous donner accès à des choses comme mon dernier lien, cela me ravive toujours un certain enthousiasme... Donc « wait and see » ; avec patience évidemment.

@IPiWT Vous me semblez avoir tout à fait raison sur le fait que l’on puisse se poser la question de l’emploi du terme « ordinateur » pour le « raspberry pi » ; n’empêche, c’est nettement plus compliqué à mettre en œuvre qu’Arduino et ça n’a pas le même but. Mais dans tous les cas, on est dans la bidouille très rigolote, et ça, c’est le genre à me plaire... Il faut continuer de toujours témoigner de nos expériences et autres découvertes ; cela sert toujours...

Tiens d’ailleurs, à ce sujet, je me reprends moi-même... Plus haut, je parlais de hacker physiquement le clavier du Minitel pour simuler la pression sur « Connexion-Fin ». Le clavier du Minitel est extrêmement plus simple à hacker qu’une prise PS2 puisque c’est une simple matrice de contacts. Donc foin d’un protocole ou de ce genre de choses assez compliqué à mettre en œuvre. La page

http://hxc2001.free.fr/minitel/

(délicieuse à lire même si le niveau électronique est largement au-dessus du mien ; la vidéo finale laissant tout de même songeur) nous donne à voir le codage de la dite matrice :

http://hxc2001.free.fr/minitel/matrice_clavier_minitel.gif

Regardant et zoomant sur la nappe de fil prise en photo

http://hxc2001.free.fr/minitel/minitel2_clavier.jpg

on a bien neuf fils d’un côté et huit de l’autre, ce qui laisse facilement admettre que cela doit correspondre aux abscisses et ordonnées du tableau... Deux fils sont donc à rapter pour appuyer sur « Connexion-Fin » et Arduino, en entrée analogique, et tout à fait capable de reconnaître une porteuse... Vous imaginez la simplicité du travail ? Plus encore : dans le cas de la connexion en mode péri-informatique, par exemple avec liaison Linux, il est assez exaspérant de devoir se taper (au sens propre s’entend...) les combinaisons de touches pour avoir le bon mode, à la bonne vitesse, &c. C’est à fortiori difficile à envisager si le but de la manœuvre est de mettre le clavier du Minitel dans des mains inexpertes... Et si Arduino faisait le boulot ?

Je le dis et je répète : ce truc-là est vraiment rigolo...

Bien à vous tous ! ;-)

P.S. : dans mon post précédent : lisez « entre 10 et 22 volts » pour « en 10 et 22 volts ».

#5 — Alexandre MONTARON

XOR: "J'ai passé un bon bout de temps à examiner les fichiers terminfo de la définition "minitel1b" (Minitel 1B en mode vidéotex) et "minitel1b-80" (mode péri-informatique). Le fichier "minitel1b" semble pas mal, mais "minitel1b-80" comporte des erreurs, en particulier sur la reconnaissance des touches Sommaire, Annulation, etc. qui sont censés se comporter comme des touches F1 à F4. Je pourrais peut-être soumettre un patch aux devs de ncurses (c'est eux qui maintiennent terminfo je crois, mais je ne suis pas sûr)."

Merci! Etant donné que j'ai moi-même réalisé les terminfo (puis les termcap) minitel1, minitel1b et minitel1b-80 (celui du minitel-2 n'est pas de moi) je peux te répondre quand aux codes des touches Sommaire, Annulation, Retour et Repetition en mode téléinformatique. Il se trouve que c'est un choix car curses demande F0 a F9 (kf0 a kf9) et que j'ai préféré renseigner Fnct puis 0 jusqu'à Fnct puis 9 (sur ton minitel) a la place de *seulement* PF1 (SOMMAIRE) a PF4 (REPETITION). C'est donc un choix. Tu peux le changer, mais le modifier pour tous me semble idiot.

A. MONTARON Cf: http://canal.chez.com/mntl.ti pour le fichier d'origine. En claire, pour faire F1 sur ton minitel tu fais: Fnct puis 1, F2: Fnct puis 2...etc jusqu'à 9 voire 10.

PS: New *Flashcode* en videotex pour tous les minitels (pavettes) a prendre ici : http://www.chez.com/canal/java/FlashCode.vdt et a afficher sur son minitel. [QRCode: http://www.chez.com/canal/java/QRCodeV2a.vdt]

#6 — Alexandre MONTARON

Edit: Pardon c'est Fnct 0 a Fnct 9 y'a pas de "puis" ! héhé... Alex (ex-Ca/\/al).

#7 — x0r

@Alexandre : Merci pour tes remarques. J'ai peut-être écrit ça sans vraiment faire attention à ce qu'exigerait curses. J'avais seulement remarqué que pour ouvrir l'aide dans vim (en tapant F1 (ou PF1)), il fallait appuyer sur la touche Annulation au lieu de Sommaire, et je m'étais demandé pourquoi. Comme ça fait presque un an que j'ai écrit ça et que j'ai pas gardé de traces écrites, j'ai refait une toute petite investigation.

J'ai fait la comparaison entre les terminfo de vt100 et de minitel1b-80 ; on voit que "infocmp vt100" donne (entre autres) :

kf0=\EOy, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS

alors que "infocmp minitel1b-80" donne (entre autres, toujours) :

kf0=\EOp, kf1=\EOq, kf2=\EOr, kf3=\EOs

Donc il y a en réalité deux grosses différences : ce "décalage" et la différence de casse (\EOp vs. \EOP, par exemple). J'avais modifié le termcap sur mon serveur, puis j'ai réussi à utiliser ces fameuses touches PF1-PF4 sans souci.

Je testerai pour voir si Fnct+0 à Fnct+9 donne le même résultat. Je ne savais pas que ces combinaisons de touches marchaient également. Je ne suis même pas sûr si c'était documenté. :)

#9 — Alexandre MONTARON

Hello x0r :

Je me suis résolu a faire quelques modifications dans mes termcap minitel 1/1b/1b-80 (enfin terminfo en fait) ... par exemple : . J'ai optimisé les séquences de déplacement curseur minitel ... . J'ai ajouté un "TERM=m1b-nb" pour avoir vi/vim en 40 colonnes avec 2 couleurs ... [nb pour noir&blanc]. . J'ai surtout fait des corrections notamment pour xemacs ... . Coté touches j'ai codé RETOUR & SUITE comme Page Up / Page Down du PC (pour emacs notamment). Enfin une dizaine de modifs a regarder ici : http://canal.chez.com/mntl.ti Alex. - http://canal.chez.com/videotex.htm

Poster un commentaire