ラベル #cmd dos の投稿を表示しています。 すべての投稿を表示
ラベル #cmd dos の投稿を表示しています。 すべての投稿を表示

1988年10月29日土曜日

[機器] DOS/V用周辺機器を無理矢理PC-98で使う

骨までしゃぶるPC-98
更新日時:01/06/20
ここでは、PC-98の活用法や、本来動作保証外であるDOS/V用周辺機器を無理矢理PC-98で使うテクニックをご紹介いたします。
なお、お決まり文句ですが、ご覧になっている方のパソコン環境で、ここに書いてある通りにいくとは限りません。
なお、改造になど際しては、取り扱いを誤ると、パソコンや部品を破損したり、大切なデータを失ってしまうことがあります。
当方ではいっさい責任を持てませんので、ご了承ください。
【2003/12/3追記】
現在、PC-98シリーズはすでに手放してしまったので、更新予定はありません。
Sound Blaster 16/98をWindows98で使う方法
I・O DATA UIDE-DVをUIDE-98化する方法
98MULTI CanBeでCD-ROMを載せ換える方法
PC-98で動作するDOS/V用PCIボード
(C)Buchiko (Yoshikuki Takeuchi)

骨までしゃぶるPC-98
http://www.geocities.jp/yo_take_uchi/old/PC-98.html







 

Sound Blaster 16/98をWindows98で使う方法
Windows3.1時代に登場したSound Blaster 16/98は、Windows98では動作保証外になっています。
Windows98 CD-ROM内のドライバを使用すると、必ずハングアップしてしまいます。
(MicrosoftのFAQでも、Sound Blaster 16/98は動作保証外と示しています)
しかし、Windows95 CD-ROM(PC-98シリーズ用)内のドライバを使えば、Windows98でもSound Blasterを使用できますので、ご紹介しておきます。
【用意するもの】
Sound Blaster 16/98シリーズ(あらかじめPC-98に差しておきます)
Windows 95のCD-ROM(PC-98シリーズ用)
【手順】
(1) Windows98を起動します。
(2) Windows95 CD-ROM(PC-98用)を、CD-ROMドライブに挿入します。
(3) マイコンピュータから、CD-ROMドライブ(ここではCドライブとします)を右クリックし、
 [開く]を左クリックして、CD-ROMの内容を表示させます。
(4) C:\Win95フォルダ内の"PRECOPY2.CAB"を右クリックし、”表示”を左クリックします。
  すると、PRECOPY2.CABの内容が新しいウィンドウで表示されます。
(5) PRECOPY2.CABの内容が表示されているウィンドウの中の、"wave.inf"を右クリックし、
  ”抽出”を左クリックします。
  「フォルダの参照」ダイアログが表示されますので、適当なフォルダ(例:マイドキュメント)
  を指定し、wave.inf を抽出します。
(6) コントロールパネルの「ハードウェアの追加」を表示させます。
  [次へ]を2回クリックします。
  「プラグアンドプレイ以外のハードウェアが自動的に認識されます・・・」という表示がでたら、
  [いいえ(一覧から選択する)]を選び、[次へ]をクリックします
(7) 「インストールするハードウェアの種類を選んでください」と表示されるので、
  [サウンド、ビデオ、及びゲームのコントローラ]を選び、[次へ]をクリックします。
  「ディスク使用」をクリックすると、「ディスクを使用」ダイアログが開きますので、
  「参照」を押し、先ほどwave.infを解凍したフォルダ(例:A:\My Documets)を選び、
  [OK]をクリック、ダイアログが閉じたら、再度[OK]をクリック。
  その中に、"Creative Sound Blaster 16 (PC-98)" がありますので、これを選択します。
(8) 「次の設定でハードウェアをインストールできます・・・」と、設定内容が表示されます。
  実際の設定と異なる場合がありますが、気にせず、[次へ]をクリックしてください。  
(8) ドライバを読み込むときに、"Windows98のCD-ROMを挿入してください"と
  表示されますが、ここではWindows95 CD-ROMのフォルダ(例:C:\WIN95)を選択してください。
