Sourcecode Fortschritt


  • Mod

    Rev. 483:

    Zwischenschritt beim Aufbau des FAT-Moduls (FAT12,16,32).


  • Mod

    Rev. 484:

    Zwischenschritt für Experimente (man sieht hier auch schön, wenn der Code aus dem Datenbereich lesend in die FAT verzweigt. Dieses "Springen" bezüglich der Sektor-Nummer hatten wir bisher nicht verstanden 😉 ):
    Das richtige Entry wird bei FAT32 und Einträgen, die nicht im ersten Cluster der root dir sind, nun also auch in späteren Clustern (Finden via File Allocation Table) gefunden. Leider wird das Programm noch nicht geladen.

    Als Suche ist nach wie vor folgendes eingestellt:
    usb2_msd.c, zeile 645:

    testFAT("pqeq    elf"); 
    testFAT("ttt     elf");
    

  • Mod

    Rev. 485:

    Files lesen von FAT16 und FAT32 funktioniert. 🙂

    Suchstrings noch wie oben.


  • Mod

    Rev. 486:

    - Erkennung MBR verbessert: nur noch 55 AA bei 510/511 und 00 00 bei 444/445 (bei Cuervo klappts jetzt auch)
    - showDirectoryEntry(DIRENTRY dir) korrigiert
    - performAsyncScheduler: sleepMilliSeconds(150 + velocity * 150); (vorher: 200 + velocity * 200)
    - waitForKeyStroke in fat.c eliminiert


  • Mod

    Rev. 487:

    - USB2-Kontrollausgaben vereinfacht
    - Partitionstabelle mit Größe 0x80808080 unterdrückt
    - fat.h/c überarbeitet, etwas komprimiert

    Das beschleunigt die Abläufe und Ladezeiten signifikant.

    Aktuelle Kernelgröße: 99.984 Bytes



  • Rev. 488:

    * Makefile- und Toolanpassungen, nun müssen Mac OS X Benutzer nicht die Tools selbst erstellen. Ausserdem wurde die Übersichtlichkeit verbessert.

    Ich bitte um Tests von Linux- und Windowsusern.

    TiA
    Cuervo


  • Mod

    ➡ Test unter Win XP: full ACK 👍

    nun müssen Mac OS X Benutzer nicht die Tools selbst erstellen

    Vielen Dank!


  • Mod

    Rev. 489:

    devicemanager.h/c (neu)

    Zwischenschritt Implementierung des Device Managers

    Hier ein Ausdruck bei VBox mit zwei eingestellten Floppy Disk Drives (FloppyImage und Laufwerk A: ):

    PrettyOS [Version 0.0.0.489]                                                    
    --------------------------------------------------------------------------------
    Memory size: 192 MiB / 201 MB  (201326592 Bytes)                                
    
    Mass Storage Device Manager installed.                                          
    1.44 MB FDD device 0 found                                                      
    
    1.44 MB FDD device 1 found                                                      
    
    #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:7111h vend:8086h IRQ:0                                     
    #3  0:2.0        dev:BEEFh vend:80EEh IRQ:11                                    
    #4  0:3.0        dev:2000h vend:1022h IRQ:10                                    
    #5  0:4.0        dev:CAFEh vend:80EEh IRQ:9                                     
    #6  0:5.0        dev:2415h vend:8086h IRQ:5                                     
    #7  0:6.0        dev:003Fh vend:106Bh IRQ:11  USB OHCI F0804000h MMIO sz:4096   
    #8  0:7.0        dev:7113h vend:8086h IRQ:9                                     
    #9  0:11.0       dev:265Ch vend:8086h IRQ:10  USB EHCI F0805000h MMIO sz:4096   
    
    List of attached Mass Storage Devices:                                          
    FDD:      Drive: 1: partition: 0 serial: floppy1 (no usb msd)                   
    FDD:      Drive: 2: partition: 0 serial: floppy2 (no usb msd)                   
    RAM Disk: Drive: 3: partition: 0 serial: ramdisk (no usb msd)                   
    --------------------------------------------------------------------------------
    
    <RAM Disk at C0007000h DIR> dev                                                 
    35      info                                                                    
    10961   shell
    

    Nächster Schritt: Einbindung der USB MSD

    Anmerkung: Drive 0 ist reserviert für das aktive Mass Storage Device mit PrettyOS.


  • Mod

    Rev. 490:

    Zwischenschritt device manager:
    usb msd devices werden versuchsweise eingebunden bzw. gelöscht



  • Sieht sehr schön aus!

    Nur zwei Anmerkungen:
    Das "no usb msd" kann man ruhig weglassen. Namen wie "floppy1" sagen bereits alles darüber aus. Die Spalte für den Typ ganz vorne ist ja zudem auch eindeutig. Lieber sagen, was es ist, anstatt was es nicht ist 🙂

    Und es wäre gut, wenn die Tabelle wie eine Tabelle wirkt, d.h. eine Zeile mit Überschrift, dann, mit Tabulator eingerückt, die Werte. Das erspart einem bei vielen Daten pro Zeile (und es könnten ja evtl. mehr werden) mglw einen Zeilenumbruch.


  • Mod

    Zwischenstand (ohne Code):

    Ja, gute Idee. Nachfolgende Darstellung ok?

    VBox:

    Attached Mass Storage Devices:                                                  
    
    Type    Drive   Part.   Serial          Port                                    
    ----------------------------------------------------------------------          
    FDD     1       0       floppy1                                                 
    FDD     2       0       floppy2                                                 
    RAMdisk 3       0       ramdisk                                                 
    USB MSD 4       0       00000000729A    1                                       
    ----------------------------------------------------------------------
    

    Real PC:

    Attached Mass Storage Devices:                                                  
    
    Type    Drive   Part.   Serial          Port                                    
    ----------------------------------------------------------------------          
    FDD     1       0       floppy1                                                 
    RAMdisk 2       0       ramdisk                                                 
    USB MSD 3       0       8B6A0861        4                                       
    USB MSD 4       0       N014IM75        3                                       
    USB MSD 5       0       0D09297675C0    2                                       
    ----------------------------------------------------------------------
    

    Ein-/Ausstecken führt aber noch zu Fehlern, nicht ganz einfach. Auf der USB-Transfer-Seite kommt es hierbei auch noch zu Total-Blockaden. Die Floppy verschwindet nach einigen Wechseln ebenfalls. 😃

    Über die Verwaltung der Drive-# sollten wir noch etwas diskutieren.
    Zur Zeit vergebe ich diese Drive-# (zu Testzwecken) jeweils fortlaufend.
    Die durch "deleteFromDeviceManager" entstandenen Lücken (msd == NULL) recycle ich bisher nicht.

    Sobald das Device Managementsystem stabil steht, werden wir es an den Load-Prozess seitens der Shell bzw. andere User-Programme anbinden.

    Die Einbindung von CDI sollte ebenfalls gelingen.

    Infos wie "ehci_handler: Interrupt on Async Advance" wurden nun hinter _USB_DIAGNOSIS_ gesetzt, das stört den normalen Ablauf.



  • Ja, viel schöner 🙂



  • Revision 491:

    - Zahlreiche Style-Anpassungen (TAB)
    - Vereinfachungen/Änderungen am devicemanager
    - Projektfile geupdated
    - Memory-Ausgabe optimiert (Shiften)
    - ...


  • Mod

    Rev. 492:

    devicemanager.c: Tabellarische Darstellung verbessert, zur Kontrolle "deleted" eingefügt bei Nichtnutzung einer Volume-Nr.

    Das Serial bezieht sich momentan noch auf das Device, nicht auf die Partition (=Volume)



  • Revision 493:

    - devicemanager weitergebaut
    - PARTITION heißt jetzt partition_t
    - Kleinigkeiten


  • Mod

    Kommentar zu Rev. 493:
    kernel.bin: 100.272 Bytes Wir haben die 100000 Byte Marke geknackt 👍

    Test mit real PC:

    Attached Disks:                                                                 
    
    Type    Number  Serial  Part.   Serial                                          
    ----------------------------------------------------------------------          
    FDD     0       0       0       floppy1                                         
    RAMdisk 1       0       0       ramdisk                                         
    USB MSD 2       0       0       8B6A0861                                        
    USB MSD 3       0       0       110                                             
    USB MSD 4       0       0       00000000729A                                    
    USB MSD 5       0       0       0D09297675C0                                    
    ----------------------------------------------------------------------
    

    TODO:

    Die Serials stehen momentan noch stellvertretend. Bei usb msd gehören die oben gezeigten Serials zum "Device", also zum usb-Stick. Zur Ermittlung des Partitions-Serial muss noch auf die FAT description zugegriffen werden. In der Regel haben Sticks aber nur eine Partition.

    Bei der Floppy müssen die Serials sowohl für Disk (=Diskette) als auch für die Partition (identisch) von der FAT12-Partition gezogen werden (Volume ID).

    Bei der RAMDisk verwenden wir momentan ein eigenes Filesystem. Alles ist feststehend, es gibt keine bewegliche "Disk" (wie bei Diskette oder usb-stick) und momentan(!) nur eine "Partition", die das eigene FS umfasst. Prinzipiell könnte man die RAMDisk auf FAT16 (max. 2GB) umstellen.


  • Mod

    Rev. 494:

    Kleine Korrekturen devicemanager.h/c


  • Mod

    Rev. 495:

    ports ebenfalls implementiert



  • Revision 496:

    - ports nun "korrekt" aufgezählt
    - Bugfix: Disk 0 wird freigehalten für SystemPartition
    - Pfad-Parser
    - atoi auch im Kernel verfügbar


  • Mod

    Kommentar zu Rev. 496:

    Zunächst mal ein herzliches Dankeschön an MrX für das hervorragende Teamwork bei der Umsetzung des Devicemanagers und für den Path-Parser. 👍

    Test auf VBox:

    PrettyOS [Version 0.0.0.496]                               Console 2: EHCI Ports
    --------------------------------------------------------------------------------
    ---------------------------------------------------------------------           
    Number of interfaces: 1                                                         
    ---------------------------------------------------------------------           
    
    Interface 0 has 2 endpoints and belongs to class:                               
    Mass Storage, SCSI transparent command set, Bulk-Only Transport protocol.       
    ---------------------------------------------------------------------           
    endpoint 1: OUT,  bulk data, mps: 512 byte                                      
    ---------------------------------------------------------------------           
    endpoint 2: IN ,  bulk data, mps: 512 byte                                      
    
    languages: English                                                              
    Generic Mass Storage    8B6A0861         serial: 8B6A0861                       
    
    Available Ports:                                                                
    
    Type            number  Media                                                   
    ----------------------------------------------------------------------          
    FDD             A       No floppy disk inserted                                 
    FDD             B       No floppy disk inserted                                 
    USB Port        C       MSD attached                                            
    USB Port        D       No MSD attached                                         
    USB Port        E       No MSD attached                                         
    USB Port        F       No MSD attached                                         
    USB Port        G       No MSD attached                                         
    USB Port        H       No MSD attached                                         
    USB Port        I       No MSD attached                                         
    USB Port        J       No MSD attached                                         
    ----------------------------------------------------------------------          
    
    Attached Disks:                                                                 
    
    Type    Number  Serial  Part.   Serial                                          
    ----------------------------------------------------------------------          
    Floppy  1       0       0       floppy1                                         
    Floppy  2       0       0       floppy2                                         
    RAMdisk 3       0       0       ramdisk                                         
    USB MSD 4       0       0       8B6A0861                                        
    ----------------------------------------------------------------------          
    
                 - - - - - - - - - - - press key - - - - - - - - - - -              
    --------------------------------------------------------------------------------
    Port: 1, device attached                                                        
    
    --------------------------------------------------------------------------------
    Monday, June 07, 2010, 12:47:27   16 s runtime. CPU: 3731 MHz                  \
    

    Test auf real PC:

    Available Ports:                                                                
    
    Type            number  Media                                                   
    ----------------------------------------------------------------------          
    FDD             A       No floppy disk inserted                                 
    USB Port        B       MSD attached                                            
    USB Port        C       No MSD attached                                         
    USB Port        D       No MSD attached                                         
    USB Port        E       MSD attached                                            
    USB Port        F       No MSD attached                                         
    USB Port        G       No MSD attached                                         
    ----------------------------------------------------------------------          
    
    Attached Disks:                                                                 
    
    Type    Number  Serial  Part.   Serial                                          
    ----------------------------------------------------------------------          
    Floppy  1       0       0       floppy1                                         
    RAMdisk 2       0       0       ramdisk                                         
    USB MSD 3       0       0       0D09297675C0                                    
    USB MSD 4       0       0       00000000729A                                    
    ----------------------------------------------------------------------
    

    ➡ Next Steps:
    - "ports[...]->insertedDisk" Status bei dem FDD prüfen! (z.Z. in floppy_install mangels Informationen über eingelegte / nicht eingelegte Diskette auf NULL gesetzt)
    - "MSD attached" bei usb-Ports sollte ersetzt werden durch eine sprechende usb-MSD ID (z.B. Vendor/Produkt/Revision)
    - Serial bei der Disk-Liste gegen echte Partitions-Serial (aus FAT descriptor) ersetzen, die gezeigten usb-Serials passen zum Device, also zum Stick, nicht zur Partition, obwohl dies beim Stick das Gleiche bedeutet (nur eine Partition).

    Inzwischen ist es bei Tobiking gelungen, von einem mit FAT12 (durch Aufspielen von FloppyImage) "formatierten" usb-Stick pqeq.elf und ttt.elf zu laden. Der Lesevorgang im jeweiligen FAT12-Teil des neuen FAT12/16/32-Moduls funktioniert also auch bestens. Somit sollten wir das provisorische fat12.h/c bald durch ein in sich geschlossenes Modul fat.h/c ablösen können. 🙂

    ➡ kernel.bin 104.492 Bytes
    Hier kommen wir bald an die kritische Größe, bei der es mit Bootloader2 erneut Probleme geben sollte. Der Aufschlag erfolgt in ... Tagen. 🙄
    Diesbezüglich müssen wir wohl eine SOKO "Own Bootloader vs GRUB" gründen. 😃


Anmelden zum Antworten