FM-7のZ80スロットを使う拡張カードII実践編PART6

実践編PART5 以降に確認したことを補足し追加します。

1)「データのビット0」は「74LS244」を通さず、「Arduino(ATmega2560)」の
D22からの(入力・出力)信号で読み書きしても支障がないことを確認しました。
「74LS244」を通すと、書き込みしかできないので汎用性に欠けます。
尚、この変更で自分は「74LS244」の18番ピンをソケットから出しました。

2)更にプリント基板を製作してたのでソケットから出した「74LS244」の18番ピンと
「Arduino(ATmega2560)」のD48をワイヤーラッピングで接続しました。
こうすることでCPU切替用として使っていた「データのビット0」を「QB信号」用として
転用できました。尚「Arduino(ATmega2560)」からの出力はD10を使います。
またonedriveにある回路図ではD11を「QB信号」用にしましたが、双方の変更は
排他的です。どちらかの変更をすれば、もう片方の変更はしないで下さい。

3)回路図は更新しませんが上記の変更に対応したスケッチはonedriveに上げました。
↓でどちらかを機能させて下さい。
#define QB_OUT 10 // QB_OUT port 20200225
// #define QB_OUT 11 // QB_OUT port 20200225

sketch_FM7_ATmega2560V2.info.ino(V2です)
https://onedrive.live.com/?authkey=%21Aln7kHlkHDL28EE&cid=6357DCB7DCA88133&id=6357DCB7DCA88133%21253&parId=6357DCB7DCA88133%21108&o=OneUp

対応する回路図
FM-7_ATmega2560_2020.pdf
https://onedrive.live.com/?authkey=%21Aln7kHlkHDL28EE&cid=6357DCB7DCA88133&id=6357DCB7DCA88133%21247&parId=6357DCB7DCA88133%21108&o=OneUp


メモリの読み書きを整理し、処理を関数化して多少は見易くました。
「case 0: // init」の処理は、そのまま書いていますが、他は関数化したので
見易くなったのではと考えてます。

「LOW == z80w」時に「switch case」中から関数をコールしてます。

switch (end_flag) {

case 0: // init
初期化処理
FM7_REFCK(); は DRAMリフレッシュ パルス関数

case 1: // Write exec_data[]
拙作FT245RL基板のローダーの書き込み処理
WriteData(); としてメインの処理を関数化

case 2: // Read exec_data[]
上記のFM-7のメモリに書いた内容を改めて
「Arduino(ATmega2560)」で読み込み
ターミナルに出力する処理
ReadData(); としてメインの処理を関数化

case 3: // Read BOOT_ROM
FM-7のBOOT_ROMを読み込み、ターミナルに出力する処理
ReadData(); としてメインの処理を関数化

case 4: // POKE $FD05,0
「Arduino(ATmega2560)」をFM-7のバスから切り離し、
制御を「6809」に戻す処理(「6809」に戻らないことが多いです)
writeCPUSw();としてメインの処理を関数化

}

4)メモリの読み書きができれえば、FM-7のメモリ検査で使えるのではと。


それでは、また。
関連記事
スポンサーサイト



コメント

Z80カード

すみません、全然眺めていませんでしたが、あれからいろいろと試行錯誤されていたのですね。適宜アドバイスをすべきでした。といってもほとんど忘れていて、DRAMのリフレッシュもご指摘を受けて思い出した次第です。おっしゃるとおり、Z80には自動リフレッシュパルス出力機能があるので、それを使用していたと記憶しています。40PIN B18に*REFCKという信号があるので、メモリアクセスしていない時に適宜出力する必要があります。これもソフトでできますが、やりすぎなので、ハードでやるべきでしょうね。







補足説明ありがとうございます

桜井さま、御指摘・御説明ありがとうございます。

DRAMのリフレッシュもハードで実装した方が安定すると言う御指摘は
何とか理解できるようにはなりました。と言うのは「ATmega2560」で
「POKE $FD05、0」的なコードを実行して、BISICには復帰はしていますが
個体差に起因すると思われる事象が発生しているからです。完璧に復帰する
FM-7もある中、エラーコードを表示しながら、復帰するFM-7もあります。
そのような状況ですが今回の基板では自分の技量を勘案して、この水準で
十分満足してます。お蔭様でメモリに不具合があると判明しているFM-7の
アドレスを「ATmega2560」を使って、特定する機能も実装できました。

改めて今回の「ATmega2560」基板で道標を案内して下さった桜井さまと
期待した動作になるべく、助言・協力を頂いた有志に感謝する次第です。
非公開コメント

プロフィール

vehwk3yxv7hw

Author:vehwk3yxv7hw
今から40年近く前に発売されたFM-7
と言う8ビット機のデータ管理を
現行PCでできるようにしましたが、
この程度の作業でも1年以上かかり
ました。とは言え現行PCでデータが
管理できれば昔のPCでも間接的とは
言えインターネットに接続してると
考えました。昔からFM-7用基板を
製作したい思いもありました。
FM-7の機能追加としてソフト的に
あと一つ残ってます。某ブログを
利用し公開してましたけど閉鎖に
伴いココを新発信基地とします。
思いはFM-7のハードに止まらず
昔のゲーム機の機能も拡張も考えて
います。尚写真は30年以上前です。

検索フォーム

ブロとも申請フォーム

QRコード

QR