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