Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: bitmaster am 03. October 2006, 23:35

Titel: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 03. October 2006, 23:35
Hallo,

ich grüble gerade darüber wie man ein CD-ROM Laufwerk im RM anspricht bzw. einen Sektor in den RAM läd. Ich meine mal gehört zu haben das soll mit dem "int 13h" gehen. Irgendwo mit muss es ja gehen, denn schließlich ist der Bootsektor einer CD nur 2 KByte groß und dort müssen ja Sektore geladen werden (um Dateien mittels Dateisystem zu laden etc.). Also was ich meine, da passt ja bestimmt kein kompletter CD-ROM Treiber rein der die sachen mit Ports anspricht. Ich wüsste also gern wie ich das über den "int 13h" machen kann. Weiß da jemand von euch was? Außerdem wüsste ich gerne welches Dateisystem man eurer Meinung nach verwenden sollte. UDF, ISO9660, CDFS oder welches? Hat jemand sich schon damit befasst bzw. befasst sich jemand z.Z. damit?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: stultus am 04. October 2006, 00:24
cdfs wird unter windows angezeigt, iso 9660 wäre cd-standard, und udf findet man noch auf dvd's (aufjedenfall auf welchen mit dateien > 2 GB). soviel zum thema dateisysteme

zu int 13h kann ich dir nix sagen :/
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 04. October 2006, 01:01
Stultus: OK, danke. Es kann auch sein das ich mich vertan habe und es gar nicht mit dem "int 13h" geht. Kennt denn einer von euch ein gutes Tutorial zu dem Thema?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: nooooooooos am 04. October 2006, 06:55
Hmmmmm....dochdoch....ich würde sagen, das geht genau gleich wie mit einer Diskette.
Ich hab mein OS mal ohne jegliche Veränderungen auf eine CD gebrannt und es lief....Aber ganz sicher bin ich mir nich...

Noooooooooos
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 04. October 2006, 07:14
Ich bin mir auch nicht sicher :-D, aber ich meine zu wissen, dass wenn man eine bootbare CD mittels des El Torito Formats macht, dass dann das normale Floppy image auf die CD kommt und das BIOS aus diesem Image auf der CD eine Floppy emuliert.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: kevin am 04. October 2006, 10:18
Das denk ich auch.

Hat man auch damals beim Booten eines DOS von der Win98-CD schön gesehen: Erstmal bekommt man ein Laufwerk A, das auch so groß ist wie eine Diskette und alles nötige enthält - vor allem einen CD-Treiber, mit dem man dann den Rest der CD anspricht, wobei der Rest dann einen eigenen Laufwerksbuchstaben bekommt.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: MNemo am 04. October 2006, 14:13
hast du schon das Tut von Toaseter Gelesen 'Magazin/Genuine Rehie/Programming the Bootable CD-ROM' genuine'?

das ist doch so was, was du suchst, oder? habs nur ma  überflogen, danach kann mann einfach floppy emulieren und dann ganz normal mit in13h zu greifen
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: stultus am 04. October 2006, 14:43
es geht hier soweit ich das sehe um zugriff auf die echte medien. also volle 700 mb, bei dvd's darüber hinaus... der ganze cd-boot-kram handelt ja davon dass das bios über int 13h nen floppyimage verfügbar macht ;) auf mehr kannst von der cd ja nicht zugreifen
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: MNemo am 04. October 2006, 14:57
@Stultus:
Ich hab Blitzmaster so verstanden, dass er sein OS von CD-Booten will, und er 2kb(1sector) für zu wenig speicher hält um ein CD-Treiber zu schreiben. Wenn er ein Floppy Emuliert, hat er für den CD-Treiber ca. 1440kb plaz. Und da er im RM so wie so keine 1440kb in den RAM krigt, wird er sich so wieso nen PM-CD-Treiber schreiben müssen, mit dem er dann 700MB ansprechen kann.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 04. October 2006, 14:59
Vielen dank schon mal. Also ich möchte gerne auf die ganze CD zugreifen. Also so wie z.B. bei Windows 2000 und XP. Dort werden ja beim Installieren Dateien von CD (mehr als 1,44 MByte) auf die Festplatte kopiert. Die nutzen dafür also nicht den "int 13h" ?! Wenn der "int 13h" nur diese 1,44 MByte ansprechen kann, dann kommt der für mich schonmal nicht in Frage.

