Sourcecode Fortschritt
-
Rev. 541:
fat.c:
- globaler error abgeschaltet mittels precompiler, wird bisher nirgends verwendet
- kleinere formelle optimierungen im code
-
Rev. 542:
flpydsk.c:
Schreiben eines einzelnen Sektors auf Floppy gelöst: kein FDC_CMD_EXT_MULTITRACK !Habe den HOTFIX in fatWrite entfernt.
-
Rev. 543:
fat.c: globaler error komplett eliminiert (code signifikant besser wartbar/lesbar)
-
Revision 544:
- Codevereinfachungen in fat.c und time.c, diverse andere Kleinigkeiten
-
Revision 545:
- fat.c: Optimierungen, kleine Korrekturen
-- Switches ggf. durch if/else ersetzt
-- fseek gibt nun FS_ERROR zurück
- devicemanager.c
-- getFilename analog zu getPartition
-- execute heißt nun executeFile
-- analyzeBootSector gibt nun FS_ERROR zurück
- Syscall/util.c: systemControl(SYSTEM_CONTROL todo) weist das OS an, zu rebooten/runterzufahren (nicht implementiert); reboot entfernt
- shell: Neues Kommando "reboot" - ruft systemControl auf
-
Rev. 546:
flipflop reset in init DMA entfernt, weil offenbar nicht notwendig beim slave (controller 1)
-
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.htmlWo 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)
-
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
-
Rev. 549:
FAT16 Problem wurde gelöst, wurde versehentlich 0x0FF8 (FAT12-Konstante) eingetragen anstelle LAST_CLUSTER_FAT16 in fileCreateHeadCluster
-
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.
-
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
-
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
-
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
-
Rev. 557: 0.0.1.2
- Kernel von 0x40000 nach 0x100000 verschoben (BL2, kernel.ld)
- Umbenennungen und Optimierungen in fat.h/c
-
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