Sourcecode Fortschritt
- 
					
					
					
					
 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 einsetzenvbe.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 10hDie 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 
 
- 
					
					
					
					
 0.0.1.78 - Rev: 647 bei #define _FLOPPY_DIAGNOSIS_ noch motor on/off signalisiert. Vielleicht findet jemand den Grund, warum die Floppy-lampe (bochs) nach dem Laden eines Programms eingeschaltet bleibt. Bei bochs übrigens: 0xE0000000 als video ram für video mode 0x0101 
 
- 
					
					
					
					
 0.0.1.79 - Rev: 648 Grafik initalisierungsreihenfolge geändert so dass, mib->PhysBasePtr in SetVideoMemory() benutzt werden kann. 
 
- 
					
					
					
					
 0.0.1.80 - Rev: 649 Zwischneschritt: - vidswtch.asm umgebaut 
 - automatisches Holen von TotalMemory und PhysBasePtr
 
- 
					
					
					
					
 0.0.1.81 - Rev: 650 Zwischenstand: VideoRam wird in Qemu korrekt geladen Das ist aber auch das letzte  
 
- 
					
					
					
					
 0.0.1.82 - Rev. 651 etwas besser, aber noch ziemlich kaputt  
 
- 
					
					
					
					
 0.0.1.83 - Rev: 652 zunächst mal "repariert". Problem: ckernel.c, zeile 132 ff. setVideoMemory(); initGraphics(640, 480, 8); printf("\nSTOP vor switchToVideoMode"); waitForKeyStroke(); switchToVideomode(); printf("\nSTOP nach switchToVideoMode"); waitForKeyStroke();schaltet nicht in den gewünschten video mode