Also was ich meine ist: Der Bootsektor ist ja nur 2 KByte groß. Dieser muss ja min. 1 Datei laden (z.B. CD Treiber). Dateien bestehen aus Sektore, also muss der Sektore mit berücksichtigung auf das Dateisystem laden. Und genau das möchte ich wissen. Wie ist das möglich. Warscheinlich mittels Ports und IRQs. Hat jemand zu den Stoff was gefunden? Kann mir jemand weiter helfen?

Also gibt es im RM keine einfachere Lösung, sondern genau die selbe wie im PM (oder 64 Bit Mode ^^) mit Ports und IRQs???

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 04. October 2006, 15:04
@M.Nemo: Wer ist "Blitzmaster" ? ^^

Ich möchte ja sowieso in den 64 Bit Mode und nicht im RM bleiben. Ich möchte nur nicht im Bootloader schon in den 64 Bit Mode wechseln sondern dort im RM bleiben. Dieser soll dann eine gewisse load.sys (oder so) laden, der dann in den 64 Bit Mode springt, kernel läd etc.). Also möchte ich erstmal wissen, wie ich die z.B. load.sys von CD im RM laden kann. Ich möchte aber keine Floppy Emulieren. Wenn der "int 13h" nur mit floppy emulieren funst, dann vergess ich den schnell und nutze Ports und IRQs. Könnt ihr mir weiterhelfen?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: MNemo am 04. October 2006, 15:07
@M.Nemo: Wer ist "Blitzmaster" ? ^^
Sry den gibts hier zwar auch, aber ich mein natürlich BITMASTER

guck ma www.t13.org
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 04. October 2006, 15:10
Dann musst du dir die ATA/ATAPI Specs und die SCSI 3 (weiß nicht welche Subkategorie davon genau) anschauen.

