シリアル送信部がほぼできたので今度は受信処理部分をコーディングしていきます。
デバッグのため前回作って動作確認済みの8085ボードにちょっと加工をしておきます。このボードのシリアルRXライン(MAX232の12ピン)と8085CPUのSID(5ピン)をUEWで接続
(以下の写真はイメージ)
こうしておくとホストマシンからのキャラクタがボード上の8251RxDとCPUによるソフトウェアUARTに同時に与えられるので両者の結果を比較することでソフトウェUARTの検証ができます。
処理方法としてはキャラクタが来る前にソフトウェアUARTルーチンを呼んでおき、RIM命令でSIDピンのレベルを監視しスタートビットの立下りを待ちます。
こうすることで各ビット幅のほぼ中央でサンプリングされるので多少ビットレートが揺らいでもOKです。
1ビット分の受信処理はこうなりました。
この処理はサブルーチンにしてありCALLで使われる18クロックを考慮して110クロック消費するようになっていて不足69クロック分はさらに調整ルーチンtwait69を呼んでいます