一些四通打字机的资料存档,供后人有需要时使用。
打字机相关的资料全部都在 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