Sourcecode Fortschritt
- 
					
					
					
					
 0.0.1.214 - Rev: 796 #define _MEMLEAK_FIND_ Problem, das zum Absturz bei VMWare und VBox führt, gefunden: #ifndef OS_H #define OS_H #include "types.h" // These switches change the behavior of PrettyOS, useful for analyzing tasks: /// #define _DIAGNOSIS_ // Diagnosis-Output - activates prints to the screen about some details and memory use /// #define _MALLOC_FREE_ // shows information about malloc/free and heap expansion #define _MEMLEAK_FIND_ // Provides a counter of all (successful) malloc and free calls showing memory leaks /// #define _USB_DIAGNOSIS_ // only as transition state during implementation of USB 2.0 transfers /// #define _FAT_DIAGNOSIS_ // only as transition state during implementation of FAT 12/16/32 /// #define _DEVMGR_DIAGNOSIS_ // e.g. sectorRead, sectorWrite /// #define _TASKING_DIAGNOSIS_ // Provides output about tasking and scheduler /// #define _FLOPPY_DIAGNOSIS_ // Provides information about the floppy(-motor) /// #define _VM_DIAGNOSIS_ // Provides information about the vm86 task, but critical /// #define _SOUND_ // This is no sound, only "beep". Better stop it! ^^ #define _PCI_VEND_PROD_LIST_ // http://www.pcidatabase.com/pci_c_header.phpvoid writeInfo(uint8_t line, char* args, ...) { va_list ap; va_start(ap, args); vsnprintf(infoBar[line], 81, args, ap); va_end(ap); // refreshUserScreen(); // HACK <--- leads to massive error in VBox and VMWare }Nun ist der schwarze Peter bei refreshUserScreen()  void refreshUserScreen() { // Printing titlebar kprintf("PrettyOS [Version %s] ", 0, 0x0C, version); if (displayedConsole == KERNELCONSOLE_ID) { cursor.x = COLUMNS - 5; kputs("Shell"); } else { char Buffer[70]; snprintf(Buffer, 70, "Console %u: %s", displayedConsole, reachableConsoles[displayedConsole]->name); cursor.x = COLUMNS - strlen(Buffer); cursor.y = 0; kputs(Buffer); } kprintf("--------------------------------------------------------------------------------", 1, 7); // Separation if(reachableConsoles[displayedConsole]->showInfobar) { // copying content of visible console to the video-ram memcpy(vidmem + USER_BEGIN * COLUMNS, reachableConsoles[displayedConsole]->vidmem, COLUMNS * (USER_LINES-4) * 2); memsetw(vidmem + (USER_BEGIN + USER_LINES - 3) * COLUMNS, 0, 3 * COLUMNS); // Clearing info-area kprintf("--------------------------------------------------------------------------------", 44, 7); // Separation kprintf(infoBar[0], 45, 14); kprintf(infoBar[1], 46, 14); kprintf(infoBar[2], 47, 14); } else { // copying content of visible console to the video-ram memcpy(vidmem + USER_BEGIN * COLUMNS, reachableConsoles[displayedConsole]->vidmem, COLUMNS * USER_LINES*2); } kprintf("--------------------------------------------------------------------------------", 48, 7); // Separation cursor.y = reachableConsoles[displayedConsole]->cursor.y; cursor.x = reachableConsoles[displayedConsole]->cursor.x; update_cursor(); }
 
- 
					
					
					
					
 0.0.1.215 - Rev: 797 noch einige va_end(ap); eingebaut (irgendwas übersieht man immer) 
 
- 
					
					
					
					
 Version 0.0.1.216: - Mauszeiger (heller Punkt) in VBE angezeigt 
 - min und max zu Makros umgewandelt - Damit sie bei signed und unsigned wirken
 - Bugfix in video.c vervollständigt - Infobar wird wieder aktualisiert, _MEMLEAK_FIND_ funktioniert aber weiterhin
 - va_end in console.c ergänzt
 - vbe.h/c aufgeräumt
 
- 
					
					
					
					
 0.0.1.217 - Rev: 799 init logging 
 
- 
					
					
					
					
 version 0.0.1.218 - Rev: 800 vbe.c/.h 
 - Neue Funktionen vbe_drawRectFilled(...), vbe_drawBitmapTransparent(...) und keine Funktioniert...mouse.c/.h 
 - Cursor Bitmap hinzugefügt...data.asm 
 - cursor Bitmap hinzugefügtuser/vm86/cursor.bmp hinzugefügt 
 
- 
					
					
					
					
 Version 0.0.1.219: - Fehler in TTT behoben: Es wird nichtmehr akzeptiert, wenn nichts eingegeben wurde. 
 - INIT-Log-Ausgabe nicht mehr gebremst
 - makefiles für Userspace angepasst/verbessert (Compilerschalter)
 - Kleinere Verbesserungen und aufgeräumt (insbesondere keyboard.c)
 