(9) ハードウェアのインストールが完了すると、「再起動しますか?」というダイアログが表示されますが、
  ここでは[いいえ]をクリックします。
(10) コントロールパネルの「システムのプロパティ」で、Sound Blaster 16(PC-98)の設定
  (割り込み、DMA、I/Oアドレス)を、他のデバイスと重ならないように変更してください。
(11) Windowsを再起動します。
(12) コントロールパネルの「マルチメディア」の設定で再生・録音のデバイスを変更してください。

骨までしゃぶるPC-98
http://www.geocities.jp/yo_take_uchi/old/PC-98.html









I・O DATA UIDE-DVをUIDE-98化する方法
【背景】
以前、I/O DATAから、UIDE-98(M) (PC-98用)と UIDE-DV(M) (DOS/V用)という
ULTRA ATAボードが販売されていました。
M付きとMなしの違いは、8.4GB超のHDDが使用できるかできないかの違いであり、
MなしでもBIOS(ROM)をアップグレードすれば、8.4GB超のHDDを使用できます。
現在は、PC-98用とDOS/V用が統合され、ULTRA ATA 66対応の UIDE-66 として販売されています。
(UIDE-98&DVとUIDE-66とのハードウェア互換性はありません)
最新のDOS/V機は、HDD I/FがULTRA ATA 66 ないし ULTRA ATA 100に対応してます。
また、いろんなボードメーカーからも、ULTRA ATA 66/100に対応させるボードが安価に売られています。
今となっては時代遅れとなったUIDE-DV(M)は、中古市場やYahoo! オークションで格安で売られています。
一方、標準で ULTRA ATA I/FがサポートされていないPC-98シリーズは、
マザーボードが交換できないなどの制約もあり、未だにUIDE-98(M)の需要があるため、
UIDE-DV(M)に比べて高値で(\3,000~\5,000)売られています。
そこで、安価に出回っているUIDE-DVをUIDE-98化してしまおう、というもくろみです。
実は、UIDE-98とUIDE-DVはROM内容以外、ハードウェアは全く同じですので、
ROMの中身をUIDE-98用に更新することによりUIDE-98化できます。
当方は、かなり危険な方法をとりました。
(どこかの掲示板では、ROMが刺さっている状態でもROM変更できるという
 メッセージもありましたが、当方ではその方法では不可能でした。)
万一故障が起きても、当方では責任を持てませんので、あしからずご了承ください。
【用意するもの】
UIDE-DV(M)
フロッピーディスク2枚
【UIDE-DVをUIDE-98化する方法】
この作業はすべてPC-98上で行います。
(1) I/O DATAのホームページで、UIDE-98Mのサポートソフト(最新版V1.20)をダウンロードし、フロッピーディスクへ解凍(展開)します。
(2) あらかじめ、PC-98版Windows95/98の起動ディスクを用意しておきます。MS-DOS(V6.2)でもかまいません。
(3) UIDE-DVのROMを外し、電源を切ってあるPC-98のPCIスロットに刺します。
  (UIDE-DVにROMが載っているとPC-98が起動できないため)
ROMを外すときは、ROMの挿入方向をメモしておいてください。このときは、まだUIDEボードにHDDを接続しないでください。
(4) Windows95/98の起動ディスクを用いて、PC-98を起動します。起動完了すると、フロッピーがAドライブになります。
(5) 電源が入った状態のままで、ROMをUIDE-DVに刺します。
  ROMを刺す方向や、ピンのずれに注意してください。
  差し間違えると、ROMを破損します。
(6) フロッピーをサポートソフトに換えます。
サポートソフトにある、DOSディレクトリ内のROMUP.EXEを起動し、ROM更新します。
  A:\ > CD \DOS[ENTER]
  A:\DOS> ROMUP[ENTER]
