ここから本文です
Dr.KIKKIE(KIKI) MSX DeuxLaque
免責:記載誤りによる損害一切

書庫過去の投稿日別表示

全1ページ

[1]

シリアル通信(5)

イメージ 1
■とりあえず受信
まだ不安定要素はあるが、とりあえず受信できるようになった。
PC側のターミナルソフトからキーインすると、MSXに表示される。
1バイト受信してはBASICに渡すだけの最小限の機能だけなので、あまり早い処理はできない。手入力であれば追随できるが、ファイル送信では、1文字毎に50ミリ秒程度の遅延を入れる必要がある。1文字当たり0.05秒かかるので1秒間に20文字、160bps程度の転送速度か。

100 '================
110 'SERI_RB.BAS
120 '================
130 SAVE "SERI_RB.BAS"
140 CLEAR 200,&HBFFF:BLOAD"SERI_RB.OBJ"
150 DEFINT A-Z:DEFUSR=&HC000:A$=""
160 D=USR(0):D$=CHR$(PEEK(&HC003))
170 IF D$=CHR$(13) THEN PRINT A$:END
180 A$=A$+D$
190 GOTO 160

■処理手順
(1) 入力線がHIGHになっているか確認。HIGHでなければ、HIGHになるまで待つ。
(2) LOWになるのを待つ。
(3) ちょっと待って、1ビット目を取り込む。
(4) (3)を計8回繰り返して1バイトのデータを得る。
厄介だったのは、(3)の「ちょっと待って」の部分である。少し処理を変えるたびにウエイトループの定数を変更しないといけない。結局、ステート数計算は断念し、試行錯誤で定数を決めた。

■問題点
速度については、むやみに高速化を求めるよりも、MSXらしく十分遅く処理することで対処したい。とはいえ、現状ではカセットテープからの読み込みより遅いような気がする。これを酔狂と、いつまで笑ってられることやら。
精度については、MSXどうしの通信であれば送受信とも柔軟に対応できるので、なんとかなるさ、と考えている。PCからの受信は、まだちと厳しいなあ。
残る問題として、受信の際、なぜか漢字が文字化けする。送信ではANKモードで文字化けし、受信では漢字モードで文字化けするっていうのは、なんだかなあ。通信方法が単純ななだけに、タイミング以外に原因の見当がつかないのが困るっぽい。

■まとめ
まだ不完全ではあるものの、MSXどうしの通信に進みたい。実装に当たっては、2本に分かれている送受信プログラムの一本化も考えたい、と考えているところである。

全1ページ

[1]

1 2 3 4 5 6
7
8 9 10 11 12
13
14
15 16 17 18
19
20
21
22 23
24
25 26 27
28
29 30
Dr.KIKKIE(KIKI)
Dr.KIKKIE(KIKI)
非公開 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について

よしもとブログランキング

もっと見る
本文はここまでですこのページの先頭へ

[PR]お得情報

ふるさと納税サイト『さとふる』
最大10万円分旅行クーポンが当たる!
≪10月31日まで≫今すぐ応募!

その他のキャンペーン

みんなの更新記事