喫茶XRAYトップページ

[スレッド全体
]

[7036] Re3:TurboPASCALで苦闘中返信 削除
2013/10/24 (木) 18:08:21 たてぐや
 うまく動いたと安心して今日実稼働機に持って行ったらダメでした。送信を
繰り返しているうちにメモリを壊してしまうようで、テキストのアトリビュー
トがめちゃくちゃになります。
 結局アセンブラで書かれているRS-233Cを制御するものが悪いんだと思いま
す。どこかにTurboPASCALのRS-232C制御ユニットがないだろうかとググって見た
のですが、さすがにこの時代の資料は見つかりません。んー、困りました。


[7037] Re4:TurboPASCALで苦闘中返信 削除
2013/10/26 (土) 10:05:48 taki
▼ たてぐやさん

>  結局アセンブラで書かれているRS-233Cを制御するものが悪いんだと思いま
> す。どこかにTurboPASCALのRS-232C制御ユニットがないだろうかとググって見た
> のですが、さすがにこの時代の資料は見つかりません。んー、困りました。


お疲れ様です。

PUG BOOKS ターボパスカル・エキスパートマニュアル(小林r史)が手元に
残っています。
その中に「第10章ターボ通信」があり、RS-232Cについて載っています。
コンテンツは

10-1 RS-232C
10-2 RS-232CのBIOS -> PC9800に用意されているRS-232C関係のBIOSの紹介
 (a)RS-232Cの初期化
 (b)フロー制御を伴う初期化
 (c)受信データ長入手
 (d)データ送信
 (e)データ受信
 (f)コマンド出力
 (g)RS-232Cステータス入手
10-3 パソコン通信
10-4 日本語の問題 -> シフトJIS <-> JIS 変換の話?

です。
お役にたちますか。


[7041] Re4:TurboPASCALで苦闘中返信 削除
2013/10/27 (日) 21:40:46 snail
▼ たてぐやさん

> のですが、さすがにこの時代の資料は見つかりません。んー、困りました。

こんなサイトがありました
http://www.synchrondata.com/pheaven/www/area9.htm

実際の comm_tp5.zip は
http://www.filewatcher.com/m/comm_tp5.zip.30802-0.html
の↓のリンクから落とせました。
2009-07-22  ftp://ftp.oldskool.org/pub/simtel_msdos/msdos/turbopas/comm_tp5.zip

落としただけでチェックはしていません。コメントを覗くと

{ This program works with Turbo Pascal 4.0 and 5.x.  See Comm_TP4.DOC for the } { No code extends beyond the }
{ instructions.  Comm_TP3, by the same author, works under Turbo Pascal 3.0,  } { 80th column, so a simple   }
{ and Comm_TC2 works with Turbo C.  Upcoming is a Turbo Assembler Comm_TA1.   } { program could be used to   }

こんなんです。


[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