(7) ROM更新が完了したら、起動ディスクを用いて再起動し、ROM BIOSが正常に動いているか確認します。
(8) ROM BIOSの正常動作を確認したら、電源を落とし、UIDEボードにHDDなどを接続します。
(9) PC-98をHDDから起動し、Windows95/98が起動したら、サポートディスクを用いてUIDE-98のドライバを読み込ませます。
(10) Windowsを再起動し、コントロールパネルのシステムのプロパティで、ハードディスクコントローラの下に "I-O DATA Ultra ATA Bus MasteringControler" が
表示されればOKです。
(10) UIDE-98の設定変更方法は、ROM BIOSがHDDを認識しにいっているときに
[CTRL]+[GRPH]+[Z] ([CTRL]と[GRPH]を押しながら[Z]を押す)
です。
(11) すべてのHDDやCD-ROMを、PC-98標準のI/FからUIDEにつなぎ換え、PC-98のシステムセットアップメニューにて([HELP]キーを押しながらリセット)、
内蔵固定ディスクを[切り離す]に変更すると、割り込みIRQ9(INT3)を開けることができます。
たとえば、当方にあるPC-9821Xa12/K12の場合、UIDEボードをPCIスロット1(2個あるうちの内側)に刺すと、内蔵グラフィック(TGUI-9680XGI)と割り込みを共有できます。  

骨までしゃぶるPC-98
http://www.geocities.jp/yo_take_uchi/old/PC-98.html












98MULTI CanBeでCD-ROMを載せ換える
当方では以前、98Multi CanBe PC-9821Cx2を使用していました。
このマシンでは、CD-ROMはSONY製が使用されています。
CanBeのCD-ROMを交換する際、同じSONY製のCD-ROM同士ならば、トレイのフロントパネルを交換し使用できますので、見栄えがきれいです。
他メーカーのCD-ROMを使用する場合は、トレイのパネルを加工しないと、本体のパネルに引っかかる可能性があります。
また、Windows3.1や95/98に入っているリアルモード用のデバイスドライバ(Windows3.1ならNECCD.SYS、Windows98ならNECCDM.SYS)をそのまま使用できます。
当方ではCDU611(24倍速?)を使用していました。
ただし、I/Fの仕様上、速くなったという感じはあまりしませんでした(笑)。

骨までしゃぶるPC-98
http://www.geocities.jp/yo_take_uchi/old/PC-98.html





 

PC-98で動作するDOS/V用PCIボード
動作保証外ですが、PC-98でも動作するDOS/V用PCIボードを
紹介します。当方では、PC-9821Xa12/K12で確認しています。
モデムボード MELCO IGM-PCI56KH
サウンドボード XWAVE6000 (YAMAHA YMF744チップ搭載)

骨までしゃぶるPC-98
http://www.geocities.jp/yo_take_uchi/old/PC-98.html






1983年9月8日木曜日

[言語] DOSコマンド

[言語] DOSコマンド
最低限の MS-DOS
■ 前書き
今日では MS-DOS のみを使う必要性はほとんどないが、時には Microsoft Windows の DOS 窓を使う必要性もあり、また DOS 窓から、コマンドを打ち込むほうが手っとり早いこともあるので、簡単に MS-DOS の説明をする。
UNIX との比較もすることになるが、この場合はコンソールでの UNIX と思ってもらってもよいし、 DOS 窓と見かけが随分似ている XWindow の (kterm などの) 仮想端末からの UNIX のコマンド入力との比較であると思ってもらってもよい。
■ MS-DOS の用語
ごく基本的な用語の説明をする。 Windows ではファイル名に大文字、小文字を使うことができるが、両者を区別しない。
MS-DOS のコマンドも原則的に大文字と小文字の区別をすることはないが、以下 UNIX と比較するためにも、MS-DOS のコマンドを小文字で表記する。 (UNIX では大文字、小文字を厳密に区別するが、システムコマンドは通常小文字である。)
プロンプトとコマンドライン
MS-DOS や UNIX などで、コマンドをキーボードから入力できる状態のときに端末などに表示されるマークを プロンプトという。
たとえば (UNIX ではシェルによってプロンプトの形が変化して)
 >  MS-DOS
