doscmd(1) FreeBSD 一般コマンドマニュアル

doscmd

前のページ 上に戻る 次のページ

doscmd


            -S int -U int [cmd [args ...]]


解説

     doscmd は、DOS のサブセットをエミュレートして単一コマンド cmd args を実行
     することができますし、 PC をエミュレートして DOS をブートすることもできま
     す。 DOS をブートする場合には、より多様な DOS アプリケーションを実行する
     ことができます。 MS-DOS 6.2 以降は doscmd ではうまく扱えないようです。
     DOS をブートするには、 -b フラグを指定するか、 cmd 引数を省略してくださ
     い。 -b を指定すると、 cmdargs は無視されます。

     doscmd は DOS のサブセットを提供するだけですが、多くのプログラムを実行す
     るには十分です。コンパイラ、アセンブラ、リンカローダといったプログラムも
     実行できますが、これらに限定するものではありません。

     次に示す多様なフラグを doscmd に指定可能です:

     -2      DOS プログラムからの doscmd エミュレータへのすべてのトラップのデ
             バッグトレースを有効にします。カーネルによって扱われるためにトレ
             ースされないトラップがあることに注意してください。

     -3      割り込みベクタの変更や論理ドライブへのパスの初期化といった、いく
             つかの下位レベル機能のデバッグを有効にします。

     -A      エミュレータを通過するすべての割り込みのトレースを有効にします。
             -S オプションを、255 個すべての割り込みの値とともに指定する場合と
             同じです。

     -b      DOS をエミュレートする代りに DOS をブートします。

     -c file
             画面へのすべての出力を捕まえて、 file へ出力します。画面の直接の
             書き込みは捕まえられないことに注意してください。

     -C      MS-DOS の呼び出しエミュレーションと戻り値をリストします。

     -D      ディスクとファイルの操作に関するデバッグを有効にします。

     -d file
             デバッグ出力を、標準エラー出力の代りに file へ送ります。

     -E      exec ルーチンのデバッグを有効にします。

     -H      中途半端に実装された呼び出しのトレースを有効にします。

     -I      すべての割り込みのトレースを有効にします。 -A とほとんど同じです
             が、有効になるトレースは少しだけ少ないです。

     -i port[:cnt]
             入出力ポート port からのすべての入力要求のトレースを有効にしま
             す。もし cnt が与えられると、 port から port+cnt-1 までをトレース
             します。

     -P      入出力ポート呼び出し (例えば inb, outb など) のトレースを有効にし
             ます。

     -R      ファイルリダイレクトコードのデバッグを有効にします。

     -r      生のキーボード入力と表示を使用します。<CTRL-ALT-DEL> を押すと、
             doscmd は終了します。VGA グラフィックスが使えるようになります。

     -S int  割り込み int のトレースを有効にします。

     -t      命令レベルのトレースを試みます。トレースを混乱させる命令がありま
             す。 <CTRL-ALT-T> を押すとトレースモードの有効と無効とを切り替え
             ます。

     -U int  割り込み int のトレースを無効にします。 -A-I の後で使用すると
             便利です。

     -V      未知の割り込みを報告する際、レジスタダンプも含めます。

     -v      -AH と同じです。

     -X      XMS 操作のデバッグを有効にします。

     -x      X11 のウィンドウを表示出力のためにオープンします。他の方法では利
             用できない様々な割り込みを有効にします。 -b を指定しても、指定し
             なくても、使用可能です。

     -Y      EMS 操作のデバッグを有効にします。

     -z      DOS プログラムにジャンプする直前に doscmd を停止させます。 doscmd
             を開発する以外の用途はほとんどありません。

     起動時に、 doscmd はコンフィギュレーションファイルを読もうとします。ま
     ず、カレントディレクトリのファイル .doscmdrc を試します。もし見付からない
     場合、 $HOME を検索します。それでもなお見付からない場合、ファイル
     /etc/doscmdrc を使用します。

     コンフィギュレーションファイルでは、コメントは # 文字から開始します。ま
     た、空行は無視されます。非空行は、環境変数またはデバイスを設定するコマン
     ドです。空白の前に = がある行は、環境変数への代入であると扱われ、 DOS の
     環境に追加されます。その他の行は次のいずれかです。

     boot [A: | C:]
            ブートするデバイスを設定します。デフォルトでは、 A: が定義されてい
            れば最初に試され、もしそれが失敗すると、 C: が試されます。

     assign [A-Z]: [-ro] path
            BSD/OS のディレクトリ path を、指定したドライブに割り当てます。
            -ro フラグを指定すると、読み取り専用ファイルシステムになります。
            DOS ブート時には、 /usr/libdata/doscmd/redir.com バイナリが実行さ
            れるまでは、これらの割り当ては実行されません。

            360    9 ヘッド 40 トラック両面フロッピ
            720    9 ヘッド 80 トラック両面フロッピ
            1200   15 ヘッド 80 トラック両面フロッピ
            1440   18 ヘッド 80 トラック両面フロッピ
            2880   36 ヘッド 80 トラック両面フロッピ

     assign [C-Z]: [-ro] path [type | cyl head sec] [fdisk_tab]

     assign hard[01] [-ro] path [type | cyl head sec] [fdisk_tab]
            ファイル path を、次に利用可能なハードディスクまたは指定したハード
            ディスクに割り当てます。ディスクのジオメトリは、シリンダ数 cyl と
            ヘッド数 head とトラックあたりのセクタ数 sec で直接指定することも
            できますし、標準タイプから 1 つを type (後述) で指定することもでき
            ます。オプションの fdisk_tab 引数は、このディスクの最初のセクタと
            して使用するファイルを指定します。 path がディスクの一部のみを参照
            する場合に、偽の fdisk テーブルを挿入するために使用できます。

     assign com[1-4]: path port irq
            path で指定した tty または pty を、指定した com ポートとして使用す
            るように割り当てます。ベースアドレスは port でエミュレートされ、割
            り込みは irq で指定されます。このコードは軽くテストしただけなの
            で、向かない用途があるかもしれません。

     setver command version
            doscmd が DOS をエミュレートする場合、 command という名前のプログ
            ラムから呼ばれた時に、DOS バージョンとして version を報告するよう
            にします。 version のフォーマットは、後述の MS_VERSION 変数と同じ
            です。

     C: は、まだ割り当てられていない場合には、ルートディレクトリ (/) に割り当
     てられ、 C: のカレントディレクトリは、現在のカレントディレクトリに設定さ
     れます。これはすなわち、

           doscmd ../foo

     のように起動しても、動作しないことを意味することに注意してください。なぜ
     なら C: ディレクトリはカレントパスで開始するからです。また、次の環境変数
     も、未設定の場合には設定されます:

     COMSPEC=C:\COMMAND.COM
     PATH=C:\
     PROMPT=DOS>

     PATH 変数は cmd を検索する際にも使用されます。 DOS のように、まず cmd.com
     が検索され、それから cmd.exe が検索されます。


