PC98で232c送信winndowで受信できない

このQ&Aのポイント
  • PC9801のDiskBasicでファイルをRS232C送信し、DOS/VのWinndowのRS232CのCOM1で正常受信ができません。
  • ウィンドウXPで受信らしき様子はあるが、内容が異なる16進コードで表示されます。
  • DOS N88BASICと同じように受信ができない原因は何でしょうか。
回答を見る
  • ベストアンサー

PC98で232c送信winndowで受信できない

PC9801のDiskBasicでファイルをRS232C送信し,DOS/VのWinndow(OS 95 98 XPなど) のRS232CのCOM1で正常受信ができません。DOS/VのPC9821のDOSのN88Basic では,クロスケーブルを使用して受信できますが,ウィンドウでは,フリーソフト7,8種類使用 しましたが、同じようには受信ができません。  ウィンドウXPで、同期して受信らしき様子はあるのですが、内容が16進コードで  00とか80とかのコードでどう行っても,送信コードとは異なっています。  送信コードは DISKBASICのN88BASCプログラムで以下のようなものです   100 'ABC   110 LINE(100,100)-(150,100),COL  通信ケーブルは, クロスです。   DOS N88BASICと同じように受信ができないのでしょうか。何が悪いのか原因は?  教えてください。   昔の5インチのデータを移植資料としてウィンドウで保存したいのです。

  • mokey
  • お礼率29% (7/24)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.9

PC-9801のシリアルポートの速度は、DiskBasicから設定はできません。メモリスイッチで設定します。(switch.n88が付いている) また、5インチのデータはプログラムソースですか? テキストファイルですか? バイナリファイルですか? プログラムソースなら、BASICでLoadして、「COM1:」にアスキーSAVEすれば良い。 テキストファイル(バイナリファイル)なら、ファイルを1バイトずつ読み込んで、16進2桁にしてシリアルポートに出力するようなプログラムを、BASICで作る必要があります。 この場合、受信側にも受信したデータを16進2桁から1バイトに戻してファイルに出力するするプログラムを用意する必要があります。

mokey
質問者

お礼

お忙しい中, 回答を寄せていただいた皆様に、心から感謝をいたします。  asano_nagi様、chei65535様,SorteNerd様には繰り返しのご回答へ感謝いたします。  KEIS050162様などいろいろお知恵を頂きありがとうございました。  なにしろ、皆様に感謝一杯です。     

mokey
質問者

補足

早速、実行してみました。  データは、Graphicのサブルーチンソフトです、テキストファイル形式です。 >PC-9801のシリアルポートの速度は、DiskBasicから設定はできません。メモリスイッチで設定しま >す。(switch.n88が付いている) switch.n88で通信条件を、設定してみました。  デフォルトで ボーレートは 1200でした。パリティ8 スtップビット1 他は none port 1 ボーレートを9600にして見ました。   ようやく、動作しました。3,,4本のVBソフトでも動作しました。N88Basic for windowでも 動作しまし た。  原因は、DISK BASICの場合, 9801本体内部のボーレートに依存しているのが、よくわかりました。 che65535さん、SortNerdさん.KEIS050162さんの皆様がが指摘していたように、ボーレートをソフト  で指定していたもので設定できなかったのが原因でした。    ちなみに、asano_nagiさまのターミナルソフトでも、難なく受信が行えました。  明確になった事:   本体のディップスイッチでは、ボーレートは設定できません。(マニュアルから)   デフォルトでのボーレートがわかったので、このボーレートにDOS/V PCを合わせて実行して   みました。(この場合 switch.n88は使わない)    N88BASIC for WINDOW でも正常に動作することがわかりました。遅いですが。    他の serial02なるソフトでも動作する事がわかりました。   ようやく、前進できます。    

その他の回答 (8)

  • SortaNerd
  • ベストアンサー率43% (1185/2748)
回答No.8

ボーレートが間違っているように見えますがはっきりしないので、 まずどのようなデータが送られているのか確かめるのがよいと思います。 オシロスコープを持っているならそれで、無いなら十分に分圧してからオーディオ入力に入れればデータが取れるでしょう。 とりあえず0xFF,0xFE,...0x80,0x00あたりを送ってみてデータを見れば何がまずいかわかると思います。

回答No.7

