Sourcecode Fortschritt



  • Revision 291:

    - Scroll-Begrenzung durch User eingefügt (Syscall)
    - Shell macht davon Gebrauch (Ehenkes Infoleiste gerettet)
    - Begrenzung von Status und Titelleiste nun mit grauer Trennlinie
    - sprintf (von Iteem), wird auch nun benutzt statt manuellem Zusammenbau im kernel.
    - Kleinigkeiten



  • Rev. 292:

    Style-Anpassungen^^ (schonwieder) in ckernel.c, ehci.c, file.c, syscall.c, video.c usw.



  • Revision 293:

    - Umfangreiche Änderungen an der shell
    -- Infobereich restauriert
    -- Feste Eingabezeile
    -- Neues Design
    - Syscall zum Begrenzen des Scroll-Bereichs mangels Nutzen & Konformität mit gutem Design wieder entfernt; Größe nun durch Kernel festgelegt



  • Revision 294:

    - Nun gehen auch mehrere Userprogs gleichzeitig
    - KQs der Konsolen getrennt.

    Problem: gelegentlich #PFs in Userprogrammen



  • Revision 295:

    - PF-Ursache behoben (Shell auf anderen Stackpointer als Userprogs)
    - Umsortierung in task.c
    - HELLO.ELF in Version 0.52; Üblen "Hack" beseitigt


  • Mod

    Rev. 296:

    file.c: Zwischenschritt



  • Revision 297:

    - C++-Userprogramm kompiliert wieder, c++-Sourcefile für Userlib beigelegt (für C++-spezifische Features)
    - Kleinere Umbauten und Formatierungskorrekturen

    PS: Ich bin dann bis Sonntag im Urlaub und von der Außenwelt abgeschnitten...



  • Revision 298:

    * Bootscreen



  • Revision 299:

    * Bootscreen: W spitzer
    * ckernel.c: auskommentieren des Screenshot-Codes



  • Revision 300:

    - BS wird nun vor der restlichen Ausgabe angezeigt, damit man diese vollständig sieht.
    - BS in Funktion ausgelagert


  • Mod

    Rev. 301:

    paging.c: 0x400000 bis 0x600000 wird nicht mehr für User frei gegeben
    ehci.c: beschleunigte Ausgabe
    os.h/start.asm: USER-Stack 0x1420000



  • Revision 302:

    * Leichte optische Anpassungen bei einem Systemfehler, dient der besseren Übersicht

    Leider verweigert mein SVN-Client grundsätzlich das Hochladen des Diskettenimages. Ich bitte diesbezüglich um Verständnis.


  • Mod

    Version 0.0.0.302 läuft auf VMWare, VBox, VPC, Qemu, Bochs 🙂

    Bitte beachten, dass alte elf-Dateien, die mit esp 0x500000 oder 0x600000 in start.asm compiliert wurden, jetzt nicht mehr laufen.


  • Mod

    Rev. 303:

    task.c: nun den user-esp richtig übergeben in create_task

    if (privilege == 3)
        {
            // general information: Intel 3A Chapter 5.12
            *(--kernel_stack) = new_task->ss = 0x23;    // ss
            *(--kernel_stack) = USER_STACK; // esp
            code_segment = 0x1B; // 0x18|0x3=0x1B
        }
    

    start.asm: kein setzen des esp mehr notwendig, damit mehr Freiheit im OS

    _start:
        ; mov esp, 0x1420000 ; stackpointer <--- nicht mehr notwendig
        call _main	
        call _exit
    

    👍



  • Revision 304:

    * Neue Startmelodie

    // Melody
    	// C Es F G F Es
    	// C E F G F E C
    	// http://www.flutepage.de/deutsch/goodies/frequenz.shtml (German)
    	// http://www.flutepage.de/englisch/goodies/frequenz.shtml (English)
    	beep(523,200); // C
    	beep(622,200); // Es
    	beep(689,200); // F
    	beep(784,200); // G
    	beep(689,200); // F
    	beep(622,200); // Es
    
    	beep(523,200); // C
    	beep(659,200); // E
    	beep(689,200); // F
    	beep(784,200); // G
    	beep(689,200); // F
    	beep(659,200); // E
    
    	beep(523,1000); // C
    

    * Makefile verändert: Es werden jetzt FloppyImage.bin und FloppyImage.img erstellt => Kompatibilität verbessert und KERNEL.BIN wird beim clean gelöscht, weil der ab und zu noch das alte verwendet hat^^
    * const char* version = "0.0.0.303"; wurde zu const char* version = "0.0.0.304";

    Leider läuft diese Version (bzw. die vorherigen) auf keinem meiner PCs.. einmal PF nach starten der Shell, einman GPF nach laden des Kernels (direkt GPF als erste Ausgabe)...


  • Mod

    Rev. 305:

    - Korrekturen in console.c (Hinweis +gjm+) integriert
    - flush.asm (Kommentar verbessert)

    Ein PC stürzt noch bei der Eingabe einer gültigen Zahl in TTT ab. Das könnte aber auch am User-Programm liegen.


  • Mod

    Rev. 306:

    initEHCIflag auf false initialisiert (Dank an Cuervo für den Hinweis!)


  • Mod

    Rev. 307:

    TTT: atoi aus userlib verwendet, geringe Veränderungen bei Eingabe (auf einem PC stürzt das Programm allerdings immer noch nach Eingabe einer gültigen Ziffer ab, auf einem anderen läuft es).


  • Mod

    Rev. 308:

    TTT 0.54 (hello.c): Globale Variablen beseitigt --> Kein Absturz mehr bei Eingabe valider Daten!

    Wieso können auf manchen PCs keine globalen Variablen verwendet werden im User-Programm? Wo liegt das genaue Problem?



  • Erhard Henkes schrieb:

    Wieso können auf manchen PCs keine globalen Variablen verwendet werden im User-Programm? Wo liegt das genaue Problem?

    Die Funktionen sind nicht mehr reentrant 😕


Anmelden zum Antworten