极客逻辑 GeekLogic – COMX PC1

本文由来自 GeekLogic(极客逻辑)的老朋友 Wells 授权转载。原文地址:http://geek-logic.com/comx-pc1/,未做删改。

前言

COMX PC1 是和 Laser 310 同一时代的 8 位电脑。在 1984 年,教育部引进了一批计算机给各级学校,以便于学校进行计算机普及教学,其中就有 COMX PC1 和 Laser 310 这两款。可以说面对价格高不可攀的 Apple II、Commodore、Sinclair 等业界明星来说,COMX PC1 在当时的中国,和 Laser 310 一起,为中国计算机普及事业做出了巨大的贡献。

规格

型号 COMX PC1
制造商  Comx World Operations Ltd. (Hong Kong)
类型 家用电脑
原产地 香港
上市年份 1984
内置语言 COMX Basic v 1.00
键盘 QWERTY,61 键,带方向键
CPU RCA CDP1802A
主频 2.813 MHz (PAL) or 2.835 MHz (NTSC)
协处理器 CDP1869 和 CDP1870
RAM 32KB Dynamic RAM,最高可扩展至 64KB,默认 BASIC 可用 32KB
显存 4K Static RAM (COMX 35 是 3K,我的 COMX PC1 主板上是 2 颗 2KB 的 Static RAM 芯片)
ROM 16KB
文本模式 40 列 24 行 ,另外还有 20 列 24 行和 20 列 12 行的模式
图形模式 无图形模式,但用户可以使用 128 个自定义的 ASCII 字符来模拟 240 x 216 高分辨率图形模式
最多颜色数 8
声音 扬声器,一个声部,支持 8 个八度音阶,16 级音量,此外还有一个产生特殊音效和白噪音的通道
尺寸/重量 29 (W) x 16 (D) x 4.5 (H)厘米
I/O 端口 磁带机、视频输出、RF 射频输出、44pin 总线扩展接口
电源   1: GND 2: +9V 500MA DC
价格 未知,参考 COMX 35,英国 1983 售价 149.95 英镑

发售

1983 年一款型号为 COMX 35 的家用电脑出现在了市场上。这款电脑是由一家名为 NOXON AB 的荷兰公司设计,由香港的 COMX World Operations Ltd.生产制造并推向市场。在荷兰 COMX 35 由 West Electronics 负责发售。这款电脑带有 35KB 的内存(32KB RAM + 3KB 显存),并在键盘上集成了一个游戏摇杆,定位于家庭电脑兼顾娱乐。35KB 的内存也正是它型号被定为 COMX 35 的原因。

从一些广告文章中得知,当时 COMX 35 的竞争对手是同样来自香港的 Laser 200,这款机型内存较小,仅有 8KB RAM。Laser 200 的发售价格大约在 99 英镑左右,COMX 35 比他贵了 50 英镑,售价 149.95 英镑。当 Laser 200 降到 69.95 英镑时,COMX 35 同样也调整了策略,降价到了 119.95 英镑。

在推出 COMX 35 之后,COMX 公司又推出了 COMX PC1,这款计算机和 COMX 35 并没有本质区别,在硬件上几乎一致,唯一可见的改进是使用更好的键盘取代了原有的巧克力按键,同时用方向键取代了摇杆,使机器的定位从游戏更偏向于教学和一些简单的工作(但主频和内置的较初级版本的 BASIC 限制了该机型不能完全胜任商业使用)。从我拆开机器看,COMX PC1 的显存是由两颗 2KB 的 Static RAM 芯片构成,因此显存应该也是比 COMX 35 多了 1KB。从这点来看,也许它内部代号可能是 COMX 36 呢。

COMX PC1 在印度还以 Savla PC1 的名称售卖。

硬件

COMX PC1 主板布局

