Sourcecode Fortschritt
-
rev. 601:
asm-prog ausgetauscht für tests problem: popf ??
-
rev. 602:
vm86.h in ordnung gebracht und fehlende opcodes (in/out) in vm86.c ergänzt, fehlen noch die Umsetzungen von echtem in/out.
case 0xEF: // outw printf("outportw(edx, eax) does not yet work\n"); // outportw(edx, eax); ctx->eip = (uint16_t) (ctx->eip + 1); return true; case 0xEE: // outb printf("outportb(edx, eax) does not yet work\n"); // outportb(edx,eax); ctx->eip = (uint16_t) (ctx->eip + 1); return true; case 0xED: // inw printf("inportb(edx) does not yet work\n"); // eax = inportb(edx); ctx->eip = (uint16_t) (ctx->eip + 1); return true; case 0xEC: // inb printf("inportw(edx) does not yet work\n"); // eax = (eax & 0xFF00) + inportb(edx); ctx->eip = (uint16_t) (ctx->eip + 1); return true;
... muss context_v86_t erweitert werden. In registers_t ist das alles drinnen, evtl. gleich ganz ersetzen.
-
0.0.1.39 - Rev. 603:
irq.c und vm86.c: Korrekturen und in/out ergänzt
task.c: create_vm86_ctask eingefügt
-
0.0.1.40 - Rev. 604:
Korrekturen im vm86 Modul (bezüglich useresp)
-
0.0.1.41 - Rev. 605:
Korrekturen in vm86.c: ... noch weitere stack[0] und stack[2] vertauscht
Folgendes machen, wer den neuen Video Mode (320*200, 16 Farben, ab 0xA0000) sehen will:
irq.c, zeile 164: // waitForKeyStroke(); auskommentieren
-
0.0.1.42 - Rev: 606
vm86.h/c modul weiter bereinigt/optimiert
irq.c verbessert
neues vidswtch.asm (Beispiel) schaltet 320*200 Modus ein und dann zurck auf 80*50
-
0.0.1.43 - Rev: 607:
vbe.h integriert
Screenshot (PrettyOS in 320*200 Auflösung): http://www.henkessoft.de/OS_Dev/Bilder/0_0_1_43_vm86_grafik.PNG
Problem: real PC funktioniert nicht
-
0.0.1.44 - Rev: 608:
HLT noch eingebaut in vm86.c (dort exit() aus task.c)
-
Rev. 611:
wurde versehentlich einzeln geschickt
neu: vbe.c
-
0.0.1.46 - Rev: 612
vbe.h/c weiter ergänzt. SetPixel getestet, funktioniert noch nicht, wie es soll.
-
0.0.1.47 - Rev: 613
SetPixel funktioniert!
Problem war die y-Auflösung, die qemu hier bietet.
Da stehen keine 200 zur Verfügung.Daher nun 13 gewählt für y. setPixel Klappt!
Problem ist im noch vm86-handler-modul. Die BIOS-Fkt. werden noch nicht wie im RM (z.B. test im bootloader) ausgeführt.
-
0.0.1.48 - Rev: 614
vm86-handler noch korrigiert, ändert aber nichts am video-verhalten
-
0.0.1.49 - Rev: 615:
Noch einige Korrekturen bei vm86.c (helfen aber leider nicht)
Bei rev. 607 wurde "PrettyOS" korrekt dargestellt, was die y-Auflösung angeht. Bitte Unterschied suchen helfen!
-
0.0.1.50 - Rev: 616:
vm86.c: ip++ bei ctx->eip++ ergänzt
-
0.0.1.51 - Rev: 617:
weitere Korrekturen in vm86.c (cs:eip und ip)
Löst aber immer noch nicht das Grafikdarstellungsproblem
-
0.0.1.52 - Rev: 618:
vm86.c: weitere versuche der verbesserung, hilft alles nichts
EDIT: ohne #define _VM_DIAGNOSIS_ reboot ganz vorne
-
0.0.1.53 - Rev: 619
roll-back bei vm86.c, irq.c, vm86.h auf vers. 607
-
0.0.1.54 - Rev: 620
vm86.c: HLT nach exit() wieder eingebaut
Jetzt funktioniert es endlich so wie gewollt
-
0.0.1.55 - Rev: 621
irq.c, vm86.c Restaurationsarbeiten laufen schrittweise an:
entscheidender Fehler: printf während vm86 (nun alles hinter Gitter)
-
0.0.1.56 - Rev: 622:
wegen #PF auf VMWare bei 1045h und bei real PC bei 9FC3Fh zunächst alles frei gegeben für user von 0 - FFFFFh
Tests: Qemu, Bochs, Vbox gehen wie gewünscht.
VMWare und real PC zeigen die Grafik nicht.
Vermutung: Hardware-Frequenzen müssen noch in der SW eingestellt werden