极客逻辑 GeekLogic - 英伦小霸王——SINCLAIR ZX81

作者:GeekLogic
2022-04-26
1 0 0

本文由来自 GeekLogic(极客逻辑)的老朋友 Wells 授权转载。原文地址:link,略有修改。

前言

上世纪 70 年代末 80 年代初,新兴的个人电脑市场百家争鸣。在芸芸众生之中,收购了 MOS,坐拥 6502 CPU 的康懋达(Commodore)、成功研发 Apple II 的苹果(Apple)、依靠庞大销售网络成功推出 TRS-80 的 TANDY Radioshack、以及另辟蹊径靠着电子游戏进入寻常百姓家的雅达利(Atari)成为了业界几座高不可攀的山峰。如何翻越这些山峰,走出他们的影子成为了其他厂商不断尝试挑战的目标。

在所有竞争者中,有这么一家欧洲厂商,凭借自己对市场独特的见解,用一款不那么靠谱甚至可以说是反人类设计的产品成功的占据了大部分入门市场的份额。并且经过多年的发展,成为了八位电脑世界一支不可小觑的力量。这就是辛克莱(Sinclair),一个在八位时代,甚至整个计算机时代不得不提的品牌。

今年正好是 Sinclair 第一款爆品 ZX81 面世 40 周年。令人惋惜的是,Sinclair 的创始人,计算机行业的先驱克莱夫·马勒斯·辛克莱爵士(Sir Clive Marles Sinclair, 1940 年 7 月 30 日 – 2021 年 9 月 16 日)在今年与世长辞。在我看来,那个年代的辛克莱在业界的地位绝对可以和后来的乔布斯、现在的马斯克相提并论。他的产品非常具有前瞻性(例如 70 年代的电子腕表、80 年代初研制的个人电动汽车 C5),传奇的一生起起伏伏。虽然辛克莱未能凭借其开创性的计算机及其他产品创造一个持久的英国成功故事,但是他的经历和成功的电脑产品激励了后来的大批工程师、企业家,甚至像埃隆·马斯克(Elon Musk)和微软(Microsoft)首席执行官萨蒂亚·纳德拉(Satya Nadella)这样的 IT 领袖。

克莱夫·马勒斯·辛克莱爵士
原人像照片版权:公开使用,来源于 Arpingstone

Sinclair ZX81 是由辛克莱研究(Sinclair Research)设计,通过天美时(Timex)在苏格兰邓迪的工厂生产的家用电脑。它于 1981 年 3 月在英国推出,作为 Sinclair ZX80 的继任者,旨在为大众提供低成本的家庭计算产品。它非常成功,销量超过 150 万台。在美国,辛克莱最初授权给天美时以 ZX81 名义出售。天美时后来生产了自己的 ZX81 版本:Timex Sinclair 1000(TS1000)和 Timex Sinclair 1500(TS1500)。同时,由于 ZX81 的成功,世界各地都有未经授权的 ZX81 克隆机型被生产销售。

为了降低成本,赢得与 Apple II、Commodore PET 这样的对手的竞争,ZX81 被设计得简单、紧凑,最重要的是,组件尽可能少。它仅使用了四颗集成芯片,也只有可怜的 1 KB 的内存。除了某些型号有电视频道选择开关外,没有电源开关或任何移动部件。键盘也被设计成了廉价到不能再廉价的压敏薄膜键盘(非常反人类)。不过,为了尽一切可能降低成本带来的局限性反而促使了增加其功能的第三方外设市场的繁荣。此外,其独特的外壳设计使设计师里克·迪金森 (Rick Dickinson)获得了 Design Council 奖。

规格

型号ZX81
制造商 /
类型家用电脑
原产地英国
上市年份1981 年 3 月 5 日(英国)、1981 年 11 月(美国)
内置语言Sinclair BASIC
键盘QWERTY 薄膜触摸键盘,40 键
CPUZilog Z80A
主频3.25Mhz
协处理器
RAM1KB(实际可用 901 字节),官方有 16KB 扩展模块,最大可扩展至 64KB
显存
ROM8KB
文本模式32 列 24 行,其中最下方两行被保留用于显示系统信息和输入命令
图形模式64×48
最多颜色数单色显示
声音无声音
尺寸/重量167 x 175 x 40 mm / 350 克
I/O 端口Z80 总线扩展槽,磁带接口(250-400bps),RF 射频输出
电源9V DC 600 mA 3.5mm 插头,1 – GND,2 – 9V DC
价格英国上市价格:成品 69.95 英镑,套件 49.95 英镑(1981 年 6 月)
美国上市价格:成品 149.95 美元,套件 99.95 美元(1981 年 11 月)
日本上市价格:38700 日元(1981 年 12 月)

辛克莱和辛克莱研究(Sinclair Research)

谈到 ZX81 诞生的背景就不能不提辛克莱研究(Sinclair Research)。克莱夫·辛克莱传奇的一生创办了许多公司,但最成功的,莫过于辛克莱研究(Sinclair Research)了。第一款问鼎欧洲的电脑 ZX81、以及获得全球市场成功的 ZX Spectrum 系列电脑都是在辛克莱研究推出的。

克莱夫·辛克莱在上学时候就展现出了数学方面的天赋,跟苹果的沃兹尼亚克(Stephen Wozniak)一样,在中学时期,辛克莱就去了多家电子公司做假期兼职。在 Mullard 公司假期实习期间,他还参与了一项电路设计。1958 年,辛克莱离开学校后,设计了一个无线电套件 Model Mark I,并通过邮寄的方式开始售卖。从 1959 年到 1962 年,辛克莱还为伯纳德出版社(Bernard Babani)写了 13 本电子电路方面的书,最后一本是 1962 年 5 月发行的《Modern Transistor Circuits for Beginners》。

辛克莱在 1961 年注册了 Sinclair Radionics Ltd.。其实,一开始他想选择 Sinclair Electronics 作为公司名称,但是这个名字已经被人注册了。后来他想用 Sinclair Radio,但听起来怪怪的,像是一个产品名字,于是就用了 Sinclair Radionics 这个组合词。 Sinclair Radionics 成立于 1961 年 7 月 25 日。辛克莱曾两次尝试筹集启动资金来宣传他的发明并购买生产物料,但是都不是很顺利。找不到资金的辛克莱选择了加入了联合贸易出版社 (UTP),担任《Instrument Practice》的技术编辑。通过在 UTP 的工作,Sinclair 可以访问来自 36 家制造商的数千种设备。在工作期间他接触到了 Semiconductor Ltd.这家供应商,并发现他们有一批元件因为达不到标准而被拒收,但这批元件正好可以用在他设计的由助听器电池供电的微型收音机上,而且也能正常使用。因此他以非常低的价格找到了合适的物料来源,SInclair Radionics 赚到了丰厚的利润。1969 年 4 月之后,辛克莱便全心投入,不再担任 UTP 的助理编辑。

从 1960 年代末开始,Sinclair Radionics 开始生产便携电子计算器、微型电视和 Black Watch 手表。后一款产品于 1975 年推出。这款产品在当时过于超前,当时的技术无法完全满足用户的需求,不但难以维修,同时还发现较低的气温会导致手表本身不准确,电池寿命太短。产品的失败导致了 Sinclair Radionics 在 1975-1976 年遭受了第一次财务危机。辛克莱努力寻求潜在投资者来想办法弥补损失,最终他不得不与国家企业委员会(National Enterprise Board,NEB)合作。NEB 于 1976 年购买了该公司 43% 的股份,但发现这次注入资金为时已晚,因为此时其他公司尤其是日本企业开始在市场上以较低的成本生产类似的产品。

Sinclair Excutive 计算器和 Black Watch 手表,分别发布于 1972 年和 1975 年,在当时过于前瞻,以现在的眼光看也不落伍。
Sinclair Excutive 图片版权 CC-BY-SA-3.0,来源于 MaltaGC 上传至 English Wikipedia.
Black Watch 图片版权为公开使用,来源于 Prof.Dr. Jens Kirchhoff 上传至 German Wikipedia.