对于 COMX PC1 的 CPU,非常值得一说。COMX PC1 选择了 RCA 的 CDP1802A 芯片作为 CPU。这款处理器应该是世界上第一款(即使算不上第一,应该也是非常前列)使用 CMOS 工艺制造的处理器。它功耗很低(相对于当年来说),有着宽泛的工作电压和工作温度范围。虽然在它家用电脑领域较为少见,但在军用和特种行业领域确是鼎鼎大名。特别在航空领域,由于 CDP 1802 有着很好的抗辐射特性,在很多太空项目上都有它的身影,例如 NASA 的伽利略望远镜(Galileo Space Probe)项目、地磁卫星(MAGSAT)项目和后来的一些业余卫星项目(OSCAR-9 / UoSAT、OSCAR-10 / Phase-3B、OSCAR-11 / UoSAT2)中都有被使用。传言说旅行者号(Voyager)空间探测器、海盗号(Viking)火星探测器也有被使用,但经过我的查询,看到有调查说这是误传1 / 2。由于性能可靠,适用范围广,CDP1802 到现在还在不断量产中,瑞萨半导体(Renesas)收购了 RCA/Intersil 后拥有了 CDP1802。

在 COMX 35/PC1 的设计中,如果使用在 PAL 制式,CPU 将工作在 2.813 MHz 的频率下,如果使用的是 NTSC 制式,则工作频率是 2.835 MHz。

系统中一共有 32KB 动态 RAM(M3732L * 8)以及作为显存的 4KB 静态 RAM(HM6116 * 2)。32KB 的内存可供 BASIC 程序完全使用。

一颗单一的 16K ROM 芯片(M38128 * 1)中存放着 BASIC 解释器,所支持的语言是 COMX 定制的 COMX BASIC 1.0。受支持的语句和主频限制,COMX PC1 在商用领域作用有限。

声音和图像支持是基于了 RCA 的 VIS 系统设计的,VIS (Video Interface System) 包含了两个集成电路芯片,分别是 CDP1869 和 CDP1870。CDP1869 负责 VIS 系统的所有寻址工作,同时也处理产生声音和音效的波形。CDP1870 则负责产生彩色图像信号,他控制了所有的时序和信号生成。通过控制配置引脚输入电平的高低和使用合适频率的晶振,CDP1870 能够被设置成工作在 PAL 或 NTSC 制式下。

COMX PC1 的键盘在 COMX 35 的基础上做了改良,相对于 COMX 35 的橡胶软键,塑料的按键提供了更好的手感,但按键的回弹完全来自于键帽下方的单个硅胶软垫的弹力,因此事实上手感一般。键盘的按键信号扫描和控制是由右下方的 CDP1871 这颗芯片来负责的。

COMX PC1 在主板右侧还有一个 44pin 的扩展接口,与总线相连接,可以为 COMX PC1 提供以下硬件的扩展:

  • 扩展盒(能够扩展出 4 块接口卡插槽)
  • 软驱控制器 (使用 WD1770 控制芯片,支持双面磁盘,单面 35 磁道,16 扇区,每扇区 128 字节,单盘 140KB)
  • 串口/并口打印接口
  • 热敏打印机接口
  • PL-80 绘图仪接口
  • 32KB RAM 内存扩展卡(扩展出@[email protected] 的内存空间)
  • 80 列图形扩展卡(使用 MC6845 作为图形显示芯片)
  • EPROM 编程卡
  • 串口通信卡(网卡)

COMX PC-1 的内存映射表如下:

地址 类型
@[email protected] BASIC 系统使用的 ROM 空间
@[email protected] 系统参数
@[email protected] BASIC 程序和数据存储使用的空间
@[email protected] 为磁盘操作系统保留的空间
@[email protected] 内存扩展卡的 ROM 空间
@[email protected] 扩展盒的空间
@[email protected] 未使用
@[email protected] 显存中存放 ASCII 字符图形的空间
@[email protected] 显存页面

软件/固件

COMX 开机音效

当 COMX PC1 插上电源打开开关时,扬声器会播放上面的这段开机音效,虽然简单,但比起同时代的 Apple II 的“滴”一声是要动听不少了(不过后来 90 年代的小霸王学习机的“小霸王其乐无穷”更为魔性)。开机后显示器会显示 COMX 的 LOGO 以及版权信息。如果你使用的是彩色显示器,开机后不按任何键的话,这个 LOGO 会不停变色循环播放,直到你按下任意键进入 BASIC 界面。

上面的图片是我在 PAL 制式下截取的画面,如果工作在 NTSC 制式下,LOGO 的上下两根横线的颜色在第一、二、三种变化中将会显示成黄色、青色和青色。

