切換
舊版
前往
大廳
主題

【懷舊】【心得】在 VirtualBox 上安裝 MS-DOS 6.22 ……

StudentC | 2020-03-03 23:42:32 | 巴幣 2 | 人氣 4440


今年(2022)決定把小屋的文章都修正一遍。

--------------------------------------------------------------------------------------

在裝了 VirtualBox Win98 然後沒能得到滿足之餘,依然是閒的有夠慌,就決定繼續往更古老的地方挖……裝起了古早的 MS-DOS 6.22 ……

首先是安裝……

下載來源:https://winworldpc.com/product/ms-dos/622
我下載的是 Microsoft MS-DOS 6.22 Plus Enhanced Tools (3.5-1.44mb)
以及最終的版本 Microsoft MS-DOS 6.22 (6.22.2220) (1994-05-09) Upgrade (3.5-1.44mb)

安裝過程很簡單,只要換幾次磁碟檔就可以了



然後是升級到最終版。因為這個是升級用,不能直接安裝,所以先裝好 6.22 開機,然後掛上升級版磁片,再轉到 A: 磁碟執行 setup.exe 程式。

這過程中會要求你切換一張 UNINSTALL 磁片。這在現再來說很簡單,只要在外頭主機複製一份磁片檔案,再置入就行了,反正以後也不會用到。我是把它改名為 null.img 。


然後就是不斷切換磁片檔……

一切順利的話,看到的版本應該是 6.22.2220 ,至於舊的 OLD_DOS.1 目錄可以砍了。


……然後麻煩的事情現在才要開始……

要玩 DOS 遊戲,大概有這幾個問題:

1、聲音

可以參考這兩篇文章
INSTALL & CONFIGURE MS-DOS 6.22 & WINDOWS 3.1 USING ORACLE VIRTUALBOX

Install MS-DOS 6.22 in a Virtual Machine for Fun and Profit
這兩篇的連結是一樣的,只是後面那篇比較簡化,只有 DOS 的部分。

dos-soundblaster16_driver
這是磁片檔,只要置入磁片之後執行安裝程式 install.exe 就可以了。


2022 編修:第二篇連結失效,所以劃掉了,改用第一篇裡面的吧……

ET4000 SVGA video driver Download
SoundBlaster 16 sound driver Download


2、滑鼠

滑鼠的驅動程式,在 DOS Update 裡面的第二片磁片裡面就有。不過似乎不會主動安裝?所以要手動解壓縮,置入第二片磁片,然後在命令列執行:
C:\> expand a:mosue.co_ c:\dos\mosue.com

如果你想找其他版本的滑鼠,可以到 WinWorld 底下找
https://winworldpc.com/product/microsoft-mouse/1x


3、光碟

光碟驅動程式,在聲音部分的第二篇裡面有,不過這個程式占用比較多的記憶體,所以我另外找了一個版本。

http://manmrk.net/tutorials/DOS/cdrom.htm裡面的
Oak Technologies Universal IDE CD-ROM Driver
(註:這兩個是 http 連結,而非 https ……加個 s 它就讀不到了……連結是 .exe 檔,自己用下載程式抓,不要用瀏覽器點……)

這是壓縮檔,所以要怎麼複製到 DOS 機裡面呢?這就比較麻煩了……
簡單一點的說,就是先裝好一部 VirtualBox XP 的機器,然後將 DOS 機的硬碟掛上去。


因為 VirtualBox XP 跟主機的共享檔案做得比較好,而 VirtualBox DOS ……就算能做到大概也很麻煩,這樣轉移比較簡單。


只要複製 VIDE-CDD.SYS 到 DOS 目錄就可以了。

然後在 config.sys 裡面加上:
DEVICE=C:\DOS\VIDE-CDD.SYS /D:MSCD001

在 autoexec.bat 裡面加上:
C:\DOS\MSCDEX.EXE /D:MSCD001

就能夠開啟 CD-ROM 的支援。


4、記憶體

記憶體的調整,大概是 DOS 底下最麻煩的東東了……這裡就簡單寫一下我用的設定。

config.sys
--------------------------------------------------------------------------------------
[MENU]
MENUITEM=EMS_1 Use EMS
MENUITEM=XMS_1 Use XMS
MENUITEM=XMS_2 Use XMS & CD-ROM
MENUDEFAULT=EMS_1,7

