シリアルコントローラ8251のテストを行いました。
プログラムが多少大きくなるのでまずアセンブラが必要です。
ここでは汎用アセンブラのPROASM-IIで行いました。
これはもともとZ80用のアセンブラですが8085命令のマクロファイルを読み込むことで
Intel8085ニーモニックに対応できます。
ここでは汎用アセンブラのPROASM-IIで行いました。
これはもともとZ80用のアセンブラですが8085命令のマクロファイルを読み込むことで
Intel8085ニーモニックに対応できます。
USARTを初期化してインクリメントデータを垂れ流しするプログラム
Z80専用命令をうっかり入れてしまうと実行時にCPUが暴走するかもしれないってことです。
3 0000 LIST 4 0020 SIOD equ 20h 5 0021 SIOC equ 21h 6 0000 7 0000 3E00 + init: mvi a,0 ;ダミーライト 8 0002 D321 out (sioc),a 9 0004 D321 out (sioc),a 10 0006 D321 out (sioc),a 11 0008 D321 out (sioc),a 12 000A D321 out (sioc),a 13 000C 3E40 + mvi a,40h ;リセット 14 000E D321 out (sioc),a 15 0010 3E4E + mvi a,4eh ;8bit,1stop,nonparity,*16 16 0012 D321 out (sioc),a 17 0014 3E37 + mvi a,37h ;TX,RXenable 18 0016 D321 out (sioc),a 19 0018 20 0018 0E00 + mvi c,0 21 001A DB21 loop: in a,(sioc) 22 001C E601 + ani 01h 23 001E CA1A00 + jz loop 24 0021 79 + mov a,c 25 0022 D320 out (siod),a 26 0024 0C + inr c 27 0025 C31A00 + jmp loop 28 0028 29 0028 end 0000-0028 No Fatal error(s)ザイログニーモニックが混ざっていてもエラーの検出が出来ませんが
Z80専用命令をうっかり入れてしまうと実行時にCPUが暴走するかもしれないってことです。
USART周りの残り配線、実装をしたところです。
はじめ送信レディフラグの0/1の意味を間違え「jnz loop」とコーディングしていて
シリアルデータがちっとも出て行かないんでハードを本気で見直してしまいました。
シリアルデータがちっとも出て行かないんでハードを本気で見直してしまいました。