进入 BASIC 系统后显示的是 BASIC 版本 1.0,同时提示符是一个冒号。如果你用过 Laser 310,看到青色的字符和粉色的菱形光标,给人的第一感觉是,这台计算机的 BASIC 界面的颜色比 Laser 310 要丰富好看的多。

在命令行输入 PRINT MEM 命令可以看到可使用的内存大小是 30934 字节。这个 COMX 定制的 1.0 版的 BASIC 解释器实现了大部分标准的 BASIC 语言功能,以下 35 个标准 BASIC 关键词可在代码中使用:

ABS, ASC, ATN, CHR, COS, DATA, DEFINT, DEG, END, EXP, FOR-NEXT, GOSUB, GOTO, IF-THEN, INPUT, INT, LEN, LET, LIST, LOG, MEM, MID, MOD, NEW, PEEK, POKE, PI, PRINT, RAD, READ, REM, RENUMBER, RESTORE, RETURN, RND, SGN, SIN, SQR, TAB, WAIT

除了标准 BASIC 指令,COMX 还实现了 33 个非标准的 BASIC 指令。其中 SHAPE 指令可以自定义 ASCII 字符,以实现模拟高分辨率图形模式(COMX PC1 共有 128 个 ASCII 字符,均可自定义);MUSIC 指令用来播放指定的音符;NOISE 则播放指定频率的声音;TONE 是播放指定频率的音阶;VOLUME 设置播放的音量;COLOUR 设置前景色;SCREEN 设置背景色。等等。

在编辑模式中 Ctrl+R 可以直接快捷输入上一次你输入的命令(Recall)。对于一些常用的 BASIC 指令也有快捷的缩写帮你简化程序的输入,例如 PRINT 可以缩写成 PR。但是这也带来另一个烦恼,也算是 Bug 吧,如果你在代码中输入 PR INT(3.14159)的时候,COMX BASIC 解释器会认为中间的空格是你误操作,直接把代码解释成为了 PRINT(3.14159),而不是正确的 PRINT INT(3.14159),运行的结果也是输出 3.14159 而不是你想要的 3。因此,在遇到取整这种情况下,还是不要偷懒为好,乖乖把 PRINT 命令打全吧。

我的 COMX PC1

我的 COMX PC1 和 Laser 310 一样,都是在闲鱼上收来的破烂货。在闲鱼上有很多卖家从货场去收回收来的二手坏键盘,转卖给那些拆键轴的人,而像 COMX PC1 和 Laser 310 这样的 80 年代 8 位电脑,因为长得像键盘,就一起混迹在这些破烂键盘之中。因为成色很差,或者很脏,有些老板就会把价格定得很低。我在咸鱼上找到一个卖家有大概 6 台左右的 COMX PC1,成色当然很伊拉克,都是战损版,键帽大多不全,从这 6 台当中我挑了 4 台键帽还算多的,成色看上去稍好一点的,想着拿回来无论如何也能拼个一两台出来。50 元一台,成交。

超级伊拉克战损版

收到货后,做了简单清洁,先插电试一下,成色最好的那台(只缺一个键的)直接点亮没有问题。可另外三台直接傻眼,一台主板上视频输出口被暴力拆掉,只留下了引脚还在主板上。另一台不仅视频输出口不见了,连 RF 射频调制模块整个都不翼而飞了,还有最后一台接口还在电路板未破坏的,却是开机黑屏……

不管了,死马当活马医,先把破坏掉的视频输出接口恢复了再看看情况,我焊上新的视频接口,插电开机,居然这两台都能有图像输出,甚至那台没有 RF 调制模组的开机也能显示 COMX LOGO。但可惜的是,这两台显示的都是黑白的图像,没有彩色信号。

这块板子很惨,RF 射频调制模块不翼而飞,连视频输出口都没有,图上黄色的视频端口是我后来焊接上去的。

