Laute CD-Laufwerke unter DOS - Abhilfe mit CDBeQuiet!

Laute CD-Laufwerke unter DOS - Abhilfe mit CDBeQuiet!

Beitragvon Locutus » Fr 1. Aug 2008, 16:18

CDBeQuiet!

Aktuelle Version: 0.9b

Zuletzt editiert: 15.05.2011

Ältere CD-ROM-Laufwerke, welche keinen Lärm aufgrund hoher Drehzahlen produzieren (4x bis ~16x) kommen oft nicht mit aktuellen Rohlingen zurecht. Bisher habe ich es immer vermieden, neuere Laufwerke einzusetzen, da gerade beim Spielen von alten DOS-Spielen die Geräuschkulisse von 48x oder mehr sehr nervig werden kann. Allerdings werden langsame Laufwerke immer älter, haben Probleme mit aktuellen CD-Rs und werden früher oder später sowieso kaputtgehen.

Also war ich auf der Suche nach einem Tool, was unter DOS ein CD-Laufwerk ausbremsen kann, leider ohne Erfolg. Eine Software, die das unter Windows bewerkstelligt ist CD-Bremse, prinzipiell möglich ist es also. Deswegen hab' ich etwas recherchiert und habe herausgefunden, daß es einen Befehl gibt, der laut ATAPI-Spec genau das macht ("SET CD-ROM SPEED"). Dies regelt die Leserate und hat laut Spec auch Auswirkungen auf die Laufgeschwindigkeit.

Auf Basis eines Assembler-Programms aus dem Netz habe ich kleines Tool abgeleitet. Ich wäre jedem dankbar, der es auf seinem System testet und mir hier erzählt, ob es geklappt hat oder ob es Fehler gab. Schließlich kann man sich nie sicher sein, ob ein Stück Software überall funktioniert. ;) Vielleicht komme ich auch so noch ein paar potentiellen Fehlern auf die Schliche.

Update: Alles weitere und Downloads könnt gibt es nun auf der Projektseite: http://cdbq.dosforum.de/

Hier noch ein paar Messungen von meinem 40x-Teac-Laufwerk:

teac-max.png
TEAC CD-540E maximal (ohne Tool)
teac-max.png (4.38 KiB) 9161-mal betrachtet

teac-600.png
TEAC CD-540E bei 600 kb/s
teac-600.png (4.29 KiB) 9163-mal betrachtet

Daß es links tatsächlich bei 600 kb/s startet ist eher reiner Zufall. Viel höher fallen die Raten erst mit Einstellungen über 2000 kb/s aus. Darunter sehen die Tests alle gleich aus. Leider werden auch die Zugriffszeiten etwas in Mitleidenschaft gezogen, aber die werden bei "echten" langsamen Laufwerken wahrscheinlich auch nicht besser aussehen. Deutlich leiser war es auf jedenfall.

Entweder verwendet das Laufwerk eine Mischung aus CAV und CLV (P-CAV?) oder es gibt ab dem Knick in der Kurve des Tests ohne Tool irgendeinen Flaschenhals. Witzigerweise ist genau das Laufwerk als Referenz im Benchmark angeben:

teac-scale.png
teac-scale.png (1.28 KiB) 9163-mal betrachtet

(Selbst ohne mein Tool kommt es seinem eigenen Referenzwert nichtmal nahe, obwohl das Testsystem ein P-III 800 war. Keine Ahnung was hier schief läuft, ist aber für den Test unerheblich.)

Gruß,
Christoph
Zuletzt geändert von Locutus am Sa 2. Aug 2008, 19:13, insgesamt 1-mal geändert.
Benutzeravatar
Locutus
Site Admin
 
Beiträge: 1347
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW

Re: Laute 99x-CD-ROMs unter DOS - Hoffentlich Abhilfe!

Beitragvon elianda » Sa 2. Aug 2008, 16:42

