//dword	kwcol	= {00804000h,00808000h,00FF0000h,00FF0000h,00FF0000h,10FF0000h,000040FFh,00FF0000h,01FF0000h,00FF0000h};
//Registers
byte	C0	= "AH AL AX BH BL BP BX CH CL CR0 CR2 CR3 CS CX DH DI DL DR0 DR1 DR2 DR3 DR6 DR7 DS DX EAX EBP EBX ECX EDI EDX ES ESI ESP FS GS MM0 MM1 MM2 MM3 MM4 MM5 MM6 MM7 SI SP SS ST TR3 TR4 TR5 TR6 TR7 XMM0 XMM1 XMM2 XMM3";
//Instructions
byte	C1	= FROM "Opcodes.txt";
	DB	0;
//Address expressions
byte	C2 = "ESCHAR ESBYTE ESINT ESWORD ESLONG ESDWORD ESFLOAT CSCHAR CSBYTE CSINT CSWORD CSLONG CSDWORD CSFLOAT SSCHAR SSBYTE SSINT SSWORD SSLONG SSDWORD SSFLOAT DSCHAR DSBYTE DSINT DSWORD DSLONG DSDWORD DSFLOAT FSCHAR FSBYTE FSINT FSWORD FSLONG FSDWORD FSFLOAT GSCHAR GSBYTE GSINT GSWORD GSLONG GSDWORD GSFLOAT";

//C-- Key Words
byte	C3 = "asm break byte BREAK case cdecl char continue CASE default do dword else enum extern ELSE far fastcall float for FOR goto GOTO if inline int interrupt IF 
			long loop loopnz pascal return RETURN short signed sizeof stdcall struct switch SWITCH union unsigned uses void while word WHILE __CODEPTR__ __COMPILER__ __DATAPTR__
			__DATESTR__ __DATE__ __DAY__ __FILE__ __HOUR__ __LINE__ __MINUTE__ __MONTH__ __POSTPTR__ __SECOND__ __TIME__ __VER1__
			__VER2__ __WEEKDAY__ __YEAR__ _export #define #error #include #elif #if #line #else #ifdef #pragma #endif #ifndef #undef FALSE TRUE";
//Windows API
byte 	C4 = FROM "WinAPI.txt";
	DB	0;

#define NUMCOLORLIST 5
struct LWORDCOLOR
{
	dword color;
	dword listword;
}lwc[NUMCOLORLIST]={001000ffh,#C0,00808000h,#C1,00FF0000h,#C2,00FF0000h,#C3,00a000FFh,#C4};

void	SetKeyWords(dword hWin)
{
	int i;
	SendMessage(hWin,REM_SETHILITEWORDS,0,0);
	FOR(i=0;i<NUMCOLORLIST;i++)
	{
		SendMessage(hWin,REM_SETHILITEWORDS,lwc[i].color,lwc[i].listword);
	}
}
