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