Locutus hat geschrieben:- Achtung: Übergebt dem Tool nicht die Adresse Eurer Festplatte. Im schlimmsten Fall gehen Daten verloren.
nz im Benchmark angeben:

Bild

Es kommt seinem eigenen Referenzwert nichtmal nahe, obwohl das Testsystem ein P-III 800 war. Keine Ahnung was hier schief läuft.


Erstmal schoen, dass das Programm jetzt funktioniert 8).

Zum ersten Punkt: Mach ein am Anfang ein IDENTIFY DEVICE und schaue ob es sich um ein Wechseldatentraegerlaufwerk handelt. Wenn nicht, gehe davon aus, dass es eine HDD ist und breche mit einem Fehlermeldung ab. Hat auch den Vorteil, dass du nochmal den Device-String ausgeben kann (MODEL-NAME) und damit der Nutzer noch ein Feedback bekommt. Beispielsweise wenn er mehrere CD/DVD-Laufwerke nutzt.

Zu diskrepanzen bei Speedsys:
Bedacht, dass das LW unter Umstaenden unter DOS in PIO laeuft und nicht in DMA? Fuer die TRITON basierten Chipsets, d.h. VX,HX (FX auch da auch PIIX3) gibt es einen eigenen Treiber, der Multi Word DMA unter DOS aktiviert (TRICD.SYS bzw. TRIDMA.SYS).

Speedsys umgeht Smartdrive vollstaendig?

Ok ich probier es die Tage mal aus 8)

Dein Speedsys Link ist tot.
Aber ausgehend von BTTRs Tool collection Seite gibts das noch ueber archive.org unter:
http://web.archive.org/web/200706041730 ... wnload.htm
ok das Archiv von dort ist defekt, dann BTTRs Mirrored copy:
http://www.bttr-software.de/misc/sst478.zip
Diverse Retro-Computer vorhanden.
elianda
DOS-Übermensch
 
Beiträge: 1140
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle

Beitragvon elianda » Sa 2. Aug 2008, 21:12

Ich habe in einem DOS-Rechner ein Pioneer A04SZ, das scheint nicht auf die Einstellung zu reagieren - kein Effekt.

Noch Hinweise:
Wenn ich eine HDD angebe, bringt dein Programm Timeout bei Warten auf DRQ, vermutlich nach senden des Packet Command Codes, weil die HDD keine macht/kennt.
Pruefe da vielleicht auch gleich das Error Bit im Statusregister.

Pruefe das Error Bit im Status Register auch so, weil das Laufwerk das SET SPEED Kommando vielleicht gar nicht supportet?!?
Und gib das auch aus fuer den Nutzer.

Was macht dein Programm, wenn ich bei /ide:3 angebe oder irgendeine andre Zahl?
Ich habe z.B. in dem Rechner einen weiteren PCI-IDE Controller, was 4 Kanaele mit jeweils Master/Slave macht...

/mode:x unglueckliche Wahl des Parameternamens, soll doch sicher zwischen Master/Slave unterscheiden?
Und was ist wenn x = 'a' oder -1 oder 999 ist oder x=""?
Diverse Retro-Computer vorhanden.
elianda
DOS-Übermensch
 
Beiträge: 1140
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle

Beitragvon Locutus » So 3. Aug 2008, 03:05

Hi elianda,

erstmal danke für die Tipps.

Mach ein am Anfang ein IDENTIFY DEVICE


Das steht auch ganz am Anfang meiner Todo-Liste.

Bedacht, dass das LW unter Umstaenden unter DOS in PIO laeuft und nicht in DMA?


Meinst Du, das könnte der Flaschenhals sein? Ich werde die Messung vielleicht mal unter Windows 9X probieren, um das zu testen. Dazu muß SPEEDSYS allerdings auch darunter laufen. Die Triton-Treiber werden mit meinem Intel 440HX wahrscheinlich nicht laufen, oder? Gibt es generische DMA-Modus-Treiber? Allerdings frage ich mich jetzt, wie die Referenz-Messungen im Benchmark zustandegekommen sind.

