From: Juras B. <yb...@tu...> - 2003-03-01 10:05:47
|
Hello Luca, Friday, February 28, 2003, 4:13:12 PM, you wrote: LA> Ok, I hope this clarified things a little bit... If your scheduler is LA> driven by the timer interrupt, I would simply avoid to invoke it if the LA> interrupted task is the vm86 task. Do you mean something like this: void mytimerhandler() { if (vm86task) { // jump to vm86 timer handler through real mode interrupt table // by setting VM86 task's CS:IP pointer, pushing flags etc. return; } // switch to the next task in the scheduler's queue and // handle timer interrupt for 32-bit OS needs } ? I think this will HALT the task-switching mechanism while a VM86-task is not yet finished and paralyze the system... But maybe I should handle an interrupt twice, i.e. emulate interrupt for VM86 task (pushing flags, setting CS:IP...) and handle the interrupt as usual for OS needs? -- Best regards, Juras mailto:yb...@tu... |