Path: chuka.playstation.co.uk!news1.scei.co.jp!go From: go@cclub.tutcc.tut.ac.jp (Go Watanabe) Newsgroups: playstation.ny.program.environment Subject: Re: SIOCONS for UNIX Date: 30 May 1997 02:26:37 GMT Organization: Computer Club, Toyohashi Univ. of Tech., Aichi, Japan Lines: 47 Message-ID: <5mldst$6h7@news1.scei.co.jp> References: <5lmnli$q98@news1.scei.co.jp> NNTP-Posting-Host: 133.15.192.120 X-Newsreader: mnews [version 1.19PL2] 1996-01/26(Fri) ごうです。 kouzou@ymg.urban.or.jp writes: >RedBug wrote: > >> このソフトのある程度詳しいドキュメント、もしくは資料などあれば、 >> Windows 95版の SIOCONSが作れるのではないでしょうか? > > Mac版とかX68000版も作れそうですね(^^; はい(^^) たぶんあらゆるバージョンの作成は可能だと思います。 基本的に PlayStation <-> PC 間の通信は、単純な 8bit non-parity で行なわれているようです。PS monitor を動かすのは、そこらにころがっている Terminal soft で行なうことが可能です。 # UNIX だと標準の tip コマンドで制御できました。 問題になる部分は、バイナリ転送のモードです。 このモードになると、1byteごとに RTS 信号線を on/off しないと 次のデータがおくられてきません。またこちらからデータを送る ときにも、CTS が ON/OFF するのを確認してからでないと、 PlayStation がデータをとりこぼしたりするようです。 この SIOCONS for UNIX では、この制御を行なうために、 tty の全ての制御機構 を off にして、ioctl を用いて 手動で RTS/CTS の制御/監視を行なっています。 # けっこう適当に制御してます(^^; # 試行錯誤の末、どうやらこれで動くらしいというレベル(^^;;; Mac や X68k, Win95 などでも、それぞれ制御線のコントロールの仕組み があるでしょうから、その部分をまねしてやれば、通常のターミナル ソフトが組める人なら容易に作成できると思います。 他、このプログラムで特に UNIX 的な部分は、select システムコール を用いている点ですが、これは単に入力待ちのためにつかっているだけです。 (UNIX では、単純に for などで loop を回して待つ(busy loop)すると、 他のプロセスに制御が回らなくなって、システムのスループットが激減して しまいます。このため select を用いて、カーネルに待ちの処理を任せて しまうわけです) というわけで、これもそれぞれの OS に応じて、適当な待ちを行なうよう にすれば良いです。 だれか他のシステムでもつくりませんか(^^)応援はします。 -- 渡邊 剛 (Go Watanabe) go@cclub.tutcc.tut.ac.jp XMascot普及キャンペーン実施中(^^) http://cclub.tutcc.tut.ac.jp/xmascot/