Sourcecode Fortschritt


  • Mod

    Rev. 317:

    Funktion "screenshot" aus ckernel.c ausgelagert nach console.c:

    ckernel.c:

    if (CurrentSeconds%120==3)
                {
                    char timeStr[10];
                    sprintf(timeStr, "TIME%s", timeBuffer);
                    screenshot(timeStr);
                }
    

    console.c:

    int32_t screenshot(char* name)
    {
        // buffer for video screen
        uint8_t videoscreen[4000+100]; // only signs, no attributes, 50 times CR LF (0xD 0xA) at line end
        int32_t NewLine = 0;
    
        for (uint16_t i=0; i<4000;i++)
        {
            uint16_t j=i+2*NewLine;
            videoscreen[j] = *(uint8_t*)(0xB8000 + 2*i); // only signs, no attributes
            if ((i%80) == 79)
            {
                // CR LF (0xD 0xA)
                videoscreen[j+1]= 0xD;
                videoscreen[j+2]= 0xA;
                NewLine++;
            }
        }
        return flpydsk_write(name, "TXT", (void*)videoscreen, 4100);
    }
    
    PrettyOS [Version 0.0.0.317]                                               Shell
    --------------------------------------------------------------------------------
                                              ##                                    
                                             ##                                     
    
                         Copyright (c) 2010 The PrettyOS Team                       
    
                         This bootscreen has been created by                        
    
                         Cuervo, member of the PrettyOS team                        
    
    Memory size: 128 MiB / 134 MB  (134217728 Bytes)                                
    #0  0:0.0        dev:1237h vend:8086h IRQ:0                                     
    #1  0:1.0        dev:7000h vend:8086h IRQ:0                                     
    #2  0:1.1        dev:7010h vend:8086h IRQ:0                                     
    #3  0:1.2        dev:24CDh vend:8086h IRQ:11  USB EHCI F0000000h MMIO sz:4096   
    
    >>> >>> function: analyzeEHCI                                                   
    HCIVERSION: 0100h HCSPARAMS: 00000004h Ports: 4                                 
    HCCPARAMS: 00000080h No ext. capabil.                                           
    OpRegs Address: F0000020h                                                       
    #4  0:1.3        dev:7113h vend:8086h IRQ:9                                     
    #5  0:2.0        dev:00B8h vend:1013h IRQ:0                                     
    #6  0:3.0        dev:100Eh vend:8086h IRQ:11                                    
    
    1.44 MB FDD device 0                                                            
    
    <RAM Disk at C0005000h DIR> dev                                                 
    35      info                                                                    
    13108   shell                                                                   
    
    #NM: FPU is used. pCurrentTask: C0000070h                                       
    #NM: FPU is used. pCurrentTask: C0000000h
    


  • Revision 318:

    * Maus-Support (sogar mit Scrollwheel, falls von der Maus unterstützt)! IRQs werden angezeigt, mit Status!


  • Mod

    Rev. 319:

    - mouse.c: mouse print auf eine Zeile
    - scheduler.c (Beginn der Auslagerung des Dispatchers/Schedulers, separat von task.c)

    scheduler.h/c wurde versehentlich nicht committed. 🙄



  • Rev. 320:

    - Stylekorrekturen
    - makefile und build.bat auf FloppyImage.img umgestellt
    - scheduler.c/.h jetzt dabei


  • Mod

    Rev. 321:

    Code review:

    BL1, 
    BL2,
    ckernel:
        gdt_install();
        idt_install();       // cf. interrupts.asm
        timer_install(1000); // Sets system frequency to ... Hz
        keyboard_install();
        //...	
        syscall_install();
        fpu_install();
    

    next step: paging, heap, tasking, pci-scan, mouse, ehci, ...

    Thx to MrX, Cuervo, Tobiking, Iteem 👍



  • Revision 322:

    * Mausverbesserungen: Stabilisation, experimenteller Support für 5 Tasten (muss aktiviert werden, ist im Moment instabil und deswegen deaktiviert) und mouse_uninstall(), das sogar die Maus zurücksetzt.

    EDIT:

    * Des weiteren wurden einige Funktionen ausgelagert, z.B. die Funktion zum Setzen der Sample-Rate!



  • Revision 323:

    - makefile-Bug bezüglich Shell behoben
    - rebuild.bat hinzugefügt: führt target clean vorm Build aus



  • Revision 324:

    * Kleinere Optimierungen

    EDIT: Fehler, nicht-Windows nimmt jetzt i586-elf- gcc und binutils.. sry..


  • Mod

    Rev. 325:

    task.c überarbeitet (Code Review)


  • Mod

    Rev. 326:

    weitere Funktionen nach scheduler.c ausgelagert


  • Mod

    Rev. 327:

    Multithreading - erster Versuch.

    Klappt noch ncht komplett, aber Bootscreen erscheint schon als Thread. Nach Laden von TTT hängt jedoch noch was.


  • Mod

    Rev. 328:

    Jetzt geht es mit dem ersten Multithreading. 😕



  • Revision 329:

    - build.sh auf FloppyImage.img umgestellt (In Ermangelung von Linux kann ich dennoch nicht beurteilen, ob diese Datei funktioniert)
    - HELLO.ELF jetzt in version 0.5.7 (Zählweise geändert, Float-Test weg, Wartet am Ende auf Tastendruck)
    - Shell: testch nicht mehr genutzt
    - Float-Test im ckernel.c weg, #NM-Ausgabe in Diagnosis-Modus verlegt
    - "Aufräumarbeiten"


  • Mod

    Rev. 330:

    Zwischenschritt: read/write-Sperre by Floppy Disk Transfer (noch nicht sicher)
    in oda, os.h:

    bool flpy_ReadWriteFlag[4];  // 0: ready      1: busy (blocked)
    


  • Revision 331:

    - DIAGNOSIS-Modus repariert
    - Vergabe von Konsolen nicht mehr vom Namen der Konsole abhängig, sondern vom Aufruf von create_ctask oder create_task (analog auch bei threads) -> Nun wird der String in elf_exec geprüft. (Schiebt das Problem eine Ebene höher)
    - HELLO.ELF grundlegend überarbeitet: Bemängelte Probleme behoben
    - makefile: Unterscheidung zwischen WINDOWS, MACOSX und anderen. (Cuervo: Bitte testen)
    - Altlasten aus der Shell entfernt
    - Aufräumarbeiten (Formatierungen)



  • Revision 332:

    * Verbesserung des Makefiles (MrX hat einen Fehler gemacht, gcc wurde 2x gesetzt und somit das Auswahlverfahren umgangen)

    Ansonsten war das Makefile wirklich gut^^


  • Mod

    Rev. 333:

    kleine Änderungen


  • Mod

    Rev. 334:

    task.c: address of exit at top of stack in create_thread (avoids exit in body of functions)



  • Revision 335:

    - "typedef-structs" in os.h eingesetzt
    - start.asm von Altlasten befreit
    - Screenshot nun auf Knopfdruck (Ctrl+s)
    - Pointer-Typ-Änderungen (BT 2982518)


  • Mod

    Revision 336:

    - ehci.c: Port-Info (Infobereich) korrigiert
    - keyboard.c: Ausgabe von 's' unterdrückt bei Strg+s (screenshot)
    - file.c: Textausgabe (Info) beim Abspeichern verbessert

    Simulation mit Qemu:

    <Floppy Disc Directory>                                                         
    PRETTYOS        0 byte           (vol)  1st sector: 31                          
    BOOT2.BIN       957 byte         (arc)  1st sector: 33                          
    KERNEL.BIN      79864 byte       (arc)  1st sector: 35                          
    HELLO.ELF       7791 byte        (arc)  1st sector: 191                         
    TIME4.TXT       4100 byte        (arc)  1st sector: 207
    

    TIME4.TXT:

    PrettyOS [Version 0.0.0.336]                                               Shell
    --------------------------------------------------------------------------------
    Mouse sent unknown package!                                                     
    Memory size: 128 MiB / 134 MB  (134217728 Bytes)                                
    #0  0:0.0        dev:1237h vend:8086h IRQ:0                                     
    #1  0:1.0        dev:7000h vend:8086h IRQ:0                                     
    #2  0:1.1        dev:7010h vend:8086h IRQ:0                                     
    #3  0:1.2        dev:24CDh vend:8086h IRQ:11  USB EHCI F0000000h MMIO sz:4096   
    
    >>> >>> function: analyzeEHCI                                                   
    HCIVERSION: 0100h HCSPARAMS: 00000004h Ports: 4                                 
    HCCPARAMS: 00000080h No ext. capabil.                                           
    OpRegs Address: F0000020h                                                       
    #4  0:1.3        dev:7113h vend:8086h IRQ:9                                     
    #5  0:2.0        dev:00B8h vend:1013h IRQ:0                                     
    #6  0:31.0       dev:8139h vend:10ECh IRQ:11                                    
    BaseAddressRTL8139_MMIO mapped to virtual address FFF00000h                     
    
    1.44 MB FDD device 0                                                            
    
    <RAM Disk at C0007000h DIR> dev                                                 
    35      info                                                                    
    12918   shell                                                                   
    
    >>> >>> function: initEHCIHostController                                        
    
    >>> >>> function: startHostController                                           
    reset HC                                                                        
    
    >>> >>> function: DeactivateLegacySupport                                       
    
    DeactivateLegacySupport: eecp = 0000h                                           
    No valid eecp found.                                                            
    
    HCHalted bit set to 0 (OK), ports can be enabled now.                           
    >>> >>> function: enablePorts                                                   
    
    >>> >>> function: resetPort 1                                                   
    
    $>                                                                              
    
    --------------------------------------------------------------------------------
        _______                _______      <>_<>                                   
       (_______) |_|_|_|_|_|_|| [] [] | .---|'"`|---.                               
      `-oo---oo-'`-oo-----oo-'`-o---o-'`o"O-OO-OO-O"o'                              
    --------------------------------------------------------------------------------
    Friday, April 09, 2010, ........   3 s runtime. CPU: 7289 MHz                  /
    

    TODO:
    @Cuervo: Dieses "Mouse sent unknown package!" könnte man vielleicht noch untersuchen oder unterdrücken. Sieht unschön aus. 😉


Anmelden zum Antworten