Sourcecode Fortschritt



  • Version 0.0.4.5:

    - Beepton mit AC97 erzeugt


  • Mod

    "0.0.4.6 - Rev: 1390" (in Datei versehentlich 0.0.4.5)

    ac97.h angepasst und erweitert entsprechend AC97 spec.

    Bezüglich NAM-bar und NABM-bar Diskussion siehe: http://www.koders.com/c/fidCF4F2F224B1F26DCA9CACD6398B49BBC3C8920F0.aspx?s=cdefs.h



  • Version 0.0.4.7:

    - AC97-Interrupts behandelt -> System friert nicht mehr ein
    - Konfiguration gemäß Spezifikation (soweit vorhanden) angepasst
    - Deskriptoren und Buffer dynamisch allokiert und aligned



  • Version 0.0.4.8:

    - Diverse kleinere Codekorrekturen basierend auf cppcheck-Ergebnissen:
    -- Debug-Code in dhcp.c hinter Präprozessordirektiven versteckt
    -- Vorzeichen von Variablen und in printf-Formatstrings korrigiert



  • Version 0.0.4.9:

    - Neues Userprogramm "Device Manager" (devmgr.elf): Zeigt PCI-Geräte mit Namen und Details an.
    - PCI-Vendorliste aus dem Kernel entfernt (Kernel erheblich schlanker (50% kleiner), Funktionalität nun in devmgr.elf)
    - Bugfix: ipc_getFolder() gibt keinen Datenmüll mehr zurück



  • Version 0.0.4.10:

    - folderAccess für Wurzelverzeichnis implementiert (Ergebnis kann bis auf weiteres mit strg+f aufgerufen werden)
    - HACK im devicemanager entfernt (obsolet, führte zu Schreibzugriffen auf nicht allokierten Speicher. Danke Jonas_OSDever für die Hilfe beim Debuggen.)
    - Bugfix: disk_t::name kann 0 sein (bei Disketten)
    - Ausgabe "Unknown" für unbekannte Disk-/Port-Typen



  • Version 0.0.4.11:

    - ATA/HDD-Treiber (Patch von JonasOSDever. Siehe auch: http://www.c-plusplus.net/forum/311318)
    - Absturz wg. uninitialisierter Variable behoben



  • Version 0.0.4.11 - Revision 1396:

    - svn::mime-type und svn::executable für diverse Dateien gesetzt
    - PrettyOS.odt und Syscalls.odt aktualisiert. Erstere neu formatiert.



  • Version 0.0.4.12:

    - GCC-4.7.2-Kompatible Userlib
    - Fehler durch ungenaue Fließkommarechnungen bei clang behoben
    - Compilerfehler mit _FAT_DIAGNOSIS_ behoben
    - disk_t::size als 64-bit Integer - Festplatten können größer als 4 GiB sein. %Sa, %Sg, %Sm und %Sk erfordern 64-bit int.
    - Verschiebung der PCI-Vendorliste in VS10-Projektmappe nachgetragen
    - VCcompatibility.h ergänzt und aktualisiert (GCC 4.7.2 als Standard)



  • Version 0.0.4.13:
    - bochs.bxrc korrigiert: Aktualisiert für Bochs 2.6, relativer Pfad zum Floppyimage
    - Optimierung: memset durch statische Array-Initialisierung ersetzt, wo möglich
    - Scope einiger Variablen im FAT-Treiber reduziert
    - Typkorrekturen: uint8_t vs. int8_t/char
    - Fehlerbehebung in C++-Userlib: clang verhält sich wie 4.5/4.6



  • Version 0.0.4.14:
    - HDD-Treiber auf Interrupts umgebaut (JonasOSDever)
    - Compilerfehler in paging.c behoben, wenn _DIAGNOSIS_ aktiviert ist (JonasOSDever)
    - Datum im Bootscreen auf 2013 gesetzt



  • Version 0.0.4.15:

    - Codeduplikation in makefiles reduziert
    - VS-Ausgabeformat bei Clang verwendet
    - Lowercase/Uppercase-Problem unter Linux behoben (Fund von Paddy)
    - void foo(); prototypen zu void foo(void) geändert. In C besteht ein Unterschied, nämlich ob die Funktion beliebig viele Argumente akzeptiert oder nicht. Dabei aufgedeckte Fehler behoben. (Fund von Paddy)
    - jmp $2 statt 4x nop im hdd-Treiber
    - Padding-Bytes in einigen Strukturen reduziert



  • Version 0.0.4.16:

    - Shortcuts in PrettyOS.odt dokumentiert
    - CPUID-Funktionen optimiert und Problem mit Clang gelöst
    - Audio-Treiber nun deaktivierbar (_AUDIO_ENABLE_)
    - Zwei potentielle Deadlocks in events.c behoben
    - Eine Allokation in executable.c eingespart
    - Task-Log-Ausgabe besser formatiert
    - Fehlerkorrektur im Maustreiber: Eine PS/2-Maus sendet anscheinend immer ACK



  • Version 0.0.4.17:

    - Register/Memory-Clobbering bei Inline-Assembler (behebt u.a. bug mit GCC 4.7.2)
    - Fehler in vsnprintf behoben: String muss nullterminiert werden (wenn Platz ist)
    - Optimierungsstufe -O2 auch im Userspace
    - Fehlendes va_end in serial_log ergänzt



  • Version 0.0.4.18:

    - CapsLock-Unterstützung im Keyboardtreiber eingebaut
    - make_initrd und CreateFloppyImage aufgeräumt. make_initrd als C++-Program umgeschrieben. Flexible Anzahl von Headern in Ramdisk (reduziert Kernelgröße um 4,67 KiB)
    - ivt-Pointer in vm86.c volatile, damit der Speicherzugriff nicht wegoptimiert wird
    - Bugfix in Shell: Letzten 3 Zeichen einer Zeile werden richtig gelöscht



  • Version 0.0.4.19:

    - ataPoll in readSectorPIOLBA28 aufgerufen, um Lesefehler zu beheben (JonasOSDever)
    - maxcls im FAT-Treiber nicht mehr von USB-Stick-Größe abhängig
    - ATA/HDD im Devicemanager nicht mehr als "Unknown" angezeigt
    - Logausgabe im HDD-Treiber Windows-konform umgebrochen (\r\n)
    - HDD-Testcode in ckernel.c entfernt, da obsolet



  • Version 0.0.4.20:

    - Unterstützung für C++-Userprogramme in user/other_userprogs
    - Neues Userprogramm: Editor (C++). Kann bislang nur Dateien anzeigen (absoluten Pfad als erstes Kommandozeilenargument übergeben)
    - -ffreestanding sollte nicht für Userprogramme verwendet werden (Ermöglicht C++-Userprogramme mit Clang)
    - fgetc() sollte EOF zurückgeben, falls das Dateiende erreicht wurde
    - PRINT+h (Screenshot auf Harddisk) dokumentiert
    - Hacks in der Umgebung von saveScreenshot etwas verringert



  • Version 0.0.4.21:

    - Performance-Verbesserung für Textmodus: VGA-Cursor deutlich seltener verschoben (Behebt Einfrieren in Hyper-V)
    - Hinweise zu volatile bei inline-Assembler aus dem GCC-Manual befolgt - entfernt, wo unnötig



  • Version 0.0.4.22:

    - ATA-Treiber läuft nun unter echter Hardware (VORSICHT bei HDDs, die wichtige Dateien enthalten!); Diverse Probleme behoben.
    - Bugfix in printf: Größenangaben > 4 GiB möglich
    - Fehlerausgaben im Maustreiber vereinheitlicht
    - test-results.txt aktualisiert
    - sysenter-Handler etwas optimiert
    - refreshUserScreen aktualisiert nur noch den User-Bereich (Scrollen kopiert weniger Zeichen im Textmodus)



  • Version 0.0.4.23:

    - Falsche Bootdevice-Angaben im Bootloader Stage 1 und 2 korrigiert (Erhöhte Erfolgswahrscheinlichkeit, wenn man von USB booten will)
    - timeout-Funktion von scheduler_blockCurrentTask korrigiert
    - Nullterminierung in vsnprintf/snprintf sichergestellt
    - C99-Funktionen in C-Standardbibliothek ergänzt
    - IRC-Client erweitert: Kommandos können gesendet werden (mit / beginnen, oder strg+c) (JonasOSDever)


Anmelden zum Antworten