Windwos 側は、ターミナルソフトを使うとして、 N88Basic 側は、単に、 1) 転送しようとするプログラムを、一度 load して、 2) それを、 save "COM1:", a   とすると、"COM:1" というファイル(正しくはファイルディスクリプタ)に、セーブする=RS232-C 経由で、一気に送信する という動作をします。

  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.6

20年以上も前のことなので、細かい方法などは忘れてしましましたが、DOS版N88Basicが動く環境とN88Disk Basicが動く環境が揃っているなら、RS232Cで送るよりも、Disk BasicでアスキーセーブしたファイルをDOS版に変換した方が簡単な気がします。双方PC98ならば、そんなに難しくなかった記憶があります。 詳しい方法は忘れてしまいました。下記などを参考にしてみてください。 http://okwave.jp/qa/q2361331.html また、RS232Cの通信環境を確認するのであれば、PC9801をターミナルモードにして、ターミナル画面からタイプした文字をDOSマシンの方でちゃんと表示されるかどうか確認するのが良いでしょう。 これでちゃんと送受信できるのであれば、送信するBasicのプログラムが何か間違っているということでしょう。 PC98のマニュアルは未だ持っていますか?ターミナルモードという章を読んでみてください。 通信は、双方の通信モード(非同期、ボーレート、ビット長、ストップビット長、パリティ)が双方で合っていないと、文字化けなどします。結線が間違っていると、そもそもデータが送信されません。 取り急ぎご参考に。

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.5

N88BASICでクロスケーブルで受信できるなら 「Windows上で動くN88互換BASIC」 http://www.vector.co.jp/soft/dl/win31/prog/se025866.html でやっても受信できるのでは? で、Windows上で動くN88互換BASICに持って来れれば、アスキーセーブすればWindows上にファイルがセーブされるのでは? 試してないので「やってみる」しかないですけどね。 PC98は、ポートのボーレートは、本体のディップスイッチ等で設定するので「Windows上で動くN88互換BASIC」では「ボーレート設定」がオプションになっています。 当方は「Windows側で受信する方のボーレートが送信側と一致してない」と思ってるんですが。 送信と受信でボーレートが合って無いと、殆どのデータが「00」とか「80」とかになりますよ。 PC9801は「ボーレートは本体のディップスイッチで設定」します。プログラムでは指定出来ません。 Windowsパソコンは「ボーレートはCOMポートを開く時のオプションで設定」します。指定しないと「デフォルト」になります。 なお「ボーレート?何それ?」って場合は出直して来て下さい。お話になりません。 当方は「両方でボーレート合わせて、アスキーセーブしたの送信すれば、何の問題もなくXPで受信できる筈」って思ってるんですが。

回答No.4

No.2です。 補足を見て、状況が全くわからなくなりました。 > 100 OPEN "COM1" FOR INPUT #2 '読み込むファイル > 200 OPEN "COM1:N81NN" for OutPut #1 > 400 INPUT #1,A$ '1文字づつ入力 または LINE INPUT #1 > で基本送信しています。 そもそも、書き込むファイル #1 に対して、 input で、"送信" しているのはなぜですか? ただ単に、「昔のソースを保存する」だけなら、ターミナルソフトと呼ばれるもので、受信してそのまま保存すれば楽ですよ。 たとえば、 http://sourceforge.jp/projects/ttssh2/ とか。 試してみた「フリーソフト」とは、たとえば、どういうソフトですか? 単に、「DOS の Basic で、RS232C をアクセスする方法がわからない」という質問ですか? 「同期して受信らしき様子がある」とは、どのようにして判断したのでしょう? いろいろと不明です。

mokey
質問者

補足

紹介して頂いたソフトは、すでにテストずみです。やはりだめでした。 9801のボーレートは9600でテストしています。受信側9821のDOSで行う9801の本体のボーレート スイッチを変えなくても正常に受信が行えます。しかし、その機種のウィンドウで(WIN95)紹介し ていただいたソフトでは、受信が正常にできませんでした。これはほかのDOS/VのOS XPで受信 したものと同様でした。 >当方は「両方でボーレート合わせて、アスキーセーブしたの送信すれば、何の問題もなくXPで受信 >できる筈」って思ってるんですが  小生もそう思いました、結果は残念ながら駄目でしたので、Helpした次第です。  前の捕捉で、ミスがありました   INPUT #1,A$-->INPUT #2,A$ (送信Fileを呼び出すために使用) 最初はLINE INPUTで呼び 出していたのですが,1度に送るのが悪いかと思い,1文字づつの呼び出し、送信で行ったものです。  誤解を与えて申し訳ありません。(asano_nagi様へ)  紹介していただいた,ターミナルソフトもテストしてみます。   要するに、ウィンドウ上で正常に受信ができれば良いのです。  

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.3

