Minitel : résurrection du serveur EDTA

 x0r   4

Dans mon précédent billet portant sur du "hacking" Minitel, je parlais de la marche à suivre pour héberger un serveur Minitel derrière une ligne téléphonique, à l'aide d'un modem et d'un serveur applicatif.

Pendant ce temps, j'ai eu l'occasion de suivre les travaux d'Alexandre Montaron (alias « Ca/\/al »), qui a monté EDTA, son propre serveur Minitel privé à l'époque où c'était encore le seul mode de communication "en ligne" accessible au public français.

Lorsqu'il m'a envoyé un mail, il y a six semaines, pour me dire qu'il avait remis sur pied une machine avec des backups (de fin 1992 !) faisant tourner le serveur, c'était là une invitation à allumer le Minitel 1B trônant encore sur mon bureau, rebrancher le câble série, et partir à l'aventure.

J'aurais aussi pu accéder à EDTA en me logguant directement par telnet depuis une console Linux, mais j'étais désireux de l'expérience d'origine, avec la poussivité des 1 200 bauds, en niveaux de gris sur l'écran CRT du terminal d'origine.

À cheval entre deux époques

Le serveur n'est hélas pas toujours actif. Mais lorsqu'il l'est, il est accessible aussi bien par Telnet (avec une interface similaire à ncurses qu'on peut utiliser dans un Xterm) que par netcat (redirigé vers un port série pour un accès en "mode Vidéotex").

C'est un serveur dont on pourrait dire qu'il est à cheval entre deux époques, l'époque « Minitel » et l'époque « Internet ».

Je n'ai eu l'occasion de m'y connecter qu'une fois, donc il m'est hélas impossible de publier des photos de mon Minitel affichant EDTA comme j'aurais souhaité le faire. Mais ce fut néanmoins une expérience particulièrement fascinante.

La première chose qui frappe est la lenteur de l'affichage. Malgré tous les efforts d'optimisation du code Vidéotex, on se heurte rapidement aux limitations du matériel de l'époque. Le débit descendant équivaut à 120 caractères par seconde en l'absence de codes couleur, de lettres accentuées ou d'effets (pseudo-)graphiques. Il s'agissait d'une époque où il était encore difficile d'imaginer qu'on puisse disposer trente ans plus tard de connexions à Internet un million de fois plus rapides et que l'on pourrait rester en ligne en permanence, le tout sans occuper la ligne téléphonique. Au fur et à mesure que j'évolue dans les différents menus du serveur, le temps que la page s'affiche me laisse le temps de réfléchir au choix que je ferai. Le temps d'affichage invite à la patience et à réfléchir avant de faire son choix, comme s'il s'agissait d'une partie d'échecs.

Une chose est sûre : il fallait se munir de patience pour se connecter sur ce genre de serveurs, et se réserver un petit crénau horaire dévoué à la rédaction de messages sur ce que nous appellerions maintenant un forum. À l'époque, il fallait exécuter le rituel consistant à composer le numéro du serveur privé et de prier que ses trois lignes ne soient pas déjà occupées par d'autres utilisateurs. Enfin, le temps est compté : tout d'abord par France Télécom (sans objet dans mon cas, car je me connectais via netcat), mais aussi par le serveur privé, pour assurer une certaine équité entre les utilisateurs et éviter que trop d'utilisateurs simultanés, que ce soit par cupidité ou par négligence, s'accaparent les trois lignes téléphoniques dont disposait EDTA à l'époque. Le système n'hésite pas à déconnecter abruptement tout utilisateur dépassant vingt minutes de connexion ; le décompte des minutes restantes avant la fin de la session étant indiqué tout en haut de l'écran.

Une sorte de voyage temporel

C'est néanmoins un drôle de sentiment qui m'envahit lorsque j'arpente les menus d'EDTA. Le fait que le disque dur de la machine d'origine ait rendu l'âme et que les seules backups disponibles remontent à fin 1992 donnent une impression désolée. La lecture des forums témoigne d'une présence assidue des membres qui étaient encore dessus à l'époque, jusqu'à ce que tout s'arrête brusquement. Mettre les pieds pour la première fois sur ce serveur vingt-trois ans après la date de son archivage ne donne pas seulement l'illusion d'être un étranger, mais aussi celui d'être un voyageur temporel.

D'un seul coup, mon Minitel fait un bip, et le mot « Missive ! » s'affiche sur la ligne tout en haut de l'écran. Ca/\/al savait que j'étais là et cherchait à me parler ! Il m'a fallu un peu de temps avant de comprendre que cette indication signifiait qu'il fallait que je me rende sur la page « Multi-dialogue » pour lire mon message. Mais lui était connecté en Telnet, et ayant délibérément choisi l'inconfort du vrai terminal, je ne pouvais pas naviguer aussi rapidement que lui.

Le système de multi-dialogue qu'a fait Ca/\/al ressemble un peu à une version dépouillée d'IRC, pour ceux qui savent encore ce que c'est. Imaginez un logiciel de messagerie instantanée, mais qui n'affiche pas l'historique des messages. Seuls le dernier message de son interlocuteur et celui qu'on est en train d'écrire apparaissent à l'écran. De plus, si l'interlocuteur envoie un autre message pendant qu'on répond au premier, on ne le voit pas instantanément apparaître à l'écran ; il faut alors abandonner son message en cours pour le lire, ou le terminer pour répondre de manière décalée à la missive suivante.

