Locutus hat geschrieben:@freecrac: Mh, der Link zum Ursprungsprogramm scheint echt tot zu sein. Aber ehrlichgesagt programmiere ich aus Gründen der Wiederverwendbarkeit und Übersichtlichkeit sowieso lieber in C.
Wegen der Übersichtlichkeit programmiere ich lieber alles in Assembler, weil dann sieht man ganz genau was die CPU macht. Daneben schreibe ich dann jedoch auch Erklärungen mit dazu,
damit ich später schneller erkennen kann was der jeweilige Code-Abschnitt genau bezwecken soll. Mit C habe ich hierbei meine Schwierigkeiten z.B. überhaupt einen verwendeten IRQ zu finden,
auch mag ich die gesamte Struktur von C überhaupt nicht leiden. Pascal gefällt mir hierbei schon um einiges besser. Auch mag ich es nicht besonders leiden den Code auf verschiedene Dateien zu zerteilen,
ich habe bisher immer den gesamten Code für eine Anwendung in einer einzigen Quelldatei geschrieben und auf jegliche Macros des Macro-Assemblers verzichtet. Linus Torwald sagt zwar das er ebenfalls eine
objectorientierte Programmierung für besser hält, wesentliche Teile von Linux hat er aber selber nicht mal objectorientiert programmiert. Das klingt schon etwas paradox in meinen Ohren.
Ich muß den Thread zu CDBeQuiet! mal ein wenig aufräumen und in dem Zug stelle ich dann den Quellcode auch online. Wenn du Lust hast, kannst du ja dann mal drüberschauen. Wahrscheinlich habe ich einiges umständlicher gelöst, als es sein muß und außerdem fehlt auch noch die eine oder andere Funktion (z.B. Sicherheitsmaßnahmen wie Erkennung ob es sich Festplatte oder optisches Laufwerk handelt). Außerdem fehlen noch Sachen wie Abfragen des IDE-Error-Registers etc.
Gruß,
locutus
Mich interessiert es schon wie man ein CD-Rom ausbremsen kann, doch wie schon erwähnt habe ich mit C oft erhebliche Probleme so das es mir schwer fällt den Code zu lesen.
Beispielsweise gibt es ein C-Listing um VESA Generalized Timing Formula(GTF siehe url) selber zu berechnen und ich war leider immer noch nicht in der Lage die Funktionsweise
dort richtig zu erkennen. So habe ich versucht mit dem Taschenrechner die Formel nachzurechnen, doch ich kam immer nur auf falsche Werte.
http://www.opensource.apple.com/source/ ... ools/gtf.c
Aber dein Listing schaue ich mir natürlich auch gerne mal an. Möglicherweise kann ich etwas daraus lernen.
...
Bei der Suche nach "gtf.c" bin ich wieder mal auf ein PDF(diesmal von der Universität Ulm) gestossen wo behauptet wird das man für den lineraren Framebuffer ein 32 Bit-OS benötigt.
Ich weiss wirklich nicht wer so eine falsche Information erstmalig in die Welt gesetzt hat, zumindest scheinen dort die Autoren(P. Schulthess & M. Schöttner) des PDFs nicht wirklich
den Unterschied zwischen dem 16Bit-Mode und dem 32Bit-Mode zu kennen und so wird aus Unwissenheit darüber diese falsche Information immer weiter verbreitet.
http://www-vs.informatik.uni-ulm.de/tea ... 2/Kap7.pdf siehe Kapitel 7.5 Linearer Bildspeicher Seite 201. Die dortigen Informationen sind falsch und natürlich ist es auch möglich
im 16Bit-Mode den gesamten 4GB-Adressraum(so auch den linearen Framebuffer) zu adressieren. Das geht mit dem 16Bit-PM und dem 16Bit-Unrealmode bei der Verwendung eines 80386+.
In meinen Beiträgen hier
http://www.dosforum.de/viewtopic.php?f=15&t=2921 habe ich den Unterschied zwischen dem 16Bit-Mode und dem 32Bit-Mode mal etwas genauer erklärt.
Dirk