CPC Port Katalog - 2025.02.10 ================ - ---------- %0xxx 1111 xxxx xxxx = &7Fxx - Gate Array: E-RAM, RAM/ROM Banking, Farben etc. %0xxx 1bbb 11xx x1xx = &7(8-E)xx - Erweiterte E-RAM Verwaltung bis zu 4 MB. Idealer Port: &7(8-F)FF :-) %x0xx 1100 xxxx xxxx = &BCxx - CRTC Registerwahl %x0xx 1101 xxxx xxxx = &BDxx - CRTC Datenport %x0xx 1110 xxxx xxxx = &BExx - CRTC Status %x0xx 1111 xxxx xxxx = &BFxx - CRTC Adresse %x10x xxxx xxxx xxxx = &DExx - ROM Auswahl - Erweitert %x10x xxxx xxxx xxxx = &DFxx - ROM Auswahl %xxx0 xxxx xxxx xxxx = &EFxx - Druckerdaten %xxxx 0100 xxxx xxxx = &F4xx - PIO Port A %xxxx 0101 xxxx xxxx = &F5xx - PIO Port B %xxxx 0110 xxxx xxxx = &F6xx - PIO Port C %xxxx 0111 xxxx xxxx = &F7xx - PIO Status %1111 1000 1000 0000 = &F880 - PlayCity CTC channel 0 %1111 1000 1000 0001 = &F881 - PlayCity CTC channel 1 %1111 1000 1000 0010 = &F882 - PlayCity CTC channel 2 %1111 1000 1000 0011 = &F883 - PlayCity CTC channel 3 %1111 1000 1000 0100 = &F884 - PlayCity, write data to YMZ register, right channels %1111 1000 1000 1000 = &F888 - PlayCity, write data to YMZ register, left channels %1111 1000 1110 0000 = &F8E0 - Schneider RS232 Interface Z80-STI Indirect Data Register %1111 1000 1110 0001 = &F8E1 - Schneider RS232 Interface Z80-STI General Purpose I/O Data Register %1111 1000 1110 0010 = &F8E2 - Schneider RS232 Interface Z80-STI Interrupt Pending Register B (unused) %1111 1000 1110 0011 = &F8E3 - Schneider RS232 Interface Z80-STI Interrupt Pending Register A (unused) %1111 1000 1110 0100 = &F8E4 - Schneider RS232 Interface Z80-STI Interrupt in-Service Register B (unused) %1111 1000 1110 0101 = &F8E5 - Schneider RS232 Interface Z80-STI Interrupt in-Service Register A (unused) %1111 1000 1110 0110 = &F8E6 - Schneider RS232 Interface Z80-STI Interrupt Mask Register B (unused) %1111 1000 1110 0111 = &F8E7 - Schneider RS232 Interface Z80-STI Interrupt Mask Register A (unused) %1111 1000 1110 1000 = &F8E8 - Schneider RS232 Interface Z80-STI Indirect Index and Interrupt Vector Register %1111 1000 1110 1001 = &F8E9 - Schneider RS232 Interface Z80-STI Timers A and B Control Register (unused) %1111 1000 1110 1010 = &F8EA - Schneider RS232 Interface Z80-STI Timer B Data Register (unused) %1111 1000 1110 1011 = &F8EB - Schneider RS232 Interface Z80-STI Timer A Data Register (unused) %1111 1000 1110 1100 = &F8EC - Schneider RS232 Interface Z80-STI USART Control Register %1111 1000 1110 1101 = &F8ED - Schneider RS232 Interface Z80-STI Receiver Status Register %1111 1000 1110 1110 = &F8EE - Schneider RS232 Interface Z80-STI Transmitter Status Register %1111 1000 1110 1111 = &F8EF - Schneider RS232 Interface Z80-STI USART Data Register %1111 1000 1111 1110 = &F8FE - Z-MEM Software Memory Configuration %1111 1000 1111 1111 = &F8FF - PlayCity soft reset %1111 1001 1000 0100 = &F984 - PlayCity, select YMZ register, right channels %1111 1001 1000 1000 = &F988 - PlayCity, select YMZ register, left channels %1111 100x 1001 0000 = &F(8/9)90: MultiPlay PORT A / Joystick 1 // Mouse 1 buttons %1111 100x 1001 0001 = &F(8/9)91: MultiPlay PORT B / Joystick 2 // Mouse 2 buttons %1111 100x 1001 0010 = &F(8/9)92: MultiPlay PORT A / Mouse 1 X-value %1111 100x 1001 0011 = &F(8/9)93: MultiPlay PORT A / Mouse 1 Y-value %1111 100x 1001 0100 = &F(8/9)94: MultiPlay PORT B / Mouse 2 X-value %1111 100x 1001 0101 = &F(8/9)95: MultiPlay PORT B / Mouse 2 Y-value %1111 1000 1101 0000 = &F9D0 - SwinSID part of SONIQUE Sound Board WIP by DaDMaN SwinSID1 + SwinSID2 DATA (MONO Mode / 3 Channels) - Write %1111 1000 1101 0001 = &F9D1 - SwinSID part of SONIQUE Sound Board WIP by DaDMaN SwinSID1 (LEFT) DATA (STEREO Mode / 6 Channels) - Write %1111 1000 1101 0010 = &F9D2 - SwinSID part of SONIQUE Sound Board WIP by DaDMaN SwinSID2 (RIGHT) DATA (STEREO Mode / 6 Channels) %xxxx x0x0 0xxx 1110 = &FA7E - FDC Motor - Achtung: Unterschied interner / externer FDC! %1111 1010 110x xxxx = &FAC0-DC - Speak & SID - SID Hardware Registers %1111 1010 1101 0000 = &FAD0 - SwinSID part of SONIQUE Sound Board WIP by DaDMaN Select SID (1&2) Register MONO mode - Write %1111 1010 1101 0001 = &FAD1 - SwinSID part of SONIQUE Sound Board WIP by DaDMaN Select SID1 Register - Write %1111 1010 1101 0010 = &FAD2 - SwinSID part of SONIQUE Sound Board WIP by DaDMaN Select SID2 Register %xxxx 1x10 1101 1100 = &FADC - Amstrad RS232 Z8470 (Z80 DART) Channel A Data / was wird wirklich dekodiert? %xxxx 1x10 1101 1101 = &FADD - Amstrad RS232 Z8470 (Z80 DART) Channel A Control/Status / %xxxx 1x10 1101 1110 = &FADE - Amstrad RS232 Z8470 (Z80 DART) Channel B Data / %xxxx 1x10 1101 1111 = &FADF - Amstrad RS232 Z8470 (Z80 DART) Channel B Control/Status / %xxxx x0xx ???? ???? = &FBxx - Externe Erweiterung, vom Low-Byte dekodiert %xxxx x0xx 0111 1110 = &FB7E - FDC 0 Status / Amstrad DDI-1 FDC765 - was wird wirklich dekodiert? %xxxx x0xx 0111 1111 = &FB7F - FDC 0 Daten / %xxxx x0xx xx0x xxx0 = &FBD0 - USIfAC Data port / A10, A5, A0 dekodiert! %xxxx x0xx xx0x xxx1 = &FBD1 - USIfAC Control port / Siehe unten! %1111 1011 1101 0000 = &FBD0 - USIfAC II Data port / voll dekodiert! %1111 1011 1101 0001 = &FBD1 - USIfAC II Control port / %1111 1011 1101 0010 = &FBD2 - USIfAC II set ROM number / %1111 1011 1101 0101 = &FBD5 - USIfAC II get currently selected dsk image slot / %1111 1011 1101 1000 = &FBD8 - USIfAC II get USIfAC ROM numberr / %1111 1011 1101 1101 = &FBDD - USIfAC II get serial speed code / %1111 1011 1101 1110 = &FBDE - USIfAC II get USB mode state (1=enabled, 0=disabled) / %1111 1011 1101 1111 = &FBDF - USIfAC II get FDC emulation state (1=enabled, 0=disabled) / %xxxx x0xx xx0x xxx0 = &FBDE - AMSTEAM SPI card / Dekodiert: A10 = A5 = 0 und %xxxx x0xx xx0x xxx1 = &FBDF - AMSTEAM SPI card / A0 = 0 -> Datenregister oder A0 = 1 -> Kontrollregister %xxxx x0x1 1101 1100 = &FBDC - Amstrad Serielles Interface, 8253 Counter 0 / was wird wirklich dekodiert? %xxxx x0x1 1101 1101 = &FBDD - Amstrad Serielles Interface, 8253 Counter 1 / %xxxx x0x1 1101 1110 = &FBDE - Amstrad Serielles Interface, 8253 Counter 2 / %xxxx x0x1 1101 1111 = &FBDF - Amstrad Serielles Interface, 8253 Write Modus / %1111 1011 1101 1110 = &FBDE - Speak & SID - status port %xxxx x0xx xx0x xxx0 = &FBDE - USIfAC Data Port / Teil-Dekodierung durch Bit 5 = 0 und Bit 10 = 0 %xxxx x0xx xx0x xxx1 = &FBDF - USIfAC Control Port / Registerauswahl durch Bit 0 - siehe zuvor! %1111 1011 1110 0000 = &FBE0 - Dobbertin HD20 Daten / voll dekodiert! %1111 1011 1110 0001 = &FBE1 - Dobbertin HD20 Status, Result / %1111 1011 1110 0010 = &FBE2 - Dobbertin HD20 Select, Config / %1111 1011 1110 0011 = &FBE3 - Dobbertin HD20 DMA, Interrupt / %1111 1011 1110 0100 = &FBE4 - Dobbertin HD20 Reset / %xxxx x0xx xxx0 xxx0 = &FBEE - SSA-1 dekodiert drei Addressbits (A10, A4, A0), prüft diese auf 0. %1111 1011 1110 1110 = &FBEE - Speak & SID - main IO port %1111 1011 1110 1110 = &FBEE - Ultimate MIDI - MIDI IN / OUT %1111 1011 1110 1110 = &FBEE - LambdaSpeak, auch SSA-1 Emulation %xxxx x0xx 1111 0110 = &FBF6 - FDC 1 Status / Vortex F1-D / F1-M FDC765 - was wird wirklich dekodiert? %xxxx x0xx 1111 0111 = &FBF7 - FDC 1 Daten / %1111 1011 1111 1000 = &FBF8 - 8 bit Printer Port (Amstrad Action) Strobe/Busy %1111 1011 1111 1001 = &FBF9 - 8 bit Printer Port (Amstrad Action) Data %1111 1011 1111 1110 = &FBFE - Ultimate MIDI - receive buffer status (MIDI IN Buffer) %1111 1100 0000 0000 = &FC00 - M4 Karte, Acknowledge Port %1111 1101 00xx xxxx = &FD00-21 - CPC-IDE, Symbiface 2 & 3, X-MASS %1111 1101 0100 xxxx = &FD40-4F - Symbiface 3 / RSF3 %1111 1110 0000 0000 = &FE00 - M4 Karte, Data Port %1111 1110 1000 0000 = &FE80 - Albireo USB host data %1111 1110 1000 0001 = &FE81 - Albireo USB host command / status %1111 1110 1000 0010 = &FE82 - Nova nvRAM / RTC expansion card %1111 1110 1010 1100 = &FEAC - Willy with S2P MIDI data %1111 1110 1010 110D = &FEAD - Willy with S2P MIDI control / status %1111 1110 1011 0xxx = &FEB0-7 - Albireo high speed communication %1111 1110 1011 1100 = &FEBC - Willy with OPL3LPT register select port I %1111 1110 1011 1101 = &FEBD - Willy with OPL3LPT data port %1111 1110 1011 1110 = &FEBE - Willy with OPL3LPT register select port II %1111 1110 1101 1111 = &FEDF - Willy with OPL3LPT data port - MIRROR (needed for some apps) %1111 1110 1110 100x = &FEE8 - Multiface II - Enable Multiface II ROM/RAM %1111 1110 1110 110x = &FEEA - Multiface II - Disable Multiface II ROM/RAM %1111 1111 xxxx xxxx = &FFxx - Amdrum / LambdaSpeak PCM Port %1111 1111 0110 xxxx = &FF60-F - CPC V9990 PowerGraph (graphic card based on the Graphics 9000 for the MSX) Document compiled by TFM of FutureSoft Powered by FutureOS Porting system Light, Love, Peace