I/O Port Summary
From CPCWiki - THE Amstrad CPC encyclopedia!
The is a list of all known I/O ports of the Amstrad CPC.
I/O | Decoded as | Port | Read | Write |
#78XX | ? | 4Mb Memory extension | - | Write |
#79XX | ? | 4Mb Memory extension | - | Write |
#7AXX | ? | 4Mb Memory extension | - | Write |
#7BXX | ? | 4Mb Memory extension | - | Write |
#7CXX | ? | 4Mb Memory extension | - | Write |
#7DXX | ? | 4Mb Memory extension | - | Write |
#7EXX | ? | 4Mb Memory extension | - | Write |
#7FXX | ? | 4Mb Memory extension | - | Write |
#7FXX | ? | Dk'tronics memory expansion | - | Write |
#7FXX | ? | Dobbertin Memory Expansion | - | Write |
#7FXX | %0111xxxx xxxxxxxx | Gate Array | - | Write |
#BCXX | %x0xxxx00 xxxxxxxx | 6845 CRTC Address-Register | - | Write |
#BDXX | %x0xxxx01 xxxxxxxx | 6845 CRTC Data-Register | - | Write |
#BEXX | %x0xxxx10 xxxxxxxx | 6845 CRTC Status-Register | Read | - |
#BFXX | %x0xxxx11 xxxxxxxx | 6845 CRTC Video-Address-Register | Read | - |
#DFXX | %xx0xxxxx xxxxxxxx | Upper ROM Bank Number | - | Write |
#EFXX | %xxx0xxxx xxxxxxxx | Printer Port | - | Write |
#F4XX | %xxxx0x00 xxxxxxxx | 8255 PIO Port A (PSG Data) | Read | Write |
#F5XX | %xxxx0x01 xxxxxxxx | 8255 PIO Port B (Vsync,PrnBusy,Tape,etc.) | Read | - |
#F6XX | %xxxx0x10 xxxxxxxx | 8255 PIO Port C (KeybRow,Tape,PSG Control) | - | Write |
#F7XX | %xxxx0x11 xxxxxxxx | 8255 PIO Control-Register | - | Write |
#F8B0 | ? | Vidi-CPC Video-Digitiser | ? | ? |
#F8B1 | ? | Vidi-CPC Video-Digitiser | ? | ? |
#F8DC - #F8DD | ? | CPCI Serial Interface | Read | Write |
#F8E0 | ? | DHCP Midi Interface | Read | Write |
#F8E0 | ? | Schneider RS232 Interface Z80 STI Indirect Data Register | Read | Write |
#F8E1 | ? | Schneider RS232 Interface Z80 STI Gen. Purpose I/O Interrupt | Read | Write |
#F8E6 | ? | Port A - IDE8255 | ? | ? |
#F8E7 | ? | Port C - IDE8255 | ? | ? |
#F8E8 | ? | Schneider RS232 Interface Z80 STI Pointer Vector Register | Read | Write |
#F8E8 | ? | Music Machine Interrupt Sel | - | Write |
#F8EC | ? | Schneider RS232 Interface Z80 STI USART Control Register | Read | Write |
#F8EC | ? | Music Machine ACIA Control | - | Write |
#F8ED | ? | Music Machine ACIA Data Write | - | Write |
#F8ED | ? | Schneider RS232 Interface Z80 STI Receiver Status Register | Read | Write |
#F8EE | ? | Music Machine ACIA Status | Read | - |
#F8EE | ? | Schneider RS232 Interface Z80 STI Transmitter Status Register | Read | Write |
#F8EF | ? | Schneider RS232 Interface Z80 STI USART Data Register | Read | Write |
#F8EF | ? | Music Machine ACIA Data Read | Read | - |
#F8E2 - #F8E4 | ? | Dobbertin Eprommer 4003 | ? | ? |
#F8F0 | ? | Music Machine DAC Write | - | Write |
#F8F2 | ? | EMR MIDI Interface | - | Write |
#F8F2 | ? | Dobbertin Eprommer 4003 | ? | ? |
#F8F4 | ? | Music Machine ADC Read | Read | - |
#F8F8 | ? | Music Machine ADC Start | - | Write |
#F8FF | %1111100x 111xxxxx | CPCISA control port | - | Write |
#F8FF | N/A | Peripheral Soft Reset (MC_BOOT_PROGRAM does OUT [F8FF],FF) | - | Write |
#F9B0 | ? | Vidi-CPC Video-Digitiser | ? | ? |
#F9E6 | ? | Port B - IDE8255 | ? | ? |
#F9E7 | ? | RS Port - IDE8255 | ? | ? |
#F9F7 | ? | Hegotron grafpad II | ? | ? |
#F9FC - #F9FE | ? | Otten & Fecht 1 MB RAM-Disc | Read | Write |
#F9FF | ? | Hegotron grafpad II | ? | ? |
#FA7E | %xxxxxx0x0 0xxxxxxx | Floppy Motor Control (for 765 FDC) | - | Write |
#FADC | ? | Amstrad Serial Interface Z80-SIO / DART port A Data Register | Read | Write |
#FADD | ? | Amstrad Serial Interface Z80-SIO / DART port A Control Reg. | Read | Write |
#FADE | ? | Amstrad Serial Interface Z80-SIO / DART port B Data Register | Read | Write |
#FADF | ? | Amstrad Serial Interface Z80-SIO / DART port B Control Reg. | Read | Write |
#FAE6 | ? | Port A - IDE8255 | ? | ? |
#FAE7 | ? | Port C - IDE8255 | ? | ? |
#FB7E | %xxxxxx0x1 0xxxxxx0 | 765 FDC (internal) Status Register | Read | - |
#FB7F | %xxxxxx0x1 0xxxxxx1 | 765 FDC (internal) Data Register | Read | Write |
#FBBD | ? | Ram select mode Vortex SP512 | ? | Write |
#FBDC | ? | Amstrad Serial Interface 8253 Timer counter 0 | Read | Write |
#FBDD | ? | Amstrad Serial Interface 8253 Timer counter 1 | Read | Write |
#FBDE | ? | Amstrad Serial Interface 8253 Timer counter 2 | Read | Write |
#FBDF | ? | Amstrad Serial Interface 8253 Timer Modus Select | - | Write |
#FBxx | ? | Real Time Clock (DIY) | ? | ? |
#FBE0 - #FBE3 | ? | Dk'tronics Real Time Clock | ? | ? |
#FBE0 | ? | Whatever Hard Disc Data Port | Read | Write |
#FBE1 | ? | Whatever Hard Disc Status, Reset | Read | Write |
#FBE2 | ? | Whatever Hard Disc Select, Configuration | Read | Write |
#FBE3 | ? | Whatever Hard Disc DMA, Interrupt | Read | Write |
#FBE4 | ? | Whatever Hard Disc Reset | Read | Write |
#FBE6 | ? | Port B - IDE8255 | ? | ? |
#FBE7 | ? | RS Port - IDE8255 | ? | ? |
#FBE7 | ? | ACU Real Time Clock (DIY) Z80-PIO Data In/Out Port A | Read | Write |
#FBE8 | ? | Dk'tronics Real Time Clock | ? | ? |
#FBE8 | ? | KDS RS232 8253 Timer0 (RX Clock) | ? | ? |
#FBE9 | ? | KDS RS232 8253 Timer1 (TX Clock) | ? | ? |
#FBEA | ? | KDS RS232 8253 Timer2 (not used) | ? | ? |
#FBEB | ? | KDS RS232 8253 Timer Control | ? | ? |
#FBEC | ? | KDS RS232 6850 (reversed bit-order) Control | - | Write |
#FBED | ? | KDS RS232 6850 (reversed bit-order) TX Data | - | Write |
#FBEE | ? | Amstrad SSA-1 Speech Synthesizer | Read | Write |
#FBEE | ? | KDS RS232 6850 (reversed bit-order) Status | Read | - |
#FBEF | ? | KDS RS232 6850 (reversed bit-order) RX Data | Read | - |
#FBEF | ? | ACU Real Time Clock (DIY) Z80-PIO Data In/Out Port B | Read | Write |
#FBF0 - #FBFF | ? | Otten & Fecht 1 MB RAM-Disc | Read | Write |
#FBF6 | ? | Vortex Disc Drives 765 FDC (Vortex,ext) Status Register | Read | - |
#FBF7 | ? | Vortex Disc Drives 765 FDC (Vortex,ext) Data Register | Read | Write |
#FBF7 | ? | ACU Real Time Clock (DIY) Z80-PIO Configure Port A | Read | Write |
#FBFE | ? | Magnum Light Phaser | - | Write |
#FBFE | ? | Dk'tronics Speech Synthesizer | Read | Write |
#FBFE | ? | TMPI speech synthesizer Data Register | Write | |
#FBFF | ? | TMPI speech synthesizer Command/Status Register | Read | Write |
#FBFF | ? | ACU Real Time Clock (DIY) Z80-PIO Configure Port B | Read | Write |
#FC00 - #FDFF | %1111110x xxxxxxxx | CPCISA 16bits mode high byte latch | Read | Write |
#FCE6 | ? | Port A - IDE8255 | Read | Write |
#FCE7 | ? | Port C - IDE8255 | Read | Write |
#FD00 - #FD3F | %11111101 00xxxxxx | SYMBiFACE II | Read | Write |
#FDE6 | ? | Port B - IDE8255 | Read | Write |
#FDE7 | ? | RS Port - IDE8255 | Read | Write |
#FE00 - #FFFF | %1111111x xxxxxxxx | CPCISA I/O access (low byte) | Read | Write |
#FEE6 | ? | Port A - IDE8255 | Read | Write |
#FEE7 | ? | Port C - IDE8255 | Read | Write |
#FEE8 | ? | Multiface II | ? | ? |
#FEEA | ? | Multiface II | ? | ? |
#FFXX | %11111111 xxxxxxxx | CPC Booster (XX=#00..#28 are used now) | Read | Write |
#FF50 | ? | Amdrum | ? | Write |
#FFE6 | ? | Port B - IDE8255 | Read | Write |
#FFE7 | ? | RS Port - IDE8255 | Read | Write |
CPCISA ports for ISA cards
Device | PC I/O range | CPCISA high | CPCISA low |
IDE1 | 1F0h..1F7h | #FDF0..#FDF7 | #FFF0..#FFF7 |
IDE2 | 170h..177h | #FD70..#FD77 | #FF70..#FF77 |
Joystick | 201h..201h | #FC01..#FC01 | #FE01..#FE01 |
Ethernet | 210h..21Fh | #FC10..#FC1F | #FE10..#FE1F |
Sound Blaster | 220h..23Fh | #FC20..#FC3F | #FE20..#FE3F |
LPT2 | 278h..27Fh | #FC78..#FC7F | #FE78..#FE7F |
COM1 | 2F8h..2FFh | #FCF8..#FCFF | #FEF8..#FEFF |
MIDI' | 300h..301h | #FD00..#FD01 | #FF00..#FF01 |
MIDI | 330h..331h | #FD30..#FD31 | #FF30..#FF31 |
Sound control | 370h..371h | #FD70..#FD71 | #FF70..#FF71 |
FDC1 | 372h..377h | #FD72..#FD77 | #FF72..#FF77 |
LPT1 | 378h..37Fh | #FD78..#FD7F | #FF78..#FF7F |
Sound AD-LIB | 388h..38Bh | #FD88..#FD8B | #FF88..#FF8B |
VGA | 3B0h..3BBh | #FDB0..#FDBB | #FFB0..#FFBB |
LPT3 | 3BCh..3BFh | #FDBC..#FDBF | #FFBC..#FFBF |
VGA | 3C0h..3DFh | #FDC0..#FDCF | #FFC0..#FFCF |
FDC1 | 3F2h..3F7h | #FDF2..#FDF7 | #FFF2..#FFF7 |
COM1 | 3F8h..3FFh | #FDF8..#FDFF | #FFF8..#FFFF |
CPCISA ports for ISA motherboard
Device | PC I/O range | CPCISA high | CPCISA low |
DMA | 000h..00Fh | #FC00..#FC0F | #FE00..#FE0F |
interrupt | 020h..03Fh | #FC20..#FC3F | #FE20..#FE3F |
counter | 040h..05Fh | #FC40..#FC5F | #FE40..#FE5F |
keyboard | 060h..067h | #FC60..#FC67 | #FE60..#FE67 |
RTC | 070h..071h | #FC70..#FC71 | #FE70..#FE71 |
DMA | 080h..08Fh | #FC80..#FC8F | #FE80..#FE8F |
DMA | 0C0h..0DFh | #FCC0..#FCDF | #FEC0..#FEDF |
interrupt | 0A0h..0BFh | #FCA0..#FCBF | #FEA0..#FEBF |