Changes

I/O Port Summary

14,093 bytes added, 15 April
/* More Ports */
The This is a list of all known I/O ports of the Amstrad CPC, including all [[Peripherals]]. For a list showing only the built-in standard addresses see [[Default I/O Port Summary]]. The original list of I/O ports was taken from the [[FutureOS]] handbook. == I/O Port Summary ==Note: While most of these devices can be reached via a range of addresses due to the partial address decoding, code should never use any address other than the canonical one (all 'x'/don't care positions filled by 1's). Otherwise multiple devices will be enabled simultaneously, which is unlikely to be what you want.
{|{{Prettytable|width: 700px; font-size: 2em;}}
|'''I/O'''||'''Decoded as'''||'''Port'''||'''Read'''||'''Write'''
|-
|#78XX1C00||?%x0xxxx00 xxxxxxxx||[[CPC4MB|4Mb Memory extensionDk'tronics Lightpen]] faulty mirror of #BCXX [[CRTC]]Index||?- ||Write
|-
|#79XX1F00||?%x0xxxx11 xxxxxxxx||[[CPC4MB|4Mb Memory extensionDk'tronics Lightpen]] faulty mirror of #BFXX [[CRTC]]Data In||?Read ||Write-
|-
|#7AXX78XX||?%0xxxx000 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||?-||Write
|-
|#7BXX79XX||?%0xxxx001 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||?-||Write
|-
|#7CXX7AXX||?%0xxxx010 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||?-||Write
|-
|#7DXX7BXX||?%0xxxx011 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||?-||Write
|-
|#7EXX7CXX||?%0xxxx100 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||?-||Write
|-
|#7FXX7CXX||?%0xxxxx00 xxxxxxxx||[[CPC4MB|4Mb Memory extensionAleste 520EX]]RAM Mapper page 0 (extended "Gate Array 3")||?Read||Write
|-
|#7FXX7DXX||%0111xxxx 0xxxx101 xxxxxxxx||[[Gate ArrayCPC4MB|4Mb Memory extension]]|| -||Write
|-
|#BCXX7DXX||%x0xxxx00 0xxxxx01 xxxxxxxx||6845 [[CRTCAleste 520EX]] Address-RegisterRAM Mapper page 1 (extended "Gate Array 3")|| - Read||Write
|-
|#BDXX7EXX||%x0xxxx01 0xxxx110 xxxxxxxx||6845 [[CRTCCPC4MB|4Mb Memory extension]] Data-Register|| - ||Write
|-
|#BEXX7EXX||%x0xxxx10 0xxxxx10 xxxxxxxx||6845 [[CRTCAleste 520EX]] Status-RegisterRAM Mapper page 2 (extended "Gate Array 3")||Read|| - Write 
|-
 |#BFXX7EXX||%x0xxxx11 0xxxxxx0 xxxxxxxx||6845 [[CRTCY-MEM]] Video-Address-Register512K RAM Expansion part||Read|| - Write 
|-
|#BFFE7FXX||?%0xxxx111 xxxxxxxx||[[TMPI speech synthetizerCPC4MB|4Mb Memory extension]]??? ||-|| - Write
|-
|#DFXX7FXX||%xx0xxxxx 0xxxxx11 xxxxxxxx||select ROM[[Aleste 520EX]] RAM Mapper page 3 (extended "Gate Array 3")|| - Read||Write
|-
 |#EFXX7FXX||%xxx0xxxx 0xxxxxx1 xxxxxxxx||Printer Port[[X-MEM]] 512K RAM Expansion part|| - Read||Write
|-
|#F4XX7FXX||%xxxx0x00 xxxxxxxx?||8255 PIO Port A[[Dk'tronics memory expansion]]||Read-||Write
|-
|#F5XX7FXX||%xxxx0x01 xxxxxxxx?||8255 PIO Port B[[Dobbertin Memory Expansion]]||Read-|| - Write
|-
|#F6XX7FXX||%xxxx0x10 01xxxxxx xxxxxxxx||8255 PIO Port C[[Gate Array]]|| - ||Write
|-
|#F7XX7FXX||%xxxx0x11 0xxxxxxx xxxxxxxx||8255 PIO Control-Register[[PAL16L8]] extension to [[Gate Array]] for 128K RAM banking|| - ||Write
|-
|#F8B0BCXX||?%x0xxxx00 xxxxxxxx||6845 [[VIDI digitizer|Vidi-CPC Video-DigitiserCRTC]]Index||?- ||?Write
|-
|#F8B1BDXX||?%x0xxxx01 xxxxxxxx||6845 [[VIDI digitizer|Vidi-CPC Video-DigitiserCRTC]]Data Out||?- ||?Write
|-
|#F8DC - #F8DDBEXX||?%x0xxxx10 xxxxxxxx||6845 [[CPCI RS232 Interface|CPCI Serial InterfaceCRTC]]Status (as far as supported)||Read||Write-
|-
|#F8E0BFXX||?%x0xxxx11 xxxxxxxx||6845 [[DHCP Midi InterfaceCRTC]]Data In (as far as supported)||Read||Write-
|-
|#F8E0DFXX||?%xx0xxxxx xxxxxxxx||Z80 STI Indirect Data Register[[Upper ROM Bank Number]] (as decoded within CPC664, CPC6128, 464+, 6128+, decoding in ROM expansions may be different)||Read- ||Write
|-
|#F8E1ECXX||%xxx0xx00 xxxxxxxx||[[KC Compact]] CIO Port B (timer)|| Read ||Write|-|#EDXX||%xxx0xx01 xxxxxxxx||[[KC Compact]] CIO Port C (timer)|| Read ||Write|-|#EEXX||%xxx0xx10 xxxxxxxx||[[KC Compact]] CIO Control|| Read ||Write|-|#EEXX||%xxx0xxx0 xxxxxxxx||[[Aleste 520EX]] USART 8251 (RS232/Mouse) Data|| Read ||Write|-|#EFXX||%xxx0xx11 xxxxxxxx||[[KC Compact]] CIO Port A (Bi-drectional [[Printer Port]])|| Read ||Write|-|#EFXX||%xxx0xxx1 xxxxxxxx||[[Aleste 520EX]] USART 8251 (RS232/Mouse) Control/Status|| Read ||Write|-|#EFXX||%xxx0xxxx xxxxxxxx||[[Printer Port]]|| - ||Write|-|#F0E0||?||[[Draysoft Doubler]] External Tape Data Input (Bit5)||Read|| - |-|#F4XX||%xxxx0x00 xxxxxxxx||[[8255]] PIO Port A ([[PSG]] Data)||Read||Write|-|#F5XX||%xxxx0x01 xxxxxxxx||[[8255]] PIO Port B (Vsync,[[Printer Port|PrnBusy]],Tape,etc.)||Read|| - |-|#F6XX||%xxxx0x10 xxxxxxxx||[[8255]] PIO Port C (KeybRow,Tape,[[PSG]] Control)|| - ||Write|-|#F7XX||%xxxx0x11 xxxxxxxx||[[8255]] PIO Control-Register|| - ||Write|-|#F880-#F88F||%1111100x 1000xxxx||[[PlayCity]] Expansion CTC channels and YMZ data|| - || Write |-|#F890-#F89F||%1111100x 1--1xxxx||[[MultiPlay]] Expansion (mirror port, use #F9xx)|| Read || - |-|#F8A0-#F8AF||%11111000 1010xxxx||[[X-CPC]] ClockPort RTC|| Read || Write |-|#F8B0||?||[[VIDI digitizer|Vidi-CPC Video-Digitiser]], CRTC Index||?||Write|-|#F8B1||?||[[VIDI digitizer|Vidi-CPC Video-Digitiser]], CRTC Data||?||Write|-|#F8DC||?||[[CPCI RS232 Interface|CPCI Serial Interface]] MC6850 Control/Status||Read||Write|-|#F8DD||?||[[CPCI RS232 Interface|CPCI Serial Interface]] MC6850 Data||Read||Write|-|#F8E0||?||[[DHCP MIDI Interface]]||Read||Write|-|#F8E0||%11111000 11100000||[[Schneider RS232 Interface]] Z80 -STI Gen. Indirect Data Register||Read||Write|-|#F8E1||%11111000 11100001||[[Schneider RS232 Interface]] Z80-STI General Purpose I/O Data Register||Read||Write|-|#F8E2||%11111000 11100010||[[Schneider RS232 Interface]] Z80-STI Interrupt Pending Register B (unused)||Read||Write|-|#F8E2||?||[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]||?||?|-|#F8E3||%11111000 11100011||[[Schneider RS232 Interface]] Z80-STI Interrupt Pending Register A (unused)||Read||Write|-|#F8E3||?||[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]||?||?|-|#F8E4||%11111000 11100100||[[Schneider RS232 Interface]] Z80-STI Interrupt in-Service Register B (unused)||Read||Write|-|#F8E4||?||[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]||?||?|-|#F8E5||%11111000 11100101||[[Schneider RS232 Interface]] Z80-STI Interrupt in-Service Register A (unused)||Read||Write|-|#F8E6||%11111000 11100110||[[Schneider RS232 Interface]] Z80-STI InterruptMask Register B (unused)||Read||Write
|-
|#F8E6||?||Port A - [[IDE8255]]||?||?
|-
|#F8E7||%11111000 11100111||[[Schneider RS232 Interface]] Z80-STI Interrupt Mask Register A (unused)||Read||Write
|-
|#F8E7||?||Port C - [[IDE8255]]||?||?
|-
|#F8E8||?%11111000 11101000||[[Schneider RS232 Interface]] Z80 -STI Pointer Indirect Index and Interrupt Vector Register||Read||Write
|-
|#F8E8||?||[[Music Machine]]Interrupt Sel|| - ||Write
|-
|#F8ECF8E9||?%11111000 11101001||[[Schneider RS232 Interface]] Z80 -STI USART Timers A and B Control Register(unused)||Read||Write
|-
|#F8ECF8EA||?%11111000 11101010||[[Music MachineSchneider RS232 Interface]]Z80-STI Timer B Data Register (unused)|| - Read||Write
|-
|#F8EDF8EB||?%11111000 11101011||[[Schneider RS232 Interface]] Z80 -STI Receiver Status Timer A Data Register(unused)||Read||Write
|-
|#F8EEF8EC||?%11111000 11101100||[[Schneider RS232 Interface]] Z80 -STI Transmitter Status USART Control Register||Read||Write
|-
|#F8EFF8EC||?||Z80 STI USART Data Register[[Music Machine]] ACIA Control||Read- ||Write
|-
|#F8EFF8ED||?||[[Music Machine]]ACIA Data Write||Read- || - Write
|-
|#F8E2 - #F8E4F8ED||?%11111000 11101101||[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003Schneider RS232 Interface]]Z80-STI Receiver Status Register||?Read||?Write
|-
|#F8EE||?||[[Music Machine]] ACIA Status||Read|| - |-|#F8EE||%11111000 11101110||[[Schneider RS232 Interface]] Z80-STI Transmitter Status Register||Read||Write|-|#F8EF||%11111000 11101111||[[Schneider RS232 Interface]] Z80-STI USART Data Register||Read||Write|-|#F8EF||?||[[Music Machine]] ACIA Data Read||Read|| - |-|#F8FX||%xxxxx0xx 1111NNNx||[[Maplins 8bit Input Port]] and [[Maplins Weather Satellite Receiver]]||Read|| -|-|#F8F0||?||[[Music Machine]]DAC Write|| - ||Write
|-
|#F8F2||?||[[EMR MIDI Interface]]|| - ||Write
|-
|#F8F2||?||[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]||?Read||?Write
|-
|#F8F4||?||[[Music Machine]]||Read|| -
|-
|#F8F8F8F2||?||[[Music MachineEMR MIDI Interface]]|| - Read||Write
|-
|#F8FFF8F4||%1111100x 111xxxxx?||[[CPCISA by Yarek|CPCISA control portMusic Machine]]ADC Read|| - Read||Write-  
|-
|#F8F5||?||[[ARA Video Digitizer]] - Read Sync Signal (bit0)||Read|| - |-|#F8F8||?||[[Music Machine]] ADC Start|| - ||Write|-|#F8F8||?||[[ANTA 64K Memory Expansion]] ANTA 64k.3 latch||Read||Write|-|#F8FE||%11111000 11111110||[[Z-MEM]] Software Memory Configuration|| - || Write|-|#F8FF||%1111100x 111xxxxx||[[CPCISA|CPCISA control port]]|| - ||Write|-|#F8FF||%xxxxx0xx 111111xx||[[Peripheral Soft Reset]] (MC_BOOT_PROGRAM and MC_START_PROGRAM do OUT [F8FF],FF)|| - ||Write|-|#F980-#F98F||%1111100x 1000xxxx||[[PlayCity]] Expansion CTC channels (mirror) and YMZ registers|| - || Write|-|#F990-#F99F||%1111100x 1--1xxxx||[[MultiPlay]] Expansion|| Read || - |-|#F9A0-#F9AF||%11111001 1010xxxx||[[X-CPC]] ClockPort SPR|| Read || Write |-|#F9B0||?||[[VIDI digitizer|Vidi-CPC Video-Digitiser]], Config (W) and Capture Data (R)||Read||Write|-|#F9D0||%11111000 11010000||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] SwinSID1 + SwinSID2 DATA (MONO Mode / 3 Channels)||-||Write|-|#F9D1||%11111000 11010001||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] SwinSID1 (LEFT) DATA (STEREO Mode / 6 Channels)||-||Write|-|#F9D2||%11111000 11010010||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] SwinSID2 (RIGHT) DATA (STEREO Mode / 6 Channels)||-||Write|-|#F9DC||?||[[Panda Electronics Communications Interface Unit]] PPI Port A - 8bit Printer data||Read||Write|-|#F9DD||?||[[Panda Electronics Communications Interface Unit]] PPI Port B - 8bit general purpose I/O port||Read||Write|-|#F9DE||?||[[Panda Electronics Communications Interface Unit]] PPI Port C - Handshake (bit0=Strobe.out, Bit5=Busy.in)||Read||Write|-|#F9DF||?||[[Panda Electronics Communications Interface Unit]] PPI Control - 8bit Printer data|| - ||Write
|-
|#F9E6||?||Port B - [[IDE8255]]||?||?
|-
|#F9E7||?||RS Port - [[IDE8255]]||?||?
|-
|#F9F5||?||[[ARA Video Digitizer]] - Reset 10bit Config Value|| - ||Write
|-
|#F9F7||?||[[Grafpad II|Hegotron grafpad II]]||?||?
|-
|#F9FC - #F9FE||?||[[Otten & Fecht 1 MB RAM-Disc]]||Read||Write
|-
|#F9FF||?||[[Grafpad II|Hegotron grafpad II]]||?||?
|-
|#FA7E||%xxxxxx0x0 xxxxx0x0 0xxxxxxx||Floppy Motor Control(for [[765 FDC]])|| - ||Write
|-
|#FADCFABC||?%xxxxx0x0 10xxxx00||Z80-SIO / DART port [[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A Data Registerto 8253 Timer 0||Read- ||Write
|-
|#FADDFABD||?%xxxxx0x0 10xxxx01||Z80-SIO / DART port [[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A Control Reg.to 8253 Timer 1||Read- ||Write
|-
|#FADEFABE||?%xxxxx0x0 10xxxx10||Z80-SIO / DART port B Data Register[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Timer 2||Read- ||Write
|-
|#FABF||%xxxxx0x0 10xxxx11||[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Control|| - ||Write|-|#FABF||%xxxxx0x0 10xxxxxx||[[Aleste 520EX]] EXTPORT (config for internal hardware)|| - ||Write|-|#FAD0||%11111010 11010000||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] Select SID (1&2) Register MONO mode||-||Write|-|#FAD1||%11111010 11010001||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] Select SID1 Register||-||Write|-|#FAD2||%11111010 11010010||[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|DaDMaN]] Select SID2 Register||-||Write|-|#FADC||?||[[Amstrad Serial Interface]] Z80-SIO / DART port A Data Register||Read||Write|-|#FADC||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8251 USART data|| Read || Write|-|#FADD||?||[[Amstrad Serial Interface]] Z80-SIO / DART port A Control Reg.||Read||Write|-|#FADD||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8251 USART control/status|| 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|-|#FADF||?||[[Cirkit serial interface]] 8251 UART data register||Read||Write
|-
|#FAE6||?||Port A - [[IDE8255]]||?||?
|#FAE7||?||Port C - [[IDE8255]]||?||?
|-
|#FB7EFAEE||%xxxxxx0x1 0xxxxxx0?||765 FDC [[Amstrad SSA-1 Speech Synthesizer]] (internalfaulty mirror used by included RSX driver) Status Register||Read|| - Write
|-
|#FB7FFAEF||%xxxxxx0x1 0xxxxxx1xxxxx0x0 xxx0xxxx||765 FDC (internal) Data Register[[Kempston Mouse]] - Mouse Buttons||Read||Write-
|-
|#FBBDFAF5||?||Ram select mode [[Vortex Expansions RAM card|Vortex SP512ARA Video Digitizer]]- Read Capture Data||?Read||Write -
|-
|#FBDCFAF5||?||8253 Timer counter 0[[ARA Video Digitizer]] - Increment 10bit Config Value||Read- ||Write
|-
|#FBDDFB7E||?%xxxxx0x1 0xxxxxx0||8253 Timer counter 1[[765 FDC]] (internal) Status Register||Read||Write-
|-
|#FBDEFB7F||?%xxxxx0x1 0xxxxxx1||8253 Timer counter 2[[765 FDC]] (internal) Data Register||Read||Write
|-
|#FBDFFBBD||?%xxxxx0xx x0xxxx0x||8253 Timer Modus SelectRam select mode [[Vortex Expansions RAM card|Vortex SP512]]| - |?||Write
|-
|#FBE0FBDC||?||Hard Disc Data Port[[Amstrad Serial Interface]] 8253 Timer counter 0||Read||Write
|-
|#FBE1FBDC||?||Hard Disc Status, Reset[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8253 timer 0 (transmit baudrate)||Read||Write
|-
|#FBE2FBDD||?||Hard Disc Select, Configuration[[Amstrad Serial Interface]] 8253 Timer counter 1||Read||Write
|-
|#FBE3FBDD||?||Hard Disc DMA, Interrupt[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8253 timer 1 (receive baudrate)||Read||Write
|-
|#FBE4FBDE||?||Hard Disc Reset[[Amstrad Serial Interface]] 8253 Timer counter 2||Read||Write
|-
|#FBxxFBDE||?||[[Real Time ClockRS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]]8253 timer 2 (used as 1ms timer)||?Read ||?Write
|-
|#FBDF||?||[[Amstrad Serial Interface]] 8253 Timer Modus Select|| - ||Write|-|#FBDF||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8253 timer 0-2 control|| - || Write|-|#FBDF||?||[[Cirkit serial interface]] 8251 UART status/control register||Read||Write|-|#FBxx+0||?||CPCI [[Real Time Clock]] Index (DIY)||-||Write|-|#FBxx+1||?||CPCI [[Real Time Clock]] Data (DIY)||Read||Write|-|#FBE0 ||?||[[Dk'tronics Real Time Clock]] - Z80 PIO Port A Data (HD146818P RTC Data bus)|| Read || Write|-|#FBE0||?||[[Dobbertin Harddisc]] Data Port||Read||Write|-|#FBE1||?||[[Dk'tronics Real Time Clock]] - Z80 PIO Port B Data (General Purpose 8bit I/O Port)|| Read || Write|-|#FBE1||?||[[Dobbertin Harddisc]] Status, Reset||Read||Write|-|#FBE2||?||[[Dk'tronics Real Time Clock]] - Z80 PIO Port A Control||?|| Write|-|#FBE2||?||[[Dobbertin Harddisc]] Select, Configuration||Read||Write|-|#FBE3||?||dk[[Dk'tronics RTC.Real Time Clock]] - Z80 PIO Port B Control||?|| 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[[Dk'tronics RTC.Real Time Clock]] "4bit latch" (details unknown)||?|| Write|-|#FBE8||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 8253 Timer0 (RX Clock)||Read||Write|-|#FBE9||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 8253 Timer1 (TX Clock)||Read||Write|-|#FBEA||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 8253 Timer2 (not used)||Read||Write|-|#FBEB||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 8253 Timer Control||-||Write|-|#FBEC||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 6850 (reversed bit-order) Control||-||Write|-|#FBEC||?||[[PDS development system]] Z80 PIO Port A Data (8bit data to/from PC)||Read||Write|-|#FBED||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 6850 (reversed bit-order) TX Data||-||Write|-|#FBED||?||[[PDS development system]] Z80 PIO Port B Data (handshake to/from PC)||Read||Write|-|#FBEE||?||[[PDS development system]] Z80 PIO Port A Control||?||Write
|-
|#FBEE||?||[[Amstrad SSA-1 Speech Synthesizer]]||Read||Write
|-
|#FBF0 - #FBFFFBEE||?%xxxxx0x1 xxx0xxx0||Otten & Fecht 1 MB RAM[[Kempston Mouse]] -Disc8bit X position||Read||Write-
|-
|#FBF6FBEE||?||765 FDC [[KDS_Electronics_Serial_Interface|KDS RS232]] 6850 (Vortex,extreversed bit-order) Status Register||Read|| -
|-
|#FBF7FBEF||?||765 FDC (Vortex,ext) Data Register[[PDS development system]] Z80 PIO Port B Control||Read?||Write
|-
|#FC00 - #FDFFFBEF||%1111110x xxxxxxxxxxxxx0x1 xxx0xxx1||[[CPCISA by Yarek|CPCISAKempston Mouse]] 16bits mode high byte latch- 8bit Y position||Read||Write-
|-
|#FCE6FBEF||?||Port A - [[IDE8255KDS_Electronics_Serial_Interface|KDS RS232]]6850 (reversed bit-order) RX Data||Read||Write-
|-
|#FCE7FBEF||?||Port C - [[IDE8255ACU Real Time Clock (DIY)]]Z80-PIO Data In/Out Port B ||Read||Write
|-
|#FD00 FBF0 - #FD3FFBFF||%11111101 00xxxxxx?||[[Programming:SYMBiFACE_II|SYMBiFACE IIOtten & Fecht 1 MB RAM-Disc]]||Read||Write
|-
|#FDE6FBF0||?%xxxx1011 1111xxxx||Port B - [[IDE8255AMRAM2]]||Read-||Write
|-
|#FDE7FBF0||?%xxxxx011 1111xxx0||RS Port - [[IDE8255AMSSIO]]Serial Interface MC6850 Control/Status Register||Read||Write
|-
|#FE00 - #FFFFFBF1||%1111111x xxxxxxxxxxxxx011 1111xxx1||[[CPCISA by Yarek|CPCISAAMSSIO]] I/O access (low byte)Serial Interface MC6850 Data Register||Read||Write
|-
|#FEE6FBF5||?||Port A - [[IDE8255ARA Video Digitizer]]- Invoke Video Capture||Read- ||Write
|-
|#FEE7FBF6||?||Port C - [[IDE8255Vortex Disc Drives]]765 FDC (Vortex,ext) Status Register||Read||Write-
|-
|#FEE8FBF7||?||[[Multiface IIVortex Disc Drives]]765 FDC (Vortex,ext) Data Register||?Read||?Write
|-
|#FEEAFBF7||?||[[Multiface IIACU Real Time Clock (DIY)]]Z80-PIO Configure Port A ||?Read||?Write
|-
|#FFXXFBF8||%11111111 xxxxxxxx11111011 11111000||[[CPC Booster]] 8bit Printer Port (XX=#00..#28 are used nowAmstrad Action)]] Strobe/Busy||Read||Write
|-
|#FF50FBF9||?%11111011 11111001||[[Amdrum8bit Printer Port (Amstrad Action)]]Data||?- ||Write
|-
|#FFE6FBFE||?||Port B - [[IDE8255Amstrad Magnum Phaser|Magnum Light Phaser]]||Read-||Write
|-
|#FFE7FBFE||?||RS Port - [[IDE8255Dart Scanner for DMP-Printers]]||Read||Write?
|-
|} CPCISA ports for ISA cards{#FBFE|{{Prettytable|width: 700px; font-size: 2em;}}|''Device''?||[[Dk''PC I/O range''tronics Speech Synthesizer]]||''CPCISA high''Read||''CPCISA low'' Write
|-
|IDE1#FBFE||1F0h..1F7h%xxxxxxxx 11111110||#FDF0..#FDF7[[TMPI speech synthesizer]] Data Register ||#FFF0..#FFF7||Write
|-
|IDE2#FBFF||170h..177h%xxxxxxxx 11111111||#FD70..#FD77[[TMPI speech synthesizer]] Command/Status Register ||#FF70..#FF77Read||Write
|-
|Joystick#FBFF||201h..201h?||#FC01..#FC01[[ACU Real Time Clock (DIY)]] Z80-PIO Configure Port B ||#FE01..#FE01Read||Write
|-
|Ethernet#FC00 - #FDFF||210h..21Fh%1111110x xxxxxxxx||#FC10..#FC1F[[CPCISA|CPCISA]] 16bits mode high byte latch|#FE10..#FE1F|Read||Write
|-
|Sound Blaster#FC00||220h..23Fh?||#FC20..#FC3F[[M4 Board]] ACK/KICK||#FE20..#FE3F- ||Write
|-
|LPT2#FC5C||278h..27Fh?||#FC78..#FC7F[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Baudrate Selection|#FE78..#FE7F| - ||Write
|-
|COM1#FC7C||2F8h..2FFh?||#FCF8..#FCFF[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel A Data|#FEF8..#FEFF|Read||Write
|-
|MIDI'#FC7D||300h..301h?||#FD00..#FD01[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel A Control/Status|#FF00..#FF01|Read||Write
|-
|MIDI#FC7E||330h..331h?||#FD30..#FD31[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel B Data|#FF30..#FF31|Read||Write
|-
|Sound control#FC7F||370h..371h?||#FD70..#FD71[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel B Control/Status|#FF70..#FF71|Read||Write
|-
|FDC1#FCE6||372h..377h?||#FD72..#FD77Port A - [[IDE8255]]||#FF72..#FF77Read||Write
|-
|LPT1#FCE7||378h..37Fh?||#FD78..#FD7FPort C - [[IDE8255]]||#FF78..#FF7FRead||Write
|-
|Sound AD#FD00 -LIB#FD3F||388h..38Bh%11111101 00xxxxxx||#FD88..#FD8B[[Programming:SYMBiFACE_II|SYMBiFACE II]]|#FF88..#FF8B|Read||Write
|-
|VGA#FD08 - #FD0F||3B0h..3BBh%11111101 00001xxx||#FDB0[[X-Mass|X-MASS]] 2..#FDBB5" 44-pin IDE interface / DOM / CF adapter (SYMBiFACE II compatible)||#FFB0..#FFBBRead||Write
|-
|LPT3#FD40 - #FD4F||3BCh..3BFh%11111101 0100xxxx||#FDBC..#FDBF[[Programming:SYMBiFACE_III|SYMBiFACE III]]|#FFBC..#FFBF|Read||Write
|-
|VGA#FD80 - #FD87||3C0h..3DFh%11111101 10000xxx||#FDC0CPC-CPLink - FIFO Interface card for Co-processors, incl..#FDCFRaspberry Pi ||#FFC0..#FFCFRead||Write
|-
|FDC1#FDE6||3F2h..3F7h?||#FDF2..#FDF7Port B - [[IDE8255]]||#FFF2..#FFF7Read||Write
|-
|COM1#FDE7||3F8h..3FFh?||#FDF8..#FDFFRS Port - [[IDE8255]]||#FFF8..#FFFFRead||Write
|-
|} CPCISA ports for ISA motherboard{#FE00|{{Prettytable|width: 700px; font-size: 2em;}}?|''Device''|[[M4 Board]] Data|''PC I/O range''||''CPCISA high''- ||''CPCISA low'' Write
|-
|DMA#FE00 - #FFFF||000h..00Fh%1111111x xxxxxxxx||#FC00..#FC0F[[CPCISA|CPCISA]] I/O access (low byte)|#FE00..#FE0F|Read||Write
|-
|interrupt#FE80 - #FE81||020h..03Fh%11111110 1000000x||#FC20..#FC3F[[Albireo]] CH376 controller||#FE20..#FE3FRead||Write
|-
|counter#FE82||040h..05Fh%11111110 10000010||#FC40..#FC5F[[Nova]] RTC & NVRAM||#FE40..#FE5F- ||Write
|-
|keyboard#FE84 - #FEA7||060h..067h%11111110 10xxx1xx||#FC60[http://shinra.cpcscene.#FC67net/willy.html Willy] Future use or multi-soundchip ||#FE60..#FE67-||-
|-
|RTC#FEAC - #FEAD||070h..071h%11111110 101011xx||#FC70[http://shinra.cpcscene.#FC71net/willy.html Willy] S2P Dream SAM2965 MIDI synthetizer ||#FE70..#FE71Read||Write
|-
|DMA#FEB0 - #FEB7||080h..08Fh%11111110 10110xxx||#FC80..#FC8F[[Albireo]] serial port||#FE80..#FE8FRead||Write
|-
|DMA#FEBC - #FEBF||0C0h..0DFh%11111110 101111xx||#FCC0[http://shinra.cpcscene.#FCDFnet/willy.html Willy] OPL3 ||#FEC0..#FEDF-||Write
|-
|interrupt#FEE6||0A0h..0BFh?||Port A - [[IDE8255]]||Read||Write|-|#FCA0..FEE7||?||Port C - [[IDE8255]]||Read||Write|-|#FCBFFEE8||%11111110 1110100x||[[Multiface II]] - Enable Multiface II ROM/RAM||-||Write|-|#FEEA||%11111110 1110110x||[[Multiface II]] - Disable Multiface II ROM/RAM||-||Write|-|#FEF0 - #FEF7||%11111110 11110xxx||[[CPC-CompactFlash]] - IDE registers||Read||Write|-|#FEF0 - #FEF7||%11111110 11110xxx||[[uIDE 16]] - IDE registers||Read||Write|-|#FF00 - #FFFF||%11111111 xxxxxxxx||AMSDAP (Amstrad MSx aDAPter, MSX-to-CPC I/O hardware interface (MSX ports #00-#ff)||Read||Write|-|#FF20 - #FF27||%11111111 00100xxx||MP3MSX (MP3 player) via AMSDAP||Read||Write|-|#FF20 - #FF27||%11111111 00100xxx||SE-ONE (MP3 player, FM radio receiver, USB master interface) via AMSDAP||Read||Write|-|#FF60 - #FF6F||%11111111 0110xxxx||CPC [[V9990]] [[PowerGraph]] (upcoming graphic card based on the Graphics 9000 for the MSX)||Read||Write|-|#FFXX||%11111111 xxxxxxxx||[[CPC Booster]] (XX=#FEA000..#FEBF28 are used now)||Read||Write|-|#FFXX||%11111111 xxxxxxxx||[[Amdrum]] (unsigned 8bit DAC)||-||Write|-|#FFE6||?||Port B - [[IDE8255]]||Read||Write|-|#FFE7||?||RS Port - [[IDE8255]]||Read||Write
|-
|}
== Memory Mapped I/O Ports == {|{{Prettytable|width: 700px; font-size: 2em;}}|'''Mem'''||'''Decoded as'''||'''Port'''||'''Read'''||'''Write''' |-|#4000-7FFF||%01xxxxxx xxxxxxxx||[[ASIC]] - CPC+/GX4000 registers|| Read || Write|-|#C00?||%11000000 0000000x||[[Dobbertin Smart Watch]] data read (A0=data)|| Read || -|-|#C00?||%11000000 0000000x||[[Dobbertin Smart Watch]] data write (A0=data)|| Read || -|-|} == More Ports == Some more I/O addresses (which aren't included in the above list) are here:* [[Schneiderware Summary]]* [[CPCISA]] == Other I/O Ports == A number of peripherals connect to the joystick/printer ports, and so, they do not include "own" I/O addresses. This includes hardware ''other than joysticks/printers'' - for example, mice, robots, audio devices, and simple network adapters. For a more complete list, see corresponding sections on [[Digital Joysticks|Digital Joystick]] and [[Printer Port]] pages. Aside from I/O addresses, there are some other important I/O signals, for example: [[NMI]] or [[External Interrupt|INT]]. [[Category:Programming]] [[Category:Stub]][[Category:CPC Internal Components]][[Category:Hardware]][[Category:Electronic Component]]
4,607
edits