Le système est rudimentaire, mais efficace. Le seul point délicat reste le clavier du Minitel, qui exige un petit temps d'adaptation et de ne pas dépasser les 7,5 caractères par seconde du fait du débit ascendant de 75 bauds et l'absence de mémoire tampon entre le clavier et le modem. De plus, je suis obligé de maintenir la touche "Maj" enfoncée lorsque j'écris, car le Minitel est en mode « Verr. Maj. » par défaut et n'a pas de touche pour le désactiver.

Et pourtant, c'est comme ça qu'on communiquait, il y a vingt-cinq ans.

Mode d'emploi

Je finirai sur une note plus technique, pour vous expliquer comment j'ai fait pour pouvoir profiter de ce serveur avec un vrai Minitel relié à une machine sous Linux.

Tout d'abord, il faut régler les paramètres du port série. Dans mon exemple, il s'agit de /dev/ttyS0 ; substituez-y le bon chemin, en particulier si vous utilisez un convertisseur RS232 vers USB. Les réglages se font avec la commande suivante :

# stty -F /dev/ttyS0 1200 raw cs7 parenb -parodd opost onlcr cread \
  hupcl -echo -echoe -echok

Le Minitel active l'écho local lorsque son modem est raccroché (autrement dit, lorsque la lettre F est affichée en haut à droite de l'écran). Or, en temps normal, cet écho local est désactivé et c'est le serveur distant qui s'occupe du "retour" visuel lorsqu'on frappe au clavier. Il faut donc désactiver l'écho local à la main : appuyez sur Fnct et T simultanément, relâchez ces touches et tapez E et c'est chose faite. Sinon, tout ce que vous taperez s'affichera en double.

Enfin, la dernière étape pour profiter du spectacle est de saisir la commande de connexion :

# nc edta.hd.free.fr 4586 > /dev/ttyS0 < /dev/ttyS0

Avec un peu de chance, vous tomberez pile à un moment où le serveur est allumé (il ne l'est pas toujours) ; dans ce cas, il ne reste plus qu'à l'explorer et à l'admirer.

Conclusion

Le travail de Ca/\/al reste tout de même fascinant, même après toutes ces années pendant lesquelles on décrétait le Minitel comme obsolète. Mais nos deux initiatives respectives vont en réalité ensemble : d'une part, j'avais réussi à mettre en place l'infrastructure nécessaire pour mettre en place un serveur Minitel ; d'autre part, Ca/\/al fournit une implémentation d'un serveur Minitel, mais dépourvu en l'état d'interface avec la téléphonie analogique.

Chapeau bas, en tout cas, pour avoir pris le temps de refaire découvrir les arcanes d'un tel microserveur Minitel.

Commentaires

Poster un commentaire

Olivier

Bonjour, J'essaye de me connecter via telnet au serveur, et quand il est on j'ai bien une connexion, mais impossible d'avoir quelque chose d'utilisable (plein de caractères de contrôle affichés, en noir et blanc seulement, pas d'écran virtuel mais seulement des 'nouveaux' caractères qui s'empilent, ...). Si quelqu'un a déjà réussi, pourriez vous poster la ligne de commande utilisée pour se connecter correctement ? Sous Windows, j'ai aussi essayé avec Putty avec un peu plus de succès (j'ai un écran virtuel qui se rafraichit et plus juste un défilement de caractères), mais rien d'utilisable non plus. Et j'ai essayé plusieurs paramètres différents, en vain. Je pense que je loupe quelque chose, mais je ne sais pas quoi.... Merci :-).

Alexandre MONTARON

En Telnet, le numéro de port est différent ... Sous Linux (ou avec Putty) tu fais: $ telnet edta.hd.free.fr 1808 ... Ecran:25x80. Par contre, avec Timtel (logiciel d'émulation) ou un vrai minitel c'est effectivement edta.hd.free.fr 4586 (pas le même numéro de port donc). J'ai une page, un peu brouillon certes, qui explique les différentes façons de se connecter ... http://canal.chez.com/java/eVideotex.htm Alex.

Alexandre MONTARON

@Olivier: Je persiste a penser que tu t'es connecté sur le mauvais port (c-a-d le port vidéotex mais en Telnet !!)

Néanmoins, sans arriver a la perfection du blog d'x0r j'ai refait quelques pages explicatives et amélioré encore un peu la connexion Telnet a partir de linux, xterm ou de putty : http://canal.chez.com/java/C_telnet.htm La connexion depuis un smartPhone ou en web avec les applets Java est également possible ...

A noter aussi qu'il est maintenant possible d'afficher les pages en niveaux de gris sur la connexion Telnet (Linux ou Putty) ... c'est tout nouveau ! Alex. - http://canal.chez.com/java/

Alexandre MONTARON

j'y suis ! tu as sans doute tenter de faire un telnet depuis le shell directement sur le Minitel ... dans ce cas il faut faire $ telnet -7 edta.hd.free.fr 4586 pour passer en 7 bits mais surtout avant il faut faire $ export sttysave='stty --save' ; stty evenp eof "" erase "" intr "" kill "" lnext "" quit "" rprnt "" susp "" -icrnl ignbrk -ixon -echo -echoe -echok -icanon -iexten -isig -onlcr ... et apres $ stty 'echo $sttysave' ... sinon effectivement y'a pleins de caractères bizarre et EDTA n'y est pour rien la dedans !

Poster un commentaire