From: Stefan <ste...@gm...> - 2004-12-16 21:26:57
|
> It turns out that this works badly. A large number of machines have code > at c000:0003 that jumps to somewhere else in the video ROM - this > executes a small amount of code (normally turning off the screen) and > then jumps elsewhere. In laptop hardware, this second jump is often to > code that is no longer mapped into address space. I've seen several > machines where trying to run POST code under XFree's x86 emulator fails > because it suddenly hits a pile of binary that looks nothing like the > x86 instruction set. This is partially true for my system. The instruction at c000:0003 is a JMP. But the code seems to remain in the area around 0xc0000. A jump somewhere else is a good explanation for the crashes on some machines. Is this code used by the system bios to boot the VGA card when powering on the machine? > POSTing will help in some cases (it seems to work well on Thinkpads), > but it's not a universal cure. I've had more joy with saving and > restoring the VBE state. Is this the vbestate utility? I'll have a look at it. What does vm86_video_post do? It looks like another lrmi based "call c000:0003 utility". Can only saving and restoring the VBE state bring the card back to live or do I need to call the reset routine in any case? Stefan |