四通打字机模拟器的一些挑战

Sun 27 September 2020

下面简单记录一下目前逆向工程 MS-2401 系列打字机并开发模拟器的一些挑战。

MS-2401H

目前手里能比较正常启动的机器都是 MS-2401H 型。此型机器有下面的特点:

  • 无需软盘即可启动进入字处理系统
  • CPU 运行在最大模式下
  • 系统集成度极高(通过两片 NEC 公司制造的 ASIC)

三条都是机器本身的很大优点,但是后两条对开发模拟器来说有极大的挑战。

I/O 端口

上一篇里已经大概摸索出了部分 IO 端口连接了什么设备,但是对于某个特定端口,目前无法确认读写后应有什么预期结果。

因此,很难将 BIOS 作为一个黑盒,直接模拟 IO 端口的行为(毕竟你也不知道)。

硬件

显然,硬件本身会发起中断,但是由于不知道硬件的具体行为,因此无法知道硬件内部状态机,更无法模拟这一部分。

实际上,上面两条已经让模拟器的开发停滞了一段时间:有一小段程序是在执行 WP 之前初始化硬件的,但是这段程序始终无法运行成功(会一直等某个内存置为某个特定值,但是并不能确定要运行什么才可以)。

缺少 ASIC 资料

如果有 ASIC 资料的话,上面的工作也会解决一部分,可以参照 datasheet 模拟 ASIC 行为。但是两块 ASIC 的 datasheet 无处可找。

ASIC 型号为uPD91260GD-5BD (ISH8) 以及 uPD91261PD-5BB (ISH9)。

MS-2401

MS-2401 运行在最小模式,相对来说资料也齐全很多。但是 MS-2401 有一个致命缺点 —— 它需要软盘才可以启动。目前完全找不到带有软盘的 MS-2401 机器。

所以,在最好情况下,MS-2401 也只能启动到「请插入软盘」的提示符。

Comments