[net.micro.pc] Non-reentrant DOS interrupts

dap1@ihlpf.UUCP (11/18/83)

#N:ihlpf:17100019:000:887
ihlpf!dap1    Nov 17 17:46:00 1983

Does anyone know how to set up an asynchronous interrupt (i.e., timer) which
uses the DOS interrupts internally?  The problem comes about since the DOS
interrupts are not reentrant due to the fact that they use their own internal
stack.  If I knew where the DOS stack was, I might be able to save it in my
own area and then restore it before I return.  There are other problems here
too.  If I interrupt a DOS routine and don't change the SS register, then if
I request a DOS interrupt, that DOS interrupt could change it's own return
address.  It looks like I have to set up MY own internal stack.  The problem
is, if I try to use a high level language as the interrupt routine, I can't
tell it to use a separate stack.  Does anybody have any suggestions???

                                                     Darrell Plank
                                                     BTL-IH

seaburg@uiuccsb.UUCP (11/21/83)

#R:ihlpf:17100019:uiuccsb:5100004:000:471
uiuccsb!seaburg    Nov 20 14:48:00 1983

You can do file I/O from a DOS character I/O routine (BIOS) and the other
way around, but character I/O can't invoke more character I/O (same for
disk) because it screws up the stack.  The reason you can switch is that
there are 2 stacks involved.

The only suggestion I can give if you want to nest the same kind of calls
is to trace through in DEBUG and try to figure out where the stacks 
are.  (Or bribe someone at MicroSoft into giving you advice!)

uiucdcs!seaburg