Sourcecode Fortschritt
-
Version 0.0.1.58 - Rev: 626 (kernel stabil)
- Aktuelle Palette dargestellt anstelle grüne Linie
- BL2 (formal)
- vidswtch.asm (Marke gesetzt bei Schriftzug PrettyOS)
-
Version 0.0.1.59 - Rev: 628
- PageDirectory aus den vm86 Funktionen entfernt
- Linien in hellblau (9)
-
Version 0.0.1.61 - Rev: 630
- vidswtch.asm: Schriftzug PrettyOS entfernt
- vbe.h/c: drawCircle
- util.h/c: sqrtLeider noch Reboot
-
Version 0.0.1.62 - Rev: 631
FPU-Problem mit fabs und sqrt bezüglich vm86 zurückschalten in TextMode
daher line und drawCircle auskommentiert
-
Version 0.0.1.63
- Scheduler unterstützt jetzt das schlafen. Kein Busy-Sleep mehr
- timer: umgebaut auf scheduler-sleep, Funktionen umbenannt, aufgeräumt
- Bugfixes in synchronisation, list, ...; Umsortierung der Includes dort
- Funktionen von ckernel.c nach vbe.c ausgelagert
- Sound wieder aktiviert
- ...
-
Version 0.0.1.64 Rev: 633
getVBEInfo eingebaut in vidswtch.asm, Daten ab 0x1000 (ES:DI)
-
0.0.1.65 - Rev: 634
somone hat Info-Strukutren für Grafikeigenschaften eingefügt und übergibt diese bei 0x1000 aus dem vm86 task mit vidswtch.asm.
So ändern:
void vgaDebug() { printf("\nsizeof VgaInfoBlock_t: %X\n",sizeof (VgaInfoBlock_t)); printf("signature: %s\n", pVga->VESASignature); printf("version: %u\n", pVga->VESAVersion); printf("OEMString: %s\n", pVga->OEMStringPtr); printf("Capabilities: %X\n", pVga->Capabilities); printf("VideoModePtr: %X\n", pVga->VideoModePtr); printf("TotalMem: %u\n", pVga->TotalMemory); printf("reserved: %u\n", pVga->reserved[236]); }
http://www.karig.net/os/001a.html <--- interessanter Link
-
0.0.1.66 - Rev. 635
somone hat vbe.h/c weiter ausgebaut und die Daten mittels vm86 task gezogen
-
0.0.1.67 - Rev: 636
- bitmap via incbin includiert (font.bin, font.bmp)
- Bitmap Header auslesen, anzeigen test
- tool font2bin hinzugefügt (tools/src/font2bin.c, tools/font2bin.exe)
- data.asm erweitert
-
vbe.h, zeile 9:
#define VM86_SWITCH_TO_TEXT ((void*)0x137)
somone: Was genau macht diese Version? wozu dient font2bin.exe?
-
0.0.1.68 - Rev: 637:
- vbe.h, zeile 9 korrigiert
- ckernel.c: grünes Rechteck 2 Pixel angehoben
- Ausgabe von VgaInfoBlock optimiert
- Erste 16 Videomodes werden ausgegeben (Video Modes Ptr)
- kleine Fehlerkorrekturen (auch konseqent %i gegen %u getauscht)
-
0.0.1.69 - Rev: 638:
- Erste 16 Videomodes (0xFFFF zeigt Ende an) werden ausgegeben (Fehler behoben)
-
version 0.0.1.70 - Rev: 639
vidswtch.asm
- superVGA modline 0101h (640x480x8) getestet, wieder einkommentiert
- Versuch Videomemory bei Adresse: 0xE0000000 anzusprechen (paging.c)vbe.c/vbe.h
- versuch Bitmap zu blitten
-
version 0.0.1.71 - Rev: 640
flpydsk.c
- void flpydsk_wait_irq() um sti() erweitertkheap.c
- #define VIDEO_DATA_START ((uint8_t*)0xE0000000)vbe.c
- Speicheradressen getestetvidswtch.asm
- Speicheradressen getestet
-
Version 0.0.1.72:
- current_console heißt nun currentConsole
- Codevereinfachungen in console.c
- Codeformatierungen
- [EDIT] Zahlreiche waitForKeyStroke() weggemacht
-
0.0.1.73 - Rev: 642
läuft, aber unklar, was genau gehen soll ...
@somone: bitte aufräumen und klar stellen, was passieren soll, was nicht geht, usw.
-
0.0.1.74 - Rev: 643
VideoRam allokiert:
vbe.h:
#define VIDEO_MEMORY 0xE0000000 // Beispiel VBox; für Qemu 0xF2000000 einsetzen
vbe.c:
void setVideoMemory() { // size_of_video_ram SCREEN = (uint8_t*) paging_acquire_pcimem(VIDEO_MEMORY); printf("\nSCREEN (virt): %X\n",SCREEN); for (uint32_t i=VIDEO_MEMORY; i<(VIDEO_MEMORY+0x1000000);i=i+0x1000) // 4 MiB video ram { printf("\t: %X",paging_acquire_pcimem(i)); } waitForKeyStroke(); }
In mib:
uint32_t PhysBasePtr; // 32-bit physical memory address
... kommt aber noch nicht an.
-
0.0.1.75 - Rev: 644
qemu: 0xF2000000
mib korrigiert: in asm und vbe: 0x1200 (dennoch kommen keine daten in qemu)
-
0.0.1.76 - Rev: 645
vidswtch.asm
- erweitertvbe.c/vbe.h
- erweitertfont.bin
- erneuert
-
Zwischenstand Grafik:
0.0.1.77 - Rev: 646
zur korrekten abfrage des mib gehört die übergabe des video mode in cx:
ModeInfoBlock: xor ax, ax mov es, ax mov ax, 0x1200 mov di, ax mov ax, 0x4F01 mov cx, 0x0101 int 10h
Die notwendige VideoRam-Größe findet man hier:
http://www.pcmag.com/encyclopedia_term/0,2542,t=VESA+modes&i=53780,00.aspvidswtch.asm etwas ausgeräumt