1977 年,NEB 通过收购 73% 的股份有效控制了该公司。NEB 想要精简 Sinclair Radionics 的产品线,聘请了诺曼 · 休伊特( Norman Hewitt)担任常务董事来协助辛克莱。虽然辛克莱努力和休伊特及 NEB 合作,但 NEB 对辛克莱的愿景几乎没有信心。辛克莱与 NEB 的关系因关于公司应该朝哪个方向发展的矛盾而充满了裂痕。在当时,Sinclair Radionics 已经开始了一个开发家用计算机的项目,但 NEB 想要专注于仪器方面的业务,实际上这是当时 Radionics 唯一盈利的领域。辛克莱强烈反对 NEB 的“消费电子产品没有未来”的观点。加上一些其他纠纷,最终辛克莱于 1979 年 7 月从 Radionics 辞职。

1979 年,NEB 选择拆分 Sinclair Radionics,将仪器部门保留为 Sinclair Electronics,并将电视部门出售给 Binatone,将计算器部门出售给 ESL Bristol。辛克莱本人此时离开了公司。NEB 将其对 Sinclair Radionics 的约 700 万英镑投资作为亏损注销。随着公司的解散,辛克莱得到了大约 10,000 英镑的遣散费。

与 NEB 斗争失败离开 Sinclair Radionics 后,克莱夫·辛克莱转向了一艘“企业救生艇”,其形式是他独家控制的一个壳公司—— Ablesdeal Ltd. 。这是他在 1973 年成立的一家公司,后来在 1975 年更名为 Westminster Mail Order Ltd.,然后又更名为 Sinclair Instrument Ltd.。它一直处于休眠状态,直到 1976 年才被激活。1977 年 7 月,Sinclair Instrument Ltd. 又更名为 Science of Cambridge Ltd. 。它变成了一种工具,通过它辛克莱可以不受 NEB 的干扰,从事自己想做的的项目。1979 年 11 月,Science of Cambridge Ltd. 更名为 Sinclair Computers Ltd.,1981 年,这家公司最终被更名为 Sinclair Research。从此,创造了英伦八位电脑传奇的辛克莱研究(Sinclair Research)开始登上历史舞台。

1980 年,辛克莱研制的 ZX80 进入家用电脑市场,定价 99.95 英镑,这是当时英国最便宜的个人电脑;1981 年,ZX81 正式发布,定价 69.95 英镑,套件为 49.95 英镑,这是第一台进入 50 英镑门槛的个人电脑,顿时席卷了欧洲市场,也杀向了北美和日本;1982 年,现象级的 ZX Spectrum 发布,后来成为英国最畅销的计算机,与 Commodore 和 Amstrad 展开了激烈竞争。

在辛克莱研究成功的高峰期,很大程度上受到了日本第五代计算机计划的启发。该公司还在米尔顿霍尔(剑桥附近)建立了“MetaLab”研究中心(Meta 本身就有超越、之上的含义,真的是超前。扎克伯格的 Meta 公司也仅仅在今年刚刚成立。),以追求人工智能、晶圆级集成、形式验证和其他先进项目。

随着辛克莱研究(Sinclair Research)不断取得成功,辛克莱于 1983 年 3 月成立了一家新公司 Sinclair Vehicles Ltd. 来开发电动汽车(真的是早了一个时代)。辛克莱使用 Sinclair Research 资本的 10%及出售自己的部分股份为新企业提供资金。在 1970 年代,辛克莱在 Sinclair Radionics 时期就对电动汽车感兴趣,并且自 1979 年以来一直与前 Radionics 员工 Tony Wood Rogers 合作,开始为市场开发新车原型。该公司唯一的产品是 1985 年 1 月推出的 Sinclair C5。Sinclair C5 被认为是一个重大的失败,因为它是在没有任何市场调研的情况下开发的。它因为高昂的价格、玩具般的外观、缺乏安全功能和驾驶者被暴露在自然环境中,以及爬陡坡时用户需要踩脚踏助力而受到广泛批评和嘲笑(但如果放到现在,也许结果会不同)。虽然辛克莱预计第一年将售出 100,000 台 C5,但在同年 8 月 C5 生产线终止生产之前,仅生产了 14,000 台,售出了 4,500 台。

Sinclair C5 和 TV80。C5 即使放到现在,造型也相当科幻,而 TV80 就像是掌上电脑的雏形。
Sinclair C5 图片版权:CC BY-SA 4.0,来源:Prioryman
Sinclair TV 80 图片版权:CC BY-SA 3.0,来源:Binarysequence

辛克莱的另一个较大的失误是 Sinclair TV80,这是一款采用扁平阴极射线管(CRT)的平板便携式迷你电视,该电视经过数年的开发,到 1983 年 TV80 准备上市时,Sony Watchman 已在日本发布。此外,液晶显示技术也已经开始逐渐成熟,这项技术在未来比 CRT 技术更有竞争力。 TV80 是一个失败的商业计划,仅仅只生产了 15,000 台。

尽管有这些商业上的失败,但 C5 和 TV80 自那以后都被认为是超前的产品,C5 是现代电动汽车的先驱,而 TV80 可与在智能手机上观看视频相媲美。

在 1984 年辛克莱推出了 Sinclair QL(Quantum Leap 的缩写)品牌,旨在与 IBM 和 Apple 的计算机业务线竞争,但是市场形势发生了变化,Sinclair Research 和另一个本土竞争对手Acorn Computers(由 Sinclair Radionics 的前员工克里斯托弗·库里(Christopher Curry)和 Hermann Hauser、Andy Hopper 共同创立,初期在与 Sinclair 的竞争中赢得了 BBC 的合约,占领了大部分英国教学电脑市场)的价格战使得消费者更多的认为 Sinclair 电脑只是一个玩具而不是商用的生产力工具。到了 1985 年,Sinclair QL 计算机在和苹果的 Macintosh 的竞争中败下阵来,同时,雪上加霜的是,超前的 TV80 平板电视也面临失败的结局。辛克莱又一次面临着财务困难。一年后辛克莱将其计算机产品线和 Sinclair 品牌名称以 500 万英镑的价格出售给了竞争对手 Amstrad,不过辛克莱研究公司本身依旧保留了下来。

将 Sinclair 电脑业务出售后,辛克莱研究(Sinclair Research)被缩减为一家研发型企业,同时也是一家控股公司,持有几家新的分拆出的公司的股份,这些分拆的公司则会商业化母公司开发出的技术。其中包括 Anamartic Ltd.(晶圆级集成)、Shaye Communications Ltd.(CT2移动电话)和 Cambridge Computer Ltd.(Z88 便携式计算机和卫星电视接收器)。

1986 年之后,辛克莱研究(Sinclair Research)继续存在,但形式完全不同。 到 1990 年,公司的全体员工已经减少到只有辛克莱本人、一名销售员/管理员和一名研发人员。1993 年、1994 年和 1995 年,辛克莱研究因营业额下降而持续亏损。投资者开始担心辛克莱本人开始使用他自己的个人财富来投资他的发明。到了 1997 年,只有辛克莱本人在母公司辛克莱研究工作。

回到 1992 年,对电动交通工具不死心的辛克莱发布了 Zike 电动自行车,这是辛克莱第二次尝试改变人们的交通工具。它的最高时速为 10 英里/小时(16 公里/小时),并且只能通过邮购获得。但是 Zike 与 C5 非常相似,在商业上也失败了,仅售出 2,000 辆。1999 年,Sinclair 发布了世界上最小的收音机 Sinclair Z1 Micro AM Radio。

2003 年,辛克莱研究(Sinclair Research)与香港的 Daka Designs 合作,在克罗伊登附近为 Daka 建立了一个实验室,共同设计、推出了 ZA20 轮椅驱动装置。该合作关系还促成了 SeaDoo Sea Scooter 水下推进装置的诞生,共同开发了海上滑板车。

2006 年 7 月,辛克莱在 2004 年就公布的折叠自行车 A-bike 正式发布,售价为 200 英镑。2010 年 11 月,辛克莱研究发布了 X-1 两轮电动车,但最终未能达到量产。

