我们的basic程序中还有一大块没有着落--浮点数字代码。这是在用科学计数法科学计数法是一种用系数和指数来处理数值很小或很大的数字时的简化方式。
比如:83700000=8**37x107;0**0072=7**2x10-3。
--译注处理较大数值的数字或十进制小数时必须使用的程序。一天晚上,我和比尔在哈佛卡瑞尔宿舍楼的自助餐厅吃饭,那里经常有学高等数学的学生谈论超立方体和五维几何。
我正在发牢骚,觉得我得自己去写这个数学程式了。这时一个鬈发的大一新生走过我们身边,尖声说道:“我以前在pdp-8上面写过这个。”我们迅速把他
“抓”到比尔的宿舍里,讨论我们需要什么样的东西。这就是我们认识蒙特·大卫杜夫的经过。
(蒙特商议的费用是400美元,以及在mits后续工作的好几千美元。
)难题解决了。我们搬到了位于牛津大街的哈佛大学艾肯计算机实验室。
这是一个单层混凝土建筑,里面有一个未被充分利用起来的分时系统。
从一开始时间就很紧--原先比尔告诉爱德华·罗伯特我们的basic程序已经接近完成了,所以爱德华说,他希望在一个月左右的时间里见到成品。
而实际上那时我们连一本8080的说明手册都没有。我们随后买了一本手册,马上开工。
8080比8008的指令多两倍有余,这就意味着我必须多编写大量的宏命令。
但是这两种芯片是基于同一种架构的,所以我的工作流程也无须改变。
我要再一次为微处理器芯片把pdp-10软件变成汇编程序。过了一两天的时间,宏命令部分完成了。
我编写的8080模拟器比原先traf-o-data上用的那个要大,但从概念上说,它们两个是相同的。
跟之前一样,我把pdp-10的调试程序调整了,这样就能在我们的basic程序运行过程中中止它并进行检查。
在一个程序员的工作历程中,有很多时候,一切都进展得极其顺利,这时你的大脑也会全速转动。
对我来说,编写8080模拟器就是这样的一个时刻。我从艾肯的新型视频显示器(当时的行话把它叫做
“玻璃电传”)--decvt05上得到动力。有了高速打字机的帮助,还能在pdp-10的硬盘上存储我们的程序,一个月的时间里,我们就做出了8080芯片的开发工具软件,这是绝无仅有的。
8080开发工具程序包又快又好用,一切尽如人意。到现在我仍为这些代码而自豪。
如果说我的开发工具程序给了我们一个很大的优势,那么比尔作为一个程序员的概念性思维就使得我们一直快速向前。
我完成开发工具软件的时候,他早已彻底摸清了解释器的结构。我还能想起这样的情形:他一会儿踱$淫荡,一会儿坐在椅子上摇晃,很长时间过后,在一张黄色的纸笺上胡乱记下什么,他的手指头被记号笔染得五颜六色的。
我的模拟器完成后,比尔就能用pdp-10了。他挪到一台终端跟前,一边摇晃一边凝视着那些纸笺,然后他会疾风一般用他奇怪的指法编写代码,接着重复以上过程。
他能一连好几个小时保持这种工作状态。
</p>