actualité
PiStudio : un IDE pour Amstrad CPC propulsé par Raspberry Pi
Je travaille depuis un certain temps sur un projet personnel appelé PiStudio.
C’est un nouvel environnement de développement qui tourne sur un Raspberry Pi et se relie à un Amstrad CPC via le CPC-CPLINK de Revaldinho.



PiStudio transforme le CPC en poste de développement où l’on peut coder, compiler, déboguer, gérer ses fichiers et explorer ou entretenir des dépôts Git, le tout directement depuis le clavier et l’écran du CPC (en pleine résolution overscan de 92x32 caractères). Il repose sur une suite d’outils intégrés qui fonctionnent de concert, avec un presse-papiers partagé, une interface unifiée et la possibilité d’ouvrir des documents d’une application à l’autre. Il est conçu pour fonctionner entièrement hors ligne, certaines fonctions facultatives tirant parti d’une connexion réseau.
Sur le fond, l’idée est simple : le Pi abat discrètement tout le gros travail, tandis que le CPC reste un front-end réactif. L’expérience est naturelle et authentique : vous travaillez bien sur votre CPC, mais avec des capacités qui auraient tenu de la science-fiction en 1985 !
Éditeur de texte



L’éditeur est le cœur de PiStudio. C’est un éditeur de code complet, taillé pour le développement, mais tout aussi à l’aise avec n’importe quel fichier texte.
Fonctions principales :
- Plusieurs documents ouverts, avec une navigation par onglets
- Édition en vue partagée (horizontale ou verticale) pour comparer ou modifier deux fichiers côte à côte
- Rechercher et remplacer dans le fichier courant ou dans tout le projet
- Signets pour naviguer vite entre ses fichiers favoris
- Recherche floue de fichiers, pour retrouver un fichier par son nom instantanément
- Compilation du fichier actif ou d’un fichier principal désigné, par un seul raccourci. Le binaire produit peut être envoyé dans la mémoire du CPC et exécuté.
- Les langages et toolkits pris en charge sont le Locomotive BASIC, RASM et le compilateur C SDCC
- Code Inspector : accès à vos variables et fonctions pendant l’édition des sources (ASM, BASIC et C sont pris en charge)
- Historique UNDO/REDO et presse-papiers illimité
- Boîte de dialogue calculatrice, avec conversion hexadécimal/décimal
- Table ASCII et des caractères (glyphes CPC)
- Correction orthographique multilingue
- Outil de traduction assisté par IA
- Formatage automatique des fichiers ASM
- Retour à la ligne automatique, largeur de tabulation configurable
- Prise en charge de l’impression
- Persistance complète de la session : fichiers ouverts, positions du curseur, état des vues partagées… tout est restauré au lancement suivant
Débogueur



Le débogueur permet d’inspecter et d’avancer pas à pas dans des programmes qui tournent sur le vrai matériel CPC. Quand votre programme atteint un point d’arrêt (instruction BRK), le client CPC capture l’état complet du Z80 (avec une prise en charge partielle du Gate Array pour l’instant) et l’envoie à PiStudio.
Fonctions principales :
- Z80 émulé
- Vue complète des registres du Z80, registres alternatifs compris
- Détection de l’état du Gate Array (sélection de ROM, banking de RAM), pour toujours savoir ce qui est paginé à une adresse donnée
- Panneau de désassemblage, avec navigation par PC ou par adresse saisie à la main
- Panneau de dump mémoire (les 64 Ko d’espace d’adressage)
- Step into, step over, step return, continue, exécuter jusqu’au curseur
- Intégration des fichiers de symboles RASM / SDCC (les labels sont résolus, affichés dans le désassemblage et cherchables par nom)
- Accès rapide au code source ASM ou C correspondant à l’emplacement courant du désassemblage
- Compteur de NOPs, pour un chronométrage et un profilage au cycle près
- Visualiseur de mémoire
- Recherche texte et hexadécimale dans toute la mémoire
- Import/export de données binaires depuis et vers des fichiers
- Export des listings de désassemblage
Éditeur hexadécimal


