Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to index page
Thread view  Board view
RayeR(R)

Homepage

CZ,
06.01.2013, 21:20
 

Change UDMA mode on WD400BB drive (Users)

Hi,
I'm trying to setup one DOS computer with Pentium Pro 200, Asus P6NP5 (intel 440FX + PIIX3 chipset). I put there 40GB WD400BB drive that supports max. UDMA133 that was enabled on the drive. The onboard IDE on this PC supports only UDMA33. Unfortunatelly for some reason UDMA don't work at all. Various info tools tells me that UDMA is not enable. And my benchmark shows me poor ~5MB/s reading. I suspect that this is because the drive was enabled for UDMA66+ and it fall back to safe non-DMA mode. I used latest UIDE under DOS 6.22 but it doesn't have any effect on speed. I remember there exist DGLGUDMA tool from Western Digital but latest version is crashing in all conditions:
http://rayer.g6.cz/1tmp/CWERR.TXT
I tried on different 2 PCs, bare DOS - no memory manager and himem.sys
I found older version but it doesn't support this drive. I also tried Hitachi Feature Tool but it cannot change UDMA mode on this drive. If I run new DGLGUDMA under DOSBox it doen't crash but don't find any drives, of course.
Do you know about any universal UDMA tool or how to overcome CauseWay crap error? Eg. if possible to strip the CW and replace by another extender...

---
DOS gives me freedom to unlimited HW access.

Japheth(R)

Homepage

Germany (South),
06.01.2013, 22:41

@ RayeR
 

Change UDMA mode on WD400BB drive

> Do you know about any universal UDMA tool or how to overcome CauseWay crap
> error? Eg. if possible to strip the CW and replace by another extender...

No. There is IDECHECK http://www.japheth.de/Download/DOS/IDECHECK.zip which theoretically allows to set the UDMA mode for reading the HD ( us params /DMA /U:x ) - no guarantee.

---
MS-DOS forever!

RayeR(R)

Homepage

CZ,
06.01.2013, 23:40

@ Japheth
 

Change UDMA mode on WD400BB drive

> No. There is IDECHECK
> http://www.japheth.de/Download/DOS/IDECHECK.zip which
> theoretically allows to set the UDMA mode for reading the HD ( us params
> /DMA /U:x ) - no guarantee.

Thx for reply. I tested it and I wonder how can I get so incredible low speed with /dma, just 46kB/s :-P It doesnt matter what dma mode I select and if uide is loaded or not. Here I teste bare DOS, see logs:

C:\UTILS\HDD\IDECHECK>IDECHECK.EXE 0

64 kB read buffer at linear address 20000
Int 13 extensions: version=21, API support bitmap=1
Int 13: cylinder/head/sector: 1022/254/63
Int 13: sectors: 16354044
PCI v2.0c BIOS found
PCI 0009 ( 0): vendor ID=8086, device ID=7010
PCI 0009 ( 4): command register=5, status register=280
PCI 0009 ( 8): revision ID=0, class code=10180
PCI 0009 (32): Busmaster DMA controller port base=E808
flushing cache ... ok
reading partition table ... ok
start: 22:32:41,20

   Sector
---------
   117760

end: 22:32:48,50
time: 0:00:07,30 for 117760 sectors -> 8065 kB/sec


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

C:\UTILS\HDD\IDECHECK>IDECHECK.EXE 0 /dma /u:3                                   
                                                                             
64 kB read buffer at linear address 20000                                   
Int 13 extensions: version=21, API support bitmap=1                         
Int 13: cylinder/head/sector: 1022/254/63                                   
Int 13: sectors: 16354044                                                   
assuming legacy IDE controller, ATA port base=1F0, device=0, IRQ=14         
PCI v2.0c BIOS found                                                         
PCI 0009 ( 0): vendor ID=8086, device ID=7010                               
PCI 0009 ( 4): command register=5, status register=280                       
PCI 0009 ( 8): revision ID=0, class code=10180                               
PCI 0009 (32): Busmaster DMA controller port base=E800                       
flushing cache ... ok                                                       
reading partition table ... ok                                               
waiting for device ready ... ok                                             
identify device ... ok                                                       
seek cylinder 0 ... ok                                                       
CFG: cylinder/head/sector: 16383/16/63 - 16514064 sectors                   
CFG  60: LBA sectors: 78163247                                               
CFG  49=2F00: DMA=1, LBA=1                                                   
CFG  51=   0: PIO mode 0-2 timing: 0                                         
CFG  63=   7: Multiword DMA modes supported: 0 1 2                           
CFG  64=   3: Advanced PIO modes supported: 3 4                             
CFG  53=   7: UDMA valid=1                                                   
setting UDMA mode ... ok                                                     
CFG  88= 13F: UDMA modes supported: 0 1 2 3 4 5, current 0                   
CFG  85=3469: Write cache: enabled                                           
CFG  47=  10: max. multiple sector value is 16                               
CFG  59=  10: current multiple sector value: 16 (valid setting)             
start: 22:33:55,90                                                           
                                                                             
   Sector                                                                   