为了查明原因,我查找了 COMX 35 的电路原理图(网上几乎找不到 COMX PC1 的,在海外 COMX 35 的发售量远超 COMX PC1,两者几乎相同,因此可以参考 COMX 35 的电路图),同时也参考了显示部分 VIS(Video Interface System)系统 CDP1869C、CDP1870C 的 Datasheet。从下图中可以看到整个显示子系统中 CDP1869 负责内存寻址,CDP1870 负责图像处理和输出。由于能显示画面,只是没有颜色,因此 CDP1869 部分的电路肯定没有问题。而 CDP1870 部分负责色彩的电路就是原理图中标注 CHROM 相关的部分(下图中我用蓝色框标注的部分),这部分电路很简单,除了了一个晶振就是一些起振电路使用的电阻和电容。因此除非 CDP1870 芯片本身有问题,否则出问题的仅可能在这些外围元件上。

接下来就简单了,示波器测试一下,发现根本没有波形信号,说明晶振不起作用,电容电阻量了下应该没问题。仔细一看这个晶振有些松动,手摸一下感觉有个引脚没有焊接稳固。用力掰了下,发现有个引脚生锈了,虽然还在原来位置,但是内部接触不良,并未导通。另一个主板上的同样也是类似的问题。淘宝找了下,PAL 制式使用的是 8.867236Mhz 的无源晶振,只有一家在卖的,赶紧买回来,换上,开机。BINGO!一切正常,输出图像恢复彩色!

最后一台虽然主板元器件看上去都是完好的,但是却开机没有显示。整理下思路,还是先从 VIS 系统查起,然后再倒推到 ROM、内存,最后到 CPU。先检查 VIS 的输出端,除了色彩输出的部分,上面电路图中我用红框标出的部分是负责图像生成的部分电路,同样有一个晶振,这个晶振的频率是 CPU 主频的两倍,PAL 系统下是 5.626Mhz。根据原理,如果这个晶振损坏,CPU 都没有正确的频率信号,不能工作,自然无法开机。有了之前的经验,我怀疑这批机器都有类似的问题,储存不当,导致晶振引脚生锈,所以先检查这个晶振。果然,示波器一样显示没有波形输出。再看这个晶振,虽然挺稳,但是底部有生锈,用力拆下来看引脚也是锈迹一片,估计也是同样的问题。准备到淘宝买个同样规格的无源晶振,但 5.626Mhz 这个频率的遍寻不着,问了好几家专门做晶振的商家,都说这个频率太少见实在没有。

难道就要这样放弃了吗?不死心继续找,终于有一家商家有这个频率的晶振,但是,是有源的,而且老板说这个数量也很少。不管这么多了,先买回来尝试做个转接板试试看吧。有源晶振价格也很贵,15 元一个,保险起见买了 5 个备用。

这款有源晶振还是 3.3v 的版本,COMX PC1 内部电压是通过一个 7805 芯片输出的 5v 电压,因此转接板上还要用一个 AMS1117-3.3 芯片来做个 DC-DC 降压。最终,简单的转接板的电路设计如下图。

AMS1117-3.3 将电压转换成 3.3v,有源晶振的引脚 3 输出时钟信号给到 CDP1870 的 XTAL 输入引脚 PIN 37

使用有源晶振就要把原有无源晶振起振电路中的电容电阻都去除,因此把两个 20pf 电容和一个 22M 电阻去除后,再将转接板接到主板原有电路中。加电,开机,终于,这台也成功显示画面了!至此,四台伊拉克成色的 COMX PC1 电路部分都修复完成,都能成功显示画面并输入程序了(其中一台丢失的 RF 射频调制模组再也找不回来了,不过这个模组也不是必须的,现在很少有人用射频输出了)。

将无源晶振更换成有源晶振模块,转接板反面是 AMS1117-3.3,原有 Y2、R48、C35、C36 全部拆除

电路部分修复后就是传统技能的展示时间了。板刷、洗洁精、纳米海绵、纳米陶瓷清洁剂轮番上阵,最后加上终极大法塑料去黄剂(双氧水)和太阳光的努力,帅气的 COMX PC1 重出江湖!跟最初的伊拉克成色几乎看不出是同一台设备。

修复完成的 COMX PC1

在最后的最后,我要特别感谢我的朋友@filab 未来乐器研究所,为了让我的 COMX PC1 重温年少时光,他送了我一个当年和它配套的 NORDMENDE 监视器。嗯,我们亲切的叫它大绿屏,一搭配,果然有 80 年代的味道了!谢谢@filab!

参考和链接

参考

链接