Après avoir publié deux pages sur les émulateurs Atari 8bits, dont une sur la mise en œuvre d’Altirra, j’ai redécouvert la programmation en Atari BASIC, en portant mon jeu d’aventure de référence La maison du fou. J’ai ainsi pu redécouvrir quelques spécificités intéressantes de ce BASIC un peu particulier.

Le listing
Voici le listing du programme adapté au BASIC de l’ATARI 800XL :
Pour charger ce programme dans Altirra, téléchargez le fichier, déplacez le dans le répertoire partagé avec l’émulateur (voir le tuto pour plus d’explications), et renommez le en mfou.bas
. Enfin, depuis Altirra, saisir les commandes :
NEW ENTER "H6:MFOU.BAS"
Spécificités du programme
GOTO
etGOSUB
: le numéro de ligne peut être contenu dans une variable. Il est ainsi possible d’écrireGOSUB SUBENTER
, à condition d’avoir initialisé la variableSUBENTER
avec le bon numéro de ligne. Les appels aux sous-routines sont donc plus lisibles !
- Chaînes de caractères : les chaînes doivent être dimensionnées avec le nombre de caractères maximum. Ainsi, l’instruction
DIM A$(12)
ne déclare pas un tableau de 12 chaînes de caractères mais une seule variable de type chaîne d’une taille de 12 caractères. C’est très différent du BASIC Microsoft.
Pour effacer l’écran, point d’instruction CLS
ou HOME
. Il faut utiliser le caractère spécial CHR$(125)
:
PRINT CHR$(125) : REM EFFACE L'ECRAN
- Le traitement des erreurs se fait avec la commande
TRAP
suivie de la ligne à exécuter en cas d’erreur détectée. J’utiliseTRAP
pour gérer une erreur de conversion d’une chaine de caractèreI$
en une variable numériqueI
grâce à la commandeVAL
(I
correspond au choix du joueur parmi les options proposées). Le numéro de l’erreur est récupéré parPEEK(195)
tandis que la ligne à laquelle l’erreur s’est produite est récupérée parPEEK(187)*256+ PEEK(186)
.
- Pour commencer à afficher du texte à la colonne 0, utilisez la commande
POKE 82,0
- Les temporisations sont gérées grâce au compteur situé à l’adresse mémoire 20.
POKE 20,0
permet de remettre à zéro le compteur, etPEEK(20)
renvoie la valeur courante.
- Pour vérifier qu’une touche a été pressée, vous pouvez utiliser l’adresse
764
(voir sous-routine ligne2100
)
- Instructions graphiques : Les possibilités graphiques de l’ATARI 800XL étaient impressionnantes pour l’époque, grâce au processeur graphique ANTIC. J’aborde à peine le sujet dans cet article. Voici une explication des quelques commandes utilisées :
GRAPHICS
permet de sélectionner le mode graphique. Le mode0
est un mode texte, le mode1
est « semi-graphique » car il permet d’afficher le texte en gros caractères en différentes couleurs. J’utilise le mode1
pour la page d’introduction (lignes6000
à6120
).SETCOLOR
permet de sélectionner les palettes de couleur. En mode graphique0
,SETCOLOR 2,X,0
permet de choisir la couleur de fond d’écran définie parX
, compris entre0 et 15
. Dans cette version de la maison du fou, le fond d’écran change en fonction de l’étage où se trouve le jouer.

Il y a beaucoup d’autres choses à dire sur l’Atari BASIC, notamment sur les possibilités graphiques. Mais ceci fera l’objet d’un autre article, bien plus détaillé…
En attendant, bon courage pour sortir de la maison du fou !