DOS 不支援 USB?



贊助商連結


ulimie
2007-03-21, 08:54 AM
DOS 不是說不支援 USB 嗎?

先看 BIOS 的 Boot Menu:
我在 USB 接了一個 FUJITSU 80GB 硬碟, 然後一個讀卡機, 上面各接滿了 MS, SM, CF, MiniSD 卡, 共四片.
MiniSD 被認為是 HD, 其他的被指認為 Floppy (不公平待遇?)
FUJITSU 80GB HD 是硬碟...
然後我在 IBM 那台 HD 灌了 DOS 7.1(WIN98Se 的), 選擇這個 1st IDE slave Boot 進純 DOS 去:
http://xs413.xs.to/xs413/07123/IMG_2820.GIF

C:\>ver
MS-DOS 7.1 [Version 7.10.1999]

C:\>type config.sys
DEVICE=\DOS\HIMEM.SYS /testmem:off
DEVICE=\DOS\EMM386.EXE ram AUTO
DOS=HIGH,UMB
devicehigh=\DOS\oakcdrom.sys /d:CDROM
FILEShigh=60
BUFFERShigh=40

C:\>type autoexec.bat
@echo off
path=c:\;c:\dos
LH mscdex /d:CDROM
LH SMARTDRV

C:\>vol b:
Volume in drive B is CF
Volume Serial Number is 0000-0000

C:\>vol c:
Volume in drive C is 601
Volume Serial Number is 2F6F-16E9

C:\>vol d:
Volume in drive D is MINISD
Volume Serial Number is B414-0C05

C:\>vol e:
Volume in drive E is USB_HD_1
Volume Serial Number is 1918-13E8

C:\>vol f:
Volume in drive F is 602
Volume Serial Number is 1125-1EE9

C:\>vol g:
CDR101: Not ready reading drive G
Abort, Retry, Fail?a

結果:
1. D: = MINISD;  E: = USB_HD_1 (USB FUJITSU HD) 表示 USB Device 在 dos 沒掛 driver 之下, 可以讀寫(寫入也確認過了).
2. G: 是 CDROM, 沒放光碟片...
3. CF 卡被指定為 b:, 其他的卡抓不到.
4. A: 還是指向實體的軟碟機.

不是說 DOS 不支援 USB 嗎? 為什麼又可以讀寫?

贊助商連結


ojs
2007-03-21, 09:39 AM
首先,先查清楚是誰說dos不支援usb的,在去看他所說的不支援是在什麼情況下

在早期的bios不把usb轉向當作可移動磁碟的時代,dos下的sub外接設備要用panasonic的一個驅動,一樣可以讀寫,現在的bios直接把usb用轉向,大都可以在ms系統下讀寫usb設備了,不轉向的是少數

mus000
2007-03-21, 11:32 AM
那是 BIOS 的功能,跟 DOS 無關。

新的 BIOS 有一個功能叫做支援使用 USB 裝置開機的功能。

因為這個功能,可以把 USB 裝置上的一些儲存體,模擬成 FDD/ZIP/HDD (軟碟/ZIP/硬碟),來達到可以使用 USB 裝置開機的目地。

使用這個功能有一些容量限制,模擬成 FDD/ZIP 的,必需符合 FDD/ZIP 的容量限制,超過這個容量的,只會被當成硬碟來模擬。另外,USB儲存裝置本身必需支援可開機功能才行。

樓主的結果應該這樣來看:
b: 軟碟 (CF模擬成軟碟/ZIP)
c: 硬碟
d: 硬碟 (SD卡模擬成硬碟)
e: 硬碟 (USB-HDD 模擬成硬碟)
f: 硬碟

以上都是模擬後的,在DOS下是被當成軟硬碟來使用的,DOS本身並沒有抓到額外的 usb 裝置。

所以在 DOS 下,要使用 USB 設備,需要有額外的BIOS支援或驅動才行,或是軟體本身就內建支援該裝置的驅動功能。

hao0708
2007-03-21, 12:22 PM
DOS 不支援是因為之前BIOS不支援USB的儲存裝置

現在主機板都支援USB儲存裝置座開機動作

BIOS抓的到 DOS怎可能讀不到

ulimie
2007-03-21, 12:53 PM
那是 BIOS 的功能,跟 DOS 無關。
我比較同意這個觀點.

