Changes

I/O Port Summary

10,782 bytes added, 15 April
/* More Ports */
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;}}
|#1F00||%x0xxxx11 xxxxxxxx||[[Dk'tronics Lightpen]] faulty mirror of #BFXX [[CRTC]] Data In|| Read || -
|-
|#78XX||?%0xxxx000 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||-||Write
|-
|#79XX||?%0xxxx001 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||-||Write
|-
|#7AXX||?%0xxxx010 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||-||Write
|-
|#7BXX||?%0xxxx011 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||-||Write
|-
|#7CXX||?%0xxxx100 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||-||Write
|-
|#7DXX7CXX||?%0xxxxx00 xxxxxxxx||[[CPC4MB|4Mb Memory extensionAleste 520EX]]RAM Mapper page 0 (extended "Gate Array 3")||-Read||Write
|-
|#7EXX7DXX||?%0xxxx101 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||-||Write
|-
|#7DXX||%0xxxxx01 xxxxxxxx||[[Aleste 520EX]] RAM Mapper page 1 (extended "Gate Array 3")||Read||Write|-|#7EXX||%0xxxx110 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||-||Write|-|#7EXX||%0xxxxx10 xxxxxxxx||[[Aleste 520EX]] RAM Mapper page 2 (extended "Gate Array 3")||Read||Write |- |#7EXX||%0xxxxxx0 xxxxxxxx||[[Y-MEM]] 512K RAM Expansion part||Read||Write |-|#7FXX||?%0xxxx111 xxxxxxxx||[[CPC4MB|4Mb Memory extension]]||-||Write|-|#7FXX||%0xxxxx11 xxxxxxxx||[[Aleste 520EX]] RAM Mapper page 3 (extended "Gate Array 3")||Read||Write|- |#7FXX||%0xxxxxx1 xxxxxxxx||[[X-MEM]] 512K RAM Expansion part||Read||Write
|-
|#7FXX||?||[[Dk'tronics memory expansion]]||-||Write
|#7FXX||%01xxxxxx xxxxxxxx||[[Gate Array]]||-||Write
|-
|#7FXX||%0xxxxxxx xxxxxxxx||PAL [[PAL16L8]] extension to [[Gate Array]] for 128K RAM banking||-||Write
|-
|#BCXX||%x0xxxx00 xxxxxxxx||6845 [[CRTC]] Index|| - ||Write
|#BFXX||%x0xxxx11 xxxxxxxx||6845 [[CRTC]] Data In (as far as supported)||Read|| -
|-
|#DFXX||%xx0xxxxx xxxxxxxx||[[Upper ROM Bank Number]](as decoded within CPC664, CPC6128, 464+, 6128+, decoding in ROM expansions may be different)|| - ||Write|-|#ECXX||%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
|#F7XX||%xxxx0x11 xxxxxxxx||[[8255]] PIO Control-Register|| - ||Write
|-
|#F8B0F880-#F88F||?%1111100x 1000xxxx||[[VIDI digitizer|Vidi-CPC Video-DigitiserPlayCity]]Expansion CTC channels and YMZ data||?- ||?Write
|-
|#F8B1F890-#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
|#F8E0||?||[[DHCP MIDI Interface]]||Read||Write
|-
|#F8E0||?%11111000 11100000||[[Schneider RS232 Interface]] Z80 -STI Indirect Data Register||Read||Write
|-
|#F8E1||?%11111000 11100001||[[Schneider RS232 Interface]] Z80 -STI Gen. 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
|-
|#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|| -
|-
|#F8E2 - #F8E4F8FX||?%xxxxx0xx 1111NNNx||[[Universeller EPROM Programmer 4004|Dobbertin Eprommer 4003Maplins 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|| -
 
