Input/output base address

In the x86 architecture, an input/output base address is the first address of a range of consecutive read/write addresses that a device uses on the x86's IO bus. This base address is sometimes called an I/O port.

Common I/O base address device assignments in IBM PC compatible computers

This table represents the common I/O address ranges for device assignments in IBM PC compatible computers. The base address is the first in each range. Different types of devices can vary in the number of I/O ports they need for communication with the CPU, therefore the extent of the address range varies. Also, address decoders often do not decode all address bits, causing the necessary I/O address range window to be larger than necessary or mirrored to other addresses as well. Each row of the table represents a device or chip within the computer system. For example, the address of the status port in a parallel printer adapter is at 0x0001. Depending on the adapter's configuration, this may be mapped in at different locations within the PC's I/O address range. Assuming, the adapter would present a third parallel port (with base address 0x0278), this would result in the status port mapped in at 0x0279 in the CPU'S I/O address space.

When there are two or more identical devices in a computer system, each device would be mapped to a different base address (e.g. LPT2 and LPT3 for printers).

I/O address range Device
00 – 1F First DMA controller 8237 A-5
20 – 3F First Programmable Interrupt Controller, 8259A, Master
40 – 5F Programmable Interval Timer (System Timer), 8254
60 – 6F Keyboard, 8042
70 – 7F Real Time Clock, NMI mask
80 – 9F DMA Page Register, 74LS612
87 DMA Channel 0
83 DMA Channel 1
81 DMA Channel 2
82 DMA Channel 3
8B DMA Channel 5
89 DMA Channel 6
8A DMA Channel 7
8F Refresh
A0 – BF Second Programmable Interrupt Controller, 8259A, Slave
C0 – DF Second DMA controller 8237 A-5
F0 Clear 80287 Busy
F1 Reset 80287
F8 – FF Math coprocessor, 80287
F0 – F5 PCjr Disk Controller
F8 – FF Reserved for future microprocessor extensions
100 – 10F POS Programmable Option Select (PS/2)
110 – 1EF System I/O channel
140 – 15F Secondary SCSI host adapter
170 – 177 Secondary Parallel ATA Disk Controller
1F0 – 1F7 Primary Parallel ATA Hard Disk Controller
200 – 20F Game port
210 – 217 Expansion Unit
220 – 233 Sound Blaster and most other sound cards
278 – 27F Parallel port 3
280 – 29F LCD on Wyse 2108 PC SMC Elite default factory setting
2B0 – 2DF Alternate Enhanced Graphics Adapter (EGA) display control
2E8 – 2EF Serial port 4
2E1 GPIB/IEEE-488 Adapter 0
2E2 – 2E3 Data acquisition
2F8 – 2FF Serial port 2
300 – 31F Prototype Card
300 – 31F Novell NE1000 compatible Ethernet network interfaces
300 – 31F AMD Am7990 Ethernet network interface, IRQ=5.
320 – 323 ST-506 and compatible hard disk drive interface
330 – 331 MPU-401 MIDI Processing Unit on most sound cards
340 – 35F Primary SCSI host adapter
370 – 377 Secondary floppy disk drive controller
378 – 37F Parallel port 2
380 – 38C Secondary Binary Synchronous Data Link Control (SDLC) adapter
388 – 389 AdLib Music Synthesizer Card
3A0 – 3A9 Primary Binary Synchronous Data Link Control (SDLC) adapter
3B0 – 3BB Monochrome Display Adapter (MDA) display control
3BC – 3BF Parallel port 1 on MDA card
3C0 – 3CF Enhanced Graphics Adapter (EGA) display control
3D0 – 3DF Color Graphics Adapter (CGA)
3E8 – 3EF Serial port 3
3F0 – 3F7 Primary floppy disk drive controller. Primary IDE controller (slave drive) (3F6–3F7h)
3F8 – 3FF Serial port 1
CF8 – CFC PCI configuration space

Note: For many devices listed above the assignments can be changed via jumpers, DIP switches, or Plug-And-Play software.

See also

References

HelpPC Quick Reference Utility by David Jurgens

External links