Harald Houppermans wrote:

WOW very interesting indeed

I thought you did it like this:

asm
 mov CS, blabla
 mov IP, blabla
end

But now I see !!!

You are actually using the parameters:

CS := blabla; :)
IP := blabla; :)


Those interrupt parameters actually allow something which otherwise isn't
allowed ?!

The CS and IP parameters access the return address stored on the stack. (so after the iretd it will continue executing from there) In 16-bit DOS you can even simulate multithreading using this. Just hook int8 and store the CS/IP and all the other registers for the current thread and load CS/IP/registers of the next thread to be executed. Alas I didn't find a way to do that in 32-bit DPMI. :)


_______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to