要說 是誰說dos不支援usb的, 這就難說了, 或者, 如下網站開宗明義的一番話, 也許可以瞭解一下,
不管怎樣, 就 MS 來說, DOS 沒改是事實, 在過去, 一樣的 DOS 7.1 要像我現在在上則貼出來的那樣, 根本是不可能的事,
事情不會從過去的不支援突然改變為支援, 因為 BIOS 改變而讓 USB Device 可用, 那是另一回事, 可用, 不表示是 DOS 支援?
http://www.stefan2000.com/darkehorse/PC/DOS/Drivers/USB/
USB Resources
As a general rule, USB is NOT supported in DOS. There are companies and individuals who are producing USB stacks for DOS, but nothing practical yet for the everyday DOS user. I hope to include all of the software and information available on this page since this topic does tend to pop up a lot on discussion boards.


那是 BIOS 的功能,跟 DOS 無關。
使用這個功能有一些容量限制,模擬成 FDD/ZIP 的,必需符合 FDD/ZIP 的容量限制,超過這個容量的,只會被當成硬碟來模擬。另外,USB儲存裝置本身必需支援可開機功能才行。

就容量來說, 好像也不是這樣, 這些卡, 除了 MINISD 是 16MB 被列入 HD, 其他的都是 128MB, 比較大的反而被列入 Floppy, 不能開機是事實, 大概是這個讀卡機沒法支援 boot...

ulimie
2007-03-21, 12:57 PM
BIOS抓的到 DOS怎可能讀不到
依我的上例, MS, SM 卡 BIOS 就抓得到, DOS 就是讀不到.
一樣在同一個 CARD READER, SD, CF 就讀得到, 大概是這個讀卡機的問題.

我猜一件事, 不知對不對, 我現在沒那麼多東西來 TEST:
Boot Menu 把這些東西分為三大類: removable, HD, CDROM, 每種只限定只能存在 4 項, 所以, 讀卡機的另三個就被擠到 Removable 去了?

然後, removable 通常只有 a:, b:, 所以, SM, MS 就又被擠掉了?

如果哪天, 我把 所有的 IDE/SATA, 讀卡機全部接滿, 會變成什麼樣子?
請問有誰的 Boot Menu 內容比較多的嗎? (超過 4 個的?)

-----Test-----
好, 沒東西可 test 增加, 我試減少:
首先把 Fujitsu USB HD 拔掉, 結果, CF 沒換到 HD 這邊來.
再拔掉 CF 卡, 這時, B: 變成 MS 卡了.

補充一下主機板資料:
主機板 ID 01/04/2007-NFORCE4-SLI-M2N4-SLI-00
主機板名稱 Asus M2N4-SLI
BIOS 類型 Award
Award BIOS 類型 Phoenix - AwardBIOS v6.00PG
Award BIOS 訊息 ASUS M2N4-SLI ACPI BIOS Revision 0802
系統 BIOS 日期 01/04/07

mus000
2007-03-21, 02:34 PM
removeable 的裝置可以是 FDD 也可以是 ZIP。但是不會被當成HDD。
FDD 容量比較小, 1.2MB 1.44MB 2.88MB 等等。更小的就不說了。
但是 ZIP 的容量,是有 128MB 的。往上還有 256MB,512MB 甚至更高容量的 ZIP。只不過,BIOS 支援模擬 ZIP 開機的功能,好像沒那麼大就是了,這得去翻各家主機版手冊看它的功能說明支援到哪個容量。

而硬碟的話,容量可大可小,16MB 也能當硬碟用的。
早期硬碟容量也是從很小的幾MB開始成長的。DOS不可能不支援小容量硬碟的。

所以,假設能自由選定的話,(這個得看主機板手冊功能了)
希望它被當成 FDD/ZIP 的,請選在 removeable 項目。但是只能 a: b: 兩台而已。其它被忽略。
希望它被當成 HDD 的,請選在 HDD 項目裡。編號從 c: 開始排。
應該不會出現在光碟機項目裡使用的。

至於編號的問題,軟碟機的編號是被限制在 a: b: 而已。
硬碟可以從 c : 一直到 z:,光碟也一樣。但是硬碟加光碟最多 24個編號。
dos 的預設 device 編號只到 e:,在 config.sys 裡加個設定,
lastdrive=z
這樣可以讓它到 z:。
不過硬碟機編號會怎麼排,因為年代久遠,不記得了。
只記得在 DOS 下的硬碟編號,有固定排法,無法像現在的 2K/XP/2K3 這樣自訂編號。

因為編號會被打亂,除了測試與實驗功能之外,一般不會這樣子用的。