/*
 * Copyright (c) 1999 Greg Haerr <greg@censoft.com>
 *
 * 8bpp (256 color) standard palette definition
 */
#include "device.h"

/*
 * Special palette for supporting 48 Windows colors and a 216 color
 * uniform color distribution.
 * Note: the first 20 colors are used internally as system colors.
 */
//change palette to fit rgbPalette from atsam9261_lcd.c
MWPALENTRY mwstdpal8[256] = {
	/* 16 EGA colors, arranged for direct predefined palette indexing*/
	RGBDEF( 0x00, 0x00, 0x00),	/* black*/
	RGBDEF( 0x00, 0x00, 0x80),	/* blue*/
	RGBDEF( 0x00, 0x80, 0x00),	/* green*/
	RGBDEF( 0x00, 0x80, 0x80),	/* cyan*/ /* COLOR_BACKGROUND*/
	RGBDEF( 0x80, 0x00, 0x00),	/* red*/  /* COLOR_ACTIVECAPTION A*/
	RGBDEF( 0x80, 0x00, 0x80),	/* magenta*/ /* COLOR_ACTIVECAPTION B*/
	RGBDEF( 0xc0, 0xc0, 0xc0),	/* adjusted brown*/
	RGBDEF( 0xc0, 0xdc, 0xc0),	/* ltgray*/
	RGBDEF( 0x80, 0x80, 0x80),	/* gray*/
	RGBDEF( 0x00, 0x00, 0xff),	/* ltblue*/
	RGBDEF( 0x00, 0xff, 0x00),	/* ltgreen*/
	RGBDEF( 0x00, 0xff, 0xff),	/* ltcyan*/
	RGBDEF( 0xff, 0x00, 0x00),	/* ltred*/
	RGBDEF( 0xff, 0x00, 0xff),	/* ltmagenta*/
	RGBDEF( 0x80, 0x80, 0x00),	/* yellow*/
	RGBDEF( 0xff, 0xff, 0xff),	/* white*/

	/* 32 basic windows colors (first 8 are most important)*/
	RGBDEF( 0x29, 0x29, 0x29),	/* DKGRAY_BRUSH*/
	RGBDEF( 0x55, 0x55, 0x55),	/* non-adjusted brown*/
	RGBDEF( 0x4d, 0x4d, 0x4d),	/* COLOR_3DLIGHT B*/
	RGBDEF( 0x42, 0x42, 0x42), 	/* COLOR_3DLIGHT C*/

	RGBDEF( 0x39, 0x39, 0x39),	/* COLOR_BTNHIGHLIGHT A*/
	RGBDEF( 0xFF, 0x7C, 0x80),	/* COLOR_BTNFACE A*/
	RGBDEF( 0xFF, 0x50, 0x50),	/* COLOR_BTNSHADOW A*/
	RGBDEF( 0xD6, 0x00, 0x93),	/* COLOR_INACTIVECAPTION C*/
	/*RGBDEF( 0  , 0  , 64  ),*/
	/*RGBDEF( 0  , 64 , 0   ),*/
	/*RGBDEF( 0  , 64 , 64  ),*/
	/*RGBDEF( 0  , 128, 64  ),*/
	RGBDEF( 0xCC, 0xEC, 0xFF),
	RGBDEF( 0xEF, 0xD6, 0xC6),
	RGBDEF( 0xE7, 0xE7, 0xD6),
	RGBDEF( 0xAD, 0xA9, 0x90),
	RGBDEF( 0x33, 0x00, 0x00),
	RGBDEF( 0x66, 0x00, 0x00),
	RGBDEF( 0x99, 0x00, 0x00),
	RGBDEF( 0xcc, 0x00, 0x00),
	RGBDEF( 0x00, 0x33, 0x00),
	RGBDEF( 0x33, 0x33, 0x00),
	RGBDEF( 0x66, 0x33, 0x00),
	RGBDEF( 0x99, 0x33, 0x00),
	RGBDEF( 0xcc, 0x33, 0x00),
	RGBDEF( 0xff, 0x33, 0x00),
	RGBDEF( 0x00, 0x66, 0x00),
	RGBDEF( 0x33, 0x66, 0x00),
	RGBDEF( 0x66, 0x66, 0x00),
	RGBDEF( 0x99, 0x66, 0x00),
	RGBDEF( 0xcc, 0x66, 0x00),
	RGBDEF( 0xff, 0x66, 0x00),
	RGBDEF( 0x00, 0x99, 0x00),
	RGBDEF( 0x33, 0x99, 0x00),
	RGBDEF( 0x66, 0x99, 0x00),
	RGBDEF( 0x99, 0x99, 0x00),
	RGBDEF( 0xcc, 0x99, 0x00),
	RGBDEF( 0xff, 0x99, 0x00),
	RGBDEF( 0x00, 0xcc, 0x00),
	RGBDEF( 0x33, 0xcc, 0x00), //OK
	/*RGBDEF( 0x00, 0x00, 0xff ),*/
	RGBDEF( 0x66, 0xcc, 0x00),
	RGBDEF( 0x99, 0xcc, 0x00),
	RGBDEF( 0xcc, 0xcc, 0x00),
	RGBDEF( 0xff, 0xcc, 0x00),
	RGBDEF( 0x66, 0xff, 0x00),
	RGBDEF( 0x99, 0xff, 0x00),
	RGBDEF( 0xcc, 0xff, 0x00),
	RGBDEF( 0x00, 0x00, 0x33),
	RGBDEF( 0x33, 0x00, 0x33),
	RGBDEF( 0x66, 0x00, 0x33), //OK
	RGBDEF( 0x99, 0x00, 0x33),
	RGBDEF( 0xcc, 0x00, 0x33),
	RGBDEF( 0xff, 0x00, 0x33),
	RGBDEF( 0x00, 0x33, 0x33),
	RGBDEF( 0x33, 0x33, 0x33),
	RGBDEF( 0x66, 0x33, 0x33),
	RGBDEF( 0x99, 0x33, 0x33),
	RGBDEF( 0xcc, 0x33, 0x33),
	RGBDEF( 0xff, 0x33, 0x33),
	RGBDEF( 0x00, 0x66, 0x33),
	RGBDEF( 0x33, 0x66, 0x33),
	RGBDEF( 0x66, 0x66, 0x33),
	RGBDEF( 0x99, 0x66, 0x33),
	RGBDEF( 0xcc, 0x66, 0x33),
	/*RGBDEF( 0xff, 0x00, 0x00 ),*/
	RGBDEF( 0xff, 0x66, 0x33),
	RGBDEF( 0x00, 0x99, 0x33),
	RGBDEF( 0x33, 0x99, 0x33),
	RGBDEF( 0x66, 0x99, 0x33), //OK
	/*RGBDEF( 0xff, 0x00, 0xff ),*/
	RGBDEF( 0x99, 0x99, 0x33),
	RGBDEF( 0xcc, 0x99, 0x33),
	RGBDEF( 0xff, 0x99, 0x33),
	RGBDEF( 0x00, 0xcc, 0x33),
	RGBDEF( 0x33, 0xcc, 0x33),
	RGBDEF( 0x66, 0xcc, 0x33),
	RGBDEF( 0x99, 0xcc, 0x33),
	RGBDEF( 0xcc, 0xcc, 0x33),
	RGBDEF( 0xff, 0xcc, 0x33),
	RGBDEF( 0x33, 0xff, 0x33),
	RGBDEF( 0x66, 0xff, 0x33),
	RGBDEF( 0x99, 0xff, 0x33),
	RGBDEF( 0xcc, 0xff, 0x33),
	RGBDEF( 0xff, 0xff, 0x33),
	RGBDEF( 0x00, 0x00, 0x66),
	RGBDEF( 0x33, 0x00, 0x66),
	RGBDEF( 0x66, 0x00, 0x66),
	RGBDEF( 0x99, 0x00, 0x66),//OK
	RGBDEF( 0xcc, 0x00, 0x66),
	RGBDEF( 0xff, 0x00, 0x66),
	RGBDEF( 0x00, 0x33, 0x66),
	RGBDEF( 0x33, 0x33, 0x66),
	RGBDEF( 0x66, 0x33, 0x66),
	RGBDEF( 0x99, 0x33, 0x66),
	RGBDEF( 0xcc, 0x33, 0x66 ),
	RGBDEF( 0xff, 0x33, 0x66),
	RGBDEF( 0x00, 0x66, 0x66),
	RGBDEF( 0x33, 0x66, 0x66),
	RGBDEF( 0x66, 0x66, 0x66),
	RGBDEF( 0x99, 0x66, 0x66),
	RGBDEF( 0xcc, 0x66, 0x66),
	RGBDEF( 0x00, 0x99, 0x66),
	RGBDEF( 0x33, 0x99, 0x66),
	RGBDEF( 0x66, 0x99, 0x66),
	RGBDEF( 0x99, 0x99, 0x66),
	RGBDEF( 0xcc, 0x99, 0x66),
	RGBDEF( 0xff, 0x99, 0x66),
	RGBDEF( 0x00, 0xcc, 0x66),
	RGBDEF( 0x33, 0xcc, 0x66),//OK
	RGBDEF( 0x99, 0xcc, 0x66),
	RGBDEF( 0xcc, 0xcc, 0x66),
	RGBDEF( 0xff, 0xcc, 0x66),
	RGBDEF( 0x00, 0xff, 0x66),
	RGBDEF( 0x33, 0xff, 0x66),
	RGBDEF( 0x99, 0xff, 0x66),
	RGBDEF( 0xcc, 0xff, 0x66),
	RGBDEF( 0xff, 0x00, 0xcc),
	RGBDEF( 0xcc, 0x00, 0xff),
	RGBDEF( 0x00, 0x99, 0x99),
	RGBDEF( 0x99, 0x33, 0x99),
	RGBDEF( 0x99, 0x00, 0x99),
	RGBDEF( 0xcc, 0x00, 0x99),
	RGBDEF( 0x00, 0x00, 0x99),
	RGBDEF( 0x33, 0x33, 0x99),
	RGBDEF( 0x66, 0x00, 0x99),
	RGBDEF( 0xcc, 0x33, 0x99),
	RGBDEF( 0xff, 0x00, 0x99),
	RGBDEF( 0x00, 0x66, 0x99),
	RGBDEF( 0x33, 0x66, 0x99),
	RGBDEF( 0x66, 0x33, 0x99),
	RGBDEF( 0x99, 0x66, 0x99),
	RGBDEF( 0xcc, 0x66, 0x99),
	RGBDEF( 0xff, 0x33, 0x99),
	RGBDEF( 0x33, 0x99, 0x99),
	RGBDEF(0x66, 0x99, 0x99),
	RGBDEF( 0x99, 0x99, 0x99),
	RGBDEF( 0xcc, 0x99, 0x99),//OK
	RGBDEF( 0xff, 0x99, 0x99),
	RGBDEF( 0x00, 0xcc, 0x99),
	RGBDEF( 0x33, 0xcc, 0x99),
	RGBDEF( 0x66, 0xcc, 0x66),
	RGBDEF( 0x99, 0xcc, 0x99),
	RGBDEF( 0xcc, 0xcc, 0x99),
	RGBDEF( 0xff, 0xcc, 0x99),
	RGBDEF( 0x00, 0xff, 0x99),
	RGBDEF( 0x33, 0xff, 0x99 ),
	RGBDEF( 0x66, 0xcc, 0x99),
	RGBDEF( 0x99, 0xff, 0x99),
	RGBDEF( 0xcc, 0xff, 0x99),
	RGBDEF( 0xff, 0xff, 0x99),
	RGBDEF( 0x00, 0x00, 0xcc),
	RGBDEF( 0x33, 0x00, 0x99),
	RGBDEF( 0x66, 0x00, 0xcc),
	RGBDEF( 0x99, 0x00, 0xcc),
	RGBDEF( 0xcc, 0x00, 0xcc),
	RGBDEF( 0x00, 0x33, 0x99),
	RGBDEF( 0x33, 0x33, 0xcc),
	RGBDEF( 0x66, 0x33, 0xcc),
	RGBDEF( 0x99, 0x33, 0xcc),
	RGBDEF( 0xcc, 0x33, 0xcc),
	RGBDEF( 0xff, 0x33, 0xcc),//OK
	RGBDEF( 0x00, 0x66, 0xcc),
	RGBDEF( 0x33, 0x66, 0xcc),
	RGBDEF( 0x66, 0x66, 0x99),
	RGBDEF( 0x99, 0x66, 0xcc),
	RGBDEF( 0xcc, 0x66, 0xcc),
	RGBDEF( 0xff, 0x66, 0x99),
	RGBDEF( 0x00, 0x99, 0xcc),
	RGBDEF( 0x33, 0x99, 0xcc),
	RGBDEF( 0x66, 0x99, 0xcc),
	RGBDEF( 0x99, 0x99, 0xcc),
	RGBDEF( 0xcc, 0x99, 0xcc),
	RGBDEF( 0xff, 0x99, 0xcc),
	RGBDEF( 0x00, 0xcc, 0xcc),
	RGBDEF( 0x33, 0xcc, 0xcc),
	RGBDEF( 0x66, 0xcc, 0xcc),
	RGBDEF( 0x99, 0xcc, 0xcc),
	RGBDEF( 0xcc, 0xcc, 0xcc),
	RGBDEF( 0xff, 0xcc, 0xcc),
	RGBDEF( 0x00, 0xff, 0xcc),
	RGBDEF( 0x33, 0xff, 0xcc ),
	RGBDEF( 0x66, 0xff, 0x99),
	RGBDEF( 0x99, 0xff, 0xcc),
	RGBDEF( 0xcc, 0xff, 0xcc),
	RGBDEF( 0xff, 0xff, 0xcc),
	RGBDEF( 0x33, 0x00, 0xcc),//OK
	RGBDEF( 0x66, 0x00, 0xff),
	RGBDEF( 0x99, 0x00, 0xff),
	RGBDEF( 0x00, 0x33, 0xcc),
	RGBDEF( 0x33, 0x33, 0xff),
	RGBDEF( 0x66, 0x33, 0xff),
	RGBDEF( 0x99, 0x33, 0xff),
	RGBDEF( 0xcc, 0x33, 0xff),
	RGBDEF( 0xff, 0x33, 0xff),
	RGBDEF( 0x00, 0x66, 0xff),
	RGBDEF( 0x33, 0x66, 0xff),
	RGBDEF( 0x66, 0x66, 0xcc),
	RGBDEF( 0x99, 0x66, 0xff),
	RGBDEF( 0xcc, 0x66, 0xff),
	RGBDEF( 0xff, 0x66, 0xcc),
	RGBDEF( 0x00, 0x99, 0xff),
	RGBDEF( 0x33, 0x99, 0xff),
	RGBDEF( 0x66, 0x99, 0xff),
	RGBDEF( 0x99, 0x99, 0xff),
	RGBDEF( 0xcc, 0x99, 0xff),
	RGBDEF( 0xff, 0x99, 0xff),
	RGBDEF( 0x00, 0xcc, 0xff),
	RGBDEF( 0x33, 0xcc, 0xff),
	RGBDEF( 0x66, 0xcc, 0xff),//OK
	RGBDEF( 0x99, 0xcc, 0xff),
	RGBDEF( 0xcc, 0xcc, 0xff),
	RGBDEF( 0xff, 0xcc, 0xff),
	RGBDEF( 0x33, 0xff, 0xff),
	RGBDEF( 0x66, 0xff, 0xcc),
	/*RGBDEF( 0x00, 0xff, 0x00 ),*/
	RGBDEF( 0x99, 0xff, 0xff),
	RGBDEF( 0xcc, 0xff, 0xff),
	RGBDEF( 0xff, 0x66, 0x66),
	RGBDEF( 0x66, 0xff, 0x66),
	/*RGBDEF( 0x00, 0xff, 0xff ),*/
	RGBDEF( 0xff, 0xff, 0x66),
	RGBDEF( 0x66, 0x66, 0xff),
	RGBDEF( 0xff, 0x66, 0xff),
	RGBDEF( 0x66, 0xff, 0xff),
	RGBDEF( 0xA5, 0x00, 0x21),
	RGBDEF( 0x5f, 0x5f, 0x5f),
	RGBDEF( 0x77, 0x77, 0x77),
	RGBDEF( 0x86, 0x86, 0x86),
	RGBDEF( 0x96, 0x96, 0x96),
	RGBDEF( 0xcb, 0xcb, 0xcb),//OK
	RGBDEF( 0xb2, 0xb2, 0xb2 ),
	RGBDEF( 0xd7, 0xd7, 0xd7 ),
	RGBDEF( 0xdd, 0xdd, 0xdd),
	RGBDEF( 0xe3, 0xe3, 0xe3),
	RGBDEF( 0xf1, 0xf1, 0xf1),
	RGBDEF( 0xf8, 0xf8, 0xf8),
	RGBDEF( 0xff, 0xfb, 0xf0),
	RGBDEF( 0xa0, 0xa0, 0xa4),
	RGBDEF( 0x80, 0x80, 0x80),
	RGBDEF( 0xff, 0x00, 0x00),
	RGBDEF( 0x00, 0xff, 0x00),
	RGBDEF( 0xff, 0xff, 0x00),
	RGBDEF( 0x00, 0x00, 0xff),
	RGBDEF( 0xff, 0x00, 0xff),
	/*RGBDEF( 0xff, 0xff, 0x00 ),*/
	RGBDEF( 0x00, 0xff, 0xff),
	RGBDEF( 0xff, 0xff, 0xff),
	RGBDEF( 0xff, 0xff, 0x99 ),
	RGBDEF( 0xff, 0xff, 0xcc ),
	/*RGBDEF( 0xff, 0xff, 0xff )*/
};


#if TEST
main()
{
	int	c;

	DPRINTF("%d\n", ((int)&stdpalette[1]) - (int)&stdpalette[0]);

	c = FindNearestColor(stdpalette, 224, 224, 224);
	DPRINTF("%d = %02x %02x %02x\n", c, stdpalette[c].r, stdpalette[c].g,
		stdpalette[c].b);
}
#endif
