Thanks for your help!Combuster wrote:using a far return, far jump, far call, or task gate have severe implications on how the task state works.
I do this from memory, but you should *really* look all this up and not do all this shotgun debugging. If something did work out here, you would have learned little from it. And regrettably, you have not been doing your homework AT ALL (and next time you WILL be left without answer)
A far jump will mark the current tss as idle, and the new one as busy (must have been idle)
A far call will mark the new tss as busy (must have been idle), store a pointer in the backlink field, and leaves the original busy as well
An iret (with NT set) will jump to the task in the backlink pointer (must be busy) and marks the current one as idle
A far return may never return to another TSS.
There is a reason why everybody else uses the far more simple software task switching.
software based task switching is already done (up and running)... but I will try for more one (or two) weeks trying to understanding the intel based...
...about be left without answer: Well this is the risk that I will take. Otherwise, I consider lost of time posting messages, asking for help of something that I already understand... I accept this risk because in this sequences of text I learn a lot... (So, thanks every one of you)