Input/output base address

Last updated

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

Contents

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 rangeDevice
00 – 1FFirst DMA controller 8237 A-5
20 – 3FFirst Programmable interrupt controller, 8259A,
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
8FRefresh
A0 – BFSecond Programmable interrupt controller, 8259A, Slave
C0 – DFSecond DMA controller 8237 A-5
F0Clear 80287 Busy
F1Reset 80287
F8 – FF Math coprocessor, 80287
F0 – F5 PCjr Disk Controller
F8 – FFReserved for future microprocessor extensions
100 – 10FPOS Programmable Option Select (PS/2)
110 – 1EFSystem I/O channel
140 – 15FSecondary SCSI host adapter
170 – 177Secondary Parallel ATA Disk Controller
1F0 – 1F7Primary Parallel ATA Hard Disk Controller
200 – 20F Game port
210 – 217Expansion 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 – 2DFAlternate Enhanced Graphics Adapter (EGA) display control
2E8 – 2EF Serial port 4
2E1GPIB/IEEE-488 Adapter 0
2E2 – 2E3Data acquisition
2F8 – 2FF Serial port 2
300 – 31FPrototype Card
300 – 31FNovell 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 – 35FPrimary SCSI host adapter
370 – 377Secondary floppy disk drive controller
378 – 37F Parallel port 2
380 – 38CSecondary Binary Synchronous Data Link Control (SDLC) adapter
388 – 389 AdLib Music Synthesizer Card
3A0 – 3A9Primary 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 – 3F7Primary floppy disk drive controller. Primary IDE controller (second I/O range) (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

Related Research Articles

<span class="mw-page-title-main">BIOS</span> Firmware for hardware initialization and OS runtime services

In computing, BIOS is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the booting process. The BIOS firmware comes pre-installed on an IBM PC or IBM PC compatible's system board and exists in some UEFI-based systems to maintain compatibility with operating systems that do not support UEFI native operation. The name originates from the Basic Input/Output System used in the CP/M operating system in 1975. The BIOS originally proprietary to the IBM PC has been reverse engineered by some companies looking to create compatible systems. The interface of that original system serves as a de facto standard.

<span class="mw-page-title-main">Industry Standard Architecture</span> 16-bit internal bus

Industry Standard Architecture (ISA) is the 16-bit internal bus of IBM PC/AT and similar computers based on the Intel 80286 and its immediate successors during the 1980s. The bus was (largely) backward compatible with the 8-bit bus of the 8088-based IBM PC, including the IBM PC/XT as well as IBM PC compatibles.

<span class="mw-page-title-main">Intel 8080</span> 8-bit microprocessor

The Intel 8080 ("eighty-eighty") is the second 8-bit microprocessor designed and manufactured by Intel. It first appeared in April 1974 and is an extended and enhanced variant of the earlier 8008 design, although without binary compatibility. The initial specified clock rate or frequency limit was 2 MHz, with common instructions using 4, 5, 7, 10, or 11 cycles. As a result, the processor is able to execute several hundred thousand instructions per second. Two faster variants, the 8080A-1 and 8080A-2, became available later with clock frequency limits of 3.125 MHz and 2.63 MHz respectively. The 8080 needs two support chips to function in most applications: the i8224 clock generator/driver and the i8228 bus controller. It is implemented in N-type metal–oxide–semiconductor logic (NMOS) using non-saturated enhancement mode transistors as loads thus demanding a +12 V and a −5 V voltage in addition to the main transistor–transistor logic (TTL) compatible +5 V.

<span class="mw-page-title-main">Motherboard</span> Main printed circuit board (PCB) for a computing device

A motherboard is the main printed circuit board (PCB) in general-purpose computers and other expandable systems. It holds and allows communication between many of the crucial electronic components of a system, such as the central processing unit (CPU) and memory, and provides connectors for other peripherals. Unlike a backplane, a motherboard usually contains significant sub-systems, such as the central processor, the chipset's input/output and memory controllers, interface connectors, and other components integrated for general use.

Direct memory access (DMA) is a feature of computer systems that allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU).

<span class="mw-page-title-main">COM (hardware interface)</span> Computer serial port

COM is the original, yet still common, name of the serial port interface on PC-compatible computers. It can refer not only to physical ports, but also to emulated ports, such as ports created by Bluetooth or USB adapters.

<span class="mw-page-title-main">Intel 8085</span> 8-bit microprocessor by Intel

The Intel 8085 ("eighty-eighty-five") is an 8-bit microprocessor produced by Intel and introduced in March 1976. It is software-binary compatible with the more-famous Intel 8080 with only two minor instructions added to support its added interrupt and serial input/output features. However, it requires less support circuitry, allowing simpler and less expensive microcomputer systems to be built. The "5" in the part number highlighted the fact that the 8085 uses a single +5-volt (V) power supply by using depletion-mode transistors, rather than requiring the +5 V, −5 V and +12 V supplies needed by the 8080. This capability matched that of the competing Z80, a popular 8080-derived CPU introduced the year before. These processors could be used in computers running the CP/M operating system.

