
整理 | 屠敏
出品 | CSDN(ID:CSDNnews)
“这么多年都不用的老系统、工具、编译器,微软能不能干脆开源出来,让大家学习学习?”不少人心里都想过这个问题。
实际上,微软不少软件的旧代码早就以各种形式在外面流传:有的是零散片段,有的是复古计算社区保存的镜像,还有的被博物馆收录进档案。程序员们也没闲着——有人钻研,有人尝试重构,甚至有人把它跑在现代系统上。
不过,这些版本始终都不是官方的。直到近几年,微软才逐步开始把一些经典旧软件的源码真正开源,列如 4、WSL。而就在最近,微软又迈出了一步:他们正式公开了 48 年前比尔·盖茨联合写的 6502 BASIC 解释器的完整源代码。

打开 GitHub,我们发现这段代码虽然只有短短的 6955 行,但在当年可是推动个人电脑革命的重大基石,几乎是直接和处理器“对话”。在当时内存超级昂贵——一 KB 就要几百美元的情况下,微软把这么多功能挤进极小的内存里,算是个了不起的成就。对此,微软自己也调侃说:「今天,我们真的打开了保险库。」

随着微软的公开,这一举动立刻在开发者圈子里引发热议。这个项目以 MIT 许可证开源,任何人都可以自由使用、修改和分发。正因如此,Basic-M6502 解释器一发布,就迅速收获了 1.5k 个 Star。
更有意思的是,在微软的 GitHub 页面上,仓库里的提交时间显示为 1978 年 7 月 27 日,也算是对这段古老历史的致敬。
GitHub 地址:
https://github.com/microsoft/BASIC-M6502


比尔·盖茨曾亲自参与的 6502 BASIC
回看这段代码的起源,根据微软开发者社区副总裁 Scott Hanselman 和 OSPO 总监 Stacey Haffner 在官方博客上的介绍,最早可以追溯到 1975 年。
那一年,比尔·盖茨和保罗·艾伦为 MITS 公司推出的微型计算机 Altair 8800(也被视为第一台让普通人有机会拥有和使用的商业化微型计算机)编写了一个面向 Intel 8080 的 BASIC 解释器。
这就是微软的第一个正式产品,自此,其二人也开启了微软的创业之路。
很快,这套代码就被移植到其他 8 位 CPU 上,其中就包括后来大名鼎鼎的 MOS 6502,以及摩托罗拉 6800 和 6809。
其中,6502 版本的 BASIC 在 1976 年完成。对此,比尔·盖茨曾在 2010 年的 Page Table 博客上现身评论道,6502 BASIC 这款 BASIC 解释器有他的“手笔”:
6502 BASIC 是我(比尔·盖茨)和 Rick Weiland 一起写的。
那个 WAIT 命令是我加进去的。
6800 BASIC 是我和 Mark Chamberlin 一起写的。

在比尔·盖茨完成 6502 BASIC 的次年即 1977 年,康懋达(Commodore)以 2.5 万美元的固定费用一次性买断了微软的 6502 BASIC 授权,把微软 BASIC 引入自家的 PET 电脑,之后又广泛应用在 VIC-20 和传奇的 Commodore 64 上。
虽然 2.5 万美元在当时而言是一笔不小的费用,但可以说,这是一次既失败又成功的交易。
之所以这么评价,是由于按照协议,康懋达可以在无限量的机器里内置这套软件——不用分成,也不用按台数付费。后来,康懋达卖出了数百万台搭载微软 BASIC 的电脑。如果微软当时像后来的产品那样收取“按台授权费”,这笔交易本可以给他们带来上千万美元的收入。
不过,也正是将由于康懋达当时的这个决定,让成百万的初学者通过简单的代码学习编程。实则在上世纪 70 年代末到 80 年代初,微软的 BASIC 解释器成为成百万人的编程启蒙工具。用户只需输入几行简单的命令,解释器就能把这些人类可读的代码逐行翻译成计算机能执行的指令。例如:
10 PRINT "HELLO"20 GOTO 10
只需两行,就能让屏幕无限循环输出“HELLO”。对当时的人来说,这几乎就是“魔法”。