送信側と受信側で、ボーレート、キャラクタビット数、パリティの有無を一致させないと、文字化けします。 なお、BASICのプログラムは、COMに送るときに「アスキーセーブしたもの」を送らないといけません。 BASICのプログラムは、普通にセーブされた状態は「中間コード」と言う、バイナリコードで保存されています。 BASICでは「REM文は01、LET文は02、GOTO文は03、IF文は04」のように、命令文を「1バイトの内部コード」に変換して記憶します。 こうすると、どんなに長い綴りの命令文でも「1バイト」で済むし、実行時に「命令文かどうかを文字列で比較しなくて済む」からです。 実行時に「1文字目がエル、2文字目がアイ、3文字目がエヌ、4文字目がイーだから、これはLINEだな」と、判断してから実行していたのでは、遅くなってしまいます。 なので、行番号付きで打ち込んだ瞬間に「1文字目がエル、2文字目がアイ、3文字目がエヌ、4文字目がイーだから、これはLINEだな」って判断を先に済ませて、LINE文を意味する中間コードに変換して保存するのです。 実行時は、変換済みの中間コードを1バイトだけ見れば「これはLINE文だ」と判ります。 このような理由で、中間コードになっているプログラムをそのまま送ってしまうと「00」とか「80」とか、見た目とはまったく別のコードが送られてきます。

mokey
質問者

補足

送信コード 100 OPEN "COM1" FOR INPUT #2 '読み込むファイル  200 OPEN "COM1:N81NN" for OutPut #1 400 INPUT #1,A$ '1文字づつ入力 または LINE INPUT #1  で基本送信しています。   ファイルは、アスキーSAVEしたものを使用して、行ってみました。 (asano様とchie65535さま指摘) 結果は同じでした。   chie65535さんのコードは,どのように記述するのでしょうか。もともとBASICは  中間コードですので、説明を受けても,実行ができません。  j受信はDOS N88BASICで受けると正常に受信できます。   公開ソフト win95対応N88BASICを使用すると全く動きません。絵や文字などは処理  できるようで すが,通信は現在できていません。   他に VBのsample_0008なる公開ソフトがありますが、これでも正常に動作しません。  データは同期して入ってくるようですが, BASICコードとしては、受け取れていません。   16進で確かめたのですが,全く異なるようです。chieさんも指摘されているように  あとは,tsunjiさんの結線を変える方法でうが,すぐには試せません。壊れないか心配もあります。    

回答No.2

どのような方法で、Disk Basic から送信しようとしているのでしょうか? Disk Basic のファイルは、独自のバイナリファイルですから、同じ(互換性のある)Diks Basic のシステムで受信しないと、意味のあるデータにはなりません。 Basic のプログラムということであれば、Load したあと、 save "COM1:", a と a オプションをつけるか、 list "COM1:" と list コマンドを使うかで、送信できた気がします。

mokey
質問者

補足

