Changes
In the CPC+ system, the functions of the Gate-Array are integrated into a single [[ASIC]]. When the ASIC is "locked", the extra features are not available and the ASIC operates the same as the Gate-Array in the CPC allowing programs written for the CPC to work on the Plus without modification. The ASIC must be "un-locked" to access the new features.
In the [[KC compact ]] system, the functions of the Gate-Array are "emulated" in [[TTL logic]] and by the [[Zilog Z8536 CIO]].
In the "cost-down" version of the CPC6128, the functions of the Gate-Array are integrated into a ASIC.
Bit Value Function <br>7 0 Gate Array function "Pen Selection" <br>6 0 <br>5 x not used <br>4 1 Select border <br>3 x ignored <br>2 x ignored <br>1 x ignored <br>0 x ignored
Bit Value Function <br>7 0 Gate Array function "Pen Selection" <br>6 0 <br>5 x not used <br>4 0 Select pen <br>3 x Pen Number <br>2 x <br>1 x <br>0 x
Even though there is provision for 32 colours, only 27 are possible. The remaining colours are duplicates of those already in the colour palette.
Summary<br> Bit Value Function <br> 7 0 Gate Array function "Colour Selection" <br>6 1 <br>5 x not used <br>4 x Colour number <br>3 x <br>2 x <br>1 x <br>0 x
<br>Hardware colour palette:
This is a general purpose register responsible for the screen mode and the rom configuration.
==== Screen mode selection====
The function of bits 1 and 0 is to define the screen mode. The settings for bits 1 and 0 and the corresponding screen mode are given in the table below.
Similarly, bit 3 controls enabling or disabling of the upper rom area. The upper rom area occupies memory addressess &C000-&FFFF and is BASIC or any expansion roms which may be plugged into a rom board/box. See the document on upper rom selection for more details. When the upper rom area enabled, reading from &c000-&ffff, will return data in the rom. When data is written to &c000-&FFFF, it will be written to the ram at the same address as the rom. When the upper rom area is disabled, and data is read from &c000-&ffff the data returned will be the data in the ram.
Summary<br>Bit Value Function <br>7 0 Gate Array function <br>6 1 <br>5 x not used <br>4 x Interrupt generation control <br>3 1 Upper rom area disable <br>0 Upper rom area enable <br>2 1 Lower rom area disable <br>0 Lower rom area enable <br>1 x Mode selection <br>0 x
== Programming the Gate Array - Examples ==