- 
					
					
					
					
 version 0.0.1.220 - Rev: 802 vbe.c/h 
 - vbe_drawBitmap(...), mit 64k Farbtiefe experimentiertvidswtch.asm 
 - neue Bildschirmauflösung mit 64k Farbtiefe hinzugefügt.
 
- 
					
					
					
					
 version 0.0.1.221 - Rev: 803 vbe.c/h 
 - Mode mit 32 Bit Farbtiefe hinzugefügtvidswtch.asm 
 - Neue Bildschirmauflösung mit 32 Bit Farbtiefe hinzugefügt
 
- 
					
					
					
					
 (nach 804 von tev) Revision 805 mov ss,ax und xor sp,sp sollte man nicht einfach vertauschen, da so ein Interrupt losgehen kann, der einen eventuell nicht nutzbaren Stack benutzt (Bootloader-Stage1). 
 
- 
					
					
					
					
 Entschuldigung, dass ich das nicht vorher gemacht habe, da ich das mit dem Forum nicht wusste. Ok ich hatte mit Revision 804 Geschwindigkeitsoptimierungen im Bootloader gemacht. 
 
- 
					
					
					
					
 0.0.1.222 - Rev: 806 paging.h/c: formale Änderungen (camelCase) 
 task.c: paging_destroyUserPageDirectory(task->page_directory) verwendet zur Memory-Freigabe als Gegenstück zu paging_createUserPageDirectory() in elf.cbeep (nicht sound) ausgeschaltet 
 
- 
					
					
					
					
 0.0.1.223 - Rev: 807 Formale Änderungen (camelCase entsprechend Style Guide) 
 
- 
					
					
					
					
 Version 0.0.1.224: - Keine Floppy-IRQ-Timeouts mehr beim boot -> bootet schneller 
 - Trackweises Lesen von Floppy
 -- BUG: Strg+s geht nicht mehr.
 - Aufgeräumt
 
- 
					
					
					
					
 Version 0.0.1.225: - VBE-Modeliste "entdrosselt": Alle Modi werden angezeigt, keine Begrenzung auf 16 mehr 
 - flpydsk.c: calibrate und seek verbessert
 - Floppy-Motor-Bug behoben, der Motor wird wieder abgeschaltet (Bug durch Caching entstanden)
 - Testliste erweitert
 
- 
					
					
					
					
 Strg+s geht nicht mehr TIPP: 
 Wer dies verwenden möchte, nach Angaben von MrX in flpydsk.c folgende Änderungen temporär vornehmen:- Zeile 616 auskommentieren
- Zeile 624 auskommentieren, Zeile 625 aktivieren
- Zeile 654 auskommentieren, Zeile 655 aktivieren
 // if(CurrentDrive->lastTrack != sector/18) //... // retVal = flpydsk_read(CurrentDrive->lastTrack*18); retVal = flpydsk_read(sector); //... // memcpy(destBuffer, CurrentDrive->trackBuffer + 512*(sector%18), 512); memcpy(destBuffer, CurrentDrive->trackBuffer, 512);Dann wird der Lesevorgang von Floppy allerdings nicht beschleunigt. Der aktuelle Code zerstört mittels strg+s FAT2 und die ersten drei Sektoren im Data-Bereich, und er vermehrfacht die Einträge in der Root Dir.  
 
- 
					
					
					
					
 Version 0.0.1.226: - Bugfix: Floppy-Schreiben geht wieder (siehe auch Fehler-Thread) 
 - Bugfix: Falscher Schrägstrich (\) in Pfadangabe ersetzt
 
- 
					
					
					
					
 0.0.1.227 - Rev: 811 _DEVMGR_DIAGNOSIS_ und _READCACHE_DIAGNOSIS_ getrennt 
 Fehler behoben
 beep aus!
 
- 
					
					
					
					
 Version 0.0.1.228: - Verbesserungen in VBE: 
 -- Anzeige in 32-bit-Modus nun funktionsfähig, kein Pixelsalat mehr, korrekte Farben. In 16/15-bit sind die Farben noch falsch.
 -- "Transparentes" Bitmap nun auch transparent
 -- Code vereinfacht&verbessert
 - Weitere kleine Verbesserungen
 - Weitere Testergebnisse
 
- 
					
					
					
					
 Version 0.0.1.229: - Verbesserungen bei VBE-Modeerkennung: 
 -- Farbtiefe jetzt in Bits angegeben
 -- Die Eigenschaften der Modi werden jetzt von der Grafikkarte abgefragt
 -- Assembler-Code verallgemeinert - Funktioniert mit allen Modi
 - vidswtch.asm wird wieder -Ox assembliert
 - Kleinigkeiten
 
- 
					
					
					
					
 Version 0.0.1.230: - Jeder beliebige Modus nutzbar (Durch Eingabe der dezimalen Nummer und ENTER) 
 - Korrekte Darstellung in 8, 15, 16, 24 und 32-bit Modi. 8-bit wird erreicht, indem der 8-bit-Farbwert im alpha-Feld von BGRA_t steht
 - gets in util.c