Compatible with:
DOS Maximite CMM MM150 MM170 MM+ MMX Picromite ArmiteL4
Armite F4 ArmiteH7 Picomite CMM2
Syntax:
MAP( n ) = rgb%
MAP MAXIMITE
MAP( n ) = rgb%
MAP( n ) = rgb%
Description:
MAP
The MAP commands allow the programmer to set the colours used in 8-bit colour
modes.
Each value in the 8-bit colour pallet can be set to an independent 24-bit
colour.
MAP( n ) = rgb%
This will assign the 24-bit colour 'rgb% to all pixels with the 8-bit colour
value of 'n'. The change is activated after the MAP SET command
MAP MAXIMITE
This will set the colour map to the colours implemented in the original Colour
Maximite.
MAP SET
This will cause MMBasic to update the colour map (set using MAP(n)=rgb%) during
the next frame blanking interval.
MAP RESET
This will reset the colour map to the default colours. This map is used to
assign 24-bit colours to individual values in the 8-bit colour space.
' Set up an array to hold the colour
mappings we are going to use
DIM INTEGER cmap(6)
'Clear the screen
CLS
'Set up 6 colours in the array
cmap(1)=RGB(RED)
cmap(2)=RGB(GREEN)
cmap(3)=RGB(BLUE)
cmap(4)=RGB(YELLOW)
cmap(5)=RGB(MAGENTA)
cmap(6)=RGB(CYAN)
' Do an initial update of the CLUT to set up our colours
mapclut
'Display an outer circle in white
CIRCLE MM.HRES/2,MM.VRES/2,MM.VRES/2-1,0,,RGB(WHITE),RGB(WHITE)
' Now draw a simple colour pie chart using our new colours with the ARC
command
ARC MM.HRES/2,MM.VRES/2,0,MM.VRES/2-10,0,60,MAP(1)
ARC MM.HRES/2,MM.VRES/2,0,MM.VRES/2-10,60,120,MAP(2)
ARC MM.HRES/2,MM.VRES/2,0,MM.VRES/2-10,120,180,MAP(3)
ARC MM.HRES/2,MM.VRES/2,0,MM.VRES/2-10,180,240,MAP(4)
ARC MM.HRES/2,MM.VRES/2,0,MM.VRES/2-10,240,300,MAP(5)
ARC MM.HRES/2,MM.VRES/2,0,MM.VRES/2-10,300,360,MAP(6)
' Start a never ending loop
DO
' each time round the loop move the colours in our array one place
to the left
' Use array element 0 to store the first element that is going to
be at the end
cmap(0)=cmap(1)
cmap(1)=cmap(2)
cmap(2)=cmap(3)
cmap(3)=cmap(4)
cmap(4)=cmap(5)
cmap(5)=cmap(6)
cmap(6)=cmap(0)
' reset the colour map
mapclut
' pause so we can see the change
PAUSE 200
LOOP
' This subroutine updates the colour map for the colours we are using
' set map positions 1 to 6 to the new colours
' then apply the change
SUB mapclut
MAP(1)=cmap(1)
MAP(2)=cmap(2)
MAP(3)=cmap(3)
MAP(4)=cmap(4)
MAP(5)=cmap(5)
MAP(6)=cmap(6)
MAP set
END SUB
Last edited: 30 September, 2020