Le « Fun Program » des cassettes Emitape

Aujourd’hui, un programme qui n’est pas sur un vinyle ni réellement sur un cassette, mais plutôt sur la jaquette d’une cassette. En effet, les cassettes « pour ordinateurs » Emitape cachaient deux petits programmes en BASIC.

Au lieu de vous mettre tous les articles précédents à chaque fois, je vous renvoie vers la page dédiée, elle explique ce que je fais avec les vinyles et liste toutes les pages qui contiennent les programmes, les explications, etc.

 

J’ai vu ça il y a environ un an chez 8-Bit Show And Tell et il m’a fallu un moment pour trouver les cassettes. Au début des années 80, les fabricants de cassettes audio vendaient des version « pour ordinateurs », qui avaient essentiellement un avantage : elles étaient courtes. On n’avait pas nécessairement besoin de cassettes de 60 ou nonante minutes pour enregistrer des programmes, et donc ils vendaient des cassettes de 20 ou même 15 minutes (comme ici). On gagnait probablement sur le prix (moins de bande) mais aussi en théorie sur la qualité, avec des bandes peut-être plus épaisses ou de meilleure qualité (je ne sais pas si c’est vrai).

Une cassette de 15 minutes (moins de 8 minutes par face)


Le code dans l’intérieur du rabat (la cassette a bien vécu)

Et donc dans le rabat intérieur des cassettes C15 et C20 (j’ai des C15), il y avait deux petits programmes en BASIC, annoncés comme « Fun Program ». Le premier visait le Commodore VIC-20, le second le Sinclair ZX81. Dans les deux cas, il ne s’agit que de quelques lignes de BASIC. 8-Bit Show And Tell avait montré les programmes en direct sur de vrais ordinateurs, j’ai juste tenté de les mettre dans des émulateurs. Ils sont « cachés » et peu documentés, par ailleurs : l’intérieur du rabat n’est pas forcément visible et le texte est assez petit, donc j’ai numérisé le tout à 600 ppp pour pouvoir agrandir.


Le code (en bas)

Le programme VIC-20

Le code VIC-20

J’ai fait le programme VIC-20 (un ordinateur sorti par Commodore avant le Commodore 64) après le ZX81, mais c’est plus simple d’en parler avant. Premier écueil : l’émuler. Power20, un émulateur pour Mac OS X est trop vieux pour un Mac moderne (les icônes Aqua donnent le ton) mais Vice permet d’émuler le VIC-20.

Le VIC-20 dans Vice

Deuxième écueil, comment lancer du code BASIC ? J’ai trouvé assez rapidement : CBM prg Studio. C’est un éditeur de code pour les programmes Commodore et il prend en charge le VIC-20. Je vous passe les quelques essais pour comprendre comment il fonctionne, et c’est uniquement sous Windows.

L’adaptation du code a posé deux problèmes. Le premier, c’est la façon de taper le ♥ inversé, qui sert à effacer l’écran. J’ai eu un peu de mal, mais j’ai trouvé : il faut taper {clear} dans le code (je l’ai vu avec le clavier virtuel, Tools -> Screen Code Builder). Ensuite, quand j’ai lancé le programme compilé, j’avais des caractères bizarres au lieu de mon texte. Mais c’est lié au fonctionnement du VIC-20 : il n’y a pas de gestion de la casse. Donc du code BASIC tapé en MAJUSCULES dans l’éditeur donne un résultat bizarre lié au PETSCII (je crois). J’ai donc passé mon texte en minuscule, et il s’affiche en bien en majuscules sur le VIC-20 émulé.

Le code dans l’éditeur

Enfin, toujours avec le même programme, j’ai compilé mon code pour sortir un .prg, qui fonctionne dans Vice.

Le programme


Comme pour le ZX81 (plus bas), c’est une sorte d’ardoise magique : on presse Enter et on peut déplacer le curseur (ici avec des flèches) pour dessiner des choses. Vu le nombre de lignes, c’est évidemment basique (vous l’avez ?) : on peut repasser sur une ligne, par exemple.

Le programme ZX81

Le code ZX81

Pour le ZX81, je ne me suis pas cassé réellement la tête : j’ai copié/collé le code grâce à la reconnaissance de caractères intégrée à macOS. Une fois dans un fichier texte, j’ai effectué quelques menues corrections (ce n’est jamais parfait) et sauvé le tout. Pour le lancer dans un émulateur, je suis passé par ZXText2P : un petit programme en C à compiler (cc zxtext2p.c). Il y a quelques warning, mais ça compile directement sous macOS.

Ensuite, avec les numéros de lignes, j’ai tapé la ligne suivante pour générer le code.

zxtext2p -s 100 -i 5 -o monjeux.p moncode.txt

J’ai utilisé l’émulateur ZSXP, lancé le programme… et corrigé du code. Visiblement, le copier/coller avait mis de mauvaises parenthèses. Une fois le code corrigé, il s’est lancé avec la commande R (pour RUN). je vous mets une petite vidéo du « Fun program ». Le programme est un peu bizarre sur les flèches : il utilise 5, 6, 7 et 8. En fait, le clavier du ZX81 n’a pas de touches fléchées, mais du coup l’orientation est surprenante : 5 pour la gauche, 6 pour le bas, 7 pour le haut et 8 pour la droite. J’aurais pu modifier le code pour profiter du pavé numérique, d’ailleurs.

Pour le reste, c’est une sorte d’ardoise magique basique, qui permet de déplacer une barre noire à l’écran. Ce n’est pas spécialement fun (surtout vu les touches) mais c’est fonctionnel et ça peut faire apprécier le BASIC.

Le résultat en action

C’était évidemment moins surprenant qu’un programme caché dans une piste cachée sur un vinyle, mais je trouve ça tout de même intéressant de voir que des fabricants de cassettes audio cachaient de petites choses comme ça.