復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第466回]
●E−80試作3号機の動作テスト(2)
前回からの続きです。
前回はフロントパネルのスイッチを使って、下のプログラムをメモリに書きました。
0000 DBFF IN A,(FF)
0002 D3FF OUT (FF),A
0004 C30000 JP $0000
今回はそのプログラムを実行します。
●プログラムの実行
RESETスイッチを押します。
RUN/STOPスイッチを押し上げると、CPUがスタートし0000Hから書いたプログラムが実行されます。
右から3つ目のLED(RUN)が点灯して、CPUがプログラムを実行中であることを示しています。
プログラムが高速で実行されるためデータバスLEDとアドレスLEDは全部点灯しているように見えます。
ただプログラムが短くて0000H〜0006Hの範囲しかアクセスしないため、上位アドレスのLEDは消灯しています。
それでも下位アドレスのA0〜A7が全点灯しているように見えるのは、IN、OUT命令でFFHをアクセスしているからです。
フロントパネル左側のCPU STATUSは左端のMEMRDだけが点灯しているように見えますが、よく見るとM1、IOWR、IORDも薄く点灯しています。
実際にプログラムが実行されていることは、アドレス上位(A8〜A15)のスイッチを変化させてみるとわかります。
このスイッチはプログラム実行中はI/OアドレスFFHの入力装置として機能します。
スイッチを55Hにしてみました。
するとその上部にあるPROGRAMMED OUTPUTのLEDに55Hが表示されました。
このLEDはプログラム実行中はI/OアドレスFFHの出力装置として機能します。
このプログラムはI/OアドレスFFHのスイッチの値を読んで、I/OアドレスFFHのLEDにその値を表示することを繰り返し実行していますから、スイッチの値を変化させると、その変化がすぐにLEDの表示に反映されます。
ところで、上の写真をよく見ますと、上位アドレスA8〜A15のLEDにもスイッチと同じ55Hが表示されています。
アドレスを設定するときには当然そういうことになりますが、プログラムの実行中にはA8〜A15のLEDと、その下のスイッチは切り離されますから、上の写真のようなことにはならないはずです。
すると、設計ミスか?
いえいえ、そういうことではありません。
Z80に詳しい方でしたら、「ああ、そういうことか」とお気付きになられるかと思います。
このところずっと多忙のため、少しずつしか書く時間がありません。
本日も時間がなくなってしまいました。
この続きは次回に書くことにいたします。
ワンボードマイコンでCP/Mを![第466回]
2013.8.30upload
前へ
次へ
ホームページトップへ戻る