BBC Palette Extender Hardware ============================= There are various add-ons to give the BBC series a full 12-bit palette. Most of them are controlled at the hardware level in different ways, but usually provide code to interface to them transparently without having to know the hardware details. Clwyd Technics Palette Enhancer, 1982 ------------------------------------- Plugs into the RGB output socket to change the physical displayed colours. Controlled via the User Port. Set user port to Output with ?&FE62=&FF Write colours to PortB at &FE60 with: %cccc1000 - colour number %rrrr1001 - RED %gggg1010 - GREEN %bbbb1011 - BLUE Data written with b3=0, b3=1, b3=0, b3=1 ie, write xxxx0xxx write xxxx1xxx write xxxx0xxx write xxxx1xxx Using the top four bits for the colour control was probably chosen to make interfacing to VDU 19 easier, as the significant colour data is in the top four bits. CTS Recognition Colour Card 500, 1986 ------------------------------------- Plugs into the RGB output socket to change the physical displayed colours. Controlled via the 1MHz bus. Write colour with: ?(&FCA0+colour)=%xxxxrrrr - RED ?(&FCA8+colour)=%xxxxgggg - GREEN ?(&FCB0+colour)=%xxxxbbbb - BLUE WildVision PaletteMate, 1986 ---------------------------- Plugs into the RGB output socket to change the physical displayed colours. Unknown control, probably similar to the Chameleon, though one reference refers to controlling 16 colours, which would suggest it interfaces via the video ULA. Chameleon, Mike Cook/Micro User, 1990 ------------------------------------- Plugs into the RGB output socket to change the physical displayed colours. Controlled via the User Port. Set user port to Output with CB2 strobe with ?&FE62=&FF, &FE6C=&AE. Write colours to PortB at &FE60 with: %111xcccc - colour number %000xrrrr - inverted RED %010xgggg - inverted GREEN %100xbbbb - inverted BLUE VideoNuLA, 2017 --------------- Plugs into the video ULA socket to change the logical displayed colours. Controlled by writing to extra VULA registers. Reset with ?&FE23=&40, this resets to 3-bit colour mapping. Write colours with: ?&FE23=%ccccrrrr, then ?&FE23=%ggggbbbb Software control ---------------- A relocatable interface module PALSUB can be built for different palette hardware, giving a uniform interface that can be called from BASIC to set palette entries. It is loaded with: DIM PALETTE 200 OSCLI "LOAD PALSUB "+STR$~PALETTE CALL PALETTE+3 Palette entries can be set with: CALL PALETTE,colour,red,green,blue The code is built with the PALSUB/S program, and will only work in the I/O processor.