Comme avant : programmer en Basic avec le C64
.
En coulisse

Comme avant : programmer en Basic avec le C64 .

David Lee
2/12/2022
Traduction: traduction automatique

J'ai toujours aimé programmer en Basic quand j'étais enfant. Avec une imitation de C64, je teste si c'est toujours le cas.

Le Commodore 64 : une légende de l'âge de pierre du PC, âgé de 40 ans. Il continue de fasciner aujourd'hui. Ce n'est pas seulement parce qu'il est lié à des souvenirs de jeunesse, mais aussi parce que le principe de cette machine est le même. Passer d'un PC moderne à cette vieille machine, c'est comme conduire un kart à l'époque de Tesla. Zéro confort. Un fonctionnement simple qui est immédiatement compréhensible. L'immédiateté avec laquelle les actions ont un impact. Tout cela ne sert à rien, mais c'est très amusant.

Si vous voulez faire revivre le C64, vous avez plusieurs possibilités. La plus simple est de l'utiliser directement dans votre navigateur web. Ou vous pouvez télécharger l'émulateur VICE, qui offre quelques fonctionnalités supplémentaires. J'ai fait un pas de plus et j'ai acheté le C64 Maxi. C'est en principe aussi un émulateur, mais dans un boîtier très proche de l'original. Un joystick est également fourni. Les puristes préfèrent certainement un vrai C64. Pour moi, cette réplique fait l'affaire et peut être facilement connectée à un écran via HDMI.

Je n'ai jamais eu de C64 moi-même et il n'occupe pas une place importante dans mes souvenirs. Pourtant, cet appareil suscite en moi une certaine nostalgie, car le C64 est programmé en Basic. C'est le langage de programmation que j'ai appris entre 11 et 13 ans sur une machine très étrange appelée Basictutor.

Je veux me replonger dans cette époque avec le C64 et programmer à nouveau en Basic. Je me demande ce que cela va donner et si la magie de l'époque va revenir. Si je suis aussi surmotivé qu'en 1988, lorsque j'ai programmé avec une naïveté enfantine et une mégalomanie adolescente un simulateur de vol sur une machine qui ne pouvait afficher que 15 caractères et pas de graphique.

Ça commence avant même que ça commence

En fait, ma motivation est presque trop forte au début : je ne peux pas attendre que le C64 Maxi soit livré. Au lieu de cela, je commence à programmer sur mon Mac. Et je ne le fais pas sur un émulateur de C64, ce qui aurait été plus intelligent, mais je prends le premier interpréteur Basic que je trouve avec Google. Il s'agit de BBC Basic.

Pour l'instant, la programmation est plus facile que sur un C64. En effet, avec BBC Basic, je dispose de quelques commodités d'un environnement de programmation moderne : débogage avec surveillance des variables ou renumérotation automatique des lignes. Le problème est que tous les Basic ne se ressemblent pas, il existe d'innombrables variantes de langage. Un programme qui fonctionne en BBC Basic ne fonctionne pas automatiquement sur C64.

Ma première idée est un programme qui propose à l'utilisateur des exercices de calcul mental. En BBC Basic, j'obtiens une première version fonctionnelle étonnamment rapidement.

Transfert sur C64 Maxi

Quelques jours plus tard, je reçois enfin le C64 Maxi. Comment puis-je transférer mon programme sur la machine ? L'un des avantages par rapport à un C64 original est que le C64 Maxi possède quatre ports USB. Je peux donc utiliser une clé USB pour charger et stocker des données.

Via USB-Stick gelangen Daten auf den C64 Maxi.
Via USB-Stick gelangen Daten auf den C64 Maxi.
Source : David Lee

Mais ce n'est pas aussi simple que cela en a l'air. En effet, le C64 Maxi ne peut pas écrire ou lire directement des fichiers sur la clé. Cela ne fonctionne qu'à l'intérieur d'un fichier image de disquette avec l'extension .d64. Or, je ne peux pas accéder au contenu de cette image depuis mon Mac
.
La solution : J'installe l'émulateur VICE. Celui-ci peut saisir du texte depuis le presse-papiers dans le terminal C64. Et il utilise également des images D64. Je copie donc le texte de BBC Basic, le colle dans l'émulateur et enregistre le programme dans l'image D64. Celui-ci atterrit sur la clé USB, où le C64 Maxi le lit. C'est un peu compliqué, mais bon, ça marche!

Par "ça marche", on entend uniquement le transfert de données. Le programme lui-même ne fonctionne pas. Ma motivation en prend un coup ; mais en même temps, je veux absolument résoudre ce casse-tête.

Adaptation au C64 et autres bricolages

Pour commencer, je dois tout convertir en minuscules, sinon la correspondance ASCII n'est pas correcte - les majuscules deviennent des symboles graphiques sur le C64. Le problème suivant est que le C64 ne connaît pas l'instruction ELSE. De manière déroutante, il n'affiche pas de message d'erreur, mais fait quelque chose - mais pas ce qu'il devrait faire.

Le troisième problème est que la génération de nombres aléatoires fonctionne différemment. La commande RND génère certes un nombre aléatoire dans les deux dialectes Basic. Mais sur C64, il s'agit d'un nombre compris entre 0 et 1, alors que sur BBC, c'est un entier avec une limite supérieure à la valeur indiquée entre parenthèses.

À cela s'ajoute une série d'autres optimisations. Le temps que je sois enfin satisfait de mon premier programme, il est passé à 139 lignes. Et donc déjà assez confus. En effet, Basic n'offre presque aucune possibilité de programmation structurée et a une tendance naturelle au code spaghetti.

Mais c'est justement parce que le programme est devenu assez long et sophistiqué que je suis fier du résultat. Tout comme il y a plus de 30 ans. Exécuter un programme fait maison est tout simplement très gratifiant. Je suis particulièrement fier du fait que le niveau de difficulté des calculs s'adapte automatiquement en fonction de votre capacité à les résoudre
.

Essayez

Vous pouvez télécharger ici l'image zippée , la décompresser et la glisser-déposer dans le champ de l'émulateuren ligne.

Le programme fonctionne ainsi :

  • Pour commencer, indiquez le nombre d'exercices de calcul que vous souhaitez résoudre.
  • Vous choisissez ensuite le type de calcul que vous souhaitez effectuer.
  • Si vous calculez souvent correctement, les tâches deviennent plus difficiles. Inversement, si vous vous trompez souvent, elles deviennent plus faciles.
  • Si vous avez toujours raison la plupart du temps au niveau le plus difficile, le "jeu" se termine plus tôt - vous n'avez pas besoin d'entraînement supplémentaire 🥳

Ce n'est que le début, je vais certainement concocter d'autres programmes. Pourquoi pas un simulateur de vol basé sur le texte?

Cet article plaît à 50 personne(s)


User Avatar
User Avatar

Mon intéret pour l'informatique et l'écriture m'a mené relativement tôt (2000) au journalisme technique. Comment utiliser la technologie sans se faire soi-même utiliser m'intéresse. Dans mon temps libre, j'aime faire de la musique où je compense mon talent moyen avec une passion immense. 


Ces articles pourraient aussi vous intéresser

Commentaire(s)

Avatar