第六章 2+2=4!(9)
我輸入第21個指令,然後設置好起始地址,按下「運行」開關。8080執行引導裝入程序的多個步驟時,機器上的燈泡發出擴散狀的紅光--至少這樣看起來像是在運行中。我打開紙帶讀數器,電傳打字機咔咔作響,把我們的BASIC解釋器傳送進去。按照每秒鐘10個字元的速度,紙帶讀取過程大概要用7分鐘。(那個年代,人們會借紙帶讀取的這段時間去喝點咖啡。)MITS的人都靜靜地站在那裡。最後,我按下「停止」按鈕,把地址重設為0,把食指再次伸到「運行」開關上面……
那一刻,我心中全無把握。即使比爾做了再三核查,模擬器程序和解釋器也可能存在1/1000的紕漏。我按下「運行」開關。不可能一下就成功的,我想。
電傳打字機咔咔地動了起來。我獃獃地看著打出的大寫字母,簡直不敢相信這是真的。
但這行字就在那裡:內存大小?
「嘿,」比爾·葉茨說道,「打出字來了!」這是他或愛德華第一次看見「牽牛星」做出內存檢測之外的事情,他們都呆住了。我也愣在那裡。我們張口結舌地看著機器,過了幾秒鐘,我把全部7條存儲卡的容量輸入:7168。
「牽牛星」回復道:OK**
到此為止,我肯定我們的BASIC程序前5%是順利的,但離最終目標還遠。決定性的考驗是我們在劍橋期間作為軟體期中考試的一個標準指令。這就要靠比爾的核心編碼、蒙特的浮點數學程序甚至我的「精簡」代碼了,作用是將一些單詞(如「列印」)用一個字元代替。如果這一步能成功,那麼我們的BASIC程序大部分就是完美的。若是不行,我們就失敗了。
我輸入了指令:
列印2+2
機器立刻做出回應:
4
這是一個不可思議的時刻。愛德華驚叫道:「天啊,它打的是4!」愛德華已經負債纍纍,為這台多功能微型計算機賭上了一切,現在看起來他的夢想就要實現了。他無法相信這個事實:比爾和我沒有碰過「牽牛星」的任何硬體,竟然編出了程序!他對此驚訝不已。但愛德華的吃驚程度還比不上我,我都不敢相信我們的8080BASIC程序第一次在真機上運行就如此完美。「牽牛星」的單位元組回應,那道經典的初級計算題,都證明了我的模擬器軟體是成功的。我狂喜不已,也深深地、深深地鬆了口氣。