% UNIX (csh)
# UNIX (bash)
プロンプトの直後にコマンド (命令) を入力することができ、この行のことをコマンドラインという。なおコマンドを計算機に与えるためには最終的にリターンキー (あるいはエンターキー) を押す必要がある。
ドライブ名
Windows (MS-DOS) では接続されているハードディスク装置、フロッピーディスク装置、CD-ROM 装置などには必ずドライブ名 (a から z) が付けられる。例えば
        * a   フロッピーディスク装置
        * c   Windows のシステムがあるハードディスク
となっており、異なる装置には異なるドライブ名が割り当てられている。コマンドラインから
d:
のように打ち込めば、ドライブ d に移動する。
UNIX にはドライブがない。UNIX では複数のハードディスクなどが接続されている場合にも、見かけ上、一つのハードディスク (より正確には唯一つのファイルシステム) があるだけである。このファイルシステムは UNIX をインストールする時点で決まり、あとでハードディスクを増設することが不可能である。増設するためには最初からインストールをやりなおさなければならない。これが Windows と違う点である。
ディレクトリー (or フォルダー)
各ドライブにはディレクトリー (or フォルダー) と呼ばれるものを作って、ファイルを分類整理できる。例えば
ディレクトリーの作成例
d:\
  |-- archiver
  |          |-- work
  |
  |-- work
  |-- usr
        |--local
        |--bin
        |--mule2
        |--share
のような構造を持つ。上の例では d ドライブ全体が一つのディレクトリーで、その中に幾つかのディレクトリーがあり、更に各ディレクトリーの中に幾つかのディレクトリーがある (あるいは作ることができる)。
階層が一番上のディレクトリーをルートディレクトリー と呼び \ で表示する。
ディレクトリーと呼ぶのは MS-DOS や UNIX の方式で、 MS-Windows ではフォルダーと呼ぶ。ファイルを整理するための階層構造という点からは、 フォルダーと呼ぶ方がすっきりするかもしれない。
先にも説明したように UNIX ではドライブがなく。ファイルシステムは唯一つである。そのためルートディレクトリーは唯一つしかない。UNIX ではルートディレクトリーを / で表記する。 (円記号 \ は UNIX では常に逆スラッシュ\になるが、MS-DOS のディレクトリー表示の \ は UNIX ではスラッシュ / である。)
ディレクトリーの絶対指定と相対指定
下の例では d:\work は赤で表示したディレクトリーで、 d:\usr\local は黄色で表示したディレクトリーである。
このようにディレクトリーを表示する方法をディレクトリーの 絶対指定という。
d:\
  |-- archiver
  |          |-- work
  |
  |-- work
  |-- usr
        |--local
        |--bin
        |--mule2
        |--share

ディレクトリー構造が上のようになっているときに d:\archiver において
 \work  赤のディレクトリー
 work   緑のディレクトリー
となる。すなわち先頭に \ などを付けずに、ディレクトリー指定をすれば、それより下位のディレクトリーを指定することになる。
これをディレクトリーの相対指定という。ディレクトリーの相対指定にはこれ以外に
 .   現在のディレクトリー(カレントディレクトリー)
 ..  現在のディレクトリーの一つ上のディレクトリー
