【硅谷革命】16. 早期的演示程序

原文链接:Early Demos
作者:安迪.赫兹菲尔德

时间:1981 年 4 月
人物:安迪·赫兹菲尔德,巴德·崔博,里奇·佩吉,鲍勃·比肖普,比尔·阿特金森,布鲁斯·霍恩
概要:不同的演示程序展示了硬件的能力

早期的 Finder 原型(1982 年 2 月)
早期的 Finder 原型(1982 年 2 月)

基于 68000 芯片的麦金塔上第一个演示程序,是巴德·崔博编写的,并且将其整合进了最初的引导只读存储器(boot ROM)。这个程序能用一百多个字号极小的单词「hello」铺满整个屏幕。麦金塔开机后,进行硬件自检,满屏显示「hello」,然后便等待串口中输入执行指令。屏幕上显示出「hello」即表明系统一切正常。

通过引导只读存储器,麦金塔就能通过串口线导入 Lisa 上的程序,这样就能在麦金塔上试运行新的代码,并且测试或演示这台原型机。我们还有大量的工作需要完成:开发一个操作系统,连接上键盘和鼠标,运行比尔的图形和用户介面程序,不一而足。但我们有时也做些仅仅为了好玩的事情。

1981 年 3 月初的一天晚上,我成功解决了磁盘控制器的问题,并且为麦金塔写了一个快速运行的、基于磁盘的幻灯片程序(见《半字节》)。看到细节丰富、解析度较高的图片快速地在显示屏上穿行,着实让人异常兴奋。

一直到 4 月,我都在做自制图形程序的实验,来展示麦金塔系统强大的图形处理能力。我曾在苹果 II 上写过几个弹球程序,便想看看 Mac 能流畅地显示多少个动画小球,一定会很有意思。我写了基于 68000、能快速绘制 16x16 像素小球的代码,发现麦金塔能流畅地显示超过 100 个这样的弹球,相当令人震撼。我还用比尔·阿特金森的 8×8 位图写了一个带种子填充算法的绘图小程序,另外又编了一个很好玩的打砖块游戏,这是巴德的创意——将砖块一一击落,它们掉下时你还得躲开。

鲍勃·比肖普曾经在苹果 II 上试验过很多图形特效,所以我想我应该在麦金塔上也试试。我想通过一种有趣的方法来将图片显示到屏幕上。我最喜欢瀑布效果, 就是通过若干个连续扫描线,将一幅图片逐渐地从上至下显示出来,看起来就像瀑布里的水一样倾倒在屏幕上,甚至还有点催眠效果。我通常使用苹果 II 上的 Muppets(编者注:迪士尼公司旗下著名的木偶角色)图片来显示这个瀑布效果,后来「拉伸 Muppets」这个演示也变得非常有名了。

1981 年 5 月,巴德熬了一个通宵,将 Lisa 机上的 QuickDraw 程序和一些下拉菜单的代码,移植到了麦金塔上(见《Busy Being Born, Part 2》)。这使得我们第一次能够在麦金塔上用鼠标操控、真正带有下拉菜单的程序。这个演示最棒的地方就是模式菜单,它展示了从普通菜单到真正图形菜单的可扩展性。

1981 年 6 月,我们意识到该为麦金塔建一个独立的演示环境,让麦金塔可以在它自己的磁盘上启动系统并运行程序,即使这个演示环境是临时的也值得一试。我们自己开发的操作系统根本还不能用,但里奇·佩吉已经写好了一个基于 UCSD Pascal 的简单的操作系统,叫「Lisa Monitor」,移植这个系统则相当容易——只需加进我们的输入/输出驱动程序即可。使用这个系统后,麦金塔便立即脱离 Lisa 的帮助,能够独立启动并运行演示程序了。

在 Lisa Monitor 环境里,便可轻而易举地运行基于 QuickDraw 的程序。很快,我们就做出一个窗口管理演示程序,其功能就是在多个窗口里各自演示弹来弹去的小球(见《Bouncing Pepsis》)。我们还写了个漂亮的图标编辑器和 MacSketch 程序,也就是 MacPaint 的前身。

我认为早期演示程序中最有趣的就是 Finder 的原型,那是我和布鲁斯·霍恩在 1982 年春天写的(见上图)。这个程序的窗口里就是一张软盘的图片,文件则用可以拖拽的标签来表示。选择文件,点击命令按钮,即可对文件进行操作。布鲁斯还做了第二幅示意图,添加了文件夹图标,这影响了比尔为 Lisa 机设计的 Filer 程序(见《Rosing's Rascals》),最终我们采用了比尔的这个设计。由此可一窥当年我们如何从多种可能之中选择了今日你所熟悉的东西。(翻译:Howie;一校:Mark Chen;二校:Jix Huang

《硅谷革命》连载之 1 - 16