ZX81 的诞生

背景扯得有点远,把注意力拉回到 ZX81 这个产品上来。

在 1970 年代中期,美国公司开始生产简单的家用电脑套件,例如 MITS AltairIMSAI 8080。同时,家用电脑市场也越来越被重视,在 1977 年,苹果(Apple)、康懋达(Commodore)和 TANDY Radioshack 都分别推出了重量级的 Apple II、Commodore PET 和 TRS-80 系列产品来应对日益增长的市场需求。这三款电脑如风卷残云般占领了大部分的北美市场,字节(BYTE)杂志把这三款电脑称为“1977 三雄(1977 Trinity)”,但在英国,家用电脑市场还是一块处女地。这引起了英国电子爱好者的兴趣,但相对较高的价格和较低的可支配收入降低了美国产品对英国普通消费者的吸引力(1977 年 Commodore PET 售价 795 美元,Apple II 售价 1298 美元,TRS-80 售价 600 美元)。辛克莱意识到这里面隐藏着巨大的商机。

辛克莱的第一台家用计算机是 MK14,它于 1978 年 6 月以套件形式推出,那时辛克莱还没有离开 Sinclair Radionics,正在和 NEB 斗争。MK14 主要面向有一定基础的业余爱好者,从它的名字——MK 代表“微型计算机套件(Microprocessor Kit)”——也能看出,要成为大众市场产品还有很长的路要走。虽然还不是一个完成品,但 MK14 最终卖出了 10,000 多台,相比之下,整个 1978 年,价格高得多的 Apple II 在美国这个更大的市场仅售出 9,000 台。这一成功使辛克莱相信,低成本计算机有一个尚未开发的非常有潜力的市场。

Sinclair MK14,图片来源:drogon / retrocomputingforum.com

辛克莱通过 ZX80 这款电脑来跟进 MK14 的成功,这是当时是世界上最小、最便宜的计算机,于 1980 年 1 月推出,售价为 99.95 英镑,这是世界上首台价格低于 100 英镑的家用电脑。事实上,剑桥科学公司(当时还未改名 Sinclair Research)在产品发售之前都没有进行任何市场调查,根据辛克莱的说法,他“只是有一种预感”,市场有足够的兴趣使这样一个项目可行,销量至少能达到 100,000 台(实际上,MK14 项目就是一次很好的市场调研,而 C5 项目却是真的没有任何市场调研,最终导致了失败)。

关于产品的定价,辛克莱吸取了在 Sinclair Radionics 计算器项目上的教训,为了避免日本厂商等后来者的竞争(或是说学习日本厂商的低价策略),在应用了波士顿咨询集团开发的“经验曲线”工具后,根据经验曲线定价法,以制造成本的两倍左右进行销售。这个策略也一直沿用到 Sinclair ZX81 及后续的产品。

以厂商在产业内经营经验的多寡,做为定价的主要依据,因为企业生产和行销经验累积的结果,商品的单位成本会随着销售量的增加而递减。因此,如果将价格定的比较低的话,而且有相当多的消费者对价格敏感,则会刺激需求,进而降低商品的平均成本。

经验曲线定价法

ZX80 立即取得了成功,在接下来的九个月内销售了 20,000 台。到 1980 年底,剑桥科学公司以每月 9,000 台的速度生产 ZX80,在推出后的 18 个月内,该公司已售出 100,000 台,达到了辛克莱预期的目标。ZX80 的商业成功使得尽快推出后续产品被提上了议事日程。

Sinclair ZX80,图片版权:CC BY-SA 2.0,来源:Daniel Ryde, Skövde,wikipedia.com

事实上,ZX81 的开发甚至在 ZX80 推出之前就已经开始。为了能以更低的价格来屏蔽竞争对手的竞争,ZX81 设计的出发点就是如何降低,且进一步降低制造成本。Sinclair Research 的总工程师 Jim Westwood 接到的最重要任务就是尽可能改进 ZX80 的硬件,以减少组件数量,从而降低成本。最终,Westwood 成功的使用了一个单一的 Ferranti 公司制造的未提交逻辑阵列 (ULA,Uncommitted Logic Array,又被称为门阵列 Gate Array 芯片,是一种预制的硅芯片,其中大多数晶体管没有预定功能。这些晶体管可以通过金属层连接以形成标准的 NAND 或 NOR 逻辑门。这些逻辑门可以在相同或稍后的金属层上进一步互连成完整的电路)替换了 ZX80 的 18 个逻辑芯片,从而大大的降低了制造成本。但是这也带来了副作用。一般来说,一个 ULA 芯片同时工作的逻辑门数量不会超过 70%,但是 Sinclair 的设计却使用了全部的逻辑门。这导致了芯片巨大的发热量,使这块芯片的寿命大大缩短,很容易被烧毁。现在爱好者收藏的很多无法显示或无法输入的 ZX81 大多是因为 ULA 芯片故障导致的。

除了应用 ULA 芯片,ZX81 还在许多地方向低价作了妥协。其中吐槽最多的就是和 ZX80 一样的反人类设计的薄膜触摸键盘。此外,ZX81 没有开关,省去了一个开关元件,插上电就能使用;有些版本还有电视频道选择开关,但欧洲的大部分版本这一开关也被省去;扩展插槽也就是 PCB 电路板上做出来的金手指,这样可以省去一个插槽母座的成本;ZX81 还没有任何声音支持,是一台沉默的电脑;也没有独立的显示芯片,所有的显示工作都是靠 Z80 CPU 负责的。和 ZX80 一样,ZX81 只有 1KB 的内存,这使得它如果不使用 16KB 的内存扩展模块的话,几乎无法运行任何商业软件。

当然 ZX81 也有比 ZX80 改进的部分。ZX81 的 ROM 由 ZX80 的 4KB 翻倍至 8KB。这使得 ANSI Minimal BASIC 版本(被公司称为 Sinclair BASIC)的更完整实现成为可能。辛克莱继续委托编写了 ZX80 ROM 的一家名为 Nine Tiles 的公司为 ZX81 开发新了的 ROM 软件。

里克·迪金森的模块化设计稿,ZX81 和扩展部件可以拼接扩展
图片版权:CC BY-SA 3.0,来源 Rick Dickinson 上传于 Flickr

外壳的设计同样由负责了 ZX80 外观设计的 里克·迪金森 (Rick Dickinson) 来负责。迪金森最初将 ZX81 及其扩展设备按照具有共同宽度的标准来进行模块化设计,但这种方法最终被放弃了。从开始到结束,设计过程花了大约六个月的时间。最后凭借着 ZX81 的成功和独特的外观设计,迪金森也获得了 Design Council 奖。

上市和推广

ZX81 于 1981 年 3 月 5 日推出,有两个版本——一个在工厂组装完成的成品机器(69.95 英镑)或一个更便宜的需要用户自行组装的套件版本(49.95 英镑)。两者的硬件配置是完全一致的,专业用户可以自己组装来降低购买价格。这两个版本都是在天美时(Timex)在苏格兰邓迪的 Dryburgh 工厂制造的。在当时,天美时并不是制造分包商的最佳选择,因为该公司以前在组装电子产品方面几乎没有经验。和现在大家的认知一样,天美时(Timex)更专注于手表行业,是一家成熟的机械表制造商,但在 1980 年代初由于机械表市场在数字表和石英表的竞争中停滞不前,利润几乎为零,天美时面临着巨大的经营危机。认识到这一趋势,天美时的董事 Fred Olsen 决定公司将多元化发展到其他业务领域,愿意投入资源到电子制造领域。恰好辛克莱现有的制造商(圣艾夫斯的一家小型电子公司)缺乏满足需求的资源 ,于是两家公司一拍即合,天美时在 1980 年末接手了 ZX80 的生产。

ZX81 上市的广告,图片来源:www.retro8bitcomputers.co.uk

