Mail Archives: djgpp/1999/04/18/14:05:21
Michael Bukin (M DOT A DOT Bukin AT inp DOT nsk DOT su) wrote:
: ams AT ludd DOT luth DOT se (Martin Str|mberg) writes:
:
: > Now I'm back to the basics. Here follows a minimal interrupt handler
: > that only chains to the previous one. After that one is installed I
: > issue an interrupt just to make sure it's working. Alas it isn't; the
: > program stops after inserting the interrupt handler. The last thing it
: > prints is "Now.".
:
: >
: > popl %ds
: > ljmp %fs:_old_isr
:
: IMHO, it should be %cs:_old_isr. And you don't need to clobber %fs.
Yes. I tried that first. However as the program reports "New:
selector:offset = 319:5472." and "Old: selector:offset = 59:528." and
it didn't work I just thought it best to really use that (old)
selector.
To make things clear if I replace
"movw _selector_of_old_isr, %fs
popl %ds
ljmp %fs:_old_isr"
with
"popl %ds
ljmp %cs:_old_isr"
the prorgam crashes after saying "Generating an int.", and the usual
WINDOZE window blurb that says "This program has performed an illegal
operation..." appears. Clicking on "Details" reveals
"Fault location: D303:DCA2
Interrupts in service: None".
So any ideas?
Rota, Symphony No. 1,
MartinS
- Raw text -