AG和记在阿波罗 11 号登月后不久,吉姆・斯托尔写出了史上第一个通过计算器运行的电子游戏。
—— 阿姆斯特朗在月球和地球的通线 号的指令长尼尔・阿姆斯特朗在月球上第一次留下了人类的足迹。通过电视转播,一位名叫吉姆・斯托尔(Jim Storer)的美国高中生与全球观众一起目睹了历史性的一刻。
在阿波罗计划中应用的阿波罗导航计算机(AGC)是世界上第一台以硅基集成电路为核心的计算机,通过对数据的实时处理,导航与控制登月飞船,帮助阿波罗计划获得成功。
自此,微电子技术成为第三次工业革命的重要一环,带动人类文明进入崭新的 21 世纪。时至今日,当我们用于娱乐的手持游戏机从美泰运动系列游戏机发展到最新的任天堂 Switch 时,是否有人会想到,当年曾经有一群热爱研究电子产品的黑客们,尝试用手持计算器玩游戏呢?
怀揣着一个大胆的想法,在阿波罗 11 号登月后不久,在列克星敦高中就读的斯托尔便在由数字设备公司(DEC)生产的 PDP-8 微型计算机上,用 FOCAL 编程语言编写了“Lunar Landing Game”——《登月》。斯托尔随后将游戏发布至“DEC 用户通讯”(DEC users newsletter),并将源代码分发给了读者。
1973 年,运行在 PDP-11 上,使用 GT40 矢量图形显示终端的《登月》移植版,可使用一支集成光笔进行操控
《登月》的玩法正如其字面意思,玩家输入的数据经过计算机的处理后代入一系列方程式进行计算,作为登月飞船的参数以模拟登陆月球。
在游戏被发布后的 40 余年里,各种《登月》的版本被各种计算机语言重新实现并广泛地改编到各个计算机平台上。尽管在之后数十年间。斯托尔本人对这些《登月》游戏并无了解,但其影响之深远,连计算器这样的平台也不被放过,比如惠普公司生产的 HP-25。
HP-25 是生产于 1975~1978 年间的手持可编程科学计算器,使用一块 10 位红色 LED(发光二极管)显示屏。虽然没有数据传输接口,但是拥有可存储 49 步按键的 RAM 与多个寄存器。它的程序与其说是程序,不如说是一种“键盘宏”,存储的是计算器的按键输入序列。
当时,以各种《登月》为代表的计算器游戏受限于手持计算器简陋的硬件,玩法过于“硬核”,几乎没有图形显示,所谓的游戏仅是给工程师与黑客们作为消遣,但正如登月的壮举本身一样,人们用计算器玩游戏的大胆创举得到了肯定,这给了后来者无尽的启发。
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”的味道,因此吸引了一些复古爱好者开始接触计算器社区。
HP 48 计算器是面向高端用户的产品,支持一种基于堆栈的编程语言 RPL,它被认为是逆波兰表达式(RPN)和 Lisp 表达式的组合体,有一个非常酷炫的特性 —— 没有括号!
高度的开放性与这种非常“酷”的编程语言激发了黑客们开发计算器的热情。1995 年,HP 48 平台上的《毁灭战士》移植版问世了,这使 HP 48 成为最早能运行《毁灭战士》的计算器。
HP 48GX 运行《毁灭战士》,除了常规的串口通讯,它还可以红外通讯(当遥控器用)
在 HP 48 平台的《毁灭战士》发布的同年,德州仪器发布了 TI-92 图形计算器,采用一块 10MHz 的摩托罗拉 68K 处理器。
因为采用了 QWERTY 布局的键盘,TI-92 不仅外形像个人电脑,也被美国相关归类于个人电脑,被禁止在中使用。德州仪器为此另外生产了使用相近配置但采用标准键盘布局的产品 TI-89 与 TI-89 Titanium,面向教育市场发布。
TI-92 或许是长得最像个人电脑的计算器之一,屏幕分辨率在当时的计算器中是最高的
对学生的不幸却是对黑客们极大的幸运。“TI”计算器对社区的研究没有做出任何限制,大名鼎鼎的 68K 处理器也没有辜负黑客们的期望,开放的平台使各类软件层出不穷(自然包括了《毁灭战士》的移植版)。尽管屏幕会有一定的拖影现象,但以这块 240×128 的高分辨率屏幕为画布,黑客们的想象力有了充分的发挥空间。
我本人也曾有幸入手了一台升级了 188KB 内存并加入了 2.7MB 闪存的 TI-92 升级版 Voyage 200,在它的游戏中,让我印象最深的是《银河战士》的一个移植版本。
卡西欧是推出第一款图形计算器的厂商,面对德州仪器和惠普的挑战自然不甘落后。
1996 年,卡西欧推出了新品 CFX-9850G。它的 CPU 采用了一块定制的日立 HCD6212,参数不详,它最有趣的地方是拥有一块支持显示橙色、蓝色和绿色的“假彩色”LCD—— 由 3 种颜色的偏光片混合成的彩色,产生颜色的原理类似于灰度变化。虽然被称为“假彩色”,CFX-9850G 在事实上成为了世界上第一款拥有彩屏的图形计算器。
由于资料缺乏,这款计算器的软件均以内置 BASIC 开发,社区研究的成果也十分有限(甚至通过逆向工程获得它的 CPU 主频也没有成功)。作为第一款彩屏图形计算器,它并没有掀起多大的波澜。但有趣的是,使用彩屏并没有增加它的耗电量,与前代 FX-9750G 续航时间一致,这块彩屏就权当添头了。
大概是卡西欧觉得“假彩色”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 当作一台非常有趣的掌上个人电脑。
2007 年,德州仪器发布了面向教育市场的 Nspire 图形计算器,采用定制的 90MHz ARM9 处理器。使用 ARM 处理器的设备在我们当今使用的手持消费电子产品中普及程度之高自不必多说,它相对强大的配置自然也激发了黑客们的研究热情,320×240 像素的高分辨率灰度 LCD 对玩游戏也是十分有利的。
由于市场定位原因,为了保证学生不会使用计算器在考试中作弊,除了内置的 BASIC 和后来加入的 Lua 之外,德州仪器并没有公开任何编程支持,但是这并不能阻止黑客们。通过对 Nspire 的研究,黑客们推出了 Ndless—— 一款针对 Nspire 的“越狱”软件,提供了一套 SDK(软件开发工具包),使 Nspire 能够运行 C、C++、汇编等语言编写的各种软件。
TI-Nspire TouchPad(将导航键换成触摸板)上运行的《毁灭战士》移植版,屏幕残影比较严重(图片来源:哔哩哔哩 @戈登 freeman)
德州仪器自然不会放任 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》制作的同人游戏和《仙剑奇侠传》的移植。
网友创作的同人游戏作品《逆转电磁炮》,色彩在 TI-Nspire 的灰度屏上以灰度显示(图片来源:@diameter)
2006 年,惠普发布了 3 款图形计算器:HP 50g、HP 39gs 与 HP 40gs,前者面向工程市场,支持 SD 卡并升级了屏幕分辨率;后两者面向教育市场,配置相近。3 款计算器均采用了三星的 75 MHz S3C2410A ARM9 处理器,为了能兼容之前平台的程序而采用 Saturn + 模拟器,导致计算效率低下,耗电量大,但一些爱好者制作了 SDK,为 C 语言程序开发提供支持,这些基于 C 语言的程序能直接在实机上运行并能将处理器频率提升至 200MHz(需要指出的是,受限于 SRAM 的速度,单纯的处理器超频作用有限)。
由于价格原因,HP 39gs 在国内十分流行,图为 HP 39gs 玩《超级马里奥》(图片来源:@plum 的博客)
网友开发的 HP 39gs 中文阅读器(图片来源: @zqr9987)
2011 年,HP 发布了 HP 39gII 图形计算器,采用飞思卡尔的 80 MHz STMP3770 ARM 处理器,固件虽然经过重写,却是一个半成品。后来官方开发人员出来解释是因为开发转向了新产品,联想到 TI-Nspire CX 的推出也是在这一时期,推测是惠普迫于德州仪器同期推出新品的压力而放弃了对 HP 39gII 的支持。由于固件完成度低,HP 39gII 实机体验有非常多的 Bug,以至于有人为其列出了 Bug 清单。
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 提供了与触摸屏交互的功能,但使用触摸屏功能的游戏并不多,毕竟多数人习惯使用有更大屏幕的智能手机AG和记。
HP Prime 是惠普目前唯一在产的产品,计算器社区的惠普拥趸们一直有为它引入 Python 等编程语言、提高开放度的呼声。于是,在今年推送的固件更新中,HP Prime 添加了对部分 Python 语法的支持。
与美欧等市场不同,谈起中国的计算器,就不能不提人们眼中的“潮牌”—— 卡西欧。如果算上那些仿造卡西欧的变种,卡西欧在中国手持计算器市场的份额就像德州仪器在北美一样,处于垄断地位。
1972 年中日建交后,凭借地缘与政策优势,日企成为最先一批进入中国市场的外资企业。1980 年,卡西欧电子计算器进入中国,卡西欧后来在 1985 年设立了北京事务所。
1999 年,卡西欧 fx-82/991 SX 成为首款进入中国的科学计算器。自此,我们便可以在学校门口的小卖部与全国的新华书店里买到卡西欧的科学计算器了AG和记。
作为人民教育出版社与部分考试的钦定产品,相信读者们一定在数学书上看到过那些长长一串的计算器按键序列实例。它们使用的便是 fx-82/991MS 科学计算器,也正因此,fx-82/991MS 被广泛仿造。
限于产品定位是给中小学生学习的工具,这类科学计算器仅提供了寥寥几个变量与有限的数学功能,完全没有提供编程功能。对大多数人来说,这种科学计算器唯一的娱乐可能只限于用随机数掷骰子或者比手速,也因此,它们被一些研究图形计算器的玩家戏称为“年轻人的第一件古董”。
然而,因为 fx-82MS 初版在电路板上留出了大量的测试触点,有心者以铅笔涂抹的方式将它们连接起来,成功地将低端型号 fx-82MS 升级至高端型号 fx-991MS,并解锁了对应的功能,自此掀开了卡西欧计算器破解的风潮。
fx-82MS 利用硬件漏洞升级,比起升级得到的功能,破解计算器的乐趣更有吸引力(图片来源:cnCalc 计算器论坛 @不锈钢)
尽管卡西欧很快将硬件漏洞补上,但是这并不能阻止上课时无聊的学生们。2005 年,卡西欧发布了 fx-82/991es 科学计算器,摒弃了段码显示而采用了点阵显示屏。尽管受限于科学计算器低端的软硬件,机智的我国学生们通过发挥强大的想象力,成功“发明”了以《三国杀》为代表的独特游戏形式。更有甚者,通过特定的按键输入造成计算器故障,实现了各种“爆机”玩法。
fx-991es 上的《三国杀》,印证了世界上最好的图形是由想象力创造的(图片来源:cnCalc 计算器论坛 @Zms)
在一次机缘巧合之下,一位网友找到一份计算器芯片生产厂商的技术手册,发现这个手册在举例芯片的应用范围时提到了科学计算器,配图使用了 fx-82es。于是,网友大胆猜测,这就是 fx-82es 使用的主芯片。
查阅手册后,网友发现,这款芯片支持的输入电压高于 fx-82es 使用的 1.5V—— 最高可提升至 4V 左右。于是,网友大胆地给计算器多串联了一颗纽扣电池,之后,计算器的计算速度明显加快,fx-82es 的超频宣告成功。
fx-82es 超频:使用透明胶将导线粘在纽扣电池上,再将导线卷在电池触点上(图片来源:@yls)
这些科学计算器过去广泛地通过线下渠道销售,今天,也可以在学校门口的文具店买到,让更多人接触到了卡西欧计算器或以卡西欧为蓝本的变种。
除了面向中学生的 fx-82/991 系列科学计算器,卡西欧在中国还发售了面向大中院校与工程测绘的 9860 G / GII 与面向国际考试的 fx-CG Prizm。这些机器均采用了日立开发的 SH3 或者 SH4 处理器,并有第一方或第三方 SDK 等支持,能够使用 C、C++ 等高级语言进行软件开发。自然,游戏开发是不会被放过的了。
不知是有意还是无意,卡西欧并没有吸取在 fx-82MS 上被利用漏洞升级的教训。相对便宜的低端型号 fx-9750GII 可以通过刷机升级到 fx-9860GII,“9860”系列图形计算器在国内计算器社区里十分普及,这就是原因之一。
fx-CG50 的欧洲版本 Graph 90+E 上使用模拟器游玩《塞尔达传说:梦见岛》
除了游戏开发,国内社区里也有不少人试着为“9860”系列计算器编写电子书软件。虽然国外网友也编写了不少电子书软件,但软件界面都是英文,使用不便,卡西欧也没在计算器中加入 GBK 等编码支持。于是,研究如何给计算器加入中文字库成了国内社区的研究方向之一。经过网友的不懈努力,使用“9860”看小说的愿望最终得以实现。
网友开发的阅读器(图片来源:cnCalc 计算器论坛 @wu58430)
自 1970 年第一款手持计算器发售于日本以来,手持计算器已经走过了整整 52 个年头。在这之后很长的一段时间里,手持计算器成为最新锐的移动设备技术实验的战场之一,对微电子技术的发展起到了长足的推动作用(一个有趣的事实是,Intel 为日本 Busicom 公司的计算器发明了第一款微处理器 4004)。一时间,手持计算器市场百花齐放,好不热闹。
斗转星移,曾经生产过计算器的厂商一个个停止了新计算器的研发,或在 70 年代激烈争夺市场的“计算器大战”中破产倒闭,或转向其它消费电子产品的生产。放眼全球,仅有寥寥几个厂商仍在研发新型计算器。在当代微电子技术与移动设备技术大发展的背景下,个人电脑、手机甚至是网页计算器的计算速度与换代速度都远高于手持计算器。一年甚至半年一换的最新款智能手机才是最新技术的宠儿。
即使是发布于数年前的 iPhone 6 也能轻松运行当前最高配置的图形计算器的模拟器
除了出于收藏、研究目的的玩家,人们购买实体计算器的理由几乎仅仅是学习或工作需要(应试或测绘行业等野外工作)。因此,近年推出的新款计算器几乎都面向教育市场,其中有不少添加了对 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 日,是历史上第一款手持科学计算器 —— 能够直接进行三角函数、对数函数和指数函数的运算,以极高的精度(甚至超过了大多数大型计算机的精度)与便捷的使用正式宣判了计算尺的死刑。
如今,计算器的辉煌时代也已经成为过去式。将来,随着移动技术的发展,我们是否会在某一天宣判计算器的死刑呢?那一天会在何时到来尚不可知,但我认为,在未来一段时间里,计算器社区和计算器的使用者仍然会存在,只要这个群体存在,就会继续消费各种计算器。只是在缺乏第一方支持与缺乏大量开发者提供优质软件的情况下,这个圈子终究会消失在互联网与现实的角落里,成为那些玩家的共同回忆。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。