Changes

I/O Port Summary

15,992 bytes added, 15 April
/* More Ports */
The This is a list of all known I/O ports of the Amstrad CPC (copied , 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]] manualhandbook. == 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'''
|-
|#7FXX1C00||%0xxxxxxx x0xxxx00 xxxxxxxx||[[Gate ArrayDk'tronics Lightpen]]faulty mirror of #BCXX [[CRTC]] Index|| - ||Write
|-
|#BCXX1F00||%x0xxxx00 x0xxxx11 xxxxxxxx||6845 [[Dk'tronics Lightpen]] faulty mirror of #BFXX [[CRTC]] Address-RegisterData In|| - Read ||Write-
|-
|#BDXX78XX||%x0xxxx01 0xxxx000 xxxxxxxx||6845 [[CRTCCPC4MB|4Mb Memory extension]] Data-Register|| - ||Write
|-
|#BEXX79XX||%x0xxxx10 0xxxx001 xxxxxxxx||6845 [[CRTCCPC4MB|4Mb Memory extension]] Status-Register||Read-|| - Write
|-
|#BFXX7AXX||%x0xxxx11 0xxxx010 xxxxxxxx||6845 [[CRTCCPC4MB|4Mb Memory extension]] Video-Address-Register||Read-|| - Write
|-
|#DFXX7BXX||%xx0xxxxx 0xxxx011 xxxxxxxx||select ROM[[CPC4MB|4Mb Memory extension]]|| - ||Write
|-
|#EFXX7CXX||%xxx0xxxx 0xxxx100 xxxxxxxx||Printer Port[[CPC4MB|4Mb Memory extension]]|| - ||Write
|-
|#F4XX7CXX||%xxxx0x00 0xxxxx00 xxxxxxxx||8255 PIO Port A[[Aleste 520EX]] RAM Mapper page 0 (extended "Gate Array 3")||Read||Write
|-
|#F5XX7DXX||%xxxx0x01 0xxxx101 xxxxxxxx||8255 PIO Port B[[CPC4MB||Read4Mb Memory extension]]|| - ||Write
|-
|#F6XX7DXX||%xxxx0x10 0xxxxx01 xxxxxxxx||8255 PIO Port C[[Aleste 520EX]] RAM Mapper page 1 (extended "Gate Array 3")|| - Read||Write
|-
|#F7XX7EXX||%xxxx0x11 0xxxx110 xxxxxxxx||8255 PIO Control-Register[[CPC4MB|4Mb Memory extension]]|| - ||Write
|-
|#F8B07EXX||?%0xxxxx10 xxxxxxxx||Vidi-CPC Video-Digitiser[[Aleste 520EX]] RAM Mapper page 2 (extended "Gate Array 3")||?Read||?Write 
|-
 |#F8B17EXX||?%0xxxxxx0 xxxxxxxx||Vidi[[Y-CPC Video-DigitiserMEM]] 512K RAM Expansion part||?Read||?Write 
|-
|#F8DC - #F8DD7FXX||?%0xxxx111 xxxxxxxx||CPCI Serial Interface[[CPC4MB|4Mb Memory extension]]|Read|-||Write
|-
|#F8E07FXX||?%0xxxxx11 xxxxxxxx||Z80 STI Indirect Data Register[[Aleste 520EX]] RAM Mapper page 3 (extended "Gate Array 3")||Read||Write
|-
 |#F8E17FXX||?%0xxxxxx1 xxxxxxxx||Z80 STI Gen. Purpose I/O Interrupt[[X-MEM]] 512K RAM Expansion part||Read||Write
|-
|#F8E87FXX||?||Z80 STI Pointer Vector Register[[Dk'tronics memory expansion]]||Read-||Write
|-
|#F8E87FXX||?||Music Machine[[Dobbertin Memory Expansion]]|| - ||Write
|-
|#F8EC7FXX||?%01xxxxxx xxxxxxxx||Z80 STI USART Control Register[[Gate Array]]||Read-||Write
|-
|#F8EC7FXX||?%0xxxxxxx xxxxxxxx||Music Machine[[PAL16L8]] extension to [[Gate Array]] for 128K RAM banking|| - ||Write
|-
|#F8EDBCXX||?%x0xxxx00 xxxxxxxx||Z80 STI Receiver Status Register6845 [[CRTC]] Index||Read- ||Write
|-
|#F8EEBDXX||?%x0xxxx01 xxxxxxxx||Z80 STI Transmitter Status Register6845 [[CRTC]] Data Out||Read- ||Write
|-
|#F8EFBEXX||?%x0xxxx10 xxxxxxxx||Z80 STI USART Data Register6845 [[CRTC]] Status (as far as supported)||Read||Write-
|-
|#F8EFBFXX||?%x0xxxx11 xxxxxxxx||Music Machine6845 [[CRTC]] Data In (as far as supported)||Read|| -
|-
|#F8E2 - #F8E4DFXX||?%xx0xxxxx xxxxxxxx||Dobbertin Eprommer 4003[[Upper ROM Bank Number]] (as decoded within CPC664, CPC6128, 464+, 6128+, decoding in ROM expansions may be different)||?- ||?Write
|-
|#F8F0ECXX||?%xxx0xx00 xxxxxxxx||Music Machine[[KC Compact]] CIO Port B (timer)|| - Read ||Write
|-
|#F8F2EDXX||?%xxx0xx01 xxxxxxxx||Dobbertin Eprommer 4003[[KC Compact]] CIO Port C (timer)||?Read ||?Write
|-
|#F8F4EEXX||?%xxx0xx10 xxxxxxxx||Music Machine[[KC Compact]] CIO Control||Read|| - Write
|-
|#F8F8EEXX||?%xxx0xxx0 xxxxxxxx||Music Machine[[Aleste 520EX]] USART 8251 (RS232/Mouse) Data|| - Read ||Write
|-
|#F8FFEFXX||%1111100x 111xxxxxxxx0xx11 xxxxxxxx||CPCISA control port[[KC Compact]] CIO Port A (Bi-drectional [[Printer Port]])|| - Read ||Write
|-
|#F9B0EFXX||?%xxx0xxx1 xxxxxxxx||Vidi-CPC Video-Digitiser[[Aleste 520EX]] USART 8251 (RS232/Mouse) Control/Status||?Read ||?Write
|-
|#F9FC - #F9FEEFXX||?%xxx0xxxx xxxxxxxx||Otten & Fecht 1 MB RAM-Disc[[Printer Port]]||?- ||?Write
|-
|#FA7EF0E0||%xxxxxx0x0 0xxxxxxx?||Floppy Motor Control[[Draysoft Doubler]] External Tape Data Input (Bit5)|| - Read||Write-
|-
|#FADCF4XX||?%xxxx0x00 xxxxxxxx||Z80-SIO / DART port [[8255]] PIO Port A ([[PSG]] Data Register)||Read||Write
|-
|#FADDF5XX||?%xxxx0x01 xxxxxxxx||Z80-SIO / DART port A Control Reg[[8255]] PIO Port B (Vsync,[[Printer Port|PrnBusy]],Tape,etc.)||Read||Write-
|-
|#FADEF6XX||?%xxxx0x10 xxxxxxxx||Z80-SIO / DART port B Data Register[[8255]] PIO Port C (KeybRow,Tape,[[PSG]] Control)||Read- ||Write
|-
|#FADFF7XX||?%xxxx0x11 xxxxxxxx||Z80-SIO / DART port B [[8255]] PIO Control Reg.-Register||Read- ||Write
|-
|#FB7EF880-#F88F||%xxxxxx0x1 0xxxxxx01111100x 1000xxxx||765 FDC (internal) Status Register[[PlayCity]] Expansion CTC channels and YMZ data||Read- || - Write
|-
|#FB7FF890-#F89F||%xxxxxx0x1 0xxxxxx11111100x 1--1xxxx||765 FDC [[MultiPlay]] Expansion (internalmirror port, use #F9xx) Data Register||Read||Write-
|-
|#FBDCF8A0-#F8AF||?%11111000 1010xxxx||8253 Timer counter 0[[X-CPC]] ClockPort RTC||Read||Write
|-
|#FBDDF8B0||?||8253 Timer counter 1[[VIDI digitizer|Vidi-CPC Video-Digitiser]], CRTC Index|Read|?||Write
|-
|#FBDEF8B1||?||8253 Timer counter 2[[VIDI digitizer|Vidi-CPC Video-Digitiser]], CRTC Data|Read|?||Write
|-
|#FBDFF8DC||?||8253 Timer Modus Select[[CPCI RS232 Interface|CPCI Serial Interface]] MC6850 Control/Status| - |Read||Write
|-
|#FBE0F8DD||?||Hard Disc [[CPCI RS232 Interface|CPCI Serial Interface]] MC6850 Data Port||Read||Write
|-
|#FBE1F8E0||?||Hard Disc Status, Reset[[DHCP MIDI Interface]]||Read||Write
|-
|#FBE2F8E0||?%11111000 11100000||Hard Disc Select, Configuration[[Schneider RS232 Interface]] Z80-STI Indirect Data Register||Read||Write
|-
|#FBE3F8E1||?%11111000 11100001||Hard Disc DMA, Interrupt[[Schneider RS232 Interface]] Z80-STI General Purpose I/O Data Register||Read||Write
|-
|#FBE4F8E2||?%11111000 11100010||Hard Disc Reset[[Schneider RS232 Interface]] Z80-STI Interrupt Pending Register B (unused)||Read||Write
|-
|#FBE0 - #FBE3F8E2||?||dk'tronics RTC.[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]||?||?
|-
|#FBE8F8E3||?%11111000 11100011||dk'tronics RTC.[[Schneider RS232 Interface]] Z80-STI Interrupt Pending Register A (unused)||?Read||?Write
|-
|#FBEEF8E3||?||SSA1 dk'tronics Speech-Module[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]|Read|?|Write|?
|-
|#FBF0 - #FBFFF8E4||?%11111000 11100100||Otten & Fecht 1 MB RAM[[Schneider RS232 Interface]] Z80-STI Interrupt in-DiscService Register B (unused)||?Read||?Write
|-
|#FBF6F8E4||?||765 FDC (Vortex,ext) Status Register[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003]]|Read|?| - |?
|-
|#FBF7F8E5||?%11111000 11100101||765 FDC [[Schneider RS232 Interface]] Z80-STI Interrupt in-Service Register A (Vortex,extunused) Data Register||Read||Write
|-
|#FC00 - #FDFFF8E6||%1111110x xxxxxxxx11111000 11100110||CPCISA 16bits mode high byte latch[[Schneider RS232 Interface]] Z80-STI Interrupt Mask Register B (unused)||Read||Write
|-
|#FD00 - #FD3FF8E6||?||SYMBiFACE IIPort A - [[IDE8255]]||Read?||Write?
|-
|#FE00 - #FFFFF8E7||%1111111x xxxxxxxx11111000 11100111||CPCISA I/O access [[Schneider RS232 Interface]] Z80-STI Interrupt Mask Register A (low byteunused)||Read||Write
|-
|#FEE8F8E7||?||Multiface IIPort C - [[IDE8255]]||?||?
|-
|#FEEAF8E8||?%11111000 11101000||Multiface II[[Schneider RS232 Interface]] Z80-STI Indirect Index and Interrupt Vector Register||?Read||?Write
|-
|#FFXXF8E8||?||CPC Booster (XX=#00..#28 are used now)[[Music Machine]] Interrupt Sel||Read- ||Write
|-
|}#F8E9||%11111000 11101001||[[Schneider RS232 Interface]] Z80-STI Timers A and B Control Register (unused)||Read||Write|-|#F8EA||%11111000 11101010||[[Schneider RS232 Interface]] Z80-STI Timer B Data Register (unused)||Read||Write|-|#F8EB||%11111000 11101011||[[Schneider RS232 Interface]] Z80-STI Timer A Data Register (unused)||Read||Write|-|#F8EC||%11111000 11101100||[[Schneider RS232 Interface]] Z80-STI USART Control Register||Read||Write|-|#F8EC||?||[[Music Machine]] ACIA Control|| - ||Write|-|#F8ED||?||[[Music Machine]] ACIA Data Write|| - || Write|-|#F8ED||%11111000 11101101||[[Schneider 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|-|-|#F8F2||?||[[EMR MIDI Interface]]||Read||Write|-|#F8F4||?||[[Music Machine]] ADC Read||Read|| -
CPCISA ports for ISA cards
{|{{Prettytable|width: 700px; font-size: 2em;}}
|''Device''||''PC I/O range''||''CPCISA high''||''CPCISA low''
|-
|IDE1#F8F5||1F0h..1F7h?||#FDF0..#FDF7[[ARA Video Digitizer]] - Read Sync Signal (bit0)||#FFF0..#FFF7Read|| -
|-
|IDE2#F8F8||170h..177h?||#FD70..#FD77[[Music Machine]] ADC Start||#FF70..#FF77- ||Write
|-
|Joystick#F8F8||201h..201h?||#FC01[[ANTA 64K Memory Expansion]] ANTA 64k..#FC013 latch||#FE01..#FE01Read||Write
|-
|Ethernet#F8FE||210h..21Fh%11111000 11111110||#FC10..#FC1F[[Z-MEM]] Software Memory Configuration||#FE10..#FE1F- || Write
|-
|Sound Blaster#F8FF||220h..23Fh%1111100x 111xxxxx||#FC20..#FC3F[[CPCISA|CPCISA control port]]|#FE20..#FE3F| - ||Write
|-
|LPT2#F8FF||278h..27Fh%xxxxx0xx 111111xx||#FC78..#FC7F[[Peripheral Soft Reset]] (MC_BOOT_PROGRAM and MC_START_PROGRAM do OUT [F8FF],FF)||#FE78..#FE7F- ||Write
|-
|COM1#F980-#F98F||2F8h..2FFh%1111100x 1000xxxx||#FCF8..#FCFF[[PlayCity]] Expansion CTC channels (mirror) and YMZ registers||#FEF8..#FEFF- || Write
|-
|MIDI'#F990-#F99F||300h..301h%1111100x 1--1xxxx||#FD00..#FD01[[MultiPlay]] Expansion||#FF00..#FF01Read || -
|-
|MIDI#F9A0-#F9AF||330h..331h%11111001 1010xxxx||#FD30..#FD31[[X-CPC]] ClockPort SPR||#FF30..#FF31Read || Write
|-
|Sound control#F9B0||370h..371h?||#FD70..#FD71[[VIDI digitizer|Vidi-CPC Video-Digitiser]], Config (W) and Capture Data (R)|#FF70..#FF71|Read||Write
|-
|FDC1#F9D0||372h..377h%11111000 11010000||#FD72..#FD77[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|#FF72..#FF77DaDMaN]] SwinSID1 + SwinSID2 DATA (MONO Mode / 3 Channels)||-||Write
|-
|LPT1#F9D1||378h..37Fh%11111000 11010001||#FD78..#FD7F[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|#FF78..#FF7FDaDMaN]] SwinSID1 (LEFT) DATA (STEREO Mode / 6 Channels)||-||Write
|-
|Sound AD-LIB#F9D2||388h..38Bh%11111000 11010010||#FD88..#FD8B[[Sid|SwinSID part of SONIQUE Sound Board WIP]] by [[User:DaDMaN|#FF88..#FF8BDaDMaN]] SwinSID2 (RIGHT) DATA (STEREO Mode / 6 Channels)||-||Write
|-
|VGA#F9DC||3B0h..3BBh?||#FDB0..#FDBB[[Panda Electronics Communications Interface Unit]] PPI Port A - 8bit Printer data||#FFB0..#FFBBRead||Write
|-
|LPT3#F9DD||3BCh..3BFh?||#FDBC..#FDBF[[Panda Electronics Communications Interface Unit]] PPI Port B - 8bit general purpose I/O port||#FFBC..#FFBFRead||Write
|-
|VGA#F9DE||3C0h..3DFh?||#FDC0[[Panda Electronics Communications Interface Unit]] PPI Port C - Handshake (bit0=Strobe.out, Bit5=Busy.#FDCFin)||#FFC0..#FFCFRead||Write
|-
|FDC1#F9DF||3F2h..3F7h?||#FDF2..#FDF7[[Panda Electronics Communications Interface Unit]] PPI Control - 8bit Printer data||#FFF2..#FFF7- ||Write
|-
|COM1#F9E6||3F8h..3FFh?||#FDF8..#FDFFPort B - [[IDE8255]]||#FFF8..#FFFF?||?
|-
|} CPCISA ports for ISA motherboard{#F9E7|{{Prettytable|width: 700px; font-size: 2em;}}?|''Device''||''PC I/O range''RS Port - [[IDE8255]]||''CPCISA high''?||''CPCISA low'' ?
|-
|DMA#F9F5||000h..00Fh?||#FC00..#FC0F[[ARA Video Digitizer]] - Reset 10bit Config Value||#FE00..#FE0F- ||Write
|-
|interrupt#F9F7||020h..03Fh?||#FC20..#FC3F[[Grafpad II|Hegotron grafpad II]]|#FE20..#FE3F|?||?
|-
|counter#F9FC - #F9FE||040h..05Fh?||#FC40..#FC5F[[Otten & Fecht 1 MB RAM-Disc]]||#FE40..#FE5FRead||Write
|-
|keyboard#F9FF||060h..067h?||#FC60..#FC67[[Grafpad II|Hegotron grafpad II]]|#FE60..#FE67|?||?
|-
|RTC#FA7E||070h..071h%xxxxx0x0 0xxxxxxx||#FC70..#FC71Floppy Motor Control (for [[765 FDC]])||#FE70..#FE71- ||Write
|-
|DMA#FABC||080h..08Fh%xxxxx0x0 10xxxx00||#FC80..#FC8F[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Timer 0||#FE80..#FE8F- ||Write
|-
|DMA#FABD||0C0h..0DFh%xxxxx0x0 10xxxx01||#FCC0..#FCDF[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Timer 1||#FEC0..#FEDF- ||Write
|-
|interrupt#FABE||%xxxxx0x0 10xxxx10||[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Timer 2|| - ||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||?||0A0h[[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.0BFh||Read||Write|-|#FCA0FADF||?||[[Cirkit serial interface]] 8251 UART data register||Read||Write|-|#FAE6||?||Port A - [[IDE8255]]||?||?|-|#FAE7||?||Port C - [[IDE8255]]||?||?|-|#FAEE||?||[[Amstrad SSA-1 Speech Synthesizer]] (faulty mirror used by included RSX driver)||Read||Write|-|#FAEF||%xxxxx0x0 xxx0xxxx||[[Kempston Mouse]] - Mouse Buttons||Read||-|-|#FAF5||?||[[ARA Video Digitizer]] - Read Capture Data||Read|| - |-|#FAF5||?||[[ARA Video Digitizer]] - Increment 10bit Config Value|| - ||Write|-|#FB7E||%xxxxx0x1 0xxxxxx0||[[765 FDC]] (internal) Status Register||Read|| - |-|#FB7F||%xxxxx0x1 0xxxxxx1||[[765 FDC]] (internal) Data Register||Read||Write|-|#FBBD||%xxxxx0xx x0xxxx0x||Ram select mode [[Vortex Expansions RAM card|Vortex SP512]]||?||Write |-|#FBDC||?||[[Amstrad Serial Interface]] 8253 Timer counter 0||Read||Write|-|#FBDC||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8253 timer 0 (transmit baudrate)|| Read || Write|-|#FBDD||?||[[Amstrad Serial Interface]] 8253 Timer counter 1||Read||Write|-|#FBDD||?||[[RS-232 para Amstrad|MHT Ingenieros RS232 para Amstrad]] 8253 timer 1 (receive baudrate)|| Read || Write|-|#FBDE||?||[[Amstrad Serial Interface]] 8253 Timer counter 2||Read||Write|-|#FBDE||?||[[RS-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'tronics 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'tronics 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|-|#FBEE||%xxxxx0x1 xxx0xxx0||[[Kempston Mouse]] - 8bit X position||Read||-|-|#FBEE||?||[[KDS_Electronics_Serial_Interface|KDS RS232]] 6850 (reversed bit-order) Status||Read||-|-|#FBEF||?||[[PDS development system]] Z80 PIO Port B Control||?||Write|-|#FBEF||%xxxxx0x1 xxx0xxx1||[[Kempston Mouse]] - 8bit Y position||Read||-|-|#FBEF||?||[[KDS_Electronics_Serial_Interface|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|-|#FBF0||%xxxx1011 1111xxxx||[[AMRAM2]]||-||Write|-|#FBF0||%xxxxx011 1111xxx0||[[AMSSIO]] Serial Interface MC6850 Control/Status Register||Read||Write|-|#FBF1||%xxxxx011 1111xxx1||[[AMSSIO]] Serial Interface MC6850 Data Register||Read||Write|-|#FBF5||?||[[ARA Video Digitizer]] - Invoke Video Capture|| - ||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 |-|#FBF8||%11111011 11111000||[[8bit Printer Port (Amstrad Action)]] Strobe/Busy||Read||Write |-|#FBF9||%11111011 11111001||[[8bit Printer Port (Amstrad Action)]] Data|| - ||Write |-|#FBFE||?||[[Amstrad Magnum Phaser|Magnum Light Phaser]]||-||Write|-|#FBFE||?||[[Dart Scanner for DMP-Printers]]||Read||?|-|#FBFE||?||[[Dk'tronics Speech Synthesizer]]||Read||Write|-|#FBFE||%xxxxxxxx 11111110||[[TMPI speech synthesizer]] Data Register ||||Write|-|#FBFF||%xxxxxxxx 11111111||[[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|CPCISA]] 16bits mode high byte latch||Read||Write|-|#FC00||?||[[M4 Board]] ACK/KICK|| - ||Write|-|#FC5C||?||[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Baudrate Selection|| - ||Write|-|#FC7C||?||[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel A Data||Read||Write|-|#FC7D||?||[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel A Control/Status||Read||Write|-|#FC7E||?||[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel B Data||Read||Write|-|#FC7F||?||[[Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]] - Z80-SIO Channel B Control/Status||Read||Write|-|#FCE6||?||Port A - [[IDE8255]]||Read||Write|-|#FCE7||?||Port C - [[IDE8255]]||Read||Write|-|#FD00 - #FD3F||%11111101 00xxxxxx||[[Programming:SYMBiFACE_II|SYMBiFACE II]]||Read||Write|-|#FD08 - #FD0F||%11111101 00001xxx||[[X-Mass|X-MASS]] 2.5" 44-pin IDE interface / DOM / CF adapter (SYMBiFACE II compatible)||Read||Write|-|#FD40 - #FD4F||%11111101 0100xxxx||[[Programming:SYMBiFACE_III|SYMBiFACE III]]||Read||Write|-|#FD80 - #FD87||%11111101 10000xxx||CPC-CPLink - FIFO Interface card for Co-processors, incl.Raspberry Pi ||Read||Write|-|#FCBFFDE6||?||Port B - [[IDE8255]]||Read||Write|-|#FEA0FDE7||?||RS Port - [[IDE8255]]||Read||Write|-|#FE00||?||[[M4 Board]] Data|| - ||Write|-|#FE00 - #FFFF||%1111111x xxxxxxxx||[[CPCISA|CPCISA]] I/O access (low byte)||Read||Write|-|#FE80 - #FE81||%11111110 1000000x||[[Albireo]] CH376 controller||Read||Write|-|#FE82||%11111110 10000010||[[Nova]] RTC & NVRAM|| - ||Write|-|#FE84 - #FEA7||%11111110 10xxx1xx||[http://shinra.cpcscene.net/willy.html Willy] Future use or multi-soundchip ||-||-|-|#FEAC - #FEAD||%11111110 101011xx||[http://shinra.cpcscene.net/willy.html Willy] S2P Dream SAM2965 MIDI synthetizer ||Read||Write|-|#FEB0 - #FEB7||%11111110 10110xxx||[[Albireo]] serial port||Read||Write|-|#FEBC - #FEBF||%11111110 101111xx||[http://shinra.cpcscene.net/willy.html Willy] OPL3 ||-||Write|-|#FEE6||?||Port A - [[IDE8255]]||Read||Write|-|#FEE7||?||Port C - [[IDE8255]]||Read||Write|-|#FEE8||%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=#00..#28 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,606
edits