Der Assemblerlehrgang?
-
Hey, ***, guck mal hier:
http://www.nondot.org/sabre/os/articles
hab ich im Asm FAQ hier gefunden! Cool!
-
*sigh* Nagut, dann werde ich den Kleinkram mal aufdroeseln...
xyzxyzxyz schrieb:
Der Bootsektor macht nix anderes als einen BIOS-Call auszufuehren, der weitere Sektoren an die Adresse 002C (oder 002E, weiss nicht mehr) zu lesen.
Na etwas mehr laeuft da schon. Der DOS-Bootsektor auf Disketten enthaelt eine primitive unterstuetzung zum lesen des FAT12-Dateisystems. So laedt das Teil die Datei io.sys, die den DOS-Kernel enthaelt, teilweise nach 00700h. Auf Festplatten ist das Teil nochmal um einiges komplizierter.
xyzxyzxyz schrieb:
Anschliessend geh auf die Intel-Webseite und lad dir die PDF-Files fuer die IA-32 Prozessorreihe runter. Da steht dann drin, wie Du z.B. in den Protected Mode schaltest.
Ok... Bringt jemandem, der sich mit Assembler und erst recht dem PM nicht auskennt bestimmt furchtbar viel. Naja, whatever.
xyzxyzxyz schrieb:
Ueber die VGA oder VESA Standard-Schnittstelle (BIOS Calls oder Port-Adressen) kannst Du dann rausfinden, wie Du in den Grafikmodus schaltest, die Aufloesung umschaltest usw.
VGA+Ports geht vielleicht noch, VESA+Ports eher nicht. Und im Protected Mode ist das ja auch noch so eine Sache...
xyzxyzxyz schrieb:
Ich kann Dir gleich sagen: Es ist eine ziemliche Sysiphus-Arbeit. Moeglicherweise musst Du auch noch Treiber fuer verschiedene Grafik- und Soundkarten programmieren.
Die Grafikkarte bringt normalerweise ihre Treiber in ihrem BIOS mit (VGA/VESA), fuer Soundkarten wird aber sicher ein Treiber benoetigt.
xyzxyzxyz schrieb:
Es hat schon einen Grund, warum es solche Boot-Spiele fuer den PC nicht gibt ...
Ob es Bootspiele fuer PC gab oder nicht, weiss ich nicht (hab' nur 2Diskettengames uebrig... :D), auf jeden Fall gab es Diskettengames fuer DOS. Da brauchst du dann zwar keine Unterstuetzung fuer ein Dateisystem mehr basteln, ansonsten musst du aber immernoch fuer alles deine Treiber schreiben. Von daher waeren Spiele auf bootbaren Disketten fuer PC gar nicht so unwahrscheinlich gewesen. Die Hardware in aktuellen PC ist zwar um einiges komplizierter, im Grunde genommen aber zumeist noch irgendwie zu alter Hardware aus DOS-Zeiten kompatibel (zB. SBPro-kompatibilitaet bei AC97-Soundkarten).
xyzxyzxyz schrieb:
Auf dem PC ist der Aufwand tausendmal hoeher, da ja die Hardware nicht so genau vorhersagbar ist. Wenn Du das Spiel nur fuer eine Hardwarekonfiguration schreiben willst (dann darfst Du aber auch nicht mehr die Karten im Rechner umstecken!!
Naja... Einige Standardschnittstellen gibt es da ja zum Glueck auch heute noch Grafik/FDD/KeyBoard/Mouse(PS/2,COM - bei USB wird es IMHO uU. schwierig)/usw. lassen sich bisher auch noch auf jedem PC im Grunde genommen gleich ansprechen. Nur beim Sound koennte es Probleme geben, wenn die PCI-Hardware nicht SoundBlaster-kompatibel ist.
Da gibt es uebrigens auch Schnittstellen, ueber die sich die Konfiguration der PCI-Hardware sehr einfach auslesen laesst. Das jonglieren mit den Karten sollte also kein Problem machen. Das kommt erst, wenn Karten herausgenommen und durch andere Hardware ersetzt werden.Das war's eigentlich auch schon.
-
Danke!!
Wie ist es eigentlich mit den Timer-Bausteinen? Welche Maximalaufloesung kann man da erwarten? Gibt es einen Trick, Interrupts im Mikrosekundenbereich zu erzeugen?
Ich hab auch ab und zu Anfaelle, ein OS schreiben zu wollen, weil mir kein existierendes so richtig gefaellt.
Gibt's denn irgendein Projekt, das an einem Super-High-Speed-Betriebssystem fuer PC's arbeitet?
Ich bin's leid, dass auf diesen tollen Maschinen soviel Rechenzeit verschwendet wird.
Wieso kommen weder Linux noch Windows bei ihren Zeitscheiben nicht unter die 1-ms- Schwelle?
-
Ich hab grad in der PIT-Beschreibung gelesen, dass der alte PC-Timer schon eine Aufloesung ueber 1 MHz hatte, also sollte das mit den Interrupts im Mikrosekundenbereich eigentlich kein Problem sein, oder? Ich brauche nur den Timer mit dem Wert 1 zu laden, richtig? Oder ist das zu kurz?
Und, muss man bei einem Betriebssystem den BIOS-Interrupt-Handler ausfuehren?
-
Ich bin's leid, dass auf diesen tollen Maschinen soviel Rechenzeit verschwendet wird.
Je öfter du den Timer-Interrupt aufrufst, umso mehr Zeit wird verschwendet. Also widersprichst du dir irgendwie.
Und, muss man bei einem Betriebssystem den BIOS-Interrupt-Handler ausfuehren?
Was soll "der BIOS-Interrupt-Handler" sein?
-
Ringding schrieb:
Je öfter du den Timer-Interrupt aufrufst, umso mehr Zeit wird verschwendet. Also widersprichst du dir irgendwie.
Ach so, ja, ich meinte eher die Task-Switching-Zeitscheiben, je weniger ein Thread drankommt, um so langsamer scheint er zu laufen.
Den Effekt kann man sehr schoen beobachten, wenn man ein Uniprozessorsystem mit einem Multiprozessorsystem (oder eins mit Hyperthreading) vergleicht.
Ein fluessiges Multitasking ist manchmal Gold wert ...
Ringding schrieb:
Was soll "der BIOS-Interrupt-Handler" sein?
Der Timer-Interrupt-Handler im BIOS, der in der PIT-Beschreibung erwaehnt wird, die ich gelesen habe.
Sorry falls ich mich unklar ausgedrueckt habe. Vielleicht liegt's daran, dass ich so doof bin ...
-
xyzxyzxyz schrieb:
Und, muss man bei einem Betriebssystem den BIOS-Interrupt-Handler ausfuehren?
Nein.
-
http://www.linuxgazette.com/issue77/krishnakumar.html
http://www.linuxgazette.com/issue79/krishnakumar.html
http://www.linuxgazette.com/issue82/raghu.html
-
Stark!! Danke!
-
kurz!