[COMMON]
DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\HIMEM.SYS

[EMS_1]
DEVICE=C:\DOS\EMM386.EXE RAM 15360

[XMS_1]
DEVICE=C:\DOS\EMM386.EXE NOEMS

[XMS_2]
DEVICE=C:\DOS\EMM386.EXE NOEMS
DEVICEHIGH=C:\DOS\VIDE-CDD.SYS /D:MSCD001

[COMMON]
DEVICEHIGH=C:\SB16\DRV\CSP.SYS /UNIT=0 /BLASTER=A:220
DOS=HIGH,UMB
FILES=50
FCBS=40
BUFFERS=40,8
STACKS=9,512
SHELL=C:\DOS\COMMAND.COM C:\DOS\  /e:2048 /p
--------------------------------------------------------------------------------------

稍微說明一下,
部分的 Game 會用到 EMS ,而且開太大反而還會出問題,所以 VirtualBox 設定上雖然開到 32 MB ,但那一行我就只開到 15 MB 。(因為開到完整 16 MB 以上好像就會出問題?)

至於 FILES FCBS BUFFERS STACKS 這四個,就看情況再手動調整吧。有些遊戲要求的不同。

FILES=可以同時訪問的檔案數量
FCBS=可以同時開啟的檔案控製塊 (FCB) 數量
BUFFERS=磁碟緩衝區數量,從屬快取記憶體中的緩衝區數量
STACKS=堆疊數量,每個堆疊的大小
SHELL=指定 DOS 使用的命令列程式的名稱,可以使用其他的如 4DOS 等。


autoexec.bat
--------------------------------------------------------------------------------------
@ECHO OFF
PROMPT $p$g
PATH C:\DOS
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
SET SOUND=C:\SB16
SET BLASTER=A220 I5 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:E
C:\SB16\DIAGNOSE /S
C:\SB16\MIXERSET /P /Q

GOTO %CONFIG%

:EMS_1
GOTO END

:XMS_1
LH C:\DOS\SMARTDRV.EXE /X
GOTO END

:XMS_2
LH C:\DOS\SMARTDRV.EXE /X
LH C:\DOS\MSCDEX.EXE /D:MSCD001

:END
LH C:\DOS\MOUSE.COM
LH C:\DOS\DOSKEY.COM
--------------------------------------------------------------------------------------

稍微說明一下,
EMS 的設定,因為記憶體不足,所以沒有執行 SmartDRV.EXE ,這樣 EMS 可以有 596K ;
而 XMS 的那組有 613K ; CD-ROM 的那組有 596K ,應該都能適用大部分的程式了……
………………
…………
……
.
明天再來寫 VirtualBox DOS 跟 DOSBox 的比較……

--------------------------------------------------------------------------------------

在 03/12 寫完了 Win7 跟 WinXP 之後,回頭看看 DOS ,突然覺得好像少了什麼……

5、顯示卡

後來想想應該是少了顯示卡的部分。然後去找了找,
VirtualBox 用的是 VBE (VESA BIOS Extensions)標準,
所以既然 VirtualBox 不提供 DOS 的 VirtualBox Guest Additions ,就找相通的來試試看吧。

然後又去找了找,並逐一測試,最後發覺
只有 SciTech 所出的通用的顯示驅動 UniVBE5.1 能夠在 VirtualBox DOS 使用,
其他版本就算是較新的 UniVBE6.7 也……(關於 UniVBE 的說明

註冊碼就在裝好的 univbe.exe 程式裡面,用位元碼編輯器像是 HxD 尋找 BADE 字串,
會發現有三組,可選用任一組註冊即可。(記得好像是: 1000-BADE9C00-00003

不過後來想想大部分的 DOS Game 其實並不需要顯示卡的驅動程式。

因為大部分早期的 DOS Game ,在需要 256 色的時候,都會選擇進入 VGA 13h 模式,因此並不需要。而後期開始會進入 SuperVGA 模式的遊戲,也會用它們編譯時自帶的驅動程式(也就是 DOS4GW ,例如模擬城市),所以也並不需要。

創作回應

SamW8891
太棒了!竟然在2022年找到這篇文章...幫了我好多忙
2022-02-08 12:19:08

更多創作