辛克莱本可以以更高的价格推出 ZX81,以更传统的方式将其作为优质产品进行营销,但他选择不这样做,他吸取了 70 年代在便携计算器项目上失败的教训,延续了 ZX80 的定价策略。比 ZX80 更进一步,ZX81 是第一台进入 50 英镑门槛的家用电脑。实际上,他使用较低的价格在竞争对手进入之前建立了无懈可击的领先优势。辛克莱通过低价策略在以前从未考虑过拥有计算机的人群中开辟了一个全新的市场。

克莱夫爵士的营销成就是将计算机的“概念”降级到价格低于神奇的 100 英镑大关的的程度。为此,高效的键盘和显示屏、大容量的内存、快速可靠的存储系统等都被剥离了,只剩下负担得起的“计算机”。市场形象比电脑能做什么更重要。但新兴的电脑游戏产业为青少年给他们的新小工具提供了一个存在理由。主要是大众对真正的计算机技术的无知激发了 ZX 系列的成功,尽管机器本身效率低下,但丰富的配件,将这些带着 Z80 处理器的高档玩具变成了有用的计算核心。

《新科学家》,1986

ZX81 的推出在一定程度上是由英国广播公司(BBC)计算机素养项目计划制作的电视系列节目的推动,该系列节目将于 1982 年播出,旨在普及计算和编程。 BBC 打算委托现有的制造商为其提供一台 BBC 品牌的家用电脑,以配合该系列。当辛克莱在 1980 年 12 月听说这个项目时,他写信给 BBC,通知他们他将在 1981 年初发布 ZX80 的新版本,称为 ZX81。它将弥补 ZX80 的一些缺陷,并将既便宜又先进。辛克莱希望 ZX81 成为 BBC 合同的候选者,并游说其采用。

辛克莱在 1981 年 1 月向 BBC 代表展示了 ZX81 的原型机,而 辛克莱研究(Sinclair Research)的当地竞争对手 Acorn Computers 提出了他们的方案——Proton 计算机,一种基于 Acorn Atom 的设计(当时原型机都没做出来)。令辛克莱感到沮丧的是,由于评委认为 ZX81 的扩展性不够,这个项目最终输给了 Acorn,生产 BBC Micro 的合同交给了 Acorn,后者于 1982 年 1 月推出了该机器。随后辛克莱不得不在英国教育市场使用半价的定价策略来与 Acron 竞争,但仅仅赢得了大约 15%的市场份额。

尽管如此,辛克莱研究于 1982 年 3 月宣布其已在全球销售了 250,000 台 ZX81。WH Smith 是当时唯一指定的经销商,每个月能够销售大约 50,000 台计算机,其中 60%在英国之外。当 ZX81 的后续机型 ZX Spectrum 推出后销量下降时,辛克莱研究于 1982 年 5 月将预组装版本的价格降至 49.95 英镑,次年 4 月又降价了 10 英镑。尽管来自功能更强大的计算机的竞争日益激烈,但 ZX81 的每月出货量仍然超过 30,000 台,即使在推出两年多后的 1983 年 7 月也是如此。到那时,根据辛克莱研究公布的数据,ZX81 已售出超过 150 万台。

原先辛克莱研究和 WH Smith(WH Smith 是一家受人尊敬的书籍和杂志销售商和文具连锁店)签订了独家销售的分销合同,但 ZX81 的火爆吸引了众多的销售商。英国连锁店 Boots、John Menzies 和 Currys 在 Smith 的独家经销协议到期后就与辛克莱研究签订了销售合同,开始销售 ZX81。并且还有一些公司获得了 ZX81 的海外经销权,ZX81 于 1982 年 3 月开始在 18 个国家销售。1981 年 11 月辛克莱研究在美国推出了 ZX81,组装价格为 149.95 美元,套件价格为 99.95 美元(这也是第一台低于 100 美元的家用电脑),最初通过邮购直接销往美国市场。到 1982 年 1 月,销售量达到每月 15,000 台。1982 年 2 月,天美时从辛克莱研究获得了通过美国数千家零售店直接销售 ZX81 的许可,并将向辛克莱研究支付销售所得的 5%的作为特许权使用费。该公司后来生产了自己的 ZX81 的许可克隆和变体版本。到 1982 年 8 月,辛克莱研究将组装的 ZX81 的美国邮购价格降至 99.95 美元,套件降至 79.95 美元,其广告称“每周售出 10,000 多台”。1981 年 12 月,三井株式会社获得了在日本分销 ZX81 的权利,通过邮购以 38,700 日元(相当于 1982 年价格的 83 英镑)的价格出售,到 1982 年 7 月已售出 5,000 台。日本市场对 ZX81 的积极反应促使三井从 1982 年 9 月开始在大型书店柜台销售 ZX81,预测年销量约为 20,000 台。在荷兰,市场上 Sinclair ZX81 和被代理商 Bang & Olufsen 命名为 Beocomp 的本地版本同时在销售。

ZX81 也在英国机场的免税店销售了一段时间。然而,这违反了政府旨在防止苏联集团国家获得西方高科技产品的出口限制。来自苏联和其他东欧国家的游客在西方国家购买小工具,然后将他们的技术转移到自己国家的情形并不少见。 1983 年,政府下令停止在机场销售 ZX81。不过当时中国与西方国家处于蜜月期,对中国的销售没有这样的限制,1983 年 11 月,辛克莱研究宣布已签署协议,将 ZX81 套件出口到中国的一家位于广州的工厂,他们将在那里为中国市场进行组装。不过我并没有查询到 ZX81 在中国的销量的相关数据。

克隆/仿制机

ZX81 的成功以及它低成本的设计造就了众多的克隆或仿制机型,其中甚至还有官方克隆机型。

辛克莱研究与天美时的授权许可协议使这家美国公司为美国市场先后生产了 Sinclair 电脑的三个克隆分支。它们是 Timex Sinclair 1000、Timex Sinclair 1500(ZX81 的两种变体)和 Timex Sinclair 2068(ZX Spectrum 的变体)。TS1000 于 1982 年 7 月推出,引发了市场巨大的反应。最高峰时,天美时的电话热线每小时能接到 5,000 多个询问电脑相关信息的电话,每周电话量能达到 50,000 多个。TS1000 几乎与 ZX81 相同,只是重新命名并增加了 1 KB 的内存(总计 2 KB)。在 TS1000 推出后的五个月内,该公司售出了 550,000 台机器,辛克莱研究也赚取了超过 120 万美元的授权费。

天美时以 TS1500 的形式生产了 ZX81 的第二个版本,本质上就是 1983 年 8 月推出的美国化 ZX81。这时候比 ZX81 更成功的 ZX Spectrum 已经发售。TS1500 是由天美时葡萄牙公司设计的,当时 ZX Spectrum 的天美时版本 Timex Sinclair 2068(TS2068)已经上市,而原来准备发布的 ZX Spectrum 的简单复制版本 TS2000 并未上市,于是天美时便将和 ZX Spectrum 相似的 TS2000 的外壳用于 TS1500。因此 TS1500 有了一个类似于 ZX Spectrum 的外壳和巧克力橡胶键盘,同时板载内存扩大到 16 KB。它实际上是 ZX81 和 Spectrum 之间的权宜之计。然而,由于来自美国市场上强有力的对手的竞争加剧(伟大的 Commodore C64)以及天美时对 TS1000 的拙劣营销的后遗症,它没有获得成功。(天美时在推出 TS1000 后的两三个月内未能向市场提供必要的 RAM 包升级。消费者将机器带回家,插上电源,发现由于内存不足,它做不了任何有用的事情。)

美国和英国以外的一些公司生产了他们自己的 ZX81 和 Timex Sinclair 计算机的“盗版”版本。几家巴西公司生产了 ZX81 克隆,特别是来自巴西 Microdigital Eletronica 的 TK 系列(例如 TK85)和 Prológica 的 CP-200。阿根廷的 Czerweny Electrónica 生产了 CZ1000 和 CZ1500,分别是 ZX81 和 TS1500 的克隆。

