微软的6502 BASIC现已成为开源软件(2025)
摘要
微软正式开源了1976年的原始6502 BASIC源代码,该代码曾驱动早期的Commodore和Apple II计算机,这标志着历史保存的一个里程碑。
暂无内容
查看缓存全文
缓存时间: 2026/05/24 15:39
# 微软发布具有历史意义的 6502 BASIC | 微软开源博客
来源:https://opensource.microsoft.com/blog/2025/09/03/microsoft-open-source-historic-6502-basic/
今天,我们真的要打开尘封的历史了。
几十年来,微软 6502 BASIC 的碎片和非官方副本一直在网上流传,被保存在复古计算网站和博物馆档案中。程序员们研究过这段代码,重建过它,甚至在现代系统上运行过它。而今天,我们首次正式打开舱门,以开源许可证的方式公开发布这段代码。
## 微软的第一批产品:从 Altair 到 Commodore 64
微软 BASIC 始于 1975 年,是公司的第一款产品:一个为 Intel 8080 编写的 BASIC 解释器,由比尔·盖茨和保罗·艾伦为 Altair 8800 编写。该代码库很快被移植到其他 8 位 CPU 上,包括 MOS 6502、Motorola 6800 和 6809。您可以访问 Microsoft Learn 网站的“微软历史”视频系列(https://learn.microsoft.com/en-us/shows/history/history-of-microsoft-1975)了解更多这段时期的故事,并直接聆听比尔·盖茨的讲述,或访问比尔·盖茨的博客(https://www.gatesnotes.com/microsoft-original-source-code)。
6502 的移植版本由比尔·盖茨和 Ric Weiland 于 1976 年完成。1977 年,Commodore 以 25000 美元的一次性费用获得了许可,这项交易将微软 BASIC 置于 Commodore PET 计算机的核心,后来又用于 VIC-20 和 Commodore 64。这一决策使微软的 BASIC 成为 Commodore 机器的核心,帮助数百万新程序员通过输入以下内容学习编程:
- 10 PRINT “HELLO”
- 20 GOTO 10
这就是 **BASIC M6502 8K VER 1.1**,这条 6502 BASIC 分支驱动了整个家庭计算时代,并构成了 **Commodore BASIC** 在 PET、VIC-20 以及传奇的 Commodore 64 中的基础。同一个源代码树还包含了针对 **Apple II** 的改编版本(“Applesoft BASIC”),它基于相同的核心 BASIC 源码构建。原始文件头依然写着 **“BASIC M6502 8K VER 1.1 BY MICRO-SOFT”** —— 一个来自 1978 年的时间胶囊。
我们在此发布的版本——标记为“1.1”——包含了由 Commodore 发现并由 Commodore 工程师 John Feagans 和比尔·盖茨于 1978 年共同实现的垃圾回收器修复(当时 Feagans 前往微软 Bellevue 办公室)。这正是作为 PET 的“BASIC V2”发布的版本。它甚至包含一个比尔·盖茨玩心大发的彩蛋,隐藏在标签 STORDO 和 STORD0 中,盖茨本人在 2010 年也确认过这一点(https://www.pagetable.com/?p=43#comment-1033)。
## MOS 6502 CPU 的持久魅力
MOS 6502 是 Apple II、Commodore 8 位系列、Atari 2600、任天堂娱乐系统以及更多设备的 CPU。它的简单性、效率和影响力至今仍激励着教育工作者、爱好者和硬件爱好者。
2025 年的今天,人们对它的兴趣依然浓厚。复古计算领域蓬勃发展,基于 FPGA 的重现、模拟器项目和活跃的开发社区层出不穷。随着一款由 FPGA 驱动的新款 Commodore 64(https://www.commodore.net/)的发布,Commodore 品牌强势回归,这是几十年来首款官方 Commodore 硬件。
## 重建与保存微软 BASIC
多年来,专注的保存者们重建了构建环境,并验证了历史源码仍然可以生成精确到字节的 ROM。值得注意的是,Michael Steil(https://www.pagetable.com/?p=46)记录并重建了针对多个目标的原始 BASIC 构建流程。他将代码移植到 **cc65** 等汇编器上,使其能够在现代系统上构建和运行。
这次开源发布建立在这些工作的基础之上,并且现在附带了一份清晰、现代的许可证。继微软早些时候发布的 GW-BASIC(https://github.com/microsoft/GW-BASIC)之后,此版本源自同一血统,并曾搭载于原始 IBM PC 的 ROM 中。那段代码后来演变为 QBASIC,以及后来的 Visual Basic,后者至今仍是 Windows 应用开发所支持的语言。
从 1977 年闪烁的光标到 2025 年的 FPGA 构建,BASIC 依然小巧便携。现在,这个极具影响力的 6502 版本首次真正属于您——供您探索、修改和分享。
在新墨西哥自然历史科学博物馆展出的 Altair BASIC 清单。
“Altair Basic 标牌”由 Swtpc6800 拍摄,通过 Wikimedia Commons 以公有领域方式提供(https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcommons.wikimedia.org%2Fw%2Findex.php%3Fcurid%3D10631089%26utm_source%3Dchatgpt.com&data=05%7C02%7Cv-kakrulek%40microsoft.com%7C7d1b02f3b20c48e6ec6608ddea537b6d%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638924366490064048%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=yLT%2BxAfs%2B4p4WxVj5UPucOusck5ky%2FM0aAfpHlJSZO4%3D&reserved=0)。
(头像:一名男子直视镜头)
Scott Hanselman 是微软/GitHub 的副总裁、技术团队成员,从事开源、Windows 相关工作,并在人工智能加持的时代为初入职场的工程师提供指导。作为拥有 30 多年经验的程序员、教师和演讲者,他曾参与 .NET、Azure 和开发者工具等工作。他主持 Hanselminutes 播客,在 hanselman.com 上写博客,并倡导开源、包容与人本科技。
查看更多该作者的文章(https://opensource.microsoft.com/blog/author/scott-hanselman/)
(Stacey Haffner 的特写,她是微软 OSPO 总监)
Stacey Haffner
微软 OSPO 总监
Stacey Haffner 是微软 OSPO 总监和开发者倡导者,专注于开源、人工智能和开发者工具的未来。十多年来,她一直是产品领导者、建设者和教育者,在初创公司和大型科技公司从事 .NET、Xbox、Unity 等众多项目。她同时也是一名独立游戏开发者,并在 YouTube (youtube.com/@staceyhaffner) 上教学。
查看更多该作者的文章(https://opensource.microsoft.com/blog/author/stacey-haffner/)
相似文章
微软开源“迄今为止发现的最早的DOS源代码”
微软发布了已知最早的DOS源代码,包括86-DOS 1.00内核和实用程序,以及开发者文档。
Microsoft Comic Chat 现已开源
微软已将 Comic Chat 开源,这是一款 1990 年代的 IRC 客户端,可将文本对话转化为漫画面板,并向世界介绍了 Comic Sans 字体。该源代码现已在 GitHub 上供开发者和历史研究人员使用。
@cyrilXBT: 微软刚刚在GitHub Copilot中推出了自家编程AI——从今天起完全免费。不是租…
微软推出了MAI Code 1 Flash,这是一款全新的内部编程AI模型,现已在GitHub Copilot的所有层级上免费提供,具有更高的效率和256K上下文窗口。
Boriel BASIC
Boriel BASIC 是一款现代开源的 BASIC 编译器 SDK,主要为 ZX Spectrum 设计,提供增强功能、整数类型以及内联汇编支持,适用于复古游戏开发。
我正在撰写 Visual Basic 的发展史,第一章已发布
作者宣布推出长篇的 Visual Basic 发展史系列文章,第一章涵盖了 BASIC 的起源以及 VB 1.0 的开发历程。