DOS下使用USB CD-ROM

取得USB CD-ROM 的DOS驅動程式

在上面的網頁中主要是取得DSUE.exe這個驅動程式。

這些則是有關DSUE的使用方式

 

不知有多少人以為DOS不支持USB設備。因為USB設備標準是在Windows 95之後才制定的,而當時DOS的老東家微軟早已決定放棄繼續發展其MS-DOS了。這樣一來,當您想在DOS下操作USB設備的時候,往往只能望洋興歎了。即使您使用的系統是Windows,當Windows崩潰要制作備份或恢複數據時,平時使用的USB硬碟等USB設備也都成了擺設。
幸好微軟並不能決定一切,Pocketec公司開發的DUSE就為我們提供了在DOS下對USB存儲設備(USB硬碟、軟式磁碟機、光碟)的支持,不過它目前還不支持較一般的USB ThumbDrive(即USB碟)。若要在DOS下驅動USB的USB碟,請使用Motto Hairu驅動程式。另外,如果想在純DOS下使用其它USB設備,如USB滑鼠、USB列印機等,則可以使用其它的USB驅動程式,如USB_Link中的OHCI/UHCI,以及USB4DOS等,均可在本站的「驅動程式」中找到相應的連接,並可在「DOS使用中的一般問題解答(FAQ)」中看到一些DOS下使用USB設備的信息。
DUSE是DOS下的USB存儲設備的驅動程式,目前的最新版本為4.2,是今年剛推出的。它的用法很簡單,可在CONFIG.SYS中載入,也可以用它自帶的DUSELDR.COM程序來實現在DOS指令行下(包括批次處理文件中)的載入。例如在CONFIG.SYS中加上一行:DEVICE=C:\DOS\DUSE.EXE或在DOS指令行下執行DUSELDR C:\DOS\DUSE.EXE均可。
如果要載入的是USB光碟,除載入DUSE驅動程式外,還需執行光碟擴展驅動程式,通常可以使用DOS自帶的MSCDEX.EXE。DUSE的預設光碟設備名是USBCDROM,在DOS指令行下可以像下面這樣執行MSCDEX.EXE:

MSCDEX /D:USBCDROM /K

如果要更好地使用和控制DUSE,可以使用它提供的參數,DUSE的執行參數如下表:
(說明:以下為它的4.2版的參數,其最新4.4版又增加了EMUIRQ、UBNU、DDWAIT等參數。[]中表示可以省略的,以VER[BOSE]為例,VERBOSE是參數的完整寫法,而VER則是簡寫,即[]中的BOSE可以省略。)

