Last modified on 10 January 2010, at 15:56

I/O Port Summary

Revision as of 15:56, 10 January 2010 by Nocash (Talk | contribs)

This 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 (if any) 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 ? CPCI Serial Interface MC6850 Control/Status Register Read Write
#F8DD ? CPCI Serial Interface MC6850 Data Register 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 and MC_START_PROGRAM do 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+0 ? CPCI Real Time Clock Index (DIY) - Write
#FBxx+1 ? CPCI Real Time Clock Data (DIY) Read Write
#FBE0 - #FBE3 ? Dk'tronics Real Time Clock ? ?
#FBE0 ? Dobbertin Harddisc Data Port Read Write
#FBE1 ? Dobbertin Harddisc Status, Reset Read Write
#FBE2 ? Dobbertin Harddisc Select, Configuration Read Write
#FBE3 ? Dobbertin Harddisc DMA, Interrupt Read Write
#FBE4 ? Dobbertin Harddisc 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) Read Write
#FBE9 ? KDS RS232 8253 Timer1 (TX Clock) Read Write
#FBEA ? KDS RS232 8253 Timer2 (not used) Read Write
#FBEB ? KDS RS232 8253 Timer Control - Write
#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