第六章 2+2=4!(9)
我输入第21个指令,然后设置好起始地址,按下“运行”开关。8080执行引导装入程序的多个步骤时,机器上的灯泡发出扩散状的红光--至少这样看起来像是在运行中。我打开纸带读数器,电传打字机咔咔作响,把我们的BASIC解释器传送进去。按照每秒钟10个字符的速度,纸带读取过程大概要用7分钟。(那个年代,人们会借纸带读取的这段时间去喝点咖啡。)MITS的人都静静地站在那里。最后,我按下“停止”按钮,把地址重设为0,把食指再次伸到“运行”开关上面……
那一刻,我心中全无把握。即使比尔做了再三核查,模拟器程序和解释器也可能存在1/1000的纰漏。我按下“运行”开关。不可能一下就成功的,我想。
电传打字机咔咔地动了起来。我呆呆地看着打出的大写字母,简直不敢相信这是真的。
但这行字就在那里:内存大小?
“嘿,”比尔·叶茨说道,“打出字来了!”这是他或爱德华第一次看见“牵牛星”做出内存检测之外的事情,他们都呆住了。我也愣在那里。我们张口结舌地看着机器,过了几秒钟,我把全部7条存储卡的容量输入:7168。
“牵牛星”回复道:OK**
到此为止,我肯定我们的BASIC程序前5%是顺利的,但离最终目标还远。决定性的考验是我们在剑桥期间作为软件期中考试的一个标准指令。这就要靠比尔的核心编码、蒙特的浮点数学程序甚至我的“精简”代码了,作用是将一些单词(如“打印”)用一个字符代替。如果这一步能成功,那么我们的BASIC程序大部分就是完美的。若是不行,我们就失败了。
我输入了指令:
打印2+2
机器立刻做出回应:
4
这是一个不可思议的时刻。爱德华惊叫道:“天啊,它打的是4!”爱德华已经负债累累,为这台多功能微型计算机赌上了一切,现在看起来他的梦想就要实现了。他无法相信这个事实:比尔和我没有碰过“牵牛星”的任何硬件,竟然编出了程序!他对此惊讶不已。但爱德华的吃惊程度还比不上我,我都不敢相信我们的8080BASIC程序第一次在真机上运行就如此完美。“牵牛星”的单字节回应,那道经典的初级计算题,都证明了我的模拟器软件是成功的。我狂喜不已,也深深地、深深地松了口气。