在中国,香港朗达电子(Lambda Electronics)在 ZX81 的基础上做了修改,生产出了 Lambda 8300。而 Lambda 8300 又被其他中国大陆的制造商广泛复制,市场上大量存在的 PC8300、PC81、CAC-3 等大陆厂商型号都是基于 Lambda 8300 复制而来的,直到现在闲鱼平台都能看到时不时有这些型号的学习机被拿出来低价抛售。此外,南丰电脑厂的 NF300 教学电脑也是基于 ZX81 的复制品。

前面说到 ZX81 曾经在英国机场销售过一段时间,因此苏联和东欧也是 ZX81 及后续 Spectrum 克隆机的主要市场(以 Spectrum 克隆机为主)。苏联的仿制机型号众多,由于西方世界对苏联的封锁,内部的电子元件都是苏联自研的,从 CPU 到 ULA 甚至到电容、I/O 接口这些元件都是典型粗犷的苏维埃风格。我在 eBay 上向一位白俄罗斯卖家买回了一台 Spectrum 的仿制机,拆开后发现连电容焊接的手法都是那么与众不同。

我花了 45 美元从白俄罗斯哥们那买来的仿制机,90 年代初制造,典型苏联风格,粗犷皮实

众多的克隆仿制机中,并非所有都是 ZX81 的直接复制品,它们中的许多都有着自己的创意。例如 CP-200,带有额外的内存和更大的外壳(通常用巧克力键盘代替原来的薄膜键盘);来自意大利 TELLAB 的 TL801,可以模拟 ZX80 或 ZX81,并通过跳线在两台机器之间切换;而中国的 Lambda 8300 和它的大陆仿制机,增加了一个游戏操纵杆接口、单声道的扬声器以及 RCA 接口的监视器信号输出,同时默认的 ROM 中修改了一些图形字符,使得不用修改就能显示一些小精灵的图形字符。

电路设计

ZX81 的电路设计非常简单,因为它把总控和 I/O 都交给了 ULA 芯片。CPU 和 ULA 通过控制总线交换控制信息,通过地址总线向 ROM 和 RAM 芯片发送地址请求,并通过数据总线返回或写入数据。ULA 同时还负责控制显示和键盘输入。

下图是我在 MainByte 网站提供的 ZX81 的电路图基础上画的 ZX81 的总线架构,非常简单清晰。

ZX81 的总线设计,原图版权: RonaldReuter / mainbyte.com

有意思的是,在地址总线和数据总线结构中都出现了一排分隔电阻。这也是 ZX81 取巧的地方。在一般的电脑设计中,总线上往往有很多 I/O 设备,要让总线里的数据流向或者流出哪一个设备一般都会由一个总线控制器来控制。而 ZX81 为了降低成本,去除了总线控制器的设计,转而在内存、ROM、外设和 CPU 之间加了一个电阻,这样当 ULA 需要控制时,它可以直接覆盖总线中的数据信号,这时电阻就会起到隔离的作用(两端可以产生压差),不会影响到 ROM 和 RAM 中的数据。电阻的成本非常低,这个设计非常巧妙。

硬件实现

拆开 ZX81 时一定要小心,连接薄膜键盘和主板的柔性电路板经过近 40 年的岁月一般都会老化的特别脆,很容易就断裂了。如果断了,这个键盘就没法使用了,eBay 上有卖家卖新做的替换件的,不过价格和运费都上百了。

ZX81 的主板常见的有两个版本,分别是初期的 ISSUE 1 和后来的 ISSUE 3 两个版本。ISSUE 1 版本可以明显看出电路板是手工画的。由于使用了 ULA 芯片,整个主板结构显得特别简单,ISSUE 1 版本的只有 4 个 IC 芯片,内存使用 1KB 的 4118 芯片,部分 ISSUE 3 版本的主板使用了两颗 0.5KB 的 2114 RAM 芯片,所以有 5 颗 IC 芯片。

Sinclair ZX81 ISSUE 1 版本主板,原图版权:公开使用,来源:wikipedia.com

上图是 ISSUE 1 版本的主板。得益于 ULA 芯片的使用,整个主板的布局看上去非常清爽。四个芯片中,左侧上部的就是取代了 ZX80 中的 18 颗逻辑 IC 芯片的 ULA 芯片。ZX81 的定制 ULA 芯片实现了其他竞争对手的电脑需要多个芯片才能实现的以下功能:

  • 同步屏幕显示;
  • 生成 6.5 MHz 时钟,从中为处理器导出 3.25 MHz 时钟(是的,在 ZX81 主板上看不到晶振,时钟信号也由 ULA 负责);
  • 在 SAVE 模式下将音频信号输出到盒式录音机;
  • 在 LOAD 模式下处理传入的卡带音频信号;
  • 感应键盘击键;
  • 使用 CPU 提供的内存地址来决定 ROM 和 RAM 何时应该处于活动状态;
  • 控制一般系统时序。

主板左上角的屏蔽铁盒里是 ZX81 的内置射频调制器。它可以将视频图像输出到 UHF 625 线彩色或单色电视(PAL 制式,在英国、澳大利亚和大多数西欧国家使用)。法国需要稍加修改的机器版本以匹配 SECAM 设备的视频调制,而美国、加拿大和日本则需要不同的 ULA 芯片和调制器来应对他们的 525 线 VHF(NTSC)电视系统。ZX81 及其前身 ZX80 在处理视觉输出的方式上都有一个明显的缺点。两台机器都没有足够的处理能力来全速运行并同时保持屏幕显示。在 ZX80 上,这意味着每次机器执行计算时屏幕都会变黑,并且在进行较短的计算(例如处理按键)时会导致令人讨厌的闪烁。

ZX81 的设计者采用了一种改进的方法,设计了 SLOW 和 FAST 的两种运行模式。在 SLOW 模式下,也称为“计算和显示”模式,ZX81 专注于显示,CPU 只有大约四分之一的时间来处理计算和例如键盘反馈等其他事情(实际上将机器的运行速度减慢了四倍)。在 FAST 模式下,显示会变成黑屏,CPU 时间都用于处理计算,最后只显示最终的运行结果。

另一个硬件设计问题产生了 ZX81 屏幕显示最独特的特性之一——在加载或保存期间,屏幕上会出现移动的锯齿状条纹。 ULA 上的同一引脚用于处理视频信号和磁带输出,ULA 无法在 SAVE 和 LOAD 操作期间保持正常显示,因为它必须连续运行以保持正确的数据传输波特率,从而产生了锯齿状干涉条纹。

前面也提到过,ZX81 为了降低成本,几乎使用了 ULA 芯片中的所有逻辑门,导致其发热严重,容易出现故障。不过,当时 ULA 这种短暂的技术比定制逻辑芯片的设计更便宜、更快捷,定制逻辑芯片通常需要非常大的批量才能收回其开发成本。正是因为这个原因,ZX81 才使用了 ULA 芯片。到了 90 年代 ULA 技术逐渐被淘汰,现在的数字芯片更多使用 FPGA 来达到同样的目的。许多收藏者手中因为 ULA 芯片故障无法修复的机器,都可以通过使用发烧友新设计的完全替换的 FPGA 模块完成修复的工作。

总体来说,ULA 的使用帮助 ZX81 大大降低了制造成本,竞争对手 TRS-80 的主板上足足有 44 个芯片!

左起第二颗片下方的芯片是 ROM 芯片。ZX81 的 ROM 大小比 ZX80 的 4KB 翻了一倍,有 8KB。为 ZX81 开发 ROM 程序的是 Nine Tiles 公司的约翰·格兰特(John Grant)和史蒂夫·维克斯(Steve Vickers)。格兰特专注于驱动 ZX81 硬件,而维克斯则开发了新的 BASIC 和撰写了随附的手册。

左起第三颗芯片就是 CPU,由 NEC 制造的 Z80A 芯片 D780C,运行在 3.25Mhz 的频率下。

Sinclair ZX81 ISSUE3 版本主板,右侧 RAM 芯片为两颗 MCM21L14P。
图片版权:CC BY-SA 4.0,来源:Binarysequence

