2020/03/17
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のメモリ検査で使えるのではと。
それでは、また。
- 関連記事
-
- FM-7関連のオンラインイベント (2020/06/07)
- FM-7のZ80スロットを使う拡張カードII実践編PART7 (2020/03/29)
- FM-7のZ80スロットを使う拡張カードII実践編PART6 (2020/03/17)
- FM-7のZ80スロットを使う拡張カードII実践編PART5 (2020/02/22)
- FM-7のZ80スロットを使う拡張カードII実践編PART4 (2020/02/20)
スポンサーサイト
コメント
Z80カード
2020/04/09 21:25 by 桜井 URL 編集
補足説明ありがとうございます
DRAMのリフレッシュもハードで実装した方が安定すると言う御指摘は
何とか理解できるようにはなりました。と言うのは「ATmega2560」で
「POKE $FD05、0」的なコードを実行して、BISICには復帰はしていますが
個体差に起因すると思われる事象が発生しているからです。完璧に復帰する
FM-7もある中、エラーコードを表示しながら、復帰するFM-7もあります。
そのような状況ですが今回の基板では自分の技量を勘案して、この水準で
十分満足してます。お蔭様でメモリに不具合があると判明しているFM-7の
アドレスを「ATmega2560」を使って、特定する機能も実装できました。
改めて今回の「ATmega2560」基板で道標を案内して下さった桜井さまと
期待した動作になるべく、助言・協力を頂いた有志に感謝する次第です。
2020/04/10 12:37 by 秋田 URL 編集