Un éditeur binaire dédié, pour travailler sur des données brutes, des images disque ou des dumps mémoire.
Fonctions principales :
- Affichage hexadécimal et ASCII côte à côte
- Modes insertion et écrasement
- Sélection avec affichage en direct de la longueur et de la somme de contrôle
- Couper, copier, coller
- Import/export de blocs binaires
- Recherche texte et hexadécimale, avec remplacement
- Navigation directe par offset
- Prise en charge de la vue partagée
- Annuler/rétablir
- Prise en charge de l’impression
Gestionnaire de fichiers



Un navigateur de fichiers à deux volets qui réunit l’accès au stockage du Pi, aux lecteurs de disquettes physiques du CPC et aux instances PiStudio distantes présentes sur le réseau.
Lecteurs pris en charge :
- PI : le stockage PiStudio sur le Pi
- A: et B: les lecteurs de disquettes physiques du CPC
- nom d’hôte : les instances PiStudio distantes découvertes sur le réseau local
Fonctions principales :
- Disposition à deux volets, pour copier ou déplacer facilement d’un emplacement à l’autre
- Prise en charge complète d’UniDOS pour les opérations de système de fichiers étendues (noms longs, sous-répertoires, périphériques de stockage modernes)
- Créer des dossiers, renommer, copier, déplacer, supprimer
- Sélection de fichiers par motif de mot-clé
- Affichage ou non des fichiers cachés, colonnes configurables (taille, date, heure), tri par nom, taille ou date
- Signets pour les répertoires fréquemment consultés
- Recherche floue de fichiers
- Ouverture directe dans l’éditeur de texte ou l’éditeur hexadécimal
- Création d’images disque DSK (avec la possibilité d’y naviguer sans les ouvrir)
- Création d’archives ZIP (avec la possibilité d’y naviguer sans les ouvrir)
- Inspection des en-têtes AMSDOS
- Prise en charge du shell
Gestion de versions



Un front-end Git complet, pensé pour un travail au clavier.
Fonctions principales :
- Initialiser, ouvrir, cloner des dépôts
- Rouvrir les dépôts récents
- Consulter les changements de l’arbre de travail et l’historique complet des commits
- Visionneuse de diff côte à côte
- Visionneuse de diff ligne à ligne, avec retour à la ligne automatique
- Indexer ou désindexer un fichier ou tous les changements
- Abandonner les changements
- Commiter avec un message
- Annuler des commits
- Synchroniser / récupérer la dernière version
- Revenir à une révision précise
- Pousser vers le dépôt distant
Chatbot / assistant de code


Un assistant à base d’IA intégré à PiStudio, qui prend en charge OpenAI (ChatGPT) comme Anthropic (Claude) en tant que fournisseurs.
Fonctions principales :
- Démarrer une nouvelle conversation ou en reprendre une précédente
- Historique des conversations, avec enregistrement et chargement
- Configuration du fournisseur (clés d’API, choix du modèle)
- Disposition en vue partagée
- Utile pour une analyse rapide de code, des améliorations d’algorithme ou une aide générale à la programmation —
sans jamais quitter l’IDE. Il peut aussi commenter automatiquement votre code, suggérer de renommer des labels, traduire des documents entiers, générer de nouveaux fichiers dont l’IA écrit le contenu, etc.
Le Chatbot est également accessible sous forme de boîte de dialogue depuis l’éditeur de texte.
Guide du développeur



