DOSBoxはロングファイルネームには非対応らしく、最近のファイルはコンパイルが通らなかった。
(設定ファイルの設定により対応できるのかは、不明。)
DJGPPのgxx(C++コンパイラ)で、コンパイルしようとしたら色々と問題が出た。
libstdcxxがリンク出来ない。
LIBSTD~2などと変名されているので-lSTD~2とオプション指定すればOKだが、DOSBox上だとキーボードから~が入力出来ない…。
いや、そもそもの原因は、ファイル名の問題。
純粋な8.3ファイル名形式のファイル名に、書き直す必要がある。
8.3ファイル名形式以外のファイル名を扱う全てで…。
面倒なので、違う問題解決方を探る事にした。
別のDOSエミュレーターdosemuを発見。
![](https://blogimg.goo.ne.jp/thumbnail/4c/c5/b070585a2a0057cb623ad7e5df6efb7b_s.jpg)
dosemuの特徴。
速い。
設定ファイルで、詳細の設定が可能。若干難しい。/etc/dosemu/dosemu.conf
ロングファイルネームも扱える。
DOSBoxの特徴。
多くの画面モードに対応している。
設定ファイルでの設定方法が分かりやすい。$HOME/.dosbox/dosbox-0.73.conf
8.3ファイル名形式を厳守。
これで、都合に合わせ使い分けられる。(今後DOSを使うかどうかは別として…。)
dosemuのグラフィックモードは、8ビット256色パレットモードと32ビットカラーモード対応。
DOSBoxはdosemuよりも多くに対応していて、16ビットや24ビットカラーモードにも対応している。
2~3日の間、DOSBoxを必死になって使っていた自分にとってみれば、dosemuは驚くほど速い。
(DOSBoxはほぼデフォルトで使っている。速度も古いPCのエミュレート状態だったのだろうか?。設定により変えられるのかは不明。)
【追記】DOSBoxのコンフィグファイル中のcycles=maxで処理速度が最大になる。デフォルトはcycles=autoだった。
Allegroのコンパイル時間、DOSBoxだと約半日、dosemuでは約2~3分でコンパイルが終了する。
メモ。
DJGPPのコンパイラは、go32-v2という32ビットDOSエクステンダを使って32ビットで動いている。
go32-v2はコンパイラに同梱されているが、go32-v2が必要とするcsdpmi*bは同梱されていない。
csdpmi*b.zipは、以下にあった。
http://www.delorie.com/pub/djgpp/current/v2misc/
csdpmi7b.zip が現在の最新。
(DJGPPのサイト。初めは気が付かなくて探し回った。)
![](https://blogimg.goo.ne.jp/img_emoji/kaeru_thank.gif)
dosemuでAllegroをコンパイルする時に、
out of memory allocating 65536 bytes after a total of ....
という、メモリー不足のエラーが出た。
以下のサイトを参考にして解決。
http://tinkering-is-fun.blogspot.com/
![](https://blogimg.goo.ne.jp/img_emoji/kaeru_thank.gif)
dosemuのDOS環境下の設定のconfig.sysを($HOME/.dosemu/drive_c/config.sys)
files=40
fcbs=40,0
shell=c:\dos\command.com c:\dos /e:2048 /p
[訂正、追記:2013-04-14] shellhigh=z:\command.com /e:2048 /p
とし、
dosemu自体の設定の/etc/dosemu/dosemu.confで、
$_dpmi = (0x10000)
とした。
収穫。
Allegroというマルチプラットフォーム2Dゲームライブラリがすごい。
DOS環境下でもLinux(X Window System)環境下でも、同じソースで同じ結果が得られる。
(設定ファイルの設定により対応できるのかは、不明。)
DJGPPのgxx(C++コンパイラ)で、コンパイルしようとしたら色々と問題が出た。
libstdcxxがリンク出来ない。
LIBSTD~2などと変名されているので-lSTD~2とオプション指定すればOKだが、DOSBox上だとキーボードから~が入力出来ない…。
いや、そもそもの原因は、ファイル名の問題。
純粋な8.3ファイル名形式のファイル名に、書き直す必要がある。
8.3ファイル名形式以外のファイル名を扱う全てで…。
面倒なので、違う問題解決方を探る事にした。
別のDOSエミュレーターdosemuを発見。
![](https://blogimg.goo.ne.jp/thumbnail/4c/c5/b070585a2a0057cb623ad7e5df6efb7b_s.jpg)
dosemuの特徴。
速い。
設定ファイルで、詳細の設定が可能。若干難しい。/etc/dosemu/dosemu.conf
ロングファイルネームも扱える。
DOSBoxの特徴。
多くの画面モードに対応している。
設定ファイルでの設定方法が分かりやすい。$HOME/.dosbox/dosbox-0.73.conf
8.3ファイル名形式を厳守。
これで、都合に合わせ使い分けられる。(今後DOSを使うかどうかは別として…。)
dosemuのグラフィックモードは、8ビット256色パレットモードと32ビットカラーモード対応。
DOSBoxはdosemuよりも多くに対応していて、16ビットや24ビットカラーモードにも対応している。
2~3日の間、DOSBoxを必死になって使っていた自分にとってみれば、dosemuは驚くほど速い。
(DOSBoxはほぼデフォルトで使っている。速度も古いPCのエミュレート状態だったのだろうか?。設定により変えられるのかは不明。)
【追記】DOSBoxのコンフィグファイル中のcycles=maxで処理速度が最大になる。デフォルトはcycles=autoだった。
Allegroのコンパイル時間、DOSBoxだと約半日、dosemuでは約2~3分でコンパイルが終了する。
メモ。
DJGPPのコンパイラは、go32-v2という32ビットDOSエクステンダを使って32ビットで動いている。
go32-v2はコンパイラに同梱されているが、go32-v2が必要とするcsdpmi*bは同梱されていない。
csdpmi*b.zipは、以下にあった。
http://www.delorie.com/pub/djgpp/current/v2misc/
csdpmi7b.zip が現在の最新。
(DJGPPのサイト。初めは気が付かなくて探し回った。)
![](https://blogimg.goo.ne.jp/img_emoji/kaeru_thank.gif)
dosemuでAllegroをコンパイルする時に、
out of memory allocating 65536 bytes after a total of ....
という、メモリー不足のエラーが出た。
以下のサイトを参考にして解決。
http://tinkering-is-fun.blogspot.com/
![](https://blogimg.goo.ne.jp/img_emoji/kaeru_thank.gif)
dosemuのDOS環境下の設定のconfig.sysを($HOME/.dosemu/drive_c/config.sys)
files=40
fcbs=40,0
[訂正、追記:2013-04-14] shellhigh=z:\command.com /e:2048 /p
とし、
dosemu自体の設定の/etc/dosemu/dosemu.confで、
$_dpmi = (0x10000)
とした。
収穫。
Allegroというマルチプラットフォーム2Dゲームライブラリがすごい。
DOS環境下でもLinux(X Window System)環境下でも、同じソースで同じ結果が得られる。
![](https://blogimg.goo.ne.jp/img_emoji/rabi_happy.gif)