Programmez en BBC BASIC sur un ordinateur moderne

Je vais vous présenter aujourd’hui un dialecte BASIC qui présente plusieurs caractéristiques intéressantes ; le BBC BASIC.

La caractéristique la plus étonnante est sa longévité. La première version de BBC BASIC date de 1981. Elle était installée sur l’ordinateur personnel BBC Micro, peu connu en France mais qui a eu un certain succès en Angleterre.

BBC Micro livré avec son BBC Basic

Le langage a évolué depuis, mais il est toujours possible de programmer en BBC BASIC sur un ordinateur moderne, que ce soit un PC sous Windows ou sous Linux, un Mac, ou avec un Raspberry Pi. Nous verrons un exemple de programme plus loin dans cet article.

Les autres caractéristiques intéressantes du BBC BASIC sont :

  • Sa rapidité d’exécution, ce qui était important dans les années 80s compte-tenu de la faible puissance des machines. Ceci est moins critique aujourd’hui, du moins pour les applications courantes.
  • Un langage évolué, avec un jeu d’instructions riche et notamment la possibilité de définir de vraies procédures.
  • Le nombre de plateformes pour lesquelles le BBC a été porté !

Nous allons voir dans cet article comment programmer en BBC BASIC en mode texte, sous Windows.

BBC BASIC Console mode Edition

Il existe de nombreuses versions (ou implémentations) de BBC BASIC, sur de nombreuses plateformes, certaines supportant les modes graphiques et le son, d’autres étant uniquement en mode texte. Vous les trouverez disponibles en téléchargement sur le site officiel de BBC BASIC.

Nous allons nous intéresser à l’édition en mode console qui ne supporte pas les modes graphiques ni le son mais qui permet de faire des programmes en mode texte en couleurs.

Installation de BBC BASIC Console Mode editions

Vous pouvez télécharger BBC BASIC Console Mode editions ici. Il n’y a pas d’installateur, pour devez dézipper l’archive bbcbasic_console_win64.zip dans un répertoire de votre choix.

Il suffit ensuite de lancer l’exécutable bbcbasic.exe, la fenêtre suivante apparaît :

Vous pouvez maintenant commencer à programmer. dans la console !

Premiers pas

Attention, BBC BASIC n’accepte que les instructions et commandes saisies en majuscules, sinon il vous affichera le message d’erreur Mistake pas très explicite.

Une fois votre programme saisi, vous pouvez l’exécuter en saisissant la commande archi-classique RUN. Pour interrompre un programme en cours d’exécution, appuyez sur la touche ‘Escape‘ du clavier.

Voici quelques commandes d’ordre « système » qui vous seront utiles. Les commandes systèmes commencent par le caractère * qu’il faut impérativement saisir.

*CHDIRChange le répertoire courant
*DELETEEfface un fichier du disque
*DIRAffiche les fichiers présents dans le répertoire en cours. Sans argument, affiche uniquement les fichiers dont le suffixe est bbc. Pour afficher tous les fichiers présents, utilisez *DIR *.*
*MKDIRCrée un répertoire
*RMDIREfface un répertoire du disque
*RENAMERenomme un fichier

Pour sauvegarder un programme sur le disque ou en charger un depuis le disque, utilisez les commandes SAVE et LOAD. Il n’est pas nécessaire d’entourer le nom du fichier d’apostrophes. Lorsque vous utilisez la commande SAVE, si vous ne précisez pas de suffixe pour le nom du fichier, BBC BASIC ajoutera automatiquement le suffixe.bbc qui identifie les programmes en BBC BASIC.

Le manuel en ligne détaille toutes les instructions et fonctions du BBC BASIC. Il est très clair.

Un jeu d’aventure en BBC BASIC

Pour montrer quelques caractéristiques du BASIC pour BBC, j’ai porté le jeu Amityville qui d’origine a été développé en BASIC Applesoft.

Voici le code adapté au BBC BASIC.

J’ai effectué des changements assez mineurs en utilisant les commandes suivantes de BBC BASIC :

MODE
Choix du mode d'affichage. MODE 3 sélectionne l'affichage texte en 80 colonnes et 25 lignes.
CLS
Efface l'écran, tout comme en BASIC Microsoft. Équivaut à HOME en BASIC Applesoft.
TAB(X,Y) 
Combiné avec la commande PRINT, position le curseur à la colonne X et la ligne Y. La numérotation des lignes et colonnes commence à 0. 
Equivaut à HTAB X:VTAB Y du BASIC Applesoft
POS
Fonction qui renvoie numéro de colonne du curseur.
PRINT TAB(POS,Y) modifie unique la ligne du curseur, dans modifier la colonne, ce qui équivaut à VTAB Y en BASIC Applesoft.
COLOUR N
Définit la couleur du texte et la couleur de fond. 
Si N est inférieur ou égal à 128, la couleur du texte sera modifiée.
Si N est supérieur ou égal à 129, ce sera la couleur de fond. 
Les couleurs possibles dépendent du mode d'affichage défini par la commande MODE
GET$
Attente bloquante d'un caractère saisi au clavier, et renvoie le caractère saisi sous la forme d'une chaine. A$=GET$ équivaut à GET A$ en BASIC Applesoft.
INKEY$(N)
Attente non bloquante de la saisie d'un caractère au clavier. Si un caractère a été saisi, le renvoie sous la forme d'une chaîne.
DEF PROC
Permet de définir un procédure, et donc de faire de la programmation structurée (!)
J'ai crée les procédures PROC_NORMAL et PROC_INVERSE qui reproduisent les instructions NORMAL du BASIC Applesoft.
A noter que le nom d'un procédure commence obligatoirement par PROC en majuscule.
WAIT N
Met le programme en pause pendant N centisecondes.
Remplace les boucles FOR...NEXT qui sont là uniquement pour faire une tempo.

Voici les autres modifications effectuées pour ce portage :

  • Reprise et simplification de l’introduction que je trouve particulièrement énervante en version Apple II.
  • Suppression du son, car non supporté par la version console de BBC BASIC.
  • Initialisation à 0 des variables qui sont utilisées dans des conditions de test (dans les if) car BBC BASIC n’initialise pas automatiquement les variables à 0.
Pour aller plus loin

Vous avez les bases maintenant pour programmer en BBC BASIC, et je vous souhaite beaucoup de plaisir à le faire. Vous verrez que le langage est très complet.

Il existe également des implémentations graphiques (disponibles sur le site officiel) que je n’ai pas testées.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *