LCACHE 20 PAUSEMESS ""; [ Hit Any Key ] :START TEXT 0 0 23 CLS "//////////////////////////////////////////////////////////////////////////////// "// // "// [ADVGI]コマンドリファレンス // "// // "// by HAKUGAKUSHI 1994. // "// // "//////////////////////////////////////////////////////////////////////////////// " * メニュー * " 1. コマンド名での検索 " 2. 機能別での検索 " 3. 初めての起動の際にお読み下さい " 4. 終了 番号を入力して下さい SELECT 4 REF COM KAI EXIT ;----------------------------------------------------------------------------- :REF CLS ###################################### # :[コマンド名検索モード]: # ###################################### 検索するコマンドを番号で入力して下さい ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ No. Command No. Command No. Command "------------------------------------------------------------------------------ 1. AUTOPAUSE 13. KEY 25. REPEAT,REND 2. CALL 14. LCACHE 26. RETURN 3. CLS 15. LCACHETEST 27. SELECT 4. DEFAULT 16. LCLEAR 28. SELECTSUB 5. END 17. LOAD 29. SINPUT 6. FINPUT 18. LOCATE 30. STRING 7. FLAG 19. LOOP 31. SWITCH 8. GLOAD 20. PAUSE 32. SWITCHSUB 9. GOSUB 21. PAUSEMESS 33. TEXT 10. GOTO 22. PRINTFLAG 34. WAIT 11. GRAPH 23. PRINTSTRING 35. WAVE 12. IF 24. RANDOM 40. メインメニューへ SELECT 40 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 R30 R31 R32 R33 R34 R35 ref ref ref ref start ;----------------------------------------------------------------------------- :COM CLS ###################################### # :[機能別検索モード]: # ###################################### 検索する機能番号を入力して下さい ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. 文章の表示     文章表示、色文字、表示範囲の指定 2. 画面消去      各種画面の消去 3. 画面のオートポーズ オートポーズの設定方法 4. キー入力      キー入力のあるすべてのコマンドについて 5. グラフィック表示  グラフィック関係の機能 6. 時間待ち      キー入力待ち、ウェイト付き文字出力 7. フラグ/文字列   フラグ(変数)/文字列の使い方 8. 分岐        分岐関連 9. 繰り返し      繰り返し関連 10. ジャンプ GOTOコマンドとラベル 11. サブルーチン    サブルーチンの使い方 12. 外部コマンド    外部コマンド及びアクセスライブラリの使用方法 13. セーブ/ロード   セーブ/ロード 14. その他       上記以外の機能 15. メインメニューへ SELECT 15 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 START ;----------------------------------------------------------------------------- :EXIT END ;=============================================================== :R1 autopause cls [AUTOPAUSE]オートポーズ 使用法 :AUTOPAUSE <値> 種別  :画面制御 使用回数:TEXTコマンドの後など(通常は一回) 用途  :一定行ごとにキー入力待ちにします 解説  : 長い文章では文中に頻繁にKEYコマンドを挿入しなければなりませんが、     このコマンドを使うことでその苦労は解消します。       また、このコマンドを使えばTEXTコマンドを使うことなく、テキストを 表示する最下行を切り詰めることができます。 注意  :TEXTコマンドで設定することもできます。      0で無効になります。 KEY 使用例 : " AUTOPAUSE 0 " オートポーズ機能を無効にする。 " AUTOPAUSE 23 " 画面全体を表示するとポーズ。DOSのMOREコマンドと同様。 " AUTOPAUSE 1 " 一行ずつ表示。結構使えます。 " TEXT 5 16 " AUTOPAUSE 4 " テキストの表示範囲は5〜16行ですが、こうすることで5〜10行に設      定したような動きをします。 key;goto ref ;------------------------------------------------------------ :R2 call cls [CALL]コール 使用法 :CALL <コマンド名> <パラメータ> 種別  :特殊コマンド 使用回数:任意 用途  :ADVGI用外部コマンドの起動 解説  : ADVGIアクセスライブラリを通じて、外部コマンドからフラグ/文字列     の参照・書き込みができます。 使用例 : " CALL BATTLE.COM " 外部コマンドBATTLE.COMを起動します。 key;goto ref ;----------------------------------------- :R3 cls cls [CLS]クリアスクリーン 使用法 :CLS 種別  :画面制御 使用回数:任意 用途  :画面上のテキストの消去 解説  : BASICのCLSコマンドと同様です。このコマンドでは画面すべてを消     してしまうので、特定の行だけ消去したいときには工夫が必要です。 注意  : グラフィックの消去はGLOADで行います。BASICのCLSのように     グラフィックも同時に消去することはできません。 KEY 使用例 : " CLS " 画面上の文字を消去します。 " GOSUB CLS3 " :CLS3 " ↓ " ↓ " ↓ " RETURN " 画面から指定行数だけ消したいときは、このようにすると良いでしょう。      ↓はリターンを表しています。 key;goto ref ;----------------------------------------- :R4 default cls [DEFAULT]デフォルト 使用法 :〜 DEFAULT <ラベル名> 種別  :システム 使用回数:分岐命令の中 用途  :分岐条件に当たらないときの分岐先指定 解説  : 条件分岐などを行うとき、いくつかの分岐コマンドでは条件が一つも      満たされない場合、すぐ次のコマンドを実行してしまいます。しかし、      そうすると困る場合が出てきますので、このコマンドで条件を満たさない      場合の分岐先を設定します。 注意  : 単体では使用できません。必ずSWITCH/SWITCHSUBとともに     使用して下さい。 使用例 : " SWITCHSUB A 0 @@1 1 @@2 3 @@3 DEFAULT INPUT_A " :@@NEXT        フラグ「A」のの値によってサブルーチンへジャンプします。        もしDEFAULT文がなければ、いずれの条件にも当てはまらなかったときも       そのままラベル @@NEXT に進んでしまいますが、このようにすれば、       A の条件がいずれかになるまで再入力することができます。 key;goto ref ;---------------------------------------- :R5 end cls [END]エンド 使用法 :END 種別  :システム 使用回数:プログラムの最後に1度(場合によっては複数可) 用途  :ゲームを終了します。 注意  : メッセージとしてENDの3文字はよく使いますが、できれば2バイト文字で     書くべきでしょう。 使用例 : " END " 終了します。 " ERROREXIT: " エラー%ERR%が発生しました " EXIT " このようなエラー終了用のラベルを用意しておくのもいいかもしれませ " んね。ただし、実際には%は1バイト文字を使います。 key;goto ref ;----------------------------------------- :R6 finput cls [FINPUT]フラグインプット 使用法 :FINPUT <フラグ名> <メッセージ> 種別  :変数制御 使用回数:任意 用途  :メッセージを表示してフラグに数値を代入します。 解説  : フラグはすでに存在するものでもなくても構いませんが、その場限りの数値     入力でないのなら、ファイルの先頭または末尾にまとめて宣言しておくことを     おすすめします。 注意  : メッセージの頭に1バイト文字がくるときに、ダブルクォーテーション @d      で囲む必要があるのはこの場合も変わりません。 使用例 : " FINPUT AGE 年齢を入力して下さい " 「年齢を入力して下さい」と表示して、入力された値をフラグ AGE に      代入します。 " FINPUT ANS "<問題11>大化改新は西暦何年に始まった? key;goto ref ;----------------------------------------- :R7 flag cls [FLAG]フラグ 使用法 :FLAG <フラグ名> <パラメータ1> (<パラメータ2>) 種別  :変数制御 使用回数:任意 用途  :フラグを設定し、その値を操作します。 解説  : 最大256個のフラグを設定し、±32767の整数値を代入したり、簡単     な演算を行うことができます。使用できるパラメータは以下の通り。    パラメータ1:整数、フラグ名、+、−、++、−−    パラメータ2:整数、フラグ名       +/−  :フラグとパラメータ2の和/差をとる       ++/−−:フラグをインクリメント/デクリメントする      フラグの参照は%フラグ名%です。(%は1バイト文字で) 注意  : 小数や文字、絶対値が32767を超える値などは使えません。また、パラ     メータの間は必ず1つ以上のスペースをあけて下さい。例えば -5 と - 5 で      はまったく別の動作をします。 KEY 使用例 : " FLAG HOLYSWORD 1 " フラグ「HOLYSWORD」に1を代入します。 " FLAG ガレス要塞 0 " フラグ「ガレス要塞」に0を代入します。 " このように、ある条件を満たしているかどうかを表すなら、1/0のどち      らかだけで十分です。 " FLAG i ++ " フラグ「i」の値に1を加えます。 " FLAG TIME -- " フラグ「TIME」の値から1を引きます。 " このように、時間や日付など、1ずつ増減するような場合に用います。 " FLAG ABC + DEF " フラグ「ABC」の値とフラグ「DEF」の値を足して、フラグ「ABC」に代入      します。 " FLAG A - 5 " FLAG A -5 " 上の二つはまったく違う動作をします。気をつけて下さい。 key;goto ref ;----------------------------------------- :R8 gload cls [GLOAD]グラフィックロード 使用法 :GLOAD <ファイル名> (X座標) (Y座標)           または      GLOAD INIT 種別  :グラフィック 使用回数:任意 用途  : グラフィックを表示します。座標を指定しなかった場合は、GRAPHコマ     ンドで指定した値を参照します。また、INITを指定すると画面を初期化し     ます。 解説  : 外部コマンドGLOAD.COMを起動し、.BMP/.TIF形式のグラフィック     を表示します。画面を消去するときはINITを指定して初期化して下さい。      GLOAD.COMは単体でも使用可能です。 注意  : カレントまたはパスの通ったディレクトリにGLOAD.COMを用意して     下さい。利用できるグラフィックデータは、拡張子.BMPまたは.TIFの     ものだけで、TIFFファイルに関しては圧縮形式もサポートしています。 使用例 : " GLOAD PUPPY16.BMP 0 0 " PUPPY16.BMPを表示します。 " GLOAD FMTOWNS.TIF 320 200 " FMTOWNS.TIFを表示します。 key;goto ref ;----------------------------------------- :R9 gosub cls [GOSUB]ゴーサブ 使用法 :GOSUB <ラベル名> 種別  :システム 使用回数:任意 用途  :サブルーチンへジャンプします。 解説  : サブルーチンからの復帰にはRETURNコマンドを使います。 " よく使う処理は、サブルーチンでライブラリを作成しておくと便利です。 注意  :ネストは16段まで可能です。 使用例 : " :STAT " 生命力:%HP% " 精神力:%MP% " RETURN " GOSUB STAT " STATサブルーチンにジャンプします key;goto ref ;----------------------------------------- :R10 goto cls [GOTO]ゴートゥ 使用法 :GOTO <ラベル名> 種別  :システム 使用回数:任意 用途  :指定のラベルへジャンプします。 使用例 : " GOTO OPENING " ラベル「OPENING」にジャンプします。 " GOTO ギドドンガス登場 " ラベル「ギドドンガス登場」にジャンプします。 " GOTO @@1 " 局所ラベルを使用した例。詳しくは2-7「分岐したい」を参照のこと。 key;goto ref ;----------------------------------------- :R11 graph cls [GRAPH]グラフィック 使用法 :GRAPH <X座標> <Y座標> 種別  :グラフィック 使用回数:任意(だいたい1回で事足りる) 用途  :グラフィックを表示する座標を指定します。 解説  : グラフィックの左上端を、画面のどこにおくかを指定します。ディフォルト     では画面の左上に詰めて表示されます。 注意  : GLOADを単体で使用した場合、ディフォルトの座標は画面中央ですが、     ADVGIから使用した場合は画面左上になるので注意して下さい。       このコマンドで指定した値は、GLOADコマンド側で座標指定した場合に     は無視されます。       なお、X座標は0〜639、Y座標は0〜399までです。 使用例 : " GRAPH 20 50 " 標準のグラフィック表示座標を(20,50)とします。 key;goto ref ;----------------------------------------- :R12 if cls [IF]イフ 使用法 :IF <フラグ名> <条件> <値> <命令> 種別  :システム 使用回数:任意 用途  :フラグが条件を満たした場合、指定したコマンドを実行します。 解説  : 条件分岐命令です。使用できる条件などについては「機能別検索」の分岐の     項を参照して下さい。 注意  : それぞれの項目の間には区切りが必要です。      ≦≧はサポートされていませんので、>と=を別々に判定するしかないでしょ     う。 使用例 : " IF ENDFLAG = 20 GOTO ENDING " ENDFLAGが20なら「ENDING」ラベルにジャンプ " IF 宝剣 = 1 && 光の鎧 = 1 && 最後の盾 = 1 GOTO キングドラゴンが現れた " 宝剣と光の鎧と最後の盾がそろっていたらキングドラゴンと対決する " IF LIFE < 0 SELECT 1.もう一度プレイする 2.もうやめる " 「LIFE」が0以下ならSELECTコマンドを実行する key;goto ref ;----------------------------------------- :R13 key cls [KEY]キー 使用法 :KEY 種別  :画面制御 使用回数:任意 用途  :何かキーが押されるまで画面にポーズをかけます。 解説  : キー入力を待ちます。AUTOPAUSEコマンドと違い、まだ表示可能な     行が続いていても好きなときに停止できるのが特徴です。       ただ、このコマンドの一番の活用点は、むしろ適当な場所で、プレイヤーに     データをセーブする機会を与える点にあります。 ADVGIではデータのセーブは、何らかの方法で画面にポーズがかかって     いる状態でESCキーを押すことでのみ行われます。ですから、例えば宿屋の     シーンでは「セーブするならESCキーを押して下さい」などと表示してこの     コマンドを使用すればよいでしょう。 注意  : WAITコマンドと違い、KEYコマンドはキー入力がない限りずっと停止     したままになります。KEYコマンドを一切使わずに、すべてWAITコマン     ドで代用する方が賢いかもしれません。 使用例 : " KEY " WAIT 600 " 上の二つは、一分以内なら、実は動作に大した違いがない key;goto ref ;----------------------------------------- :R14 lcache cls [LCACHE]ラベルキャッシュ 使用法 :LCACHE <値> 種別  :システム 使用回数:一回 用途  :ラベルキャッシュの数を設定します。 解説  : ゲームファイルが大きくなり、あまりにも多くのラベルを使用するようにな     ると、当然ながらジャンプする際にかかる時間が多くなり、特にフロッピー・     ベースでは大変な負担となります。その解決にラベルキャッシュを使っていま     す。       ただ、あまりにラベルキャッシュが多くなると結局速度が落ちますし、また     メモリの心配も出てきます。ファイルサイズが数万バイトを越えて初めて役に     立つと考え、あとはディフォルトの設定のままにしておいて構わないと思いま     す。 注意  : 設定できる値は8以上です。最大値はその時のフラグ/文字列の使用状態に     よります。 使用例 : " LCACHE 8 " LCACHE 240 " 上がごく小さいファイル、下が巨大なファイルの時の設定例 key;goto ref ;----------------------------------------- :R15 lcachetest cls [LCACHETEST]ラベルキャッシュテスト 使用法 :LCACHETEST 種別  :システム 使用回数:任意 用途  :ラベルキャッシュ情報を表示します。 解説  : ラベルキャッシュのヒットレートなどを表示します。ただそれだけの、面白     味のないコマンドです。 key;goto ref ;----------------------------------------- :R16 lclear cls [LCLEAR]ラインクリア 使用法 :LCLEAR <開始行> <終了行> 種別  :画面制御 使用回数:任意 用途  :指定範囲行の文字を消去します。 注意  : このコマンドは全画面モードでは使用できません。必ずTEXT文を使用      して下さい。また、TEXT文と同じく、表示位置は (1,1) から数えます。 使用例 : " LCLEAR 1 5        1〜5行をクリアします。 key;goto ref ;----------------------------------------- :R17 load cls [LOAD]ロード 使用法 :LOAD <ファイル名> 種別  :システム 使用回数:任意(普通一つのファイルに一回) 用途  :別のゲームファイルに処理を移動します。 解説  : あまり長いゲームファイルは、ラベルのチェックなどに時間がかかりすぎ、     快適な速度でゲームを楽しむことができません。そこで、ファイルをいくつか     に分断し、ADVGI側で引っ付ける方法が生まれました。       この命令はあらゆるフラグ/文字列変数などをそのまま次のファイルに受け     渡すので、ある程度大きなゲームを作るのが分かっているのなら、フラグや文     字列の初期宣言を第一ファイルにまとめ、実際の処理は2番目以降のファイル      にすればよいでしょう。 使用例 : " FLAG STATUS 100 /これは銀迷物語.000ファイルの中です " LOAD 銀迷物語.001 " " IF STATUS > ・・・ /これは銀迷物語.001ファイルの中です key;goto ref ;----------------------------------------- :R18 locate cls [LOCATE]ロケート 使用法 :LOCATE <X座標> <Y座標> <メッセージ> 種別  :画面制御 使用回数:任意 用途  :指定位置にメッセージを表示します。 解説  : メッセージを任意の位置に表示します。指定できる範囲はTEXTコマンド     に影響されません。 注意  : このコマンドは全画面モードでは使用できません。必ずTEXT文を使用      して下さい。また、TEXT文と同じく、表示位置は (1,1) から数えます。       誤解してはならないのは、このコマンドは、指定したメッセージのみを任意     の位置に表示するコマンドだと言うことです。次に表示されるメッセージは、     LOCATEコマンド前の表示位置に従います。 使用例 : " GOLD = 1000 " LOCATE 1 1 所持金 " LOCATE 8 1 %GOLD%        1行目に所持金を表示します。 key;goto ref ;----------------------------------------- :R19 loop cls [LOOP]ループ 使用法 :LOOP <フラグ名> <ラベル名> 種別  :システム 使用回数:任意 用途  :フラグが0になるまで、繰り返し指定されたラベルにジャンプします。 解説  : アセンブラ感覚のループ命令です。LOOPコマンド実行ごとにフラグの値     がデクリメントされ、その値が1以上かどうかで判断しています。 使用例 : " FLAG I 10 " :PUT " 10回表示されます " LOOP I PUT " 「10回表示されます」と10回表示します。 key;goto ref ;----------------------------------------- :R20 pause cls [PAUSE]ポーズ 使用法 :PAUSE 種別  :画面制御 使用回数:任意 用途  :KEYコマンドとまったく同等の動作をします。そちらを参照して下さい。 key;goto ref ;----------------------------------------- :R21 pausemess cls [PAUSEMESS]ポーズ メッセージ 使用法 :PAUSEMESS <メッセージ> 種別  :システム 使用回数:普通は最初に一回 用途  :KEY/PAUSEコマンド使用時の表示メッセージの設定 解説  : KEY/PAUSEコマンドを使用して画面を一時停止させるとき、キーを     押すよう促すメッセージを表示させたいときがあります。これを自動的に行う     ためのコマンドです。       AUTOPAUSE文と併用すれば、「電脳紙芝居」が簡単に作れます。 注意  : KYE/PAUSEコマンド使用時に何も表示したくないときは "" を指定     します。 使用例 : " PAUSEMESS 何かキーを押して下さい        画面を1字停止するとき「何かキーを押して下さい」と表示します。 " PAUSEMESS ""        こちらの場合は何も表示しません。 key;goto ref ;----------------------------------------- :R22 printflag cls [PRINTFLAG]プリントフラグ 使用法 :PRINTFLAG 種別  :変数制御 使用回数:任意 用途  :フラグ一覧を表示します。 解説  : フラグの一覧を表示し、フラグが正しくセットされているかどうかを調べま     す。つまり、デバッグ用のコマンドです。 key;goto ref ;----------------------------------------- :R23 printstring cls [PRINTSTRING]プリントストリング 使用法 :PRINTSTRING 種別  :変数制御 使用回数:任意 用途  :文字列変数一覧を表示します。 解説  : 文字列変数の一覧を表示し、文字列変数が正しくセットされているかどうか     を調べます。つまり、デバッグ用のコマンドです。 key;goto ref ;----------------------------------------- :R24 random cls [RANDOM]ランダム 使用法 :RANDOM(<最小値>,<最大値>) 種別  :変数制御 使用回数:任意 用途  :乱数を発生します。フラグへの代入、分岐命令での使用などができます。 注意  : どうしたわけだか、このコマンドだけ書式が少し違います。       (MIN,MAX)です。()でくくり、パラメータの区切りにはスペースでなく,      (コンマ)を使用します。 使用例 : " FLAG LUCK RANDOM(0,20) " フラグ「LUCK」にランダムに値を代入します。 " IF RANDOM(1,6) = 1 GOTO 敵と遭遇 " ランダムに、6分の1の確率でラベル「敵と遭遇」へジャンプします。 key;goto ref ;----------------------------------------- :R25 repeat,rend cls [REPEAT/REND]リピート/リピートエンド 使用法 :REPEAT <回数> 〜 REND 種別  :システム 使用回数:任意 用途  :ある処理を何度も繰り返すときに指定します。 解説  : REPEAT文の直後ののコマンドからREND文の直前のコマンドまでを     指定回数繰り返します。       同様のコマンドにLOOP文がありますが、こちらはその処理がもう少し簡     単にできるようになっています。 注意  : REPEAT,RENDの間にはいくつでもコマンドを入れることができま     すが、GOTO文などのジャンプ命令でREPEAT,RENDの外へ処理を     移すのはバグの元となります。       REPEAT,RENDの中にREPEAT,RENDを入れることもでき     ます。 使用例 : " REPEAT 5 " こんにちは " REND        「こんにちは」と5回表示します。 key;goto ref ;----------------------------------------- :R26 return cls [RETURN]リターン 使用法 :RETURN 種別  :システム 使用回数:GOSUBコマンド一回につき一回(そうでないときもある) 用途  :サブルーチンから復帰します。 解説  : GOSUBコマンドでジャンプしたサブルーチンからメインルーチンへ復帰     します。なお、ゲームファイル全体での、GOSUBコマンドとRETURN     コマンドの数は等しくなくても構いません。 key;goto ref ;----------------------------------------- :R27 select cls [SELECT]セレクト 使用法 :SELECT <最大値> <入力が1の時のラベル名> <2の時> <3の時> ・・・ 種別  :システム 使用回数:任意 用途  :最大値を表示し、数字を入力して、その値により各ラベルに分岐する 解説  : SELECTSUBコマンドとほぼ同様の機能をします。最もよく使うコマ     ンドの一つです。       画面に、選択できる項目を番号とともに表示したあと、このコマンドで実際     の処理ルーチンへジャンプさせるわけですが、入力された値が最大値を超えた     場合は?を表示して尋ねなおします。 使用例 : " どのアニメについて語ろうか? " 1. 機動戦士ガンダム " 2. 聖戦士ダンバイン " 3. 超時空要塞マクロス " 4. 宇宙船サジタリウス " 5. トップをねらえ! " SELECT 5 ガンダム ダンバイン マクロス サジタリウス トップをねらえ! " 画面に (1-5)? と表示したあと、入力された値によってジャンプします。 key;goto ref ;----------------------------------------- :R28 selectsub cls [SELECTSUB]セレクトサブ 使用法 :SELECTSUB <最大値> <入力が1の時のラベル> <2の時> <3の時> ・・・ 種別  :システム 使用回数:任意 用途  :最大値を表示し、数字を入力して、その値により各サブルーチンへ分岐する。 解説  : SELECTコマンドとほぼ同様の機能をします。最もよく使うコマンドの     一つです。       画面に最大値を表示し、入力された値に従って指定されたサブルーチンへジ     ャンプします。入力された値が最大値より大きい場合は?を表示して尋ね直し     ます。 使用例 : " FLAG MEET 0 " :OHANASHI " FLAG MEET ++ " どの女性と会おうか? " 1. 美人ホステスの真理子さん " 2. 未亡人の綾子さん " 3. 女子高生の知美さん " 4. 用務員のおばさんの坂本さん " SELECTSUB 4 MARIKO AYAKO TOMOMI SAKAMOTO " IF MEET > 3 GOTO @@NEXT " 他の女性とも話そうか? " GOTO OHANASHI " 4人全部と話をするまで同じ処理を続ける例 key;goto ref ;----------------------------------------- :R29 sinput cls [SINPUT]ストリングインプット 使用法 :SINPUT <文字列変数名> <メッセージ> 種別  :変数制御 使用回数:任意 用途  :メッセージを表示して文字列変数に文字列を代入します。 解説  : 文字列変数はすでに存在するものでもなくても構いませんが、その場限りの     文字列入力でないのなら、ファイルの先頭または末尾にまとめて宣言しておく     ことをお薦めします。 注意  : メッセージの頭に1バイト文字がくるときに、ダブルクォーテーション @d      で囲む必要があるのはこの場合も変わりません。 使用例 : " SINPUT NAME 名前を入力して下さい " 「名前を入力して下さい」と表示して、入力された文字列を文字列変数        NAME に代入します。 key;goto ref ;----------------------------------------- :R30 string cls [STRING]ストリング 使用法 :STRING <文字列変数名> <文字列> 種別  :変数制御 使用回数:任意 用途  :文字列変数を設定します。 解説  : 文字列変数を設定するのですが、ここで一つ裏技をお教えしましょう。      例えば固有名詞など、毎回必ず色文字で表示したい場合がありますが、そうし     た場合いちいち@C??と入力するのは面倒です。そこで、文字列変数として     @C??付きで設定してしまえば、あとはかなり簡単になります。 " この裏技はDOR氏によって発明されたことから、「DOR痴漢法」と呼ば れています(^^@s) 注意  : 文字列変数は最大64個まで設定可能ですが、あまり長い変数名・内容を多     用しているとメモリ不足になる恐れがあります。 使用例 : " STRING お名前 白学志 " 文字列変数「お名前」の内容を「白学志」に設定します。 " STRING べす @@C31べす@@C37 STRING べす @C31べす@C37 " @d@%べす@%:あたしは面倒なことが大嫌いなの! key;goto ref ;----------------------------------------- :R31 switch cls [SWITCH]スイッチ 使用法 :SWITCH <フラグ名> <値> <ラベル名> <値> <ラベル名> ・・・ 種別  :システム 使用回数:任意 用途  : フラグの値により各ラベルに分岐します。もしフラグの値がどの値にも当て     はまらなかった場合は次の行に進みます。 使用例 : " SWITCH MEDAL 0 NO_MEDAL 1 ONE_MEDAL 2 TWO_MEDAL " フラグ MEDAL の値に従って分岐します。 key;goto ref ;----------------------------------------- :R32 switchsub cls [SWITCHSUB]スイッチサブ 使用法 :SWITCHSUB <フラグ名> <値> <ラベル名> <値> <ラベル名> ・・・ 種別  :システム 使用回数:任意 用途  : フラグの値により各サブルーチンへジャンプします。もしフラグの値がどの      値にも当てはまらなかった場合は、次の行に進みます。 使用例 : " SWITCHSUB B 0 @@1 1 @@2 2 @@3 3 @@4 " フラグ B の値により、それぞれのラベルへジャンプします。 " ここでは局所ラベルを使ってみました。 key;goto ref ;----------------------------------------- :R33 text cls [TEXT]テキスト 使用法 :TEXT <開始位置> <終了位置> (値) 種別  :画面制御 使用回数:普通最初に一回 用途  :メッセージの表示開始行の位置を設定します。 解説  : 開始位置・終了位置とも1から24の範囲で指定します。開始位置を0にす     ると全画面を使用するときになります。この設定がディフォルトです。       このコマンドを初めて実行する時のみ、同時に画面を消去します。      第3パラメータはAUTOPAUSE設定用です。AUTOPAUSEコマン     ドを使わなくても、TEXTコマンドから設定できるわけです。 注意  :BASICなどと違い、画面の一番上の行は1になります。 使用例 : " TEXT 1 10 9 " 画面の1行目から10行目まで表示し、AUTOPAUSEをかけます。 key;goto ref ;----------------------------------------- :R34 wait cls [WAIT]ウェイト 使用法 :WAIT <値> 種別  :画面制御 使用回数:任意 用途  :時間待ちをします。時間は0.1秒単位で指定できます。      時間待ち中に何かキーを押すか、時間が経過すると再開します。 解説  : ADVGIの機能では1秒単位の精度しか得られない機種(例えば98)で     は、外部コマンドWAIT.COMがパスの通ったディレクトリに存在する場     合のみ0.1秒精度で利用できます。 注意  : 98版のWAIT.COMはWAIT98.COMの名前で提供されていま     す。使用前にリネームして下さい。また、98版では60秒以上のカウントは     できません。 使用例 : " WAIT 50 " 5秒間時間待ち key;goto ref ;----------------------------------------- :R35 wave cls [WAVE]ウェイブ 使用法 :WAVE <値> 種別  :特殊コマンド 使用回数:任意 用途  :WAVE形式の音声データを再生します。 解説  : 実は外部コマンドをバッチファイルで利用しているだけなのですが、      ADVGIテキスト内での記述を統一するために一節設けました。       外部のWAVEデコーダが存在しない場合は、再生を行わずに処理を      続けます。 注意  : 実行環境に対応したWAVEファイルデコーダがなければ使用できない      ので、音声が謎解きの重大なヒントのようなシナリオはあまりお薦め      できません。そのすばらしいアイディアは、残念ですが、以降のバージョン      まで暖めておいて下さい。 使用例 : " WAVE OHAYO.WAV " OHAYO.WAVを再生します key;goto ref ;========================================================= :C1 cls               [ 文章の表示 ] ・文章の表示  ADVGIでのメッセージの表示は、まったく特別な指定無しに行えます。つまり、コマンド以外のすべての文字列をメッセージとして解釈し、出力するのです。  これは、ゲームの制御などを最小限しか意識せずに、シナリオを作成できるという事を意味します。 ・色文字  さて文章にいくらかの飾りつけをする場合、どうすればよいのでしょうか。  ADVGIはMS−DOS汎用であるため、MS−DOSが共通でサポートしている機能しか使用できません。文字の飾りについては、エスケープシーケンスにある色文字などの使用が使えます。  この色文字の指定は @c?? と行います。 ?? にはエスケープシーケンスで色ごとに定められた数字を指定します。この番号と色の対応は次の通りです。   黒   30   青   34   赤   31   紫   35   緑   32   水色  36   黄色  33   白   37   それぞれの値に+10すればリバースになります  98用MS−DOSの場合には、他にも次のようなものが使えます。FMRなどで使えるかどうかは知りません。   バーティカル・ライン 02   アンダー・ライン   04   ブリンク       05   リバース       07   規定値        00 例えばこんな風になります。 "@C04アンダーライン@C00 "@C45リバース@C37 "@C05ブリンク@C00 ・表示範囲の指定  メッセージの表示に関してもう一つ重要なものとして表示位置があります。  ADVGIのメッセージは、何も指定しないときには画面の最上段から最下段までに表示されます。これはTEXTコマンドで変更することができます。とは言え、実際には最下行の設定は巧く行われますが、最上段はどうも不安定な場合があります。  もう一つ、LOCATEコマンドがあります。このコマンドは、LOCATE文で指定したメッセージだけを任意の位置に表示するのみで、厳密には表示範囲はまったく変化しません。 key;goto com ;------------------------------ :C2 cls               [ 画面消去 ]  一口に画面消去と言っても、厳密には2つのまったく別のコマンドが存在します。というのは、画面表示というものに2種類のものがあるからです。  一つはテキスト画面で、この画面の消去はCLSコマンドで行われます。ただ、このコマンドはTEXTコマンドの影響を受けませんので、すべてのテキスト画面を消去してしまいます。ですから画面の一部のテキストだけを消去したい場合はLCLEARコマンドを使用します。  もう一つはグラフィック画面で、この画面の消去はGLOADで行います。GLOADのINIT指定です。 key;goto com ;------------------------------ :C3 cls             [ 画面のオートポーズ ]  画面表示のオートポーズは、指定した行数まで表示したときに自動的に画面を一時停止して、キー入力を待つ機能です。この機能をONにしておけば、いわゆる「電脳紙芝居(分岐のないアドベンチャーゲームの俗称)」が簡単に作れるわけです。  オートポーズの設定方法は二つあります。一つはずばりAUTOPAUSEと言うコマンドを使う方法で、もう一つはTEXTコマンドで指定する方法です。どちらかと言えばTEXTコマンドで行ってしまう方が簡単でよいでしょう。AUTOPAUSEは途中で設定を変えるときに使用すると思って下さい。  [キー入力]の項も参照して下さい。 key;goto com ;----------------------------- :C4 cls              [ キー入力 ]  ADVGIでは、ゲームのプレイヤーにキー入力を要求する場合は次のいずれかのコマンドを実行した場合になります。 ・KEY/PAUSE  二つはまったく同じコマンドです。このコマンドは画面表示を一時停止状態にするもので、何かキーが押されると表示を再開します。主に長い文章の途中や重要なメッセージの表示後に間を取るために設けます。  WAITコマンドもキー入力が起こるとウェイトを脱出するので、この類だと考えて良いでしょう。 ・SELECT/SELECTSUB  これらは、1から指定した値までの数字を入力させ、その値によって分岐を行う命令です。 ・FINPUT/SINPUT  フラグ(変数)や文字列に直接値を入力させるコマンドです。プレイヤーの名前を指定するなどの使い方が考えられます。 ・セーブ動作  KEY/PAUSEコマンドで画面が一時停止状態にあるときESCキーが押されるとセーブ/終了選択ができますが、この選択も数少ないキー入力機能の一つです。 key;goto com ;------------------------------------------ :C5 cls             [ グラフィック表示 ]  ADVGIはMS−DOS汎用ソフトウェアです。MS−DOSが動作するマシンであれば、それが例えDOS/Vだろうが98だろうがFMRであろうが共通のゲームデータを走らせることができます。  しかし、ご存知の通り、DOSマシン間にはグラフィックレベルでの互換性はありません。TOWNSのグラフィックローダーは98では使えないと言うことです。  ADVGIはこの機種間のグラフィックの非互換性を、各機種専用プログラムを外部に持つことで解決しています。つまり、自分の環境にBMP及びTIFFファイルのロードが可能なグラフィックローダーがあれば、これを使用することで、どんな環境においてもグラフィックを表示させることができます。  ADVGI本体にバンドルされているグラフィックローダーGLOADは、PC98、FMR、J3000の3機種用のもののみです。あなたがこれら以外のDOSマシンを使用されているなら、その環境用のBMP/TIFFローダーを用意して下さい。そういえば、Namy君は今度DOS/V用(EGA用?)のGLOADを作るとか言ってたような気がするので、DOS/Vユーザーの方はそれまでの間何とかやりくりして下さい(なんて他力本願な・・・)  さて、肝心のグラフィックの使用方法ですが、これはGLOADコマンドで行います。ディフォルトでは、特に指定がない限り、グラフィックは画面中央に画像の中央が来るような形でロードされます。このディフォルトの表示位置の変更はGRAPHコマンドで行います。  グラフィックに関してはまだまだ追加すべき機能が多いので、いずれもう少しコマンドが増えてくることでしょう。 key;goto com ;-------------------------------------- :C6 cls               [ 時間待ち ] ・一定時間実行を止める  何らかのキーが押されない限り、画面表示を一定時間停止する機能です。WAIT文を用います。 ・ウェイト付き文字出力  WAIT文によるウェイトは、1行単位でしか扱えませんでした。こちらは、一文字づつをコントロールするもので、文字列中に @w?? と埋め込むことで指定します。  ところで問題はどうやって時間を得るかです。TOWNSなどは標準的な機能としてミリ秒単位で時間を得ることができるのですが、例えば98などはMS−DOSの機能としては秒単位の時間しか得ることができないのです。  ADVGIの古いバージョンではそのための外部コマンドを機種ごとに用意しなければなりませんでしたが、新しいバージョンでは起動時にコンピュータの速度を測ることで、ある程度の精度の時間を得るような仕様になりました。これで、時間取得用の外部コマンドを用意する必要はなくなりました。 key;goto com ;--------------------------------------- :C7 cls [ フラグ/文字列 ]  ADVGIでは数値変数と文字列変数が使用できます。 ・変数  数値変数は単に変数、またはフラグという呼び方もします。フラグ(旗)というのはその名が示すように、ある条件を満たしているかどうかを示す目印、の意味があります。ただしこの呼び方は古いバージョンでのもので Version 2.0 以降では変数と言うことになっていますが、このドキュメントではフラグと呼んでいる場合が多いです。  この変数(フラグ)に値を設定する方法は、 " <変数名> = <値> です。古いバージョンではFLAGコマンドを用いて " FLAG <フラグ名> <値> としています。こちらの方が感覚的に使いやすいかも知れませんが、変数としての仕様が推奨されています。  変数に値を入力したい場合は次のようにします。 " FINPUT <変数名> <メッセージ> このメッセージというのは、入力を促すメッセージのことで、例えば " FINPUT NAME 名前を入力して下さい のようにします。  現在の変数の値を表示する時には、変数名を%で囲って行います。 ・文字列変数  文字列は文字列変数で扱えます。文字列変数に文字列を設定する方法は、 " STRING <文字列変数名> <文字列> です。設定する文字列には@C??や@W??なども使用できます。  文字列をゲーム中に入力したい場合(名前の設定とか)は、 " SINPUT <文字列変数名> <メッセージ> とすることで、メッセージとともに入力してくれます。例えば次のように使います。 " SINPUT NAME 名前を教えてね! 文字列変数の参照はフラグと同じく%で囲います。 ・変数の代入/演算  変数は四則演算ができます。記号は以下の通りです。    加算 +    減算 −    乗算 *    除算 / 例えば変数 A と B の加算結果を C に格納するときは " C = A + B となります。また、加減算についてはC言語のように " A += B     (A+BをAに代入) " A -= B     (A−BをAに代入) や " A ++      (A+1をAに代入) " A --      (A−1をAに代入) などが使えます。  さらに面白いものとして、並列代入があります。これは複数の変数に一度に同じ値を代入できるもので、例えば " A,B,C,D = E+F とすれば、EとFの加算結果を変数A、B、C、Dに代入します。  計算を見やすくするために括弧を使用することがありますが、この括弧には、いわゆる括弧「()」の他に「{}」も使用できます。例えば " E={A+(B*C)}/D などと書けば、CとBとの積をAに加え、それをさらにCで割ったものをEに代入することになります。  乱数を発生させたい場合はRANDOMコマンドを使用します(性格には、RANDOM関数なのだそうですが、特に区別する必要はありません) ・配列変数  変数には配列変数を使用することができます。例えば配列 a は " a[<値>] で表されます。配列は数値変数、文字列変数のどちらでも使用できます。  BASICやC言語をご存じの方は、配列の仕様に先駆けて何らかの宣言がいると思われるでしょうが、ADVGIではその必要はありません。  この配列は、例えば次のように行います。 " string name[1] ザンギエフ " string name[2] ケン " string name[3] リュウ " string name[4] バルログ " i = 1 " repeat 4 " @%i@%人目、@%name[i]@%を倒したぞ! " i++ " key " rend とすれば、      1人目、ザンギエフを倒したぞ!      2人目、ケンを倒したぞ!      3人目、リュウを倒したぞ!      4人目、バルログを倒したぞ! と表示します。 key;goto com ;-------------------------------- :C8 cls               [ 分岐 ] ・IF文  IF文は、条件が正しいかどうかで処理を分岐するコマンドです。この条件式には、次のものが使用できます。     = or ==      左辺=右辺     <          左辺<右辺     >          左辺>右辺     <= or =<     左辺≦右辺     >= or =>     左辺≧右辺     != or <> or >< 左辺≠右辺     ||         左辺と右辺のどちらかが成り立つか(OR)     &&         左辺と右辺のどちらもが成り立つか(AND) ・SWITCH文  一方こちらの分岐は、与えられた変数の値によって複数の分岐を一度に指定するものです。IF文に比べて便利である反面、条件が=しかないことが短所です。 key;goto com ;--------------------------------- :C9 cls              [ 繰り返し ]  繰り返し同じ処理を行うときは、その処理の前と後ろにREPEAT、RENDコマンドをつけることで簡単に行えます。古いバージョンではこの代わりにLOOPコマンドがありましたが、こちらは繰り返し回数を変数に入れる形でしたので、その変数を利用する分には便利なのですが、単に繰り返すだけならREPEATの方が楽です。  ところで、この繰り返しループからは無理矢理脱出することができません。ですから例えば " REPEAT 5 " FINPUT A " IF A == 0 GOTO @@1 " REND " :@@@@ と言った処理は好ましくありません。5回繰り返す前に条件式が成り立ってしまった場合、REPEATコマンドが内部で使用している変数をリセットせずに終了してしまうからで、バグの原因となります。こう言った処理の場合は " C = 5 " :label " FINPUT A " IF A == 0 GOTO @@1 " LOOP C LABEL " :@@@@ とするべきでしょう。 key;goto com ;-------------------------- :C10 cls              [ ジャンプ ]  プログラムの中で、ある処理の次に書かれている処理を行わず、前方、または後方の処理へ流れを曲げることがジャンプですが、これを行うコマンドがGOTOコマンドです。広い意味では、ラベルを指定するあらゆるコマンドはジャンプコマンドに分類されるわけですが、狭義ではこのGOTO文のような無条件ジャンプのみをジャンプと呼びます。  さて、ジャンプする場合には、当然ジャンプする先、ラベルが必要です。一般に、このラベルには望みの名前を付けることができますが、一つのファイル内で同じ名前の分岐を複数作ることはできません。このような場合には、局所ラベルを用いた方が便利な場合でしょう。  局所ラベルには2種類あり、一つは @@ タイプ、もう一つは @?? タイプです。  前者は、コマンドでラベルを指定するときに @1、@2 などとすれば、それぞれその位置から後で最初に現れる @@ 、2番目に現れる @@ にジャンプします。  後者は ?? の部分にラベル名を指定するのですが、この場合に限りラベル名は重複しても構いません。コマンド内でこのラベルが指定されると、その位置から後で最初に現れるその名前のラベルにジャンプするのです。  これら局所ラベルを巧く使えば、より汎用性のあるルーチンを作ることができます。 key;goto com ;---------------------------- :C11 cls             [ サブルーチン ]  サブルーチンと書きましたが、ADVGIではサブルーチンはそう明確に定義されているわけではありません。その処理の頭にラベルがありRETURN文で終わっているものならばサブルーチンです。GOSUBまたはSWITCHSUB/SELECTSUBコマンドによって呼び出されます。  サブルーチンは巧く作れば、汎用性を持ったものにすることができ、それをライブラリのように保存しておけるでしょう。 key;goto com ;------------------------- :C12 cls             [ 外部コマンド ] ・外部コマンド  ADVGIではADVGIに含まれない機能を外部コマンドで補うことができます。このうち、グラフィックに関してはGLOADというコマンドが登録されていますので、好みのグラフィックローダーをGLOAD.EXEのようにリネームする事で利用できるようになります。WAVEコマンドに関しても同様です。  それ以外の外部コマンドはADVGI内に登録されていないので、実行する場合には注意が必要です。外部コマンドの起動は " EXEC <外部コマンド名> <オプション> ... のように行います。  繰り返しますが、外部コマンドを使う場合は、ユーザーの環境にそのコマンドがあることが大前提です。ゲームファイルと一緒にその外部コマンドを配布するか、またはMS−DOSの外部コマンド(FORMAT、CHKDSKなど)や超メジャーフリーソフト(LHAやDIET)でもない限りあまり使うべきではありません。 ・アクセスライブラリの使用方法  ADVGIアクセスライブラリはCALLコマンドによって呼び出される、ADVGI専用の外部コマンドで使用するライブラリのことを指します。そんなものを使った外部コマンドがどこにあるのかというと、どこにもありません。自前で作らなければならないのです。  使用できる言語はC言語です。MS−Cで作られていますが、他のコンパイラでも概ね正常に動作すると思われます。ご自分の環境で動作しない場合は、ライブラリを再コンパイルすれば良いと思います。  使用できる関数は次の3つです。 int ADVGI_flagread(char *argv,int *i,char *name)@s フラグ(変数)の読み込み int ADVGI_flagwrite(char *argv,int *i,char *name)@s フラグ(変数)の書き込み int ADVGI_stringread(char *argv,int *i,char *name)@s 文字列変数の読み込み 各引数の意味は次の通り。 char *argv : 受け取ったパラメータをそのまま返します。 なお、パラメータ1から5まではADVGIが使用しますので、パラメー タ6以降をユーザーは使用できます。 int *i : フラグ/文字列変数の値を格納する変数へのポインタを渡します。 char *name : フラグ/文字列変数の名前を指定します。 戻り値 : 正常動作の時0、フラグが存在しないとき−1を返します。 実際問題として、次のような手順で作成します。 あ)main関数の最初で、コマンドライン引数をchar **型で拾う い)フラグ(変数)の場合、int型の変数を宣言する。   文字列変数の場合、char 型の配列を確保する。 う)上の3つの中の使用する関数に、コマンドライン引数のアドレス、int型変数/char  型配列のアドレス、目的のフラグ(変数)名をパラメータとして渡す。 え)戻り値が0ならば、int型変数に目的のフラグ(変数)の値が入っている。 key;goto com ;----------------------------- :C13 cls             [ セーブ/ロード ]  ADVGIにはセーブ/ロードを制作者側で行うコマンドが用意されていません。これらの処理はすべてのADVGIゲームに共通な手順で行われるわけで、それはそれで使いやすいのかも知れませんが、自由度が低いことは否めません。  セーブは、各種コマンドで画面表示が一時停止状態にある場合にESCキーを押すことで行えます。これを逆手にとって、セーブして欲しい部分でKEY/PAUSEコマンドなどを使えば、ある程度までセーブをコントロールできるでしょう。  問題はロードです。ADVGIではコマンドラインからADVGIを起動するときに、同時にセーブファイルを指定する仕様になっているため、制作者側でロードをコントロールできないのです。ゲーム内でセーブファイル名を指定して、セーブ時にユーザーにそれを守ってもらい、後はロードの時に外部コマンドとしてADVGIを " EXEC ADVGI <ゲームファイル> <セーブファイル> のように指定するしか、今の所方法がありません。  さてADVGIのコマンドにLOADというものがあります。このコマンドは、今話しているLOADとは少し意味が違います。ここで言うロードとは、フラグや進行状態を読み出してゲームを再開することですが、このLOADコマンドのロードとは、単に別のゲームファイルを読み込むというものです。  あまりにも長いプログラムなどでは、ラベルの検索などに多くの時間がかかりスムーズに実行できません。そこで、切りのいい場所でゲームファイルを分断して、適当なところでゲームファイルそのものを切り替えてしまうようにすれば、ずっとましになります。 key;goto com ;--------------------------- :C14 cls              [ その他 ] ・ラベルキャッシュ  各種分岐・ジャンプ命令ではラベルの検索を行っていますが、これを素直に行っていては時間がかかります。そこで、ラベル情報をいくつか先に確保しておくLCACHEというコマンドが作られました。これで、かなり大きなゲームファイルなら目覚ましい成果が得られます。 ・音声  ADVGIでも音声を使用したいという要望に応え、旧バージョンでも最近取り入れられたコマンドです。WindowsのWAVE形式ファイルをDOSでロードする外部コマンドがご自分の環境にあるなら、これをWAVE.EXEなりWAVE.BATとして用意することで使用できるようになります。  しかし今の所、TOWNS、98という最低の範囲でも完全に対応できないこともあり、あまりお薦めできるコマンドではありません。 ・デバッグコマンド  プログラムを作っている中で、ADVGIの内部情報、特に各種変数の状況などを知りたい場合があると思います。これはPRINTFLAG/PRINTSTRINGコマンドで行います。  また、ラベルキャッシュの状況もLCACHETESTというコマンドで知ることができます。 key;goto com ;======================================================================== :kai cls text 3 23 20  ADVGIは、府立高専のNamy君による、MS−DOS汎用のアドベンチャー・ ゲームインタプリタです。グラフィックなどの機種に依存する部分は、それぞれの機種ごとに外部に用意することにより、限定的にではありますが、グラフィックを使用できる汎用ゲームプレーヤーを実現しています。  このテキストは、このADVGIに含まれる35個からなる前コマンドの使い方と、機能面からの解説を含めたリファレンスマニュアルです。ADVGIを使っているとき、ふとあるコマンドを調べたくなったときに起動すれば、ADVGIのドキュメントファイルを調べるよりずっと簡単に望みの情報が手に入ります(・・・そのはずです)  ここで本文にない初歩的な書式について書いておきます。  ADVGIのゲームファイルでは、コマンドとして登録されていないあらゆる文字列はメッセージであるとしてそのまま表示されます。そして、ゲームの終わりには必ずENDコマンドを実行する必要があります。あとは、起動直後にTEXTコマンドやAUTOPAUSEコマンド、PAUSEMESSコマンドを行っておけば、とりあえず紙芝居的なものにはなります。 key  あとはあなたの想像力のおもむくまま、分岐を入れたりグラフィックを表示したり ・・・できあがったゲームは、ぜひ多くの、そしてDOS以上の互換性のないパソコンのユーザーの人に発表して下さい。 * * * * * * * * *  さて、そのある意味で非常に「インチキなプログラム」であるADVGIも、なんと バージョン2へとパワーアップしまして、いろいろと協力させられた身としても大変 うっとーしく(やい、テスト真っ最中に何させんねん!(T。T))思っています。  で、この忙しい最中に、私が作っていた某”前フリコレで予告編を出していた”アドベンチャーゲームのファイルが、ハードディスク上からワイプデリートされ、二度と復活できなくなってしまいました。  そんなわけで、そのお詫びの意味も込めてCOMMAND.TXTもバージョンアップし、新規命令の追加や機能検索モードの大幅な改稿を行いました。  しかし、それにしても・・・皆さん、COPYコマンドには気をつけましょう。下手に使うとファイルが完全に消えてしまいます。DOS5ユーザーの方はUNDELETEを最高レベルで使いましょう。DOS6ユーザーの方は・・・いいですね、便利で。  自作データこそが、パソコンユーザーが自信になったら最初に持ち出すべきものですからね(^^)。       1995年2月16日 ”みなさん銀英伝4は絶対やろうね”白学志 goto start