四通打字机的一些资料存档

Mon 21 September 2020

一些四通打字机的资料存档,供后人有需要时使用。

打字机相关的资料全部都在 software-archive 站中可获取: https://software-archive.tifan.la/Stone-Chinese-TypeWriter/

电子书

因为 Internet Archive 在中国被封,因此在 software-archive 站点中也提供了镜像。

打字机软件

四通打字机 MS-2401H 型的 BIOS 文件在这里:

https://software-archive.tifan.la/Stone-Chinese-TypeWriter/MS-2401H/

注意 MS-2401H 的 firmware 里已经包含了整个字处理软件,因此无需软盘即可启动使用编辑功能。

四通 MS-2401 I/O 表

目前靠猜测以及找资料,确认了 MS-2401 机型的已知 I/O 端口的对应设备。但是不幸的是仍然有很多端口还没有确认用途。

MS-2401 和 MS-2401H 的 I/O 设备略有不同,但是还没确定 MS-2401H 究竟多出来了什么。已知 MS-2401H 机使用两块新的 ASIC。

ASIC 型号为 uPD91260GD-5BD (ISH8) 以及 uPD91261PD-5BB (ISH9)。从名字上看,应为 NEC 公司设计。

Port Device
0x00 Programmable Timer Counter uPD71054C, 8MHz
0x01 Programmable Timer Counter uPD71054C, 8MHz
0x02 Programmable Timer Counter uPD71054C, 8MHz
0x03 Programmable Timer Counter uPD71054C, 8MHz
0x04 LCD MSM6255
0x05 LCD MSM6255
0x08 FDD uPD72067GC
0x09 FDD uPD72067GC
0x0C RS232 uPD71051 (8251 compatible)
0x0D RS232 uPD71051 (8251 compatible)
0x20 RTC RP5C15
0x21 RTC RP5C15
0x22 RTC RP5C15
0x23 RTC RP5C15
0x24 RTC RP5C15
0x25 RTC RP5C15
0x26 RTC RP5C15
0x27 RTC RP5C15
0x28 RTC RP5C15
0x29 RTC RP5C15
0x2A RTC RP5C15
0x2B RTC RP5C15
0x2C RTC RP5C15
0x2D RTC RP5C15
0x2E RTC RP5C15
0x2F RTC RP5C15
0x30 Bank Switching Calligraphic Page (0x6000), 16 dot
0x34 STATS SIO Status
0x38 LED 0
0x39 LED 1
0x3A LED 2
0x3B CMT MOTOR (MS-2402 only)
0x46 CG Bank Switching (0xA0000), 24 dot
0x4B unknown (called by NMI)
0x5E unknown
0x60 INT MASK VECTOR
0x62 KB INT Timer
0x66 KBD Y
0x68 KBD X
0x6A MOTOR_6A Head Data 0
0x6C MOTOR_6C Head Data 1
0x6E MOTOR_6E Head Data 2
0x70 PRINTER MOTOR / STATUS
0x72 COMMAND
0x74 STATUS
0x76 Bank Switching 24/8 DOTS CG
0x78 Bank Switching 16 DOTS CG
0x7A SIO RXCLK
0x7C SIO TXCLK
0x7E MODE SET
0x84 unknown
0x3B4 Video adapter?

四通 MS-2401 I/O 表详细情况

Port Direction Comments
0x60 out bit 3: keyboard (0=unmask)

四通 MS-2401H BIOS 各中断对应的地址

注意地址为 https://software-archive.tifan.la/Stone-Chinese-TypeWriter/MS-2401H/ALPS_BIOS-ST-M27C256B.BIN 中对应的

没写地址的表示这个 interrupt 直接调用了 IRET (也就是说没实现)。

没写用途的是因为还没猜出来是什么用途。

Int Address Function
0h 0x010a Divide Error
1h   Single Step
2h 0x33af NMI (printer, power)
3h 0x0000 Debug
4h   Overflow
5h   Sys Reserved
10h 0x4fd0  
11h 0x500d ax=0x4041
12h 0x5011 ax=0x0100
13h 0x5015  
16h 0x5189  
17h 0x51c5 ah=0
19h 0x51c3 run int 3h
1ah 0x51c8 Clear ax, cx, dx
1eh 0x51d2 (I/O with IO port 0x18 to 0x1F)
43h 0x2051 Keyboard
50h 0x2d40 (related with timer)
51h 0x2cb1  
52h 0x2440 LCD I/O; al=0: CLS
54h 0x1f20 Keyboard
56h 0x5670  
5ah 0x4990 Serial Port I/O
5bh 0x4cc0 Serial Port Control
5ch 0x2940  
5eh 0x2900 LED
60h 0x4780 Show error message
61h 0x484c Display text on LED
62h 0x1220 软盘
63h 0x1170  
64h 0x117d  
65h 0x0130  
66h 0x1360  
67h 0x14b0  
68h 0x1f10 al=2
6ah 0x4910  
6bh 0x563f Display Power failure
70h 0x51e0 此处代码与 INT 1eh 重合,51e0 处看起来不像正常代码
72h 0x5240  
73h 0x5394  
76h 0x5646 Display Low Power
77h 0x564e Display Power Empty
78h 0x5664 清屏
79h 0x54c0  

四通 MS-2401H 的内存地址

BIOS 工作区

0000:0000 to 0000:4000

With battery backup

5000:0000 to 5000:000f -- BIOS data

  • 打印修正 (0)

  • RS232C 线路说明 (1, 2)

    • 01h

      • BAUD RATE [7, 6, 5, 4]
      • STOP BIT [3 ,2]
      • PARITY BIT [1] (0 - odd, 1 - even)
      • PARITY ENABLE [0] (0 - disable, 1 - enable)
    • 02h

      • Unused [7, 6, 5, 4, 3, 2]

      • Length [1, 0]

        • 00: 5 bit
        • 01: 6 bit
        • 10: 7 bit
        • 11: 8 bit
  • 打印修正 (3)

  • 空白 (4 ~ 8)

  • 日期 (9 ~ D)

  • Checksum (E ~ F)

5000:0010 to 5000:1fff -- WP data

Comments