开源项目 18 hours ago 160 Views 0 Comments

48年前的传奇代码重现!微软开源6955行比尔·盖茨联合开发的BASIC解释器,首日狂揽1.5k Star

CSDN
CSDN

Published 115 Articles

整理 | 屠敏

出品 | 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 张,先到先得!

每张标准票包含:

  • 大会两日通票(自由参与主论坛与部分分论坛活动)

  • 现场专属参会大礼包

  • 大会期间两日用餐券 + 全天候甜点茶歇,畅享能量补给

扫码下方海报二维码,即可参与福利申领~

CSDN

CSDN

115 Articles 16110 Views 0 Fans

Comment (0)

睡觉动画