---------                                                                   
     1408                                                                   
                                                                             
end: 22:34:11,11                                                             
time: 0:00:15,21 for 1408 sectors -> 46 kB/sec

I don't know if usefull, here's output of DMACHK.COM:

ISA-DMA-Checker for UMBPCI V1.13, (c)1999-2004 by Heiko Nocon, Uwe Sieber
http://www.uwe-sieber.de

 North-Bridge:  Vendor: 8086  Device: 1237
 South-Bridge:  Vendor: 8086  Device: 7000

C000-C3FF : write protected
C400-C7FF : write protected
C800-CBFF : read/write ok, ISA-DMA failed
CC00-CFFF : read/write ok, ISA-DMA failed
D000-D3FF : read/write ok, ISA-DMA failed
D400-D7FF : read/write ok, ISA-DMA failed
D800-DBFF : read/write ok, ISA-DMA failed
DC00-DFFF : read/write ok, ISA-DMA failed
E000-E3FF : read/write ok, ISA-DMA ok
E400-E7FF : read/write ok, ISA-DMA ok
E800-EBFF : read/write ok, ISA-DMA ok
EC00-EFFF : read/write ok, ISA-DMA ok

---
DOS gives me freedom to unlimited HW access.

Japheth(R)

Homepage

Germany (South),
07.01.2013, 06:07

@ RayeR
 

Change UDMA mode on WD400BB drive

> Thx for reply. I tested it and I wonder how can I get so incredible low
> speed with /dma, just 46kB/s :-P

:-)

> time: 0:00:07,30 for 117760 sectors -> 8065 kB/sec

Hey, this is 8 MB/sec for standard INT 13h, not just 5 MB.

> CFG 63= 7: Multiword DMA modes supported: 0 1 2
> CFG 64= 3: Advanced PIO modes supported: 3 4
> CFG 53= 7: UDMA valid=1
> setting UDMA mode ... ok
> CFG 88= 13F: UDMA modes supported: 0 1 2 3 4 5, current 0

Obviously setting the UDMA mode wasn't successful, else it would have displayed:

CFG 88= 13F: UDMA modes supported: 0 1 2 3 4 5, current 3

---
MS-DOS forever!

RayeR(R)

Homepage

CZ,
08.01.2013, 03:25

@ Japheth
 

Change UDMA mode on WD400BB drive

> Hey, this is 8 MB/sec for standard INT 13h, not just 5 MB.

Yes, seq. sector reading, I checked some file copy so DOS overhead.

> Obviously setting the UDMA mode wasn't successful, else it would have
> displayed:
>
> CFG 88= 13F: UDMA modes supported: 0 1 2 3 4 5, current 3

This is what confused my IDE info utility because UDMA valid bit was set but none of current DMA mode bits was set. Some elcheapo buggy bios? :) I flashed latest official I found, but maybe good to try biospatcher if fix something...

---
DOS gives me freedom to unlimited HW access.

RayeR(R)

Homepage

CZ,
11.01.2013, 01:20

@ RayeR
 

Change UDMA mode on WD400BB drive

I tried biospatcher but it ruined my bios that hung during POST. I manually reflashed the chip with original version and got same result. So I return back to rainbow's pathched bios (fix for support up to 128GB HDD). I also tried to test under WinNT 4.0 with UniATA driver and got 12MB/s reading, it's slightly better but still slow, this HDD should do ~40MB/s seq. reading.
Maybe the PIIX3 controller is crappy, I could test Kouwell 571H PCI controller with HPT370A...

---
DOS gives me freedom to unlimited HW access.

RayeR(R)

Homepage

CZ,
11.01.2013, 10:45

@ RayeR
 

Change UDMA mode on WD400BB drive

OMFG, I was wrongly convinced that PIIX3 supports UDMA33 but it doesnt! I looked in datasheet and it supports only MWDMA, Transfer Rates to 22 MB/Sec.
So it seems that extra PCI controller is needed for better speed...

---
DOS gives me freedom to unlimited HW access.

Rugxulo(R)

Homepage

Usono,
07.01.2013, 14:20

