Reply 60 of 62, by jakethompson1
- Rank
- Oldbie
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.