第六章 2+2=4!(6)
隨著進度的推進,我們的自信心也在增長。有一天,我們準備給「牽牛星」編寫輸入輸出程序,就打電話給MITS公司詢問電傳打字機的信號交換子程序。比爾·葉茨,也就是愛德華·羅伯特的合伙人和首席工程師,對我們說,我們是第一個問這個問題的人。那時我們知道,我們的方向是對的。同時,我們也猜到這份工作一定是我們的了。
一天晚上,在快餐店吃完飯準備回艾肯時,哈佛的校園警衛把我們叫住,要核查我們的身份證件。我們思量著自己的工作對機房裡的設備沒有造成傷害,再說機房的PDP-10也沒有被充分利用起來,應該沒什麼大不了的。不過,我們不知道的是,哈佛大學在跟美國國防部基於機器的使用情況分擔它的維護費用。我一直用比爾的賬號和密碼在這台機器上編寫模擬器,消耗了大量的處理器時間。1月份的賬單出來后,哈佛的分擔費用顯著暴增,對此結果作出最大貢獻的學生就是威廉·亨利·蓋茨三世(比爾的賬號名)。這年夏天比爾前去哈佛的行政委員會接受處分,僅僅得了個輕微的處罰。
2月底,也就是我們跟MITS取得聯繫的8周之後,解釋器完成了。這個程序被精簡到3200位元組大小,只有200行代碼,是一個精緻的BASIC程序--在如此小的存儲空間下,它的功能和速度是無可匹敵的。最近比爾還對我說起,這個程序是「我們最好的作品」。而且,它是一個協作的成果,我估計比爾在其中佔了45%,蒙特佔了30%,我佔25%--但不包括我編寫的開發工具軟體。在我們嵌入BASIC程序的初始聲明中這樣描述道:保羅·艾倫編寫了非運行時部分,比爾·蓋茨編寫了運行時部分,蒙特·大衛杜夫編寫了數學軟體包。--譯註
總的來看,對我們這個年紀的3個年輕人來說,這是個了不起的成就。即使今天再看看這個軟體,我相信它也能比得過我們計算機中心公司的導師們所編寫的任何軟體。比爾和我已經成長為一流的程序員了。
而我們才剛剛上路呢!
在我準備前往阿爾伯克基市時,比爾卻擔心起來--萬一我的宏彙編程序弄錯了一個代表8080指令的數怎麼辦?在PDP-10的模擬器上面,我們的BASIC程序運行良好,但我們不敢肯定模擬器就是完美的。萬一有一個位元組出了錯,都會導致在真正的晶元上運行時發生故障。出發之前的那天晚上,我停下手裡的工作睡了幾個小時的覺,比爾熬夜拿著8080的操作手冊再三檢查我的宏彙編程序。第二天早上,在去洛根機場的路上,我停下來拿比爾剛剛打出的紙帶,他一副睡眼矇矓的樣子。「代碼沒問題,」比爾說。據他所知,我的程序是無錯的。