Last Updated on 2013年12月16日 by kabekin
待望のFLEX9でのクロス開発用通信環境がなんとか完成しました。
アスキーファイルの送受信プログラムをFLEX用のアセンブラで作ってみました。
これでB16のSE3やEASY-S1でコーディングしたソースファイルをFLEX上に移動できるようになりました(^^)
(しかし私の参考にした8251Aの参考書はNOP使いまくりで処理後はNOPを入れないと不安定みたいなことが書かれているので現状NOPだらけです。ホントにこんなに沢山いるのかなぁ~)
FM-7からの送信では4800bpsでも特に問題ないものの、FM-7への受信は600bpsでもFDへの書き込み時にデータを取りこぼしてしまいます。
F-BASICで作った通信ソフトはFD書き込み中のハンドシェークはできているので、現状F-BASIC用の仕様を満たせていません。
F-BASIC⇔FLEX用のFDコンバータがあればF-BASICで転送するのですが、FDコンバータも無いのでここはFLEX上でソースを受渡しするしかなさそうです。
FDCステータスレジスタ($FD18)0ビットのBUSYフラグでXOFFしてみようと挑戦してみたものの
FDCのBUSYフラグは変化しない模様・・・
割り込みを使っていない一筆書きのプログラムなので取得できないと思われますが、FD記録時でも取りこぼす時と正常に受信する時とマチマチなのでちょっと不明。
私の持っている少ない資料ではFM-7のシリアル回線からの文字欠け対策のハンドシェーク関係の資料は見つかりませんでした。
但し、FM-7の少ない受信バッファ(128バイト?)をカバーする方法として殆どの通信プログラムは裏メモリを利用したRAMディスクの受信で対応していたようです。
FLEXはDOSモードなので裏メモリは無いし・・・
FLEXがディスクバッファの書き込みを開始するトリガを見つけることができればなんとかなりそうなのですが、FLEXの資料は皆無なので別の方法を考えてみます。
こんなプログラムでも受信したソースを少し手直しすれば使えるのでFLEX9のクロス環境としては役に立ちそうなツールです^^;;;
yuyamaです。お久しぶりです。私もFLEX自身でのプログラム開発は不便なので、Windows上でクロス開発し、ソースやバイナリをFLEXに転送して実行し、ちょっとした手直しはFLEX上でしております。そのFLEXへの転送ですが、FLEX側のソフトはシリアルポートから1バイト読む毎にRTSを操作しているので、9600boudでも取りこぼしはありません。(普段はAV40SXですがFM-7でも動作確認済みです。)アセンブラですからRTSの操作は簡単で、ポートを読む前に8251に対してコマンド$36を発行し、読んだ直後にコマンド$16を発行するだけです。ディスクへの書き込みはデータがたまったらFLEXが勝手に書き込んでくれます。一度お試しください。
yuyamaさま
ご無沙汰しております^^。ブログ復旧後初コメどうもありがとうございました。
1バイト毎にハードフローで取りこぼし無しとのことで情報ありがとうございます。
この受信ソフトは以前教えて頂いたインタフェース誌の記事にあったキーボードから入力するソフトを変更してシリアル入力に変更した簡単な物ですが意外と便利で欠かせないツールになっています。
Windows側の通信ソフトも自作した物でハードフローに対応していなかったのですが、最近ではテラタームを使ってるのでハードフローも試してみたいと思います。
ラインエディタではなくスクロール可能なスクリーンエディタがあればFLEX上でガシガシコーディングするのも楽しそうなのですが無さそうなのでクロス環境に頼るしかなさそうです。