Speedsys umgeht Smartdrive vollstaendig?

Keine Ahnung, für Tests hatte ich das von vornherein deaktiviert.

Ich habe in einem DOS-Rechner ein Pioneer A04SZ, das scheint nicht auf die Einstellung zu reagieren - kein Effekt.


Das ist gut! Das müssen wir evtl. mal genauer untersuchen. Laut Spec ist das Kommando SET SPEED übrigens optional, es Könnte also tatsächlich einfach fehlen. Das würde wahrscheinlich im Error-Register dann vermerkt sein.

Was macht dein Programm, wenn ich bei /ide:3 angebe oder irgendeine andre Zahl?

Alles außer 1 und 2 wird als Port-Adresse (dezimal) interpretiert.

Und was ist wenn x = 'a' oder -1 oder 999 ist oder x=""?


Ich denke, das Gröbste habe ich abgefangen. Aber lieber nicht ausprobieren, denn Narrensicherheit für die breite Öffentlichkeit gibt's erst ab Version 1.0.

Besteht denn überhaupt allgemeines Interesse an so einem Tool? Ansonsten wird es über eine Beta für private Zwecke wohl eher nicht hinwegkommen. ;-)

Gruß,
Christoph
Benutzeravatar
Locutus
Site Admin
 
Beiträge: 1347
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW

Beitragvon 5u3 » Mo 4. Aug 2008, 23:54

Hier die Ergebnisse meiner Tests (SST fast test, average read speed):

486, onboard CMD640 IDE controller, Creative CD5233E
Ohne CDBQ: 5755 KB/s, 38.37x
CDBQ 3000: 3294 KB/s, 21.96x
CDBQ 1500: 1183 KB/s, 7.88x
CDBQ 600: 587 KB/s, 3.91x

Sieht gut aus! Bei 3000 KB/s schießt das Laufwerk leicht übers Ziel hinaus (und ist auch durchaus noch hörbar), kleinere Werte bringen aber wirklich etwas.

K6-III, onboard ALI M1543 IDE controller, Liteon LTN526
Ohne CDBQ: 3252 KB/s, 21.68x
CDBQ 3000: 3269 KB/s 21.79x
CDBQ 1500: 3405 KB/s 22.70x
CDBQ 600: 3250 KB/s 21.67x

Das LTN526 dreht beim Aufruf von CDBQ immer aufs Maximum hoch und ignoriert anscheinend den SET SPEED-Befehl. Außerdem scheint es ohnehin nicht viel über 3000 KB/s hinauszukommen. Ich werde bei Gelegenheit ein anderes Laufwerk im selben PC testen, das LTN526 ist auch sonst ein ziemlicher Schmarrn.

Locutus hat geschrieben:Besteht denn überhaupt allgemeines Interesse an so einem Tool?
Also von meiner Seite schon. :wink:
Ich habe früher schon öfters nach einem CD-Brems-Programm für DOS gesucht, aber nie was gefunden. Ich denke, da hätten einige Leute Freude dran.
Benutzeravatar
5u3
Kommandozeilenfetischist
 
Beiträge: 184
Registriert: Do 21. Sep 2006, 16:05
Wohnort: Wien

Beitragvon Locutus » Di 5. Aug 2008, 03:09

Hi 5u3!

Danke für Deine Tests. Beim Creative-Laufwerk sieht das ja sehr gut aus. Es gibt also doch Laufwerke, die es etwas genauer nehmen mit dem Soll-Wert. Das ist für mich ein starkes Indiz dafür, daß mein Tool grundsätzlich die richtigen Werte an den IDE-Controller schickt und nicht irgendwelche Bytes verdreht oder so. :-)

Wenn tatsächlich Interesse besteht, stecke ich noch etwas Hirnschmalz rein und baue zunächst mal eine Erkennung ein, sodaß es zumindest eine Rückmeldung gibt, welches Laufwerk nun angesprochen wird, sprich "IDENTIFY DEVICE"-Kommando.

