登月50年:计算器与计算器游戏发展简史
内容速读:
1969年7月20日,阿波罗11号的指令长尼尔·阿姆斯特朗在月球上第一次留下了人类的足迹。通过电视转播,一位名叫吉姆·斯托尔的美国高中生与全球观众一起目睹了历史性的一刻。在游戏被发布后的40余年里,各种《登月》的版本被各种计算机语言重新实现并广泛地改编到各个计算机平台上。
“休斯顿,这里是静海基地。‘鹰’着陆成功。”
——阿姆斯特朗在月球和地球的通话
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时代:彩色的、移植的及其它
随着主打高能耗比的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”看小说的愿望最终得以实现。
■ 尾声:计算器与登月50年
自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日,是历史上第一款手持科学计算器——能够直接进行三角函数、对数函数和指数函数的运算,以极高的精度(甚至超过了大多数大型计算机的精度)与便捷的使用正式宣判了计算尺的死刑。
如今,计算器的辉煌时代也已经成为过去式。将来,随着移动技术的发展,我们是否会在某一天宣判计算器的死刑呢?那一天会在何时到来尚不可知,但我认为,在未来一段时间里,计算器社区和计算器的使用者仍然会存在,只要这个群体存在,就会继续消费各种计算器。只是在缺乏第一方支持与缺乏大量开发者提供优质软件的情况下,这个圈子终究会消失在互联网与现实的角落里,成为那些玩家的共同回忆。
时过境迁,但愿你心中的探索信仰永不改变——就如“登月”一样。
* 本文系作者投稿,不代表触乐网站观点。