Changes

Jump to: navigation, search

Default I/O Port Summary

358 bytes removed, 6 July
/* 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 is coded in 2 bytes:* For first byte, bit7Analog joystick axes are unsigned 6-bit values..4 is blue value, bit3Bits7..6 are always 0 is red value* For second byte, bit7..4 is ignored, bit3..0 is green value Sprite magnification is coded in 1 byte:* bit7..3 is ignored* bit3..2 is X magnification (00 = not displayed, 01 = x1, 10 = x2, 11 = x4)* bit1..0 is Y magnification (00 = not displayed, 01 = x1, 10 = x2, 11 = x4)
<br>
6,129
edits