昔使っていた2400のモデムを分解したところTMPZ84C015が入っていてROMはAMDの27C512がが使われていました。TMPZ84C015はAKI80でも使われていますし、すこし前に共立電子で処分品が出ていたようです。
当初部品取りを考えたのですが、せっかく組みあがっているので、出来るだけそのままで利用する事にしました。
MEEPROMMERでROM読んでディスアセンブラしてみました。
I/Oポートを調べてみます。
% z80dasm --origin=0 rom.bin | grep "in " | sort | uniq
Warning: Code might not be 8080 compatible!
in a,(012h)
in a,(018h)
in a,(019h)
in a,(01ah)
in a,(01bh)
in a,(01ch)
in a,(01eh)
in a,(023h)
in a,(026h)
in a,(028h)
in a,(029h)
in a,(02bh)
in a,(02dh)
in a,(02eh)
in a,(02fh)
in a,(032h)
in a,(033h)
in a,(03bh)
in a,(03dh)
in a,(0a0h)
in a,(c)
in b,(c)
outも調べてみます。
% z80dasm --origin=0 rom.bin | grep "out " | sort | uniq
Warning: Code might not be 8080 compatible!
out (010h),a
out (011h),a
out (012h),a
out (013h),a
out (018h),a
out (019h),a
out (01ah),a
out (01bh),a
out (01ch),a
out (01dh),a
out (01eh),a
out (023h),a
out (026h),a
out (028h),a
out (029h),a
out (030h),a
out (032h),a
out (033h),a
out (036h),a
out (037h),a
out (038h),a
out (039h),a
out (03ah),a
out (03bh),a
out (03ch),a
out (03dh),a
out (080h),a
out (0a1h),a
out (0a3h),a
out (0c3h),a
out (0f0h),a
out (0f1h),a
out (0f4h),a
out (c),a
outは直前でaレジスタにldしている事が多いのでgrep -B 1するといいです。
TMPZ84C015の内蔵のI/O以外のポートはおそらくASICかMODEMチップへのアクセスと想像されます。
CTC
Channel | I/O Address |
---|---|
0 | #10 |
1 | #11 |
2 | #12 |
3 | #13 |
PIO
I/O function | I/O address |
---|---|
Port A data | #1C |
Port A Command | #1D |
Port B data | #1E |
Port B Command | #1F |
SIO
I/O function | I/O address |
---|---|
Channel A data | #18 |
Channel A command | #19 |
Channel B data | #1A |
Channel B command | #1B |
Watchdog #F0,#F1
Interrupt Priority #F4
SOP28ピンのSRAMらしき部品も実装されています。TMPZ84C015は16bitアドレスなので、27C512は64KでROMの一部はバンク切り替えになっていて、SRAMが後半にいるのではないかと思われます。
SRAMは部品番号が読めないのですが、A14が接続されているので、32KByteと思われます。
ハードウエアの仕様を確認するためのミニモニターを作って確認するのがよい気がします。