moin,
also ich habe ein Problem mit VEsa und bochs oder qemu. Das Problem habe ich schon seid ner woche.
also wenn ich alles vollmalen will nutze ich das:
mov edi,[VbeModePhysBasePtr]
mov ecx, 800*600
mov ax, 0xAA
rep stosb
oder das:
mov ecx, 800*600
.lop:
mov [edi], byte 0xFF ;!! Blue
inc edi
mov [edi], byte 0xAA ;!! Green
inc edi
mov [edi], byte 0x00 ;!! Red
inc edi
loop .lop
beides geht unter Bochs und Qemu nicht, es wird nur oben ca ein fünftel angemalt, bei beiden versuchen ... Bei meinem echtem PC geht es und VPC macht auch alles richtig.
aber wenn ich so mache:
mov edi, [VbeModePhysBasePtr]
mov ebx, 9964h
mov ecx, 600
.lp:
push ecx
mov ecx, 800
.lop:
mov [edi], byte 0xFF ;!! Blue
inc edi
mov [edi], byte 0xAA ;!! Green
inc edi
mov [edi], byte 0x00 ;!! Red
inc edi
loop .lop
pop ecx
loop .lp
geht es überall ... aber bei bochs und qemu halt langsamm man kann sehr gut sehen wie alles zugemalt wird dauert ca eine secunde
woran liegt das??? ist es ein bug von qemu/bochs?
//edit: alle drei schleifen tuhen ja sowieso das selbe
aha, wenn ich push ecx dur mov edx, ecx und pop ecx durch mov ecx, edx ersetze, dann ist es das gleiche wie mit den beiden ersten schleifen ...
ich glaube das geht zu schnell für bochs und qemu ^^