<span class="mw-page-title-main">Parallel port</span> Computer interface

In computing, a parallel port is a type of interface found on early computers for connecting peripherals. The name refers to the way the data is sent; parallel ports send multiple bits of data at once, as opposed to serial communication, in which bits are sent one at a time. To do this, parallel ports require multiple data lines in their cables and port connectors and tend to be larger than contemporary serial ports, which only require one data line.

<span class="mw-page-title-main">Micro Channel architecture</span>

Micro Channel architecture, or the Micro Channel bus, is a proprietary 16- or 32-bit parallel computer bus introduced by IBM in 1987 which was used on PS/2 and other computers until the mid-1990s. Its name is commonly abbreviated as "MCA", although not by IBM. In IBM products, it superseded the ISA bus and was itself subsequently superseded by the PCI bus architecture.

Programmed input–output is a method of data transmission, via input/output (I/O), between a central processing unit (CPU) and a peripheral device, such as a Parallel ATA storage device. Each data item transfer is initiated by an instruction in the program, involving the CPU for every transaction. In contrast, in direct memory access (DMA) operations, the CPU is uninvolved in the data transfer.

Memory-mapped I/O (MMIO) and port-mapped I/O (PMIO) are two complementary methods of performing input/output (I/O) between the central processing unit (CPU) and peripheral devices in a computer. An alternative approach is using dedicated I/O processors, commonly known as channels on mainframe computers, which execute their own instructions.

<span class="mw-page-title-main">MPU-401</span>

The MPU-401, where MPU stands for MIDI Processing Unit, is an important but now obsolete interface for connecting MIDI-equipped electronic music hardware to personal computers. It was designed by Roland Corporation, which also co-authored the MIDI standard.

BIOS interrupt calls are a facility that operating systems and application programs use to invoke the facilities of the Basic Input/Output System firmware on IBM PC compatible computers. Traditionally, BIOS calls are mainly used by DOS programs and some other software such as boot loaders. BIOS runs in the real address mode of the x86 CPU, so programs that call BIOS either must also run in real mode or must switch from protected mode to real mode before calling BIOS and then switching back again. For this reason, modern operating systems that use the CPU in Protected mode or Long mode generally do not use the BIOS interrupt calls to support system functions, although they use the BIOS interrupt calls to probe and initialize hardware during booting. Real mode has the 1MB memory limitation, modern boot loaders use the unreal mode or protected mode to access up to 4GB memory.

<span class="mw-page-title-main">Intel 8259</span>

The Intel 8259 is a Programmable Interrupt Controller (PIC) designed for the Intel 8085 and Intel 8086 microprocessors. The initial part was 8259, a later A suffix version was upward compatible and usable with the 8086 or 8088 processor. The 8259 combines multiple interrupt input sources into a single interrupt output to the host microprocessor, extending the interrupt levels available in a system beyond the one or two levels found on the processor chip. The 8259A was the interrupt controller for the ISA bus in the original IBM PC and IBM PC AT.

<span class="mw-page-title-main">Intel 8253</span> Programmable interval timer IC

The Intel 8253 and 8254 are programmable interval timers (PITs), which perform timing and counting functions using three 16-bit counters.

In a computer, an interrupt request is a hardware signal sent to the processor that temporarily stops a running program and allows a special program, an interrupt handler, to run instead. Hardware interrupts are used to handle events such as receiving data from a modem or network card, key presses, or mouse movements.

<span class="mw-page-title-main">WDC 65C134</span>

The Western Design Center (WDC) W65C134S is an 8-bit CMOS microcontroller based on a W65C02S processor core, which is a superset of the MOS Technology 6502 processor.

<span class="mw-page-title-main">Intel 8255</span>

The Intel 8255 Programmable Peripheral Interface (PPI) chip was developed and manufactured by Intel in the first half of the 1970s for the Intel 8080 microprocessor. The 8255 provides 24 parallel input/output lines with a variety of programmable operating modes.

<span class="mw-page-title-main">Intel 8237</span>

Intel 8237 is a direct memory access (DMA) controller, a part of the MCS 85 microprocessor family. It enables data transfer between memory and the I/O with reduced load on the system's main processor by providing the memory with control signals and memory address information during the DMA transfer.

<span class="mw-page-title-main">Keyboard controller (computing)</span>

In computing, a keyboard controller is a device that interfaces a keyboard to a computer. Its main function is to inform the computer when a key is pressed or released. When data from the keyboard arrives, the controller raises an interrupt to allow the CPU to handle the input.

References