VOGONS


oakcdrom.sys revisited

Topic actions

First post, by elianda

User metadata
Rank l33t
Rank
l33t

For simple configurations I often use in DOS oakcdrom.sys from Win9x and it shows with the default parameters always

Transfer Mode : Programmed I/O

However if one looks into the file there appears also PCI Bus Master DMA as Transfer Mode:

oakcdrom.png

Someone has by chance the documentation for the cdrom driver or knows what parameter to use to enable PCI Bus Master transfer mode with oakcdrom.sys ?

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 1 of 4, by elianda

User metadata
Rank l33t
Rank
l33t

So I checked out the code and parameters are:

/V - verbose mode
/Q - quiet mode
/BM[number] - bus master mode, optional number can be 0 - 2
/BMS - bus master mode with ???
/S,[number] - swap IDE devices?!?, number can be 0, 1
/PIO[number] - set PIO mode, optional number can be 0 - 4
/P:[number],[number] - specify IDE port (hex) and IRQ

So why does BM mode does not work on modern IDE Controllers?

oakcdrom.sys has a vendor check at 9E3D that checks against PCI Vendor ID, valid are
107F - Data Technology Corporation
10AD - Symphony Labs
8086 - Intel

If your IDE controller is from one of these vendors then the /BM switch has effect.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 2 of 4, by mrau

User metadata
Rank Oldbie
Rank
Oldbie

thanks for sharing
did You try to disable the check?

Reply 3 of 4, by elianda

User metadata
Rank l33t
Rank
l33t

I have not tried a patched version yet as I am in intense preparation of the long night of computer games, packing everything up...

Next week I can give it a try.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 4 of 4, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

Very interesting, indeed!
I tried OAKCDROM.SYS /BM on QEMU which emulates Intel 440BX/PIIX4 chipsets and I got the display "PCI Bus Master DMA".

To my understanding, Bus Master DMA wasn't very popular and reliable under DOS because of the popularity of 386 Memory Managers which run DOS in V86 mode. DOS is just a dumb OS that lives happily within 0-640KB address space. When 386 Memory Managers are present, the 0-640KB address space can be virtual addresses, where peripherals DMA would always require physical addresses. The VDS specification was meant to resolve the issue with 386 Memory Managers but it didn't manage to go very far. As true protected mode OSes (Win9x/NT) emerged, 386 Memory Managers were soon to be things of the past and paving the ways for true protected-mode driver models.