|-
|#F8F5||?||[[ARA Video Digitizer]] - Read Sync Signal (bit0)||Read|| -
|-
|#F8F8||?||[[Music Machine]] ADC Start|| - ||Write
|-
|#F8FFF8F8||%1111100x 111xxxxx?||[[CPCISA by Yarek|CPCISA control portANTA 64K Memory Expansion]]ANTA 64k.3 latch|| - Read||Write
|-
|#F8FFF8FE||N/A%11111000 11111110||[[Peripheral Soft ResetZ-MEM]] (MC_BOOT_PROGRAM and MC_START_PROGRAM do OUT [F8FF],FF)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]]||?||?
|-
|#FA7E||%xxxxx0x0 0xxxxxxx||Floppy Motor Control (for [[765 FDC]])|| - ||Write
|-
|#FABC||%xxxxx0x0 10xxxx00||[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Timer 0|| - ||Write
|-
|#FABD||%xxxxx0x0 10xxxx01||[[Aleste 520EX]] EXTPORT with CS53: Forward PPI Port A to 8253 Timer 1|| - ||Write
|-
|#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||?||[[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]]||?||?
|-
|#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 - #FBE3||?||[[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
|#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
|-
|#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||-
|-
|#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||?||[[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 by Yarek|CPCISA]] 16bits mode high byte latch||Read||Write
|-
|#FCE6FC00||?||Port A - [[IDE8255M4 Board]]ACK/KICK||Read- ||Write
|-
|#FCE7FC5C||?||Port C - [[IDE8255Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]]- Baudrate Selection||Read- ||Write
|-
|#FD00 - #FD3FFC7C||%11111101 00xxxxxx?||[[Programming:SYMBiFACE_IIZ80-SIO dual ports RS232 interface for CPC (French)|SYMBiFACE IIFrench DIY Dual Port RS232]]- Z80-SIO Channel A Data||Read||Write
|-
|#FDE6FC7D||?||Port B - [[IDE8255Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]]- Z80-SIO Channel A Control/Status||Read||Write
|-
|#FDE7FC7E||?||RS Port - [[IDE8255Z80-SIO dual ports RS232 interface for CPC (French)|French DIY Dual Port RS232]]- Z80-SIO Channel B Data||Read||Write
|-
|#FE00 - #FFFFFC7F||%1111111x xxxxxxxx?||[[CPCISA by YarekZ80-SIO dual ports RS232 interface for CPC (French)|CPCISAFrench DIY Dual Port RS232]] I- Z80-SIO Channel B Control/O access (low byte)Status||Read||Write
|-
|#FEE6FCE6||?||Port A - [[IDE8255]]||Read||Write
|-
|#FEE7FCE7||?||Port C - [[IDE8255]]||Read||Write
|-
|#FEE8FD00 - #FD3F||?%11111101 00xxxxxx||[[Multiface Programming:SYMBiFACE_II|SYMBiFACE II]]||?Read||?Write
|-
|#FEEAFD08 - #FD0F||?%11111101 00001xxx||[[Multiface IIX-Mass|X-MASS]]2.5" 44-pin IDE interface / DOM / CF adapter (SYMBiFACE II compatible)||?Read||?Write
|-
|#FFXXFD40 - #FD4F||%11111111 xxxxxxxx11111101 0100xxxx||[[CPC BoosterProgramming:SYMBiFACE_III|SYMBiFACE III]] (XX=#00..#28 are used now)||Read||Write
|-
|#FFXXFD80 - #FD87||%11111111 xxxxxxxx11111101 10000xxx||[[Amdrum]] (unsigned 8bit DAC)CPC-CPLink - FIFO Interface card for Co-processors, incl. Raspberry Pi ||-Read||Write
|-
|#FFE6FDE6||?||Port B - [[IDE8255]]||Read||Write
|-
|#FFE7FDE7||?||RS Port - [[IDE8255]]||Read||Write
|-
|} CPCISA ports for ISA cards{#FE00|{{Prettytable|width: 700px; font-size: 2em;}}?|''Device''|[[M4 Board]] Data|''PC I/O range''||''CPCISA high''- ||''CPCISA low'' Write
|-
|IDE1#FE00 - #FFFF||1F0h..1F7h%1111111x xxxxxxxx||#FDF0..#FDF7[[CPCISA|CPCISA]] I/O access (low byte)|#FFF0..#FFF7|Read||Write
|-
|IDE2#FE80 - #FE81||170h..177h%11111110 1000000x||#FD70..#FD77[[Albireo]] CH376 controller||#FF70..#FF77Read||Write
|-
|Joystick#FE82||201h..201h%11111110 10000010||#FC01..#FC01[[Nova]] RTC & NVRAM||#FE01..#FE01- ||Write
|-
|Ethernet#FE84 - #FEA7||210h..21Fh%11111110 10xxx1xx||#FC10[http://shinra.cpcscene.#FC1Fnet/willy.html Willy] Future use or multi-soundchip ||#FE10..#FE1F-||-
|-
|Sound Blaster#FEAC - #FEAD||220h..23Fh%11111110 101011xx||#FC20[http://shinra.cpcscene.#FC3Fnet/willy.html Willy] S2P Dream SAM2965 MIDI synthetizer ||#FE20..#FE3FRead||Write
|-
|LPT2#FEB0 - #FEB7||278h..27Fh%11111110 10110xxx||#FC78..#FC7F[[Albireo]] serial port||#FE78..#FE7FRead||Write
|-
|COM1#FEBC - #FEBF||2F8h..2FFh%11111110 101111xx||#FCF8[http://shinra.cpcscene.#FCFFnet/willy.html Willy] OPL3 ||#FEF8..#FEFF-||Write
|-
|MIDI'#FEE6||300h..301h?||#FD00..#FD01Port A - [[IDE8255]]||#FF00..#FF01Read||Write
|-
|MIDI#FEE7||330h..331h?||#FD30..#FD31Port C - [[IDE8255]]||#FF30..#FF31Read||Write
|-
|Sound control#FEE8||370h..371h%11111110 1110100x||#FD70..#FD71[[Multiface II]] - Enable Multiface II ROM/RAM||#FF70..#FF71-||Write
|-
|FDC1#FEEA||372h..377h%11111110 1110110x||#FD72..#FD77[[Multiface II]] - Disable Multiface II ROM/RAM||#FF72..#FF77-||Write
|-
|LPT1#FEF0 - #FEF7||378h..37Fh%11111110 11110xxx||#FD78..#FD7F[[CPC-CompactFlash]] - IDE registers||#FF78..#FF7FRead||Write
|-
|Sound AD#FEF0 -LIB#FEF7||388h..38Bh%11111110 11110xxx||#FD88..#FD8B[[uIDE 16]] - IDE registers||#FF88..#FF8BRead||Write
|-
|VGA#FF00 - #FFFF||3B0h..3BBh%11111111 xxxxxxxx||AMSDAP (Amstrad MSx aDAPter, MSX-to-CPC I/O hardware interface (MSX ports #FDB0..00-#FDBBff)||#FFB0..#FFBBRead||Write
|-
|LPT3#FF20 - #FF27||3BCh..3BFh%11111111 00100xxx||#FDBC..#FDBFMP3MSX (MP3 player) via AMSDAP||#FFBC..#FFBFRead||Write
|-
|VGA#FF20 - #FF27||3C0h..3DFh%11111111 00100xxx||#FDC0..#FDCFSE-ONE (MP3 player, FM radio receiver, USB master interface) via AMSDAP||#FFC0..#FFCFRead||Write
|-
|FDC1#FF60 - #FF6F||3F2h..3F7h%11111111 0110xxxx||#FDF2..#FDF7CPC [[V9990]] [[PowerGraph]] (upcoming graphic card based on the Graphics 9000 for the MSX)||#FFF2..#FFF7Read||Write
|-
|COM1#FFXX||3F8h..3FFh%11111111 xxxxxxxx||[[CPC Booster]] (XX=#FDF800..#FDFF28 are used now)||Read||Write|-|#FFF8..FFXX||%11111111 xxxxxxxx||[[Amdrum]] (unsigned 8bit DAC)||-||Write|-|#FFFFFFE6||?||Port B - [[IDE8255]]||Read||Write|-|#FFE7||?||RS Port - [[IDE8255]]||Read||Write
|-
|}
CPCISA ports for ISA motherboard== Memory Mapped I/O Ports == 
{|{{Prettytable|width: 700px; font-size: 2em;}}
|''Device'Mem'''||''PC I/O range'Decoded as'''||''CPCISA high'Port'''||''CPCISA low'Read'''||'''Write'''
|-
|DMA#4000-7FFF||000h..00Fh%01xxxxxx xxxxxxxx||#FC00..#FC0F[[ASIC]] - CPC+/GX4000 registers||#FE00..#FE0FRead || Write
|-
|interrupt#C00?||020h..03Fh%11000000 0000000x||#FC20..#FC3F[[Dobbertin Smart Watch]] data read (A0=data)||#FE20..#FE3FRead || -
|-
|counter||040h..05Fh||#FC40..#FC5FC00?||#FE40..#FE5F%11000000 0000000x|-|keyboard[[Dobbertin Smart Watch]] data write (A0=data)||060h..067hRead ||#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
|-
|}
== 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