Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: Notesfiles $Revision: 1.7.0.8 $; site trsvax
Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!inuxc!pur-ee!uiucdcs!convex!trsvax!mikey
From: mikey@trsvax
Newsgroups: net.micro.pc
Subject: Re: Interrupts in Turbo 3.0
Message-ID: <53500018@trsvax>
Date: Thu, 15-Aug-85 10:09:00 EDT
Article-I.D.: trsvax.53500018
Posted: Thu Aug 15 10:09:00 1985
Date-Received: Sat, 24-Aug-85 02:45:56 EDT
References: <2216@ut-ngp.UTEXAS>
Lines: 23
Nf-ID: #R:ut-ngp.UTEXAS:-221600:trsvax:53500018:000:1146
Nf-From: trsvax!mikey    Aug 15 09:09:00 1985




> As I remember, there were quite a few undocumented things that had to
> be done (like resetting the DS register inside the routine, as it
> might be interrupting a system routine and the DS would be different
> from what you expect).

What do you mean "undocumented"????  The first rule of an interupt is to
assume nothing, the second is to save everything that you might touch.
The only "undocumented" trick I can think of is the fact that the interupts
are 'edge' triggered and you must do your EOI processing before the next
edge occurs or you might miss it.  If you miss the edge and the interupt
continues to hold the interupt line, you might loose interupts from
that point on.  Even this is not usually a problem unless you have
some hardware that requires extensive processing and the interupts happen
very often, or you have multiple interupts that share a common hardware
interupt line.  The Tandy 2000 serial expansion board has a possible
24 different interupts that can occur on one line.  That code had to 
be TIGHT!  Of course, that's with two boards in one machine for 8 serial
channels, but it can be done.

mikey at trsvax