阅读四通 MS-2401H 图纸得到的一些 hints

Mon 15 February 2021

阅读 MS-2401H 图纸,配合设计文档,可以知道下面的一些结论:

  • MS-2401H 设计时,所有的 IO 设备都是通过 in / out 来进行的,而不是通过访问内存地址进行的。原因:没有为访问硬件设备留出专用的地址空间(8088 本来的地址空间就很稀缺了),而且 8088 原本就支持用 AD line 访问设备。
  • ISH8 芯片负责内部设备的片选、页切换等,ISH9 芯片负责外部设备的片选。但是一个例外:ISH9 的键盘中断接回了 ISH8。

ISH8 负责下面设备中断(输入):

  • 串口 (RXRDY)
  • Option board (OPINT, EXPRQ)
  • 键盘 (KBINT) 接到了 ISH-9 KBINT 输出
  • 软驱 (FDCINT)

ISH8 负责下面设备的片选(目前确认地址线高 2 位,即位 AD6, AD7 为 ISH8/ISH9 片选信号,AD0:5 为设备地址;AD6、7皆为高位时 ISH9 片选使能,其余时候 ISH8 片选使能。为什么这么说?因为 ISH9 只接了 A0:5, 而且 8088 A/AD 复用,所以 ISH-9 只可能负责 bit 6, 7 固定的部分。配合之前的部分反汇编结果,确认 bit 6 必须为高位, bit 7 必须为低位时片选 ISH-9 设备。)

  • SIOST (Serial IO status)

  • LCDCCS (LCD Controller CS)

  • FDCCS (FD Controller CS)

  • SIOCS (Serial IO CS)

  • RTCCS (RTC)

  • BIOSCS (BIOS EPROM)

  • BPRAMCS (Boot PRAM)

    Update Dec 27, 2021: I/O device 0x40 to 0x7f belongs to ISH-9.

ISH9 负责了大部分外部设备的直接控制,例如打印机、键盘等。键盘控制 intr 传递回给 ISH8,软驱根据电路图应为 ISH8 ISH9 共同控制,ISH9 只负责电机

  • 打印机所有的 IO 都接到了这里,大概有三十多个信号
  • 打印机电源开关
  • 电源管理(34V 打印机电压、电池电压低、主电源掉电信号等)
  • 软驱电机控制 (但是说明书里并没有提到这个)
  • 主 CPU NMI
  • RX/TX clock (for RS232)
  • expansion slot (IRQ)
  • 键盘 X0:7 Y0:10
  • 内建时钟(打印机、串口通信用)

一些可供猜测的地方 (和 MS-2401 的数据互相印证,我认为 2401 和 2401H 的很多代码类似,有时间 dump 2401 的话可以猜出更多信息):

  • RTC 需要 16 个连续地址,两个 Bank,每个 IO 地址只可以写四位(接了四根地址线、四根数据线)。不大可能 ISH8 锁存后共享地址。可以继续反汇编,寻找闹钟相关的逻辑,那里需要写入 bank 1, mode D, data bit 3 high。
  • 根据反汇编的结果,RTC 应该是 0x20 ~ 0x2F 地址
  • FDD 只有 A0 地址,所以 8、9 IO 端口,8 对应 status / aux command,9 对应 data.

Comments