Re: Somewhat confused with Interrupts/TSRs

James Courtier-Dutton
2007-11-30T22:13:12Z

> Yes... The logger calls Int16, which works fine, except that in that case
> the TSR stops working, because both 'hooks' to 'stimulate' the TSR (Int
> 1C and 28) stop working (see below). Note that both 1Ch and 28h are
> 'voluntary' interrupts, called only when DOS is idle. So while in the
> (BIOS's) Int16, DOS won't be able to call them.

The program does use Int16, function AH=0x10.
You would need to also hook Int16 so that it "stimulates" your TSR program.

>
>
> And at F000:C016 is a HLT. I suspect this is part of the mechanism dosemu
> uses to emulate.
>
That is correct, the HLT causes the dosemu to callout of DOS back into
the dosemu program to process the BIOS call.

I would probably take this approach:
Modify dosemu, or dosbox so that the BIOS call reads keyboard input from
a unix pipe. Then you can simply cat characters into the pipe from a
shell and the dos program will receive them.

Then you would not need a TSR at all!

James