T13 (http://www.t13.org/)
T10 (http://www.t10.org/)
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: Termite am 04. October 2006, 15:45
Moin

lies dir mal el torito durch http://www.phoenix.com/NR/rdonlyres/98D3219C-9CC9-4DF5-B496-A286D893E36A/0/specscdrom.pdf#search=%22el%20torito%20boot%20cd%22
das sollte einige probleme lösen.

el Torito kann

bei den ersten beiden werden die simulationen entsprechend in die devicenummerirung vom bios eingebunden und sind somit auch darüber ansprechbar.
mit letzterem kann der ganze RM (640kb) geschrieben werden so wie ich das beim überfliegen verstanden hab. Die sektoren sind dann aber auch angeblich 800 byte gross. (vermute 0x800 und somit 2048)

was dann im pm in deinem os damit passiert ist deine sache. du must dich dann mit ata ond oder scsi selber rumschlagen. und die header entsprechend auswerten und die sektoren entsprechend addresieren.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: Osbios am 04. October 2006, 16:43
Bei der letzten Möglichkeit kann man eine belibige Datenmenge festlegen die beim booten von der CD in den Arbeitsspeicher kopiert werden soll. Wobei ich jetzt nicht weiß ob dass über 640 KiB geht.
Dannach muss man seinen eigenen ATAPI-Treiber (oder SCSI-Treiber) mitbringen um weitere Daten von der CD zu lesen.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 04. October 2006, 18:24
Vielen dank, das hat mir gut weitergeholfen.

Also wäre folgendes Vorhaben realistisch? :

Bootsektor im RM läd mit "int 13h" ohne Emulation die load.sys von CD

die load.sys schaltet in den 64 Bit Mode, läd mittels internen CD-Treiber die Module + Kernel + externe Treiber etc.

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 04. October 2006, 18:52
kurz und bündig: jo

@bitmaster: btw. hast du ne neue MSN oder wie kann man dich sonst erreichen?
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 04. October 2006, 20:01
@bluecode: OK, dann werde ich es so machen.

Nö, ich bin nur selten in MSN. Aber immer wenn ich on bin bist du off. Vielleicht hast du mich geblockt?
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 05. October 2006, 18:24
Ich hab jetzt mal eingestellt, dass sich gaim automatisch auch in msn einloggt. War bis jetzt immer nur ab und an mal in msn, weil du mein einzigster Kontakt bist.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 05. October 2006, 19:57
@bluecode: Ach ja, das Linuxleben. ;-)

Hat jemand genauere Infos über das CD Dateisystem?
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: Osbios am 05. October 2006, 21:16
Also wäre folgendes Vorhaben realistisch? :

Bootsektor im RM läd mit "int 13h" ohne Emulation die load.sys von CD

die load.sys schaltet in den 64 Bit Mode, läd mittels internen CD-Treiber die Module + Kernel + externe Treiber etc.

Nein, entweder mit Emulation den "int 13h" benutzen um im RM Zugriff auf die CD zu haben, oder die dritte möglichkeit in der du eine "belibige" Menge Daten von der CD in den Arbeitsspeicher schreiben kannst(wie ein riesiger Bootsektor wo auch eine load.sys reinpasst).
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 05. October 2006, 23:32
@Osbios: Ich verstehe nicht was du meinst. Ich bin nämlich gerade dabei ohne Emulation als Floppy oder Festplatte die CD anzusprechen. Und das klappt wunderbar.

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 06. October 2006, 09:27
@T0ast3r: Also ich rede gerade noch vom Bootsektor. Dort bin ich ja im RM. Dank Microsoft und IBM brauche ich dafür nichts anderes als den "int 13h" um Sektore zu laden. Ich werde jetzt die ISO9660+Joliet Dateisystemunterstützung einbauen und die load.sys laden. Die wird dann einen internen Treiber bekommen (weil sie in den 64 Bit Mode springt und ich also so den int 13h nicht mehr benutzen kann). Die läd dann mittels internen Treiber kernel + module + externe Treiber etc. Aber im Moment bin ich noch im Bootsektor im RM und brauch Infos zum ISO9660+Joliet Dateisystem. Hat da jemand was?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 06. October 2006, 13:32
Also bin ich zu dumm um zu finden oder gibt es kein Dokument was den Aufbau des Joliet Dateisystem erklährt. Ich will wissen wie die Einträge aufgebaut sind in denen sich Dateinamen befinden, wie ich den ersten und letzten Sektor einer Datei herausfinde etc. Die blöden Suchmaschinen zeigen mir immer nur an, das Joliet eine Dateisystemerweiterung für ISO9660 ist. Aber das weiß ich selber. Ich will nicht wissen was Joliet ist, sondern wie es aufgebaut ist. Habt ihr da was gefunden? Toaster hast du da schon ein genuine Dokument drüber?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: maumo am 06. October 2006, 13:43
http://www.nondot.org/sabre/os/articles/FileSystems/: hier hab ich was gefunden. habs mir aber ned durchgelesen xD
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 06. October 2006, 13:52
Gewöhnt euch mal an nach XYZ specification (http://www.google.de/search?q=iso9660+specification&hl=de&lr=&safe=off&start=0&sa=N) zu suchen :wink:

Zitat
@bluecode: Ach ja, das Linuxleben. wink
hä :?
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 06. October 2006, 18:19
Vielen dank an euch: In dem Doku stehts: http://www.nondot.org/sabre/os/files/FileSystems/iso9660.pdf

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 11. October 2006, 21:44
So, da ich nun das Dateisystem (ISO9660 + Joliet) kapiert habe und stolzer Besitzer eines CD Boot-Sektor Codes bin, möchte ich jetzt einen Treiber für den 64 Bit Mode schreiben. Da kann ich ja leider den int 13h net mehr nutzen. Also habe ich mich entschieden einen ATA (ATAPI-4) Treiber zu schreiben, mit dem ich dann Sektore lesen kann (da die meisten CD-Laufwerke ebend damit arbeiten [außer z.B. S-ATA, USB etc.]). Aber in meinem PC Hardwarebuch wird unter IDE (ATA) immer nur von Festplatten ausgegangen. Und dort stehen Register für Sektor/Spur/Kopf. Aber eine CD hat doch keine Spuren und köpfe? Die Ports sind aber die gleichen (zeigt Windows mir genau die selben an wie im PC Hardwarebuch beschrieben). Also sind die Register bei CDs anders anzusprechen oder wie?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 12. October 2006, 18:12
Hmm...

also weiß keiner von euch wie man über ATAPI-4 das CD-ROM-Laufwerk anspricht?

Dann habe ich noch eine Frage. Wenn man von Diskette gebootet hat, ist ja in dl das Laufwerk angegeben (0 = A: und 1 = B:, wo man von B: bei manchen PCs gar nicht booten kann). Und wie siehts mit CDs aus. Wie kann ich da feststellen von welchem Laufwerk gebootet wurde, um später mit dem ATAPI-Treiber die anderen Dateien von der CD in diesem Laufwerk zu laden. Ich habe mal den Wert aus dl ausgeben lassen. Der ist im oberen Laufwerk bei mir 9Fh. Ich schaue mal ob das untere dann vielleicht A0h ist. Ansonsten, könnt ihr mir weiter helfen?

thx

bitmaster

EDIT: Nee, also das bringt nicht. Wenn ich vom ersten Laufwerk boote ist in dl der Wert 9Fh und wenn ich vom zweitem Laufwerk botte ist in dl auch der Wert 9Fh. Bei Bochs und Qemu beides nicht 9Fh sondern E0h. Tja, wie finde ich jetzt heraus von welchem Laufwerk ich gebootet habe. Nicht das ich vom zweitem Laufwerk boote aber mein Treiber dann die Daten vom ersten laden will oder so. PLEASE HELP ME.

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: Termite am 12. October 2006, 19:13
gruss
Welche reihenfolge verwendet das bios um das bootmedium zu finden? Bessergesagt welche CD?
ich nehm mal an das geht nach der reihenfolge hda hadb hadc hdd .... von der ersten gefundenen bootbaren cd wird gestartet. Das gleiche kannst ja auch du implementieren.

gruss
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 12. October 2006, 19:50
@Termite: Ich verstehe nicht ganz was du meinst. Ich möchte mein OS von CD booten. Den Bootsektor-Code habe ich schon fertig. Der läd mittels "int 13h" und ISO9660 + Joliet Unterstützung eine gewisse load.sys. Diese schaltet in den 64 Bit Mode. Diese soll jetzt von der gleichen CD mittels ATAPI CD Treiber kernel + externe Treiber etc. laden. Aber woher weiß sie von welches Laufwerk sie laden soll. Woher weiß sie ob von Laufwerk 1 oder Laufwerk 2 (falls 2 CD Laufwerke vorhanden sind) gebootet wurde.

Kann ich vielleicht im Bootsektor rausfinden von welchem Laufwerk gebootet wurde? Wenn ja, wie?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 13. October 2006, 16:28
ich antworte mal auf dein altes Post:
Man kann auch bei Festplatten LBA verwenden, was sowieso sehr empfehlenswert ist und in ATA-2 standartisiert wurde afaik. Bei ATAPI sind die register folgendermaßen (ich zähl nur die auf, die sich auch verändert haben):
Sektorzahlregister -> ATAPI Interruptursache (read-only)
Sektornummerregister -> reserviert
Zylinder-0 -> ATAPI Bytecount 0-7
Zylinder-1 -> ATAPI Bytecount 8-15
Device-Selection register: die untersten 4bit sind reserviert

Das ATAPI Fehlerregister schaut komplett anders aus:
bit0: illegale Länge
bit1: Ende des Mediums
bit2: ungültiges Kommando
bit4-7: Sense-Key

Für die Kommunikation mit dem CD-ROM Laufwerk werden _nicht_ die normalen ATA Kommandos verwendet, sondern der CD-ROM über das ATA PACKET-Kommando (im ATA/ATAPI Standard wird beschrieben wie das PACKET Kommando auszuführen ist) ein SCSI-3 Kommando übergeben. Dies wird immer auf eine Länge von 12 oder 16 gepaddet.

sry, das ich erst so spät poste, aber ich bin seit 2tagen oder so nicht mehr ins forum gekommen... only god knows why.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 13. October 2006, 17:51
@bluecode: OK, ich werd mal schauen. danke!!!

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: Osbios am 13. October 2006, 18:38
Zur Frage der Boot-CD:
Ich weiß zwar nicht wie man heraus bekommen kann wovon gebootet wurde, habe aber eine andere Idee.

Scan einfach alle CD-Laufwerke bzw. CDs nach einer besonderen Eigenheit (z.B. dem Vorhandensein der Datei "kernel.sys").

Ist aber nur eine Übergangslösung, denn CD-Rom Laufwerke brauchen recht lange zum Anfahren.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 13. October 2006, 23:37
@Osbios: Und was ist wenn sich in dem anderem Laufwerk auch eine CD befindet wo eine Datei auch kernel.sys heißt? Nee, wenn dann schon vernünftig.

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 13. October 2006, 23:51
@bluecode: Da du von der Materie scheinst Ahnung zu haben, müssen wir uns mal über MSN unterhalten, weil ich noch einige Fragen habe.

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 14. October 2006, 12:01
@bluecode: Da du von der Materie scheinst Ahnung zu haben, müssen wir uns mal über MSN unterhalten, weil ich noch einige Fragen habe.
Naja, so viel kann ich dir da auch nicht helfen, da ich selbst noch keinen ATAPI Treiber hinbekommen hab. Ich habs zwar nur kurz versucht, aber funktioniert hats net. Und bevor ich da weiter mach muss ich noch ein paar andere Sachen in meinem OS machen.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 21. October 2006, 13:58
Zitat von: bluecode
Zylinder-0 -> ATAPI Bytecount 0-7
Zylinder-1 -> ATAPI Bytecount 8-15
Aber das wären ja nur 16 Bit, sprich 65536 Sektore. Und das mal 2048 wären max. 128 MByte. Eine normale CD hat ja schon 650 - 700 MByte. Oder was meinst du mit "ATAPI Bytecount"?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 21. October 2006, 20:43
Der ATAPI Bytecount hat nichts mit der LBA Adresse zu tun. Diese wird über das SCSI-3 Packet übergeben. Das ATAPI Register gibt afaik die Länge des Packetes an (oder die länge der Daten welche mit dem Befehl gelesen/geschrieben werden sollen). Da bin ich mir nicht so sicher, da schweigt mein Buch auch ein bisschen.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 02. November 2006, 21:35
Also ich habe das mit ATAPI usw. jetzt einigermaßen verstanden. Ich habe es auch so halbwegs hinbekommen Sektore zu lesen. Aber jetzt stehe ich vor ein bereits erwähntes Problem. Wie bekomme ich raus von welchem Laufwerk gebootet wurde. Ob vom Master, Slave ... gebootet wurde. Denn was würde passieren, wenn meine CD vom Slave Laufwerk gebootet werden würde, der Treiber aber Daten vom einer CD im Master ansprechen würde? Ja genau, nur mist würde passieren. Also deswegen möchte ich herausfinden von welchem Laufwerk gebootet wurde, um auch dieses für das laden der Dateien des OS anzusprechen. Also ich habe schon einiges mit dem "int 13h" besonders mit der Funktion 48h versucht, aber ohne Erfolg. Könnt ihr mir dabei helfen?

danke

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 02. November 2006, 23:38
Das Bootlaufwerk steht doch in dl am Anfang des Bootsektors bzw. in der multiboot header von grub. Was willst du mehr? :?
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 03. November 2006, 12:26
Also das System find ich nicht sonderlich toll, da es nicht zu 100% funktioniert (Es können auf zwei verschiedenen Datenträgern/Partitionen die gleichen Checksummen auftreten). Insofern find ich es ziemlich nutzlos für diesen Zweck.

Zitat
Partitionen werden ja gar nicht erst behandelt
Das BIOS bootet ja auch nicht von einer Partition, sondern nur den MBR :wink: Wie der weiter verfährt sollte dann dein Problem sein...

Die Nummer sollte ja ausreichen um herauszufinden von welchem Laufwerk gebootet wurde, oder?
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 03. November 2006, 15:38
Ihr versteht nicht was ich meine. Ich weiß das in dl das Laufwerk steht um mit dem "int 13h" später auf dieses zuzugreifen. Aber wenn ich jetzt in den 64 bit Mode springe kann ich den "int 13h" nicht nutzen und muss die Ports ansprechen. So, jetzt gibt es aber 2 verschiedene IDE Kanäle mit jeweils Master und Slave. So, woher weiß ich jetzt welchen ich ansprechen muss? Woher weiß ich, ob ich den ersten IDE Kanal oder den zweiten benötige. Und woher weiß ich ob das Laufwerk Master oder Slave ist?

Versteht ihr jetzt was ich meine?

Die Funktion 48h gibt einige Dinge aus wie z.B. die Portbasisadresse ob z.B. 170h oder 1F0h. Da dachte ich mir ich rufe diese auf, speichere die Ergebnisse und lade sie wenn ich im 64 Bit Mode bin. Aber das läuft z.B. nicht unter allen Emulatoren (die schreiben einfach Null-Werte). Deswegen bringt mir die 48h Funktion auch nicht sehr viel, da ich was benötige das überall funktioniert.

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 03. November 2006, 16:13
*rofl* das hab ich schon verstanden, nur bin ich davon ausgegangen, dass du weißt, dass das was du in dl übergeben bekommen hast:
* 0 für fd0
* 1 für fd1
* 0x80 für ide0 dev0
* 0x81 für ide0 dev1
* 0x82 für ide1 dev0
* 0x83 für ide1 dev1
afaik ist, aber ich hab das jetzt nicht überprüft. Zumindest lässt sich anhand der Nummer in dl _ganz_ sicher bestimmen, von welchem Laufwerk gebootet wurde.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 03. November 2006, 16:18
Zitat
Zumindest lässt sich anhand der Nummer in dl _ganz_ sicher bestimmen, von welchem Laufwerk gebootet wurde.
Tja, nur das es bei CD-Laufwerken nicht so ist. Da bekomme ich nämlich den selben Wert wenn ich die CD im oberen sowie im unteren Laufwerk einlege.

Das mit den Floppy-Disks und den Festplatten weiß ich.

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 03. November 2006, 16:38
Was bekommst du denn da für einen Wert?
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 03. November 2006, 17:04
Was bekommst du denn da für einen Wert?

Bochs:E0h
Qemu:E0h
Virtual PC:EFh
VMware:9Fh (IDE 1:0 und 1:1)
PC:9Fh (oberes und unteres Laufwerk)

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 08. November 2006, 20:19
So, mein CD Treiber läuft jetzt (zumindest unter Bochs und Qemu). Da ich noch kein 64 Bit PC habe kann ichs noch nicht auf echten PCs testen (zu faul alles noch mal für ein test 32 Bit System zu proggen). Ich will mir ja gerne ein Notebook kaufen, wenn da nicht immer das Geld wäre (bzw. nicht wäre). ^^ Also wer noch was über hat, her damit. ;-)

Nee, jetzt mal im ernst. Ich verzweifle immer noch daran, woher ich weiß bzw. der PC von welchem Laufwerk gebootet wurde. Es gibt ja 4 möglichkeiten:

0:0
0:1
1:0
1:1

Z.z. verwende ich einfach strikt 1:0 (wegen qemu) und habs in Bochs auch so eingestellt. Läuft unter beiden Emus wunderbar. Nur auf echten PCs kann ja das Bootlaufwerk unterschiedlich sein.

Hat wirklich keiner von euch eine Idee die auch vernünftig ist, wie das klappen könnte (also nicht einfach testen ob in dem Laufwerk eine CD drin ist die eine kernel.sys hat, es könnte ja zufälligerweise sein das man im anderem Laufwerk auch eine CD drin hat, die eine kernel.sys beinhaltet).

Also bitte helft mir. *verzweifel*

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bluecode am 08. November 2006, 20:51
Du könntest zum Beispiel das Codesegment deines Kernels hashen (Crc32, sha, md, ...) und den Hash mit dem Hash, der kernel.sys auf der CD vergleichen. Das würde zumindest sicherstellen, dass die cd mit dem richtigen kernel vorhanden ist.
Ansonsten könntest du ja noch eine Datei mit dem aktuellen Build erstellen, welche einmal mit dem bootloader geladen wird und dann nochmal von jedem möglichen datenträger.
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 08. November 2006, 21:18
Du könntest zum Beispiel das Codesegment deines Kernels hashen (Crc32, sha, md, ...) und den Hash mit dem Hash, der kernel.sys auf der CD vergleichen. Das würde zumindest sicherstellen, dass die cd mit dem richtigen kernel vorhanden ist.
Ansonsten könntest du ja noch eine Datei mit dem aktuellen Build erstellen, welche einmal mit dem bootloader geladen wird und dann nochmal von jedem möglichen datenträger.
Nee nee nee, also so ein Zirkus mache ich net. Das muss auch anders gehen. Also zu not rufe ich mal bei IBM an.

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 09. November 2006, 20:52
So, entlich habe ich genie ;-) es geschafft. Es funktioniert wunderbar. Jetzt ist mein CD Treiber vorerst fertig. Ich muss halt nur noch an einen echten 64 Bit PC ran kommen um zu testen ob das OS auf diesen funktioniert.