最右侧在 ISSUE 1 版本下是一颗 MK4118AN 芯片,提供了 1KB 的内存空间。ISSUE 3 的版本则由两颗摩托罗拉的 MCM21L14P 来提供。说实话,1KB 的内存容量实在是捉襟见肘,你可以计算下,ZX81 在文本模式下能显示 24 行 32 列,在编写程序时,如果整屏都显示文字的话,一共要显示 24*32=768 个字符,这样 1KB 的内存就会被占用 768 字节,剩下的那点内存还有系统的开销,根本就不够。针对这个问题,ZX81 的 ROM 做了巧妙地设计:首先,为了节省内存,代码的输入都是通过按键盘的快捷键输入关键字的形式来完成,这样,实际上在内存中,代码中所有的关键字都按索引来存储,节省了大量的内存空间(这是 ZX81 使用反人类设计的输入系统的真正原因);其次,ZX81 的屏幕被分为上下两部分,最下方两行是输入代码和显示系统信息的,代码输入完就会在屏幕上方显示。当系统空闲内存较大时(屏幕上字符较少),上方显示的代码行数较多,如果代码中文本很多,占用了很多内存,有可能上方只会显示最后的一两行代码了。

ZX81 的主要输入/输出都在主板左侧,前面提到图像输出是通过左上部分的 RF 射频模块来实现,但仅能够提供单色输出。显示支持 24 行 32 列的字符显示,图像模式则是通过将每个字符切成 2×2 的块后,实现 64×44 的图形模式输出(屏幕下方的两行文本用于显示系统信息和输入,无法用作图形模式)。

左侧中间的两个 3.5 毫米插孔可以将 ZX81 连接到录音机的 EAR(输出)和 MIC(输入)插孔,从而可以保存或加载数据。数据的格式是,每个数据位存储为多个脉冲,然后是 1300µs 的位间静默。每个脉冲是 150µs 的“高”然后是 150µs 的“低”。 “0”位由四个脉冲组成,而“1”位是九个脉冲。因此波特率在全 0 的 400bps 和全 1 的 250bps 之间变化。具有等量“0”和“1”的文件将以 307bps(38 字节/秒)的速度存储。

左侧最下方 3.5 毫米插孔是电源插孔,中心为正极,ZX81 在 7–11V 直流电下需要 420mA 的电流驱动,所附的电源提供了 9V 的电源输入。主板上通过那个年代流行的 7805 芯片完成降压,输出 5V 电压驱动 4 颗 IC 芯片。不过,电源插孔使用和磁带机同样的 3.5 毫米插孔会带来一个隐患,若是电源不小心插错,很有可能将会烧毁 ULA 芯片。我猜想大批量购买统一标准的接口元件,从而减少 BOM 中元件种类,也应该能降低相应的制造成本吧。

最后不得不说的是 ZX81 的键盘。不得不说的原因是这键盘为了降低成本,在易用性上可以说是根本没法使用,如果你要把 ZX81 作为生产力工具,那你必须使用第三方的套件把键盘先改了(美国版的 TS1500 使用了类似 ZX Spectrum 的橡胶巧克力键盘,略微增加了点易用度)。ZX81 的 40 键薄膜键盘,几乎没有任何手感可言,就是两层柔性电路板,当中夹了一层塑料片。中间的塑料片在 40 个按键的地方是镂空的,从而形成了 40 个压力开关,当按下按键的位置,上层柔性电路板下压,接触到下层的柔性电路板,下两层柔性电路板就导通触发按键。这个键盘不仅手感差,每个键最多有五个功能,可通过 SHIFT 和 FUNCTION 键或根据上下文访问。例如,P 键结合了字母 P、”字符和 BASIC 命令 PRINT 以及 TAB。在输入程序时不能像普通的电脑那样正常的输入,必须通过这些 SHIFT 和 FUNCTION 组合键来键入关键字(前文说过这是由于要节省内存的原因),非常不方便。

外设

辛克莱研究仅发布了 ZX81 的两个官方外围设备,一个 16 KB RAM 扩展模块(实际上与之前为 ZX80 发布的相同,但重新贴了标签)和 ZX 打印机,两者都通过插入 ZX81 后部的边缘连接器来进行扩展。它们的零售价都是 49.95 英镑,而且都有明显的缺陷。内存扩展模块头重脚轻,仅由边缘连接器支撑,很多用户发现在敲击键盘时的震动会使模块松脱并使 ZX81 崩溃,自己辛辛苦苦输入的代码前功尽弃。很多用户不得已使用粘性口香糖、双面胶带或 Blu-Tack 来解决这个烦人的问题。而 ZX 打印机是一种少见的微型电火花打印机,它使用两个带电的触控笔烧掉铝涂层纸的表面,露出黑色的底层。撇开打印纸是特殊的纸张不说,它的打印效果起初表现相当好,但稍过一段时间后,就会迅速恶化,令人难以接受。

右侧是我收藏的官方 16K 内存扩展组件,左侧是朋友的第三方的扩展组件,为了加固链接还粘了魔术贴

ZX81 的成功和它自身的缺陷导致了许多第三方的外设和配件应运而生。辛克莱的公司几乎没有努力挖掘需求,将利润丰厚的扩展外设市场让给了第三方供应商,这一决定无疑丧失了大量潜在收益。据统计,在 ZX81 推出后仅一年内,就成立了大约 200 家独立公司来制造和销售与 Sinclair ZX81 兼容的硬件。

许多非 Sinclair 官方的外设都被用于弥补 ZX81 的缺陷并提供一些新的功能。例如提供高达 64 KB 额外内存的内存扩展模块、能够替换那反人类设计的薄膜键盘的打字机式键盘、更先进的打印机、声音发生器模块、甚至一个硬盘接口。甚至直到 21 世纪,还有爱好者在为 ZX81 设计制造并销售新的扩展组件。

ROM 和 Sinclair BASIC

Sinclair BASIC 是基于 ANSI Standard for Minimal BASIC (X3.60-1978)标准修改的 BASIC 语言版本,它最初是为 ZX80 编写的,在 ZX81 项目中,主要由 Nine Tiles 公司的史蒂夫·维克斯(Steve Vickers)负责,在 ZX80 的基础上进行改进和优化。

早在 1975 年 7 月,Micro-Soft(当时微-软的名称当中还有个连字符)为 MITS Altair 8800 爱好者发布了 BASIC 2.0 版。这是第一个商业化的 BASIC 版本。随后大多数八位计算机都把 Microsoft BASIC 作为标准配置原装在机器中,Microsoft BASIC 变得如此流行,以至于盖茨和艾伦积累起了微软帝国的第一桶金。所以毫不奇怪,当美国国家标准协会制定的 ANSI Standard for Minimal BASIC (X3.60-1978)标准推出时,它主要参考的是微软的版本。

然而,使用微软的商业版本需要付费,ZX80/ZX81 的目标是尽可能降低成本,付许可费的事情是绝对不允许的。所以辛克莱在 1979 年 4 月约了 Nine Tiles 公司的创始人约翰·格兰特(John Grant)会面,讨论 ZX80 的软件需求。虽然辛克莱给的研发预算很少, Nine Tiles 几乎无法从这笔交易中赚到一分钱,但格兰特感觉未来公司将从中受益,这个项目令人兴奋,值得投入,于是便和辛克莱达成了合作协议。

也许正是因为这个原因,神奇的是,辛克莱研究从来没有获得过 ROM 的任何版权,ROM 的版权一直在 Nine Tiles 公司手里。这导致了 1986 年 Amstrad 收购 Sinclair 电脑产品线时,发现还得另外再收购 Nine Tiles 的版权。同时,当克隆/仿制机出现时,由于 ROM 版权不在自己手中,辛克莱研究也没有任何办法阻止这些“盗版”厂商获取利益,这也是 Sinclair 系列电脑克隆/仿制机型如此之多的一大原因。

ZX80 的 ROM 中的 BASIC 解释器由格兰特一人完成,他不仅缩减优化了代码,使其能够塞进仅有的 4KB 空间的 ROM 芯片中,还创造性的增加了一些功能,例如在输入代码时就能提示语法错误,而不是在运行时才提示语法错误(需要在输入完一行后按回车才会显示),这使其比任何其他版本的 BASIC 更容易学习和使用。

