PortList - AT version release 0 (v1.00) last change: Wed June 17 08:23:35 1992 This compilation is Copyright (c) 1992 Ed Beroset --------------------------------------------- This is a list of Input/Output ports (I/O ports) for AT clones. My goal is to document I/O ports and help programmers in the manner that Ralf Brown's interrupt list has. I have unabashedly adapted what I felt were the best parts of that list's format, and I have specifically attempted to avoid duplicating information that is included in those lists. If you notice any mistakes or omissions, please let me know! Ed Beroset FIDO: Ed Beroset 1:3641/1.250 or post a message to the 80XXX echo CIS: 73040,612 Data Sources: VLSI Technology, Inc. VL82C331 Data Sheet (TOPCAT chipset) The Programmer's PC Sourcebook Microsystem Components Handbook (Intel) my friends and colleages of the 80XXX Fidonet echo --------------------------------------------- PORT 000 - DMA Controller 1 (8237A-5) Channel 0 Base and Current Address Register --------------------------------------------- PORT 001 - DMA Controller 1 (8237A-5) Channel 0 Base and Current Word Count Register --------------------------------------------- PORT 002 - DMA Controller 1 (8237A-5) Channel 1 Base and Current Address Register --------------------------------------------- PORT 003 - DMA Controller 1 (8237A-5) Channel 1 Base and Current Word Count Register --------------------------------------------- PORT 004 - DMA Controller 1 (8237A-5) Channel 2 Base and Current Address Register --------------------------------------------- PORT 005 - DMA Controller 1 (8237A-5) Channel 2 Base and Current Word Count Register --------------------------------------------- PORT 006 - DMA Controller 1 (8237A-5) Channel 3 Base and Current Address Register --------------------------------------------- PORT 007 - DMA Controller 1 (8237A-5) Channel 3 Base and Current Word Count Register --------------------------------------------- PORT 008 - DMA Controller 1 (8237A-5) Read Status Register/Write Command Register --------------------------------------------- PORT 009 - DMA Controller 1 (8237A-5) Write Request Register --------------------------------------------- PORT 00A - DMA Controller 1 (8237A-5) Write Single Mask Register Bit --------------------------------------------- PORT 00B - DMA Controller 1 (8237A-5) Write Mode Register --------------------------------------------- PORT 00C - DMA Controller 1 (8237A-5) Clear Byte Pointer Flip-flop --------------------------------------------- PORT 00D - DMA Controller 1 (8237A-5) Read Temporary Register/Write Master Clear --------------------------------------------- PORT 00E - DMA Controller 1 (8237A-5) Clear Mask Register --------------------------------------------- PORT 00F - DMA Controller 1 (8237A-5) Write All Mask Register Bits --------------------------------------------- PORT 010 - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 011 - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 012 - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 013 - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 014 - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 015 - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 016 - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 017 - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 018 - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 019 - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 01A - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 01B - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 01C - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 01D - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 01E - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 01F - DMA Controller 1 (8237A-5) --------------------------------------------- PORT 020 - Interrrupt Controller 1 (8259A) Write ICW1/Read Interrupt Request Register, In-Svc Reg or Poll Command Write OCW2 Write OCW3 --------------------------------------------- PORT 021 - Interrrupt Controller 1 (8259A) Write ICW2/read Interrupt Mask Register Write ICW3 Write ICW4 (if needed) Write OCW1 --------------------------------------------- PORT 022 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 023 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 024 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 025 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 026 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 027 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 028 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 029 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 02A - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 02B - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 02C - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 02D - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 02E - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 02F - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 030 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 031 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 032 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 033 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 034 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 035 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 036 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 037 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 038 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 039 - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 03A - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 03B - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 03C - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 03D - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 03E - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 03F - Interrrupt Controller 1 (8259A) --------------------------------------------- PORT 040 - Timer (8254-2) Write Initial Count to Counter 0 Read Count/Status from Counter 0 --------------------------------------------- PORT 041 - Timer (8254-2) Write Initial Count to Counter 1 Read Count/Status from Counter 1 --------------------------------------------- PORT 042 - Timer (8254-2) Write Initial Count to Counter 2 Read Count/Status from Counter 2 --------------------------------------------- PORT 043 - Timer (8254-2) Write Control Word --------------------------------------------- PORT 044 - --------------------------------------------- PORT 045 - --------------------------------------------- PORT 046 - --------------------------------------------- PORT 047 - --------------------------------------------- PORT 048 - --------------------------------------------- PORT 049 - --------------------------------------------- PORT 04A - --------------------------------------------- PORT 04B - --------------------------------------------- PORT 04C - --------------------------------------------- PORT 04D - --------------------------------------------- PORT 04E - --------------------------------------------- PORT 04F - --------------------------------------------- PORT 050 - --------------------------------------------- PORT 051 - --------------------------------------------- PORT 052 - --------------------------------------------- PORT 053 - --------------------------------------------- PORT 054 - --------------------------------------------- PORT 055 - --------------------------------------------- PORT 056 - --------------------------------------------- PORT 057 - --------------------------------------------- PORT 058 - --------------------------------------------- PORT 059 - --------------------------------------------- PORT 05A - --------------------------------------------- PORT 05B - --------------------------------------------- PORT 05C - --------------------------------------------- PORT 05D - --------------------------------------------- PORT 05E - --------------------------------------------- PORT 05F - --------------------------------------------- PORT 060 - Keyboard (8042) AT Keyboard Input Port bit function values --- -------- ------ 7 Keyboard inhibit switch 1=not inhibited 6 display switch 1=MDA, 0=CGA 5 Manf. test jumper 1=not installed 4 System RAM 0=512K, 1=256K 0-3 RESERVED --------------------------------------------- PORT 061 - Keyboard (8042) bit function --- -------- 7 Parity Check 6 Channel Check 5 Timer Output bit 2 state 4 Refresh Detect 3 Enable I/O check 2 Enable RAM Parity Check 1 Speaker Data 0 Speaker Timer 2 Gate --------------------------------------------- PORT 062 - Keyboard (8042) AT Keyboard Output Port bit function --- -------- 7 Keyboard data output 6 Keyboard clock output 5 Input buffer empty 4 Output buffer full 3 RESERVED 2 RESERVED 1 Gate A20 0 system reset --------------------------------------------- PORT 063 - Keyboard (8042) --------------------------------------------- PORT 064 - Keyboard (8042) AT Keyboard Status Register bit function Values --- -------- ------ 7 Parity Error 1=even parity, 0=odd parity (no error) 6 Receive Timeout 1=keyboard did not finish 5 Transmit Timeout 1=keyboard did not finish 4 Inhibit switch 1=keyboard NOT inhibited 3 Command/data 1=addressed as port 64h, 0=port 60h 2 System flag 1=Self test OK, 0=reset by power on 1 Input buffer full 0 Output buffer full --------------------------------------------- PORT 065 - Keyboard (8042) --------------------------------------------- PORT 066 - --------------------------------------------- PORT 067 - Keyboard (8042) --------------------------------------------- PORT 068 - --------------------------------------------- PORT 069 - Keyboard (8042) --------------------------------------------- PORT 06A - --------------------------------------------- PORT 06B - Keyboard (8042) --------------------------------------------- PORT 06C - --------------------------------------------- PORT 06D - Keyboard (8042) --------------------------------------------- PORT 06E - --------------------------------------------- PORT 06F - Keyboard (8042) --------------------------------------------- PORT 070 - RTC, NMI mask (MC146818) Write port address Addr Function Range ---- -------- ----- 0 Seconds (Time) 0-59 1 Seconds (Alarm) 0-59 2 Minutes (Time) 0-59 3 Minutes (Alarm) 0-59 4 Hours (Time) 1-12 or 0-23 5 Hours (Alarm) 0-23 6 Day of Week 1-7 7 Date of Month 1-31 8 Month 1-12 9 Year 0-99 A RTC Register A B RTC Register B C RTC Register C D RTC Register D E Diagnostic status F shutdown status 10 floppy drive type 11 RESERVED 12 hard drive type 13 RESERVED 14 equipment byte 15 base memory lo 16 base memory hi 17 expansion memory lo 18 expansion memory hi 19 hard drive 0 extended type 1A hard drive 1 extended type 1B-2D RESERVED 2E checksum of registers 10-2Dh hi 2F checksum of registers 10-2Dh lo 30 expansion memory lo 31 expansion memory hi 32 century 33 information flags 34-3F RESERVED RTC Register A bit function --- -------- 7 update in progress 4-6 22 stage divider (default = 010, 32.768kHz time base) 0-3 rate selection --------------------------------------------- PORT 071 - RTC, NMI mask (MC146818) Read/write data --------------------------------------------- PORT 072 - --------------------------------------------- PORT 073 - --------------------------------------------- PORT 074 - reserved for RTC, NMI mask (MC146818) --------------------------------------------- PORT 075 - reserved for RTC, NMI mask (MC146818) --------------------------------------------- PORT 076 - reserved for RTC, NMI mask (MC146818) --------------------------------------------- PORT 077 - --------------------------------------------- PORT 078 - --------------------------------------------- PORT 079 - --------------------------------------------- PORT 07A - --------------------------------------------- PORT 07B - --------------------------------------------- PORT 07C - --------------------------------------------- PORT 07D - --------------------------------------------- PORT 07E - --------------------------------------------- PORT 07F - --------------------------------------------- PORT 080 - --------------------------------------------- PORT 081 - DMA Page Registers (74LS612) DMA Channel 2 --------------------------------------------- PORT 082 - DMA Page Registers (74LS612) DMA Channel 3 --------------------------------------------- PORT 083 - DMA Page Registers (74LS612) DMA Channel 1 --------------------------------------------- PORT 084 - --------------------------------------------- PORT 085 - --------------------------------------------- PORT 086 - --------------------------------------------- PORT 087 - DMA Page Registers (74LS612) DMA Channel 0 --------------------------------------------- PORT 088 - --------------------------------------------- PORT 089 - DMA Page Registers (74LS612) DMA Channel 6 --------------------------------------------- PORT 08A - DMA Page Registers (74LS612) DMA Channel 7 --------------------------------------------- PORT 08B - DMA Page Registers (74LS612) DMA Channel 5 --------------------------------------------- PORT 08C - --------------------------------------------- PORT 08D - DMA Page Registers (74LS612) DMA Channel --------------------------------------------- PORT 08E - --------------------------------------------- PORT 08F - DMA Page Registers (74LS612) REFRESH drives a value onto the upper address bits A25-A17 of the CPU's address bus during a refresh cycle --------------------------------------------- PORT 090 - --------------------------------------------- PORT 091 - --------------------------------------------- PORT 092 - Port A --------------------------------------------- PORT 093 - --------------------------------------------- PORT 094 - --------------------------------------------- PORT 095 - --------------------------------------------- PORT 096 - --------------------------------------------- PORT 097 - --------------------------------------------- PORT 098 - --------------------------------------------- PORT 099 - --------------------------------------------- PORT 09A - --------------------------------------------- PORT 09B - --------------------------------------------- PORT 09C - --------------------------------------------- PORT 09D - --------------------------------------------- PORT 09E - --------------------------------------------- PORT 09F - --------------------------------------------- PORT 0A0 - Interrrupt Controller 2 (8259A) Write ICW1/Read Interrupt Request Register, In-Svc Reg or Poll Command Write OCW2 Write OCW3 --------------------------------------------- PORT 0A1 - Interrrupt Controller 2 (8259A) Write ICW2/read Interrupt Mask Register Write ICW3 Write ICW4 (if needed) Write OCW1 --------------------------------------------- PORT 0A2 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0A3 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0A4 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0A5 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0A6 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0A7 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0A8 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0A9 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0AA - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0AB - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0AC - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0AD - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0AE - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0AF - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0B0 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0B1 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0B2 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0B3 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0B4 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0B5 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0B6 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0B7 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0B8 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0B9 - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0BA - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0BB - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0BC - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0BD - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0BE - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0BF - Interrrupt Controller 2 (8259A) --------------------------------------------- PORT 0C0 - DMA Controller 2 (8237A-5) Channel 0 Base and Current Address Register --------------------------------------------- PORT 0C1 - --------------------------------------------- PORT 0C2 - DMA Controller 2 (8237A-5) Channel 0 Base and Current Word Count --------------------------------------------- PORT 0C3 - --------------------------------------------- PORT 0C4 - DMA Controller 2 (8237A-5) Channel 1 Base and Current Address Register --------------------------------------------- PORT 0C5 - --------------------------------------------- PORT 0C6 - DMA Controller 2 (8237A-5) Channel 1 Base and Current Word Count --------------------------------------------- PORT 0C7 - --------------------------------------------- PORT 0C8 - DMA Controller 2 (8237A-5) Channel 2 Base and Current Address Register --------------------------------------------- PORT 0C9 - --------------------------------------------- PORT 0CA - DMA Controller 2 (8237A-5) Channel 2 Base and Current Word Count --------------------------------------------- PORT 0CB - --------------------------------------------- PORT 0CC - DMA Controller 2 (8237A-5) Channel 3 Base and Current Address Register --------------------------------------------- PORT 0CD - --------------------------------------------- PORT 0CE - DMA Controller 2 (8237A-5) Channel 3 Base and Current Word Count --------------------------------------------- PORT 0CF - --------------------------------------------- PORT 0D0 - DMA Controller 2 (8237A-5) Read Status Register/Write Command Register --------------------------------------------- PORT 0D1 - --------------------------------------------- PORT 0D2 - DMA Controller 2 (8237A-5) Write Request Register --------------------------------------------- PORT 0D3 - --------------------------------------------- PORT 0D4 - DMA Controller 2 (8237A-5) Write Single Mask Register Bit --------------------------------------------- PORT 0D5 - --------------------------------------------- PORT 0D6 - DMA Controller 2 (8237A-5) Write Mode Register --------------------------------------------- PORT 0D7 - --------------------------------------------- PORT 0D8 - DMA Controller 2 (8237A-5) Clear Byte Pointer Flip-flop --------------------------------------------- PORT 0D9 - --------------------------------------------- PORT 0DA - DMA Controller 2 (8237A-5) Read Temporary Register/Write Master Clear --------------------------------------------- PORT 0DB - --------------------------------------------- PORT 0DC - DMA Controller 2 (8237A-5) Clear Mask Register --------------------------------------------- PORT 0DD - --------------------------------------------- PORT 0DE - DMA Controller 2 (8237A-5) Write All Mask Register Bits --------------------------------------------- PORT 0DF - --------------------------------------------- PORT 0E0 - Configuration registers --------------------------------------------- PORT 0E1 - Configuration registers --------------------------------------------- PORT 0E2 - Configuration registers --------------------------------------------- PORT 0E3 - Configuration registers --------------------------------------------- PORT 0E4 - Configuration registers --------------------------------------------- PORT 0E5 - Configuration registers --------------------------------------------- PORT 0E6 - Configuration registers --------------------------------------------- PORT 0E7 - Configuration registers --------------------------------------------- PORT 0E8 - Configuration registers --------------------------------------------- PORT 0E9 - Configuration registers --------------------------------------------- PORT 0EA - Configuration registers --------------------------------------------- PORT 0EB - Configuration registers --------------------------------------------- PORT 0EC - Configuration registers --------------------------------------------- PORT 0ED - Configuration registers --------------------------------------------- PORT 0EE - Configuration registers --------------------------------------------- PORT 0EF - Configuration registers --------------------------------------------- PORT 0F0 - Configuration registers --------------------------------------------- PORT 0F1 - Configuration registers --------------------------------------------- PORT 0F2 - Configuration registers --------------------------------------------- PORT 0F3 - Configuration registers --------------------------------------------- PORT 0F4 - Configuration registers --------------------------------------------- PORT 0F5 - Configuration registers --------------------------------------------- PORT 0F6 - Configuration registers --------------------------------------------- PORT 0F7 - Configuration registers --------------------------------------------- PORT 0F8 - Configuration registers --------------------------------------------- PORT 0F9 - Configuration registers --------------------------------------------- PORT 0FA - Configuration registers --------------------------------------------- PORT 0FB - Configuration registers --------------------------------------------- PORT 0FC - Configuration registers --------------------------------------------- PORT 0FD - Configuration registers --------------------------------------------- PORT 0FE - Configuration registers --------------------------------------------- PORT 0FF - Configuration registers ---------------------------------------------