Guide de développement
Guide de développement BASTOS
Ce guide explique comment écrire et tester des programmes BASTOS sur un PC (Windows ou Linux), sans matériel Minitel ni module BASTOS-S.
Le principe : un simulateur bastos tourne sur la machine et expose une
WebSocket locale. Minterm s’y connecte et affiche l’invite BASTOS envoyée par le
simulateur. Il est alors possible d’utiliser BASTOS depuis l’émulateur comme on
le ferait avec un module BASTOS-S depuis un Minitel.
Pour la syntaxe du langage (instructions, fonctions, commandes disque et réseau…), voir le Manuel du langage BASTOS.
1. Télécharger et lancer BASTOS
Téléchargement
Les archives sont publiées sur le serveur FTP du projet, dossier firmware :
- Linux :
ftp://anonymous:@abasty-retro.fr:2121/firmware/bastos-linux-amd64.tar.gz - Windows :
ftp://anonymous:@abasty-retro.fr:2121/firmware/bastos-windows-amd64.zip
Sous Windows, il est possible de coller directement cette adresse dans la barre
d’adresse de l’Explorateur de fichiers pour parcourir le dossier et
télécharger le .zip en cliquant dessus. Sous Linux comme sous Windows, en
ligne de commande :
curl -o bastos-linux-amd64.tar.gz "ftp://anonymous:@abasty-retro.fr:2121/firmware/bastos-linux-amd64.tar.gz"
curl -o bastos-windows-amd64.zip "ftp://anonymous:@abasty-retro.fr:2121/firmware/bastos-windows-amd64.zip"
Chaque archive contient :
- le binaire
bastos(l’interpréteur BASTOS pour PC), - un script de lancement (
bastos-back-linux.sh/bastos-back-windows.bat), - un dossier
diskavec quelques programmes d’exemple.
Lancer le serveur
Extraire l’archive, puis lancer le script correspondant à la plateforme :
Linux
tar xzf bastos-linux-amd64.tar.gz
cd bastos-linux-amd64 # ou le nom du dossier extrait
./bastos-back-linux.sh
Windows
Double-clic sur bastos-back-windows.bat, ou en ligne de commande :
bastos-back-windows.bat
Le script s’appuie sur websocat pour
exposer BASTOS sur une WebSocket. S’il n’est pas déjà installé sur la
machine, le script propose de le télécharger automatiquement (répondre o) —
il est alors placé à côté du script, aucune installation système n’est
nécessaire.
Une fois lancé, le script affiche :
BASTOS lancé sur ws://127.0.0.1:1967
Lien Minterm : https://abasty.github.io/minterm/?ws=ws%3A%2F%2F127.0.0.1%3A1967
Se connecter avec minterm
Le lien affiché ouvre directement minterm connecté au serveur BASTOS
local (le paramètre ?ws=... pré-remplit l’adresse de connexion).
- Sous Linux, un
Ctrl+clicsur le lien dans la plupart des terminaux (GNOME Terminal, Konsole…) l’ouvre directement dans le navigateur. - Sous Windows, le comportement dépend du terminal utilisé (à vérifier selon les versions de Windows Terminal / invite de commandes classique) — si le clic ne fonctionne pas, il suffit de sélectionner puis copier-coller l’URL dans le navigateur.
Laisser le script tourner dans son terminal : c’est lui qui fait le pont entre minterm et l’interpréteur BASTOS. Fermer le terminal coupe la connexion.
Explorer les exemples avec CAT
Une fois connecté, la commande CAT liste les fichiers du dossier disk :
CAT
Drive: A
autoload .db 394
bastos .bas 224
bastos .txt 2039
connect .bas 2924
craps .bas 581
fx .bas 272
meteor .bas 7792
pgcd .bas 147
sin .bas 271
snake .bas 3266
468K free
Quelques exemples à essayer avec RUN "nom.bas" :
craps.bas: jeu de déssnake.bas: le jeu du serpentsin.bas: tracé d’une sinusoïde en mode graphiquemeteor.bas: jeu d’arcadepgcd.bas: calcul de PGCD/PPCM (démonstrationINPUT)bastos.bas: Lancement de BASTOS
2. Éditer et créer ses propres programmes
Le dossier disk à côté du script (créé automatiquement au premier
lancement s’il n’existe pas) est le disque virtuel de BASTOS : tout fichier
qui s’y trouve est visible par CAT, chargeable par LOAD/RUN, et tout
programme sauvegardé depuis BASTOS (SAVE "nom.bas") y est écrit.
Cycle de développement :
- Éditer un fichier
.basdu dossierdiskavec un éditeur de texte (ou en créer un nouveau), - Sauvegarder,
-
Dans minterm, charger et lancer le programme :
RUN "nom.bas" - Répéter — pas besoin de relancer le serveur
bastosni minterm entre deux modifications, seul le fichier sur disque doit être à jour avant leRUN.
3. Éditer confortablement avec VSCode
Le dépôt fournit une extension VSCode pour BASTOS : coloration syntaxique, snippets, renumérotation des lignes, mise en forme automatique et renommage de variable.
Documentation et téléchargement de l’extension
Usage typique :
- Ouvrir le dossier
diskde l’archive téléchargée dans VSCode (`FichierOuvrir un dossier…`),
- Créer ou modifier un fichier
.bas— la coloration syntaxique s’active automatiquement, - Utiliser les snippets pour aller plus vite (taper
forpuisTabpour une boucleFOR...NEXT,if/ifelsepour un test,gosub/labelpour une sous-routine…), - Sauvegarder, puis dans minterm :
RUN "nom.bas".
Maj+Alt+F met en forme le fichier (mots-clés en majuscules, variables en
minuscules), et F2 sur une variable ou une étiquette la renomme partout
dans le fichier.
4. Transférer un programme vers un module BASTOS-S (FTP)
Une fois un programme au point sur PC, on peut le récupérer directement sur un
vrai module BASTOS-S (connecté en WiFi) avec FTP GET : le module se connecte
en FTP au PC et télécharge le fichier depuis le dossier disk.
Servir le dossier disk en FTP
Cette partie suppose un PC Linux comme serveur FTP (c’est ce qu’utilise le projet lui-même). Sous Windows, il faudra un autre serveur FTP — non couvert ici.
vsftpd est recommandé — il est
déjà utilisé pour le serveur FTP officiel du projet, et son comportement est
testé et compatible avec le client FTP de BASTOS. (Certains serveurs FTP
stricts, comme pyftpdlib, refusent l’ordre de commandes utilisé par
BASTOS — SIZE avant TYPE I — avec une erreur 550 SIZE not allowed in
ASCII mode ; vsftpd l’accepte sans problème.)
sudo apt install vsftpd
Créer un fichier de configuration vsftpd-dev.conf, en pointant anon_root
vers le dossier disk du projet (chemin absolu) :
listen=YES
listen_port=2121
anonymous_enable=YES
anon_root=/chemin/absolu/vers/disk
write_enable=NO
pasv_enable=YES
pasv_min_port=10090
pasv_max_port=10100
Lancer le serveur (nécessite les droits root pour écouter sur le réseau) :
sudo vsftpd vsftpd-dev.conf
Le dossier disk est alors accessible en lecture seule par n’importe quel
appareil du même réseau local — pratique pour un poste de dev, à éviter sur
un réseau partagé ou non maîtrisé.
Récupérer un programme depuis le module
Le module doit être sur le même réseau WiFi que le PC. Trouver l’adresse IP
locale du PC (hostname -I sous Linux, ipconfig sous Windows), par
exemple 192.168.1.42, puis depuis BASTOS (sur le module, ou dans
l’émulateur pour tester) :
FTP "pc", "ftp:192.168.1.42:2121"
FTP GET "nom.bas"
FTP STOP
FTP GET récupère le fichier sous le même nom dans le dossier disk local
du module (ou de l’émulateur). Il ne reste plus qu’à faire RUN "nom.bas".
Voir la section FTP du manuel
pour les autres commandes (FTP CAT, FTP PUT, connexions sauvegardées…).