Difference between revisions of "Default I/O Port Summary"
From CPCWiki - THE Amstrad CPC encyclopedia!
(→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||& | + | |Gate Array||&7F00||Write Only||0||1||-||-||-||-||-||-||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |PAL||& | + | |PAL||&7F00||Write Only||0||-||-||-||-||-||-||-||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |CRTC Select||& | + | |CRTC Select||&BC00||Write Only||-||0||-||-||-||-||0||0||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |CRTC Write||& | + | |CRTC Write||&BD00||Write Only||-||0||-||-||-||-||0||1||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |CRTC Status||& | + | |CRTC Status||&BE00||Read Only||-||0||-||-||-||-||1||0||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |CRTC Read||& | + | |CRTC Read||&BF00||Read Only||-||0||-||-||-||-||1||1||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |ROM select||& | + | |ROM select||&DF00||Write Only||-||-||0||-||-||-||-||-||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |Printer port||& | + | |Printer port||&EF00||Write Only||-||-||-||0||-||-||-||-||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |PPI Port A||& | + | |PPI Port A||&F400||Read/Write||-||-||-||-||0||-||0||0||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |PPI Port B||& | + | |PPI Port B||&F500||Read/Write||-||-||-||-||0||-||0||1||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |PPI Port C||& | + | |PPI Port C||&F600||Read/Write||-||-||-||-||0||-||1||0||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |PPI Control||& | + | |PPI Control||&F700||Write Only||-||-||-||-||0||-||1||1||-||-||-||-||-||-||-||- |
|- | |- | ||
− | |FDC Status||& | + | |FDC Status||&FB7E||Read Only||-||-||-||-||-||0||-||1||0||-||-||-||-||-||-||0 |
|- | |- | ||
− | |FDC Data||& | + | |FDC Data||&FB7F||Read/Write||-||-||-||-||-||0||-||1||0||-||-||-||-||-||-||1 |
|- | |- | ||
− | |FDC Motor||& | + | |FDC Motor||&FA7E||Write Only||-||-||-||-||-||0||-||0||0||-||-||-||-||-||-||- |
|} | |} | ||
Revision as of 08: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 |