Une encyclopédie de référence complète, entièrement hors ligne, qui couvre tout ce qui touche à l’Amstrad CPC. Les articles sont reliés entre eux par des hyperliens. C’est une immense base de connaissances embarquée, organisée en articles relus et cherchables (environ 3 Mo de texte non compressé à ce jour).
Les catégories de contenu comprennent :
- Pour commencer : choisissez votre voie — BASIC, assembleur Z80 ou C
- Histoire et culture : chronologie du CPC, logiciels marquants, communauté, comparaisons avec les ordinateurs 8 et 16 bits, et plus encore
- Manuel de l’Amstrad CPC : le manuel utilisateur complet, remis en forme pour une consultation rapide
- Manuels des logiciels : RASM, Maxam, DAMS, Orgams, Protext, Utopia, Starkos, Soundtrakker, OCP, Discology, et d’autres
- Locomotive BASIC : tutoriel complet, référence des mots-clés, table des tokens, messages d’erreur, conseils d’optimisation
- Programmation en C : SDCC pour le CPC — syntaxe, structures de données, contraintes de l’embarqué, optimisation, intégration à PiStudio
- Matériel : CPU Z80, CRTC, Gate Array, PPI, AY-3-8912, FDC, ASIC, périphériques, Multiface 2, M4 Board, UniDOS, CPC-CPLink
- Firmware et plan mémoire : vecteurs du firmware, organisation de la mémoire, espace d’adressage par modèle
- Programmation en assembleur Z80 : tutoriel (du débutant à l’expert), modes d’adressage, interrupts, optimisation, chronométrage en NOPs
- Algorithmes et structures de données : tri, recherche, compression, virgule fixe, trigonométrie
- Fichiers et stockage : types de fichiers, formats de disquette, formats d’image DSK/SNA/CDT/CPR, chargeurs rapides
- Programmation graphique : 2D/3D, effets d’écran, rotation, projection
- Programmation sonore : programmation de la puce AY, players de musique, digidrums, bruitages, intégration des trackers
- Développement de jeux : moteurs de sprites, tile maps, physique, IA, systèmes d’entités
- Techniques de demomaking : rasters, ruptures, overscan, plasma, starfield, feu, mélange de modes
- Trucs et astuces : optimisation de la vitesse, débogage, compatibilité, PEEK et POKE utiles
- Collections de code source : du code assembleur Z80 fourni par des membres de la communauté
- La recherche plein texte (Ctrl+F) porte sur l’ensemble du contenu
Réglages

![]()

Et enfin, la configuration générale de PiStudio.
Options configurables :
- Configuration du WiFi
- Configuration de l’imprimante (réseau local)
- Clés d’API pour le Chatbot
- Configuration de l’utilisateur et des identifiants Git
- Personnalisation du thème de couleurs
- Préférences d’affichage
Quelques mots sur le client CPC
Côté client tourne un programme compact en assembleur Z80 (disponible en ROM ou sur disquette) qui :
- Bascule le CPC en Mode 2 overscan, pour un affichage de l’IDE en plein écran
- Lit la matrice du clavier CPC et envoie les événements clavier au Pi
- Détecte et résout automatiquement les collisions matérielles du clavier
- Reçoit les mises à jour de l’écran sous forme de différences de caractères (seules les cellules modifiées sont transmises, pour la vitesse)
- Gère les points d’arrêt : quand un programme en cours d’exécution atteint une instruction BRK, le client capture tous les registres du Z80, l’état du Gate Array et un dump complet des 64 Ko de RAM, puis rend la main au débogueur de PiStudio
- Gère les entrées/sorties fichiers par les appels du firmware AMSDOS, pour lire et écrire sur les lecteurs du CPC
- Prend en charge les commandes RSX d’UniDOS pour les périphériques de stockage modernes
- Comporte une gestion robuste des délais d’attente et une reconnexion automatique si la liaison avec le CPC-CPLINK est interrompue
- La fonction de débogage n’est pas disponible quand on démarre depuis une disquette
Disponibilité
Ce billet n’est qu’une annonce. PiStudio est déjà bien solide en l’état, mais je veux d’abord mener à bien un vrai projet personnel avec lui, en me donnant le temps nécessaire pour affiner et améliorer l’expérience d’ensemble.
Pour simplifier la distribution, PiStudio sera publié sous forme d’image disque à écrire sur une carte SD de Raspberry Pi.
Pour finir
Je tiens à remercier Rabs, qui m’a fait connaître le projet CPC-CPLink, et TotO qui, comme d’habitude, a été une source continue d’inspiration et de conseils pendant la conception de PiStudio.
Restez à l’écoute !