VOGONS


Throttle CD-ROM drive speed in DOS?

Topic actions

Reply 60 of 75, by jakethompson1

User metadata
Rank l33t
Rank
l33t
kahuna wrote on 2024-01-28, 07:50:

First of all if I open the tray and insert another cd, it goes back to full speed. Not a big issue as I can run cd be quiet again and problem solved.

If you have such a drive, after first ensuring everything works out with CDBQ, then the ATAPI CD-ROM driver in CONFIG.SYS can then be patched to reset the speed whenever the disc is changed and then never think about it again (outside Win9x at least). There won't be any error reporting or troubleshooting, so you need to make sure you're satisfied with CDBQ first.

Get XCDROM 2.2 source code from https://ibiblio.org/pub/micro/pc-stuff/freedo … om/xcdrom22.zip
And you need NASM (and possibly CWSDPMI if running on DOS); I used 2.16.03

Add these three lines marked with + in this location of the MultiS function as per the following diff:

--- XCDROM.A00	2006-02-07 21:02:00.000000000 -0500
+++ XCDROM.ASM 2025-05-17 21:59:00.000000000 -0400
@@ -704,6 +704,9 @@
MultiS mov di,[bx+AudAP-@] ;Point to drive variables.
cmp byte [di+11],0FFh ;Is last-session LBA valid?
jne MultiS1 ;Yes, proceed with request.
+ mov dword [bx+Packet-@],880500bbh ; 8x
+ call DoIOCmd ;Do "Set CD Speed" command.
+ call ZPacket ;Clean up.
mov byte [bx+Packet-@],043h ;Set "Read TOC" command.
inc byte [bx+PktLBA-@] ;Set "format 1" request.
call DoTOCIO ;Read first & last session.

Run xcdrom.bat to reassemble.
The magic number in this case is the speed in "x" times 177 (per the Linux kernel), byteswapped, shifted left by 16 bits, and then ORed with 0bbh.

Reply 61 of 75, by MoneySquirrel

User metadata
Rank Newbie
Rank
Newbie

Works with my Memorex MRX-530L drive, currently using -s900. I'll have to do some more testing to see what speeds actually work with this drive. It does reset the read speed when you open and close the drive tray, but that's fine.

Reply 62 of 75, by jh80

User metadata
Rank Newbie
Rank
Newbie
Revolter wrote on 2023-02-14, 18:52:

P.S. Did you guys know slim/laptop CD drives can also properly output analogue CD audio (using the cable) with these adapters? %)

Yeah, I resorted to doing this when I couldn't find a decent working CD drive once. NOS slim ATAPI CD drives are plentiful here and cost next-to-nothing, and you can by a cheap mounting bracket for a 5.25" bay.

CDBQ worked fine with this slim CD drive: TEAC CD-224E

One possible disadvantage of slim drives, however, is that they may be noisier when seeking, which CDBQ won't help with. But they're a good option if you can't find a working drive otherwise.

Reply 63 of 75, by kahuna

User metadata
Rank Member
Rank
Member
jakethompson1 wrote on 2025-05-18, 06:18:

If you have such a drive, after first ensuring everything works out with CDBQ, then the ATAPI CD-ROM driver in CONFIG.SYS can then be patched to reset the speed whenever the disc is changed and then never think about it again (outside Win9x at least). There won't be any error reporting or troubleshooting, so you need to make sure you're satisfied with CDBQ first. [...]

Thank you so much and apologies for the delayed response. I'm always busy with many "projects", I will give it a go when I can!

Be free!

Reply 64 of 75, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
ChrisR3tro wrote on 2025-02-23, 17:01:

Quick update: Just released stable version 1.3.0 !

Hi. Started using your utility. 😄 Quick question: when first initialising it, does a disc need to be in the drive in order for it to set the speed? I have it set up in my autoexec.bat file, but if I don’t have a disc in during the boot of DOS, it gives me an error. Saying Timeout waiting for IDE to clear busy status. IDE error register value was: 0x0h.