版本号 1.1,微软开源的 BAISC M6502
这一次,微软开源这款解释器的版本号为 1.1 版本,适配 MOS 6502 处理器,代码体积为 8KB。它不仅支撑了 PET、VIC-20 和 Commodore 64 的发展,还为 Apple II 的 Applesoft BASIC提供了基础。
这份源码的头文件至今还保留着一句老式注释:
BASIC M6502 8K VER 1.1 BY MICRO-SOFT

更有意思的是,这份代码中还包含了一些修复,这是康懋达工程师 John Feagans 在 1978 年专程跑到微软华盛顿州贝尔维尤的办公室,与比尔·盖茨一起完成的改善。这些修复包括内存管理优化(垃圾回收机制),后来作为“BASIC V2”出目前康懋达的 PET 电脑上。
代码里甚至还有个比尔·盖茨亲自留下的小彩蛋,通过 STORDO 与 STORD0 两个仅有细微差异的标签得以体现。此外:
如果你在一台运行 BASIC V2(1979)的 Commodore PET 上输入 “WAIT6502,1”,屏幕左上角就会出现字符串“MICROSOFT!”。
传说这是比尔·盖茨和 Commodore 创始人 Jack Tramiel 吵过架,于是“以防Commodore 哪天否认这段代码出自微软”,盖茨特意留下了这行字。
此外,微软发布的源码树还支持条件编译,可以根据不同的机器切换选项来生成对应版本。列如 Apple II(即著名的 Applesoft BASIC)、Ohio Scientific 电脑、KIM-1 单板机,都能从同一套代码编译出来。

6502 BASIC 背后的 MOS 6502 CPU
据微软透露,6502 BASIC 解释器所运行的 MOS 6502 处理器,曾是上世纪最具影响力的 CPU 之一。它的性能并不算强劲,但胜在价格低廉、设计简洁。
要知道,在早期个人电脑领域,成本高低往往决定一切。MOS 6502 当时只卖 25 美元,而其他厂商的同类芯片要价高达 200 美元。它的设计者 Chuck Peddle,就是为了让普通人也能用得起电脑,才开发了这颗芯片。
正是由于它,个人电脑和家用游戏机才能以更低的价格走进普通家庭。这颗芯片不仅推动了个人电脑的普及,也成为游戏机的核心动力。其不同版本后来被广泛应用在 Apple II、Atari 2600、任天堂红白机(NES),以及数百万台Commodore 8 位系列电脑中。

依然极具价值的老代码
在这次开源背后,微软也在公告中介绍了大背景,其表明:「进入 2025 年,复古计算(retro-computing)社区依旧活跃:有人用 FPGA 重现 6502 芯片,有人开发仿真器项目,还有不少爱好者在论坛和 GitHub 上持续交流。甚至,久违的Commodore 品牌也宣布复活,推出了一款基于 FPGA 的新 Commodore 64,这是几十年来第一台官方 Commodore 硬件。」
此前,许多爱好者和历史保存者一直在努力重建当年的开发环境,验证源码是否还能编译出和当年完全一致的 ROM。
其中,一位德国开发者 Michael Steil做了大量工作:他完整记录并重建了 BASIC 的编译流程,还将代码移植到现代汇编工具(如 cc65),让它能在当下系统中重新运行。
过去,这些研究成果零散,给一些爱好者留下了遗憾。如今,微软用配备了清晰、现代的开源许可证的完整源码来弥补这些遗憾。
也许有人会觉得,“开源这么老的代码意义不大”。实际上,虽然现代电脑无法直接运行这段 1978 年的汇编代码,但借助模拟器和 FPGA,它依然可以发挥作用。凭借结构简单、运行高效的特点,它在计算机科学教学、业余爱好者实验,以及硬件黑客的实践中,依旧是很好的选择。
实际上,微软此前也开源过 GW-BASIC——IBM PC 初代机自带的 BASIC 版本,后来演化成QBASIC,再到Visual Basic,而 Visual Basic 至今仍是 Windows 应用开发中受支持的语言之一。
如今,微软首次真正开放了 6502 版本 BASIC的源码。这种官方发布能让软件历史得到妥善保存。若没有合法授权和完整文档,未来的开发者、爱好者就可能失去理解早期电脑工作原理的机会,也难以将这些技术文化遗产放入正确的历史脉络。
目前这意味着,这段影响深远的历史不再只是博物馆里的展品,而是任何人都可以研究、修改和分享的“活代码”。

