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

マイコン独立大作戦
キーボードインターフェースの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
そして作戦その2は、やっぱりキーボードインターフェースしかありませんでしょう。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第6回]


●ND80Z3.5でキー入力テスト(2)

前回の続きです。
理解を助けるため前回の説明を一部再記いたします。

logfile nd80zlog\10041453.txt open
zb3dos3n 2014.4.6 by Chunichidenko

ND80Z3に接続しました
0001 0000 - z
1000 00C3 - *** nd80z3 basic ****
ndwr2h.bin loaded,from E23F to E535
>/ld keyin.bin,8100
loading KEYIN.BIN ...004c(76)bytes loaded,from 8100 to 814B
>usr($8100)
1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1CF01C323232323232323232323232323232F03212121212
12121212121212121212121212121212121212121212121212121212121221212121212121212121
2121212121212121212121212121F021F01212121212121212122323232323232323232323232323
23232323F023F01212121212121212121212122424242424242424242424242424242424F0122424
24242424242424242424242424242424242424242424242424F0242B2B2B2B2B2B2B2B2B2B343434
34343434343434343434343434343434343434343434343434343434F034F02B1414141414141414
14141414141414141414141414141414141414141414141414141414141414141414141414141422
22222222222222222222222222222222222222222222F022F0141212121212121212121212121212
12121212121212121212121212121212121212121212122C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C
2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2CF02CF0121A
>/exit
0000 00C3 - 
リモート接続を終了しました
logfile closed at Tue Oct 04 15:01:32 2016

上記はキーをA、B、C、D、Eと順番に一定時間押したときに出力された結果です。
途中テストのためにShiftキーも押しています。
ここで表示されているスキャンコードは以下の通りです。
A 1C
B 32
C 21
D 23
E 24
F 2B
G 34
左Shift 12 

前回は先にShiftキーを押してからEキーを押したのち、先にShiftキーを離してからEキーを離したときの結果について説明して、そこで終りました。
5行目の後半F024のところまでです。

その次は最初にFキーを押してそのままGキーを押してみました。
するとFキーのスキャンコード2Bが出されたあと途中Gキーを押したところからはGキーのスキャンコード34がオートリピート表示されました。
そのあと先にGキーを離したところF034が表示されましたが、その後のオートリピート表示はされず、Fキーを離すとそこでF02Bが表示されました。

そこから後のところで出てくるスキャンコードの説明が落ちていました。
以下のキーも使っています。

左Ctrl 14
X 22
T 2C
Z 1A

その後は前回と同様の操作で先に左Ctrlキーを押してからXキーを押したのち、先にXキーを離してからCtrlキーを離しました。
14、22、F0、22、F0、14の流れのところです。
その後も前回と同様の操作で先に左Shiftキーを押してからTキーを押したのち、先にTキーを離してからShiftキーを離しました。
12、2C、F0、2C、F0、12の流れのところです。
最後にZキーを押して処理を終了しました。
Zキーで処理を終了するのはCP/Mのユーザープログラムでよく使う終了方法です。

今回のマシン語プログラムは前回のリストを見ていただくとわかりますように、最後がRETで終っています。
後々のBASICでの利用を考えてサブルーチンにしてあります。
ですので上のログにありますように、USR($8100)で実行を開始しています。

さて、前回説明しましたように、今回のテストはND80Z3.5の82C55を使った簡単なマシン語プログラムを実行したものです。
Windowsのキーボードからこんなにも簡単にスキャンコードが得られることに、ここはぜひとも素直に驚嘆していただきたいと思います。
いまどきはネット上でPICやAVRやその他いろいろなボードを使った実験などが紹介されていますけれど、これほど単純、シンプルにしてかつ確実な再現性があるシステムは他にはない、と自画自賛しております。
いまどきは大抵はCコンパイラでのプログラムで書いてあるようですが、コンパイルエラーが出るケースも多いようですし、皆様けっこう面倒なことをやっていらっしゃるようです。
マシン語のプログラムはちょっと面倒ではありますが、今回のプログラムなどはそれほどむつかしいものではありません。
ND80Z3.5ユーザーでしたならば付属のZ80命令書を参照していただければすぐに理解できると思います。
もちろんND80ZVでも全く同じです。
もしND80Z3.5、ND80ZVのユーザーでPS/2キーボードをお持ちでしたら、PS/2ミニDIN6pinコネクタを入手していただいて、前回の図にあります通りの接続をして、前回のプログラムリストのマシン語コードを8100番地からCMコマンドでちょいちょいと入力するだけで準備完了です。
USR($8100)[Enter]と操作していただければ、前回および今回の説明と同じことをその通りに体験していただくことができます。
これって、ちょっとすばらしいことではありませんか?

ここではND80Z3.5、ND80ZVでのテストとして紹介しましたが、実はND8080でも全く同じことができます。
そのように考えて、前回のプログラムはZ80アセンブラで作成しましたけれど、8080で実行可能な命令だけを使ったプログラムになっています。

ND8080でも同じことをやってみました。
この通り、同じように実行できました。

logfile nd8080log\10161856.txt open
n8zb3_1a 2016.5.4 by Chunichidenko

ND8080に接続しました
0001 0000 - z
1000 00C3 - *** nd8080 zb3basic ****
>/ld keyin.bin,8100
loading KEYIN.BIN ...004c(76)bytes loaded,from 8100 to 814B
>usr($8100)
1C1C1C1C1C1C1C1C1C1CF01C323232323232323232F03221212121212121212121F0211212121212
121212121212121C1C1C1C1C1C1C1C1C1C1C1CF01CF0121A
>/exit
0000 00C3 - 
リモート接続を終了しました
logfile closed at Sun Oct 16 18:57:23 2016


キーボードインターフェースの製作[第6回]
2016.10.16upload

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