KL5C80A12マイコンボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
KL5C80A12はZ80互換の高速高性能8ビットマイクロコントローラです。
残念なことに数年前に生産中止になってしまいました。
しかし当社ではKL5C80A12を使った組込みマイコンボードはまだ健在です。
そのKL5C80A12を使ったND80Z3.5上位互換マイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第46回]
●ZBKN.exeの再送付
ZBKN.exeの最新版を作成して今までにご購入いただいた皆様にメール添付でお送りしたのですが([第44回]参照)、その後にお客様からご指摘をいただいて、再度ZBKN.exeを修正いたしました。
再修正版は本日メール添付で皆様にお送りしました。
今回の修正はZBK−V3BASICでINKEY$の不具合に対処するためのものです。
INKEY$はキーボードから入力された文字を受けてリターンしますが、本来の機能ではキー入力がないときにはスペース(コード20H)を入れてリターンします。
そこに不具合があってキー入力がないときには入力されるまで待っていてリターンしてきません。
INPUT$(1)と同じ動作になっています。
これはZBKN.exeとZBKROMの両方のバグですが、ROMについては次期バージョンアップで対応することにして、今回はZBKN.exeのみ修正しました。
INKEY$の代用としては、マシン語のサブルーチンを使用していただくようお願いいたします。
以下にサンプルプログラムと実行例を示します。
下はマシン語サブルーチンです。
2018/10/10 21:19 inkysb.txt END=401E ;;;zbkn inkey$ sub ;18/10/10 ORG $4004 AP=$F440 APH=$F441 AOUT=$10AB AIN=$180C ; 4004 210000 LD HL,$0000 4007 2240F4 LD (AP),HL 400A 3E07 LD A,07 400C CDAB10 CALL AOUT 400F CD0C18 CALL AIN 4012 DA1940 JP C,BREAK 4015 3240F4 LD (AP),A 4018 C9 RET 4019 3E80 BREAK:LD A,80 401B 3241F4 LD (APH),A 401E C9 RET ; AIN =180C AOUT =10AB AP =F440 APH =F441 BREAK =4019 |
キーボードから入力された文字(のコード)が変数A%に格納されてリターンします。
[Ctrl][B]を入力すると、A%に負数を入れてリターンします。
下はBASICのメインプログラム例です。
10 'inkey$ 20 USR($4004) 30 IF A%=0 PRINT "-";:GOTO 20 40 IF A%<0 PRINT "break!":STOP 50 IF A%<$20 PRINT "[";HEX$(A%,2);"]";:GOTO 20 60 PRINT CHR$(A%);:GOTO 20 |
マシン語サブルーチンは4004から作成(またはロード)します。
BASICのメインプログラムはそれよりも後ろに作成するかロードします。
BASICのメインプログラムを新規に作成する場合には、たとえば
NEW,4100
を実行したあとBASICメインプログラムを作成します。
作成済みのBASICメインプログラムをロードするときは、たとえば
/LOAD INKYMN.TXT,4100
のようにロードアドレスを指定してロードします。
こうすることで4004〜のマシン語サブルーチンが壊されないで残ります。
実行結果です。
キーボードからa、b、cを入力したあと[Enter]キーを入力しました。
そのあとで[A]を入力するつもりで[Sift][A]と入力したつもりが{Ctrl][A]を入力してしまったようです。
おそらくそのために[01]が表示されています。
最後に[Ctrl][B]を入力しました。
ZBK−V3BASICのINKEY$は本来はASCII文字の入力しかできません。
入力がないときにはスペースを返します。
上で使ったマシン語サブルーチンではASCII文字以外のキーコードも受け取ります。
受け取った文字は変数A%に格納してリターンします。
[Ctrl][B]を入力すると、A%に負数を入れてリターンします。
本来のINKEY$よりも拡張した使い方ができます。
今回の不具合をご指摘いただいた大分県のH様、ご指摘有難うございました。
ご協力に感謝申し上げます。
今後ともご支援ご鞭撻をお願いいたします。
KL5C80A12マイコンボードの製作[第46回]
2018.10.10upload
前へ
次へ
ホームページトップへ戻る