The plan is not to have a disc in on boot and to play as many games as I can via mounting an image. Apart from the few games/CDs that use redbook audio, which, as I understand it, can’t be converted to an image…? Thanks.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
HDD: C, D - IDE 1, CD-ROM - IDE 2, E - IDE 3

Reply 65 of 75, by ssokolow

User metadata
Rank Member
Rank
Member
DustyShinigami wrote on 2025-12-08, 01:09:

Hi. Started using your utility. 😄 Quick question: when first initialising it, does a disc need to be in the drive in order for it to set the speed?

For context, while tools like this can work around it by remembering and deferring/re-sending when necessary, my understanding is that the drive firmware itself treats setting a speed limit as something you do to the current disc, not the drive, and clears it on media change.

(eg. If I'm using eject -x <speed> <device> (short for eject --cdspeed <speed> <device>) on Linux, I need to re-run it any time I insert a new disc.)

...so, from the drive's perspective, setting the speed when there's no disc present is a nonsensical operation, like asking someone to use a Sharpie to label the medium when the drive tray contains empty air.

Internet Archive: My Uploads
My Blog: Retrocomputing Resources
My Rose-Coloured-Glasses Builds

I also try to announce retro-relevant stuff on on Mastodon.

Reply 66 of 75, by NeoG_

User metadata
Rank Member
Rank
Member

Somewhat related: Creative infra drives and other creative drives with a turbo/mode button can be hardware modded to be permanently in special mode which quietens down the drive significantly - by bridging the contacts on the mode button so it's always "pressed". Usually you have to hit the mode button on every restart because the drive firmware defaults to sandard/high speed mode. In special mode it operates around 8x speed.

Last edited by NeoG_ on 2025-12-08, 22:58. Edited 1 time in total.

98/DOS Rig: BabyAT AladdinV, K6-2+/550, V3 2000, 128MB PC100, 20GB HDD, 128GB SD2IDE, SB Live!, SB16-SCSI, PicoGUS, WP32 McCake, iNFRA CD, ZIP100
XP Rig: Lian Li PC-10 ATX, Gigabyte X38-DQ6, Core2Duo E6850, ATi HD5870, 2GB DDR2, 2TB HDD, X-Fi XtremeGamer

Reply 67 of 75, by ChrisR3tro

User metadata
Rank Member
Rank
Member
DustyShinigami wrote on 2025-12-08, 01:09:

Quick question: when first initialising it, does a disc need to be in the drive in order for it to set the speed?

This entirely depends on how it's handled in the drive's firmware. Some models don't accept the set-speed command without a disc being inserted, and even might throw an error, while it works perfectly fine in others. Which model do you have?

for more retro-related tidbits follow me on X under @ChrisR3tro.

Reply 68 of 75, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
ssokolow wrote on 2025-12-08, 01:28:
For context, while tools like this can work around it by remembering and deferring/re-sending when necessary, my understanding i […]
Show full quote
DustyShinigami wrote on 2025-12-08, 01:09:

Hi. Started using your utility. 😄 Quick question: when first initialising it, does a disc need to be in the drive in order for it to set the speed?

For context, while tools like this can work around it by remembering and deferring/re-sending when necessary, my understanding is that the drive firmware itself treats setting a speed limit as something you do to the current disc, not the drive, and clears it on media change.

(eg. If I'm using eject -x <speed> <device> (short for eject --cdspeed <speed> <device>) on Linux, I need to re-run it any time I insert a new disc.)

...so, from the drive's perspective, setting the speed when there's no disc present is a nonsensical operation, like asking someone to use a Sharpie to label the medium when the drive tray contains empty air.

Ahh, I see. Too bad, but understandable.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
HDD: C, D - IDE 1, CD-ROM - IDE 2, E - IDE 3

Reply 69 of 75, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
NeoG_ wrote on 2025-12-08, 02:06:

Somewhat related: Creative infra drives and other creative drives with a turbo/mode button can be hardware modded to be permanently in special mode which quietens down the drive significantly by bridging the contacts on the mode button so it's always "pressed". Usually you have to hit the mode button on every restart because the drive firmware defaults to sandard/high speed mode. In special mode it operates around 8x speed.

Ohh, interesting. I don't know if I have a turbo mode button, but I have a Creative drive. But I don't have much experience with hardware modding. I don't particularly trust myself either. ^^;

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
HDD: C, D - IDE 1, CD-ROM - IDE 2, E - IDE 3

Reply 70 of 75, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
ChrisR3tro wrote on 2025-12-08, 08:24:
DustyShinigami wrote on 2025-12-08, 01:09:

Quick question: when first initialising it, does a disc need to be in the drive in order for it to set the speed?

This entirely depends on how it's handled in the drive's firmware. Some models don't accept the set-speed command without a disc being inserted, and even might throw an error, while it works perfectly fine in others. Which model do you have?

I have a Creative 52X PATA IDE CD5233E. I'll take a look if I can find more info about it and if there's a newer firmware.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
HDD: C, D - IDE 1, CD-ROM - IDE 2, E - IDE 3

Reply 71 of 75, by ssokolow

User metadata
Rank Member
Rank
Member
DustyShinigami wrote on 2025-12-08, 11:01:

Ohh, interesting. I don't know if I have a turbo mode button, but I have a Creative drive. But I don't have much experience with hardware modding. I don't particularly trust myself either. ^^;

Here's Cathode Ray Dude's video on the Infra line. It's a fun watch. According to his "while I was editing..." addendum, Wayback-archived pages suggest they were mostly targeted at the Asian market.

Internet Archive: My Uploads
My Blog: Retrocomputing Resources
My Rose-Coloured-Glasses Builds

I also try to announce retro-relevant stuff on on Mastodon.

Reply 72 of 75, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
ssokolow wrote on 2025-12-08, 16:33:
DustyShinigami wrote on 2025-12-08, 11:01:

Ohh, interesting. I don't know if I have a turbo mode button, but I have a Creative drive. But I don't have much experience with hardware modding. I don't particularly trust myself either. ^^;

Here's Cathode Ray Dude's video on the Infra line. It's a fun watch. According to his "while I was editing..." addendum, Wayback-archived pages suggest they were mostly targeted at the Asian market.

Lol. But no, sadly, mine doesn't have the turbo button. Just skip and stop/eject.

Also, I've not been able to find the latest firmware. The one site that 'claims' to have it tries to get you to download its own utility, which is a bit suspicious, so didn't attempt it.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
HDD: C, D - IDE 1, CD-ROM - IDE 2, E - IDE 3

Reply 73 of 75, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
ChrisR3tro wrote on 2025-12-08, 08:24:
DustyShinigami wrote on 2025-12-08, 01:09:

Quick question: when first initialising it, does a disc need to be in the drive in order for it to set the speed?

This entirely depends on how it's handled in the drive's firmware. Some models don't accept the set-speed command without a disc being inserted, and even might throw an error, while it works perfectly fine in others. Which model do you have?

Another question: I don’t suppose there’s a command you can set so it automatically assigns the desired speed for each disc you swap? Some games are a little awkward, such as Broken Sword 1’s DOS installer, which requires a disc change mid-installation. Or mid-game.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
HDD: C, D - IDE 1, CD-ROM - IDE 2, E - IDE 3

Reply 74 of 75, by ChrisR3tro

User metadata
Rank Member
Rank
Member

Some drives forget the speed setting when a disc is swapped, others don't. This depends on the drive's firmware. As CDBQ is implemented now, it's not staying resident (in-memory) after it has been executed, so it wouldn't be able send a new set-speed command after a disc change.

for more retro-related tidbits follow me on X under @ChrisR3tro.

Reply 75 of 75, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
ChrisR3tro wrote on 2025-12-16, 18:32:

Some drives forget the speed setting when a disc is swapped, others don't. This depends on the drive's firmware. As CDBQ is implemented now, it's not staying resident (in-memory) after it has been executed, so it wouldn't be able send a new set-speed command after a disc change.

Ahh, I see. Okay, thanks anyway.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
HDD: C, D - IDE 1, CD-ROM - IDE 2, E - IDE 3