Difference between revisions of "Default I/O Port Summary"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(I/O Port Mapping)
Line 6: Line 6:
 
|'''Hardware device'''||'''Address'''||'''Read/Write'''||'''b15'''||'''b14'''||'''b13'''||'''b12'''||'''b11'''||'''b10'''||'''b9'''||'''b8'''||'''b7'''||'''b6'''||'''b5'''||'''b4'''||'''b3'''||'''b2'''||'''b1'''||'''b0'''
 
|'''Hardware device'''||'''Address'''||'''Read/Write'''||'''b15'''||'''b14'''||'''b13'''||'''b12'''||'''b11'''||'''b10'''||'''b9'''||'''b8'''||'''b7'''||'''b6'''||'''b5'''||'''b4'''||'''b3'''||'''b2'''||'''b1'''||'''b0'''
 
|-
 
|-
|Gate Array||&7F||Write Only||0||1||-||-||-||-||-||-||-||-||-||-||-||-||-||-
+
|Gate Array||&7F00||Write Only||0||1||-||-||-||-||-||-||-||-||-||-||-||-||-||-
 
|-
 
|-
|PAL||&7F||Write Only||0||-||-||-||-||-||-||-||-||-||-||-||-||-||-||-
+
|PAL||&7F00||Write Only||0||-||-||-||-||-||-||-||-||-||-||-||-||-||-||-
 
|-
 
|-
|CRTC Select||&BC||Write Only||-||0||-||-||-||-||0||0||-||-||-||-||-||-||-||-
+
|CRTC Select||&BC00||Write Only||-||0||-||-||-||-||0||0||-||-||-||-||-||-||-||-
 
|-
 
|-
|CRTC Write||&BD||Write Only||-||0||-||-||-||-||0||1||-||-||-||-||-||-||-||-
+
|CRTC Write||&BD00||Write Only||-||0||-||-||-||-||0||1||-||-||-||-||-||-||-||-
 
|-
 
|-
|CRTC Status||&BE||Read Only||-||0||-||-||-||-||1||0||-||-||-||-||-||-||-||-
+
|CRTC Status||&BE00||Read Only||-||0||-||-||-||-||1||0||-||-||-||-||-||-||-||-
 
|-
 
|-
|CRTC Read||&BF||Read Only||-||0||-||-||-||-||1||1||-||-||-||-||-||-||-||-
+
|CRTC Read||&BF00||Read Only||-||0||-||-||-||-||1||1||-||-||-||-||-||-||-||-
 
|-
 
|-
|ROM select||&DF||Write Only||-||-||0||-||-||-||-||-||-||-||-||-||-||-||-||-
+
|ROM select||&DF00||Write Only||-||-||0||-||-||-||-||-||-||-||-||-||-||-||-||-
 
|-
 
|-
|Printer port||&EF||Write Only||-||-||-||0||-||-||-||-||-||-||-||-||-||-||-||-
+
|Printer port||&EF00||Write Only||-||-||-||0||-||-||-||-||-||-||-||-||-||-||-||-
 
|-
 
|-
|PPI Port A||&F4||Read/Write||-||-||-||-||0||-||0||0||-||-||-||-||-||-||-||-
+
|PPI Port A||&F400||Read/Write||-||-||-||-||0||-||0||0||-||-||-||-||-||-||-||-
 
|-
 
|-
|PPI Port B||&F5||Read/Write||-||-||-||-||0||-||0||1||-||-||-||-||-||-||-||-
+
|PPI Port B||&F500||Read/Write||-||-||-||-||0||-||0||1||-||-||-||-||-||-||-||-
 
|-
 
|-
|PPI Port C||&F6||Read/Write||-||-||-||-||0||-||1||0||-||-||-||-||-||-||-||-
+
|PPI Port C||&F600||Read/Write||-||-||-||-||0||-||1||0||-||-||-||-||-||-||-||-
 
|-
 
|-
|PPI Control||&F7||Write Only||-||-||-||-||0||-||1||1||-||-||-||-||-||-||-||-
+
|PPI Control||&F700||Write Only||-||-||-||-||0||-||1||1||-||-||-||-||-||-||-||-
 
|-
 
|-
|FDC Status||&FB||Read Only||-||-||-||-||-||0||-||1||0||-||-||-||-||-||-||0
+
|FDC Status||&FB7E||Read Only||-||-||-||-||-||0||-||1||0||-||-||-||-||-||-||0
 
|-
 
|-
|FDC Data||&FB||Read/Write||-||-||-||-||-||0||-||1||0||-||-||-||-||-||-||1
+
|FDC Data||&FB7F||Read/Write||-||-||-||-||-||0||-||1||0||-||-||-||-||-||-||1
 
|-
 
|-
|FDC Motor||&FA||Write Only||-||-||-||-||-||0||-||0||0||-||-||-||-||-||-||-
+
|FDC Motor||&FA7E||Write Only||-||-||-||-||-||0||-||0||0||-||-||-||-||-||-||-
 
|}
 
|}
  

Revision as of 09:24, 14 May 2024

