################################################################# # # # Drive Assign ドライブアサイン version 1.01 # # ==== 1st release edition ==== # # Project HRF works. # # # ################################################################# ■ 概要 ■ ドライブ名(A: B: ・・・)を、任意につけかえます。 ■ 特徴 ■ ・ドライブ名を、FDD,CDROMなどのメディア名を使って任意に付け替え  ることができます。 ・config.sys中のprogram行で実行することを想定し作られています。 ・対話形式でのドライブ設定も可能です。 ・GCCで書かれています。サイズがでかいです。 ・RAMDISKを2つ以上登録している、あるいは、SCSIハードディスクを  2台以上つないでいる環境などにも対応します。 ・6連装CDドライブも対応しているはずですが、手もとにないので  未確認です。 ・最低限のドライブ名付け替え機能しか必要ない時は、実行ファイル  サイズを縮小できます。(約8.8KB → 約3.7KB) ■ 使ってみよう:簡単な使用法 ■ このツールでは、どのドライブ名に、どのメディアを割り当てるかを記 述したコンフィグファイルを作成する必要があります。一から記述する こともできますが、ここではドライブリスト出力機能を利用して、簡単 に作成してみましょう。 まず、システムディスクの適当なディレクトリに実行ファイルをコピー してください。 次に、 drvassign /L > drvassign.cnf として、実行してください。   「未設定のドライブがあります。設定をしますか?(Y/n)」 と、表示されるので、Yまたは、crで、ドライブ設定モードに入ってく ださい。ここで、ドライブを任意に設定します。(※1) 上下キーで設定するドライブを選び、リターンキーを押します。次に上 下キーで設定するメディアを選びリターンキーで選びます。全メディア の設定が終了後、F10で終了します。 設定後、drvassign.cnfができています。テキストファイルですので、 type drvassign.cnf で、一度見てみてください。このコンフィグファイルは、drvassign.x と同じディレクトリに入れておいてください。(※2) 次に、config.sysに次の行を追加します。 program = \(path)\drvassign.x (path)には、drvassign.xを入れたパスを記述します。 以上で終わりです。リブートしてみましょう。 (※1) 詳しくは、ドライブ設定モードの項を参照してください。 たくさんのメディアが接続されているシステムだと、このドライブ設定 画面の意味がわからないかもしれません。その場合は、標準コマンドの drive.xでドライブを任意に付け替えた後、「・・・設定しますか?」 に、Nで設定しないを選んでください。 (※2) タイプしてみて、error/unknownなどのエラー行があった場合は、この バージョンでは対応できません。コンフィグファイルを、自力で書き直 せば、なんとかなる場合もあります。 ■ ドライブ設定モード ■ 対話形式でドライブ名を設定するモードです。左に並んでいるのがすで に設定されたもので、右に並んでいるのが未設定のものです。 反転表示されているものが、現在選択されているドライブ/メディアで す。この反転表示をセレクトポインタと呼びます。 ┌─────────── 画面 ─────────────┐ │ │ │A:=■■■■■ ←セレクトポインタ │ │B:= │ │C:= │ │ ドライブ一覧   未設定メディア │ │ エリア   一覧エリア │ │ │ │ │ │ │ │Z:= │ │ │ │ │ └───────────────────────────┘ キー操作 [cr] メディア設定 リターン セレクトポインタが、ドライブ一覧にある時は、リターンキー でセレクトポインタが未設定メディア一覧エリアに移動します。 そこでメディアを選びもう一度リターンキーを押すことで、 最初にセレクトしたドライブにメディア設定します。 [ESC] キャンセル。 未設定メディア一覧エリアにセレクトポインタがある時、ESC キーを押すことでドライブ一覧エリアに戻せます [↑↓] セレクトポインタの移動。 [UNDO] 未設定メディアを一括設定する。 設定されるドライブは、未設定メディアが実際に割り当てられて いるドライブになります。 [space] 設定されているメディアを未設定にする。 ドライブ一覧エリアにセレクトポインタがある時のみ有効です。 [F10] 終了。 ドライブ一覧エリアにセレクトポインタがある時のみ有効です。 [A-Z] メディア直接設定 今セレクトされているメディアを、直接その指定した(入力し た)ドライブに設定します。 ■ 詳しい使用法:実行 ■ コマンドラインの書式を次に示します。 drvassign [スイッチ] [コンフィグファイル名] コンフィグファイル名を指定しなかった場合、実行ファイルがあるパス からデフォルトコンフィグファイル"drvassign.cnf"を読み込みます。 「簡単な使用法」では、このデフォルト機能を利用し、コマンドライン へのコンフィグファイル名の記述をしていません。 基本的に、config.sys中のprogram行で起動時に一回のみ実行すること を想定して作られています。しかし、ドライブ名を変えたくなった時、 いつでも実行することができます。 ■ 詳しい使用法:スイッチ ■ スイッチについて、以下に示します。 /Q タイトルを表示しない タイトルの表示を抑制します。 /W コンフィグファイルに記述されたメディアが接続され   ていなくてもエラーメッセージを表示しない コンフィグファイル中には記述されているが、実際にはそのメディアが 接続されていない時、その旨のエラーメッセージを表示します。 このスイッチを付けておくと、それが抑制されます。 追加機能がバインドされている場合(デフォルト)には以下のスイッチ が追加されます。 /L  ドライブリストを表示する ドライブ名付け替え後のドライブリストを表示します。そのままリダイ レクトしてコンフィグファイルのひな形として利用できます。 /C  対話形式のドライブ設定を行う 対話形式でのドライブ設定を行います。キー操作は「ドライブ設定モー ド」の項を参照してください。 コンフィグファイルに記述されていないメディアが接続されていたとき は、このオプションを付けていなくても、対話形式のドライブ設定モー ドに入ることができます。 ■ 詳しい使用法:コンフィグファイル ■ ドライブを、どのような順番で並べるかを、次のフォーマットで指定 します。スペースは、任意です。カッコ内のパラメータは必要な場合の み記述します。 A: = medianame( DEVICE = ?, UNIT = ? ) ↑ ↑ ↑ ↑ (1) (2) (3) (4) (1)ドライブ名 アルファベット1文字でドライブ名を指定し、直後にコロン(:)を付け ます。ドライブ名の後には、イコールを付けます。 当然ですが、config.sys中 lastdriveで設定したドライブまでしか有効 ではありませんので、注意してください。 (2)メディアネーム 指定したドライブを、実際にどのメディアに割り当てるか決定します。 指定できるメディアは、次の通りです。 FDD ...... フロッピーディスク (2HD/2DD) 2HD ...... フロッピーディスク(Human&PC-98 2HD) 2DD ...... フロッピーディスク(PC-98 2DD 8sector) RAMDISK .. ラムディスク SASIHDD .. ハードディスク SASI SCSIHDD .. ハードディスク SCSI HDD ...... ハードディスク (SASI/SCSI) MODISK ... MOディスク CDROM .... CDROM フロッピーディスクドライブは、通常 "FDD"と記述します。2DD専用ド ライバなどを組み込んでいる場合は、"2DD"と、記述したほうがよいと 思われますが、手元にそのような環境がないため、何とも言えません。 ハードディスクドライブについては、SASIとSCSIのハードディスクが 混在する可能性のあるシステムでは、"SASIHDD"または、"SCSIHDD"と きちんと記述してください。メディアネーム"HDD"を使用していた場合 デバイスナンバーが重なってしまうため正常な動作が期待できません。 (3)デバイスナンバー(省略可能) 同じメディアをもつデバイスドライバーが複数ある場合、デバイスナン バーで指定します。たとえば、RAMDISKを2つ以上登録している場合や、 SCSIハードディスクを2台以上使用している場合などが、これに当たり ます。DEVICEの後に、イコールを付けて数値を記述します。 (4)ユニットナンバー(省略可能) 一つのデバイスドライバーに複数のユニットがある場合、ユニットナン バーで指定します。UNITの後に、イコールを付けて数値を記述します。 フロッピーディスクのドライブナンバー、ハードディスクのパーティショ ンナンバーなどがこれに当たります。SASIハードディスクの場合は、ド ライブを2台以上つなげてもユニットナンバーで指定します。 (例)   A: = FDD( UNIT = 0 ) フロッピーディスクドライブ0をA:に設定   G: = RAMDISK ラムディスクをG:に設定( like X1 CP/M GRAMDISK(^^) )   T: = SCSIHDD( DEVICE = 2, UNIT = 1 ) 3台目のSCSIハードディスクの2つめのパーティションを、 T:に設定(DEVICE/UNITとも0から数えることに注意) ■ 詳しい使用法:追加機能について ■ デフォルトで、追加機能であるドライブリストの表示機能(/L)と、対話 形式でのドライブ設定機能(/C)が、追加されています。 コンフィグファイルを使用したドライブ名付け替え機能しか必要ない時 は、追加機能分を削除し、実行ファイルの縮小が可能です。 (あまり小さくならんが(^^;)) 【方法1】 bind /d drvassign.x addition.x 【方法2】 bind /x drvassign.x damain.x del drvassign.x ren damain.x drvassign.x 方法2の方が、より小さくなります。 ■ Q&Aトラブルシューティング ■ Question: /Lで作成したリストに、unknownがあるんですけど。 Answer: 「詳しい説明:コンフィグファイル」を読んで設定できそうなら、自分 でコンフィグファイルを書いてみることをおすすめします。 作者に連絡するのも良いでしょう。 Question: コンフィグファイルのDEVICEとUNITの違いがわかりません。 Answer: デバイスに依存しているため、ひと言では説明できません。 /Lでドライブリストを表示してみて、それに従ってください。 内部では、同じ種類のメディアを扱うデバイスドライバが、複数ある時 は DEVICEで管理し、一つのデバイスドライバが扱うユニットを UNITで 管理しています。 Question: 対話形式ドライブ名設定(/Cオプション)機能が働きません。 Answer: 機能縮小版を使われていませんか? drvassign /? として実行し、「追加機能は、バインドされています。」というメッセー ジが出るか確認してください。 Question: 正常に動作しません。 Answer: 1、もう一度このドキュメントを読む。 2、作者に連絡する。 3、あきらめる。 バスエラーなどが出る場合は、2、3が有効です。 「ドライブ指定に誤りがあります」と表示される時は、config.sys中の LASTDRIVE以上のドライブ名を使っていないか、確認してください。 Question: bindってなんですか。 Answer: システム標準コマンドでありながら、ほとんどの人は使ったことがない のでははないかと思われる幻の(ウソ)コマンドです。 実行ファイルをまとめたり、バラしたりするのが仕事です。 開発系の人しか用がないと思ってましたけど、意外なとこで役にたちま した。標準コマンドであるってことは大事だね。 Question: コンフィグに指定しなかったメディアはどうなるの? Answer: 指定したメディアのすきまに存在しているはずです。その順番は、その 場次第です。:-P ■ おわりに ■ 制作にあたり、次のツールを使用させていただきました。各フリーウェア の作者・移植者の方に感謝いたします。 μEmacs 3.10-J1.43 gcc version 1.29 Tool#2(X680x0) High-speed Assembler v3.09 Copyright 1990-94 by Y.Nakamura SILK Hi-Speed Linker v3.01 Copyright 1989-94 SALT XC Compiler v2.12 Copyright 1987,88,89,90,91,92,93 SHARP/Hudson ( not free ware ) このツールの前身を作るに当たり、REIA氏の助言、協力をいただきまし た。また、目の前でCD-ROMが対応していないことを見せて、このツール にバージョンアップさせるきっかけをいただきました。(^^;) 逸般人独逸さんには、バグだし、キーアサインアイデア等、多大なご協 力いただきました。 ありがとうございました。 1995 9/ 6(Wed) 19:12:54 Project HRF works.