Standard IRQ and base address assignments for the 16 level AT Interrupt controller.

12/25/98

IRQ

Function/Assignment

Base I/O address

Device

0

Non maskable interrupt (NMI)

Detects parity errors.

000-0FF (reserved)

System board functions

1

System timer

000-0FF

 

2

Cascade input for 2nd interrupt controller

 

 

3

COM2

COM4

PC Network (alternate)

 

SDLC/BSC

2F8 - 2FF

2E8 - 2EF

360 - 363

368 - 36B

380 - 38F

 

 

PC network (low address)

PC network (high address)

SDLC, Bi-sync

 4

COM1

COM3

BSC (primary)

3FB - 3FF

3E8 - 3EF

3A0-3AF

 

 

Bi-synch (primary)

5

LPT2

278 - 27F

 

6

Diskette controller

3F0 - 3F7

 

7

LPT1

378 - 37F

 

8

Real Time Clock (RTC)

000-0FF

 

9

Redirected IRQ 2 for 2nd interrupt controller

 

 

10

Open or Network card

300 - 31F

.Prototype/Network PCB

11

Open

 

 

12

PS/2 mouse.

IRQ available if serial mouse installed

 

 

13

Co-Processor

000-0FF

 

14

Primary HDD controller

1F0 - 1F8

 

15

Second HDD. IRQ available if no controller installed

....

 

 

 

200 - 207

Game I/O

 

 

3B0 - 3BF

Mono display and printer adapter (Hercules)

 

 

3C0 - 3CF

EGA/VGA

 

 

3D0 - 3DF

CGA/MDA/MCGA

 

The above table lists the default IRQ and base I/O addresses for standard PC devices. Read across from the IRQ column to the base I.O address column to get the default parameters for a given IRQ/device.

Note that some interrupts can be used for alternate devices. IE. If you have a Bi-synch controller then generally the asynch COM ports won't be in use and their interrupts can/will be used for the Bi-synch device.

Use these for reference if you get confused after failing to configure devices to non standard IRQ's and base I/O addresses. Many SW utilities like tape backups ASSUME standard IRQ and base addresses and may give errors if you have changed these assignments.

EXAMPLE: You may decide to assign IRQ-5 to your parallel port LPT1 and as long as Win95 and your drivers are set for IRQ-5 all will work well. However if you load a parallel port tape backup SW package they GENERALLY fail to find the tape backup device because the backup utility is expecting IRQ-7 on LPT1 and you changed it to IRQ 5. The SW usually reports that the tape cannot be found because it does not get an IRQ-7 when initializing the tape drive.

What is the base I/O address used for???

The base I/O addresses are reserved areas of main memory where control data is stored for a device. In the case of the Floppy drive it reserves 8 bytes (Two 32 bit memory words) starting at location 3F0(hex) and ending at address 3F7(hex) as it's I/O table.

The data stored in this table is :

COMMAND (read/write/seek) What type of operation do you want the diskette to perform on this I/O command?

MEMORY START ADDRESS (The starting location where the data is to be written from or read to in memory).

CYL, HD, SEC (The physical location on the diskette where you want to start the read/write operation.)

SECTOR COUNT (How many sectors to read or write for this operation.)

The floppy driver stores this data in the appropriate bytes of the table and then issues a START I/O command to the controller. The controller then accesses these two words to determine what I/.O operation to perform. When finished it will generate an IRQ-6 indicating that it has completed the last I/O operation it was given.

If you assign the same base I/O address to two separate devices, problems will occur, as one of the devices will not be able to decode a table setup for another device. Devices also often write return status data back into the base I/.O address for the driver to determine if there were any errors detected during the operation. When IRQ-6 is received the driver reads these two locations and determines if there is an error flag set. If so error message will be displayed. If no errors are encountered then the floppy is now ready for another operation and it starts all over again.