ZX81 的 BASIC 解释器还使用了关键词输入的方法以减低存储程序代码对内存的消耗。光标为反色的“K”是,按下键盘上的键会输入该键对应的关键字;光标为反色的“L”时,则是正常输入字符的模式;反色的“S”光标则指出该处有语法错误。

开发 ZX81 的 ROM 时,ROM 芯片的容量增加到了 8KB。辛克莱期望能够增强 ZX80 版本中的数学计算部分,ZX80 是不支持浮点运算的。史蒂夫·维克斯(Steve Vickers)在 1980 年 1 月加入了 Nine Tiles,进入项目组,主要负责 BASIC 解释器的开发。维克斯为 ZX81 的 BASIC 增加了浮点运算功能,同时还包括了三角函数和一些其他函数。

到 1980 年秋末,ROM 几乎完成,但仍需为 ZX 打印机添加支持。在这时,一个 Bug 被发现了,Bug 会导致 0.25 的平方根被计算为 1.3591409。Nine Tiles 很快修复了这个错误,但辛克莱研究迟迟没有将这个版本提供给已经购买了这台机器的人。这个臭名昭著的“平方根 Bug”,为辛克莱研究带来了负面的影响,后来他们不得不为早期购买的用户做了更换。

除此之外,在 ZX81 和天美时版本的 TS1000 及 TS1500 上,还有几个著名的 BASIC 语言 Bug。在 ZX81 和 TS1000 上,命令:

LPRINT 0.00001

将使 ZX 打印机输出 0.0XYZ1。这个 Bug 在 Timex Sinclair 1000 和 Sinclair ZX81 上都会发生,因为两台计算机共享相同的 ROM 代码。只有小数点后的第一个零被正确打印,而随后的零似乎被随机字母数字字符替换。最后的非零数字再次正确打印。有趣的是,这仅在使用 LPRINT( line-printer print ) 语句时发生,该语句使用打印机在纸上制作输出的硬拷贝。PRINT 在电视屏幕上显示输出的类似语句却可以正常工作。Tomaž Šolc 对这个 Bug 进行了反汇编分析,并发现 PRINT 语句在电视屏幕上输出正常仅仅是一个幸运的巧合,在迭代循环时,PRINT 和 LPRINT 调用的循环打印小数部分的 0 的代码都未重置寄存器 A。

这个众所周知的故障后来在 TS1500 上得到修正。不过 TS1500 却引入了新的 Bug。

10 FOR I=0 TO 1 STEP 0.25
20 PRINT I
30 NEXT I

这段代码在 ZX81 和 TS1000 上都能正确运行,但是在 TS1500 上却会比正常的结果少循环一次。

总体来说,Sinclair ZX81 的 8K BASIC 是一个更完整但又不够完整的 BASIC。READDATARESTORE 等功能仍然缺失,但数学包得到了改进,字符串处理和其他方面也得到了极大的改进。

ZX81 游戏:著名的 1K ZX CHESS 和 3D Monster Maze

ZX81 的成功也激发了对应的软件行业,数以千计的 ZX81 程序被发布,要么是刊登在杂志上的公开的代码清单,要么是可以从盒式磁带加载的现成应用程序。那个年代,许多计算机杂志都以刊登 ZX81 代码清单为特色,例如《Sinclair Programs》,完全致力于发布公开的应用源代码。而许多人成为典型的“卧室程序员”,他们在自己的家里制作游戏和应用程序。有些人建立起了自己的软件公司,雇佣程序员团队,软件业一片繁荣。

在众多的 ZX81 的应用程序,尤其是游戏软件中,著名的 1K ZX CHESS 和 3D Monster Maze 是不得不提的两个游戏软件。

如果不适用内存扩展模组,ZX81 可怜的 1KB 内存对程序员提出了重大挑战。前文提到,简单地显示全屏需要 768 个字节,系统变量占用另外 125 个字节,并且程序、输入缓冲区和堆栈还需要占用一定量的内存空间。尽管如此,聪明的程序员还能够在仅 1 KB 的内存空间中实现令人惊奇的应用。一个著名的例子就是大卫·霍恩(David Horne)在 1982 年为 ZX81 开发的 1K ZX CHESS 游戏。

1K ZX CHESS 只占用了 672 字节的内存空间,但它包含了国际象棋中除了王车易位、兵生变、吃过路兵以外的规则,甚至还包括了计算机对手。它曾经是是所有计算机平台上最小的国际象棋实现(今天这个称号由 LeanChess 持有,只有 288 个字节,不到 1K ZX Chess 大小的一半)。 大卫·霍恩在 1982 年和 1983 年在《Your Computer》杂志的一系列文章中讨论了 1K ZX Chess 并发布了完整的源代码

1K ZX CHESS 游戏的磁带封面,右图我走了一步,电脑也走了一步。
代码来源: www.zx81stuff.org.uk

在一项针对 ZX81 用户的调查中,1K ZX Chess 在最佳软件方面排名第二。《Retrogaming Times Monthly》将其描述为“历史上最伟大的游戏编程壮举”。BootChess 的作者 Olivier Poudade 称赞 1K ZX CHESS 的代码,指出要写出这么小的国际象棋程序“似乎是不可能的任务”,但大卫 · 霍恩却做到了。Poudade 承认在他的程序里,复制了霍恩的一些方法,因为他已经无法改进它们。

3D Monster Maze 是一款生存恐怖 电脑游戏,由马尔科姆 · 埃文斯(Malcolm Evans)基于 JK Greye 的创意开发,于 1982 年 2 月发布在 ZX81 平台。它需要有 16 KB 内存扩展才能运行。游戏使用低分辨率字符块来制作成“图形”渲染,使用 BASIC 和机器码结合编写而成。其创新设计使其被誉为第一款家用电脑 3D 游戏,也是电脑和视频游戏史上的里程碑。并且它还是最早融合了生存和恐怖的典型元素的游戏之一,后来被称为生存恐怖。

3D Monster Maze 将玩家置于一个迷宫中,有一个出口和一个敌对怪物霸王龙。在那里,玩家必须以第一人称视角穿越迷宫,并在不被吃掉的情况下从出口逃脱。

游戏使用随机生成的 18 x 16 单元格迷宫。最初霸王龙在等待。一旦玩家开始移动,霸王龙就会开始狩猎。此后,霸王龙可能会平静下来(如果玩家距离较远),或者随着玩家靠近而变得更加活跃。如果霸王龙直接看到它的猎物,怪物会直接冲向玩家。

霸王龙的焦虑水平(也就是它离玩家的距离)会通过状态行提示玩家。从远到近的描述分别是:

  • REX LIES IN WAIT
  • HE IS HUNTING FOR YOU
  • FOOTSTEPS APPROACHING
  • REX HAS SEEN YOU
  • RUN HE IS BESIDE YOU 或 RUN HE IS BEHIND YOU

玩家的速度比霸王龙要快,因此可以通过奔跑逃脱(除非玩家陷入死胡同)。每当霸王龙进行主动狩猎时,玩家的每一步都会获得积分。由于玩家跑得比怪物快,所以可以通过在怪物落后几步的情况下绕圈跑来积累积分。成功离开出口并进入另一个迷宫后也会获得积分。

3D Monster Maze 的游戏磁带封面和游戏画面,我运气不好,一出门就被霸王龙逮到了
代码来源: www.zx81stuff.org.uk

游戏的图形界面以每秒 6 帧左右的速度绘制实时动画 ,图像都是由 8×8 像素的黑白字符组成,因此视图大致为正方形,在 32×24 文本屏幕上占据 25×24 区域。ZX81 伪图形模式使得每个维度的分辨率翻倍(使视图由 50×48 个“较大的像素”组成)。使用带有抖动的 6 个伪图形模式字符还使游戏作者可以在黑白两色中加入第三种颜色(灰色)。屏幕的一部分是为分数计数保留的,单行状态消息偶尔会覆盖在图形界面的底部。玩家总是沿着走廊的中心线奔跑,只看当前方向,这简化了渲染任务。

