【Z80】YS-6464Aのキー操作

YS-6464Aには、表示部となる7セグメントLED(6桁)、および入力部となるキースイッチ(21個)があります。本記事では、キー操作について解説します。
1.YS-6464Aの表示部と入力部
YS-6464Aの入力部と表示部
基板の右側に、表示部となる7セグメントLED(6桁)、および入力部となるキースイッチ(21個)があります。
表示部(7セグメントLED)
メモリーにデーターを書き込んだり、メモリーからデーターを読み出すとき、わかりやすくするために、アドレスとデーターを表示するための7セグメントLEDです。左側の4桁にアドレス、右側の2桁にデーターが表示されます。図1-2は、アドレス8000Hに格納されたデーター3EHを表示した例です。
入力部(キースイッチ:0~F)
アドレスやデーターを入力するキースイッチです。
入力部(キースイッチ:RESET)
Z80 CPUの[mathjax]~\rm\overline{\boldsymbol{RESET}}~[/mathjax]、および8255 PPIの[mathjax]~\rm{\boldsymbol{RESET}}~[/mathjax]をアクティブにすることで、両者を初期化します。メモリー(RAM)の内容は変化しません。
図1-5は、実際の回路図(リセットに関する部分の抜粋)です。RC回路でキースイッチのチャタリングを除去した後、2つのNOTゲートと抵抗(220K)で構成されるシュミット・トリガー回路でなだらかになった波形を元に戻すとともに、耐ノイズ性を向上させています。最終段のNOTゲートは信号の反転用です。
Z80 CPUでは、[mathjax]~\rm\overline{\boldsymbol{RESET}}~[/mathjax]がアクティブ(Lレベル)になると、プログラムカウンターが0000H、アドレスバスやデーターバスがハイインピーダンス、コントロールバスのうち出力向きの信号が非アクティブ(Hレベル)になるなどの初期化が行われます。
その後、キースイッチが離れ、[mathjax]~\rm\overline{\boldsymbol{RESET}}~[/mathjax]が非アクティブ(Hレベル)になると、プログラムカウンターの値である0000Hからオペコードが読み込まれます。YS-6464Aでは、ROM領域(0000H~)のモニタープログラムが実行されます。
8255 PPIでは、[mathjax]~\rm{\boldsymbol{RESET}}~[/mathjax]がアクティブ(Hレベル)になると、内部レジスターが初期化され、すべてのポートが入力モードとなります。
入力部(キースイッチ:ADR/RUN)
このキースイッチには、2つの役割が割り当てられています。アドレス(0000H~FFFFH)を入力して、このキースイッチを押すことで、そのアドレスにアクセスして、格納されているデーターを表示します。続けて、もう一度このキースイッチを押すと、そのアドレスから実行します。
入力部(キースイッチ:READ INC)
表示しているアドレスから一つ進めて、格納されているデーターを表示します。
入力部(キースイッチ:READ DEC)
表示しているアドレスから一つ戻って、格納されているデーターを表示します。
入力部(キースイッチ:WRITE INC)
入力したデーター(00~FF)をメモリーに格納して、アドレスを一つ進めます。
2.YS-6464Aのキー操作
リセット
Z80 CPU、および8255を初期化するには[RESET]を押します。メモリーの内容は変化しません。Z80 CPUの初期化に伴い、プログラムカウンターが0000Hとなります。[RESET]を離すと、ROM領域(0000H~)に格納されたモニタープログラムが実行され、キー入力待ちとなります。実行中のプログラムを停止したり、プログラムの実行前など、次の操作に移る前に押します。
アドレスの指定
格納されたデーターを確認したり、RAM領域にデーターを書き込むには、まずアドレスの指定が必要です。アドレスを指定するには、4桁のアドレスを入力して[ADR/RUN]を押します。図2-2は、アドレス8000Hを指定した例です。データーの表示(FFH)は状況により異なります。
データーの書き込み
RAM領域(8000H~)にデーターを書き込むには、アドレスを指定した後、2桁のデーターを入力して[WRITE INC]を押します。図2-3は、アドレス8000Hにデーター3EHを書き込んだ例です。[WRITE INC]を押すと、アドレスが一つ増えるので、連続してデーターを書き込むことができます。なお、データーの入力時に、アドレスの表示部も変化しますが無視できます。
連続したデーターの確認(降順・昇順)
連続したデーターを確認するには[READ DEC]、または[READ INC]を押します。図2-4は[READ DEC]を押した例です。アドレスが一つ減って、その内容が表示されます。
図2-5は[READ INC]を押した例です。アドレスが一つ増えて、その内容が表示されます。
プログラムの実行
プログラムを実行するには、プログラムの先頭アドレスを入力して[ADR/RUN]を2回押します。図2-6は、リセットした後、アドレス0890Hに格納されたプログラムを実行する例です。アドレス0890Hには、デモプログラム(MZ-2000アプリケーションの曲)が格納されています。