Programmez en ZBASIC

Un BASIC des années 80s, multi-plateforme avec un compilateur intégré, vous me direz que c’est impossible. A l’époque chaque ordinateur avait son propre dialecte, son propre affichage graphique, et le BASIC est un langage interprété ! Mais en êtes-vous bien sûr ?

Eh bien si, cela existe, et s’appelle le ZBASIC. Fruit du travail de  Andrew Gariepy, Scott Terry, David Overton, Greg Branche, et Halbert Laing, il a été publié au milieu des années 80 et présente les caractéristiques suivantes :

  • Multi-plateforme :  MS-DOS, Apple II, Macintosh, CP/M, and TRS-80
  • Compilé : un compilateur est intégré dans l’environnement de développement et les programmes sont systématiquement compilés avant exécution.
  • Instructions graphiques indépendantes de la plateforme.

Un programme écrit en ZBASIC est donc portable sur différentes machines, y compris pour la partie graphique (au limitations inhérentes aux machines prêt).

ZBASIC est accompagné d’une documentation très bien faite, que je joins à cet article.

Vous trouverez très facilement le logiciel sur Internet (en saisissant par exemple « ZBASIC Apple II » dans Google).

Installation et premier programme sur Apple II

Toutes les ressources nécessaires à la programmation en environnement Apple II sont disponibles sur ftp.apple.azimov.net, à cet endroit (documentation et logiciel). La version la plus récente disponible est la 4.21, avec deux déclinaisons suivant la mémoire disponible de la machine : 128K (zbasic1.dsk) pour Apple //c ou 64K (zbazic2.dsk) pour Apple //e. On trouve également le manuel de référence cité ci-dessus, ainsi le « Apple PRODOS Appendix » qui est indispensable car il décrit les spécificités du ZBASIC pour cet environnement.

Vous pouvez utiliser un Apple //e ou //c avec deux lecteurs de disquettes ou un émulateur (j’ai rédigé cet article avec AppleWin). En introduisant la disquette zbasic dans le lecteur 1, on obtient l’intro suivante :

Le menu de configuration apparait ensuite :

L’option (C)onfigure permet de modifier les paramètres du BASIC (se reporter au manuel). L’option (E)dit permet d’accéder à l’éditeur de programmes.

Une fois dans l’éditeur, il suffit de saisir un programme puis de le lancer avec la commande RUN. Le programme est alors compilé puis exécuté. Voici un exemple simple de type « Hello Word » :

Quelques commandes utiles

Voici quelques commandes utiles pour manipuler, sauvegarder ou compiler vos programmes.

ONLINE              Affiche les lecteurs disponibles
DIR ou CAT          Liste les fichiers présents sur le disque sélectionné.
DIR /ZB             Liste le contenu du disque de préfix /ZB
SAVE /ZB/MF.BAS     Sauvegarde le programme dans le fichier MF.BAS sur le disque /ZB
LOAD /ZB/MF.BAS     Charge le programme MF.BAS
RUN /ZB/MF.BAS      Compile et exécute MF.BAS
KILL /ZB/MF.BAS     Efface du disque le fichier MF.BAS (définitif !)
La maison du fou en ZBASIC

Le jeu d’aventure « La maison du fou » du magasine Micro 7 est très facilement portable en ZBASIC, ayant été publié en Microsoft BASIC. Le listing est téléchargeable ici :

Pour pouvoir l’exécuter en ZBASIC, il est préférable de créer une disquette de boot, la déclinaison 128 Ko étant ici nécessaire (le programme ne compile par en 64 Ko faute de mémoire). Voici une image de la disquette de boot faite à partir de zbasic1.dsk, les fichiers inutiles ayant été effacés afin de libérer de la place (archive tar à extraire avec un utilitaire comme 7zip ou tar xvf sous Linux)

Après avoir booté sur la disquette, entrer dans l’éditeur ZBASIC puis faire un copier/coller du programme (Shit+Insert pour coller). Le programme peut ensuite être sauvegardé sur la disquette :

SAVE MAISONFOU.BAS

Puis taper RUN pour compiler et exécuter le jeu. Amusez-vous bien !

La maison du fou version ZBASIC sous Apple //c

Nota 1: Si la disquette de Boot est pleine, vous pouvez sauvegarder votre programme sur le lecteur 2, à condition d’y avoir introduit une disquette formatée PRODOS.

Nota 2 : En ZBASIC, vous pouvez afficher du texte en vidéo inverse, en utilisant les caractères spéciaux suivants :

PRINT CHR$(15) : REM passage en vidéo inverse
PRINT CHR$(14) : REM retour à l'affichage normal

Laisser un commentaire

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