Sourcecode Fortschritt
-
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!
-
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
-
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..
-
Rev. 325:
task.c überarbeitet (Code Review)
-
Rev. 326:
weitere Funktionen nach scheduler.c ausgelagert
-
Rev. 327:
Multithreading - erster Versuch.
Klappt noch ncht komplett, aber Bootscreen erscheint schon als Thread. Nach Laden von TTT hängt jedoch noch was.
-
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"
-
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^^
-
Rev. 333:
kleine Änderungen
-
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)
-
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 verbessertSimulation 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.