1: VER[BOSE][=x], 允許顯示狀態信息。x的合法值是0、1和2。0表示不顯示信息,1表示顯示文本消息,2表示採用彈出式視窗顯示信息。預設值為0,如果輸入了VERBOSE參數但未設定x的值的話,預設值為2。 
2: WAI[T]=x, 設定顯示彈出式視窗到關閉此視窗的時間(以秒來計算)。x的合法值為0到255之間,預設值為3。只有當VERBOSE的值為2的時候此參數才有效。 
3: DRI[VES]=x, 設定允許的USB驅動器的數目。X取值從0到3。如果設定為0的話表示禁止USB驅動器的支持。預設值為1。 
4: NOD[RIVES], 禁止對USB驅動器的支持。此參數將覆蓋DRIVES參數設定。
5: NOC[DROM], 禁止對USB CD-ROM光碟的支持。 
6: MEM[POOL]=x, 設定分配附加的記憶體的大小。DUSE會根據USB控制器的數目、傳輸的速度等來進行計算,確定最佳分配記憶體的大小。而設定此參數將由用戶決定記憶體分配的大小,x值的服務機構為KB,合法值在0到128之間。 
7: XFER[SIZE]=x, 設定允許的最大傳輸緩衝區,x值服務機構為KB來。增加傳輸緩衝區將增強傳輸效能,但也需要佔用更多的記憶體。預設值為16。 
8: SEC[TORSIZE]=x, 設定USB驅動器的扇區大小。x的值用字元來表示。合法值為512,1024或2048,預設為512。 
9: APM[STATE]=x, 設定APM(進階電源管理)功能已啟用的USB設備中APM的級別。增加此級別將增加設備的效能,但會增電源源的損耗。下面列出了合法的APM的狀態x值: 
* 最大效能 FEh 
* 無掛起功能時中間的電源管理級別 81h-FDh 
* 無掛起功能時最小電源損耗 80h 
* 帶掛起功能時中間的電源管理級別 02h-7Fh 
* 帶掛起功能時最小電源損耗 01h 
x的預設值為0x7F。
10: INT[13], 啟用硬碟的INT13功能支持. 此功能對一些磁牒工具(如FDISK)提供支持。 
11: DMA[SAFE], 分配在資料傳輸中使用的DMA安全緩衝區。在執行一些需要從擴展記憶體中分配的緩衝的應用程式時此參數是必須指定的。 
12: NOU[HCI], 防止啟始化UHCI USB控制器。 
13: NOO[HCI], 防止啟始化OHCI USB控制器。
14: NOE[HCI], 防止啟始化EHCI USB控制器。
15: UHCN=x, 指定DUSE啟始化的UHCI控制器的最大數目為x。 
16: OHCN=x, 指定DUSE啟始化的OHCI控制器的最大數目為x。 
17: EHCN=x, 指定DUSE啟始化的EHCI控制器的最大數目為x。 
18: LATE[INIT], 啟用「延時啟始化」的功能. 當使用此功能時,驅動程式在DOS啟動階段從CONFIG.SYS文件中載入,但是直到在DOS指令中使用INIT參數執行DUSE時才會正式啟用USB設備,典型是在AUTOEXEC.BAT文件的結尾。可看下面的「延時啟始化」和「將DUSE當作應用程式來執行」的部分。
19: EBAR=x, 指定EHCI BAR(基位址暫存器)將被分配到記憶體中的位址。x的值必須是四位的16進制數字並帶上前綴0x,例如要將EHCI BAR的位址置為0xE000,那麼正確的指令行選項就是EBAR=0xE000。合法的位址區域在0xA000到0xF400之間。
20: OBAR=x, 指定OHCI BAR將被分配到記憶體中的位址。上面對EBAR的描述可套用於OBAR。 
21: UBAR=x, 指定UHCI BAR將被分配到記憶體中的位址。上面對EBAR的描述可套用於UBAR,不過它的合法的位址區域在0x0400到0xF400之間。
22: CDW[AIT][=x], 指示DUSE的啟始化要等到第一個USB CD-ROM光碟的磁碟代號被分配,或在x秒鐘之內不要結束。x的合法值在0到30之間。x=0是一個特殊值,它表示DUSE將一直等到第一個USB CD-ROM光碟的磁碟代號被分配或用戶按下鍵碟上的ESC鍵。如果沒有指定x的值的話,預設為x=0。 
23: CDD[EVICE]=<設備名>, 指定USB CD-ROM光碟的設備名。預設設備名是USBCDROM。
24: VFLOP[PY], 啟始化時建立一個啟動軟碟的虛擬映像。 

以下是使用一個指令行參數的例子。可參考此行把DUSE加入到CONFIG.SYS文件中: 

DEVICE=C:\DUSE\DUSE.EXE VERBOSE DRIVES=2 XFER=8 SEC=2048 NOCD 

此例子設定: 
* 顯示彈出式狀態視窗 
* 支持兩個USB驅動器
* 將最大傳輸緩衝區大小設為8K 
* 將預設扇區大小設為2048字元 
* 禁止對USB CD-ROM光碟提供支持

* 關於「延時啟始化」的功能
當在CONFIG.SYS中以LATE[INIT]參數來執行DUSE(例如使用DEVICE=DUSE.EXE LATE)時,要真正使用USB設備還需進行一次真正的啟始化。真正的啟始化的方法是在DOS指令行下(包括批次處理文件中)使用DUSE INIT指令。

* 關於「將DUSE當作應用程式來執行」的功能
將DUSE當作應用程式來在DOS指令行下執行時,DUSE只支持INIT參數。此參數在上面的「延時啟始化」以後於DOS指令行上載入,使得DUSE真正啟始化USB設備,以真正使用USB設備。

作者:Wengier

留言

這個網誌中的熱門文章

DOS Batch指令檔中如何記錄log資訊

用捷徑方式執行需帶入命令列參數的Windows Form程式

使用regular expression來match中括號(square bracket)