第二卷
第七章 半邊天
「我形容事實而已。」藍藍說,「少啰唆,有話快說,有那啥快放!」
信寄走了之後,好久沒有迴音。直到有一天,范含實在忍不住了,打電話過去問。
但是范含山珍海味見多了,對6502實在提不起興趣。記憶里最流行的八位處理器應該就是Z80。後來任天堂在家用遊戲機市場敗給Sony之後,就是靠了幾乎壟斷掌上遊戲機市場才能堅持下來。這款掌機,GB和後來的GBC用的就是Z80處理器。范含毫不懷疑,紅白機上面的遊戲絕對可以在Z80體繫上實現。所以,在這個時候抄出Z80的意思就是為了一段時間內不用操心FEEE的發展問題。
「到如今,我們也可以脫下工作服,換上白大褂了。放下烙鐵,拿起卡片打洞了……」工程師甲高興地說。
為了保證今後發展的動力,范含不得已準備了第三份材料,描述了Intel 8086的架構。不過范含對原始材料作了一些修改,把8086的20根地址線改為16根。
「啊呸!」藍藍說,「誰信啊?你真是范含么?不會是外星人冒充的吧?」
呵呵,沒人兒理我……
「哇哈哈哈……」
所以,范含拿定了主意,準備以68k架構開發一個數學工作站,一旦啟動就會直接進入「ROM Matlab」……呵呵呵……嘿嘿嘿……
對程序員而言,不管晶元造成什麼樣,值得關心的僅僅就是有什麼指令能用而已。在這一點上面范含的頭腦比較冷靜,沒有盲目試圖一步到位地開發精簡指令集晶元。
別的不說,就是新產品開發這一項就足夠范含頭疼的。
最近舒服日子過慣了,艱苦樸素的傳家寶就丟到一邊了。以前看著星移斗轉寫代碼的勁頭呢?范含暗下決心,自己一定不會辜負天打雷劈的期望,吃大苦,流大汗,因陋就簡,大幹快上,為了建設有范含特色的資本主義計算機事業而奮鬥。
……
如果什麼都沒有,憑空設計出一套體系,真是難如登天。歷史上的諸多公司,包括Intel、Zilog、Motorola他們,開發的體系架構並不是無懈可擊的。
等到DEC把遊戲機相關硬體開發完畢,造出原型機運到洛杉磯之後,遊戲已經基本完工。范含是用C語言寫的,這個遊戲的代碼也成為了公司內部的C語言教學範本。然後就是用委託DEC針對該處理器開發的C翻譯器翻成彙編語言,再請程序員們優化就算搞定了。
「看來你已經覺悟了。」范含說。
大約一個星期,范含見勢不妙,趕緊叫停。范含提出的每種方案都被批倒批臭了,按照他們的想法,每種CPU都應該有兩千多條指令才行。
「不好說,爭取十月份吧。」奧爾森說,「其實也快不了多少,你知道就算有十個女人也不能在一個月里生孩子。」
藍藍對這個遊戲愛不釋手那是肯定的了,沒想到UCLA的幾個教授也專門過來表示對這個遊戲感興趣。原來他們有幾個心理學的課題,專門研究兩性心理差異。相關人員對於方塊類和泡泡龍遊戲如此明顯的性別針對性感到好奇,就特地來一趟,看看是否有合作的可能。
三個方案彼此之間沒有任何關係……那是當然了……分別是Zilog的Z80、Motorola的68000和Intel的8086晶元的手冊。
范含拒絕了直接修改機型的建議,因為這在商業上幾乎沒有任何意義。但是,范含承諾可以公開一些技術細節,使得通過附加設備實現機器之間的連線。順便暗示UCLA的人可以藉此機會把區域網技術開發出來。當然,范含提供了一些Ethernet的資料權當自己的「設想」,並且鼓勵他們不要考慮任何「成本」方面的問題,只要技術上出色就行。
「那就好。」范含問,「什麼時候能出原型?」
「總之,我們應該珍惜這大好時光,一步一個腳印地干出一番事業來?」范含總結。
以目前的發展水平,想在通用計算機上面運行數學軟體,幾乎就是痴人說夢。如果僅僅是為了通用計算機開發一堆軟體包、函數庫什麼的,又沒有足夠的理由說服用戶購買自己的硬體。最後的可能一定是被用戶強迫著把軟體移植到IBM System 360上面,這絕對不是范含期望看到的場面。
這麼說來,至少有兩種計算機需要重新設計,一種為了數學家,一種為了玩家。
有了UCLA幫忙宣傳,加上自己的努力,新款遊戲機估計肯定可以吸引大量女性玩家。根據「Squares」機型用戶的反饋信息,在所有的玩家中,女性的比例僅僅佔到5%左右。范含要求廣告部門專門強調,為了那半邊天,FEEE特意開發這個新款遊戲。
有一關,頂上一個吊燈型的氣泡雲彩,只要第一發能擊中吊燈根部就可以將氣泡全滅。范含屢試屢敗,就讓給旁邊的一個美眉玩。結果該美眉順手將準星搖到右邊,一步到位,再發射,一炮打響。氣泡撞到右邊牆壁上,反彈到左邊牆壁,再擊中天花板,最後彈到目的地。整個過程一氣呵成,令范含大驚失色。
「我怎麼知道?」范含說,「一直都沒有消息。」
「怎麼同時開始了?」范含很奇怪,「信里不是已經提到了,簡單的那款先干,有浮點處理器的那個以
https://www•hetubook.com.com
後再說么?」誰規定CPU只能造成指甲蓋大小?
「壞消息是……」范含繼續說,「最近我必須全力工作,不會再有時間干點旁門左道,當然也不會有時間幫你捏造報告了。」
寫材料的時候,范含把重點放在了指令集上面。打字的時候並不是原封不動地從BROM裏面抄出來,那要抄到什麼時候?當然是「詳略得當」,不過,其他內容可以一筆帶過,唯獨指令集的部分,除了原來就有的東西之外,范含還加進去不少自己的理解和其他資料中相關的部分。
「第一個壞消息是……」范含說,「這次的時間緊,任務重,你肯定需要努力工作了。」
看著工程師們有點拘謹,范含一頓好生撫慰。
「不會吧,總不會鴉雀無聲吧?」范含說,「難道是你高壓政策強制推行下去的?」
名義上「FOR」處於中心地位,統攬規劃大權。但是實際上,這個所謂的「FOR」只有范含一個人而已。奧爾森不管具體的事,藍藍只是掛了個名,真正所有工作都砸到范含一個人身上。於是,四個DEC的工程師被奧爾森威逼利誘地趕到洛杉磯給范含當「顧問」。
「用不著擔心。」奧爾森說,「就算是原來的版本也快不了多少。不過,原始的版本確實也相當不錯,我都不信是你自己一人單槍匹馬乾出來的。」
從德州儀器定做的視頻晶元有了升級版,可以控制320×240的屏幕上面的每一個點,仍然可以同時顯示16種顏色,總共支持256種預定義的顏色。另外還單獨定做了一塊音頻晶元,矩形波兩音,三角波一音,雜波一音。這個音像規格比起任天堂的紅白機來說,稍微高了一點,估計實現的遊戲效果應該不會比紅白機差。
經過修正的提案和原來相比,簡直是面目全非。為了保險起見,范含連同原本一起打包寄給DEC總部。同時還有一封信:「敬請斧正」。原信為傳統豎式信紙,中文行楷,毛筆手寫……落款處蓋上一個名諱大印,另外還有十七八個閑章,都是打發巴杜瓦到唐人街現刻的……當然,為了照顧收信人,藍藍翻的譯文附在後面。
「真讓人傷心啊……」范含故作傷心狀,「沒想到你對我的評價竟然是這樣?」
「想當年,我們每當發現什麼地方冒煙的時候,就得抱著滅火器衝進去救火……」第三位DEC工程師仰天長嘆。
「我自己也不信。」范含厚著臉皮說,「我對硬體根本就是一外行,全都是從數學家的角度猜測需要什麼指令的。」
肯定是可能的了,范含來者不拒。
最早的微處理器應該是1971年Intel推出的4004,含2300個晶體管,字長為4位,時鐘頻率為108kHz,每秒執行6萬條指令,外觀尺寸是3×4mm。這個小倒是足夠小,不過性能實在不怎麼樣。本來就是為了計算器(不是計算機)預備的東西,能算算算術題就已經不錯了。
「那你的意思是說……」奧爾森還是有點不甘心,「最後那個不著急?」
「咳……」范含說,「怎麼樣?有什麼問題?」
當然,在開發的時候,這些東西還是作為外設,連在PDP-8上面。
1972年愚人節,Intel發布8008,一款8位的微處理器。1974年,同樣是愚人節那天,Intel發布改進后的8080,這是真正大紅大紫的第一款微處理器。再後來,Zilog公司對8080進行擴展,推出自己的產品Z80。直到今天,Z80仍然是8位處理器的巔峰之作,還在各種場合大賣特賣。范含這一代人,玩過Z80的實在不少,許多人都是從寫Z80代碼開始進入計算機這行的。
「咳……」所有人一起長嘆。
「是啊,你是沒撒謊啊。」藍藍說,「沒想到就是這種德行的一個人居然會說,工作忙得沒時間那啥?」
「當然不是,我什麼都沒管。」奧爾森說,「這回你算幫了我一個大忙,現在對於我們的合作沒人敢有意見了。」
「是么。」奧爾森說,「那就是我忘了告訴你了。」
「沒有,一點意見都沒有。」奧爾森說,「材料一到,公司里所有人都閉嘴了。」
四個人說是給范含當顧問,但范含覺得事實應該相反才對,他們干正事,自己旁邊打雜就成了。只是自己不先動手,他們確實是沒什麼事好乾。簡單地交代一下工作之後,大家又都閑下來了。
最終決定,數學界的訂單由FOR單獨接下。FOR承擔全部責任,但是僅僅負責計算機的設計,具體生產必須委託DEC代工。FEEE的業務仍然由FOR負責設計,但是全部的採購計劃都必須交給DEC,如果需要購買德州儀器或者其他公司的零件,委託DEC全權代理。
所以,信心還是十足的。
※※※
「那也應該先干第三個啊。」奧爾森說,「畢竟有浮點處理單元,正是數學家需要的。」
四位工程師看著材料陷入了沉思。
「我實話實說嘛。」范含解釋。
方塊類遊戲基本上都是大老爺們的天下,不要說高手都是清一色的男性,普通人玩起來都是男孩子佔先。畢竟這種遊戲對於計算的要求比較高,對於直覺的需要很少。范含當年帶著方塊遊戲到處踢館的時候,靠
和_圖_書的就是這種反應能力和計算速度,往往在下一個構件沒出現之前就已經構思好了處理方式,兩隻手只要機械地輸入指令就行了。
「……」
藍藍一腳把范含踹出門外。
「哇哈哈哈……」
先動手的是遊戲機,范含遞交了CPU的提案之後,就把所有其他硬體的設計都委託給了DEC,實際上就是拜託奧爾森多操心。FOR和FEEE畢竟也是奧爾森的產業,這個根本不用范含囑咐。
泡泡龍本來是日本「Taito」公司的產品,最早是個動作類型的遊戲,一隻雄性泡泡龍吐著泡泡消滅敵人,一路上過關斬將,直搗黃龍,最終拯救了一隻雌性的泡泡龍。在1994年,Taito在他們的「B-System」主機上推出了第一款我們稱為「泡泡龍」的益智遊戲,名叫「Puzzle Bobble」,可以看作是動作類遊戲的外傳。結果該遊戲迅速竄紅,原來的反而沒什麼人玩了。Taito公司再接再厲,於1995、1996和1998年在改進型的「F3-System」主機上推出了第二代、第三代和第四代。
在四個工程師看來,這次調動根本就是充軍發配,一個個毫無例外地全都耷拉著臉。
眾人點頭同意,只是情緒看起來好像還不是很高漲。
「是啊,是啊。」范含接茬,「那真是萬惡的舊社會啊!我們這些產業鏈底層的勞動人民真是生活在水深火熱之中啊……」
「無所謂。」巴杜瓦說,「不管先聽哪一個,我肯定都是被侮辱和被損害的主兒。」
昨天范含家裡的老式印表機足足響了一天,才把這三個方案打出六份來。
誰說沒槍頭就捅不死人(周星馳,《唐伯虎點秋香》)?
「好啊。」藍藍說,「我看你能堅持幾天。」
「哎呀……」范含說,「這麼一來,相應的軟體寫起來也會麻煩多了,到頭來還是來不及嘛。再說了,現在的數學家都用特殊製造的硬體處理一些專門問題,我們只要留出介面,儘可能利用現有的東西就成了。」
提出這樣的草案僅僅是一個嘗試,范含也沒指望現在就能造出東西,畢竟摩爾定律在那兒擺著呢。摩爾定律的直線筆直,一方面是對現實發展的高度概括,另一方面也證明了業界並沒有浪費時間。善有善報,惡有惡報,不是不報,時候不到。真要造出指甲蓋大小的「微處理器」,再等十年吧!
唯一的好處,就是奧爾森可以名正言順地派人過來了。
「是誰每天九點不到就打著哈欠跟我說『困了』的?」藍藍問。
本文中作者將主角第一台真正的遊戲機命名為「Kervin」,就是為了紀念這位優秀的程序員。作者比可文年紀大不了多少,要寫「謹以此文紀念……」之類的話還嫌分量不夠。總之,但願看過本章的讀者能夠記住這個名字,作者的目的就算達到了。
注3:李可文,男,網名Kervin,北京人,1979年9月18日生,2004年6月30日畢業於北京大學,同年7月1日因病去世。著名的DreamNes、DreamGB、DreamGBA的開發者,中國遊戲界模擬界的知名人士,Mop網站的資深管理員。
硬體的事已經定下來,估計就改不了了,范含也不想改。
「到如今,我們也可以不用走來走去,坐下來幹活了。不再長雞眼,改長痔瘡了……」工程師乙高興地說。
相反,如果已經有了一份現成的東西,雞蛋裡挑骨頭還是易如反掌的。現實中的技術論壇,到處都有無數大白小白們到處炫耀自己如何發現某產品的缺陷。倒不是說他們說的不對,而是說,把事先預防問題和馬後炮式的發現問題看得一樣簡單是不對的。
「一個好消息,一個壞消息。」范含跟巴杜瓦說,「先聽哪一個?」
這個方案非常苛刻,如果不是FOR和FEEE共同的股東奧爾森與DEC的特殊關係,范含根本就不想簽署。隨便哪一家公司都不會像這樣把自己綁在一棵樹上弔死。不過實在是沒辦法,誰讓這幾家之間都有裙帶關係呢。
「時間來不及呀。」范含說,「數學家們等著用呢。」
范含這幾天還不算太忙,不過就算是想找藍藍XO都不行,一句「男兒當自強,還是以事業為重的好」就給擋了回來。看來要奪回XO的主動權,就必須想方設法哄藍藍開心。
「怎麼會是這樣?」巴杜瓦情緒消沉。
「想當年,我們決定每算一道新題,就得打開機箱重新接一遍電線……」一位DEC工程師仰天長嘆。
委屈說夠了,下面就是對於自己身處這個時代表示一下由衷的喜悅了。
「已經開工了。」奧爾森說,「我以為你早就知道了呢。」
刪,還得往下刪。
「第二個好消息是……」范含繼續說,「奧爾森托我給你們帶個話兒,只要您幾位肯幫我完成這兩個項目,就有帶薪休假三個月的幹活!」
「誰捨得呀?」奧爾森說,「反正我是哪個都不想放著。」
「我什麼時候不努力了?」藍藍說,「倒是你,成天弔兒郎當,臟活累活都扔給我干!」
對此,奧爾森根本就沒有意見,「嗯」了一聲之後就讓范含「看著辦」。
FEEE的事情告一段落了,剩下的就看銷售人員怎麼運作了。范含的工作重點轉移到了數學家們這邊。
1984年1月
hetubook•com.com24日,蘋果發布了第一款圖形用戶界面的個人電腦,這給業界和普通用戶帶來的震撼是不言而喻的。Acrobat專家Ted Padova說:「為了避免一時衝動,我一直等到1月26日才買了第一台Macintosh機器」。
「就是不著急。」范含肯定地說,「對了,你們用的是哪個方案?原始版本還是修訂過的?」
「怎麼了?」奧爾森不明白,「修訂得很合理呀?這邊的人成天邊干邊誇你呢。」
「要是這樣,先暫停後面一個。」范含說,「估計什麼時候能出原型?」
「無所謂。」藍藍說,「反正你一向沒好話,狗嘴裡吐不出象牙來。」
「無所謂,反正都是好消息。」
處理完了FEEE的麻煩之後,范含和奧爾森的主要精力就放在了「FOR」上面。如何將一個皮包公司填滿,確實是個重大的問題。
現在的美國西海岸並不是十分有吸引力,相比東邊繁華的新英格蘭地區,確實像是窮鄉僻壤。只有到了後來,日本經濟發達起來,加上矽谷漸漸成為經濟增長新動力,這種情況才會改變。
很好,士氣低落,很好。
「那是誰每天困完了之後還去洗個澡坐沙發上看電視啊?」藍藍又問。
為了調動同志們工作的積極性,范含主動在FOR內部開展了「憶苦思甜」運動。
「雖然編程是枯燥的,調試是辛苦的,但是理想卻是遠大的。」DEC工程師某如是說,「哼!等咱有了浮點指令,他媽的想算正弦算正弦,想算餘弦算餘弦。一算就兩遍,算對一遍,算錯一遍!」
不管了,范含繼續下一步議程。
「嗯。」范含心說,我是知道的,嘴上說,「那就儘快吧。」
「那又是誰每天看完電視之後還打著哈欠跟我說『這回是真困了』的?」藍藍還問。
「是我。」范含承認,「確實是困了么,我的生物鍾就是這個樣子。」
至於遊戲機的命名,范含一點猶豫都沒有,就叫做「Kervin」。這是范含為了紀念中國模擬器先驅,英年早逝的李可文。雖然現在的時代他還沒有出世,但是……就當表達了自己的一份心意吧(注3)。
「這樣才好嘛,旁觀者清。」奧爾森說,「我們這些傢伙恐怕老早就被繞進去了,都不知道真正用計算機的想要什麼了。」
……
——————————
「哎……」范含一時氣結,這麼一來,自己的BROM裏面的好多代碼算是沒用了。
這些工程師都是老資格,都經歷過「先知」馮·諾伊曼佈道之前的黑暗時代,倒起苦水來那是一套一套的。范含雖然自認為心理承受能力較強,卻仍然被他們嚇了好幾跳。當年的艱苦環境實在是自己這樣的晚輩們所不能想象的。
范含之所以僅僅開發方塊類益智遊戲還有另外一層原因。因為這種遊戲不需要人工智慧,僅僅有一個隨機數發生器就足夠了。別的類型的遊戲多多少少需要管一管NPC的所作所為,只用電路實現不太容易。
數學圈內開始有訂貨了,單子還不少,要求倒是大同小異。簡單到了一句話:一個對數學家友好的計算環境。
上上個星期開始,范含抱著家裡的電傳打字機足足敲了半個月,才把這三個方案輸入到計算機裏面。
現在可知道沒有「電子版」的痛苦了,有一陣子范含甚至會經常摸摸后脖頸子,期待那裡能找到四個洞,隨便哪個都可以拉根電線接在機器上。真要如此,就像《Ghost in the Shell》那樣直接聯網算了,省得自己手打輸入太痛苦。
但是泡泡龍不同,圓的氣泡,還能彈在牆壁上反射,運動路線並不是橫平豎直的。有時候必須依賴的就是對空間的直覺。玩這個遊戲基本上是個女孩子就比男的強。范含原來不信邪,曾經狂妄地向美眉們挑戰,結果連連慘敗,請了無數頓飯。
黑白棋、五子棋之類的遊戲對於人工智慧的要求非常高,現在的條件下,就是大機器上面也未必能編出有資格和玩家一較長短的程序。射擊類、動作類遊戲稍微簡單點,但是也必須處理畫面上每一個單元的行為,儘管這種行為可能相當簡單。
這麼早就混不下去了,實在沒想到。如果前一陣決定回頭去當作家,應該還來得及,前途應該也很光明,諾貝爾獎什麼的都是小菜一碟,指日可待呀。但是現在,已經不可能收手了,自己的事業完蛋還是小事,把奧爾森他們這些朋友涮了一道可是大事。
經過這麼一改,看起來像是個提案,不像胡說八道了。
「一個壞消息,還有一個壞消息。」范含跟藍藍說,「先聽哪一個?」
注2:任天堂紅白機的處理器是6502,不是Z80,這是作者的錯誤。感謝書友指正。文中打算改為主角對於6502看不上眼,改用Z80。另外,主角想起任天堂重新奪回失地的GameBoy用的就是Z80,這樣一來也可以和後面紀念可文的情節連起來。
目前的「Squares」機型根本就沒有中央處理器(CPU),雖然有一堆處理器,不過僅僅能應付方塊類型的益智遊戲,代碼都是用電路固定住的,沒有任何改進的餘地。
只不過……
「另一個壞消息是……」范含說,「這次的時間緊,任務重,我可能連每天晚上和你XO這唯一的娛樂都沒有了。」
另外www•hetubook.com.com,FEEE僅僅是麻煩結束了,卻仍然是前途未卜。仙童散夥,德州儀器撤出之後,FEEE的工作人員幾乎都是奧爾森幫忙招聘的,有些人甚至就是從DEC直接扯過來的。正因為如此,勉強維持經營是可以的,但是想擴大規模,趁現在還沒出現競爭對手的時候勇往直前,肯定是力不從心。
凡是領會了「熱力學第二定律」重要思想的人都能明白,破壞比起建設來更容易。
「是我。」范含承認,「人類是很奇妙的,我的生物鍾比較古怪。」
「好消息是……」范含說,「最近我必須全力工作,不會再出門滿世界找事,你也不需要給我當司機、郵遞員、清潔工、接線生和哨兵了。」
想要開發新的遊戲,目前的體繫結構必須全盤推翻。新的遊戲機肯定是一台有處理器,有內存的真正的計算機,不管名字叫做什麼。
「八位的那款處理器大約一個月。」奧爾森回答,「剩下的兩款最早也得明年。」
奧爾森那邊也不好辦,DEC裏面許多人都指責他「公私不分」,借職務之便利用DEC的人力物力去支持他私人控股的公司。在商界,這樣的指責是很嚴重的,一個處理不好,被攆下台都有可能。
RISC是和編譯技術緊密結合起來的,爭取發揮處理器的全部能力,現在還沒到那步。如果一個簡單的功能都需要幾十條更簡單的指令倒來倒去,煩也煩死了,尤其是在大部分代碼都需要用彙編直接寫的今天。
「是啊,是啊。」范含接茬,「這都是託了肯尼迪總統的福啊!哎?不對!現在要感謝約翰遜總統了……啊哈哈哈……」
注1:關於SAS,作者好像記得當年聽誰說過可以零售,售價八九萬美元。要麼就是作者記錯了。書友提出現在只租不賣應該也是對的。不過這個也好改,把「八九」改為「多少」,把「買不起」改為「用不起」……不就可以矇混過關了么?
遊戲機的事情解決了,剩下的就是考慮數學界那邊的要求。數學家是無論如何不能得罪的,切記!切記!
說起來容易做起來難,范含心裏知道這個要求有多過分,但是表面上還不能顯出來。
「兩個好消息。」范含和DEC工程師甲乙丙丁四人說,「先聽哪一個?」
至今為止,有資格稱得上是「對數學家友好的計算環境」也不過寥寥幾個而已。范含用得最多的就是Mathematica,其次就是Matlab。至於Maple,功能比較單一,見了Mathematica之後就幾乎沒用過。最後就是SAS,八九萬美元一套的東西,好倒是很好,就是范含不想用。就算摸透了又能怎樣?出來工作的公司,有幾個能買得起(注1)?學會了也不過是屠龍術罷了。後來,發現一個開源的軟體SciLab,處處都向Matlab看齊,相當不錯。至於寫項目當中,萬一碰到科學計算的部分,都是掛上GNU的GSL模塊實現,LGPL協議,可以儘管放心大胆地用。
看來只剩下一條路了,就是結合硬體造出專用的計算機,除了數學環境之外沒有別的功能的計算機。當年的Apple Ⅱ型機,就是啟動后直接進入ROM Basic,一個解釋型Basic環境。所有事情,包括讀寫外部設備都是在這個環境下進行。也沒聽到用戶有什麼抱怨。
為了多出來的這四根線,寫起程序來就費勁了。當年范含總是不停地提醒自己,「左移四位」,「左移四位」,煩著呢。本來這就是權宜之計,到後來Intel自己不也是主動改成平面指針結構了么?32位字長,32位地址,多簡單。
「第一個好消息是……」范含說,「我們的提案總部那邊已經開始無異議執行了,在座諸位都被通報表揚了。」
「那是。」巴杜瓦說,「少廢話,說吧。」
和自己直接相關的就是代碼,BROM裏面有不少這些CPU的彙編代碼,還有一些內嵌許多彙編語句的C代碼,現在看來都用不上了。
「真的?」巴杜瓦喜出望外。
「到如今,我們也可以沒事踹機箱兩腳,發發牢騷了。不會因為機器三天兩頭地壞,從而被抓走盤問了……」工程師丁高興地說。
※※※
※※※
「當然是修訂過了的。」奧爾森說,「那幾個工程師已經向我們彙報過了。」
范含和工程師們把所有「指令」分成三種,「最常用」、「次常用」和「能用庫函數實現的」。最常用的指令準備直接放進處理器核心;次常用的指令做成ROM,以微代碼的形式提供,對於程序員來說是一樣的,等待今後半導體技術發展之後再放進核心;至於最後一種,只能說抱歉了。
不過,為了不打擊工程師們的積極性,范含鼓勵每個人把希望處理器實現的功能都作為建議寫出來放在最後。於是乎,接下來的幾天成了專業人士們的「意淫」時間。
「真的嘛。」范含說,「這回真的是很忙。」
既然能夠應付圖形用戶界面的需要,其性能應該是不用懷疑的。唯一的問題就是可擴展性方面。由於體繫結構內部的限制,想要不斷地與時俱進實在是困難。就是因為這個原因,蘋果後來的機型不得不轉向PowerPC體系,這個體系也是Motorola和IBM合作開發的。
「想當年,我們每接完一遍電線就得滿樓道和_圖_書溜達,看看哪裡開始冒煙……」另一位DEC工程師仰天長嘆。
「是我。」范含承認,「這個你不會不信吧,就是真困了,我可沒撒謊。」
這種建議根本就不會提出來。不要說奧爾森絕對不會答應,就是范含自己也不願意。雖然說向IBM宣戰並不是自己的本意,不過既然已經吹出來了,再去點頭哈腰地舔IBM的屁股,自己的骨頭還沒那麼賤。
范含對於硬體一知半解,挑大樑是挑不了的。所以,再三強烈要求奧爾森派一群內行過來幫忙。自己最多在旁邊出出主意,關鍵時刻提示一下,估計效果會好得多。
按照范含的計算,以現在的技術水平,做成巴掌大小應該是沒問題的。
任天堂的著名「紅白機」用的是6502處理器(注2)。這款遊戲機上面有多少大作范含已經數不過來了。原來玩模擬器的時候,ROM總是找不齊。每次以為自己的收藏已經足夠多了的時候,總是會在一個偶然的機會裡,從互聯網的某個角落裡面發現一款新的FC遊戲。這就證明了8位處理器在電子遊戲的洪荒時代還是很有活力的,至少當前在遊戲機上面的應用非常有前途。
……
以前早就猜到會有這麼一天,再也不能藉著「前人」的工作成果濫竽充數下去了。但是沒想到這一天來得實在太快,自己現在的事業還沒有起飛。現在除了一套發展前途死路一條的「Squares」機型,一個C語言的設定,別的還什麼都沒有。
簡而言之,就是鼓勵他們增加新的指令,凡是常見任務,並且需要幾十上百條彙編語句才能實現的功能,一律可以當成指令來用。其實就是借鑒這些老工程師的經驗完善這些處理器的設計。
以前還在上學的時候,就聽說北京某校計算機系的某位師哥,畢業設計就是實現8086的指令集。在用了無數現成的組件和可編程晶元之後,擺滿一整張桌子的「CPU」造好了。這可是真正的一塊完全可以跑起來DOS的「CPU」。
Mathematica那種圖形界面的集成環境現在是別指望了,就是Matlab,也只不過勉強可以寫寫文本界面的那種交互形式。問題在於,目前DEC的計算機沒一個范含看得上眼的,一想起自己即將給這些規格歪七扭八的東西寫軟體,心裏就有抵觸情緒。就目前來說,任何一個客觀、公正、中立的程序員,對於實現平台的選擇都可以做出唯一的決定:IBM System 360。
「到如今,我們也可以住在距離機房一英里以內,天天上門了。不用找人簽字蓋章,只要半夜排隊就成了……」工程師丙高興地說。
「就算堅持不住也沒什麼嘛。」范含邊往外走邊說,「見著美女,當操不讓,這才是男兒本色。」
用來應付數學計算的處理器就不能這麼簡單了,至少也得是16位的。這方面的例子范含一下子就想到了Motorala的68k系列。同樣也是至今仍然大賣特賣的處理器,同樣也是當年無限風光的架構。蘋果的Macintosh系列機型,用的就是這款處理器。
眾人接過,入手沉甸甸的。
經過了短暫的適應之後,工程師們開始進入狀態了,每天都討論得熱火朝天。范含又無所事事了,成天給諸位沏茶倒水,和藍藍打情罵俏。
「大家看看這三個方案。」范含拿出十八本「小冊子」,「來,每人一份。」
於是,新開發的第一個遊戲就想好了,泡泡龍。這款遊戲是極少數能讓女孩子揚眉吐氣的益智遊戲之一。
※※※
這個遊戲沒什麼變種,所有版本都是大同小異,僅僅是關卡數量和質量的差別,還有美工的水平而已。所以范含並沒有考慮什麼後顧之憂,全力以赴開發好引擎,具體的關卡設計找別人負責就是了。
不過,自己又不是沒有本事只會混的傢伙,當初既然選擇進了這一行,就是為了轟轟烈烈折騰一番。老人家教導我們說,世上怕就怕認真二字。只要認真起來,這兩個小Case只不過前進路上兩顆小小的絆腳石罷了。步子大點兒,一腳跨過去,說不定連拌都拌不著。
作為16位的處理器,一般來說應該有16根地址線才對,這樣一來能夠定址64k內存。現在的PDP-8滿打滿算也不過是32k,雖然每個字是12位的。但是在8086的時代,64k顯得不夠用了,Intel就簡單地增加了4根地址線,最大可以定址1MB。
畢竟寫程序的是人不是機器,人的精力是有限的,不能把大部分時間放到一些例行公事上面。就像漢諾塔遊戲,規則是預定的,先挪哪一個,挪到什麼地方去,都是板上釘釘的事。盤子少點還好辦,一多起來往往就亂套,記不住哪個是哪個了。所以這個漢諾塔才能被好事者做成「遊戲」,專門拿來考驗人的耐心和記憶力。
「沒什麼。」范含只好說,「我就是擔心進度而已。」
UCLA有個要求,希望能夠實現方塊類遊戲和泡泡龍的雙人對戰,通過調整一些獎勵參數使得參与測試男女兩名志願者基本上可以打成平手。通過大量的志願者獲得的這些參數有可能會對於今後的研究有重要意義。
「想當年,我們每次滅完火之後,都必須全體出動,人手一把鑷子捉臭蟲……」最後一位DEC工程師仰天長嘆。
很好,士氣高漲,很好。