最近、dosboxでDOS/V環境を作ってturbo pascal V3やubasic(dos/V用32bit)などで遊んでいたけどスピード的にもう一つな感じがしていたのでvirtualboxに誰かにもらったpc-dosを入れてみた。
これ速くていい!下はその様子(実行マシンはVostro 270s)
共にUBASIC32でmandelbrot集合を描画するプログラムを同時に動かしている。左がDOSBoxで右がvirtualBox
virtualBoxのほうは32秒ほどで完了する。手持ちの有償ソフトや開発系のフリーソフトが少ないので環境はおのずと似たものになる。DosBoxだとc-driveを普通のwindowsのフォルダとして用意してmountするだけなのでファイルのやり取りは恐ろしく楽。
virtualbox側はLANにもつながらないし仮想の共有ファルダもないのでEditDisk165とかで仮想フロッピー経由で渡すしかない。これはちょっと面倒
しかしそのデメリットを補って余りあるスピードである。
※この投稿を記述している間にDOSBoxのほうが終わった。結果は・・
DOSBox : 1224652ms vs VirtualBox : 31602ms = 38.75 : 1
同じバイナリーを実行してこの差である。
※ただしDOSBoxの肩を持って書くわけでもないけどこの速度遅すぎるわけでもない
そもそもUBASICそのものが速度を求める用途ではなく多倍長整数演算とか数学的な分野を平易な文法のBASICで探るような目的のものなのでこのソフトの速度をもってすべてを語るのは無理がある
しかしたまたまDOS系の言語で比較的楽にmandelbrot集合を描けるのが他に手持ちで見当たらなかったのでこれで比較する結果になった。
他にも優位な速度比較をするアプリケーションはあると思う。
例えばDOS時代のCPUスコアでもあったcpubenchで見ると
DOSBox : VirtualB = 00.43 : 00.01 という結果。
この00.43秒という数字は
ここを見るとCPU的にはDX(120)ぐらいの値となる。
(そうするとvirtualbox側は486DXで4800MHzってこと?!!)
DOSエミュ
比較 | | | | | | |
| 【実行環境】 | core i5-8500 | | | core i3-3240 |
| |
| msdos player | DOSBox | virtualBox | msdos player | DOSBox | virtualBox |
cpubench
(score) | 160.69 | 345.5 | 計測不可 | 215.96 | 431.87 | 6910 |
| cpubench(sec) | 0.43 | 0.2 | -1min59.9sec | 0.32 | 0.16 | 0.01 |
| UBASIC32で | | | | | | |
mandelbrot
(ms) | --- | 453131 | 16259 | --- | 1224652 | 31602 |
madelbrot
(ratio) | --- | 27.867 | 1 | --- | 75.324 | 1.944 |
因みにDOSBox-xの互換性はfilmtnのcust系で設定ファイルとファイラ実体とのバージョンが違うっていうエラーが出て実行できない。
n88basicはカラーが出なくてscreen 3してもcolor文が白黒モードの指定になってしまう。mandelbrot好きには致命的。もう少し成長するまでは触らないことにしたい。(ってことは時々完成度を見るって・・)
当面はDOSのエミュはVirtualBoxでと言うことにしておこう。
※と言いつつも普段はlsi-c試食版をDOS開発のメインとしてノートPCのDOSBoxのc-driveにlsi-cも配置しておいて普段は
msdos-playerを使ってwindows側からコンパイルをしておくようなことを考えている。
こんなことが出来るDOSBox+msdos-playerも捨て難いものだ。
(200501)
ちょっと嫌な事発見。DOSBoxのlsi-c試食版+簡易グラフィックライブラリのサンプルのコンパイルが出来ない。makeがエラーを吐くのだ。virtualboxのPCDOS7Jだと問題なくコンパイルできてオブジェクトも破綻なく実行できるのに。すこし原因を調べてみよう。
system debuggingもまた楽し
これも一つのエミュの世界