「休斯頓,這裡是靜海基地。『鷹』著陸成功。」
——阿姆斯特朗在月球和地球的通話
1969年7月20日,阿波羅11號的指令長尼爾·阿姆斯特朗在月球上第一次留下了人類的足跡。通過電視轉播,一位名叫吉姆·斯託爾(Jim Storer)的美國高中生與全球觀眾一起目睹了歷史性的一刻。
在阿波羅計劃中應用的阿波羅導航計算機(AGC)是世界上第一臺以矽基集成電路為核心的計算機,通過對數據的實時處理,導航與控制登月飛船,幫助阿波羅計劃獲得成功。
自此,微電子技術成為第三次工業革命的重要一環,帶動人類文明進入嶄新的21世紀。時至今日,當我們用於娛樂的手持遊戲機從美泰運動系列遊戲機發展到最新的任天堂Switch時,是否有人會想到,當年曾經有一群熱愛研究電子產品的黑客們,嘗試用手持計算器玩遊戲呢?
懷揣著一個大膽的想法,在阿波羅11號登月後不久,在列剋星敦高中就讀的斯託爾便在由數字設備公司(DEC)生產的PDP-8微型計算機上,用FOCAL程式語言編寫了「Lunar Landing Game」——《登月》。斯託爾隨後將遊戲發布至「DEC用戶通訊」(DEC users' newsletter),並將原始碼分發給了讀者。
《登月》的玩法正如其字面意思,玩家輸入的數據經過計算機的處理後代入一系列方程式進行計算,作為登月飛船的參數以模擬登陸月球。
在遊戲被發布後的40餘年裡,各種《登月》的版本被各種計算機語言重新實現並廣泛地改編到各個計算機平臺上。儘管在之後數十年間。斯託爾本人對這些《登月》遊戲並無了解,但其影響之深遠,連計算器這樣的平臺也不被放過,比如惠普公司生產的HP-25。
HP-25是生產於1975~1978年間的手持可編程科學計算器,使用一塊10位紅色LED(發光二極體)顯示屏。雖然沒有數據傳輸接口,但是擁有可存儲49步按鍵的RAM與多個寄存器。它的程序與其說是程序,不如說是一種「鍵盤宏」,存儲的是計算器的按鍵輸入序列。
當時,以各種《登月》為代表的計算器遊戲受限於手持計算器簡陋的硬體,玩法過於「硬核」,幾乎沒有圖形顯示,所謂的遊戲僅是給工程師與黑客們作為消遣,但正如登月的壯舉本身一樣,人們用計算器玩遊戲的大膽創舉得到了肯定,這給了後來者無盡的啟發。
1985年,微軟發布了Windows 1.0作業系統,史蒂夫·賈伯斯正式從蘋果辭職,《超級馬力歐兄弟》發售。與此同時,卡西歐發布了首款「圖形計算器」——fx-7000G。
fx-7000G是第一款投放市場的圖形計算器,開創了手持計算器發展的新領域。它擁有一塊96×64像素的LCD(液晶)顯示屏,有422位元組空間用於存儲程序。除了一般計算器的運算功能,它的LCD更能繪製多種統計圖與用戶定義圖形。也正因為圖形的直觀性,計算器除了作為工程領域的生產力工具,也成為各類工科學科的教學工具,開始走進課堂。
與此同時,日後壟斷北美圖形計算器市場的德州儀器(Texas Instruments)公司加入了圖形計算器的研發。
1993年,繼1990年發布的TI-81圖形計算器之後,德州儀器發布了同樣面向教育市場的圖形計算器——TI-82,它使用一顆6 MHz的Zilog Z80處理器。Z80推出於上世紀70年代,是Intel 8080的改進產品,價格更低,結構簡單,很適合用來研究。
由於它首次提供了數據傳輸接口與彙編語言支持,鼓舞了用戶採用計算器進行程序開發的熱情。雖然用彙編開發的程序效率更高,功能更強大,但Z80再簡單,彙編語言也不是那麼簡單就學會的。可是,即使你不會彙編,用內置的類BASIC語言編寫一些簡單的遊戲就相對容易得多,編寫完程序後,也可以通過數據接口在計算器間傳輸程序。
在網際網路尚未普及之時,這種面對面分享的方式推動了計算器社區的發展,吸引了更多人加入「玩」計算器的行列。時至今日,當那些在「TI」系列圖形計算器上玩遊戲裝酷的小屁孩們畢業後,在計算器上分享程序、上課玩計算器遊戲成了他們的共同回憶。
雖然Game Boy早在1989年就在北美發售,但要在課堂上摸魚,玩計算器仍是最佳選擇——上課時把Game Boy放在課桌上可不是什麼明智的決定。學生們也對計算器遊戲開發充滿熱情。畢竟,誰不想在計算器上寫出一個又酷又好玩的遊戲,然後發給自己的同學炫耀呢?
「TI」圖形計算器是北美多數數學與工科教科書的默認配置,在北美教育領域十分普及。自90年代起,大量學校統一為學生和實驗室採購「TI」計算器和配套的實驗用傳感器。所以,儘管其配置自推出以來幾乎不變,且一直售價高昂,在國外的保有量卻十分巨大,直到今天都是如此。甚至可以這麼說,圖形計算器之於美國高中生,如「五三」之於中國高中生。
儘管硬體水平落後,國外計算器社區在今天仍然保持著相當的規模,其中成員多以初、高中生為主,研究如何在計算器上摸魚仍然是主要課題之一。不過,現在的學生們有了更多選擇,課餘時間鑽研計算器的還是少了許多——在平均年齡可能不到20歲的年輕人小圈子裡,沒有足夠的計算機知識積累,是難以對計算器進行深入研究的。
由於計算器屏幕沒有色彩和背光,解析度僅有96×64像素,即使是英文字母也僅能顯示寥寥幾行,加之大部分程序由學生在課堂或課餘時間編寫,所以,當時的計算器遊戲用現在的眼光來看是過於粗陋的。但在一些人眼裡,這些特徵卻使計算器更有「Vintage」的味道,因此吸引了一些復古愛好者開始接觸計算器社區。
回到TI-82發布的3年前。1990年,惠普推出了HP-48圖形計算器的首款產品——HP 48SX,採用了HP自研的Saturn微處理器。
HP 48計算器是面向高端用戶的產品,支持一種基於堆棧的程式語言RPL,它被認為是逆波蘭表達式(RPN)和Lisp表達式的組合體,有一個非常的酷炫的特性——沒有括號!
高度的開放性與這種非常「酷」的程式語言激發了黑客們開發計算器的熱情。1995年,HP 48平臺上的《毀滅戰士》移植版問世了,這使HP 48成為最早能運行《毀滅戰士》的計算器。
在HP 48平臺的《毀滅戰士》發布的同年,德州儀器發布了TI-92圖形計算器,採用一塊10MHz的摩託羅拉68K處理器。
因為採用了QWERTY布局的鍵盤,TI-92不僅外形像個人電腦,也被美國相關考試機構歸類於個人電腦,被禁止在各類考試中使用。德州儀器為此另外生產了使用相近配置但採用標準鍵盤布局的產品TI-89與TI-89 Titanium,面向教育市場發布。
對學生的不幸卻是對黑客們極大的幸運。「TI」計算器對社區的研究沒有做出任何限制,大名鼎鼎的68K處理器也沒有辜負黑客們的期望,開放的平臺使各類軟體層出不窮(自然包括了《毀滅戰士》的移植版)。儘管屏幕會有一定的拖影現象,但以這塊240×128的高解析度屏幕為畫布,黑客們的想像力有了充分的發揮空間。
我本人也曾有幸入手了一臺升級了188KB內存並加入了2.7MB快閃記憶體的TI-92升級版Voyage 200,在它的遊戲中,讓我印象最深的是《銀河戰士》的一個移植版本。
卡西歐是推出第一款圖形計算器的廠商,面對德州儀器和惠普的挑戰自然不甘落後。
1996年,卡西歐推出了新品CFX-9850G。它的CPU採用了一塊定製的日立HCD6212,參數不詳,它最有趣的地方是擁有一塊支持顯示橙色、藍色和綠色的「假彩色」LCD——由3種顏色的偏光片混合成的彩色,產生顏色的原理類似於灰度變化。雖然被稱為「假彩色」,CFX-9850G在事實上成為了世界上第一款擁有彩屏的圖形計算器。
由於資料缺乏,這款計算器的軟體均以內置BASIC開發,社區研究的成果也十分有限(甚至通過逆向工程獲得它的CPU主頻也沒有成功)。作為第一款彩屏圖形計算器,它並沒有掀起多大的波瀾。但有趣的是,使用彩屏並沒有增加它的耗電量,與前代FX-9750G續航時間一致,這塊彩屏就權當添頭了。
1999年,卡西歐又在CFX-9850G及其衍生型號的基礎上推出了Algebra FX 2.0(簡稱AFX 2.0,前代型號AFX 1.0由於設計問題未能普及)。
大概是卡西歐覺得「假彩色」LCD過於雞肋,AFX 2.0改回了單色LCD。不過,AFX 2.0最有趣的地方卻是它的處理器。AFX 2.0採用了一塊運行在8 MHz、兼容Intel 80186指令集的NEC V30MX處理器,這使它可以運行ROM-DOS——一種為嵌入式設備設計的MS-DOS系統的變種。
編程方面,除了內置的CASIO BASIC可供使用,也支持使用C與Pascal編程。由於其獨特的處理器,使不少DOS平臺下的程序(自然包括不少DOS遊戲)可直接在AFX 2.0上運行。有鑑於此,我們可以將AFX 2.0當作一臺非常有趣的掌上個人電腦。
隨著主打高能耗比的ARM處理器在各類手持設備上的普及,圖形計算器領域也深受影響。
2007年,德州儀器發布了面向教育市場的Nspire圖形計算器,採用定製的90MHz ARM9處理器。使用ARM處理器的設備在我們當今使用的手持消費電子產品中普及程度之高自不必多說,它相對強大的配置自然也激發了黑客們的研究熱情,320×240像素的高解析度灰度LCD對玩遊戲也是十分有利的。
由於市場定位原因,為了保證學生不會使用計算器在考試中作弊,除了內置的BASIC和後來加入的Lua之外,德州儀器並沒有公開任何編程支持,但是這並不能阻止黑客們。通過對Nspire的研究,黑客們推出了Ndless——一款針對Nspire的「越獄」軟體,提供了一套SDK(軟體開發工具包),使Nspire能夠運行C、C++、彙編等語言編寫的各種軟體。
德州儀器自然不會放任Nspire變成遊戲機,每次系統更新,Ndless利用的漏洞就會被修復,但黑客們研究新固件後總能捲土重來。德州儀器在後期發售的版本中通過更新硬體封堵漏洞,逼迫黑客針對新機型重新開發。
2011年,德州儀器推出TI-Nspire CX圖形計算器,除了將處理器主頻升級至132MHz並提升存儲容量外,還將屏幕升級為彩色,並將乾電池升級為可充電鋰電池。2019年,新款TI-Nspire CX II發布,處理器主頻更新至396MHz,其它參數基本不變,應用程式則向下兼容。
從TI-Nspire CX發布的2011年至2017年這段時間裡,隨著Ndless的跟進,計算器社區迎來了又一春——Ndless為黑客們解除了限制的同時,各類自製軟體也如井噴一般發布,其中不乏各路大佬編寫的模擬器軟體。Nspire採用了4比3的屏幕比例,解析度為320×240像素,不需要對顯示比例進行調整就可以運行各種遊戲,較為強大的硬體也使各類模擬器運行流暢,體驗良好。
擁有了模擬器,就意味著有了幾乎無限的遊戲庫,模擬器遊戲也被認為是計算器遊戲可玩性的巔峰。學生們利用計算器內置BASIC在業餘時間搗鼓出來的遊戲,在上課時自娛自樂當然不錯,但綜合各方面素質,顯然是比不過那些商業公司發行的遊戲。
但是,在計算器上玩這些模擬器遊戲有兩點不足:一是計算器沒有音頻輸出(雖然在必須用計算器玩遊戲的場合下也不適合出聲);二是由於TI-Nspire的按鍵採用了按鍵彈片(又稱鍋仔片)設計,鍵程短且硬,操作手感受到了一定影響。
在國外計算器社區積極發布各類軟體、進行研究的同時,國內社區的開發者也在TI-Nspire平臺上發布了大量軟體,其中甚至包括《RPG Maker》製作的同人遊戲和《仙劍奇俠傳》的移植。
在ARM時代,惠普公司也逐漸轉向使用ARM處理器。
一開始,HP 39/48系列使用的Saturn處理器晶片由NEC生產。Saturn停產後,惠普聯合中國臺灣的Kinpo公司開發了基於ARM的"Saturn+"模擬器,以在ARM設備上模擬Saturn處理器。
2006年,惠普發布了3款圖形計算器:HP 50g、HP 39gs與HP 40gs,前者面向工程市場,支持SD卡並升級了屏幕解析度;後兩者面向教育市場,配置相近。3款計算器均採用了三星的75 MHz S3C2410A ARM9處理器,為了能兼容之前平臺的程序而採用Saturn+模擬器,導致計算效率低下,耗電量大,但一些愛好者製作了SDK,為C語言程序開發提供支持,這些基於C語言的程序能直接在實機上運行並能將處理器頻率提升至200MHz(需要指出的是,受限於SRAM的速度,單純的處理器超頻作用有限)。
2011年,HP發布了HP 39gII圖形計算器,採用飛思卡爾的80 MHz STMP3770 ARM處理器,固件雖然經過重寫,卻是一個半成品。後來官方開發人員出來解釋是因為開發轉向了新產品,聯想到TI-Nspire CX的推出也是在這一時期,推測是惠普迫於德州儀器同期推出新品的壓力而放棄了對HP 39gII的支持。由於固件完成度低,HP 39gII實機體驗有非常多的Bug,以至於有人為其列出了Bug清單。
2013年,在HP 39gII不完善的固件基礎上,HP重新設計了硬體,推出了對標TI-Nspire CX的新產品——HP Prime圖形計算器。
HP Prime最初版本搭載了三星400 MHz S3C2416XH-40基於ARM9的處理器,擁有一塊彩色多點觸控屏幕。除了高端的硬體外,還有一大賣點:它移植了運行在個人電腦上的開源數學軟體Xcas。HP Prime2018年又發布了更新的硬體版本G2版,處理器升級為基於ARM Cortex A7 528MHz的NXP i.MX 6ULL MCIMX6Y2。遺憾的是,由於主要面向教育市場,直至我撰寫本文時它仍然沒有第一方或第三方SDK可用,因此,HP Prime僅能使用系統內置的類BASIC語言——HP PPL。
儘管系統較為封閉,HP Prime在各類規格上與TI-Nspire對比並不落下風,HP PPL語言也足以寫出各類有趣的遊戲。不過,由於沒有提供相關開發工具,黑客們對HP Prime興趣不大,遊戲數量較少,遊戲畫面較為簡陋。雖然HP PPL提供了與觸控螢幕交互的功能,但使用觸控螢幕功能的遊戲並不多,畢竟多數人習慣使用有更大屏幕的智慧型手機。
HP Prime是惠普目前唯一在產的產品,計算器社區的惠普擁躉們一直有為它引入Python等程式語言、提高開放度的呼聲。於是,在今年推送的固件更新中,HP Prime添加了對部分Python語法的支持。
將目光轉向國內,過去幾十年裡,出現我們身邊的計算器不勝枚舉。
與美歐等市場不同,談起中國的計算器,就不能不提人們眼中的「潮牌」——卡西歐。如果算上那些仿造卡西歐的變種,卡西歐在中國手持計算器市場的份額就像德州儀器在北美一樣,處於壟斷地位。
1972年中日建交後,憑藉地緣與政策優勢,日企成為最先一批進入中國市場的外資企業。1980年,卡西歐電子計算器進入中國,卡西歐後來在1985年設立了北京事務所。
1999年,卡西歐fx-82/991 SX成為首款進入中國的科學計算器。自此,我們便可以在學校門口的小賣部與全國的新華書店裡買到卡西歐的科學計算器了。
卡西歐影響更深遠的是緊接著在2000年上市的fx-82/991TL與2003年上市的fx-82/991MS科學計算器。
作為人民教育出版社與部分考試的欽定產品,相信讀者們一定在數學書上看到過那些長長一串的計算器按鍵序列實例。它們使用的便是fx-82/991MS科學計算器,也正因此,fx-82/991MS被廣泛仿造。
限於產品定位是給中小學生學習的工具,這類科學計算器僅提供了寥寥幾個變量與有限的數學功能,完全沒有提供編程功能。對大多數人來說,這種科學計算器唯一的娛樂可能只限於用隨機數擲骰子或者比手速,也因此,它們被一些研究圖形計算器的玩家戲稱為「年輕人的第一件古董」。
然而,因為fx-82MS初版在電路板上留出了大量的測試觸點,有心者以鉛筆塗抹的方式將它們連接起來,成功地將低端型號fx-82MS升級至高端型號fx-991MS,並解鎖了對應的功能,自此掀開了卡西歐計算器破解的風潮。
儘管卡西歐很快將硬體漏洞補上,但是這並不能阻止上課時無聊的學生們。2005年,卡西歐發布了fx-82/991es科學計算器,摒棄了段碼顯示而採用了點陣顯示屏。儘管受限於科學計算器低端的軟硬體,機智的我國學生們通過發揮強大的想像力,成功「發明」了以《三國殺》為代表的獨特遊戲形式。更有甚者,通過特定的按鍵輸入造成計算器故障,實現了各種「爆機」玩法。
在一次機緣巧合之下,一位網友找到一份計算器晶片生產廠商的技術手冊,發現這個手冊在舉例晶片的應用範圍時提到了科學計算器,配圖使用了fx-82es。於是,網友大膽猜測,這就是fx-82es使用的主晶片。
查閱手冊後,網友發現,這款晶片支持的輸入電壓高於fx-82es使用的1.5V——最高可提升至4V左右。於是,網友大膽地給計算器多串聯了一顆紐扣電池,之後,計算器的計算速度明顯加快,fx-82es的超頻宣告成功。
這些科學計算器過去廣泛地通過線下渠道銷售,今天,也可以在學校門口的文具店買到,讓更多人接觸到了卡西歐計算器或以卡西歐為藍本的變種。
除了面向中學生的fx-82/991系列科學計算器,卡西歐在中國還發售了面向大中院校與工程測繪的9860 G/GII與面向國際考試的fx-CG Prizm。這些機器均採用了日立開發的SH3或者SH4處理器,並有第一方或第三方SDK等支持,能夠使用C、C++等高級語言進行軟體開發。自然,遊戲開發是不會被放過的了。
不知是有意還是無意,卡西歐並沒有吸取在fx-82MS上被利用漏洞升級的教訓。相對便宜的低端型號fx-9750GII可以通過刷機升級到fx-9860GII,「9860」系列圖形計算器在國內計算器社區裡十分普及,這就是原因之一。
除了遊戲開發,國內社區裡也有不少人試著為「9860」系列計算器編寫電子書軟體。雖然國外網友也編寫了不少電子書軟體,但軟體界面都是英文,使用不便,卡西歐也沒在計算器中加入GBK等編碼支持。於是,研究如何給計算器加入中文字庫成了國內社區的研究方向之一。經過網友的不懈努力,使用「9860」看小說的願望最終得以實現。
自1970年第一款手持計算器發售於日本以來,手持計算器已經走過了整整50個年頭。在這之後很長的一段時間裡,手持計算器成為最新銳的行動裝置技術實驗的戰場之一,對微電子技術的發展起到了長足的推動作用(一個有趣的事實是,Intel為日本Busicom公司的計算器發明了第一款微處理器4004)。一時間,手持計算器市場百花齊放,好不熱鬧。
鬥轉星移,曾經生產過計算器的廠商一個個停止了新計算器的研發,或在70年代激烈爭奪市場的「計算器大戰」中破產倒閉,或轉向其它消費電子產品的生產。放眼全球,僅有寥寥幾個廠商仍在研發新型計算器。在當代微電子技術與行動裝置技術大發展的背景下,個人電腦、手機甚至是網頁計算器的計算速度與換代速度都遠高於手持計算器。一年甚至半年一換的最新款智慧型手機才是最新技術的寵兒。
除了出於收藏、研究目的的玩家,人們購買實體計算器的理由幾乎僅僅是學習或工作需要(應試或測繪行業等野外工作)。因此,近年推出的新款計算器幾乎都面向教育市場,其中有不少添加了對Python的支持。
在撰寫本文時,我有幸找到了一位曾編寫過不少計算器遊戲的大佬(@diameter)。談起為什麼要玩計算器時,他說原因很簡單,因為他買不起UMPC(超級移動個人計算機,可以理解為巴掌大的超極本)。當時,他所在的學校裡沒有多少人能買得起智慧型手機,所以,只能買一臺fx-9750GII編程打發時間。
diameter說:「我記得是在2009還是2010年買的第一臺fx-9750GII。我那兒是鄉鎮中學,班裡見過最早的一臺iPhone是3GS,有智慧型手機的人是少數。到了高二,營業廳開始送QVGA屏幕的垃圾三星安卓機,暑假大家討論買中興的哪一臺好。高中畢業前,智慧型手機流行起來,可以人手一臺了。就算是Geek,想要搞一些與眾不同的玩意,手機也是比計算器更好的展示技術的平臺。」
「要是當年我配得起iMac和iPhone,也許我就去開發iOS App了。」diameter半開玩笑地說,「歸根到底還是窮。」
幾年後,diameter從學校畢業,雖然現在已經沒有那麼多時間,但他仍然將收集計算器作為自己的業餘愛好之一。
對現在的我們來說,diameter玩計算器的原因或許有點難以理解——廉價的智慧型手機、隨時可以通過網絡獲取的最新遊戲,還有網絡小說和網劇。即使是學生,也不再只有計算器可玩。這些笨重如磚頭的計算器除了用來考試與展示格調,還有什麼意義呢?diameter也說,因為智慧型手機開始普及,他明顯感到計算器社區在衰落。他似乎坦然接受這一切:「反正就是玩唄,用戶就是論壇裡那些人,來來去去都是他們。」
想起當年的「黑歷史」,diameter總結道:「計算器,稍稍玩一下就可以了,別認真,我是靠拍照騙來的女朋友,計算器可不行。」
在這半個世紀中,儘管以《登月》玩法為核心的各種遊戲被發布於多個平臺,其原作者斯託爾——現在是美國布蘭代斯大學的計算機科學教授,卻在2009年的採訪中提到:「直到幾個月前,有人發郵件告訴我這件事,我才完全意識到除了高中時寫的那款遊戲外,我沒有玩過任何一款《登月》遊戲。」
同樣在2009年,HP-35科學計算器獲得「IEEE電氣工程和計算裡程碑」獎。
HP-35推出於1972年2月1日,是歷史上第一款手持科學計算器——能夠直接進行三角函數、對數函數和指數函數的運算,以極高的精度(甚至超過了大多數大型計算機的精度)與便捷的使用正式宣判了計算尺的死刑。
如今,計算器的輝煌時代也已經成為過去式。將來,隨著移動技術的發展,我們是否會在某一天宣判計算器的死刑呢?那一天會在何時到來尚不可知,但我認為,在未來一段時間裡,計算器社區和計算器的使用者仍然會存在,只要這個群體存在,就會繼續消費各種計算器。只是在缺乏第一方支持與缺乏大量開發者提供優質軟體的情況下,這個圈子終究會消失在網際網路與現實的角落裡,成為那些玩家的共同回憶。
時過境遷,但願你心中的探索信仰永不改變——就如「登月」一樣。
* 本文系作者投稿,不代表觸樂網站觀點。