Le code est placé sous licence MIT. Il fait 6955 lignes d'assembleur 6502, commentaires compris. Ça donne un fichier de 158 ko. Un peu gros pour ce vénérable processeur qui ne pouvait adresser que 64 ko avec son bus d'adresse 16 bits.
L'annonce : https://opensource.microsoft.com/blog/2025/09/03/microsoft-open-source-historic-6502-basic/
Le github : https://github.com/microsoft/BASIC-M6502
# tu oublies que ça se compile
Posté par orfenor . Évalué à 10 (+10/-0).
une fois compilé, les commentaires sautent et le code est beaucoup plus petit
[^] # Re: tu oublies que ça se compile
Posté par orfenor . Évalué à 7 (+5/-0).
et j'oubliais : le code est prévu pour plusieurs machines différentes avec des conditionnels qui sautent à la compilation
[^] # Re: tu oublies que ça se compile
Posté par orfenor . Évalué à 9 (+8/-1). Dernière modification le 04 septembre 2025 à 20:44.
et j'oubliais, bis : la taille indiquée par ton système de fichier moderne pour CPU 64 bits est celle d'un texte enregistré en unicode utf-8, je présume qu'un fichier texte ASCII enregistré sur un système de fichiers plus rudimentaire pour CPU 8 bits sera plus petit
Une fois compilé, le code fait moins de 9 KB d'après Michael Steil
[^] # Re: tu oublies que ça se compile
Posté par abriotde (site web personnel, Mastodon) . Évalué à -6 (+5/-12).
L'avantage d'unicode utf-8, c'est qu'il tient sur un seul octet quand on reste sur ASCII (ce qui est forcément le cas). Ce qui n'est pas le cas d'UNICODE, qui est la même chose mais en taille fixe par caractère, soit 8 octets. Donc effectivement en UNICODE il serait plus gros… après, c'est possible, qu'au final, ce soit différent sur le disque ou sur la taille visualisé sur un 64 bits, ou en dessous du méga-octet on ne regarde même pas.
Cela rappel le débat Unicode VS UTF-8…
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: tu oublies que ça se compile
Posté par Pol' uX (site web personnel) . Évalué à 7 (+8/-3).
Perso je suis sans cesse épaté par ta capacité à écrire des choses fausses, sans douter le moins du monde.
Adhérer à l'April, ça vous tente ?
[^] # Re: tu oublies que ça se compile
Posté par groumly . Évalué à 4 (+3/-1).
Bah quoi? Il se garde 4 à 7 octets de rabe par caractere (ou code point, me cassez pas lez bonbons, les pedantiques Unicode).
Ça donne de la marge pour les emojis, et ça mange pas de pain. Enfin, à part les 4+ octets en plus par caractère.
Apres, sorti de la bourde 8 octet en Unicode, il a pas forcément tort. C’est du code des années 80 écrit par des ricains, je serais surprit qu’il soit pas en ascii. Et même si l’ascii est un encodage 7 bits, ça restait serializé en 8 bits, parce que ben, ça marchait comme ça.
et donc au final, oui, UTF8 ou ascii, le source fera la même taille que l’original en ascii.
La ou je suis confus c’est qu’on a commencé à parler de la taille compilée, et on se retrouve à parler d’encodage texte.
[^] # Re: tu oublies que ça se compile
Posté par YBoy360 (site web personnel) . Évalué à 2 (+0/-0).
À cette époque, pas sûr que les machines est un jeu de caractères unifié. Pour les Commodore, il y avait tout un tas de caractères pour faire des tableau qui me semble ne pas exister en ascii, et il y avait le mode négatif codé directement…
I use Arch BTW
[^] # Re: tu oublies que ça se compile
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 6 (+3/-0).
Le code ascii définit les 128 premiers caractères, si on encode sur 8 bits on peut faire un peu ce qu'on veut avec les 128 autres.
Le BASIC étant dévelophé sur un PDP-10, une machine avec des mots de 36 bits découpables en 2x18 bits, c'est sûrement un peu différent. Le listing a l'air de ne pas utilise de lettres minuscules par exemple, il est donc loin d'exploiter toutes les possibilités de l'encodage ascii!
[^] # Re: tu oublies que ça se compile
Posté par groumly . Évalué à 6 (+4/-0).
L’ascii est sorti en 63, Lyndon Johnson l’a rendu obligatoire pour répondre aux appels d’offres fédéraux en 68. Le pdp 10 utilisait essentiellement ça, donc c’est dur d’imaginer que ms ait utilisé autre chose que ça en 75 pour leur basic.
[^] # Re: tu oublies que ça se compile
Posté par finss (site web personnel) . Évalué à 3 (+1/-0).
Bien entendu qu'une fois assemblé, ce code fourni un exécutable plus réduit en taille. Mais je doute qu'à l'époque ce fichier du code source ait existé en un seul bloc.
\_o<
[^] # Re: tu oublies que ça se compile
Posté par abriotde (site web personnel, Mastodon) . Évalué à 1 (+0/-0).
Si sans doute, mais peut-être sur bande ou disque dur professionnels…
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: tu oublies que ça se compile
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 10 (+8/-0).
Le code qui est publié est une reconstruction de sources à partir de l'analyse des binaires de multiples versions du BASIC pour différentes machnes. Plus d'explications par lwauteur de ce travail. Microsoft a récupéré ces informations et a "officialisé" la chose et la license (ce qui pose question, car une partie des changements documentés ne sont pas de leur fait, mais d'entreprises qui avaient acheté et "forké" le BASIC). Est-ce qu'ils ont tout puolié, ou bien ils ont pris soin dans leur version de ne garder que les variantes sur lesquelles ils sont effectivement propriétaires du copyright?
[^] # Re: tu oublies que ça se compile
Posté par orfenor . Évalué à 5 (+3/-0).
J'avais compris au contraire, qu'il s'agit de deux versions distinctes, celle que publie Microsoft vient de leurs archives. D'ailleurs un code venu du désassemblage ne contiendrait pas de commentaires, non ? En plus les deux codes sont pour des machines différentes.
[^] # Re: tu oublies que ça se compile
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 10 (+12/-0).
Je lis l'annonce de Microsoft qui dit:
Je lis la page de Michael Steil qui est liée:
Ma conclusion est qu'il s'agit oe reverse engineering. Microsoft aurait remis le source dans un format permettant de le compiler sur les logiciels d'époque, mais il n'y a aucune mention nulle part de:
Il y a quelques autres bizarreries comme le fichier .gitignore antidaté à il y a 48 ans (bien avant l'invention de git, si vous n'avez pas suivi). Pour moi cela rend ces infos peu exploitabnes si on veut étudier ce source comme un artefact historique. Peut-être qu'il est authentique, que Microsoft est effectivement très bon pour garder des backups de son code source pendant 50 ans sur des supports facilement accessibles, et qu'ils ont juste eu à récupérer le fichier sur leur serveur de sources actuel oùeil était disponible. Mais ça manque de preuves pour en établir l'authenticité, ce qui serait intéressant si on veut s'en servir pour étudier comment les développeurs géraient la compilation conditionelle en 1978 pour cibler plusieurs machines avec le même source.
Si on veut simplement étudier le fonctionnement du BASIC ou le porter sur une nouvelle machine, par contre, l'officialisation de la license par Microsoft est une très bonne nouvelle!
[^] # Re: tu oublies que ça se compile
Posté par orfenor . Évalué à 2 (+0/-0).
Merci pour tes précisions. J'ai encore un doute à cause des commentaires de Scott Hanselman (qui a mis les sources en lignes) dans les quelques problèmes signalés sur Github :
[^] # Re: tu oublies que ça se compile
Posté par orfenor . Évalué à 2 (+0/-0).
et puis les commentaires ne sont pas les mêmes (je n'ai pas tout vérifié bien sûr)
[^] # Re: tu oublies que ça se compile
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 8 (+5/-0).
Oui, en regardant les fichiers de plus près, ça semple vraiment venir des archives (avec par exemple les commentaires tout en majuscules d'époque), mais ce n'est pas très clair (les explications dans le blog pointent plutôt vers autre chose?) et ça manque de traçabilité, ce qui est dommage.
La moindre des choses (dans ce contexte d'archivage et de préservation historique) serait de préciser:
- d'où viennent les fichiers utilisés
- qu'est-ce qui a été modifié (changement d'encodage? Numérisation d'un listing papier avec risque d'erreurs de reconnaissance de caractères? Changement de support de stockage c'est à peu près certain)
- qu'est-ce qui a été ajouté (par exemple, le fichier gitignore antidaté, c'est assez maladroit)
- qu'est-ce qui a été perdu hour l'instant (les informations sur la chaîne de compilation, par exemple, dont on peut déduire des commentaires qu'il s'agissait d'outils fonctionnant sur un PDP-10 avec un simulateur de 6502)
Ce sont ces informations manquantes qui font que on doute sur l'authenticité du code source, ou en tout cas, c'est difficile de dire à quel point il a pu être altéré. Et donc, même si ce fichier est finalement authentique, on ne peut pas en être sûr.
Pour l'exemple du fichier gitignore: ça nous semble évident aujourd'hui. Mais si un historien de l'informatique trouvait ces fichiers dans 50 ans (ou plus), tels qu'ils ont été publiés, ça pourrait le à devoir faire des recherches supplémentaires sur la date d'apparition de git, chose qui ne serait pas forcément simple à ce moment là (j'espère que si, mais on ne sait jamais).
Il y a quelques rois quand j'ai voulu trouver ds infos sur certaias contrôleurs vidéo commercialisés dans les années 70, j'ai eu quelques difficultés à trouver des infos fiaples. Le 6845 de Motorola aurait soi-disant été conçu par Hitachi, mais je ne trouve que des sources récentes à ce sujet qui répètent la même chose sans source fiable. Pour les dates de commercialisation, impossiple de trouver quoi que ce soit, la meilleure solution est d'éplucher les pages de publicités de magasines où des revendeurs font apparaître le composant à leur catalogue. Et quand il s'agit oe trouver la date de fin de production, n'en parlons même pas.
[^] # Re: tu oublies que ça se compile
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 10 (+11/-0).
OK j'ai compris ce qu'il s'est passé, il s'agit bêtement d'une erreur de lien vers le side de Michael Steil dans l'annonce de Microsoft.
Ils ont mis un lien vers cette page de 2008 qui contient des sources obtenues par reverse engineering.
Mais Michael Steil ne s'est pas arrêté là, et en 2015 il a retrouvé les sources originales. Pas du tout dans les archives de Microsoft, mais via un site coréen, qui lui-même avait récupéré des fichiers de Apple qui ont fuité via un certain David T. Craig qui avait publié du code source liés aux Apple ][ et au Lisa en 1993. Cette partie est expliquée à la fin de l'article, et le processus de développement sur PDP-10 et les outils utilisés sont également expliqués. Je comprend mieux que Microsoft ne se soit pas vanté des origines de ce code plus en détail, si j'étais mauvaise langue je dirais qu'ils ont fait exprès de se tromper de page dans leur annonce.
La bonne nouvelle, c'est que maintenant j'ai les réponses à mes questions et qu'il y a moins de doutes sur la provenance de ce code. On ne saura pas exactement quelle modifications Apple ou David Craig ou les autres personnes qui ont eu ces fichiers entre leurs mains ont pu y apporter, mais on a une explication précise du reformatage fait par Michael Steil pour tenter de se rapprocher de ce à quoi pouvait ressembler le code original.
[^] # Re: tu oublies que ça se compile
Posté par totof2000 . Évalué à 4 (+2/-0). Dernière modification le 05 septembre 2025 à 13:32.
Il y a bien plus de chances que le code ait été imprimé plutôt que conservé sur support magnetique je pense.
[^] # Re: tu oublies que ça se compile
Posté par Laurent J (site web personnel, Mastodon) . Évalué à 3 (+1/-0).
Je pense qu'ils ont pu recouper avec des sources papiers de la toute première version Basic.
Dans ce documentaire (qui date de 2009 ?), vers 5min45s Bill Gates a dans les main le code source sous forme de rouleau de papier (pour le PDP ?), et explique que c'est la toute première version de Basic publiée (le 1er juillet 1975).
[^] # Re: tu oublies que ça se compile
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 9 (+6/-0). Dernière modification le 05 septembre 2025 à 15:03.
La version de 1975 était pour le processeur Intel 8080, et en particulier pour le micro-ordinateur Altaïr.
A priori, les sources ne sont pas disponibles publiquement. Mais une copie est disponible à Harvard. Elle a été découverte lors d'un déménagement, elle était tombée derrière des meubles, "quelques temps avant 1980". Heureusement, un des professeurs présents sur place lors de ces travaux a compris que ça ne devrait pas partir à la poubelle et l'a confié aux archivistes.
Voilà comment fonctionne la préservation des logiciels…
[^] # Re: tu oublies que ça se compile
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 8 (+5/-0). Dernière modification le 05 septembre 2025 à 15:39.
Ce n'est pas propre aux logiciels. Le codex de Paris a traîné longtemps près d'une cheminée avec des papiers poussiéreux. C'est l'un des trois seuls codex mayas précolombiens authentifiés qui nous sont parvenus.
Je n’ai aucun avis sur systemd
[^] # Re: tu oublies que ça se compile
Posté par orfenor . Évalué à 4 (+2/-0).
Eh oui!
De même pour la Saison en enfer de Rimbaud, qui moisissait chez l'imprimeur…
Ou des magnifiques affiches de films imprimées en sérigraphie manuelle à Cuba et que mon ami Stanislas Choko a récupéré il y a 20 ans dans les cinémas cubains— j'ai eu le privilège de les avoir entre les mains, c'était d'une beauté époustouflante. Heureusement qu'elles sont maintenant préservées et exposées dans diverses collections.
Et même si le papier tombe plus facilement dans des cachettes poussiéreuses, c'est encore le cas d'artefact archéologiques non exploités, qui sont périodiquement redécouverts dans des caves de musée — il y a quelques semaines, un nouveau dinosaure je crois.
Etc.
[^] # Re: tu oublies que ça se compile
Posté par orfenor . Évalué à 4 (+2/-0).
Je viens de tomber sur le récit de la découverte (ou en résumé), c'est un ancien prof de Bill Gates qui l'a faite!
[^] # Re: tu oublies que ça se compile
Posté par groumly . Évalué à 6 (+4/-0).
Des anecdotes (que je n’arrive pas à retrouver, et j’ai que 2 minutes avant mon prochain minutes) racontent que bill Gates écrivait pas mal de code dans l’avion (apparement, le système de fichier fat).
C’était les années 80, donc il avait clairement pas de laptop, encore moins une tour. Il écrivait son code sur … du papier!
Sacré époque quand même.
[^] # Re: tu oublies que ça se compile
Posté par nsbs . Évalué à 3 (+2/-0).
Dans son autobiographie, il a expliqué qu'il a "écrit" certaines portions du basic dans sa tête alors qu'il faisait de longues randonnées.
Donc en effet, il n'avait pas l'air d'avoir besoin d'un clavier à longueur de temps pour concevoir des programmes
[^] # Re: tu oublies que ça se compile
Posté par Christophe B. (site web personnel) . Évalué à 9 (+7/-0).
Je peu confirmer que l'on passait plus de temps à réfléchir, ou coder virtuellement comme vous voulez, qu'à écrire du code
J'ai commencé sur un ZX 81 en 1981-82, le 1er ordi en dessous des 1000 Francs de l'époque (150 euros) mais cela représentait quand même 1/3 du salaire mensuel minimum de l'époque.
Ces machines étaient des millions de fois moins puissante, avec très peu de RAM
(1ko pour le ZX81).
Et très souvent le résultat de ce code réfléchit et murit très longtemps n'avait rien de spectaculaire, de nos jours c'est l'inverse …
[^] # Re: tu oublies que ça se compile
Posté par pasBill pasGates . Évalué à 5 (+4/-0).
J'ai toujours su que toi et Billou pensiez de la même manière ! :)
[^] # Re: tu oublies que ça se compile
Posté par Christophe "CHiPs" PETIT (site web personnel) . Évalué à 2 (+1/-0).
Oh la vache ! ;-)
[^] # Re: tu oublies que ça se compile
Posté par Christophe B. (site web personnel) . Évalué à 5 (+3/-0).
Venant de toi je prends cela comme un compliment :)
# 6809
Posté par vmagnin (site web personnel, Mastodon) . Évalué à 6 (+4/-0). Dernière modification le 04 septembre 2025 à 21:47.
Le BASIC, c'est le premier produit Microsoft que j'ai utilisé, mais dans une version plus élaborée livrée en ROM dans le Dragon 32, un micro-ordinateur britannique commercialisé en 1982 avec un microprocesseur Motorola 6809. A l'époque, le système d'exploitation c'était l'interpréteur BASIC lancé automatiquement au démarrage. ROM de 16 Ko d'après le manuel :
http://www.dragondata.co.uk/Publications/BASIC-MAN/DRAGON_32_BASIC_MANUAL_rel-v2.pdf
"I program my home computer, beam myself into the future"…
# Commit plus très jeune
Posté par Christophe . Évalué à 9 (+7/-0).
Ils se sont amusés sur la date du commit, on dirait:
committed on Jul 27, 1978
[^] # Re: Commit plus très jeune
Posté par zurvan . Évalué à 10 (+9/-0).
ils ont utilisé le module
git-over-ipot
codé par le grand-père de Linus Torvalds.« La censure est l'outil utilisé lorsque les mensonges perdent de leur pouvoir »
[^] # Re: Commit plus très jeune
Posté par abriotde (site web personnel, Mastodon) . Évalué à 3 (+2/-0).
Exact, joli anachronisme.
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
# Lettre ouvert aux Hobbyistes
Posté par martoni (site web personnel, Mastodon) . Évalué à 6 (+4/-0). Dernière modification le 05 septembre 2025 à 14:09.
Ça ne serait pas le fameux BASIC qui faisait chouiner Billou en 1976 ?
https://fr.wikipedia.org/wiki/An_Open_Letter_to_Hobbyists
Gnagnagna, on me vole, je suis dépouillé, gnagnagna, …
J'ai plus qu'une balle
[^] # Re: Lettre ouvert aux Hobbyistes
Posté par bobble bubble . Évalué à 2 (+1/-0).
Je n'ai pas la réponse, mais merci pour ce partage :D
[^] # Re: Lettre ouvert aux Hobbyistes
Posté par martoni (site web personnel, Mastodon) . Évalué à 2 (+0/-0). Dernière modification le 05 septembre 2025 à 20:54.
Je crois que ça n'est pas tout à fait le même BASIC, c'était quelques années avant avec l'altair sur un intel 8080 il me semble.
J'ai plus qu'une balle
# Le cas Commodore
Posté par Tarnyko (site web personnel) . Évalué à 8 (+6/-0). Dernière modification le 05 septembre 2025 à 17:10.
Merci pour l'info. Alors en tant que possesseur d'une vieille machine 6502,

Si on regarde ça:
et ici:
On constate que si la variable est égale à 3 (IFE REALIO-3), on affiche bien l'en-tête "### COMMODORE".
Mais 5 lignes plus bas, on n'affiche le "COPYRIGHT 1978 MICROSOFT" que si la variable n'est pas égale à 3 (IFN REALIO-3).
C'est valide pour toute la gamme Commodore, et s'explique facilement : en échange de son contrat, le fabricant avait explicitement exigé que seul son nom apparaisse sur l'en-tête de l'OS.
Je valide donc l'authenticité de ce morceau à ma microscopique échelle 😄.
[^] # Re: Le cas Commodore
Posté par totof2000 . Évalué à 3 (+1/-0).
je pense qu'un dump d'une ROM d'epoque pourrait permettre de vérifier tout ça. Faut juste que quelqu'un s'y mette, compare ligne à ligne, ou écrive un programme qui permette de faire la comparaison entre les deux sources.
[^] # Re: Le cas Commodore
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 3 (+0/-0).
Il suffit de compiler le code et de vérifier qu'on obtient une image de ROM identique à l'original, ce sera probablement plus rapide à vérifier
[^] # Re: Le cas Commodore
Posté par totof2000 . Évalué à 2 (+0/-0). Dernière modification le 07 septembre 2025 à 13:03.
Il faudrai avoir les outils de build de l'époque je pense pour avoir quelque chose de réellement comparable dans ce sens.
[^] # Re: Le cas Commodore
Posté par orfenor . Évalué à 6 (+4/-0).
Peux-être que tu peux faire apparaître l'oeuf de paques que Billou avait codé exprès pour ne pas que Commodore prétende être l'auteur de son Basic :
Tape
WAIT6502,1
et MICROSOFT! devait apparaître en haut à gauche de l'écran.[^] # Re: Le cas Commodore
Posté par Tarnyko (site web personnel) . Évalué à 4 (+2/-0). Dernière modification le 06 septembre 2025 à 13:28.
Haha, un connaisseur !
J'avais bien regardé en fait, et si c'est là c'est vachement bien caché car je ne l'ai vu nulle part 😉 .
(l'oeuf a été repéré et donc supprimé dans la V2 qui équipe p.ex. le C64. Ici c'est la V1, mais la suppression a-t-elle été rétroportée ? Possible, possible…)
PS pour au-dessus : perso, je vais pas assembler ce code. D'expérience, c'est la partie la plus relou d'un projet du genre, et là c'est juste trop obsolète pour que j'aille si loin.
# Merci
Posté par Thomas (site web personnel) . Évalué à 2 (+1/-0).
C'est pour ce genre de journaux que je kiffe DLFP. Merci.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.