ワンボードマイコンをつくろう!(パソコンの原点はここから始まった)
TK80ソフトコンパチブル!8080、Z80マシン語からBASICまでこれ1台でこなせます
[第134回]
●ND80ZVをBSに接続する(4)
前回もちょっと書きましたように、新しい企画の実現に向けて、昨年末からずっと、正月休みも返上して、ひたすらドキュメントとキーボードと画面を相手に四苦八苦の毎日を送っております。
それでもその甲斐があって、つい先ほどやっと五里霧中だったところから、少し抜け出すことができたように思います。
ほっと一息ついたところで、やっと何日振りかに、こうして記事を書いております。
前回からの続きです。
前回書きましたように、ND80ZVのDMAenblをBSのHLDA+RESETに接続するようにということをM様にメールしましたところ、しばらくしてM様から「BSのメモリがアクセスできるようになりました」というメールが届きました。
めでたし、めでたし。
のはずだったのですが…。
そのメールには続きがありました。
「BSのキーボードから入力ができません」
M様はかなりつっこんで調べられたようです。
M様からいただいたメールによりますと、BSのキーボードの入力はBS上の8255で受けているようです。
その8255はなんとI/Oマップではなくてメモリマップになっているのだそうです。
アドレスは
Aポート 7DFC
Bポート 7DFD
Cポート 7DFE
コントロール 7DFF
とのことです。
さらに、キーボードからの入力はモード1で受けているようです。
8255は通常はモード0で使うことが多いのですが、そのほかにモード1とモード2があります。
モード1はストローブパルスを受けて8ビットデータをラッチするモードです。
モード2は双方向モードです。
ちょっと時間がありませんから、モード1について駆け足で説明をします。
●8255モード1
下はIntel社のデータシートからコピーしました。
急いでコピーしたのでマウスポインタが残ってしまいました。
ポートAとポートCの一部を使うグループAと、ポートBとポートCの一部を使うグループBがあります。
BSのキーボード回路は、グループAの入力モードを使っているようです。
コントロールワードはB×です。
8ビットのデータはポートAに入ります。
入力データはPC4に入力されるストローブパルスの立ち上がりでラッチされます。
同時にPC5がHになります。
CPUがデータを読むと、PC5がLになります。
このモードではPC5の状態を読んで、HになったらポートAからデータを入力する、という使い方をします。
ところがM様からのメールによると、キーボードを押しても、PC5がHにならないらしいのです。
PC5をチェックして、HならばポートAのデータを読む、というプログラムを実行しても、全く入力できないとのことです。
PC5をチェックしないで、いきなりポートAを読むと、ちゃんとキーボードから入力した文字コードが読み込めるのだそうです。
どうなっているのでしょう?
状況からすると、どうもモード設定でこけているように思えるのですが…。
本日は時間がなくなってしまいました。
この続きは次回にいたします。
ワンボードマイコンをつくろう![第134回]
2012.1.7upload
前へ
次へ
目次へ戻る
ホームページトップへ戻る