[comp.sys.ibm.pc] Two Reply's: HW interrupts and COM port's

kjeld@iesd.dk (Kjeld Flarup) (06/15/89)

I have noted some questions concerning interrupts and COM ports.
First there is a reply to Dave Vasko:
		PORT    ADDRESS      INTERRUPT 
		COM1	3F8-3FF      IRQ4
		COM2	2F8-2FF      IRQ3
		COM3    2F0-2F7      IRQ4 ( or IRQ2 )
		COM4    3F0-3F7      IRQ3 ( or IRQ5 )

I think. because noone seems to know for sure.
Let's look at the HW interrupt list Jonatan Vail wasn't sure about.

   IRQ  0 - Timer.
   IRQ  1 - Keyboard.
   IRQ  2 - EGA vertical retrace.
   IRQ  3 - COM2.
   IRQ  4 - COM1.
   IRQ  5 - Fixed disk.
   IRQ  6 - Diskette.
   IRQ  7 - LPT1.
   IRQ  8 - Real time clock.
   IRQ  9 - LAN adapter 1.
   IRQ 10 - Reserved.
   IRQ 11 - Reserved.
   IRQ 12 - Mouse.
   IRQ 13 - Coprocessor.
   IRQ 14 - Fixed Disk.
   IRQ 15 - Reserved.

It also occurs to me that something is wrong.
I know that internal modems can be placed almost anywhere. Therefore Procomm
Plus gives the user a free selection of port adress and interrupt number.

Timo Salmi had some troubles with his modem at COM3, and at the same time using
COM1. When I first Installed my modem it only took me 15 minutes to put it in.
And 1 hour 45 minutes to remove my mouse driver. Because these used the same
interrupt. See my table above.

If one wants to run three or more COM ports at one time by independent
software drivers. I can be nessecary to use individula interrupts for each
of them.

-- 
Kjeld Flarup Christensen | "I'am now thirty-seven times older than the universe
kjeld@iesd.dk            | itself." Marvin the depressed Robot.

rkl@cbnewsh.ATT.COM (kevin.laux) (06/16/89)

In article <2073@iesd.dk>, kjeld@iesd.dk (Kjeld Flarup) writes:
> I have noted some questions concerning interrupts and COM ports.
> First there is a reply to Dave Vasko:
> 		PORT    ADDRESS      INTERRUPT 
> 		COM1	3F8-3FF      IRQ4
> 		COM2	2F8-2FF      IRQ3
> 		COM3    2F0-2F7      IRQ4 ( or IRQ2 )
> 		COM4    3F0-3F7      IRQ3 ( or IRQ5 )
> 
> I think. because noone seems to know for sure.

	COM3 and COM4 can be set to interrupt on IRQs 3 and 4, but they don't
have to be.  They can be *polled* and not interrupt driven.  Some serial
port cards also allow the user to set them up for IRQ 2 or 5.  On at AT
class machine, you can't use IRQ 2, because that's used for the interrupt
from the second PIC (Programmable Interrupt Controller), or, if you have
and EGA/VGA card installed, the video card takes over IRQ 2 for itself (and
then has to do the work of intercepting and passing on the interrupts from
the second PIC).  On an XT class machine, both IRQs 2 and 5 are free.

	If COM3 and COM4 (as well as COM1 and COM2) are all to be interrupt
driven, then you must have a special interrupt handler that will check to
see which one of the COM ports actually generated the interrupt.

> Let's look at the HW interrupt list Jonatan Vail wasn't sure about.
> 
>    IRQ  0 - Timer.
>    IRQ  1 - Keyboard.
>    IRQ  2 - EGA vertical retrace.
>    IRQ  3 - COM2.
>    IRQ  4 - COM1.
>    IRQ  5 - Fixed disk.		<--only on *XT* class machines
>    IRQ  6 - Diskette.
>    IRQ  7 - LPT1.
>    IRQ  8 - Real time clock.
>    IRQ  9 - LAN adapter 1.
>    IRQ 10 - Reserved.
>    IRQ 11 - Reserved.
>    IRQ 12 - Mouse.
>    IRQ 13 - Coprocessor.
>    IRQ 14 - Fixed Disk.
>    IRQ 15 - Reserved.
> 

	Here is the *default* IRQ list for *XT* class machines:

IRQ0	- Timer Channel 0
IRQ1	- Keyboard
IRQ2	- Reserved
IRQ3	- COM2
IRQ4	- COM1
IRQ5	- Fixed Disk
IRQ6	- Diskette
IRQ7	- LPT1

	Here is the *default* IRQ list for *AT* class machines (286,386):

1st PIC:

IRQ0	- Timer Channel 0
IRQ1	- Keyboard
IRQ2	- Interrupt from 2nd PIC
IRQ3	- COM2
IRQ4	- COM1
IRQ5	- LPT2
IRQ6	- Diskette
IRQ7	- LPT1

2nd PIC:

IRQ8	- Real Time Clock
IRQ9	- Streaming Tape Unit
IRQ10	- Reserved
IRQ11	- Reserved
IRQ12	- Reserved
IRQ13	- Coprocessor
IRQ14	- Fixed Disk
IRQ15	- Reserved

	Now depending on what hardware you put in your system, various IRQs
get taken over.  For example, in XT class machines, the mouse would go on
IRQ 2, but in an AT class machine, it would go on IRQ 5 (denying the use of
LPT2).  Note that sometimes, you can't use some hardware devices together
because of the IRQ conflicts (like 3 individually interrupt driven COM ports
(COM3 on IRQ 5) with a Mouse).

--rkl

keithe@tekgvs.LABS.TEK.COM (Keith Ericson) (06/19/89)

In article <1506@cbnewsh.ATT.COM> rkl@cbnewsh.ATT.COM (kevin.laux) writes:
>
>On at AT
>class machine, you can't use IRQ 2, because that's used for the interrupt
                ^^^^^^^^^^^^^^^^^^^
>from the second PIC (Programmable Interrupt Controller), or, if you have
>and EGA/VGA card installed, the video card takes over IRQ 2 for itself (and
>then has to do the work of intercepting and passing on the interrupts from
>the second PIC).
>

Well, this comes as news to me - and to my AT...

I've got my WD8003 network card set up for IRQ2; and I've got a VGA diskplay
card.  It all works fine.

IRQ2 ends up as IRQ9 - take a look at diagrams for a PC bus and for an AT
bus and you'll see that IRQ2 on the PC bus has been replaced by IRQ9 on the
AT.  By the way - the same hardware configuration (network card jumpered for
IRQ2) works with DOS application (PC-NFS) configured for IRQ2 and for UNIX
(AT&T SysVR3.2), but UNIX refers to the interrupt as IRQ9.

kEITHe

PS - Actually, kevin's statement IS correct: "You can't use IRQ2" on an AT
     class machine because it doesn't really exist.  It's just that
     PC-oriented software still refers to it as IRQ2.