Avez-vous jamais rêvé de vous plonger dans la programmation d’un ordinateur d’époque? Si l’idée vous séduit, sachez qu’avec le langage BASIC et une simulation de l’emblématique Apple II directement dans votre navigateur, c’est un jeu d’enfant! Vous aurez ainsi un aperçu saisissant de ce que représentait la programmation à la fin des années 70 et au début des années 80.
Bien entendu, si vous possédez un authentique Apple II, vous pouvez tout à fait suivre cette démonstration sur votre propre machine. Sinon, nous utiliserons un émulateur Apple II, particulièrement pratique, nommé Pomme ][js, développé par Will Scullin. Nous allons ensemble explorer les fondements de BASIC et exécuter deux programmes simples.
Pourquoi l’Apple II a-t-il été si marquant ?
Lancé en 1977, l’Apple II s’est imposé comme un représentant de ces petits ordinateurs abordables, rendus possibles grâce à la technologie des microprocesseurs. Ces ordinateurs personnels ont permis à chacun de posséder et d’utiliser sa propre machine avec une relative simplicité. Avant cela, les ordinateurs étaient onéreux et réservés aux grandes organisations.
L’Apple II s’est distingué par son coût modéré et ses graphismes en couleur. Il était également doté de sept ports d’extension internes, compatibles avec le système de disquettes le moins cher de l’époque, le Disk II. Le talent de Steve Wozniak, co-fondateur d’Apple, en matière de conception de circuits, a permis d’intégrer toutes ces fonctionnalités dans un petit ordinateur de bureau, le tout enveloppé d’un boîtier en plastique léger.
L’Apple II a représenté un succès retentissant pour Apple. Pendant ses seize années d’existence (il a été abandonné en 1993), la plateforme Apple II a connu sept versions du design original de Wozniak. Un ordinateur Apple II typique était équipé de 48 ou 64 Ko de RAM et d’un CPU 6502 cadencé à 1,022 MHz. Chaque modèle pouvait être programmé en BASIC.
Les rudiments de BASIC
De la fin des années 1970 au début des années 1980, la plupart des ordinateurs personnels étaient livrés avec un langage de programmation appelé BASIC, acronyme de Beginners’ All-purpose Symbolic Instruction Code (Code d’instructions symboliques polyvalent pour débutants). BASIC a vu le jour en 1964 sur le Dartmouth College Time Sharing System. Il est rapidement devenu un outil pédagogique populaire en informatique en raison de sa simplicité d’utilisation.
L’Apple II était vendu avec deux versions majeures de BASIC : l’Integer BASIC de Wozniak et Applesoft. Microsoft a créé Applesoft bien avant de devenir célèbre pour Windows.
Pour cet article, nous utiliserons Applesoft BASIC.
Quelques astuces syntaxiques
Chaque programme BASIC sur l’Apple II est constitué de lignes de code. Chaque ligne possède un numéro, et lorsqu’un programme est lancé (via la commande RUN), l’ordinateur exécute chaque ligne dans l’ordre numérique croissant. Chaque ligne est enregistrée dans la mémoire de l’ordinateur en appuyant sur la touche Retour.
Ces trois commandes BASIC fondamentales vous seront toujours utiles :
À tout moment pendant la programmation, vous pouvez afficher le contenu de votre programme en tapant la commande LIST. Pour démarrer un nouveau programme (en effaçant le programme actuel de la mémoire), tapez NEW. Pour effacer l’écran, tapez HOME.
Si vous commettez une erreur lors de la saisie du programme, l’Apple II affichera un message « SYNTAX ERROR » lors de l’exécution du programme, en indiquant le numéro de ligne où l’erreur s’est produite. Il vous suffit de ressaisir la ligne fautive en vérifiant attentivement les éventuelles fautes de frappe.
Prêt ? Alors, commençons.
Votre premier programme
Pour commencer, nous allons écrire un programme très simple qui compte indéfiniment. C’est un moyen rapide de vérifier si BASIC fonctionne correctement sur n’importe quel système.
Si vous avez un vrai Apple II, allumez-le. Assurez-vous d’utiliser une machine avec Applesoft en ROM, telle que l’Apple II Plus ou un modèle ultérieur, ou un Apple II d’origine avec la carte langage appropriée.
Si vous suivez sans véritable Apple II, ouvrez une nouvelle fenêtre de navigateur avec l’ émulateur Apple ][js. Apple ][js utilise JavaScript pour simuler les circuits d’un vrai Apple II dans un logiciel. En gros, vous exécuterez tout un système Apple II dans un navigateur web (il fonctionne mieux avec Google Chrome).
Lorsque vous chargez l’émulateur pour la première fois (ou que vous démarrez un Apple II sans lecteur de disquette), vous voyez un écran comme celui présenté ci-dessous.
Appuyez ou cliquez sur « Reset ».
Vous entendez un bip, puis vous voyez un « ] » avec un curseur clignotant.
À l’invite, tapez ce qui suit et appuyez sur Entrée (ou Retour) à la fin de chaque ligne :
10 X=X+1
20 PRINT X
30 GOTO 10
Si vous faites une erreur, utilisez simplement la touche flèche gauche de votre clavier pour déplacer le curseur vers l’arrière et effectuer des corrections. Les nouveaux caractères que vous tapez écraseront les anciens. Vous pouvez également ressaisir la ligne entière.
Chaque fois que vous tapez une ligne de code avec un certain numéro de ligne, BASIC remplace tout ce qui était précédemment stocké sur ce numéro de ligne par la nouvelle entrée.
Lorsque vous utilisez BASIC sur un système ancien, comme l’Apple II, il est courant de numéroter les lignes par multiples de 10. Cela vous donne la possibilité d’ajouter de nouvelles lignes de code entre elles ultérieurement si nécessaire.
Ensuite, tapez LIST, puis appuyez sur Entrée (ou Retour) pour voir une liste de votre programme.
Si vous vous retrouvez accidentellement avec des lignes dont vous n’avez pas besoin (par exemple, si vous avez tapé 32 au lieu de 30), tapez simplement le numéro de ligne et appuyez sur Entrée (ou Retour) pour le supprimer.
Si tout semble correct, il est temps d’exécuter votre programme. Tapez RUN à l’invite « ] », puis appuyez sur Entrée (Retour).
Le programme compte à la hausse de un indéfiniment, et affiche chaque numéro sur une nouvelle ligne en bas de l’écran.
Pour arrêter le programme, appuyez sur Ctrl + C. Cela interrompra le programme, arrêtant son exécution.
Alors, comment fonctionne ce programme ? Décomposons-le ligne par ligne :
10 X=X+1
20 PRINT X
30 GOTO 10
Ligne 10 : Ici, nous indiquons au programme qu’une variable nommée « X » est égale à elle-même plus un. Au début du programme, « X » est égal à zéro. Ainsi, lors de sa première itération, le programme ajoute un à zéro, ce qui donne un.
Ligne 20 : Le programme utilise la commande PRINT pour afficher le contenu de la variable « X » à l’écran.
Ligne 30 : Nous utilisons la commande GOTO pour renvoyer le programme à la ligne 10 en boucle. La valeur de la variable « X » (maintenant incrémentée de un) est renvoyée à la ligne 10. Le programme répète alors ce processus indéfiniment, en comptant vers le haut de un, puis en imprimant le résultat à chaque boucle.
Un programme d’entrée simple
Maintenant que vous vous êtes familiarisé avec la saisie, l’affichage, l’exécution et l’interruption d’un programme, intéressons-nous à un programme qui exploite une donnée que vous lui fournissez.
Tout d’abord, tapez NEW et appuyez sur Entrée (Retour). Cela efface notre dernier programme de la mémoire, nous pouvons donc repartir de zéro.
Tapez la ligne suivante par ligne, puis appuyez sur Entrée (Retour) à la fin de chaque :
10 PRINT "WHAT IS YOUR NAME?"
20 INPUT N$
30 PRINT "HELLO, ";N$
Lorsque vous avez terminé, affichez le programme avec la commande LIST pour vous assurer que vous l’avez saisi correctement.
Ensuite, tapez RUN et appuyez sur Entrée (Retour) pour l’exécuter. Le programme vous demandera une saisie avec un point d’interrogation (?). Tapez votre nom et appuyez sur Entrée (Retour) pour répondre à la question.
Comme une sorte de magie noire ancestrale, le programme connaissait votre nom et vous a répondu ! Comment cela fonctionne-t-il ? Analysons chaque ligne :
10 PRINT "WHAT IS YOUR NAME?"
20 INPUT N$
30 PRINT "HELLO, ";N$
Ligne 10 : Le programme a affiché une ligne de texte à l’écran. Chaque ligne de texte que vous souhaitez afficher avec PRINT doit être placée entre guillemets.
Ligne 20 : Le programme attend une entrée avec la commande INPUT et stocke le résultat dans une variable nommée N$. Le signe dollar est l’abréviation de « chaîne de caractères ». Toute variable contenant des lettres doit être de type chaîne.
Ligne 30 : Le programme a affiché « Hello, » suivi d’une virgule et d’un espace, puis a imprimé le contenu de la variable N$. Le point-virgule indique au programme d’afficher N$ sur la même ligne sans insérer de saut de ligne.
Gratter la surface
Maintenant que vous avez goûté au BASIC sur l’Apple II, vous pouvez annoncer à tous vos amis que vous avez programmé un ordinateur vintage ! En fait, vous pouvez même le dire à Steve Wozniak sur Twitter.
Si vous souhaitez approfondir vos connaissances d’Applesoft BASIC, nous vous recommandons ce formidable tutoriel en ligne proposé par Yuri Yakimenko. Il est beaucoup plus détaillé que ce que nous avons vu ici. Vous pouvez également consulter cette référence rapide des commandes Applesoft BASIC.
Une analyse complète du manuel de programmation BASIC pour Apple II de 1978 est également disponible. Il explique en détail comment enregistrer et charger vos programmes.
Des milliers de jeux et d’applications exceptionnels ont été programmés en Applesoft au cours des 42 dernières années, la seule limite étant votre imagination. (En réalité, la limite est la quantité de RAM de votre machine, mais c’est beaucoup moins poétique.)
À tous les vétérans d’Apple II, nous serions ravis de lire vos souvenirs d’utilisation de BASIC dans les commentaires. Bonne programmation !