Sourcecode Fortschritt


  • Mod

    Rev. 546:

    flipflop reset in init DMA entfernt, weil offenbar nicht notwendig beim slave (controller 1)


  • Mod

    Rev. 547: Experimentelle Variante (zum gemeinsamen Fehlersuchen)

    Schreibvorgang auf usb-Stick mit FAT12 (analog Diskette) funktioniert! 🙂

    usbWrite(...) funktioniert demnach.

    Mit FAT16 und FAT32 formatierten sticks geht es noch nicht (Grund liegt somit im Write-Bereich für FAT16/32 des fat-Moduls)! Also nicht probieren. ⚠
    (bei FAT32 bleibt er hängen beim Lesen, passiert also nichts. Bei FAT16 schreibt er screen.txt in die root dir. datei ist aber "beschädigt" (Windows) ).

    Wie stellt man einen FAT12 usb-Stick her?
    ➡ http://www.c-plusplus.net/forum/viewtopic-var-t-is-268632.html

    Wo wird für Strg+s das Laufwerk festgelegt?
    video.c, Zeile 249 ff.

    // FILE* file = fopen("1:/screen.txt", "a+"); // TEST to write to Floppy
       FILE* file = fopen("3:/screen.txt", "a+"); // TEST to write to usb-stick
    

    Evtl. LW-Nummer anpassen, falls stick z.B. auf 4 liegt. 😉
    Auf Floppy schreiben wurde momentan lahm gelegt und umgebogen, wie man sieht.

    EDIT: mit frisch formatierten FAT32 usb-sticks klappt es bereits! (liegt also daran, dass unsere FAT-Routine noch nicht in die nachfolgenden Cluster der root dir gelangt)


  • Mod

    Rev. 548:

    ckernel.c: floppymotor aus, nur, wenn die erste floppy da ist (cmos-abfrage)
    fat.c: bei FAT32 fileptr->volume->FatRootDirCluster eingebaut anstelle "0" (wie bei FAT12 u. FAT16)

    Offene Probleme:
    FAT16-stick: rootdir entry ok, filesize ok, datei "beschädigt"
    FAT32-stick: bei hoher Nummer des entry in der root dir: leere Datei, filesize == 0


  • Mod

    Rev. 549:

    FAT16 Problem wurde gelöst, wurde versehentlich 0x0FF8 (FAT12-Konstante) eingetragen anstelle LAST_CLUSTER_FAT16 in fileCreateHeadCluster


  • Mod

    Rev. 550:

    fat.c: bug (bhandle in FindEmptyEntries war 16 bit) entfernt und kleine Optimierungen
    Leider immer noch das Problem bei FAT32 mit dem screenshot, wenn bereits viele Einträge vorhanden sind: File bleibt bei size 0.


  • Mod

    Rev. 551:

    Code-Optimierung usb2_msd.c (statische Check-Funktion ausgelagert und doppelt genutzt)



  • Revision 552:

    - pciDev_Array auf Heap gelegt
    - pciDev_Array nur noch in pci.c genutzt
    - Motorsteuerung jetzt "fertig"
    - Projektmappe etwas umsortiert
    - Kleinigkeiten


  • Mod

    Rev. 553: FAT32 bug gefunden, Schreiben funktioniert nun auch bei "vollen" Verzeichnissen 🙂



  • Mehr oder weniger spontan haben wir uns grade entschieden (Naja, geplant war es ja schon etwas länger), die Versionsnummer von PrettyOS auf 0.0.1.0 zu erhöhen, weil folgendes vorhanden ist:

    • Grundstrukturen des Kernels funktionieren (Das führe ich jetzt nicht einzelnd auf 😉 )
    • Unterstützung für Floppy und USB. (Schreibend und lesend)
    • Unterstützung für FAT12, 16 und 32. (Schreibend und lesend)

    Die letzte Stelle (a.b.c.d) wird mit jeder Revision inkrementiert, aber bei Veränderungen der höheren Versionszahlen zurückgesetzt, also fangen wir dort jetzt wieder von 0 an.

    Version 0.0.1.0 (Rev. 554):

    • Strg+u schreibt jetzt auf USB-Stick (den ersten im disk-Array)
    • Strg+s schreibt aufs erste Floppy-Laufwerk

  • Mod

    Rev. 555: 0.0.1.1

    Korrekturen in usb2_msd.c (Transfer Check)

    Test auf meinem Developer-PC:
    Beim port-check des EHCI wird inzwischen alles ausgefiltert, was nicht als USB Mass Strorage Device in unserem Sinne taugt (web cam, hub, card reader).
    Der card reader wurde als 3:\ (hinter Floppy und RAMDisk) eingetragen. Ein neu angesteckter Stick als 4:\
    Ich war nun gespannt auf strg+u, aber alles hat bestens geklappt. Da der card reader (wegen fehlender card) kein FAT aufzuweisen hatte, wurde brav der stick mit FAT32 auf 4:\ gewählt.

    Zum Glück hat MrX auf mich gehört und den FAT-Test implementiert. 👍

    video.c, zeile 253:

    if(disks[i] && disks[i]->type == ScreenDest && (disks[i]->partition[0]->type == FAT12 || disks[i]->partition[0]->type == FAT16 || disks[i]->partition[0]->type == FAT32))
    


  • Rev. 556:

    * Aktualisiertes Makefile löscht bei 'make clean' wirklich alle temporären Dateien


  • Mod

    Rev. 557: 0.0.1.2

    - Kernel von 0x40000 nach 0x100000 verschoben (BL2, kernel.ld)
    - Umbenennungen und Optimierungen in fat.h/c


  • Mod

    Rev. 558: 0.0.1.3

    keyboard.c und userlib.c: bool keyPressed(VK key); [VK = Virtual Key analog winuser.h]

    Rev. 559: 0.0.1.3
    Korrektur: man muss shiftascii[...] nehmen wegen der Großbuchstaben.
    Dann gibt das aber Probleme mit den Zahlen. 🙄



  • Rev. 560:

    * Xcode Projektfile hinzugefügt (BUILD funktioniert darin nicht, ist aber deutlich praktischer beim Bearbeiten des Sourcecodes als jede Datei einzeln zu öffnen)



  • Rev. 561:

    * Xcode Projektfile wieder entfernt, da svn wieder mal Probleme damit hatte

    d.h. Rev. 561 entspricht Rev. 559


  • Mod

    Rev. 562: 0.0.1.4

    Korrektur bezüglich keyPressed(...)

    ckernel.c in "idle loop":

    /// TEST
    if (keyPressed('A') && keyPressed(VK_LSHIFT)) {printf("\nshiftleft+A"); }
    if (keyPressed('D') && keyPressed(VK_RSHIFT)) {printf("\nshiftright+D");}
    if (keyPressed('1')) {printf("\n1");}
    /// TEST
    

  • Mod

    Rev. 563: Korrektur in syscall.c (&keyPressed vergessen, stand noch auf &nop) 😃

    nun auch ESC getestet:

    if (keyPressed('1') && keyPressed(VK_ESCAPE)) {printf("\nESC+1");}
    


  • Version 0.0.1.5 (Rev. 564):

    - Basisstrukturen für FS-Manager angelegt (weder endgültig noch in Benutzung)
    - Namenskonflikten im FAT-Treiber vorgebeugt
    - SectorRead, sectorWrite, singleSectorRead und singleSectorWrite jetzt in devicemanager.c
    - in fat12.h aufgeräumt
    - Bugfix: Keine zufälligen Zeichen mehr an Dateinamen angehängt (0-Terminierungsproblem)
    - Bugfix: free akzeptiert nun 0-Pointer
    - Diverse (Kleinigkeiten)

    Soweit ich das sehe, funktioniert alles noch.



  • Version 0.0.1.6:

    - FAT_partition_t auf fsmanager umgestellt (Nutzt partition_t)
    - Automatische Endungsergänzung funktioniert wieder (jetzt aber in Shell)
    - Kleinigkeiten


  • Mod

    rev. 566:

    userlib.h/c hat nun srand und rand:
    hello.elf:

    PrettyOS [Version 0.0.1.6]                                Console 0: HELLO   ELF
    --------------------------------------------------------------------------------
    
    ================================================================================
    
                                    C - Testprogramm!                               
    
    --------------------------------------------------------------------------------
    
                                     ! Hello World !                                
    
    94      26602   30017   18297   20363   13015   28509   15290   29003   24399   
    3339    28849   17055   19424   4588    15756   6098    11834   1351    21383   
    18431   155     14763   14082   4564    25482   30678   20183   15765   18376   
    20694   32234   8292    29828   23406   31490   25791   15822   24763   23255   
    15434   32590   15383   108     24271   12086   29246   26526   31363   7541    
    17328   32253   31115   13102   15958   32220   16574   18024   4711    32676   
    19373   22023   11917   13678   18912   16891   26436   1232    8547    21431   
    11651   29430   31362   10980   6303    5877    14544   25175   18284   1629    
    1390    321     23717   28685   20105   3238    6798    22860   24613   19729   
    25047   12565   31257   7301    6084    11697   1883    20662   14219   10380   
    
    ____      <>_<>                                       _______                ___
    [] | .---|'"`|---.                                  (_______) |_|_|_|_|_|_|| [] 
    -o-'`o"O-OO-OO-O"o'                                `-oo---oo-'`-oo-----oo-'`-o--
    --------------------------------------------------------------------------------
    Wednesday, June 30, 2010, 23:32:12   34 s runtime. CPU: 3816 MHz               /
    

Anmelden zum Antworten