Changes

Default I/O Port Summary

112 bytes added, Saturday at 01:41
/* Memory Mapped I/O Ports */
== I/O Ports ==
{|{{Prettytable|width: 700px; font-size: 2em;}}class="wikitable"|'''!I/O'''||'''!Decoded as'''||'''!Port'''||'''!Read'''||'''!Write'''
|-
|#7FXX||%01xxxxxx xxxxxxxx||[[Gate Array]]||-||Write
== Memory Mapped I/O Ports ==
{|{{Prettytable|width: 700px; font-size: 2em;}}class="wikitable"|'''!Mem'''||'''!Decoded as'''||'''!Port'''||'''!Read'''||'''!Write'''
|-
|#4000-7FFF||%01xxxxxx xxxxxxxx||ASIC - CPC+/GX4000 registers|| Read || Write
The [[ASIC]] I/O page is defined as follows:
{|{{Prettytable|width: 700px; font-size: 2em;}}class="wikitable"! ADDR !! SIZE !! POR !! TYPE !! MNEM !! USE
|-
| 4000h || 100h || N || R/W || || Sprite 0 image data
| 4F00h || 100h || N || R/W || || Sprite 15 image data
|-
| 5000h style="background:#efefef;" colspan="6"|| || || || || (''Block unused)''
|-
| 6000h || 2 || N || R/W || X0 || Sprite 0 X position
| 607Dh || 3 || || || || (unused)
|-
| 6080h style="background:#efefef;" colspan="6"|| || || || || (''Block unused)''
|-
| 6400h || 2 || N || R/W || || Colour palette, pen 0
| 643Eh || 2 || N || R/W || || Colour palette, sprite colour 15
|-
| 6440h style="background:#efefef;" colspan="6"|| || || || || (''Block unused)''
|-
| 6800h || 1 || Y || W || PRI || Programmable raster interrupt scan line
| 6805h || 1 || N || W || IVR || Interrupt Vector (Bit 0 set to 1 on reset)
|-
| 6806h || 2 || || || || (unused)
|-
| 6808h || 1 || || R || ADC0 || Analogue input channel 0
| 680Fh || 1 || || R || ADC7 || Analogue input channel 7
|-
| 6810h style="background:#efefef;" colspan="6"|| || || || || (''Block unused)''
|-
| 6C00h || 2 || N || W || SAR0 || "DMA" channel 0 address pointer
|-
| 6C0Fh || 1 || Y || R/W || DCSR || "DMA" control/status register
|-
|style="background:#efefef;" colspan="6"|''Block unused''
|}
POR column indicates whether a register has power on reset. A "N" indicates that the contents of a register are undefined at power on.
A colour in the palette There is coded only one pixel per byte in 2 bytes:* For first byte, bit7sprite image data..4 is blue value, bit3Bits3..0 is red value* For second of each bytedefine the palette index for this pixel, bit7bits7..4 is are ignored, bit3..0 is green value
Sprite magnification is coded in 1 byte:
* bit7bits7..3 is are ignored* bit3bits3..2 is are X magnification (00 = not displayed, 01 = x1, 10 = x2, 11 = x4)* bit1bits1..0 is are Y magnification (00 = not displayed, 01 = x1, 10 = x2, 11 = x4) A colour in the palette is coded in 2 bytes:* For first byte, bits7..4 are blue value, bits3..0 are red value* For second byte, bits7..4 are ignored, bits3..0 are green value
<br>
5,999
edits