┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃        YSH86簡易りふぁれんすまにゅある ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ プログラム名:YSH86          YSH.EXE,RUNYSH.COM,LOGIN,LOGOUT,YSHRC_,ERR.MSG SCREEN.EXP,GCLS.COM 対応機種 :FMR-50/60/70,FM TOWNS(MS-DOS) 作者 :WHITE RAM ━━━━━━━━━━━━━━━━━ 口上 ━━━━━━━━━━━━━━━━━━ YSH86は効率的なコマンドの入力・実行を処理する拡張シェルです。コマンドラ インを解釈してコマンドを起動する「コマンドインタプリタ」,コマンドライン入力 の手間を軽減するための「マクロプロセッサ」,バッチファイルプログラミングのた めの「言語インタプリタ」の,シェルの3大機能のどの点においてもCOMMAND.C OMを上回る機能をもっており,コンソール画面で作業を行う方には強い味方となりま す。 このプログラムはOh!FM'90年8月号〜11月号に掲載されたもので, 作者WH ITE RAM氏・補助ツ−ル(SCREEN.EXP,GCLS.COM)作者の佐藤進一氏およびOh! FM編集部のご好意により収録しました。以下に簡単な使い方をまとめておきますが 詳しくはOh!FM'90年8月号〜11月号を参照ください。 ━━━━━━━━━━━━━━━━ 機能概要 ━━━━━━━━━━━━━━━━ YSH86の機能は大別して以下の3つの機能に分類されます。 マクロプロセッサ機能 コマンドインタプリタ機能 言語インタプリタ機能 これらの各々の機能と,そのほかの代表的な機能について,以下に簡単にまとめてお きます。 ●マクロプロセッサ機能1  ヒストリ置き換え 入力したコマンドのヒストリ(履歴)を記録し,その過去のヒストリを整形してコ マンドラインを作成する機能です。[前行][次行]キーを使ってコマンドライン上にワ ンタッチで呼び出して,スクリーンエディットすることができます。また,コマンド 入力によりヒストリを呼び出し,必要部分を切り出したりすることもできます。エデ ィット・コンパイル・実行などの単純な作業の繰り返しには非常に便利です。 ●マクロプロセッサ機能2  1行マクロコマンド機能 一種のコマンドの別名定義機能(いわゆるエリアス機能)で,これによりXCOP Y.EXEをCOPYとかCPYという名前で起動したりできます。また,YSH86では 1行のコマンドラインで複数のコマンドを実行できるので,1行マクロコマンドをバ ッチファイルのような感じで使うこともできます(引数の受け渡しもできます)。通 常のバッチファイルを使用するよりもプログラムを高速起動できますので,簡単なバ ッチファイルなら,同じ内容の1行マクロコマンドを定義したほうが作業効率があが ります。 ●マクロプロセッサ機能3  シェル変数の展開 よく使う定数やパス名などのパラメータを,ユーザがシェル変数としてが自由に定 義できます。定義されたシェル変数は,コマンドライン上でコマンド実行前に展開さ れますので,パラメータの短縮入力やバッチファイルの可読性向上に活用できます。 また,一部の変数名はYSH86によって予約されており,YSH86の各種の動作を制 御するために使用されます。 ●マクロプロセッサ機能4  コマンド出力結果による置き換え あるコマンドが標準出力へ出力した内容によって,コマンドラインの指定部分を置 き換える機能です。これにより,コマンドの組み合わせがより柔軟性に行えるように なります。とくにUNIX流のコマンド入力を行う際には欠かせません。 ●マクロプロセッサ機能5  ファイル名の展開 いわゆるワイルドカード機能です。MS-DOSのワイルドカードよりかなり強力で, 「*」「?」以外にも数種のワイルドカードがフォローされており,UNIXで使わ れているワイルドカード並みの機能をもちます。 ●コマンドインタプリタ機能1  コマンドサーチパスの拡張 カレントディレクトリとMS-DOSの環境変数PATHに設定されたパスのほか,YS H86のシェル予約配列変数pathに設定された各要素をコマンドサーチパスとして検索 します。これにより,常時参照するパスは環境変数PATHに設定しておき,ある処理 を行う間だけ参照したいパスはシェル予約配列変数pathを書き換えて対処する,とい ったことが可能になります。 ●コマンドインタプリタ機能2  リダイレクト機能の拡張 標準入力・標準出力に加えて,標準エラー出力を利用できるようしました。また, 標準出力および標準エラー出力では,オーバライト指定したときのファイル保護機能 を付加しています。加えて,シェルからコマンド内へパラメータ入力する機能(いわ ゆるHERE DOCUMENT機能)もフォローしています。これらにより,リダイレクト を使ってのコマンドの組み合わせがより柔軟に行えます。 ●コマンドインタプリタ機能3  コマンドセパレータの拡張 パイプセパレータ「|」以外に,コマンド順次実行セパレータ「;」,AND実行 セパレータ「&&」およびOR実行セパレータ「||」を導入しました。これにより,1 行のコマンドラインで複数のコマンドを種々の条件により実行することが可能となり ました。 ●言語インタプリタ機能1    各種制御コマンドの装備 FOREACH・WHILE・REPEAT・IF・SWITCH・EXIT・CONTINUE・BREAK・SHIFTなどの各種 制御コマンドを,YSH86の内部コマンドとして装備しました。これらの制御コマン ドは,バッチファイルの中ではいうまでもなく,コマンドライン上で対話的にも使用 可能です。 ●言語インタプリタ機能2    バッチファイルの引数の増加 COMMAND.COMと同様にバッチファイルに任意の引数を与えて起動することができ ますが,YSH86ではSHIFTコマンドを使用しなくても10個以上のパラメータを処 理できます(最大255個)。 簡単なバッチファイルでは関係ありませんが,いざとい うときに不便しないですみます。 ●その他の機能1        コマンド入力のスクリーンエディット機能 コマンド入力の際にスクリーンエディットできるようにしました。コマンドヒスト リのワンタッチキーによる呼び出し機能との組み合わせは,コマンドラインの入力の 負担を著しく軽減します。 ●その他の機能2        複数行コマンド入力のサポート 行末にエスケープ記号を置くことにより,1つのコマンドラインを複数行にわたっ て記述することができます。これにより,引数が複雑だったり,様々なコマンドを絡 んだりするコマンドラインでも,わかりやすいように改行して入力できます。なお, 最終的には,エスケープ記号+改行記号は1個のスペースに置換されてMS-DOSに引 き渡されます。 ●その他の機能3        EXPファイルの自動起動機能を内蔵 TOWNSで.EXPファイルを実行する際,.EXEファイルや.COMファイルと同じように コマンド名だけで起動できるようにしました。つまり与えられたコマンドが,拡張子 として.EXPをもつファイルだった場合,YSH86はRUN386.EXEを自動的に起動し,与 えられたコマンドをその引数として付加します。単にRUN386とタイプする手間を 省いただけですが,操作感覚は格段に向上し,.EXPファイルの開発・実行が楽になり ます。 ━━━━━━━━━━━━━━━ 起動・終了 ━━━━━━━━━━━━━━━━ YSH86の概要紹介はこのくらいにして,使い方の解説に入りましょう。まずは, 基本的な起動と終了に関することから。 ●動作環境 YSH86は,TOWNSおよびR-50/60/70シリーズ用の拡張シェルです。 MS-DOS V3.1以上で動作しますが,TOWNSでEXPファイルを起動するには, TOWNS用MS-DOSにRUN386やTBIOSを組み込む(Oh!FM90年4月号p.40,p.48参 照)か,386|ASM TOOL KIT付属の「開発環境」を使うか,TownsMENUからコ ンソールエミュレータのORICON V1.03を起動する必要があります(古いコンソール エミュレータだと,YSH86が使用しているMS-DOSのエスケープシーケンスをサポ ートしていないことがあり,キー入力がおかしくなることがあります)。 YSH86の動作に必要なメモリは128Kバイト弱ですから,TOWNSおよびR-50/60 /70 シリーズで標準の1Mバイト(うちMS-DOS用空間が768Kバイト)あれば余裕で 動作します。また,通常利用する程度なら,環境変数PATHやBUFFERの設定や,常駐 コマンドの配置も,メモリ的にはとくに気にする必要はありません。ただ,環境変数 や常駐コマンドでメモリを取りすぎると, COMMAND.COMと同様に巨大なアプリケーシ ョンを起動できなくなくこともありますので注意してください。 YSH86の作業画面は,80字×25行のコンソール画面を使います(TOWNSでは グラフィックモード1)。それ以外の画面モードでは,コマンド入力のスクリーンエ ディット機能が使えなかったり,画面表示が崩れたりします。もちろん,これはコマ ンドライン入力作業時だけに関わる話で,アプリケーションソフトが任意の画面モー ドで動作することを妨げるものではありません。 たとえば,TOWNSのグラフィックモード10とか12とかで動作する.EXPファイル をYSH86から起動することは可能です。その際,アプリケーション動作画面モード への切り換えは,.EXPファイル自身かそれを呼び出すバッチファイルで行ってくださ い。終了後のMS-DOSコンソール画面への復帰は,YSH86側が自動的に行います(後述 する補助コマンドのSCREEN.EXPとGCLS.COMを自動的に起動して処理します)。 ●必要ファイル YSH86を構成するファイルは以下のとおりです。 1) YSH.EXE YSH86プログラム本体 2) RUNYSH.COM YSH86起動プログラム 3) YSHRC_ YSH86起動時に実行される初期設定バッチファイル(オプション)(YSH86 では,拡張子.BATが付かないテキストファイルもバッチファイルとして扱えます) 4) LOGIN COMMAND.COMからYSH86を起動したとき(YSH86にログインしたとき)に実行さ れるバッチファイル(オプション) 5) LOGOUT YSH86を終了し, COMMAND.COMに戻るとき(YSH86をログアウトするとき) に実行されるシェルファイル(オプション) 6) ERROR.MSG YSH86のエラーメッセージファイル 7) SCREEN.EXP TOWNSで.EXPファイルを実行して終了したあと, スクリーンモードをMS-DOSコ ンソール用に戻すための,スクリーンモード設定プログラム(89年9月号掲載(米 村英明氏作)のアッパーコンパチで, パラメータを省略して起動するとMS-DOS コンソール画面に切り換えてくれるものです。佐藤進一氏に作成していただきま した) 8) GCLS.COM TOWNSで.EXPファイルを実行して終了したあと, VRAMの初期化を行うためのイニ シャライズプログラム('89年9月 号掲載(米村英明氏作)とほぼ同機能のもの で,YSH.EXEからの呼び出しを考慮した形に改良されています。佐藤進一氏に 作成していただきました) TOWNSでは1)〜8)までの全部を,R-50/60/70では,1)〜6)を作業ディスクにコ ピーしてください。ディレクトリ構成は後述する例を参照してください(めんどうで あればすべてルートディレクトリに置いてください)。 なお,日本語フロントエンドプロセッサや追加デバイスドライバなどのシステムフ ァイルや,MS-DOSの標準内部コマンド(ようはCOMMAND.COM),MS-DOSの標準 外部コマンド,各種ユーティリティコマンド,スクリーンエディタ,言語処理系など を,適宜用意しておいてください。そのほか.TOWNSで.EXPファイルを実行する には,RUN386.EXEが必要です。また,TBIOS.BINやTBIOS.SYS,MSCDEX .EXEもディスクに入れておいたほうがよいでしょう。 ●ディレクトリ構成 YSH86を構成するファイルの配置条件は以下のとおりです。 YSH.EXE 直接起動する際は,MS-DOSの環境変数PATHが示すディレクトリ上において ください。RUNYSH.COMを使って起動する場合には,後述する退避・復帰に    都合上,RUNYSH.COM起動時のカレントディレクトリにYSH.EXEをおいてくだ    さい。   RUNYSH.COM     MS-DOSの環境変数PATHが示すディレククトリ上においてください。  YSHRC_・LOGIN・LOGOUT     いずれも, YSH.EXEまたはRUNYSH.COM起動時のカレントディレクトリ 上においてください。なお,掲載したこの3つのリストはサンプルですので, 適宜書き換えて利用してください(なお,存在しない場合は,バッチファイル による自動設定が行われないだけで,YSH.EXE自体は起動します)。 ERROR.MSG 通常はドライブA:に作った\SYSというディレクトリに入れておきます。ほか のドライブやディレクトリに置きたい場合は,YSHRC_に, set errmsg=<ドライブ名:\ディレクトリ名> という定義を追加しておきます。 SCREEN.EXP RUN386.EXEから復 帰するときの内部処理の都合上,カレントディレクト リにおいてください(FMRでは不要です)。 GCLS.COM 環境変数PATHの示すディレククトリ上においてください(FMRでは不要で す)。 AUTOEXEC.BATでYSH86を起動する場合は 単純に,AUTOEXEC.BATの最後の行に「RU NYSH」を追加してください。もちろん,COMMAND.COMのコマンド入力レベルからRU NYSH.COM もしくはYSH.EXEを起動してもいっこうにかまいません。 ●起動 YSH86の起動方法は, RUNYSH.COMを使う方法と,直接YSH.EXEを起動する 方法があります。 この2つは,大きなアプリケーションを実行するときに,YSH.EXE が退避・復帰できるかどうかが違います。 通例は退避・復帰ができるRUNYSH.COM を使う方法をとりますが,実行する外部コマンドが小さいものばかりのときはYSH .EXEを直接起動してもかまわないでしょう。 また,YSH.EXEを直接起動する場合は,実行コマンドをパラメータで指定して, YSH.EXEが立ち上がると同時にそのコマンド実行させ,コマンド実行終了と同時に YSH.EXEを終了させることができます。そうした使い方をしたい場合は直接起動す ることになります。 書式は以下のとおりです。 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃RUNYSH [