|
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 |
|
|
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. |