how to run classic dos demos
|
古典DOSデモを動かすにはPCの環境をととのえる必要があります。(ここでいう古典デモとは90年代半ばのデモをさします)
まずPCのハードウエアですが、ISAスロットにサウンドカードgravis ultrasound (gus)とsb16が刺さっていることが理想です。(DOS上でPCIスロットのサウンドカードでは、混乱をまねきます)GUSには1MBのRAMが乗っている必要があります。GUS、SB16は当時のイントロで音を出すための標準的な環境です。
また、グラフィックカードはnvidiaのものが必要です。(voodooグラフィックカードはいくつかのビデオモードを支援しないのであまり使われません。)
上記以外に、et6000やs3 trio64グラフィックカードでもunivbe aka scitechディスプレイドクターを使用して見ることが出来ます。(scitechディスプレードクターはグラフィックカード上でサポートしていないビデオモードをソフトウエアでサポートします。)
DOSのバージョンは6.2xか7.1を使用します。(このDOSバージョンはFAT32フォーマットをサポートします)
参考までに私のconfig.sysとautoexec.bat(msdos 7.1)を掲示します。
config.sys: SHELL=C:\NDOS.COM @C:\DOS\NORTON\NDOS.INI
/P COUNTRY=049,,C:\DOS\COUNTRY.SYS FILES=70 BUFFERS=20 FCBS=1,0 STACKS=0,0 [Menu] menuitem=Himem+UMBPCI,
Himem/UMBPCI mit CD & Maus (628K) menuitem=LessMemory, Himem ohne
ANSI/Maus (609K) menuitem=EMM386+CDROM, Himem/EMM386 mit CD & Maus
(623K) [Himem+UMBPCI] DEVICE=C:\DOS\HIMEM.SYS /NUMHANDLES=66
/TESTMEM:OFF DEVICE=C:\DOS\UMBPCI.SYS
/I=E000-EFFF DEVICEHIGH=C:\DOS\CDROM.SYS
/D:MSCD000 DEVICEHIGH=C:\DOS\ANSI.SYS LASTDRIVE=G DOS=HIGH,UMB [LessMemory] DEVICE=C:\DOS\HIMEM.SYS
/NUMHANDLES=66
/TESTMEM:OFF LASTDRIVE=G DOS=HIGH [EMM386+CDROM] DEVICE=C:\DOS\HIMEM.SYS
/TESTMEM:OFF DEVICE=C:\DOS\EMM386.EXE RAM MIN=32768 X=B000-B7FF
D=64 DEVICEHIGH=C:\DOS\CDROM.SYS
/D:MSCD000 DEVICEHIGH=C:\DOS\ANSI.SYS LASTDRIVE=G DOS=HIGH,UMB
ANSIドライバーを利用すると2k以上のメモリを、universal atapiのCD-ROMドライバーを利用すると5k未満のメモリを消費します。command.comの替わりにndos.comを使用しています。4dosはdosと同じコマンドフォーマットを提供します。(編集注:4dosとはndos.comと同意と考えてよい)
通常は[himem+umbpci]または[emm386+cdrom]の設定で使用しています。UMBPCI(homepage)は586以上のマシンでemm386を使用せず、アッパーメモリブロックを確保できます。しかしそれはチップセットに依存するので、ドキュメントをよく読んでください。
`LessMemory`コンフィグレーションは一部のデモでコンベンションメモリーの大きさにより起動できない場合に利用します。
autoexec.bat: SET INTERWAVE=C:\ULTRASND\IW.INI SET IWDIR=C:\ULTRASND SET
ULTRASND=240,5,7,11,11 C:\ULTRASND\IWINIT.EXE SET
ULTRADIR=C:\ULTRASND SET BLASTER=A220 I7 D1 H5 P330 T6 SET
SOUND=C:\SB16 SET MIDI=SYNTH:1 MAP:E C:\SB16\SBMIXER -d -g30 -c20 -b10
-q SET PATH=C:\;C:\DOS;C:\ULTRASND;C:\DOS\NORTON;E:\FILES\PCPACK SET
NU=C:\DOS\NORTON SET DIRCMD=/P SET TEMP=E:\ goto
%config% :Himem+UMBPCI LH MSCDEX /D:MSCD000 /L:H /M:4 LH CTMOUSE LH
KEYBOARD goto ende :LessMemory KEYBOARD goto
ende :EMM386+CDROM LH MSCDEX /D:MSCD000 /L:H /M:4 LH
CTMOUSE KEYBOARD goto ende :ende SET CONFIG= ALIAS /R
ALIASES PROMPT=(%%@dosmem[K]K) $p$g
'CTMOUSE'のマウスドライバー(シリアルマウスを使用)は3k以上メモリを、'KEYBOARD'のキーボードドライバー(ドイツ製キーボード!)は1k未満のメモリを消費します。
'SBMIXER'はawe64までのsoundblasterを検知しsb16の初期設定とmixerをセットアップします。sb16のポート220h、irqは7、hdmaは1です。私のsb16は安価なクローンなのでリアルhigh dmaをサポートしていません。
ultrasound cardはgus pnp(interwave)です。(もしgusのサウンドボードのみの場合は、sbのエミュレーションのためportアドレスを220hにする必要がある)いくつかのデモでirqが7以上で問題が出る場合はirqを5にしてみる。
最後の2行はndos用の設定なので、command.comまたは4dosを使用している場合は削除してよい。紹介したドライバ類(ansi, cdrom, mouse, UMBPCI v3.62)と、sbmixerは私のdos toolboxに入っています! |
windowsでdosデモを起動する
|
windows環境ではdosデモをみることは難しい。ここではいくつかの方法を紹介する。リアルモードを要求されないいくつかのDOSデモを見ることは可能である。DOSデモを起動した時に'runtime
error 200'が出るならば、CPUを減速するツール'turbo'(download)することで起動できることがある。(これについての詳細はさらに下を見てください)
もし、あなたのPCが高速であれば、dosエミュレータであるdosbox(linux他多くのプラットフォームに移植されている)を利用することもできる。dosboxは規則的にバージョンアップしており、すでに多くのdosデモ作品が起動する(gusサウンドにも対応している)。
Win9x:
--------
msdos.sysを以下のようにする:
;圧縮されたHDはいくらかのスペースを取ります
DblSpace=0
DrvSpace=0
;high memoryにcommand.comをロードします(必要であればdrvspace.binも)
LoadTop=1
;DOS7でリアルモードを必要とするDOSデモを起動するならばこの設定が必要です。
;windowsを起動すると、コマンドプロンプトになります。
BootGUI=0
config.sysに以下の2行を追加します。(私の例の場合):
;自動ロードを無効にすることにより、メモリ消費を減らします。
dos=NoAuto
;win9xであればifship.sysはupper memoryに配置します。これはdos 7では必要ない
devicehigh=c:\windows\ifshlp.sys
notes:win98ではemsメモリーをemm386のnoemsパラメータを付けることにより無効にします。そして上の例のように'auto ram'を使用します。ドイツ製のwin95osr2(aka win95b)のhimem.sysはパッチをあてないと40kbのメモリーを消費します。パッチはネットから簡単にみつかるでしょう。
Win2000/XP:
----------------
することはあまりありません。win2k上ではDOSのエミュレーションなので、soundcardなどのドライバーを使用することが出来ません。しかし、VDMSoundとGUSemu32を利用することで、sb16とgravis ultrasoundが利用できます。
メモリの設定は(emm,dpmiなど)_default.pifファイルで変更することができます。
config.ntは以下の行があること:
rem 可能であればhighメモリにdosをロードします
dos=high, umb
devicehigh=%SystemRoot%\system32\himem.sys
rem EMMに'loadhigh'、'devicehigh'コマンドのときupper memoryに格納するように設定します。
EMM = RAM
files=20 |
「ランタイムエラー 200」
|
pentium200より速いマシンでデモを起動すると'runtime error 200'となることがあります。これらのデモはほとんどturboまたはborland pascal 7で作られています。理由はコンパイラーのバグです。その問題を解決するにはいくつかの方法があります。ひとつはBIOS設定でCPUのL1,L2のキャッシュを無効にすることでいくつかのデモは動くでしょう。他の方法は、PC減速ユーティリティのmo'sloなどを利用してデモを起動する方法があります。現在のPCでtritonの'crystal dream 2'を起動するには上記バグを修正するのが唯一の起動方法です。バグを修正するには'tppatch'という小さなプログラムを使用します。(tppatch)(編集注:tppatchとは200エラーとなるpascal 7で作成されたexeファイルのパッチプログラム 使用方法はtppatch [プログラム.exe])これは、実行ファイルが圧縮されていない場合に限ります。圧縮されている場合は、cyberwareのunpacker(cup)を使用して.cup拡張子に解凍することができるので拡張子を変更してパッチをあてます。その後'unlite'というプログラムで再度圧縮exeファイルに戻します。実行ファイルが1つではない場合があります。(例:proximaのデモ'static hype'は1つのexeファイルだが.dtaという実行ファイル含まれている)その場合デモを実行する前にすべてのファイルにパッチを当てます。(編集注:この辺の翻訳は適当ですのであしからず・・・)
msdos 6.2xならば'RdosUMB'をよく利用します。これを使用することによりemm386をupper memoryブロックに配置できます。多くのメモリーを消費するデモでこの設定が必要となります。私がmsdos6.2からmsdos7.1に切り替える前まで、RdosUMBを利用したhimem設定でcdromや他のドライバーをロードした場合でも618kの空メモリーを確保できました。
記事中で紹介したツール類は(moslo,tppatch,cup,unlite,RdosUMB...)はここからダウンロードできます。 |
|