Ich würde diesen Thread gerne nutzen, um die Fortschritte festzuhalten.
Prä-Geschehenes:
Badestrand hat das Paging-Modul und Heap überarbeitet (*klick*)
Erhard hat Uhrzeit und Datum (von Cuervo und Erhard) eingebaut (*klick*)
Zuletzt bearbeitet von Erhard Henkes am 14:15:03 28.11.2009, insgesamt 1-mal bearbeitet
Version 26: Hauptsächlich ELF-Loader, sonst einige kleine Sachen:
- Simpler (!) ELF-Loader setzt bei User-Programm Einstiegsadresse bei 0x01400000 (20 MB) voraus, lädt den Source dahin und erstellt den Task.
- Die Build.bat-Datei angepasst, dass sie auch den stage1- und stage2- bootloader miterstellt.
- Interrupt-Krams zusammengefasst, bitte um Rückmeldung. Ich wollte es vor allem übersichtlicher machen, sind auch zwei Dateien rausgeflogen.
- Key-Queue aus der ODA-Struktur nach keyboard.c verlegt
- Ausgabe der Memory Map in paging.c, wenn der Diagnose-Schalter an ist
- Zur Memory Map wird nicht mehr die Anzahl der Einträge gespeichert, die Liste endet mit einem Eintrag der Größe 0.
Version 27: Kleine Korrektur in flpydsk.c
with real floppy: qemu runs 'fdir' correctly, bochs runs fdir now until return values (rev 17 works, but I do not know why), problems on real hardware still ongoing
Version 28:
changes in cmos.c for weekday (there have been problems at some hardware)
switch_context (syscall) uses 0x7E as interrupt no.
task switch now works with 0x20 or 0x7E
_________________ OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
Zuletzt bearbeitet von Erhard Henkes am 21:14:53 23.11.2009, insgesamt 2-mal bearbeitet
Version 29:
Floppy disk driver a little bit improved (qemu, virtualBox runs smoothly)
But still problems with bochs, virtualPC and real hardware.
On real hardware there are time critical steps (now transfer repeated until size=2 (512K sectors size) is returned), and there is a read-sector stop at track limit ( stops at C H S 0 1 18 (LBA 35), does not go to 1 0 2 (LBA 37) ).
Version 30:
Little bug fixes
rotating asterisk got green color
_________________ OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
Zuletzt bearbeitet von Erhard Henkes am 23:48:46 24.11.2009, insgesamt 2-mal bearbeitet
Verzeih die kurze Frage hier - aber weswegen denn auf einmal Englisch in nem eher deutschen Forum wo doch auch all die anderen Diskussionen auf Deutsch geführt werden?
Is das ned eher Sinnfrei?
(Und wenn die Frage hier ner reinpasst büdde abspalten oder so )
- getCurrentSeconds() eingebaut: liefert Zeit in Sekunden seit PrettyOS-Start (allerdings ticks-abhängig, funktioniert nicht zwischen cli/sti)
- Statusleiste (status bar) implementiert; Scrolling, Cursor- und Tasksteuerung angepasst
- Floppy-Treiber beim Warten auf Interrupt und auf Read/Write-Transfer um einen Timeout (5 sec) erweitert, damit Kernel hier nicht mehr dauerhaft bei ausbleibendem Interrupt o.ä. hängen bleibt (auf 2 von 3 PCs wird das root directory mit fdir gelesen, ansonsten geht es nach 5 sec weiter im Code mit Fehlermeldung "timeout"). VirtualPC bleibt jetzt auch nicht mehr hängen, funktioniert aber noch nicht richtig bezüglich root dir Ausgabe.
Auf VMWare läuft PrettyOS auch (Aussage Cuervo).
_________________ OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
Zuletzt bearbeitet von Erhard Henkes am 14:18:33 28.11.2009, insgesamt 3-mal bearbeitet
Auf mancher Hardware klappt das Auslesen von Floppy-Inhalten nur jedes zweite Mal (Grund noch nicht klar). Work-around:
- User-Funktion floppy_dir() und Kernel-Funktion flpydsk_read_directory() erhielten einen Rückgabewert. fdir liest nun noch ein zweites Mal, wenn der Rückgabewert keine Inhalte anzeigt.
- DMA-Puffer wird vor dem Auslesen der root dir gelöscht, damit man die echten gelesenen Inhalte und keine alten Daten sieht.
- Timeout wurde von 5 auf 2 Sekunden verkürzt.
_________________ OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
Zuletzt bearbeitet von Erhard Henkes am 20:28:10 28.11.2009, insgesamt 1-mal bearbeitet
- time.h/time.c ergänzt, Datum/Zeit aus cmos.h/c in dieses Modul überführt
- Statusleiste: Datum und Zeit, zusätzlich vergangene Sekunden seit dem Start
- aktuelles FloppyImage.bin
- einiges wurde ausgeblendet (Ausdruck nach 'Diagnose' verlagert)
FloppyImage (im Verzeichnis 'kernel') wurde mitgeliefert, damit man die neuesten Features sofort ansehen kann, z.B. mit Qemu (batch-Datei für Windows):
Code:
qemu-system-x86_64.exe -usbdevice mouse -fda FloppyImage.bin -boot a -localtime
Code:
qemu-system-x86_64.exe -usbdevice mouse -fda FloppyImage.bin -boot a -localtime
Code:
qemu-system-x86_64.exe -usbdevice mouse -fda FloppyImage.bin -boot a -localtime
_________________ OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
Zuletzt bearbeitet von Erhard Henkes am 05:53:55 29.11.2009, insgesamt 3-mal bearbeitet
Nächstes Thema anzeigen Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum nicht antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums
für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de
Werbekostenerstattung verdient werden kann.
Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de
enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt
(vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in
privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden.
Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere
übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.