Außerdem sollte das Tool dann auch das Error-Register checken, ob da vielleicht soetwas wie "Command not supported" oder Ähnliches drinsteht. Da würde ich dann nochmal auf Dich zukommen, um es gegen Dein Lite-On-Laufwerk zu testen, welches ja scheinbar den Befehl ignoriert. Bringt denn z.B. "/rate:100" auch keine Änderungen?

Immerhin, die Basis-Funktionalität scheint gegeben in der aktuellen Version...

Gruß,
Christoph
Benutzeravatar
Locutus
Site Admin
 
Beiträge: 1347
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW

Beitragvon Locutus » Di 19. Aug 2008, 14:25

Da auch im Vogons-Forum schonmal eine Frage nach einem entsprechendem Tool gestellt wurde, dachte ich, ich investiere etwas mehr Zeit und habe nun zumindest ein paar Luxusfunktionen eingebaut. Jetzt kann man ein Logfile erstellen und das Tool zeigt Informationen zum gefundenen Laufwerk an. So bekommt man zumindest eine Rückmeldung, ob ein CD-ROM gefunden wurde und im Fehlerfall kann man einfach die Logdatei posten.

In der README.TXT ist eine kleine Anleitung enthalten, die beschreibt wie man am besten vorgeht, um den richtigen Kompromiß zwischen Lautstärkepegel und Lese-Geschwindigkeit zu finden, mit Hilfe von SPEEDSYS.

Außerdem habe ich schonmal eine Liste von funktionierenden Laufwerken angefangen.

Gruß,
locutus
Benutzeravatar
Locutus
Site Admin
 
Beiträge: 1347
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW

Beitragvon Örg » Di 7. Okt 2008, 13:30

(OK, nach dem Wurstpost von vorhin mal was sinvolles)

Testsystem:

Gigabyte GA-6BXC
Pentium III 733 (Coppermine)
Diamond Viper V550 (Riva TNT)
Quantum Fireball lct10 10

DOS 6.22 Bootdiskette mit QBCD und SPEEDSYS.

Nach 2-Stündigem rumprobieren fand sich dann auch eine CD wo Speedsys mal keinen Unstable Read zeigte, somit alle Tests durchgeführt werden konnten.

Test-CD: Dark Age Of Camelot Labyrinth Of The Minotaur (PC-Spiel) mit 623MB an Daten.

1. TEAC CD-540E (3.0a)
Das mit dem TEAC CD-540E kann ich bestätigen, es kommt auch bei mir seinem Referenzwert nicht nahe.


2. TDK CD-RW 482448B (S7S4)
Sehr SEHR lautes Laufwerk.

Ohne QBCD
Bild
Bild

Lautstärke MP3

Mit QBCD bei /rate:600

Bild
Bild

Wie man hier sehr gut erkennen kann, bleibt die Geschwindigkeit fast konstant auf 577kB/s. Gutes Ergebnis für das Programm also. Man hört das Laufwerk praktisch garnicht mehr.

Lautstärke MP3


Fazit:
TDK TDK CD-RW 482448B mit Firmware S7S4 funktioniert top mit CDBQ


EDIT:

HL-DT-ST DVD WRITABLE/CD-RW DRIVE GWA 4166B (v1.24)

Ohne CDBQ 600: 3634KB/s
Mit CDBQ 600: 3633KB/s

Laufwerk funktioniert nicht mit CDBQ.

(Unbekannter Hersteller) TW 120D (12x Laufwerk) (V2.30)

Ohne CDBQ 600: 1768KB/s
Mit CDBQ 600: 575KB/s

Laufwerk funktioniert mit CDBQ.

Mehr Laufwerke habe ich gerade nicht zur Hand, ich melde mich nochmal heute abend, da bin ich bei Alkanet zu Besuch, der hat noch ein paar zum testen.
Örg
 

