[comp.sys.intel] Interrupt/Exception Confusion on PC/AT

edhall@randvax.UUCP (Ed Hall) (11/02/88)

I may be missing something obvious, here:

When running an 80286 in protected mode (and for some limited cases
in real mode) it is possible to generate exceptions with vector numbers
between 0x8 and 0xf.  Now, on a PC/AT, COM1 is at INT 0xa--which is
the INT for a stack overflow.  Just how do you tell the two apart?
How about LPT2 and a general protection violation?  In fact, all of
these vectors have some flavor of PC/AT hardware that claims them.

Of course, the INTEL 80286 reference says all over it that INT 0x0 to
INT 0x1f are ``reserved by INTEL.''   Maybe the folks at IBM can't
read...

Short of hacking hardware, how do people deal with this problem?  Or
am I missing something?  Do the PC/AT hardware vectors mysteriously move
when the 80286 is in protected mode?  Or is there some simple way to
figure out whether an interrupt is external or some internal exception
condition?

Thanks for any help or advice you might give me.

		-Ed Hall
		edhall@rand.org
		hplabs!sm.unisys.com!randvax!edhall

rob@conexch.UUCP (Robert Collins) (11/04/88)

In article <385@ives.randvax.UUCP> edhall@randvax.UUCP (Ed Hall) writes:
+I may be missing something obvious, here:
+
+When running an 80286 in protected mode (and for some limited cases
+in real mode) it is possible to generate exceptions with vector numbers
+between 0x8 and 0xf.  Now, on a PC/AT, COM1 is at INT 0xa--which is
+the INT for a stack overflow.  Just how do you tell the two apart?
+How about LPT2 and a general protection violation?  In fact, all of
+these vectors have some flavor of PC/AT hardware that claims them.
+
+Of course, the INTEL 80286 reference says all over it that INT 0x0 to
+INT 0x1f are ``reserved by INTEL.''   Maybe the folks at IBM can't
+read...
+
From what I understand, when the 286 came out, (and actually was capable
of generating these interrupts,) IBM tried to bully intel to changing
a few things.  Intel said:  "We told you not to use them in the first
place."  Intel subsequently wouldn't back down...which really screwed
IBM (and all other clones...since we all must be compatible).

If this isn't true, then it certainly sounds good!

-- 
"Worship the Lord your God, and serve him only."  Mat. 4:10
Robert Collins                 UUCP:  ucbvax!ucivax!icnvax!conexch!rob
HOMENET:  (714) 995-7344       UUCP:  uunet!ccicpg!turnkey!conexch!rob
WORKNET:  (714) 229-0284

mch@ukc.ac.uk (Martin Howe) (11/11/88)

In article <385@ives.randvax.UUCP> edhall@randvax.UUCP (Ed Hall) writes:

>between 0x8 and 0xf.  Now, on a PC/AT, COM1 is at INT 0xa--which is
>the INT for a stack overflow.  Just how do you tell the two apart?
>How about LPT2 and a general protection violation?  In fact, all of

Oh. Then what's invalid TSS  !? :-)

- Martin

-- 
Martin C. Howe (mch@ukc.ac.uk)  | "See them coming, Atlantis will rrr-ise,
LAN/MICRO Group, Computing Lab. |  - it's absolute lunacy, they seek
The University, CANTERBURY, UK. |    to desp-pise !"
Tel. +44 (0227) 764000 x 7592   |