This list shows only the internal standard I/O ports, as used in the BIOS ROM of the CPC 464/664/6128 BIOS, and in the AMSDOS ROM of the CPC 664/6128 and DDI-1. For a more complete list, including all Peripherals, see the Complete I/O Port Summary.

I/O Port Mapping

Hardware device Address Read/Write b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
Gate Array &7F00 Write Only 0 1 - - - - - - - - - - - - - -
PAL &7F00 Write Only 0 - - - - - - - - - - - - - - -
CRTC Select &BC00 Write Only - 0 - - - - 0 0 - - - - - - - -
CRTC Write &BD00 Write Only - 0 - - - - 0 1 - - - - - - - -
CRTC Status &BE00 Read Only - 0 - - - - 1 0 - - - - - - - -
CRTC Read &BF00 Read Only - 0 - - - - 1 1 - - - - - - - -
ROM select &DF00 Write Only - - 0 - - - - - - - - - - - - -
Printer port &EF00 Write Only - - - 0 - - - - - - - - - - - -
PPI Port A &F400 Read/Write - - - - 0 - 0 0 - - - - - - - -
PPI Port B &F500 Read/Write - - - - 0 - 0 1 - - - - - - - -
PPI Port C &F600 Read/Write - - - - 0 - 1 0 - - - - - - - -
PPI Control &F700 Write Only - - - - 0 - 1 1 - - - - - - - -
FDC Status &FB7E Read Only - - - - - 0 - 1 0 - - - - - - 0
FDC Data &FB7F Read/Write - - - - - 0 - 1 0 - - - - - - 1
FDC Motor &FA7E Write Only - - - - - 0 - 0 0 - - - - - - -

0 means the bit must be set to 0 for the hardware device to respond, 1 means the bit must be set to 1 for the hardware device to respond, - means this bit is ignored.

I/O Ports

I/O Decoded as Port Read Write
#7FXX %01xxxxxx xxxxxxxx Gate Array - Write
#7FXX %0xxxxxxx xxxxxxxx PAL extension to Gate Array for 128K RAM banking - Write
#BCXX %x0xxxx00 xxxxxxxx 6845 CRTC Index - Write
#BDXX %x0xxxx01 xxxxxxxx 6845 CRTC Data Out - Write
#BEXX %x0xxxx10 xxxxxxxx 6845 CRTC Status (as far as supported) Read -
#BFXX %x0xxxx11 xxxxxxxx 6845 CRTC Data In (as far as supported) Read -
#DFXX %xx0xxxxx xxxxxxxx Upper ROM Bank Number - Write
#EFXX %xxx0xxxx xxxxxxxx Printer Port - Write
#F4XX %xxxx0x00 xxxxxxxx 8255 PPI Port A (PSG Data) Read Write
#F5XX %xxxx0x01 xxxxxxxx 8255 PPI Port B (Vsync,PrnBusy,Tape,etc.) Read -
#F6XX %xxxx0x10 xxxxxxxx 8255 PPI Port C (KeybRow,Tape,PSG Control) - Write
#F7XX %xxxx0x11 xxxxxxxx 8255 PPI Control-Register - Write
#F8FF N/A Peripheral Soft Reset (MC_BOOT_PROGRAM and MC_START_PROGRAM do OUT [F8FF],FF) - Write
#FA7E %xxxxx0x0 0xxxxxxx Floppy Motor Control (for 765 FDC) - Write
#FADC %xxxxx0x0 xx0xxx00 Amstrad Serial Interface Z80-SIO / DART port A Data Register Read Write
#FADD %xxxxx0x0 xx0xxx01 Amstrad Serial Interface Z80-SIO / DART port A Control Reg. Read Write
#FADE %xxxxx0x0 xx0xxx10 Amstrad Serial Interface Z80-SIO / DART port B Data Register Read Write
#FADF %xxxxx0x0 xx0xxx11 Amstrad Serial Interface Z80-SIO / DART port B Control Reg. Read Write
#FB7E %xxxxx0x1 0xxxxxx0 765 FDC (internal) Status Register Read -
#FB7F %xxxxx0x1 0xxxxxx1 765 FDC (internal) Data Register Read Write
#FBDC %xxxxx0x1 xx0xxx00 Amstrad Serial Interface 8253 Timer counter 0 Read Write
#FBDD %xxxxx0x1 xx0xxx01 Amstrad Serial Interface 8253 Timer counter 1 Read Write
#FBDE %xxxxx0x1 xx0xxx10 Amstrad Serial Interface 8253 Timer counter 2 Read Write
#FBDF %xxxxx0x1 xx0xxx11 Amstrad Serial Interface 8253 Timer Modus Select - Write
  • The three 765 FDC floppy ports are contained in CPC 664/6128/Plus and DDI-1 only.
  • The eight Amstrad Serial Interface ports are pre-defined as shown above in the AMSDOS ROM. However, neither the CPC 664/6128/Plus nor DDI-1 do actually contain the corresponding RS232 hardware.

Memory Mapped I/O Ports

Mem Decoded as Port Read Write
#4000-7FFF %01xxxxxx xxxxxxxx ASIC - CPC+/GX4000 registers Read Write