がある。カレントディレクトリー (current directory) は DOS 窓ごとに決まる。DOS 窓は何個も開くことができて、この各々の窓ごとに現在のドライブ、ディレクトリーが定まってくる。
従って Windows ではシステム全体のカレントディレクトリーは定まらない。UNIX においても同様である。
また UNIX でのディレクトリーの絶対表記は例えば /usr/local のようになる。
■環境変数
普通、変数はプログラム内部で有効なだけであるが、 環境変数と呼ばれる変数はシステムで有効な変数で、すべてのプログラムから参照することができる。これは任意に設定できるが、普通のプログラムと同様に役目の決まった予約変数がある。
例えば、環境変数 PATH はコマンドを探すときのディレクトリーのリストを示す。例えば、
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
とすれば、コマンドを
c:\windows, c:\windows\commannd
の2つのディレクトリーを探すことになる。
以上の設定はコマンドラインから打ち込んでもよいが、普通は c:\autoexec.bat に書き込むのが普通である。
どのようにして、コマンドラインのパラメータや環境変数が読み取られているかを知っている方がコマンドの動作の仕組を理解しやすいことがあるので、参考までに以上の変数を獲得する C 言語サンプルをつける。 (UNIX 上の C 言語は原則的に英語版であるため、以下のプログラムを UNIX で動かすためには日本語を英語にしたほうがよい。)
C プログラムからパラメータ、環境変数を獲得するサンプル
#include
#include
void main(int argc, char *argv[]){
    printf("コマンドラインから手渡された文字列の数は %d です。\n", argc);
    printf("コマンドラインから手渡された最初の文字列は %s です。\n", argv[1]);
    printf("環境変数 PATH の値は %s です。\n", getenv("PATH"));
}
■MS-DOS のコマンド
コマンド 意味 対応する UNIX コマンド
mkdir ディレクトリー作成 (make directory) mkdir
cd ディレクトリー移動 (change directory) cd
copy ファイルのコピー (copy) cp
dir ファイル名の一覧 (directory) ls
以下に、より詳しく説明します。
mkdir
mkdir ディレクトリー名
でディレクトリーを作成します。以下の 2 つの使用方法では違って結果が起きることに注意します。
  mkdir work 現在いるディレクトリーの下に work を作る (相対指定)
  mkdir \work 現在いるドライブのルートディレクトリーの下に work を作る (絶対指定)
下の図の d:\archiver にいるときには、第 1 の方法でできるディレクトリーが緑色、第 2 の方法でできるディレクトリーが赤色です。
d:\
  |-- archiver
  |          |-- work
  |
  |-- work
cd
cd ディレクトリー名
でディレクトリーを移動します。以下の 2 つの使用方法では違って結果が起きることに注意します。
  cd work 現在いるディレクトリーの下の work に移動 (相対指定)
  cd \work 現在いるドライブのルートディレクトリーの下の work に移動 (絶対指定)
下の図の d:\archiver にいるときには、第 1 の方法による移動先ディレクトリーが緑色、第 2 の方法による移動先ディレクトリーが赤色です。
d:\
  |-- archiver
  |          |-- work
  |
  |-- work
copy
copy A B
の構文で、原則的にファイル A をファイル B にコピーしますが、
    * A がファイルのとき、ファイル B がなければ ファイル B ができて、中身が A のコピーになります。
    * A がファイルのとき、ファイル B がすでにあれば B の内容が A のコピーになります (上書きされる)。
    * A がファイル、 B がディレクトリーであれば、ファイル A のコピーをディレクトリー B の中に作ります。
    * A, B が共にディレクトリーであれば、 A の中のファイルを全部 B の中にコピーします。