Beitragvon Locutus » Mi 8. Okt 2008, 12:20

Hallo Örg und danke für Deine Tests. Bei Gelegenheit werde ich die Liste der funktionierenden Laufwerke erweitern. Wenn eines mal nicht funktioniert liegt das übrigens höchstwahrscheinlich daran, daß es das ATAPI-Kommando zur Geschwindigkeitsregelung einfach nicht unterstützt. Laut Spezifikation ist das nämlich optional.

PS: Speedsys unterstützt übrigens Screenshots :-)

Gruß,
Christoph
Benutzeravatar
Locutus
Site Admin
 
Beiträge: 1347
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW

Beitragvon Örg » Do 9. Okt 2008, 12:54

Ich weiß, aber der PC hat eine 10GB Festplatte mit einer FAT32 Partition mit Windows ME drauf, habe allerdings von einer DOS6.22-Disk gebootet. Screenshots kann ich folglich leider nirgendswo abspeichern :)
Örg
 

Beitragvon CptKlotz » Do 9. Okt 2008, 13:13

Windows ME


Er hat Jehova gesagt! Steinigt ihn!

(Sorry, konnte nicht widerstehen :-) )
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
Benutzeravatar
CptKlotz
Site Admin
 
Beiträge: 2993
Registriert: Mo 7. Mär 2005, 23:36
Wohnort: Dorsten

Beitragvon Locutus » Do 9. Okt 2008, 14:19

Screenshots kann ich folglich leider nirgendswo abspeichern


Die sind aber normalerweise nicht so groß, als daß sie nicht mit auf die Diskette paßten. War bei mir jedenfalls kein Problem. :-)
Benutzeravatar
Locutus
Site Admin
 
Beiträge: 1347
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW

Beitragvon Örg » Do 9. Okt 2008, 15:26

CptKlotz hat geschrieben:
Windows ME


Er hat Jehova gesagt! Steinigt ihn!

(Sorry, konnte nicht widerstehen :-) )


Weiß garnicht, was du hast, ME läuft total stabil bei mir (stabiler als 98/SE).

Aber das gehört hier ja nicht hin :)
Örg
 

Beitragvon Doctor Creep » Di 27. Jan 2009, 21:39

Vielen Dank für das tolle DOS-Tool! Das ist genau das was ich gesucht habe!
Jetzt läuft bei mir "Under A Killing Moon" perfekt ohne nerviges CD-Gelärme (DVD Toshiba SD-M1802) das die wunderbare Roland SC-55 Mukke übertönt!

Mit meinem CD-Laufwerk (ein richtiger Lärmer!) von LG (52x) habe ichs irgendwie nicht zum Laufen gebracht...
Benutzeravatar
Doctor Creep
DOS-Guru
 
Beiträge: 970
Registriert: Di 27. Jan 2009, 19:33

Beitragvon Locutus » Mi 28. Jan 2009, 15:57

Freut mich zu hören, daß es funktioniert. Bei Gelegenheit muß ich den Code sowieso mal vernünftig strukturieren und eine zuverlässige Fehlerbehandlung einbauen. Die Grundfunktionalität sollte allerdings klappen.

Doctor Creep hat geschrieben:Mit meinem CD-Laufwerk (ein richtiger Lärmer!) von LG (52x) habe ichs irgendwie nicht zum Laufen gebracht...


Nicht jedes Laufwerk unterstützt das Kommando zum Herabsetzen der Geschwindigkeit, da es in der ATAPI-Spezifikation als optional gilt. Evtl. mal verschiedene Transferraten ausprobieren, wenn alles nichts bringt, leider Pech gehabt. Kannst Du mir die genaue Modellbezeichnung nennen? Dann nehme ich es in die Liste der nicht-unterstützten Laufwerke auf. Danke!

Gruß,
locutus
Benutzeravatar
Locutus
Site Admin
 
Beiträge: 1347
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW

Nächste

Zurück zu Programmierung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast