• ベストアンサー

N88互換BASICで変換したが使えません。その4

750 LINE INPUT #1,PV$(0) 760 WHILE MID$(PV$,2,1)<>"E" 770 LINE INPUT #1,PV$ 780 KO.J=KO.J+1 :PV$(KO.J)=PV$ 790 WEND 800 CLOSE 810 OPEN FFF$ FOR APPEND AS #1 820 PRINT #1,Q$+FNF3$(PV$(0),5)+Q$+R$; 830 PRINT FNF4$(FNF3$(PV$(0),5)) 840 FOR J=1 TO KO.J 850 IF MID$(PV$(J),1,1)="S" THEN 920 860 PRINT #1,Q$+FNF2$(PV$(J),21,24)+Q$+R$; 870 XY=0 :JJ=J 880 IF J>10 AND J<21 THEN XY=1 :JJ=J-10 890 IF J>20 THEN XY=2 :JJ=J-20 900 LOCATE 3+XY*24,5+JJ 910 PRINT USING "(##)###.####";FNF5!(PV$(J),21);FNF5!(PV$(J),24); 920 NEXT 930 CLOSE 940 LOCATE 0, 2 :PRINT " 950 XX!=FRE(0) 960 RETURN 970 CLOSE :END 980 CLOSE 990 ' これで最後です。 関連URL: http://oshiete1.goo.ne.jp/kotaeru.php3?q=324875 http://oshiete1.goo.ne.jp/kotaeru.php3?q=324879 http://oshiete1.goo.ne.jp/kotaeru.php3?q=324882

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

  • ベストアンサー
noname#11476
noname#11476
回答No.4

特別な処理をしているわけでも、特殊なIOを使っているわけでもないので、一部を改造すれば動くでしょう。 まずはエラーが出た、330行の手前の320行で、 320 FFF$="B:"+FNF1$(DATE$,TIME$) を 320 FFF$="A:"+FNF1$(DATE$,TIME$) に変更します。A:に保存という意味です。 空きFloppy DiskをA:に入れて下さい。DOS/Vパソコンでは昔のNEC PCと違い通常はB:はありませんのでね。 (2台Floppy Driveがあるのであれば、B:は存在するのでFloppy DiskをB:に入れるだけですけど) C:でも可能ですが、その場合予めカレントディレクトリを設定しないと行方不明になりますよ。 次に問題になるのは通信パラメータですね。特にNo.3の方の指摘の通信速度が未設定である点は問題となります。 N88互換BASIC for Windowsには、通信速度,etc..の設定項目がありますので、事前に使用する機器と通信条件を合わせておいて下さい。 あと、気になるのはこれもNo.3の方の指摘している"00"と"30"以外を蹴飛ばしているルーチンですね。 PCの速度が速いと戻ってきてしまう可能性があります。 が、A:に保存するようにしている限りは「多分」大丈夫でしょう。(FDへのアクセスは遅いので) もしHDD である C:へ保存するようにした場合は変更が必要な可能性があります。 動作を確認したわけではないので上記改造のみで動くかどうかは、、、。 まあ、ためしてみるんですね。 では。

その他の回答 (3)

  • etosetora
  • ベストアンサー率22% (39/175)
回答No.3

何かよく判らない書き方のプログラムですね まず、DEFで関数を設定してますが BASICソフトはそれに対応してますか? LOCATE は ソフトによって 行と列が反対になります 要注意 ファイルを作る時 Bドライブを指定してますが、Bドライブは存在してますか? OPENで新規ファイルを作ることになってますが、最初 ダミーでランダムファイルでオープンして、直ぐにCLOSEすれば ファイルを作れます、その後はAPPENDで書き込みすれば簡単ですヨ。 COMポートを開いてますが通信速度の指定がありませんね、規定値でOKですか? 秒の”00”と”30”以外を飛ばしていますが、最近のCPUは超高速なので同じファイルを何度も書き込む恐れがあります(サブルーチンの処理時間が1秒以下だと例えば毎分00秒と30秒のときに「1秒間に処理できる回数だけ実行」してしまいますヨ このような目的であれば「温度取り」という市販品が利用できます。 また エムシステム のデーターロガー というのもあります。 参考まで!

  • Lanceford
  • ベストアンサー率59% (13/22)
回答No.2

N88BASICのブランクが長いのと、for WINDOWSは使ったことがないので 保証はできませんが、 320 FFF$="B:"+FNF1$(DATE$,TIME$) となっていて、"B:"の部分で、ドライブBに書き込むように プログラムを設定してあるので、そのようなドライブが 該当しない場合は、書き込みが出来ないので、エラーが でるのではないかと思われます。 とりあえず、"A:"とか"C:"とかに変えると動くかも?

  • h21953
  • ベストアンサー率28% (54/190)
回答No.1

プログラム内容はともかく、NECの9801系の機種とWindows(DOS/V)系の機種ではメモリー配置・割り込み・ポートアドレス等全く違うので制御関係・通信関係などのハードに関係するものは変換不可能だと思います。 機種を換えるならプログラミングし直すしかないでしょう。 エラー内容は、Bドライブ(FDD)にファイルが無い、あるいはFDが入ってないと言うことです。

関連するQ&A