ChatGPT on the Atari ST (Seriously)

Un développeur a créé un client de chat pour l’Atari ST (Mega STE) capable de dialoguer avec ChatGPT via une liaison série et un Raspberry Pi, en utilisant GFA Basic 3.5e et en apprenant à une IA à coder dans ce langage vieux de 40 ans.

Voir la source

SYNTHÈSE STRUCTURÉE

Le projet ChatST : un client LLM pour Atari ST

Le projet, nommé ChatST, est disponible sur GitHub. Il permet à un Atari ST réel (pas un émulateur) de communiquer avec un modèle de langage moderne comme ChatGPT. L’intervenant précise : « What if Atari ST could talk to a modern LLM? Not a fake retro skin in a browser. No emulator… but an actual old Atari Mega ST ». L’objectif est de connecter deux mondes que tout oppose technologiquement.

Architecture matérielle : Atari ST + Raspberry Pi + câble série

La configuration repose sur trois éléments physiques :

  • Un Atari Mega STE en mode monochrome haute résolution
  • Un Raspberry Pi sous Python 3.12
  • Un câble null modem série, avec un adaptateur StarTech USB vers RS232

L’intervenant souligne l’intérêt de cet adaptateur : « You can get these. These are really cheap. I’ve got actually a couple of them because they’re very handy ». Cette approche est courante en rétro-informatique pour ajouter du réseau à des machines anciennes.

Séparation des responsabilités : UI sur l’Atari, réseau sur le Pi

Le développeur a fait le choix délibéré de ne pas exécuter de code réseau sur l’Atari. Il explique : « I did not want to run networking code on the Atari itself. The Atari app should stay small, understandable, and debug friendly ». Ainsi :

  • Atari : interface utilisateur, historique des conversations, gestion du clavier, rendu, envoi/réception série
  • Raspberry Pi : parsing série, appels API HTTP, variables d’environnement, débogage

Cette séparation est une pratique courante pour les plateformes anciennes, comme le rappelle l’intervenant avec l’exemple du FujiNet ou des connexions Wi-Fi232.

GFA Basic 3.5e : un langage choisi pour son héritage

Le langage GFA Basic, développé par Frank Ostrouski en 1986, a été choisi pour sa popularité historique sur Atari ST. L’intervenant cite le développeur : « I chose it in the hope that there might still be some resources out there ». Le développeur a même utilisé Codeex (une IA) pour apprendre ce langage, ce qui a donné lieu à des situations cocasses : « Codeex had to learn a language that is not exactly a mainstream 2026 target ».

Les leçons apprises en programmant avec une IA sur GFA Basic

Le développeur a documenté les pièges rencontrés, que l’intervenant résume ainsi : « We spent a surprising amount of time learning what not to do ». Les contraintes spécifiques incluent :

  • Pas de fins de ligne Unix
  • Pas de déclarations trop astucieuses sur une seule ligne
  • Pas de DIM pour les variables chaîne ordinaires
  • Éviter les astuces de contrôle de flux qui fonctionneraient dans un langage moderne
  • Réduire le nombre de procédures auxiliaires quand GFA devient mystérieux

Un protocole série minimaliste et un format de fichier dédié

Pour faire communiquer l’Atari et le Raspberry Pi, le développeur a créé un petit protocole série et un format de fichier de chat. L’intervenant mentionne : « He created a tiny little serial protocol for communicating back and forth between the Raspberry Pi and the ST ». Cela permet d’échanger les messages de manière fiable entre les deux machines.

L’interface utilisateur : un style GEM classique

Le résultat final est une interface fenêtrée dans le style GEM, avec :

  • Une zone de message scrollable
  • Un champ de saisie de taille variable
  • Une barre latérale pour gérer plusieurs conversations simultanément

L’intervenant montre une capture d’écran et commente : « It’s a clunky gem style windowed user interface, scrollable message area, variable size input field, sidebar with multiple chats ».

Un « party trick » qui connecte des mondes opposés

Le développeur lui-même qualifie son projet de « more of a party trick than really useful ». L’intervenant apprécie l’ironie : « teaching an AI bot how to use a 35 plus… 40 year old programming language for an Atari ST… I feel like this guy made Codeex better ». Le projet est avant tout une démonstration technique et une œuvre d’ingénierie créative.

CONCEPTS CLÉS

  • Null modem cable : câble série qui connecte directement deux ordinateurs sans modem, en croisant les lignes de transmission et de réception.
  • GFA Basic : langage de programmation BASIC développé en 1986 pour l’Atari ST, très populaire à l’époque pour sa rapidité et sa facilité d’utilisation.
  • GEM (Graphics Environment Manager) : interface graphique de l’Atari ST, développée par Digital Research, concurrente du Mac OS de l’époque.
  • Wi-Fi232 / FujiNet : dispositifs modernes qui permettent de connecter des ordinateurs rétro à des réseaux Wi-Fi via un port série, en émulant un modem.
  • Codeex : IA utilisée par le développeur pour apprendre et coder en GFA Basic, illustrant l’usage de l’IA pour la rétro-ingénierie logicielle.

CONCLUSION

Ce projet illustre parfaitement la philosophie du bricolage technique en rétro-informatique : plutôt que d’émuler ou de simuler, on connecte physiquement une machine ancienne à un système moderne pour lui donner des capacités inédites. L’intervenant résume bien l’esprit : « There is something deeply satisfying about connecting worlds that were never supposed to meet ». Pour un administrateur système, c’est un rappel que les solutions les plus élégantes ne sont pas toujours les plus complexes, et que la séparation des responsabilités (ici, UI sur l’Atari, réseau sur le Pi) reste un principe fondamental, même avec du matériel vieux de 40 ans.

Du même canal

Tout voir