微软首款硬件产品背后的传奇Z‑80 SoftCard的诞生与挑战

评论 · 67 浏览

传奇的Windows开发者Raymond Chen分享了一段只有他才能讲述的内幕——关于微软在1980年左右推出的第一款硬件产品的开发历程。大约45年前,微软为Apple II用户发布了Z‑80 SoftCard。其目的是让使用MOS Technology 6502处理器的苹果

  

  传奇的Windows开发者Raymond Chen分享了一段只有他才能讲述的内幕——关于微软在1980年左右推出的第一款硬件产品的开发历程。大约45年前,微软为Apple II用户发布了Z‑80 SoftCard。其目的是让使用MOS Technology 6502处理器的苹果电脑用户能够访问当时极为重要的CP/M软件库。不过,要实现这一点,微软的扩展卡内部装配了Zilog Z80,并采用了一系列双处理器协同的编程技巧,这些细节如今由Chen在他的《The Old New Thing》博客中披露。

Z‑80 SoftCard是什么?

  Microsoft Z‑80 SoftCard面向想在功能强大的Apple II上使用Digital Research CP/M操作系统软件库的用户。于是,微软的首款硬件产品直接满足了这种跨平台兼容的需求。但这并不是只要在Apple II扩展卡上贴上一颗兼容CP/M的处理器,然后喊一句“搞定了”这么简单。

  微软直到2013年在现任CEO Satya Nadella的领导下才正式将自身定位为“软件与设备”公司。因此,看到1980年Z‑80 SoftCard推出后立即获得巨大成功,实在让人有些惊讶。

  当时的报道把这款CP/M软件使能器称为突破性产品,并指出微软自上市起就订单爆满。这款硬件在发布年的收入是微软最高的,随后几年仍保持热销。1980年的售价为350美元,折算到2025年约为1,350美元。

  

Chen对微软首款硬件产品的洞见

  微软资深Windows开发者Chen解释说,Apple II主机上的Z‑80 SoftCard必须进行特殊的代码处理,才能与主机的6502协同工作。

  使两颗处理器和谐共处的最大难题在于,6502不能在Z80(兼容Intel 8080)的CP/M代码运行时直接被禁用。6502仍需负责I/O、时序等任务。

  Chen透露,为了跨越硬件障碍,采用了多种“技巧”。SoftCard通过模拟DMA操作来暂停6502,并在Z80未访问内存时监控其刷新线,防止6502进入休眠或与之冲突。因此,处理器间的通信规划至关重要,同时必须避免内存映射冲突。实际上,内存重新映射是SoftCard功能的核心,以至于专门设计了地址电路,防止两套架构之间的堆栈和缓冲区发生冲突。

  回顾微软在硬件领域的早期重大成功,我觉得绘制一条定义性的硬件项目时间线会很有意思。

  微软主要硬件发布时间轴

  请记住,微软正式将自己定位为“软件与设备”公司是在2013年。那时它已经深耕游戏主机市场,而此番转型显然助推了随后推出的丰富Surface系列产品。

评论
会员免费服务:时刻音乐 时刻云盘 时刻工具箱 时刻标签 GitHub加速 时刻工具