back2root:ibm-pc-ms-dos:hardware:start

PORTS 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

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
020h 8259 Command port
021h 8259 Interrupt mask register
040h 8253 channel 0, counter divisor
041h 8253 channel 1, RAM refresh counter
042h 8253 channel 2, Cassette and speaker functions
043h 8253 mode control (see 8253/8254)
044h 8254 PS/2 extended timer (see 8253/8254)
047h 8254 Channel 3 control byte
060h 8255 Port A keyboard input/output buffer (output PCjr)
061h 8255 Port B output
062h 8255 Port C input
063h 8255 Command/Mode control register
060h 8042 Keyboard input/output buffer register
061h 8042 system control port (for compatability with 8255)
064h 8042 Keyboard command/status 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
0A0h NMI Mask Register (PC,XT) (write 80h to enable NMI, 00h disable)
0A0h 8259 Second 8259 Command port
0A1h 8259 Second 8259 Interrupt mask register
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)

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

see EGA/VGA registers

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

3220h-3227h 8250 UART PS/2 COM3
3228h-322Fh 8250 UART PS/2 COM4
4220h-4227h 8250 UART PS/2 COM5
4228h-422Fh 8250 UART PS/2 COM6
5220h-5227h 8250 UART PS/2 COM7
5228h-522Fh 8250 UART PS/2 COM8
  • back2root/ibm-pc-ms-dos/hardware/start.txt
  • Dernière modification : 2024/03/03 22:10
  • de frater