送信ソフト 10 ' 20 OPEN"COM1" FOR INPUT AS #2 30 ' 40 OPEN "COM1:n81nn" FOR OUTPUT as #1 50 ' 60 IF EOF(2) THEN 110 70 LINE INPUT #2,A$ 80 PRINT #1 ,A$ 90 PRINT A$ 100 GOTO 60 110 PRINT #1,"END":CLOSE #1:CLOSE #2:END が送信コードです。 送っているの90でモニタしています。内容はN88BASICprogramです。 このプログラムは昔,購入したグラフィックのサブルーチンです。  何故か、DISK BASICで記述されたものです。 送信すると,画面にリストがスクロールされます。当然ケーブルがクロスでないと送れません  まず.PC9821XaタイプのDOS N88BASICを動作させて受信すると正常にできます。   この機種はほ殆ど使用していないので,使いたくないPCです。   同じ機種でwin95を動作させて、公開ソフト N88basic forwinndowで受信すると、何も出てきませ  ん。ケーブルはDOSと同じDSUB25ピン クロス使用です。   次に、EPSONのXPウィンドウで別のクロスケーブルを接続(EPSONのはDSUB9ピンです。   ケーブルは、昔購入したリバースケーブルです。    この状態で 下記のフリーソフトを試しました。    RS232C_TEST   RS232C_Fman  samp_serialport    COMT1_2  serial1020 sirialTester sample_0008 など、フリーソフトから入手してテストしました。VB ソースリスト付です。   C言語のものも1つあったとおみます。    最後の sample_0008がデータとしては、何やら入ってきます。    このソフトは、画面上部にリストボックスが3つあり     ポード選択 ボーレート選択 パリティ+Xon/Off選択 が行え 傍に接続ボタンがあります。    下部には送信入力、その下に受信入力画面となっています。   送信はしないので,受信画面をチェックしています。    PC98の送信に合わせて、,正常ではありませんが上記受信画面にデータ?が亜羅列されます。  送信がおわると,同時に受信も停止します。    XPでもN88basic for windowは動作しますが,通信は、同じ結果動作しませんでした。   受信データをアスキーやHexなどに変換もできるソフトもあります。   他のソフトの説明は省略させていただきます。   asano_nagiさんの紹介していただいた,ターミナルソフトのttermproを動作させてみましたが、   不明の1文字が入ってくるだけでした。    winndow serial選択もしてみました。簡単には行きそうもありません。   keis050162のオシロで云々とありましたが,ケーブルをむき出しにしないと,できません。市販のを    壊したくないので。DSUB9ピンの箇所を作成増設すれば、できそうですが,.....現状ではソフトで    対応したいと思います。お金を掛ければ手段はあるようですが.........   とりあえず、情報が不足とのありましたので、捕捉しました。他には、もうありません。      N88DISKBASICのファイルを DOSに簡単に落とせるのでしょうか? DOS環境の場   合DISKBASIC環境は動作しないし、逆も同じだと思うのですが?         .     

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.1

PC98側のRTS-CTS信号を直結しないと、正常に送信できなかったと思う。

