Hail thou o Scott!
Once upon a time thou didst write unto Arnoud Bakker:
AB>> Why can't I tap on the timer interrupt (1Ch)... Whenever I
AB>> try my multitaskers get angry. Is there another way to let
AB>> my tsr get started every second? (or a little less)
Yeah, hook INT 8 directly. :)
SM> 1Ch is the user timer hook, which is the correct one...
Quite useless indeed if you're going to do some real work (e.g. call DOS)
from the handler.
SM> maybe you aren't returning correctly (not hooking correctly), or taking
SM> too long to handle it, or disabling interrupts
Enabling/disabling interrupts in INT 1Ch handler doesn't matter anything
-- INT 8 handler calls INT 1Ch _prior_ to sending end-of-interrupt (EOI) to
the interrupt controller, so _any_ external interrrupts are effectively
disabled during the INT 1Ch (IRQ0 is the highest priority IRQ, so no other
IRQs could be serviced until EOI is sent to the interrupt controller). That's
why it's quite useless. :)
SM> and leaving them off
Well, it's quite a hard thing to do when returning via IRET. :)
Fare thee well o Scott!
PS: What I've said above is applicable to DOS but not to the multitaskers,
maybe -- V86 interrupt reflecting is more tricky things...
... Happy hacking!
--- GoldED 2.50+
---------------
* Origin: Parcel Of Rogues (FidoNet 2:5020/157.59)
|