I can't get the VBE stuff to change the video mode, so, I figured I'd take a step back and use the lowest common denominator. I'll call int 10h and give it a shot.
Code: Select all
mov al, 13h
mov ah, 0
int 10h
Every time QEMU boots, it appears to get here, then crashes. I can try calling the same from inline assembly in code I know works because I can write text to the video ram. If I use BOCHS, I get the following errors and a stack dump.
Code: Select all
00216887396e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x10)
00216887396e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x0d)
00216887396e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x08)
00216887396i[CPU0 ] CPU is in protected mode (active)
...STACK TRACE...
01626655492i[CPU0 ] 0x0000000000100221>> int 0x10 : CD10
01626655492e[CPU0 ] exception(): 3rd (13) exception with no resolution, shutdown status is 00h, resetting
01626655492i[SYS ] bx_pc_system_c::Reset(HARDWARE) called