以下の改造には、組立前に基板の箔カットが必要になりますので、ご注意ください。
①DRAM容量アップ(48KB)
uPD41464(64kx4bit)を使用しました。M5M4416とピン互換ですが、4倍の容量があります。
改造ポイントは、
・CPUメモリアドレスデコーダの拡張
・アドレスマルチプレクサの拡張
・NMI信号の生成とZ80のNMIへの接続
Z80は、通常2mS/128リフレッシュしかサポートしていませんが、A7は、出力されますので、NMIで補完すると、4mS/256が実現できます。NMI信号の生成は、後述のPIC12F1822で行い、Z80のNMIに接続します。
・GRANTBAS、ZPTB、Universal Monitor Z80のRAM領域の変更および、NMIハンドラの追加(diff結果)
②クロック高速化(8MHz)
Z80クロック信号の生成は、PIC12F822で行います。
③シリアル速度自動設定(9.6kbps~115kbps)
シリアル速度自動設定は、PIC12F822で行います。
下記は、PIC12F822周りの改造回路です。IC11に実装しましたので、回路図は、IC11のピン番号になっています。
以下は、PIC12F822の仕様です。
①SCLK: SIOクロック(2PIN)
電源投入後2後~30秒までの間に、SIOのRXD端子からCRコードを検出して自動速度設定を行います。57.6kbpsと115.2kbpsでは、偏差が大きいので、使用できない場合があります。
検出速度 実測周波数
9.6kbps 153.6kHz
19.2bps 307.2kHz
38.4kbps 614.5kHz
57.6kbps 914.5kHz
115.2kbps 1937kHz
②CLK: Z80のクロック(3PIN)
デフォルトは、4MHzにしていますが、PIC12F1822のプログラム切替で、2/4/8MHzの選択が可能です。
③PWR: 抵抗を介して、リセット用のCR回路に接続します。(4PIN)
④~NMI:DRAM 4mS/256リフレッシュ用割り込み(7PIN)
Z80のNMIに接続します。下記は、NMI割り込み処理で、Z80のRレジスタ更新を2mS毎に行います。ROMに埋め込む必要があります。
; NMI HANDLER
; TARGET: SBCZ80
; ASSEMBLER: ARCPIT XZ80.EXE
;
NMI EQU 0066H ;NMI HANDLER ADDRESS
;
; NMI HANDLER
ORG NMI
PUSH AF
LD A,R
XOR 80H
LD R,A
POP AF
RETN
⑤~RST: Z80のリセット信号です。PWRのリセット用CR回路の電圧を監視しています。(6PIN)
~NMIは、このリセット信号解除に同期し、1mS後から出力されます。
⑥RXD: SIOのRXDA端子に接続します。シリアル自動速度設定に使用します。(5PIN)
最後に、以前の改造と同じように、ROMアドレス切替も行い、32KBのEEPROMを16KB+8KB+8KBに区切り、GRANTBAS、ZPTB、Universal Monitor Z80を切り替えて使用できるようにしました。同じくリセットCR回路のダイオードを電圧検出器に交換しています。追って、PIC12F822のソースコードを公開します。
下記は、改造後の基板の様子です。ジャンパが多くなってしましました。次は、8MHzも試してみる予定です。
立ち上げ画面です。"48766 Bytes free"となっています。
(再クロール更新:2022/12/22)