Common I/O Port Addresses Port addresses are not always constant across PC, AT and PS/2 Unless marked, port addresses are relative to PC and XT only 000-00F 8237 DMA controller 000 Channel 0 address register 001 Channel 0 word count 002 Channel 1 address register 003 Channel 1 word count 004 Channel 2 address register 005 Channel 2 word count 006 Channel 3 address register 007 Channel 3 word count 008 Status/command register 009 Request register 00A Mask register 00B Mode register 00C Clear MSB/LSB flip flop 00D Master clear temp register 00E Clear mask register 00F Multiple mask register 010-01F 8237 DMA Controller (PS/2), reserved (AT) 020-02F 8259A Programmable Interrupt Controller (all machines) 030-03F 8259A Programmable Interrupt Controller (AT only) 020 8259 Command port (see 8259) 021 8259 Interrupt mask register (see 8259) 040-05F 8253-5 Programmable Interval Timer (PIT, see 8253) 040 8253 channel 0, counter divisor 041 8253 channel 1, RAM refresh counter 042 8253 channel 2, Cassette and speaker functions 043 8253 mode control (see 8253) 060-06F 8042 Keyboard Controller (AT) 060-067 8255 Programmable Peripheral Interface 060 Port A input (keyboard scan code) (PC1,PC2,XT) (output PCjr) 061 Port B output (PC1,PC2,XT,PCjr) 062 Port C input (PC1,PC2,XT,PCjr) 063 Command/Mode control register 070 Real Time Clock, CMOS config memory & NMI mask (AT,PS2) 080 Manufacturer checkpoint port 080-09F DMA Page Registers 081 High order 4 bits of DMA channel 2 address 082 High order 4 bits of DMA channel 3 address 083 High order 4 bits of DMA channel 1 address 0A0 NMI Mask Register (PC,XT) (write 80h to enable NMI, 00h disable) 0A0-0BF Second 8259 Programmable Interrupt Controller (AT, PS2) 0A0 Second 8259 Command port (see 8259) 0A1 Second 8259 Interrupt mask register (see 8259) 0C0-0DF 8237 DMA controller 2 (AT) 0C0 TI SN76496 Programmable Tone/Noise Generator (PCjr) 0C2 DMA channel 3 selector (see ports 6 & 82) 0E0-0EF Reserved 0F0-0FF Math coprocessor (AT, PS2) 0F0-0F5 PCjr Disk Controller 0F0 Disk Controller 0F2 Disk Controller control port 0F4 Disk Controller status register 0F5 Disk Controller data port 100-10F Programmable Option Select (PS2) 110-1EF System I/O channel 1F0-1FF Fixed disk (AT) 200-20F Game Adapter (see GAME PORT or JOYSTICK) 210-217 Expansion Card Ports (XT) 210 Write: latch expansion bus data read: verify expansion bus data 211 Write: clear wait,test latch Read: MSB of of data address 212 Read: LSB of data address 213 Write: 0=enable, 1=/disable expansion unit 214-215 Receiver Card Ports 214 write: latch data, read: data 215 read: MSB of address, next read: LSB of address 220-26F Reserved for I/O channel 270-27F Third parallel port (see PARALLEL PORT) 280-2AF Reserved for I/O channel 2B0-2DF Alternate EGA, or 3270 PC video (XT, AT) 2E8-2EF COM4 non PS/2 UART (Reserved by IBM) (see UART) 2F0-2F7 Reserved 2F8-2FF COM2 Second Asynchronous Adapter (see UART) Primary Asynchronous Adapter for PCjr 300-31F Prototype Experimentation Card (except PCjr) 320-32F Hard Disk Controller (XT) 320 Read from/Write to controller 321 Read: Controller Status, Write: controller reset 322 Write: generate controller select pulse 323 Write: Pattern to DMA and interrupt mask register (see ports 0F,21,C2) 330-33F Reserved for XT/370 340-35F Reserved for I/O channel 360-36F PC Network 378-37F Second Parallel Printer (see PARALLEL PORT) First Parallel Printer (see PARALLEL PORT) 380-38F Synchronous Data Link Control (SDLC) Adapter 380-389 Second Binary Synchronous Adapter (if first is already installed) (see ports 3A0-3A9 for mapping) 380 On board 8255 port A, internal/external sense 381 On board 8255 port B, external modem interface 382 On board 8255 port C, internal control and gating 383 On board 8255 mode register 384 On board 8253 channel square wave generator 385 On board 8253 channel 1 inactivity time-out 386 On board 8253 channel 2 inactivity time-out 387 On board 8253 mode register 388 On board 8273 read: status; Write: Command 389 On board 8273 write: parameter; read: response 38A On board 8273 transmit interrupt status 38B On board 8273 receiver interrupt status 38C On board 8273 data 390-39F Cluster Adapter 3A0-3AF Primary Bisynchronous Adapter 3A0 On board 8255 port A, internal/external sense 3A1 On board 8255 port B, external modem interface 3A2 On board 8255 port C, internal control and gating 3A3 On board 8255 mode register 3A4 On board 8253 counter 0 not used 3A5 On board 8253 counter 1 inactivity time-outs 3A6 On board 8253 counter 2 inactivity time-outs 3A7 On board 8253 mode register 3A8 On board 8251 data 3A9 On board 8251 command/mode/status register 3B0-3BF Monochrome Display Adapter (write only, see 6845) 3B0 port address decodes to 3B4 3B1 port address decodes to 3B5 3B2 port address decodes to 3B4 3B3 port address decodes to 3B5 3B4 6845 index register, selects which register [0-11h] is to be accessed through port 3B5 3B5 6845 data register [0-11h] selected by port 3B4, registers 0C-0F may be read. If a read occurs without the adapter installed, FFh is returned. (see 6845) 3B6 port address decodes to 3B4 3B7 port address decodes to 3B5 3B8 6845 Mode control register 3B9 reserved for color select register on color adapter 3BA status register (read only) 3BB reserved for light pen strobe reset 3BC-3BF Primary Parallel Printer Adapter (see PARALLEL PORT) 3C0-3CF Enhanced Graphics Adapter 3D0-3DF Color Graphics Monitor Adapter (ports 3D0-3DB are write only, see 6845) 3D0 port address decodes to 3D4 3D1 port address decodes to 3D5 3D2 port address decodes to 3D4 3D3 port address decodes to 3D5 3D4 6845 index register, selects which register [0-11h] is to be accessed through port 3D5 3D5 6845 data register [0-11h] selected by port 3D4, registers 0C-0F may be read. If a read occurs without the adapter installed, FFh is returned. (see 6845) 3D6 port address decodes to 3D4 3D7 port address decodes to 3D5 3D8 6845 Mode control register (except PCjr) 3D9 color select register (see 6845) 3DA status register (read only, see 6845, PCjr VGA access) 3DB Clear light pen latch (any write) 3DC Preset Light pen latch 3DF CRT/CPU page register (PCjr only) 3E8-3EF COM3 non PS/2 UART (Reserved by IBM) (see UART) 3F0-3F7 Floppy disk controller (except PCjr) 3F2 controller control port 3F4 controller status register 3F5 data register (write 1-9 byte command, see INT 13) 3F8-3FF COM1 Primary Asynchronous Adapter (see UART) 3220-3227 PS/2 COM3 (see UART) 3228-322F PS/2 COM4 (see UART) 4220-4227 PS/2 COM5 (see UART) 4228-422F PS/2 COM6 (see UART) 5220-5227 PS/2 COM7 (see UART) 5228-522F PS/2 COM8 (see UART) |
|