関連するQ&A

  • WIN XP ハイパーターミナルでのRS232C送信について

    WIN XP ハイパーターミナルでのRS232C送信について パソコンWIN XPでハイパーターミナルを使用してRS2323C通信のテストを行っております。 データの送信についてですが、16バイト分のデータを、まとめて送信したいのですが、どの様にしたら良いでしょうか? 送信するデータは、ASCIIコードで適当な文字を送る予定です。 宜しくお願いします。

  • WIN XP ハイパーターミナルでRS232C送信について 

    パソコンWIN XPからハイパーターミナルを使用してRs232C通信、送信相手はPLC(シーケンサ)を行おうと試みていますが、送信動作をすると”無効なメッセージ形式”と出て送信出来ません。 送信ファイルはメモ帳で作成しテキスト、ASCIIコード等色々な文字を記入して試みていますが、駄目です。 パソコンにはCOMポートが無いので、USBをシリアル変換ケーブルを使用して通信しています。 RS232Cの配線(クロス)、通信設定、COMポート選択に間違いが無いかも確認していますが、問題ないと思っています。 USBシリアル変換ケーブルが原因かとも思いますが、”無効なメッセージ形式”なので、送信するデータ形式に問題があるのではと考えていますが、正しくはどの様な形式のものをファイルの送信にすれば宜しいでしょうか。またファイルの送信設定で、色々なプロトコル選択があります。どれを選べば宜しいでしょうか。 通信ポートの設定は9600,N,8,1です。 ご回答、宜しくお願い致します。

  • NEC PC-8801 エミュレータってありますか?

    お世話になります。 NEC PC-8801 エミュレータってありますか? 昔、PC-8801MAを使っていたのですが、エミュレ-タってありますか? ある場合、DOS/V(XP)でも動作するのでしょうか? N88-BASICは動きますか? よろしくお願いします。

  • MSDOSでのプログラムについて

     今までN88ベーシックで制御関係のプログラムを組んでいましたが、最近PC98が手に入らなくなってきたので、MSDOSに切り替えようと思っています。DOS/VパソコンでWINDOWSを介さずにいきなりDOS上でプログラムを動かしたいのです。(WINDOWSは動作が不安定なので出来るだけ制御では使いたくないです)N88BASICの様に線を引いたり円を描いたりもしたいです。RS232Cを使用し通信も必要です。何について勉強すればいいのでしょうか?入口を教えてください。お忙しい方が多いと思いますが、何卒宜しくお願い申し上げます。

  • 2台のPCでRS-232C接続でファイル転送

    PCの2台間でRS-232Cのクロスケーブルでファイルのやりとりを行うことというのはできるでしょうか? PCそれぞれにTeraTermをインストールしているのですが、これに”ファイル送信”というのがありますが、この機能で、それは可能でしょうか? 例えば、WORDのdocファイルを送信して、受信側でそれをファイルとして受信できると言うことは可能でしょうか? どうぞ、ご存じの方いらっしゃいましたらご教授頂きますよう、お願い致します。 なぜ、このようなことをするのかということを説明させて頂きたいのですが、 今までマイコンのUARTでの通信でRS-485等を用いてマイコン間の通信をするような端末があるのですが、この間をインターネット化したいと言うことで、WIZ110SRというRS-232C-TCP/IPコンバータ端末というのを使うことになったのですが、このコンバータはローカルLAN内とインターネット回線での通信で通信速度が安定しないのではという疑問がありまして、PC間でファイル転送などをしてちゃんと転送した結果が送信元のファイルと全く同一でエラーなどが起きていないかを確認したいと思っています。 どうぞ、ご協力お願い致します。

  • RS-232Cで接続したPC間のファイル転送

    環境 [XP VB6.0] お世話になります。 RS-232Cのクロスケーブルで2台のPCを接続し、一方のPCにあるファイルをもう一方のPCに送信し、受信したファイルを保存するというプログラムを作成しないといけません。 現状、フォーム上でコモンダイアログによりファイルを選択し、選択したファイルが、フルパスでテキストボックスに表示されます。 送信ボタンをクリックするとファイルの送信処理を開始し、受信側は受け取ったファイルを保存するという流れを作りたいのです。 しばらく調べたのですが、なかなかクリティカルする回答を見つける事が出来なかったので質問させていただきます。 もうこのような転送手段は使わないと思いますが・・・。 MSCommコントロールを使用し、文字の送受信程度であればできたのですが、MSCommではファイル転送はできないのでしょうか? 送信側、受信側のプログラムをご教授いただければと思います。 つたない文章で申し訳ありません。 よろしくお願いします。

  • RS-232c クロスケーブルとUSB変換

    RS-232c クロスケーブルで接続する必要があるのですが、RS-232cをUSBに変換するものが市販されており、それを使っても同じなんでしょうか。 そもそもRS-232c->USB というケーブルはストレートとかクロスという記載がありませんが、何か設定するようになっているのでしょうか。 買ってしまえばわかるのでしょうけど。

  • メールの受信はできるが送信ができない

    windows vista 東芝のAX53Cを使っていますが、メールの受信は出来ますが送信が出来ません。困っています。送信できるようにするにはどうすればいいでしょうか。どなたかよろしくお願いします。

  • Outlook 2003で受信できるが送信できず困ってます・・・。

    Windows Xp, Microsoft Outlook 2003を使ってます。どうしてもメールを受信できるのですが、送信できません。どうなっているのですか? 送信すると、以下の受信者にメールが配信できませんでした: と出て、 554 Relay operation rejectedというメールが受信トレイにできます。どなたかお教え下さい。宜しくお願いします。

  • Visual Basic6.0でRS232-Cを介して機械を動かす方法を教えてください

    Visual Basic6.0(VB6)で機械(二軸ステージコントローラ)を制御したいのです。 機械側には、「RS232-Cストレートケーブルを使用してください」と書いてあります。 RS232-Cで情報を送信するには、VB6の中のMSCommというコマンドを使えば良いということは分かりました。 ただ不明なのは、RS232-Cには、クロスケーブルとストレートケーブルがあるらしいのですが、その違いがよくわかりません。 ちなみに、パソコン側は9ピンで、機械側は25ピンです。 よろしくお願いします。

専門家に質問してみよう