@ RayeR
 

Change UDMA mode on WD400BB drive

> http://rayer.g6.cz/1tmp/CWERR.TXT
> Do you know about any universal UDMA tool or how to overcome CauseWay crap
> error? Eg. if possible to strip the CW and replace by another extender...

I doubt changing Causeway would help, but you should be able to use the newer one from Devore's FTP or preferably from latest OpenWatcom, e.g. "CWSTUB.EXE blah.exe" or (with latest, non-OW 9.1.2) "DOS32A.EXE blah.exe". Even D3X's "stubx -s blah.exe" might work, but I dunno.

RayeR(R)

Homepage

CZ,
08.01.2013, 02:52

@ Rugxulo
 

Change UDMA mode on WD400BB drive

> I doubt changing Causeway would help, but you should be able to use the
> newer one from Devore's FTP or preferably from latest OpenWatcom, e.g.
> "CWSTUB.EXE blah.exe" or (with latest, non-OW 9.1.2) "DOS32A.EXE blah.exe".
> Even D3X's "stubx -s blah.exe" might work, but I dunno.

I tried to restub the file with CWSTUB 4.04 but still keep crashing, probably some different reason... D3X and DOS/32A doesn't know file format (image header is "3P" 33 50 h). I also don't know what is this (I used my exeinfo tool).

---
DOS gives me freedom to unlimited HW access.

Arjay(R)

11.01.2013, 02:00

@ RayeR
 

Change UDMA mode on WD400BB drive

I'm happy to take a quick look out of interest. Do you have a legal d/l link to DGLGUDMA ? I'm not presently that familiar with causeway which is partly one of the reasons why I'm interested in just taking a look out of interest.

> D3X and DOS/32A doesn't know file format
> (image header is "3P" 33 50 h).
> I also don't know what is this (I used my exeinfo tool).
I looked at CWSTUB.EXE contained with CW349BIN.ZIP and noted those bytes at 6253h in that file and confirmed that the signature is defined as "3P" within 3PLIB.ASM contained inside CW349.ZIP (source). 3PLIB is a util for modifying the stub and there is a document 3PLIB.TXT which explains how the stub and 3PLIB works.

I wondered if it makes sense to compile a version of it with more debug and swap that into the EXE? I'm too tired right now (also without all my usual EXE tools to hand) but my subconscious is telling me that it's EXE format isn't quite right but I need a look again when I've not been awake for as long as I have right now...

Arjay(R)

11.01.2013, 02:18
(edited by Arjay, 11.01.2013, 02:33)

@ Arjay
 

Change UDMA mode on WD400BB drive

> isn't quite right but I need a look again when I've not been awake for as
> long as I have right now...
Ah yes. Relocation offset (18h) is set to 20h not 40h and in the case of cwstub.exe which no doubt gets updated NewExe offset is to 03FC068Ch (behond end of file by default). Yeah, I'd prefer to look at the other main EXE first.

[edit-bit more reading]
Yeah would be interesting to do 3plib /l DGLGUDMA.EXE (or whatever it's called) but also review with CWD.EXE (Causeway Debugger) "CWD DGLGUDMA.EXE" (e.g. CWD 3PLIB.EXE debugs the 3PLIB application - if anyone else wants to take a look).

RayeR(R)

Homepage

CZ,
11.01.2013, 03:53

@ Arjay
 

Change UDMA mode on WD400BB drive

> Yeah would be interesting to do 3plib /l DGLGUDMA.EXE (or whatever it's
> called) but also review with CWD.EXE (Causeway Debugger) "CWD DGLGUDMA.EXE"
> (e.g. CWD 3PLIB.EXE debugs the 3PLIB application - if anyone else wants to
> take a look).

I know that dlgudma will not help me so I lost interrest but here is it for you for studying :)
http://rayer.g6.cz/1tmp/dlgudma.zip

Signature: 5A4Dh ("MZ")
Header size: 32 Bytes
EXE/stub size: 47088 Bytes (92 blocks, 496 Bytes in last block)
Entire file size: 152233 Bytes
Extra data starts at offset: B7F0h
Extra data image type: unknown
Checksum: 0000h (may be unused)
Overlay number: 0 (main program)
Minimum required additional memory: 51680 Bytes
Maximum reserved additional memory: 1048560 Bytes
Code: Load_segment+0000:0000h
Stack: Load_segment+0009:03F0h
Relocation table: none

---
DOS gives me freedom to unlimited HW access.

Back to index page
Thread view  Board view
15108 Postings in 1358 Threads, 245 registered users, 10 users online (0 registered, 10 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum