Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!husc6!mit-eddie!ll-xn!ames!ptsfa!ihnp4!inuxc!iuvax!bsu-cs!null
From: null@bsu-cs.UUCP (Patrick Bennett)
Newsgroups: comp.sys.ibm.pc
Subject: Re: DOS Critical-error handler
Message-ID: <888@bsu-cs.UUCP>
Date: Sat, 25-Jul-87 15:21:49 EDT
Article-I.D.: bsu-cs.888
Posted: Sat Jul 25 15:21:49 1987
Date-Received: Sun, 26-Jul-87 03:08:13 EDT
References: <1871@isis.UUCP> <1610020@hpcvlo.HP.COM> <872@bsu-cs.UUCP> <6381@eddie.MIT.EDU>
Organization: CS Dept, Ball St U, Muncie, Indiana
Lines: 22

In article <6381@eddie.MIT.EDU>, nathan@eddie.MIT.EDU (Nathan Glasser) writes:
> In addition, one fact which people don't usually have to think
> about but is sometimes important is that some/all? calls to Dos
> functions turn on interrupts (sti) at some point before doing
> whatever it is they're supposed to do. If your program needs
                                                         ^^^^^ 
> to leave interrupts turned off for a period of time during which
> we also want to set a vector, you can't use the Dos function call.
> (I ran into this the other day. It was really tough to find.)

Interrupts should ALWAYS be disabled when manipulating interrupt vectors - 
If interrupts were enabled, one could be called just before you finish
updating the interrupt vector with the new address - eg. only the segment
address has been changed.  Well, what if the interrupt you're changing
were called?  It would have a correct segment address, but the offset would
place it in the twilight zone...  Common fumble with the timer tick vector...

No no no no no no - definitely clear those interrupts!

-- 
----
Patrick Bennett     UUCP:  {ihnp4,seismo}!{iuvax,pur-ee}!bsu-cs!null