Artisan Numérique

/vintage/basic/matos/commodore/ Commodore, Microsoft, et le BASIC...

Je sais, l'histoire qui suit est connue comme le loup blanc, ou peut-être seulement des loups qui commencent à avoir des cheveux blancs... Toujours est-il que je suis tombé ce matin sur un projet qui m'a rappeler de bon souvenirs, j'ai nommé VICE, le simulateur de ses attendrissante bestioles 8 bits aux doux noms de VIC, PET, C64 et C128, toute une époque. Et tout cela m'a donné envie de (re)tester une vielle légende.

Je sais, l'histoire qui suit est connue comme le loup blanc, ou peut-être seulement des loups qui commencent à avoir des cheveux blancs... Toujours est-il que je suis tombé ce matin sur un projet qui m'a rappeler de bon souvenirs, j'ai nommé VICE, le simulateur de ses attendrissante bestioles 8 bits aux doux noms de VIC, PET, C64 et C128, toute une époque. Et tout cela m'a donné envie de (re)tester une vielle légende.

Bilou, le BASIC et l'ALTAIR

Aux âges primaires de la micro-informatique, petit Bilou, qui deviendra grand un peu plus tard, était comme chacun le sait un développeur de garage, co-auteur avec Paul Allen et Monte Davidoff d'une des plus célèbre implémentation du langage BASIC. En 1975, le jeune culotté arrive même à vendre sa tambouille, soit 4 petit Ko de code, à la société qui produisait le magnifique ALTAIR 8800, basé sur un Intel 8080. Plus exactement, il arrive à leur vendre un concept nouveau, celui d'une licence qui lui serait reversée par machine vendue, justifiant ce mode révolutionnaire de rétribution en expliquant au patron d'Altair que sa machine, sans son langage, ne serait qu'un tas de canettes high-tech sans grand intérêt. L'affaire est conclue...

L'arrivée de KIM-1

Une année plus tard la société MOS Technologie sort une petite bombe, le processeur 6502 soudé à une carte électronique d'évaluation jetant les bases du concept d'ordinateur personnel, le KIM-1. A l'époque, la société était un fondeur qui fabriquait des composants pour Texas Instrument, mais aussi pour le "premier" jeu vidéo, l'incontournable Pong de la société Atari.

L'équipe Bilouesque, c'est donc mise à porter son BASIC pour ce nouveau CPU. Une version fût vendue par MOS en tant que logiciel additionnel pour le KIM-1. Une autre est apparue quant à elle en 1977 sur le Model 500 de la société Ohio Scientific. Entre temps, Steve Wozniak, lui aussi emballé par la carte KIM, créera l'Apple I qui sera le premier ordinateur personnel au sens littéral du terme (je vous conseille vivement de trouver et mater le documentaire pirates of the silicon valley).

L'Apple I disposait d'un BASIC lui aussi, mais Wozniak décida d'écrire son propre interpréteur plutôt que d'aller filer des ronds à Bilou... Comme quoi, l'histoire entre les deux sociétés ne date pas d'hier ;-).

Ensuite le Woz'Integer Basic, moins évoluée que celui de Microsoft car ne disposabt pas de l'unité à virgule flottante, devint le langage par défaut de l'Apple II, en 77. Pour ceux les p'tit jeunes qui ne savent pas à quoi ressemble cette machine, c'est celle de la série LOST sur laquelle l'habitant de la Structure doit taper son code toutes les 108 minutes ;-)

Commodore

En octobre 76, MOS est racheté par Commodore qui voit en KIM la même chose que Wozniak. Une équipe d'ingénieur se met donc à bosser pour transformer la carte en un système complet. En 1977, sort le tout premier ordinateur Commodore, le PET équipé du BASIC de Microsoft qu'ils ont intégré dans la ROM avec quelques modifications qui n'ont pas été très appréciée par Bilou : le renommage au démarrage du Microsoft Basic en Commodore Basic et la disparition du copyright. Injuste ? Pas exactement, en fait il n'y avait rien qui empêchait cela dans le contrat passé avec Microsoft. Et pour achever le tableau, Commodore a pris la main sur les sources et a fait évoluer le BASIC dans son coin sans autre rétribution. Soit Bilou a été moins brillant que pour l'ALTAIR, soit Jack Tramiel (le fondateur de Commodore) était il un peu plus doué.

Jack, Bill et le lapin...

En 1979, le BASIC du PET, passe à la version 2. Pour cette mouture, Commodore refait appel à Microsoft. Et entre autres évolutions, c'est là que Bile Gates aurait a ajouté le fameux oeuf de pâque. Pour le tester c'est très simple, installez le paquet vice. Ceci fait, lancez la commande xpet. Pour les plus jeunes, ne cherchez pas à changer la résolution, ce timbre poste c'est bel et bien l'écran complet de la machine que nous avions dans le temps...

Pour retrouver un PET 3008 avec un BASIC 2.0, il faut d'abord aller dans le menu Paramètres, Paramètres du PET, Valeurs par défaut du modèle puis choisir PET 3008.

Là, lorsque la machine a démarré et que vous avez écrasé la petite larmiche au coin de l'oeil en voyant le curseur clignoter sous le fameux READY., tapez WAIT 6502,1 et validez. Le message MICROSOFT! doit s'afficher en haut à gauche. En tapant WAIT 6502,0, c'est tout l'écran qui se remplis de MICROSOFT! :-)

Au total, 51 bits occupés, dont une partie de données ("SOFT!" puis "MICRO") cachée à la fin de la table de valeurs pour la fonction SIN. Tout cela pour que Commodore ne puisse plus dire que le BASIC était de lui. Une petite blague qui n'a pas beaucoup plu à Jack qui a même voulu à un moment porter l'affaire en justice. Lorsque Jim Butterfield, développeur pour Commodore découvrit le pot aux roses, il le montra à Leonard Tremiel; le frère du fondateur, dont la réaction fût plus qu'explicite :

We have a machine that’s short of memory space, and the #$#!* [Gates] put that kind of stuff in!!

Ce n'est du coup qu'à la version 7 du BASIC pour le Commodore 128, qu'apparut enfin un copyright légitime pour Microsoft, sans doute à cause d'autres négociations entre la société et Microsoft, au sujet du basic de l'Amiga cette fois...

Conclusion

Selon toute vraisemblance, le code était bien spécifique au PET car à l'époque, il n'y avait pas de belle indépendance vis à vis du matériel et notre oeuf de pâque fonctionnait en écrivant au début de la mémoire vidéo des PET et de nulle autre machine.

Ceci dit, la chaîne MICROSOFT! collée dans le binaire à la suite des données de la fonction SIN n'était pas un privilège réservé à Commodore. On le retrouve dans l'AppleBasic de l'Apple II (une version plus évoluée que celle en ROM, que l'on achetait séparément), celui des Oric 1 et Atmos, celui du TRS-80 couleur (qui avait son propre oeuf de pâque lui aussi), etc. Pour ceux que l'assembleur ne rebute pas, vous pouvez trouver les versions annotées des différents basics et toutes les explications techniques, assembleur à l'appui dans ce passionnant article..

Voilà, fin de la petite histoire qui n'a guère plus d'autre intérêt qu'archéologique. Maintenant l'oeuf de pâque a t-il été écrit par Bill, par Alan ou par Monte ? Contrairement à ce que certains aiment à penser, tout semble indiquer que si Steve Jobs et Bill Gates partagent un certains tallent financier, Gates lui, Savait réellement coder.

On dira que c'était Bill, c'est plus vraisemblable mais surtout plus drôle ainsi ;-)