@Coffee: Ich mein du hast ein 64 Bit PC mit Nvidia Karte drin, oder? Könntest du dann einen kleinen Test für mich machen?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: MNemo am 10. November 2006, 16:16
So, entlich habe ich genie ;-) es geschafft. Es funktioniert wunderbar. Jetzt ist mein CD Treiber vorerst fertig. Ich muss halt nur noch an einen echten 64 Bit PC ran kommen um zu testen ob das OS auf diesen funktioniert.

wie geht das denn jetzt? :?:
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: Coffee am 10. November 2006, 18:08
So, entlich habe ich genie ;-) es geschafft. Es funktioniert wunderbar. Jetzt ist mein CD Treiber vorerst fertig. Ich muss halt nur noch an einen echten 64 Bit PC ran kommen um zu testen ob das OS auf diesen funktioniert.

@Coffee: Ich mein du hast ein 64 Bit PC mit Nvidia Karte drin, oder? Könntest du dann einen kleinen Test für mich machen?

thx

bitmaster

nope 32bit nvidia und 64bit ati... aber ich könnte das nat. umbauen... sag nur bescheid was de brauchst an arbeitsspecierh  und so dann bau ich den testpc ;)
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 10. November 2006, 21:20
@Coffee: Das wäre echt nett. Dann bekommst du das CD Image (aber nicht weiter geben, da es noch nicht bereit ist für die nächste Version). Der PC sollte mit folgendem ausgestattet sein:

CPU mit EM64T oder AMD64 Unterstützung
min. 32 MByte RAM
Nvidia Grafikkarte (muss VESA 2.0 unterstützen)
ATAPI CD/DVD Laufwerk

Sag bescheid, wenn dein Rechner bereit ist.

vielen dank

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: Coffee am 11. November 2006, 19:36
@Coffee: Das wäre echt nett. Dann bekommst du das CD Image (aber nicht weiter geben, da es noch nicht bereit ist für die nächste Version). Der PC sollte mit folgendem ausgestattet sein:

CPU mit EM64T oder AMD64 Unterstützung
min. 32 MByte RAM
Nvidia Grafikkarte (muss VESA 2.0 unterstützen)
ATAPI CD/DVD Laufwerk

Sag bescheid, wenn dein Rechner bereit ist.

vielen dank

bitmaster

ok also der hat jetz

amd athlon 64 3800+
1024 MB RAM
nvidia 7600GT
und n dvdlaufwerk
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 11. November 2006, 21:25
@Coffee: Dann meld dich mal bei MSN und ich schick dir das Image.

vielen dank

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 15. November 2006, 16:43
Ich habe noch mal eine Frage. Wenn das Ganze jetzt unter P-ATA Funktioniert, funktioniert das dann auch unter S-ATA oder muss man da wieder extra einen Treiber schreiben?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: stultus am 15. November 2006, 22:21
Ich folger aus der simplen Tatsache dass jedes System getrennte P-ATA/IDE und S-ATA-Treiber hat dass das nicht so wirklich kompatibel ist. Aber wer hat heutzutage schon ernsthaft S-ATA-Laufwerke verbaut? *g*
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 16. November 2006, 07:15
Zitat
Aber wer hat heutzutage schon ernsthaft S-ATA-Laufwerke verbaut? *g*
Die neuen Computer die man sich z.Z. kaufen kann!?

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 25. November 2006, 12:05
Also wie gesagt ist mein ATAPI CD-Laufwerk Treiber fertig (oder sagen wir funktionsfähig). Aber mein OS soll ja auch auf PCs mit CD/DVD etc. Laufwerken Laufen die ein S-ATA Laufwerk haben. Jetzt wurden mir von mehreren gesagt das ich dafür einen neuen Treiber benötige. Aber ich habe jetzt mal in meinem PC-Hardwarebuch unter S-ATA nachgeschaut. In der Ausgabe 7 auf der Seite 912 ganz unten steht:

