1010 '
1020 ON COM(1) GOSUB *GET.COM.DATA
1030 COM (1) OFF
1040 OPEN "COM1:N71NN" AS #1
1050 COM(1) ON
1060 '
1070 WHILE 1
1080 WEND
1090 END
1100 '
1110 'Get data
1120 *GET.COM.DATA
1130 COM(1) STOP
1140 D$=INPUT$(LOC(#1),#1)
1150 'PRINT LEN(D$);" ";
1160 'PRINT D$;
1170 FOR I=1 TO LEN(D$)
1180 PRINT HEX$(ASC(MID$(D$,I,1)));" ";
1190 NEXT I
1200 COM(1) ON
1210 RETURN
もう、followが入っていると思いますが、Basicで、1200Baudも出ればりっぱな
ものでしょう。速度を優先するなら、Cとか、Delphiに変えたらいいと思います
よ。Basicは遅いから、そんなものだと思います。
私の場合、昔々、basicでcodingしましたが、800Baudしかでなかったです。
堀 江 周 二
qui...@mail.netwave.or.jp PFH0...@niftyserve.or.jp
Department of Neurosurgery Miyoshi Prefectural Hospital
TEL +81-883-72-1131 FAX +81-883-72-6910
川上@コルグです。
Yasuyuki Mukai <yasu...@imasy.or.jp> wrote in article
<3530DD...@imasy.or.jp>...
> NEC N-88 BASIC(86) version 5.0をWindows95のDOS窓で使っています。
> # NECの動作保証が無いのは承知の上なのですが。
> マシンはPC-9821Cr13です。
> この環境でCOMポートからデータを取り込むブログラムを作っています。
> DOSのSPEEDコマンドで19200Baudに設定しているにも関わらず、
> BASICで読むと1200Baudにでしか読むことができません。
> なんとかして19200Baudで読む方法はないでしょうか?
最近、basicなんて使っていないのですが、メモリスイッチの設定も
確認されてみたらいかがでしょう?
関係ないかもしれませんが。
> NEC N-88 BASIC(86) version 5.0をWindows95のDOS窓で使っています。
> # NECの動作保証が無いのは承知の上なのですが。
> マシンはPC-9821Cr13です。
> この環境でCOMポートからデータを取り込むブログラムを作っています。
> DOSのSPEEDコマンドで19200Baudに設定しているにも関わらず、
> BASICで読むと1200Baudにでしか読むことができません。
> なんとかして19200Baudで読む方法はないでしょうか?
N-88 BASIC(86) version 6.0 のユーザーズマニュアルには,
ボーレートの設定は,「SWITCH」コマンド又はセットアップユーティリー
で行うと書いてあります。
version 5.0でも同じことだろうと思います。
なお,セットアップユーティリティーの設定の項には,9600までしか
書いてなかったので,19200は無理かもしれません。
また「SWITCH」コマンドのほうはメモリスイッチの内容を変更する
コマンドなのでマニュアルをよく読んでから試して下さい。
ちゃんと19200にしていました。
RS232Cでデータを読んでグラフィック表示をしようと考えていたので、
一からCとかで組むのは面倒とN88BASICでやろうと思ったのでした。
しょうがないのでVectorを探してみたらC用のRS232Cライブラリと
グラフィックライブラリがあったので、Cで組んで見ようと思います。
どうもありがとうございました。
P.S.
N88BASICの実行速度ですが、PC9801EX2(286 12M?)でコンパイル後
実行したものよりPC9821Cr13(Pentiam 133M)のインタプリタで実行
したものの方がうんと速かったです。
「SWITCH」コマンドでやってもだめでした。
ちなみにWindows95 DOS窓の「SWITCH」コマンドには19200までありました。
念のために電源を入れる時に「HELP」を押して出すメニューでやっても
だめでした。
In article <3530DD...@imasy.or.jp>, yasu...@imasy.or.jp says...
>
>NEC N-88 BASIC(86) version 5.0をWindows95のDOS窓で使っています。
># NECの動作保証が無いのは承知の上なのですが。
>マシンはPC-9821Cr13です。
>この環境でCOMポートからデータを取り込むブログラムを作っています。
>DOSのSPEEDコマンドで19200Baudに設定しているにも関わらず、
>BASICで読むと1200Baudにでしか読むことができません。
>なんとかして19200Baudで読む方法はないでしょうか?
n88basicが,19200baudをサポートしていない可能性があります.
9600baudでの通信が可能かどうかをご確認ください.
可能であれば,n88basicの問題です.
なお,変更方法は,以下の手順で行ってください.
1. Switchコマンドで9600baudにセットする.
あわせてメモリスイッチの保持(HELP+RESETでの設定でDIP-SW2-5をONにする)もセットします.
(セット後,電源をきります.リセットスイッチだけでは,うまく動作しないことがあります.)
2. Speedコマンドで9600baudにセットする.
3. N88basicを動作させる.
なお,1200baudになるのは,
BIOSコマンドで,RS-232Cを初期化するとき,通信速度をサポート外の
値に設定すると1200baudになると書かれていますのでここに該当するのでは.
ないかと思います.
(参考文献:PC9800シリーズテクニカルデータブックBIOS編 P.328)
--
-----------------------------------------------------------
東洋紡績(株) 生化学事業部 Tel 06-348-3838
勝間祥行 Fax 06-348-3833
---------------------------- E-mail kat...@kt.toyobo.co.jp
メールで
> open文の後にout命令で直接ボーレートジェネレータのタイマー
> (71054相当)を19200bpsに合うように変更して実現しました。
と教えて頂きまして
http://www.webtech.co.jp/undoc/io_tcu.txt
を参考にして無事動きました。
ただ、頻繁に「Illegal function call in 1190」で落ちてしまいます。
コンパイルしても結果は同じでした。
相手がフロー制御しないのでしょうがないかなという感じです。
以下がテストに使ったプログラムです。
10 ' save "get_FOX",a
20 ' renum 1000,1000
1000 'osziFOX Data read
1010 '
1020 D$=SPACE$(255)
1030 ON COM(1) GOSUB *GET.COM.DATA
1040 COM (1) OFF
1050 OPEN "COM1:N71NN" AS #1
1060 OUT &H77,&HBE ' #2 LSB,MSB mode3 bin
1070 OUT &H75,&H8 ' LSB 19200bps
1080 OUT &H75,&H0 ' MSB
1090 COM(1) ON
1100 '
1110 WHILE 1
1120 WEND
1130 END
1140 '
1150 'Get data
1160 *GET.COM.DATA
1170 COM(1) STOP
1180 DATA.LEN=LOC(#1)
1190 LSET D$=INPUT$(DATA.LEN,#1)
1200 'PRINT DATA.LEN;" ";
1210 'PRINT LEFT$(D$,DATA.LEN);
1220 FOR I=1 TO DATA.LEN
1230 PRINT HEX$(ASC(MID$(D$,I,1)));" ";
1240 NEXT I
1250 COM(1) ON
1260 RETURN