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