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

書庫過去の投稿日別表示

全1ページ

[1]

シリアル通信(2)

■BASICプログラム
前回に書いたとおり、送信したい文字列はUSR関数の引数として渡す。
MSXの場合、文字列は255文字までという制限に留意すべきである。
今回は、「引数として文字列をUSR関数に渡す」という仕様にしたため、このような制限がある。これにこだわらなければ、アセンブラソースを書き換えて、16ビット長のデータも扱えるはずである。
今回のテストしたプログラムは次のとおり。

100 '================
110 ' SERI.BAS
120 ' SERIAL OUT TEST
130 '================
140 'SAVE "SERI.BAS"
150 CLEAR 200,&HBFFF:BLOAD"SERIBAS.OBJ"
160 DEFUSR=&HC000:LF$=CHR$(10):CR$=CHR$(13)
170 FOR I=32 TO 126
180 D$=CHR$(I):D$=USR(D$)
190 NEXT
200 D$=USR(CR$):D$=USR(LF$)

">http://art19.photozou.jp/pub/378/247378/photo/29294606.jpg
MSXは、SONYのHB-F900を使用。写真右下の赤い小さなブレッドボードがインターフェース。
MSX本体に載っている左側画面はMSXのモニタ。右側がSA-1Fパソコン。文字コード32〜126の文字を表示している。ターミナルソフトは「Tera Term PRO」。MSX風に青地に白文字にしてみた。
http://art19.photozou.jp/pub/378/247378/photo/29275986_org.v1258227281.gif
パソコン側で受信しているさまをGIFアニメにしてみた。少〜し実際よりも早目に表示されている。
マシン語部分の転送速度は9600bpsであるが、BASICの部分で時間がかかっている。1文字ずつ送信しているためであって、送信データをまとめてバッファに格納し一気に送信すれば9600bpsの実力が発揮できるはずである。
受信側のパソコンの処理能力に余裕があるのでフロー制御なしでも大丈夫であるが、パソコンからMSXに送信する場合は、データの取りこぼしが予想される。
MSXの受信プログラムも書こうと思っているが、たいてい受信側のほうが面倒なんだなあ。

全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!ブログヘルプ - ブログ人気度について

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

もっと見る
本文はここまでですこのページの先頭へ
みんなの更新記事