PC PORT ASSIGNMENT, Intel 8088, 80C88, 8086, 80286, 80386 CPUs
 
hex addr.	Function 
 
0000-000F       8237 DMA controller 
0010-001F       8237 DMA controller  (AT, PS/2) 
0020-0027       8259A interrupt controller 
0020-003F       8259A interrupt controller  (AT) 
0040-005F       8253-5 programmable timers 
		(note: 0041 was memory refresh in PCs. Not used in PS/2) 
0060-0067       8255 peripheral interface 
0060-006F       8042 keyboard controller  (AT) 
0070		CMOS Configuation RAM address (AT)
0071				      data
0200-020F       game-control adapter 
0210-0217       expansion box (PC, XT) 
0278-027F       LPT3 
02F8-02FF       COM2 
0300-031F       prototype card 
0320-032F       hard disk controller  
0378-037F       LPT2 
03BC-03BF       LPT1 
03CE		Paradise VGA
03D0-03DF       CGA, MCGA, VGA adapter control 
03F0-03F7       floppy disk controller 
03F8-03FF       COM1 
 
note:   These are functions common across the IBM range. The PCjr, PC  
	Convertible and PS/2 (both buses) have enhancements. In some cases, the 
	AT & PS/2 series ignore, duplicate, or reassign ports arbitrarily. If
	your code incorporates specific port addresses for video or system board 
	control it would be wise to have your application determine the machine 
	type and video adapter and address the ports as required. 


IBM PC Input/Output Port Summary

Ref: PC Sourcebook, Page 396 Paragraph 7.03 I/O Port Usage Summary

Range	XT Use			       AT Use			      PS/2 Use			     Comments
------- ------------------------------ ------------------------------ ------------------------------ ------------------------------
000-00F DMA Controller (8237A-5)       DMA Controller (8237A-5)       DMA Controller
010-01F UNDOCUMENTED		       RESERVED FOR SYSTEM BOARD      DMA Controller
020-02F Interrupt controller (8259A)   Interrupt controller 1 (8259A) Interrupt controller 1 (8259A) Only ports 20,21 actually used
030-03F UNDOCUMENTED		       Interrupt controller 1 (8259A) UNDOCUMENTED
040-04F Timer (8253-5)		       Timer (8254-2)		      System timers		     XT uses 40-43 only, PS/2 uses 40,42-44,47 only
050-05F Timer (8253-5)		       Timer (8254-2)		      UNDOCUMENTED
060-06F Parallel port (8255A-5)        Keyboard (8042)		      Keyboard			     XT uses 60-63 only, PS/2 uses 60-61,64 only
070-07F UNDOCUMENTED		       RTC, NMI mask		      RTC, NMI mask		     PS/2 uses 70-71 only, reserves 74-76
080-08F DMA page registers	       DMA page registers (74LS612)   DMA page registers	     XT uses 80-83 only, AT and PS/2 use 81-83,87,89-8B,8F only
090-09F DMA page registers	       DMA page registers	      I/O channel		     PS/2 uses 90-94,96-97 only
0A0-0AF NMI mask registers	       Interrupt controller 2 (8259A) Interrupt controller 2 (8259A) PS/2 uses A0-A1 only
0B0-0BF UNDOCUMENTED		       Interrupt controller 2 (8259A) UNDOCUMENTED
0C0-0CF RESERVED		       DMA controller 2 (8237A-5)     DMA Controller
0D0-0DF UNDOCUMENTED		       DMA controller 2 (8237A-5)     DMA Controller
0E0-0EF RESERVED		       RESERVED FOR SYSTEM BOARD      UNDOCUMENTED
0F0-0FF UNDOCUMENTED		       Math coprocessor (80287)       Math coprocessor (80x87)	     AT uses F0-F1,F8-FF only
100-10F UNDOCUMENTED		       AVAILABLE FOR IO CHANNEL       Programmable option select     PS/2 uses 100-107 only
110-1EF UNDOCUMENTED		       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
1F0-1FF UNDOCUMENTED		       Fixed disk		      UNDOCUMENTED
200-20F Game I/O adapter	       Game I/O adapter 	      UNDOCUMENTED		     Game IO uses 200-207 only
210-21F Expansion unit		       21F RESERVED		      UNDOCUMENTED		     XT uses 210-207 only
220-24F RESERVED		       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
250-26F UNDOCUMENTED		       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
270-27F Parallel printer 2	       Parallel printer 2	      Parallel printer 3	     All use 278-27F only execept PS/2 uses 278-27B
280-28F UNDOCUMENTED		       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
290-29F UNDOCUMENTED		       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
2A0-2AF UNDOCUMENTED		       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
2B0-2BF Alternate EGA		       Alternate EGA		      UNDOCUMENTED
2C0-2CF Alternate EGA		       Alternate EGA		      UNDOCUMENTED
2D0-2DF Alternate EGA (3270 also uses) Alternate EGA		      UNDOCUMENTED
2E0-2EF UNDOCUMENTED		       GPIB 0,data acquisition 0      UNDOCUMENTED		     AT uses 2E1,2E2-2E3 only
2F0-2FF Secondary asynchronous adapter Serial port 2		      Serial port 2 (RS-232-C)	     All use 2F8-2FF only
300-30F Prototype card		       Prototype card		      UNDOCUMENTED
310-31F Prototype card		       Prototype card		      UNDOCUMENTED
320-32F Fixed disk adapter	       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
330-33F UNDOCUMENTED		       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
340-34F UNDOCUMENTED		       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
350-35F UNDOCUMENTED		       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
360-36F UNDOCUMENTED		       PC network (low address)       UNDOCUMENTED
370-37F Parallel printer	       Parallel printer 1	      Parallel printer 2
380-38F SDLC or second bisync control  SDLC or second bisync control  UNDOCUMENTED
390-39F UNDOCUMENTED		       Cluster adapter		      UNDOCUMENTED
3A0-3AF First bysinc controller        First bisync controller	      UNDOCUMENTED
3B0-3BF Monochrome display adapter     Monochrome display adapter     Video subsystem,Parallel printer 1
3C0-3CF Enhanced graphics adapter      Enhanced graphics adapter      Video subsystem
3D0-3DF Color graphics adapter	       Color graphics adapter	      Video subsystem
3E0-3EF 3E0-3E7 RESERVED	       AVAILABLE FOR IO CHANNEL       UNDOCUMENTED
3F0-3FF Floppy disk adapter, 1st async Floppy disk adapter, 1st async Diskette drive control,Serial  All use 3F0-3F7 for disk, 3F8-3FF for async communications



Interested:

Questions: