Port für CD-Rom Laufwerk gesucht

03/04/2010 - 17:13 von Jens Kallup | Report spam
Hallo,

wo finde ich eine Liste aller Ports (Ralph Brown habe ich schon
gefunden), die sich mit CD-Rom Laufwerke beschàftigen.
Anders gefragt, welcher Port ist für CD-Rom Access (CD Sektoren lesen
zustàndig)?.
Wie kann ich Sektoren von CD-Rom lesen - will mal versuchen, ob das dann
klappt.

Achja, wie bekomme ich den Puffer "my_buff" von Dirk's Posting (weiter
obeb) ausgegeben?

Danke und Gruß
Jens
 

Lesen sie die antworten

#1 Markus Wichmann
03/04/2010 - 19:12 | Warnen spam
Jens Kallup () schrieb:
Hallo,

wo finde ich eine Liste aller Ports (Ralph Brown habe ich schon
gefunden), die sich mit CD-Rom Laufwerke beschàftigen.
Anders gefragt, welcher Port ist für CD-Rom Access (CD Sektoren lesen
zustàndig)?.
Wie kann ich Sektoren von CD-Rom lesen - will mal versuchen, ob das dann
klappt.

Achja, wie bekomme ich den Puffer "my_buff" von Dirk's Posting (weiter
obeb) ausgegeben?

Danke und Gruß
Jens



Hast du jemals selbst einen Rechner zusammengeschraubt? Dann müsstest du
wissen, dass ein CD-Laufwerk in aller Regel an einem Bus hàngt, meistens
P-ATA, aber S-ATA geht auch.

Wo ist das andere Ende des Datenkabels? Und sag jetzt nicht "auf dem
Mainboard"! ^^ Das andere Ende steckt im P-ATA-Controller (oder S-ATA,
je nach Anschluss). Dieser wiederum steckt am PCI-Bus (boote mal Linux
und tippe "lspci" ein, da sollte ein ATA-Controller auftauchen).

Die richtige Art und Weise, ein CD-Laufwerk auszulesen, ist demzufolge:

1. Festzustellen, welche internen Bus-Systeme auf dem PC existieren
(PCI, PCIe, ISA, I2C).
2. Auf _jedem_ gefundenen Bus die angeschlossenen Geràte zu enumerieren.
3. _Alle_ gefundenen CD-Laufwerke zu speichern (also zumindest deren
Ports und evtl. MMIO-Basisadresse).
4. Mit den Laufwerken ATA reden, um festzustellen, welches überhaupt
eine CD eingelegt hat.

So, da hast du erstmal zu tun. Viel Vergnügen!

Ja, das ist komplizierter, als einfach BIOS-Interrupts zu verwenden und
nein, einfacher wird's wohl nicht. Es sei denn, du wills doch lieber
int 0x13 benutzen, dann musst du halt gucken, ob es ein Geràt 0x81 gibt.


Tschö,
Markus
Progress (n.): Process through which USENET evolved from smart people in
front of dumb terminals to dumb people in front of smart
terminals.

news://freenews.netfront.net/ - complaints:

Ähnliche fragen