04/09/2025

Microsoft libère enfin le code source du BASIC 6502

Par admin

Microsoft libère enfin le code source du BASIC 6502

Allez, on va jouer à un jeu !

Tapez “STORD0” dans un vieil émulateur Commodore et regardez ce qui se passe. Non, ce n’est pas une commande documentée mais bien un Easter egg planqué dans Microsoft BASIC depuis 1977.

Et si je vous parle de ça, c’est parce que j’ai une bonne nouvelle. En effet,
Microsoft vient de libérer le code source
de ce BASIC 6502
historique sous licence MIT. Quarante-sept ans après sa création donc, on peut enfin fouiller dans les entrailles du programme qui a fait tourner des millions de machines mythiques de l’ère 8-bits. Et croyez-moi, c’est une mine d’or pour comprendre comment deux jeunes de 20 ans ont posé les fondations de ce qui deviendrait plus tard, le plus gros empire logiciel de la planète.

L’histoire commence donc en 1975
. Gates et Allen viennent de créer Microsoft (encore avec un tiret à l’époque : Micro-Soft) et leur premier produit, c’est un interpréteur BASIC pour l’Altair 8800. Le truc, c’est qu’ils n’avaient même pas la machine, du coup, ils ont développé l’émulateur sur un PDP-10 de Harvard, en se basant uniquement sur les specs du processeur Intel 8080. Et quand ils ont finalement testé leur code sur une vraie machine, ça a marché du premier coup.

La chance des débutants, on va dire ^^.

Deux ans plus tard, le MOS 6502 débarque. Moins cher que l’Intel 8080, plus simple, il va devenir LE processeur de la révolution micro-informatique. Chuck Peddle, son créateur chez MOS Technology, avait un objectif simple qui était de concevoir un processeur à 25 dollars au lieu de 300 pour l’Intel 8080. Mission accomplie évidemment… et devinez qui voulait absolument un BASIC pour accompagner son nouveau processeur ?

Commodore, qui venait de racheter MOS Technology.

La négociation entre Jack Tramiel (le légendaire patron de Commodore) et Bill Gates est même devenue mythique dans l’industrie. Tramiel, survivant de l’Holocauste devenu roi de la calculatrice puis de l’informatique, était réputé pour être un négociateur impitoyable.
Sa philosophie c’était “Business is war”
… Je vous laisse imaginer la mentale du bonhomme.

Et face à lui, Bilou Gates, 22 ans, lunettes énormes, qui demandait initialement 3 dollars par machine vendue. Tramiel a ri et proposé un deal unique : 25 000 dollars cash pour une licence perpétuelle. Gates a accepté…

Aujourd’hui, si Microsoft avait gardé les royalties à 3 dollars par unité comme Gates le voulait initialement,
avec 17 millions de Commodore 64 vendus selon Guinness World Records
, ils auraient touché plus de 50 millions de dollars rien que sur cette machine.

Mais le génie de Gates et Allen, c’était pas forcement le commerce, c’était surtout leurs capacités technique car adapter un BASIC conçu pour l’Intel 8080 au 6502, c’était pas de la tarte. Les deux processeurs avaient des architectures complètement différentes. L’Intel 8080 avait plus de registres, le 6502 compensait avec sa page zéro ultra-rapide. L’équipe Microsoft (qui comptait alors une dizaine de personnes) a dû réécrire une bonne partie du code en assembleur 6502, optimiser chaque routine pour tenir dans la mémoire limitée de l’époque… Je vous parle quand même de machines avec 4 Ko de RAM, hein, pas 4 Go !

Le code source qu’on peut consulter aujourd’hui révèle tous ces détails fascinants sur ces optimisations. Par exemple, la routine de multiplication utilise une technique de décalage et addition super élégante pour économiser des cycles processeur. Les chaînes de caractères sont gérées avec un système de garbage collection rudimentaire mais efficace. Chaque octet comptait, chaque cycle processeur était précieux. C’est de l’artisanat pur du code, à des années-lumière de nos frameworks JavaScript de 500 Mo.

L’impact de ce BASIC 6502 sur l’industrie a d’ailleurs été monumental. Steve Wozniak s’en est inspiré pour créer Integer BASIC puis Applesoft BASIC sur l’Apple II. Atari l’a utilisé comme base pour son Atari BASIC. Le TRS-80 Color Computer de Tandy/Radio Shack tournait avec. Des millions d’enfants et d’adolescents dont je fais parti, ont appris à programmer avec, tapant leurs premiers “10 PRINT HELLO” et “20 GOTO 10” sur ces machines.

Microsoft explique dans l’annonce officielle
que cette libération fait partie d’un effort plus large pour préserver l’histoire de l’informatique. Certes, le Computer History Museum avait déjà publié certaines versions en 2014, mais là, c’est Microsoft directement qui ouvre ses archives. Le dépôt GitHub contient plusieurs versions historiques, incluant celles pour l’OSI Challenger 1P, le KIM-1, et bien sûr les différentes révisions Commodore.

Pour les nostalgiques et les curieux, le code est donc un vrai régal. Les commentaires en assembleur racontent une histoire. On voit l’évolution des bugs corrigés, les optimisations ajoutées version après version. Le fameux Easter egg STORD0/STORDO dont je vous parlais en intro est là aussi dans le code source. C’est un simple saut conditionnel vers une routine qui affiche “MICROSOFT!”, probablement ajouté lors d’une session de coding nocturne, quand Gates et Allen se permettaient un peu de fun dans leur code ultra-sérieux.

Au-delà de la nostalgie, cette libération a une vraie valeur éducative. Les étudiants en informatique peuvent étudier comment on programmait quand chaque byte comptait. Les développeurs d’émulateurs peuvent corriger des bugs vieux de 40 ans. Les historiens de l’informatique ont accès aux sources primaires d’un moment clé de notre industrie. C’est comme si on ouvrait les carnets de Léonard de Vinci, mais pour les geeks.