コンフィギュレーション変数

     doscmd の内部変数であり、実際の DOS の環境では設定されない変数が、
     .doscmdrc ファイル中にいくつかあります。それらを以下に示します:

     MS_VERSION  この変数の値は、 doscmd が報告を行なう DOS のバージョンを決定
                 するために使用されます。 doscmd は、動作を変えずに、報告方法

     る <CR><LF> 形式へ変換するということはありません。 ASCII ファイルを変換す
     るには、プログラム fconv(1) (ports コレクションの一部です) か、これに類す
     るツールを使用してください。

















































     |      03    |         615    |        6     |       17     |     30MB   |
     |      04    |         940    |        8     |       17     |     62MB   |
     |      05    |         940    |        6     |       17     |     46MB   |
     +------------+----------------+--------------+--------------+------------+
     |      06    |         615    |        4     |       17     |     20MB   |
     |      07    |         462    |        8     |       17     |     30MB   |
     |      08    |         733    |        5     |       17     |     30MB   |
     |      09    |         900    |       15     |       17     |    112MB   |
     |      10    |         820    |        3     |       17     |     20MB   |
     +------------+----------------+--------------+--------------+------------+
     |      11    |         855    |        5     |       17     |     35MB   |
     |      12    |         855    |        7     |       17     |     49MB   |
     |      13    |         306    |        8     |       17     |     20MB   |
     |      14    |         733    |        7     |       17     |     42MB   |
     |      15    |         976    |       15     |       17     |    121MB   |
     +------------+----------------+--------------+--------------+------------+
     |      16    |         612    |        4     |       17     |     20MB   |
     |      17    |         977    |        5     |       17     |     40MB   |
     |      18    |         977    |        7     |       17     |     56MB   |
     |      19    |        1024    |        7     |       17     |     59MB   |
     |      20    |         733    |        5     |       17     |     30MB   |
     +------------+----------------+--------------+--------------+------------+
     |      21    |         733    |        7     |       17     |     42MB   |
     |      22    |         733    |        5     |       17     |     30MB   |
     |      23    |         306    |        4     |       17     |     10MB   |
     |      24    |         925    |        7     |       17     |     53MB   |
     |      25    |         925    |        9     |       17     |     69MB   |
     +------------+----------------+--------------+--------------+------------+
     |      26    |         754    |        7     |       17     |     43MB   |
     |      27    |         754    |       11     |       17     |     68MB   |
     |      28    |         699    |        7     |       17     |     40MB   |
     |      29    |         823    |       10     |       17     |     68MB   |
     |      30    |         918    |        7     |       17     |     53MB   |
     +------------+----------------+--------------+--------------+------------+
     |      31    |        1024    |       11     |       17     |     93MB   |
     |      32    |        1024    |       15     |       17     |    127MB   |
     |      33    |        1024    |        5     |       17     |     42MB   |
     |      34    |         612    |        2     |       17     |     10MB   |
     |      35    |        1024    |        9     |       17     |     76MB   |
     +------------+----------------+--------------+--------------+------------+
     |      36    |        1024    |        8     |       17     |     68MB   |
     |      37    |         615    |        8     |       17     |     40MB   |
     |      38    |         987    |        3     |       17     |     24MB   |
     |      39    |         987    |        7     |       17     |     57MB   |
     |      40    |         820    |        6     |       17     |     40MB   |
     +------------+----------------+--------------+--------------+------------+
     |      41    |         977    |        5     |       17     |     40MB   |
     |      42    |         981    |        5     |       17     |     40MB   |
     |      43    |         830    |        7     |       17     |     48MB   |
     |      44    |         830    |       10     |       17     |     68MB   |
     |      45    |         917    |       15     |       17     |    114MB   |
     +------------+----------------+--------------+--------------+------------+
                 assign A: /dev/fd0.1440 1440
                 assign A: /dev/fd0.720 720
                 assign hard boot_drive 80 2 2

           A: ドライブに対応するロウファイル (訳注: キャラクタスペシャルファイ
           ル) を、システムに応じて修正する必要があるかもしれません。この例で
           は、HD ドライブを最初に試し、DD ドライブを次に試します (訳注: HD =
           High Density; 高密度、DD = Double Density; 倍密度)。

           ここでは、ロウデバイスやロウファイルのみを使用する必要があることに
           注意してください。加工された (cooked) デバイス (訳注: ブロックスペ
           シャルファイル) を使用しないこと!  (おそらくハードディスクは大丈夫
           でしょうが、フロッピは確実に駄目です)

           boot_drive は、ブート可能なイメージを格納するファイルの名前です。
           80 2 2 という 3 つの数字は、ドライブが 80 個のシリンダと 2 個のヘッ
           ドとトラックあたり 2 個のセクタを持つことを示します。これは、MS-DOS
           5.0 を config.sysautoexec.bat のファイルと共にインストールする
           ことが可能な、最小のドライブです。

           もっと大きなブートドライブを作成したいかもしれません。

           ファイル boot_drive は存在する必要がありますので、touch コマンドで
           作成してください。

     2     MS-DOS をブート可能で fdisk, format, sys コマンドを含むフロッピディ
           スクを、 A: ドライブに挿入してください。ファイル redir.com もフロッ
           ピにコピーしてください。この際、msdos ファイルシステム型でフロッピ
           をマウントするか、mtools を使用してください (例えば ``mwrite
           redir.com a:'' とします)。

     3     doscmd を実行してください。

     4     > プロンプトにて、 fdisk とタイプします。

     5     Create DOS partition or Logical Drive を選択します。

     6     Create Primary DOS Partition を選択します。

     7     大きさを指定します (典型的にはドライブ全体です。それでも非常に小さ
           いものです。)

     8     <ESC> を何度か押して、FDISK を終了します。

     9     doscmd が実行中断するでしょうから、そうなった場合、doscmd を再度実
           行します。

     10    > プロンプトにて、 format c: とタイプし、指示に従います。

     11    > プロンプトにて、 sys c: とタイプします。

     12    doscmd を終了します。
                 redir.com
                 ^Z

     15    doscmd を終了します。

     16    FreeBSD ディスクを組み込む魔法のプログラム redir を自動的に呼び出
           す、ブート可能な擬似ディスクが完成しました。 FreeBSD ディスクを使用
           するためには、次の行をあなたの .doscmdrc に追加します:

                 assign D: /usr/dos
                 assign P: -ro /usr/prb
           名前の問題により、アクセスできないファイルがあるかもしれないことに
           注意してください。


診断

     実装されていない割り込みに出会うと、 doscmd は次のようなメッセージを表示
     し終了します:

           Unknown interrupt 21 function 99

     doscmd -x スイッチ指定時に、 X11 support not compiled in というメッセージ
     が表示された場合、環境変数 X11BASE を X Window System をインストールした
     場所 (通常 /usr/X11R6) に設定し、ソースディレクトリ (通常
     /usr/src/usr.bin/doscmd) で make install とタイプすることで、本機能を有効
     にすることができます。このように動作するためには、 X プログラマキットがイ
     ンストールしてある必要があります。


作者

     Pace Willisson,
     Paul Borman


歴史

     doscmd は BSD/386 に初めて登場しました。

FreeBSD 4.4                    January 30, 1995                    FreeBSD 4.4

ABELNET VPSサービス