读者们可能还记得,我曾经说过在和合作伙伴Joe Farr打造这台4位计算机——Maxfield/Farr 4-Bit HRRG时的想法是:总有一天它将化身为安装在墙上的一系列玻璃门木柜——每个木柜中都包含这台计算机的一部份,而且分别采用不同的建置技术来实现,包括继电器、真空管、分离式晶体管、7400系列芯片,以及一系列的机械、磁、气动和流体逻辑等组件组合。
正因为这种「让简单复杂化」的精神,这台Maxfield/Farr 4-Bit HRRG的HRRG部份就采用了漫画家Heath Robinson和Rube Goldberg而命名。您可参考打造这台4位HRRG计算机的一系列相关文章。
当然,真正实现这台4位计算机还需要几周的时间。然而,与我共同开发这台4位计算机的Joe Farr和我都非常期待这台计算机也能在教育中发挥作用,只是我们也知道建构完整版本可能超出许多高中教师的资源。因此,Joe最近开始以HRRG仿真器的形式打造该4位计算机的虚拟版本。
我们的想法是开放仿真器给任何想要使用的人免费下载。使用者们将能够透过创建汇编语言着手,并使其在虚拟世界中执行。只要准备就绪,他们就可以开始打造现实世界中的实体机柜,然后让这些实体机柜与仿真器共同执行,其中每个实体机柜可能包含少至单个4位内存字符一直到包含完整的CPU。从Joe刚刚发给我的这段视讯,即可看到目前的执行状况。
首先,主仿真器出现在屏幕的右侧,紧接着是左侧的虚拟打印机。对于仿真器而言,这是一种机架式可视化。Joe并将每个模块创建为独立程序,透过软件背板使用与现实世界机器相同的地址、数据和控制讯号进行通讯。
正如之前所讨论的,从仿真器顶部机架的左侧开始,我们可以看到有主电源模块、频率模块,然后是CPU模块;右侧的硬件接口模块则以新的形式出现。这将允许仿真器连接到现实世界中的实体机柜。
接着,Joe开始缩小仿真器、启动HRRG终端,加载预先创建的汇编语言并进行组合。Joe并在源程序码中加进一个错误,重新执行汇编语言,并显示追踪并校正错误的过程。
当Joe储存该程序语言时,他选择的选项之一是产生成虚拟纸带(paper tape)。接着,Joe缩小HRRG终端、将仿真器恢复至屏幕后再重新启动,此时恢复虚拟打印机。接下来,Joe将程序语言从纸带加载到仿真器中,并显示其正执行中。之后,他开始单步执行程序,并将除错信息输出到虚拟打印机。
您可能已经注意到,与虚拟打印机和纸带编写器和读取器有关的声音效果仅执行很短的时间。实际上,这是可配置的——您可以完全关闭声音,包括指定行数的声音,或者始终保持声音(这个人偏好这一选项)。
我开始担心Joe在此过程中「玩」得太开心了,因为他只透过电子邮件跟我说已经为仿真器创建了两个新模块——Tic-Tac-Toe模块和Traffic Intersection Simulator模块。
Tic-Tac-Toe 模块(来源:Joe Farr)
十字路口仿真器模块(来源:Joe Farr)
从Tic-Tac-Toe模块可看到,全部只采用了虚拟LED和虚拟按钮——用户必须自行编写程序(使用汇编语言),才能玩游戏。相形之下,十字路口仿真器模块的实际仿真是以恒定速度运行于背景中,而无论您自己的软件有多么糟糕或者缓慢。用户可以为其配置新车的频率以及其他参数,还可以设定目标,例如交叉路口处最多不超过多少车辆伫留等。用户的任务是编写程序(采用我们的汇编语言)来控制交通讯号灯,从而控制模拟中的汽车。
这两个模块已经过概念验证,以(a)展示其可以用于做什么,以及(b)有助于测试和除错整个仿真器。我不得不说Joe为此4位打造了很棒的仿真器模块,连我都迫不及待地想要亲自动手体验这台仿真器了。你呢?对于这项4位HRRG计算机仿真器设计有什么看法?或者,您认为还可能添加哪些其他有趣的模块?
(原文发表于ASPENCORE旗下EDN姐妹媒体EEWeb,参考连接:Building a 4-Bit Computer from the Ground Up: Emulators Rule,编译:Susan Hong,EDNTaiwan)