Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

n88basic de 19200Baud

154 views
Skip to first unread message

Yasuyuki Mukai

unread,
Apr 13, 1998, 3:00:00 AM4/13/98
to

NEC N-88 BASIC(86) version 5.0をWindows95のDOS窓で使っています。
# NECの動作保証が無いのは承知の上なのですが。
マシンはPC-9821Cr13です。
この環境でCOMポートからデータを取り込むブログラムを作っています。
DOSのSPEEDコマンドで19200Baudに設定しているにも関わらず、
BASICで読むと1200Baudにでしか読むことができません。
なんとかして19200Baudで読む方法はないでしょうか?
以下がテストに使ったプログラムです。

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

Shuji Horie

unread,
Apr 13, 1998, 3:00:00 AM4/13/98
to

記事<3530DD...@imasy.or.jp>での,
Yasuyuki Mukai <yasu...@imasy.or.jp> さんの次の記述に関して:

>> NEC N-88 BASIC(86) version 5.0をWindows95のDOS窓で使っています。
>> # NECの動作保証が無いのは承知の上なのですが。
>> マシンはPC-9821Cr13です。
>> この環境でCOMポートからデータを取り込むブログラムを作っています。
>> DOSのSPEEDコマンドで19200Baudに設定しているにも関わらず、
>> BASICで読むと1200Baudにでしか読むことができません。
>> なんとかして19200Baudで読む方法はないでしょうか?

もう、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

Ryo Kawakami

unread,
Apr 14, 1998, 3:00:00 AM4/14/98
to

川上@コルグです。

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なんて使っていないのですが、メモリスイッチの設定も
確認されてみたらいかがでしょう?

関係ないかもしれませんが。

Senoo Takashi

unread,
Apr 14, 1998, 3:00:00 AM4/14/98
to

妹尾(せのお)といいます

> 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」コマンドのほうはメモリスイッチの内容を変更する
コマンドなのでマニュアルをよく読んでから試して下さい。


Yasuyuki Mukai

unread,
Apr 15, 1998, 3:00:00 AM4/15/98
to

Ryo Kawakami wrote:
> 最近、basicなんて使っていないのですが、メモリスイッチの設定も
> 確認されてみたらいかがでしょう?
>
> 関係ないかもしれませんが。

ちゃんと19200にしていました。

Yasuyuki Mukai

unread,
Apr 15, 1998, 3:00:00 AM4/15/98
to

Shuji Horie wrote:
> もう、followが入っていると思いますが、Basicで、1200Baudも出ればりっぱな
> ものでしょう。速度を優先するなら、Cとか、Delphiに変えたらいいと思います
> よ。Basicは遅いから、そんなものだと思います。

RS232Cでデータを読んでグラフィック表示をしようと考えていたので、
一からCとかで組むのは面倒とN88BASICでやろうと思ったのでした。
しょうがないのでVectorを探してみたらC用のRS232Cライブラリと
グラフィックライブラリがあったので、Cで組んで見ようと思います。

どうもありがとうございました。

P.S.
N88BASICの実行速度ですが、PC9801EX2(286 12M?)でコンパイル後
実行したものよりPC9821Cr13(Pentiam 133M)のインタプリタで実行
したものの方がうんと速かったです。

Yasuyuki Mukai

unread,
Apr 17, 1998, 3:00:00 AM4/17/98
to

Senoo Takashi wrote:
> N-88 BASIC(86) version 6.0 のユーザーズマニュアルには,
> ボーレートの設定は,「SWITCH」コマンド又はセットアップユーティリー
> で行うと書いてあります。

「SWITCH」コマンドでやってもだめでした。
ちなみにWindows95 DOS窓の「SWITCH」コマンドには19200までありました。
念のために電源を入れる時に「HELP」を押して出すメニューでやっても
だめでした。

Yoshiyuki Katsuma

unread,
Apr 21, 1998, 3:00:00 AM4/21/98
to

勝間@東洋紡です.

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


Yasuyuki Mukai

unread,
Apr 23, 1998, 3:00:00 AM4/23/98
to

Yasuyuki Mukai wrote:
> なんとかして19200Baudで読む方法はないでしょうか?

メールで
> 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

0 new messages