新墨西哥州自然历史与科学博物馆展出的 Altair BASIC 列表
对此,你怎么看微软这一举措以及这段旧代码?欢迎分享你的见解。
来源:
https://opensource.microsoft.com/blog/2025/09/03/microsoft-open-source-historic-6502-basic/
开学季福利|CSDN 公众号粉丝专属
为感谢大家一直以来对 CSDN 公众号的关注与支持,我们特别联合 GOSIM HANGZHOU 2025 全球开源创新汇,为粉丝送上重磅限量福利——价值 399 元/张的大会标准票!
9 月 13–14 日,这场汇聚全球开源与 AI 顶尖力量的硬核盛会,将在杭州正式启幕!
为什么这场大会值得你亲临?
-
顶级阵容:联合国、NVIDIA、谷歌、Hugging Face、字节跳动、智源研究院等全球大咖齐聚
-
前沿议题:大模型、具身智能、AI Agent 等热门技术专场,直击行业最前沿
-
实战互动:12 场深度 Workshop + 4 场 Hackathon,边学边练,现场出成果
-
开发者主场:1500+ 技术人现场交流,拓展人脉,碰撞灵感
本次福利详情
限量 50 张,先到先得!
每张标准票包含:
-
大会两日通票(自由参与主论坛与部分分论坛活动)
-
现场专属参会大礼包
-
大会期间两日用餐券 + 全天候甜点茶歇,畅享能量补给
扫码下方海报二维码,即可参与福利申领~

好激动,86年上大学读计算机软件系,第一个语言就是BASIC!i=i+1,第一次接触时,心里多震撼!现在回忆起来,都觉得幸福感满满!
估计很快又有一些公司遥遥领先了。
debug及汇编写程序,后来才有编译的BASCI。用的是苹果0520计算机和8088配个8087数协处理器的PC。
记得最开始学的就是MSDOS UC-DOS后面才有Windows3.1x,所以编程语言自然也是QBASICQ,那个时候红色警戒94刚出来,觉得惊为天人呢。再后面才有VB,才有后面的后面
抄的永乐大典的。即便如此,现在遥遥领先的是华为,华为一行代码都完爆Windows系统[祝福]
过几年后,中文互联网上。又会出现,感谢盖茨来源的文案就如现在感谢马斯克来源一样
全是汇编,即使开源了,现在还有多少人看得懂
我的basic学了个寂寞,完全看不懂
不得不佩服那个时代美国的一些大咖,真的厉害
这代码不是比尔盖茨写的。他从别人手上买来卖给IBM的。为什么能卖,因为他老爸老妈不简单
八十年代接触电脑,没有磁盘和操作系统,只能编basic,还是带行号那种,很有年代感
瞎扯吧,github 48年都没有诞生,这个提交记录时间就是假的
86年老爸回国带回一台Commodore,I/O界面还是磁带机,最初的basic操作指令就是这机器上学的,没几年几年DOS和Windows时代接踵而至
我接触电脑是在2003年,那时候已经是图形用户界面了,当然也用过小海龟画图,up down,记忆犹新,我大学里才接触编程软件,第一个就是经典的VB6.0,现在还有这款软件呢
1978年有github?
我接触的第一个编程语言,QBASIC,当年还是在DOS系统上学的,,,,,
永乐大典都有
那个时候我们在干嘛?哈哈哈。
传奇这个游戏很好玩的。问题是,微软从哪里偷到的代码?
文曲星用的就是6502处理器。