该游戏的 3D 引擎和随机迷宫创建都使用 Z80 的机器码编写,封装到了 BASIC 程序的第 0 行,另外的一些 BASIC 语句则用于不太重要的任务,例如初始问候和游戏动画的行间延迟。第 0 行的机器码以 REM(BASIC 注释)语句开头,使解释器跳过它。

该游戏发行后在英国国内和海外销售,并在发布后不久就火爆了。当时的玩家评论将其描述为“我见过的最好的 Sinclair ZX81 游戏”和“太棒了,太棒了,太棒了!这直接进入了我个人的十大 ZX 程序……毫无疑问,它是最好的 ZX 程序之一”。

尽管它没有使用 ZX81 未公开的高分辨率图形功能,并使用伪图形字符(在标准 ZX81 字符集中可用)渲染场景,但该游戏被认为是一项非凡的成就,逼尽了机器机能的极限。

3D Monster Maze 获得了巨大的成功,后来,马尔科姆决定完全专注于电脑游戏。他创立的 New Generation Software 公司不断为 Sinclair Research 发布的计算机平台(包含未来的 Spectrum 等)制作 3D 游戏。以至于在当时,马尔科姆的名字成为了 3D 游戏的代名词。

我的 Sinclair ZX81 系列

我收藏了一台当年英国制造并通过邮购销往美国的 Sinclair ZX81 和官方附件 16K RAM 扩展组件。这台机器和内存扩展组件工作正常,成色也不错,我把玩了几天后就把它放在柜子里封存了。

主机插上 16K 扩展内存,这才是 ZX81 正常工作的样子。不过这个连接方式并不牢固,常常有松脱导致死机的情况发生。我在使用的过程中的确也遇到了一两次。个人觉得还是迪金森一开始设计的串联模组方式比较靠谱,不知道为什么后来没有被采用。

美国版的 ZX81 和 16K 模块背面加印了白色的说明,说明其符合了美国的 FCC 标准,并要使用原装电源。ZX81 背面还有一个频道选择开关,可以用来选择使用 VHF 波段的频道 2 和频道 3 来输出信号。

后来,我心血来潮把收藏的一些机器拍了些照片在放闲鱼上分享给其他爱好者,其中也包括这台 ZX81。结果有一位同城的哥们说收废品回收站废品收到一个样子差不多的东西,不懂是啥,自己拆开看了下,就装起来了,也不知好坏,闲鱼上搜索发现我分享的帖子,于是来问我按坏的备件机价出要不要。就这样,我又收到了一台 Timex Sinclair 1000。那位哥们还是蹬着自行车亲自送货来的。

Timex Sinclair 1000 外观除了 Logo 外其余和美国版的 ZX81 几乎没有任何不同,除了背面的印刷文字有些许变化(当然 Sinclare 的部分修改成 Timex 了)。

可惜的是这台 TS1000 收到的时候键盘连接主板的柔性电路板就是断裂的,上一任主人还尝试修复过,用铜丝粘在上面,但是这并没有什么用,很容易就会松脱。只能找机会看看如何定做一个键盘的柔性电路板来修复它吧。

我无意收到了 TS1000 就会收手?当然不会,无意中在闲鱼看到了一台 Timex Sinclair 1500,拿下!于是,我的收藏库里,官方的三种形态齐全了。

Timex Sinclair 1500 使用了原来给 ZX Spectrum 的美国版 TS2000 用的外壳,因此外形和 ZX81 及 TS1000 完全不同,尤其是键盘比之前好用太多了。打开外壳,看到的 PCB 设计也和原来的 ZX81/TS1000 完全不一样,ULA 芯片变成了方形(丝印了制造商是 TIMEX USA,且有外部晶振,应该是天美时重新设计过的定制芯片),内存有 8 颗 4116 芯片,板载就有 16KB,由于内存多了,还多了两个 74LS245 逻辑芯片来管理。但事实上,电路的基本设计及 ROM 和 ZX81/TS1000 几乎是一样的,万变不离其宗。

这台 TS1500 的键盘柔性电路板同样也断裂了,我从 eBay 订购了给 ZX Spectrum 替换的薄膜键盘柔性电路板更换后把它修复了。

故事到这里就结束了吗?呃,并没有,一个多月前,闲鱼上一位朋友 @PC 的童年 找到我,说他的 ZX81 貌似不显示了,问我大概什么原因。我心想不会是 ULA 坏了吧。哥们说,要不寄给你,你给看看吧。于是,他把他的大全套——一台 ZX81、一个原装电源、一个第三方的 16K 扩展卡、还有几本书、几盒 ZX81 的原版软件磁带都一股脑寄给了我。

我打开快递一看,哇,他的 ZX81 是欧洲版的,看了实机后,我发现跟美国版是有细微的区别的!虽然功能一样,欧洲版的键盘按键“0”上面的 Function 写的是“RUBOUT”,美国版写的则是“DELETE”。

而在主机背面,欧洲版除了没有打上美国版那样的 FCC 声明,还省去了射频的电视频道选择开关,从说明书上得知,默认是使用 UHF36 频道。这也表明了两者的 RF 射频模块是不同的,欧洲版是支持 PAL 的模块,而美国版应该是 NTSC 制式的。

由于射频调制模块不同,电路设计也有些许变化,因此美国版的射频输出接口的位置和欧洲版也有些不同,从侧面可以看到,欧洲版的较靠近音频接口,而美国版的则更靠近主机上方。

左为欧洲版,右为美国版

后来经过我检测,这位兄弟的主机并没坏,但是插上他的第三方的 16KB 内存扩展模块就开机无显示。我估摸着应该是这个模块的某个 4116 芯片坏了。

哥们的大全套,还包含了维克斯编写的 BAISC 手册和五盒原版游戏磁带,那个象棋不是 1K 版本,是个 16K 的其他游戏

磁带,一面一个游戏,写着载入的命令和加载大约需要的时间长度

最后来个合家欢吧!上排左起分别是:Sinclair ZX81 欧洲版,ZX81 美国版;下排左起分别是 Timex Sinclair 1000 和 Timex Sinclair 1500。在此,再次感谢 @PC 的童年 兄!

对了,最后别忘了 ZX81 的仿制机,这在国内也大量存在。我收藏了两款国内常见的仿制机——Lambda 8300 和 CAC-3。后者是仿制的前者,可以说是 ZX81 的孙子辈了。

下方是 Lambda 8300,上面是 CAC-3

这两款机型虽然外观模具一样,但内部电路 PCB 布线设计并不一样,不过它俩的 ULA 芯片都使用了一颗未标明生产商的 C4005 芯片(菲律宾制造)。那台 CAC-3 收来时显示不正常,屏幕上半部分无法正常显示。后来,我在闲鱼又低价收了一台 Lambda 8300,拆了它的 C4005 芯片,给 CAC-3 换上后,就一切正常了。

CAC-3 的 PCB Layout,最左侧就是 ULA 芯片 C4005

最后的最后,上一张我收藏的俄制仿制机 PATOH-9003 的芯片特写图,KP1858BM1 是俄制的 Z80CPU。那颗方方的一坨 KA1515XM1216 就是俄式 ULA,最边上一排 KP565PY5R 则是内存芯片。所有瓷片电容的焊接方式也很特别,都是倒接的。

后记

最近工作比较忙,加上我一向有犯懒拖更的习惯,这篇文章又是写了两个周末才完成。其实,我在 9 月就有写这篇文章的心,但拖延症一直困扰着我,不过,现在想想,幸好当时没写,否则 @PC 的童年 兄的那台欧版的 ZX81 的差异,按照我懒惰的习性,一定不会更新出来。今年是 ZX81 诞生 40 周年,辛克莱爵士也在今年与世长辞, 我再懒、再拖更,这篇文章也必须在今年完成。

谨以此文献给尊敬的辛克莱爵士,献给 ZX81,希望 ZX81 诞生 50 周年时,我还能记得再写一篇文章缅怀一下。

请忽略我 RF 转接 AV 后,用 19 元买的视频采集设备的渣画质

参考

链接: