Port addresses are not always constant across PC, AT and PS/2
Unless marked, port addresses are relative to PC and XT only
000h | Channel 0 address register |
001h | Channel 0 word count |
002h | Channel 1 address register |
003h | Channel 1 word count |
004h | Channel 2 address register |
005h | Channel 2 word count |
006h | Channel 3 address register |
007h | Channel 3 word count |
008h | Status/command register |
009h | Request register |
00Ah | Mask register |
00Bh | Mode register |
00Ch | Clear MSB/LSB flip flop |
00Dh | Master clear temp register |
00Eh | Clear mask register |
00Fh | Multiple mask register |
070h | CMOS RAM/RTC, also NMI enable/disable (AT,PS/2, see RTC) |
071h | CMOS RAM data (AT,PS/2) |
080h | Manufacturer systems checkpoint port (used during POST) |
081h | High order 4 bits of DMA channel 2 address |
082h | High order 4 bits of DMA channel 3 address |
083h | High order 4 bits of DMA channel 1 address |
090h | Central arbitration control Port |
091h | Card selection feedback |
092h | System control and status register |
094h | System board enable/setup register |
095h | Reserved |
096h | Adapter enable/setup register |
097h | Reserved |
0C0h | TI SN76496 Programmable Tone/Noise Generator (PCjr) |
0C2h | DMA channel 3 selector (see ports 6 & 82) |
0F0h | Disk Controller |
0F2h | Disk Controller control port |
0F4h | Disk Controller status register |
0F5h | Disk Controller data port |
100h | POS Register 0, Adapter ID byte (LSB) |
101h | POS Register 1, Adapter ID byte (MSB) |
102h | POS Register 2, Option select data byte 1 * Bit 0 is card enable (CDEN) |
103h | POS Register 3, Option select data byte 2 |
104h | POS Register 4, Option select data byte 3 |
105h | POS Register 5, Option select data byte 4 * Bit 7 is (-CHCK) * Bit 6 is reserved |
106h | POS Register 6, subaddress extension (LSB) |
107h | POS Register 7, subaddress extension (MSB) |
170h | disk 1 data |
171h | disk 1 error |
172h | disk 1 sector count |
173h | disk 1 sector number |
174h | disk 1 cylinder low |
175h | disk 1 cylinder high |
176h | disk 1 drive/head |
177h | disk 1 status |
1F0h | disk 0 data |
1F1h | disk 0 error |
1F2h | disk 0 sector count |
1F3h | disk 0 sector number |
1F4h | disk 0 cylinder low |
1F5h | disk 0 cylinder high |
1F6h | disk 0 drive/head |
1F7h | disk 0 status |
210h | write | latch expansion bus data read: verify expansion bus data |
211h | write | clear wait,test latch Read: MSB of data address |
212h | read | LSB of data address |
213h | write | 0=enable 1=/disable expansion unit |
214h-215h | Receiver Card Ports | |
214h | write | latch data |
214h | read | data |
215h | read | MSB of address, next read: LSB of address |
: | ||
21Fh | Reserved |
278h | data port |
279h | status port |
27Ah | control port |
2E0h | Alternate EGA/VGA |
2E1h | GPIB Adapter (AT) |
see 3F8h-3FFh - COM1
Primary Asynchronous Adapter for PCjr
See 3F8h-3FFh - COM1
Periscope hardware debugger
320h | Read from/Write to controller | |
321h | Read | Controller Status |
Write | controller reset | |
322h | Write | generate controller select pulse |
323h | Write | Pattern to DMA and interrupt mask register (see ports 0F,21,C2) |
324h | disk attention/status |
372h | Diskette digital output |
374h | Diskette controller status |
375h | Diskette controller data |
376h | Diskette controller data |
377h | Diskette digital input |
First Parallel Printer (see PARALLEL PORT)
378h | data port |
379h | status port |
37Ah | control port |
380h | On board 8255 | port A, internal/external sense |
381h | On board 8255 | port B, external modem interface |
382h | On board 8255 | port C, internal control and gating |
383h | On board 8255 | mode register |
384h | On board 8253 | channel square wave generator |
385h | On board 8253 | channel 1 inactivity time-out |
386h | On board 8253 | channel 2 inactivity time-out |
387h | On board 8253 | mode register |
388h | On board 8273 | read: status Write: Command |
389h | On board 8273 | write: parameter read: response |
38Ah | On board 8273 | transmit interrupt status |
38Bh | On board 8273 | receiver interrupt status |
38Ch | On board 8273 | data |
3A0h | On board 8255 | port A, internal/external sense |
3A1h | On board 8255 | port B, external modem interface |
3A2h | On board 8255 | port C, internal control and gating |
3A3h | On board 8255 | mode register |
3A4h | On board 8253 | counter 0 unused |
3A5h | On board 8253 | counter 1 inactivity time-outs |
3A6h | On board 8253 | counter 2 inactivity time-outs |
3A7h | On board 8253 | mode register |
3A8h | On board 8251 | data |
3A9h | On board 8251 | command/mode/status register |
3B0h | port address decodes to 3B4 | |
3B1h | port address decodes to 3B5 | |
3B2h | port address decodes to 3B4 | |
3B3h | port address decodes to 3B5 | |
3B4h | 6845 | index register, selects which register [0-11h] is to be accessed through port 3B5 |
3B5h | 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. |
3B6h | port address decodes to 3B4 | |
3B7h | port address decodes to 3B5 | |
3B8h | 6845 | Mode control register |
3B9h | reserved for color select register on color adapter | |
3BAh | status register (read only) | |
3BBh | reserved for light pen strobe reset |
3BCh | parallel 1, data port |
3BDh | parallel 1, status port |
3BEh | parallel 1, control port |
3C0h | VGA attribute and sequencer register |
3C1h | Other video attributes |
3C2h | EGA, VGA, CGA input status 0 |
3C3h | Video subsystem enable |
3C4h | CGA, EGA, VGA sequencer index |
3C5h | CGA, EGA, VGA sequencer |
3C6h | VGA video DAC PEL mask |
3C7h | VGA video DAC state |
3C8h | VGA video DAC PEL address |
3C9h | VGA video DAC |
3CAh | VGA graphics 2 position |
3CCh | VGA graphics 1 position |
3CDh | VGA feature control |
3CEh | VGA graphics index |
3CFh | Other VGA graphics |
ports 3D0h-3DBh are write only, see 6845
3D0h | 6845 | port address decodes to 3D4 | |
3D1h | 6845 | port address decodes to 3D5 | |
3D2h | 6845 | port address decodes to 3D4 | |
3D3h | 6845 | port address decodes to 3D5 | |
3D4h | 6845 | index register, selects which register [0-11h] is to be accessed through port 3D5 | |
3D5h | 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. | |
3D6h | 6845 | port address decodes to 3D4 | |
3D7h | 6845 | port address decodes to 3D5 | |
3D8h | 6845 | Mode control register | (CGA, EGA, VGA, except PCjr) |
3D9h | 6845 | color select palette register | (CGA, EGA, VGA) |
3DAh | 6845 | status register | (read only, PCjr VGA access) |
3DBh | 6845 | Clear light pen latch (any write) | |
3DCh | 6845 | Preset Light pen latch | |
3DFh | 6845 | CRT/CPU page register | (PCjr only) |
(see 3F8h-3FFh - COM1)
3F0h | Diskette controller status A |
3F1h | Diskette controller status B |
3F2h | controller control port |
3F4h | controller status register |
3F5h | data register (write 1-9 byte command, see INT13 ) |
3F6h | Diskette controller data |
3F7h | Diskette digital input |