Zitat
Zur Software-Seite hin ist der Serial ATA zum parallelen ATA-Standard völlig kompatibel, d.h. es können die gleichen Befehle und Treiber verwendet werden, weil die entsprechende Umsetzung und Protokollanpassung auf der untersten Chip-Ebene stattfindet. Die Kommandos und Registerinhalte werden in Pakete verpackt, seriell übertragen und vom Gegenüber wieder parallelisiert und als übliche ATA-Befehle ausgeführt.

Das heißt ich brauche doch keinen eigenen S-ATA Treiber? Wenn das OS auf ATAPI CD-Laufwerke läuft, läuft es auch auf S-ATA CD Laufwerke?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 26. November 2006, 17:58
Zitat
S-ATA scheint demnach wirklich im Software Interface kompatibel zu sein
Das heißt man muss nichts ändern? Es würde ohne eine Änderung auch mit S-ATA Laufwerken funktionieren?

thx

bitmaster
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: Coffee am 26. November 2006, 18:53
heyho hab mal ne frage von welchem buch redet ihr genau (also mit autor und/oder so bitte)...
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: MNemo am 26. November 2006, 21:25
heyho hab mal ne frage von welchem buch redet ihr genau (also mit autor und/oder so bitte)...
PC Hardwarebuch
Aufbau Funktionsweise Programmierung
7.Auflage
3-8273-2014-3
Addison-Wesley
Hans-Peter Messmer & Klaus Dembowski



(ich habs auch)
Titel: Re: CD-ROM ansprechen + welches Dateisystem
Beitrag von: bitmaster am 03. December 2006, 11:45
Zitat
Man braucht eine Lizenz um einen AHCI Treiber schreiben zu dürfen
Kann man denn über Ports das SATA Laufwerk in den compatible Mode laufen lassen, so das man mit dem ATAPI Treiber arbeiten kann? Dafür bräuchte man dann ja keine Lizenz!?

thx

bitmaster