Mail Archives: djgpp/1999/03/20/13:09:01
According to George Foot:
> On 20 Mar 99 at 12:01, Martin Str|mberg wrote:
>
> > : _go32_dpmi_seginfo old_isr, new_isr;
> > Added line
> > unsigned long address_of_old_isr
>
> What about the segment of the old ISR? I don't think you
> should just assume it's in your CS.
Right!
Now my assembly looks like:
asm("
.text
.p2align 2
.globl _handler
_handler:
/* Makes no diff.: */
pushw %ds
pushw %cs
popw %ds
pushw %fs
movw (_selector_of_old_isr), %fs
lcall %fs:(_address_of_old_isr)
/* ret or iret makes no difference. */
/* Additionaly, if the instruction above is a jmp is doesn't matter. */
popw %fs
popw %ds
iret
_handler_end:
nop
");
And it's still behaving just as badly.
Lush, Split,
MartinS
- Raw text -