IA32 VM86 Mode

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
TheUbu

IA32 VM86 Mode

Post by TheUbu »

I was hoping some could help me out here with VM86 mode on the IA32 platform. I have set up a 16BIT TSS with what I assume to be the propper EFLAGS which are 2 | 0x200 | 0x20000 - However when it does the int 13 so I can some work for VM86 (this int 13 is a task gate not int) all the values in the tss for the 16 bit task seem to have taken on 32 bit values.

I wrote this referencing the intel developer manual if someone knows other references it would be much appreciated.


Christopher
ASHLEY4

RE:IA32 VM86 Mode

Post by ASHLEY4 »

TheUbu

RE:IA32 VM86 Mode

Post by TheUbu »

That URL is not working....Anyone else?



Christopher
ASHLEY4

RE:IA32 VM86 Mode

Post by ASHLEY4 »

The person behind your pc is not working,as it works in my browser :-).

ASHLEY4.
TheUbu

RE:IA32 VM86 Mode

Post by TheUbu »

No I keep getting connection timed out...



Christopher
Gandalf

RE:IA32 VM86 Mode

Post by Gandalf »

hi friend,

I believe your quest will end with this site. This gives you all the info you need about VM86 (Believe me I made my own vm86 monitor from this tutorial and it is working great - I have tested a few bios functions with it).

http://www.openbg.net/sto/os/xml/v86.html

rgds
Gandalf
TheUbu

RE:IA32 VM86 Mode

Post by TheUbu »

Thanks,

This site should help quite a bit... I had v86 working in the older version of my kernel but its apparently not functioning anymore so I needed a bit of a refresher.



Christopher
TheUbu

RE:IA32 VM86 Mode

Post by TheUbu »

Not sure if anyone has seen anything like this.

I set up a new TSS with eflags for IOPL3 and vm bit set when i jump the tss it does an int 10 which causes a GPF the VM handler this is a task gate so the old TSS should be saved as the new one is started however when i print the values in the tss of the v86 task they are completly wrong for example the CS register is now 0x8 the gdt entry for ring 0 cs


Christopher
Post Reply