@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ PATH機能拡張プログラム V1.5 #156 黒木 淳一 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ・ はじめに  S−OSのトランジェントコマンドを使うとき, File not found が出て嫌な思いをしたことがありませんか? MS−DOSでコマンドを実行するとき,ディレクトリを順番に探していくのを見 てから,S−OSのトランジェントを使うのがだんだんだるくなってきたなと思った のが最初のきっかけです. SWORDの場合,サブディレクトリが使えないので,デバイスネーム1文字だけ にすればループにしてファイルが見つかるまでオープンしつづければ十分だろうと思 って,早速プログラムを作りました. ・ 起動の説明 まず最初にS−OS変身セットで,RUN&SUBMITの拡張をしたS−OS ″SWORD″(「通信」のシステム)を立ち上げてください.次にコマンドライン でプログラムを実行させるだけでいいのですが,この時2つの選択ができます. # PATH このように入力すると,目的のファイルを探す時 ユーザーが定義したPATH DATAの順番にアクセスす るデバイスを切り替えます. #PATH:D このように入力すると,上の順にアクセスする前 にデフォルトドライブをアクセスするようになり ます.このとき,PATHのデータが 'AB' のとき, デフォルトデバイスが 'B' だとすると,B→A →Bの順にアクセスし,効率の悪いものになって しまいます.  上のようにプログラムを実行させると,約1秒くらいかけて,メモリの一部に常駐 します.X1turboのみ 0E70H〜 に転送されますが,X1turbo以外の機種は #MEMAX の アドレスを変更して常駐します.したがって大きなプログラムを走らせる方は気を付 けてください. ・ 拡張してからの説明 # PATH:=dvdvdv... アクセスする順を変更できます. dvはデバイスネームで,1文字です.使用できる デバイスネームはA〜Eとなっており,将来のた めに8個まで設定できますが,普通の人は3個ぐ らいがちょうどいいと思います. # PATH ユーザーの定義した PATH DATA(または,デフォ ルトデータ.デフォルトは 'AB'となっています) を表示します. ・ おわりに  初めのうちは,機種によって常駐アドレスを変えることを考えていなかったので, SWORDの記事とにらめっこしていたら,#MEMAX が目につきました.そこで #ME MAX をずらして常駐すればいいだろうと考え,あれこれ試してそれらしいものはでき たのですが,ちょっと先輩に見せて見ると,あっという間に原形をとどめない程,そ して誰が見ても美しいプログラムに書き換えられてしまったのでした(シクシク...) . その後つまずいたのは,ファイルオープンしてからのエラーの処理の部分で,そこ の部分は森さんに電話で教えてもらって解決しました.そこで完成したのが Device offline と Device I/O error さえ出さなければ暴走しないバージョン(1.0)です. それから幾度の迂余曲折(ソースの紛失etc...)をへて,バージョン(1.4),マスターアッ プ直前の修正で,現在のバージョンとなりました。  現在サブディレクトリにも対応できるように研究中です.いまのところ,それらし いものが動いております.メモリの少ないS−OS(DISK)では,1クラスタで ももったいないものがありますが,WZDなどで.ASM,.REL,.OBJと3 つのディレクトリを作って整理すれば便利だと思います.  最後に,マスターアップの直前にバグを指摘いただいた深谷氏に,厚くお礼申し上 げます. (EOF)