喫茶XRAYトップページ

[スレッド全体
]

[7042] Re4:TurboPASCALで苦闘中返信 削除
2013/10/28 (月) 21:44:59 たてぐや
takiさん、本の紹介有難うございます。さすがにDOS時代の書籍は処分してしま
ったかどこかにしまい込まれてしまっているので、資料がなくて歯痒い思いを
しています。

snailさん、情報ありがとうございます。残念ながらIBM互換機用なので使えま
せん。互換機用ならいくつか資料も見つかったのですが、さすがにPC-98となる
と見つかりません。

 で、その後ですが、TurboPASCAL付属のRS-232Cがやはりヘボで、メモリをヒ
ープに取ったり、スタックを増やしたりと小手先の技ではどうにもならないと
いうことで、通信部分だけN88BASICで書きました。N88BASICだとRS-232Cの入出
力がファイルを扱うのと同じ感覚で使えるので楽でした。
 例えばOPEN "COM1:N81XN" AS#1とすればPRINT#1,文字列と言った具合です。
ファイルリストを作るのは逆に不便なのでこの部分はTurboPASCALで、転送する
必要のあるファイルのリストをテキストファイルに出力しておいて、N88BASIC
でこれを読み込ませて送信する方式にしました。バッチを書いておけばうまく
連携して動きます。N88BASICはかれこれ30年も前なので、文法も忘れているし、
予約語や組み込み関数もあやふやに覚えているだけなので、少々手こずりまし
たが、なんとか書き上げました。明日実稼働機に持って行ってのテストになり
ます。今度こそはうまく動いてくれるように…。



[7043] Re5:TurboPASCALで苦闘中返信 削除
2013/10/28 (月) 23:00:31 snail
▼ たてぐやさん
> snailさん、情報ありがとうございます。残念ながらIBM互換機用なので使えま
> せん。互換機用ならいくつか資料も見つかったのですが、さすがにPC-98となる
> と見つかりません。


最初にPC98と書いてありましたね。またボケをかましてしまいました。

ベクターにパソコン通信用のソースがありました。 KTBBS
 モデムを制御するためにRS-232Cを触っていると思いますがアセンブラで
書いてあるようで私にはちんぷんかんぷんでした。

http://www.vector.co.jp/vpack/filearea/dos/net/comm/host/ktbbs/

Turbo Pascal 7.0 でコンパイルできるみたいです。
もう必要ないと思いますが、一応情報としてあげておきます。



[7044] Re6:TurboPASCALで苦闘中返信 削除
2013/10/29 (火) 22:14:25 たてぐや
▼ snailさん

snailさん、情報ありがとうございます。KTBBSは、setrsという独自のRS-232C
ドライバーを使っています。その上あちこちインラインアセンブラで書かれて
いるので、手元にあるTurboPASCAL5.5ではコンパイルできないんです。

 で、今日仕上げてきました。
 ファイラー部分はTurboPASCAL、送信部分はN88BASICで書いてコンパイルした
もの、これらを起動するためのバッチファイルと3つのモジュールになりました。
バッチファイルというのもあまり格好良くないのですが、探せばあるもので、
バッチをCOMファイルにするものが見つかったので、さっそく利用。3つそれぞ
れ違う言語で書かれた、いわばハイブリッドのシステムの完成です。
 今度は何の問題もなく動きました。心配した速度ですが、プログラムの実行
速度よりもRS-232Cの転送速度で頭打ちになっていて、PASCALで書いたものと変
わりない速度が出ています。
 送信側が成功したところ、受信側のプログラムにも新たな要求が出てきて、
今度はDelphiに戻ってコーディングです。しばらくMS-DOSの世界に入りっきり
だったので、頭の切り替えに少々煩わしい思いをしそうです。


[7045] Re5:TurboPASCALで苦闘中返信 削除
2013/10/29 (火) 22:26:34 taki
▼ たてぐやさん

> takiさん、本の紹介有難うございます。さすがにDOS時代の書籍は処分してしま
> ったかどこかにしまい込まれてしまっているので、資料がなくて歯痒い思いを
> しています。


本の紹介だけ!みたいになってすみません。

必要な個所をスキャナーで読み取ってzipでアップ…ってすると、著作権に
違反しますよね。

本自体を郵送してもいいのですが、それぞれ都合があるかもですね。

結局、N88BASICのプログラムで自己解決されたようなのでホッとしています。

> 今度こそはうまく動いてくれるように…。

お祈りしています。


[7046] Re6:TurboPASCALで苦闘中返信 削除
2013/10/30 (水) 22:00:58 たてぐや
▼ takiさん

> お祈りしています。

 ありがとうございます。
 昨日の時点で既にうまく動いていましたが、さらに少しでも効率を上げよう
といじっていました。一度表示された文字列を消去するのにFORループでスペー
スを出力していたのをループ回数分のスペースを一回で出力するようにしまし
た。と、ある時点からLine buffer overflowが出て止まるようになってしまい
ました。原因が解らず、あれこれいじっているうちに夕方になってしまいまし
た。もうわけが分からず、悩んでいるうちに、この文字列を消去するルーチン
をコメントアウトするとうまく動きました。原因はなにげなく変更したスペー
ス出力の部分だったのです。まさかこんな単純な部分で引っかかっているとは
気付かず、一日潰してしまいました。記憶を手繰り寄せてみるとBASICには、
SPACE$(n)(n個のスペースを表示)とかSTRING$(n,m)(コードmの文字をn個出
力する)など思いの外便利な関数がありました。BASICもなかなか捨てたもので
はない、と思いました。
 さて、明日からDelphiに戻らないと…。


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82