B がディレクトリーのとき、
copy *.txt B
によって、現在のディレクトリーにあるファイルで、拡張子が .txt であるファイルがすべて B にコピーされます。 * は任意の文字列を意味し、トランプのワイルドカード (どのカードにも一致するカード) の意味で使用されます。
UNIX のコピーコマンドは cp で、名称が少し違いますが、tcsh などでは * は同様な意味を持っています。
dir
dir
で現在いるディレクトリーのファイル名の一覧を表示します。対応する UNIX のコマンドは ls です。
■シェル (shell)
MS-DOS ではコマンドを解釈するプログラム (command.com) によってコマンドが処理されていました。 Windows NT では command.com 自身が動いているのではなく、これをエミュレート (emulate, 真似) する cmd.exe によって、コマンドが処理されます。
UNIX ではコマンドを解釈するプログラムはシェル(shell) と呼ばれ、そのため Windows の cmd.exe や command.com のことを一般的にシェルと呼ぶ傾向があります。
このように呼ばれる理由の一つに、現在では UNIX シェルを DOS 窓で使用できるようになったこともあります。つまり cmd.exe, command.com は Windows の DOS 窓で動かすことができるシェルの一つに過ぎないわけです。
バッチファイル (シェルスクリプト)
常に同じ一連のコマンドをコマンドラインから打ち込む必要がある場合には、普通はファイルに一連のコマンドを書いておいて、このファイルを実行させるのが普通です。このようなファイルは MS-DOS では拡張子に .bat が付いていて バッチファイル と呼ばれます。 UNIX では同様なファイルはシェルスクリプト ( shell script) と呼ばれ、 MS-DOS のバッチファイルのこともシェルスクリプトと呼ばれることがあります (UNIX ではシェルスクリプトには特別な拡張子は付きません)。
UNIX のシェルスクリプトには if 文などの条件文を使うことができ、一方 MS-DOS のバッチファイルにはこのような機能がほとんどありませんから、バッチファイルのことをシェルスクリプトと呼ぶことは少し分不相応な面があります。
autoexec.bat
autoexec.bat は MS-DOS が起動時に実行するバッチファイルです。ここでは普通、環境変数を設定します。例えば
autoexec.bat の例
SET PATH=%PATH%;d:\archiver;d:\usr\local\bin
のようにします。環境変数 PATH の値 (これは文字列です) をバッチファイル内で使用する場合には %PATH% とします。従って上の autoexec.bat の意味はすでに値が設定されている環境変数 PATH の値 (文字列) の後ろに ;d:\archiver;d:\usr\local\bin を付け加えるものです。
UNIX にも同様なファイルがあります。シェルによって違いますが、csh (C シェル) を使用している場合には、 .cshrc が autoexec.bat と同じ役目を果たします。例えばコマンド検索パスの設定は次のようになります。
.cshrc のサンプル (一部分)
set path = (. /usr/local/bin /usr/lib /users/bin $path)
$path は autoexec.bat の %PATH% と同じ役目をします。
色々なシェル
UNIX のシェルで Windows に移植されているものに、次があります。
 sh  角藤版 pLaTeX に同梱
 bash  Cygnus GNU-Win32
 tcsh  Virtually UN*X!
Cygnus GNU-Win32 に関しては
    奥村晴彦, LaTeX2e 美文書作成入門, 技術評論社
に説明があります。
mule for Win32 が Windows 95 の command.com で動作が不安定の場合には、 bash, tcsh を使用した方がよいようです。設定方法などは
    mule for Win32 の FAQ
を参照してください。
5. 標準入出力
標準入出力の考えは C 言語をある程度知っていないといけません。ここでは標準入出力の考えを C 言語のサンプルプログラムで説明します。標準入出力の考えは DOS でも UNIX でも変りません。
リダイレクト
次のようなプログラムを考えます。
sample.c
#include
void main(){
    int i;
    scanf("%d", &i);
    printf("%d\n", 2*i);
}
中身は単に数値を入力して、2 倍して出力するだけのものです。この場合の scanf は実は標準入力から入力する命令で、 printf は標準出力に出力する命令です。通常は標準入力はキーボードで、標準出力はディスプレーになっていますが、これをファイルなどに切り替えることができます。例えば中身が次のようなファイル
test.dat
15
を用意して、コマンドラインから
sample のようにすれば、入力が test.dat に切り替わり、30 がディスプレーに表示されます。出力に関しても同様で
sample result.dat
とすれば、ファイル test.dat から入力され、ファイル result.dat に出力されます。以上の方法を入出力のリダイレクト (redirect = 向きを変えること) といいます。一般にプログラムで入出力がリダイレクトできるかどうかは、プログラムの書き方で決まってきます。
パイプライン
今 2 つのプログラム A, B があって、
A | B
のようにコマンドラインに打ち込むと, A の標準出力が B の標準入力となります。このときの縦棒は A の標準出力を B の標準入力に流し込むためのパイプあるいはパイプラインと呼ばれます。標準入出力の時のサンプルを使用すれば
sample とすれば、ディスプレーに 60 が表示される。
以上、パイプラインは DOS でも UNIX でも使用することができますが、違いがあります。DOS のパイプラインはディスク上の一時ファイルを経由するようです。従って A | B の構文では事実上 A の処理が終了するまで、 B の処理が始まりません。これに反して UNIX ではオンメモリーで処理をし、 A | B の構文では A, B が連結した状態で動きます。そのため場合によっては UNIX の方が圧倒的に速さを見せることになります。

MS-DOS 入門
http://mail2.nara-edu.ac.jp/~asait/latex/msdos.htm#section22