Changes

Default I/O Port Summary

250 bytes added, 18 March
/* Memory Mapped I/O */
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 [[I/O Port Summary|Complete I/O Port Summary]].
== I/O Port Mapping ==<br>
{|{{Prettytable|width: 700px; font-size: 2em;}}== I/O Port Allocation Rules == |Components use partial address decoding. It is therefore possible to send the same value to different components '''Hardware devicesimultaneously'''||'''Address'''||'''Readby carefully using custom I/Write'''||'''b15'''||'''b14'''||'''b13'''||'''b12'''||'''b11'''||'''b10'''||'''b9'''||'''b8'''||'''b7'''||'''b6'''||'''b5'''||'''b4'''||'''b3'''||'''b2'''||'''b1'''||'''b0'''O ports.|-{|Gate Array||&7F00||Write Only||0||1||-||-||-||-||-||-||-||-||-||-||-||-||-||-class="wikitable"! rowspan=2|-|PAL||&7F00|Hardware device !! rowspan=2|Read/Write Only||0||-||-||-||-||-||-||-||-||-||-||-||-||-||-|!! colspan=16|-Port bits
|-
|CRTC Select||&BC00||Write Only||-||0||-||-||-||-||0||0||-||-||-||-||-||-||-||-! b15 !! b14 !! b13 !! b12 !! b11 !! b10 !! b9 !! b8 !! b7 !! b6 !! b5 !! b4 !! b3 !! b2 !! b1 !! b0
|-
|CRTC Write||&BD00[[Gate Array]] ||Write Onlyonly ||-0 ||01 ||-||-||-||-||0- ||1- ||-||-||-||-||-||-||-||-
|-
|CRTC Status[[PAL16L8|PAL]] (RAM configuration) |&BE00|Write only |Read Only|0 |-||0* ||-||-||-||-||1- ||0- ||-||-||-||-||-||-||-||-
|-
|[[CRTC Read||&BF00]] ||Read Only/Write ||-||0||-||-||-||-||1r1 ||1r0 ||-||-||-||-||-||-||-||-
|-
|[[Upper ROM selectBank Number||&DF00Upper ROM select]] ||Write Onlyonly ||-||-||0||-||-||-||-||-||-||-||-||-||-||-||-||-
|-
|[[Printer port||&EF00Port]] ||Write Onlyonly ||-||-||-||0||-||-||-||-||-||-||-||-||-||-||-||-
|-
|[[8255|8255 PPI Port A||&F400]] ||Read/Write||-||-||-||-||0||-||0r1 ||0r0 ||-||-||-||-||-||-||-||-
|-
|PPI Port B||&F500Expansion Peripherals ||Read/Write||-||-||-||-||0||-||0||1x ||-x ||-x ||-x ||-x ||-x ||-x ||-x ||-x |-|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||-||-||-||-||-||-||-x
|}
Legend:*"-" means this bit is ignored,*"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 .*"r1" and "r0" mean a bit used to define a register* "*" Bit14 of the PAL port must be at 1 on CPCs equipped with CRTCs 0/1/2. It can be at 0 or 1 on CRTCs 3/4. For compatibility reasons, it is ignoredstrongly advised to always set bit14 to 1 to select PAL<br> == Official I/O Ports ==
== I/O Ports ==The official ports are defined to eliminate conflict between devices, as follows:
{|{{Prettytable|width: 700px; font-size: 2em;}}class="wikitable"|'''!I/O'''||'''!Decoded as'''||'''!Port'''||'''!Read'''||'''!Write'''
|-
|#7FXX||%01xxxxxx xxxxxxxx||[[Gate Array]]||-||Write
|}
* The FDC is considered as an expansion peripheral. 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 ==<br>
== Memory Mapped I/O == {|{{Prettytable|width: 700px; font-size: 2em;}}class="wikitable"|'''!Mem'''||'''!Decoded as'''||'''!Port'''||'''!Read'''||'''!Write'''
|-
|#4000-7FFF||%01xxxxxx xxxxxxxx||[[ASIC]] - CPC+/GX4000 registers|| Read || Write
|-
|}
 
Writes to unused areas of the ASIC I/O page are not persisted. [https://www.cpcwiki.eu/forum/games/harrier-attack-reloaded/msg247703/#msg247703 Source]
 
See the [[ASIC]] page for details.
 
<br>
[[Category:Programming]] [[Category:CPC Internal Components]]
13,173
edits