2012.1.7
前へ
次へ
目次へ戻る
ホームページトップへ戻る

ワンボードマイコンをつくろう!(パソコンの原点はここから始まった) 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

前へ
次へ
目次へ戻る
ホームページトップへ戻る