Z80側からメモリにデータが書けるようになったので、再度動作確認実施!
確認点は
①任意のアドレスからデータリード
②メモリ前半部分にデータ書き込み
③メモリ後半部分にデータ書き込み
④I/O出力によりS1への割込み要求
の4点を確認するプログラムを実行してみました
実行した手順はこちら
全てS1のモニタで行ってます。
Z80は$0000~$003Fまでリセットベクタらしくユーザプログラムは$0040以降に書くのがルールっぽですが、ユーザプログラムエリアに使えないわけではないようなので回路の動作確認用にハンドアセンブルしました。
$0000~プログラムをセットします。
①物理メモリ$00000~$00FFFを論理メモリ$0000~$0FFFに割付
②物理メモリ$0F000~$0FFFFを論理メモリ$1000~$1FFFに割付
③$0000番地からテスト用プログラム書込み
0000 3A 0F 00 LD A,(000Fh)
0003 32 20 00 LD (0020h),A
0006 32 FF FF LD (FFFFh),A
0009 76 HALT
④コピー元データを$000Fに$E5セット
⑤POKE &HFF7F,&HFFでZ80リセット(Z80スタンバイ)
⑥POKE &HFE19,&H00でZ80スタート(Z80スタート)⇒S1バスから切り離し
⑦POKE &HFE19,&H80でZ80ストップ(Z80ストップ)⇒S1バスと接続
⑧モニタで実行結果確認
・$0000F($000F)から$5Eを読込めている — OK
・$00020($0020)に$5Eが書き込まれている — OK
・$0FFFF($1FFF)に$5Eが書き込まれている — OK
・Z80のプログラムを実行した後に$0000~のプログラムが壊れていない — OK
結果を見るとメモリからの読込みもOK、メモリの前半、後半の書込もOKでした
S1への割込要求も確認しておきます
テストプログラムにS1への割込要求を追加(I/Oアドレスはどこでもよさそうなので$01hで出力)
0009 3E 80 LD A,80h
000B D3 01 OUT (01h),A
000D 76 HALT
Z80のプログラムを実行するとフリーズ状態になったので割込要求があったものと思われます。
「BREAK」+「RESET」でホットリセットしメモリの中身を確認。
$0020に$E5, $FFFFに$E5で読み書きOK
ついでに$0000~のプログラムも破壊されていないことを確認 — OK
メモリ読書き、I/O出力共にOKになりました。
後はバンク切替のアドレスを指定できるレジスタがありますが、手元に64KB以上の拡張メモリが無いので動作確認は保留・・・
とりあえずZ80Bカードの動作確認OKということで、ソフト作成の作業に取り掛かります
動作確認OKということで、娘がウーニーズで人形を作ってくれました
これはカワイイ(^^)
娘からのお祝いといえばbabaさんから頂いた日本語通信カードをMASATOさんに頂いたFM-77に
取り付けた時のリカちゃん以来です
回路図を頂いてから3年半が経過・・・
時間がかかりましたが、一応完成しました^^
そんな、中部本多通商のZ80Bカードレプリカ完成の記録・・・^^
View Comments
Z80Bカードの完成おめでとうございます。
ちなみにFM-77山一ソケット化計画のマザーボードの横では、ちょっと大きめのスティッチとエンジェルが見張ってます。
おっ!
MASATOさんの環境も同じような感じですね^^
写真には写っていませんが、私のS1近くにも小さめのミッキーが見張ってくれてます・・・
御無沙汰しており、恐縮です。
娘さん謹製のウーニーズ人形に平静を保っていられなくなった為、
反射的にこちらで御祝いメッセージを投稿させて頂きます。
Z80Bカード完成、おめでとうございます!!
せっかくウーニーズで作ってくれた風船人形ですが、封止がいまいちですぐにしぼんでしまうんです(泣
既に写真に写ってる2/3くらいの大きさまで小さくなってます^^;;
このまま行くともう少し動作確認すると完全に萎みそうな予感・・・