Sourcecode Fortschritt
-
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
-
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
-
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
-
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 /
-
Version 0.0.1.8:
- Farbwechsel-Fehler vielleicht behoben (Beim Interrupt geschah es vermutlich)
- fopen in Betrieb genommen (leichter Fehler noch: Append geht noch nicht, wird morgen korrigiert)
- Synchronisation userlib-Header
- malloc-Alignment in einigen Fällen von PAGESIZE auf 0 geändert
- ...