SORDm5C V01L02 SORD m5用ROM/RAMカートリッジ の改良版としてBASIC-FのROMイメージとシリアルインターフェースを追加したSORDm5Fを試作しました。
まずはメモリマップのおさらいから。
0000 - 1FFF 8KB *ROM0 モニタハンドラ(内蔵)
2000 - 3FFF 8KB *ROM1 (内部にソケットあり)
4000 - 5FFF 8KB *ROM2
6000 - 6FFF 4KB *EXM
7000 - 7FFF 4KB 内蔵RAM
8000 - FFFF 32KB 拡張RAM領域
*ROM0 , *ROM1 , *ROM2 , *EXM はカスタムIC GA015からの出力で、これらは同時にアサートされることはない。ROMはU1 27C512で容量は64Kx8。A15とA14をDIPスイッチで選択しているので16KB単位で4バンク使用。
ここではやくもミスが。BASIC-Fは2000 - 6FFFの20KBを使用するのでA14をデコードに含まないといけない。A14SELのスイッチはなくしてカートリッジのA14に接続しROMは32KB単位の2バンク構成にしないといけない。
または、*EXMと*EXMSELスイッチでBASIC-Fの*EXMに対応する4KBを有効にしたかったが、修正するならば*EXMSELスイッチで*EXMか*A14SELを選択してU1 ROMのA14に与える。
U4Cで*ROM0と*ROMDSをandしているがここは間違い。*ROMDSはSORD m5内部にあるROMソケット(*ROM1)のチップセレクトを抑止するための信号で、モニタハンドラ(*ROM0)の抑止ではない。これは0000-1FFFをdisableできると勘違いしたため。しかしそうなるとCP/Mはどうやって実現してるんだろうな?あと、*ROMDSは内部ROMのdisableと考えると各種カートリッジではGNDに落としてあるんじゃないだろうか。→手持ちのカートリッジを調べたら特に何もしていない
追記:CP/M実現のためにGA015→内蔵モニタハンドラROMの*CSに抵抗を入れて外部から内蔵ROMを強制的にdisableにする改造をしている。
※U3 HC86のピン5を上げてピン14(+5V)に接続すればSORDm5C相当になります
拡張RAMはU2 HM62256(32Kx8 SRAM)で割り当ててある。
シリアルインターフェース部分は8251でCPUのクロックが与えられるため3.5MHz以上で動作するグレードが必要。I/Oアドレスは60Hと61H。このセレクト信号はGA015からの出力*EXIOAで与えられる。GA015はA3~A0をデコードしないためアドレスの範囲は60H~6FHとなる。ここを厳密にデコードしようとU5 LS138を入れているが実際には不要なので、実装せずにU5の4ピンと15ピンをショートする。
EXCLKは8251のTXCLK/RXCLKで、Z80CTCの#2から供給される。システムクロックの4分周。さらに高速化できんかと元の発振クロックを設定で分周できるEXO-3を実装できるパターンを用意している。
シリアル通信の制御線まわりは独自に起こしたのだが以下に海外での解析した回路図があった。
これによると*EXINTは反転しないといけない。*DSR - *DTRはオープンだがここはジャンパを用意しているのでカット。*CTSはGNDに落とすオプションがある。あと、*ROM1で選択される8KBのROMは不明。BASICなどと領域がかぶるしBASIC-GやBASIC-Fでシリアルも制御できるはずと思っているがどうなんだろうか。
拡張RAMはU2 HM62256(32Kx8 SRAM)で割り当ててある。
U5を廃止できるので汎用ロジックはあと1個分は余裕があるが修正どうしようかなあ。


