Acte 1 - L'Apple IIe

Le projet de développer une version pour l'Apple IIgs du jeu Flashback est né après avoir terminé, fin 2020, l'écriture du jeu 2048 sur Apple IIe. Cette première expérience m'avait permis de reprendre pied (40 ans après ou presque) avec le monde de l'Apple II des années 80 et ces merveilleuses machines.

Merveilleuses parce que "simple" et si complexe à la fois. Simple comme un Apple II des années 80 pouvait l'être. On glissait une disquette 5.25" de 143Ko dans un lecteur, quelques instants de patience, des bruits reconnaissables entre tous, le programme se lancait alors et nous débouchions sur un écran presque vide, au sommet duquel trônait la mention Apple ][ et plus bas, la célèbre invite DOS ] suivi du curseur clignotant du système d'exploitation d'Apple attendant une commande.

Complexe car derrière les commandes (INIT, CATALOG, RUN...) du DOS 3.3 (système d'exploitation le plus utilisé de la gamme Apple II), derrière le Basic Applesoft, se cachait un bon génie tout puissant que l'on pouvait réveiller par un call -151 depuis l'invite ]... pour entrer alors dans le monde du Monitor symbolisé par une * et de l'assembleur ou le 6502 (processeur 8 bits de la machine) règne en maître. Pour saisir alors, les instructions d'un programme en langage machine en utilisant le mini-assembleur fourni en ROM et accessible via la touche !
                            APPLE ][
      ] CALL-151
      *F666G appel du mini assembler, le prompt devient !
      !C010:LDA 23ED assemble une instruction 6502 en code machine
    
C'était le niveau le plus bas, le langage originel de la machine. Celui ou tout est possible, ou l'on peut tout commander : graphismes hautes résolutions, saisie clavier, écriture et lecture des disquettes... toutes les ressources matérielles de l'Apple IIe étaient à portée de mains. Pour qui maitrisait, au prix d'une connaissance parfaite du fonctionnement de la bête et du langage assembleur les arcanes mystérieuses et très alambiquées de la machine. Des centaines d'heures de passion, de travail, d'essais, d'erreurs... Avant d'arriver à faire un projet fonctionnel.

Initier à cette époque un gros projet nécessitait l'usage d'un logiciel appelé macro-assembleur. Typiquement c'est un éditeur de texte qui permettait la saisie des mnémoniques 6502 et leur transformation en langage machine executable. C'était un temps considérable de gagné et une puissance et simplicité d'usage grandement améliorée par rapport au mini-assembleur natif de l'Apple IIe. Les plus connus étaient : Lisa, Big Mac, Merlin, S-C Macro Assembler...

Tous permettaient de charger un fichier source comprenant les instructions du programme, de le modifier, de lancer l'assemblage qui génèrait un fichier dit objet, s'executant ensuite par la commande BRUN, ainsi l'exemple ci-après.

      Programme DEMO 1 sur Merlin-Pro 2.43
      1 ********************************
      2 *           DEMO #1            *
      3 ********************************
      4 *
      5        ORG     $8000
      6 BELL   EQU     $FBDD
      7 START  JSR     BELL
      8 END    RTS
      9 \
      puis commande d'assemblage du code source
      :ASM
      Update source (Y/N)?
      Assembling
      Table des symboles : ordre alphabétique et numérique
      Sauvegarde fichier source DEMO1.S
      Sauvegarde fichier Code Objet DEMO1
      Lancement programme DEMO1 par BRUN DEMO1
    

Voilà ce qu'était le cycle de développement standard d'un programme sur Apple II dans les années 80. Pas de disque dur à l'époque (hors de prix), deux lecteurs de disquettes 5.25" de 143Ko, que l'on rendait double face en perçant un côté avec une pince à tiercé.

Sur le disque 1 le Macro-Assembleur, sur le 2 le disque du programme... Et il fallait être patient. Très patient. La moindre erreur un peu lourde plantait le système tout entier. Le DOS 3.3 n'est pas Windows, il n'était pas multi-tâche. Un programme et un programme seulement pouvait fonctionner en mémoire. Celle-ci était très limités (32Ko à 128Ko car très chère) et quand un programme "plantait" on était bon pour un reboot système complet. D'ou les réflexes de sauvegarde des vieux programmeurs (le bon vieux CTRL+S pavlovien comme seule bouée de sauvetage).

Mais le principal éceuil, en tout cas pour moi, était l'isolement technique. Pas d'Internet bien sûr. Très peu, voir aucune publication technique française, pas d'accès aux magazines US (j'ignorais même qu'il en existait), pas de clubs d'utilisateurs dans ma région (les Apple II avaient déjà un positionnement tarifaire très haut de gamme) bref les seules sources d'informations techniques fiables et complètes étaient les manuels de référence d'Apple. Pas donnés non plus mais montrant toutes les entrailles de la bête, de A à Z.

C'est ainsi que j'initiais avec un copain, en 1983, le projet d'un jeu vidéo nommé Time Quest, posant un héros franchissant des portes temporelles pour de nouvelles aventures. Nous travaillâmes plusieurs mois sur ce projet, hélas jamais terminé. Je comprends bien aujourd'hui pourquoi tant il nous manquait de connaissances techniques.

Mais l'avenir réserve parfois de belles surprises aux amoureux, parfois transi de ces merveilleuses machines.