[US-Euro converter\Lexus\RX330\RX330 US-EU BCU.cal]

Size(320,280); // ширина и высота

Form 
{
	Group ("Конверсия",5,55,150,50)	{ComboBox(cbx1," ",5,20,110,"Без Конверсии","DRL off","DRL on");}
	Group("Информация",5,110,310,45)	{Label(message," ",0,20);}
	Group("Описание",5,155,310,80) 
    	{
	Label(lb1,"Калькулятор для конверсии Lexus RX330 BCU.",0,15);
        Label(lb2,"2003-2006 г.",0,30);
	Label(lb3,"EEPROM S29430 (93C76), BCU Denso.",0,45);
        Label(lb4,"Выберите Вариант и Нажмите Кнопку <Применить>.",0,60);
    	}
    	Picture(Picture1,"Lexus.bmp",190,15,0,0);
}

OnShow

{
	cbx1=1;
    	Message.Bold=1;Message.Alignment=1;
        // проверяем правильность дампа

	// вычисление КС
	Var10=0; // флаг ошибки
	Var0=0x60;
	Var1=0;	// КС	
	while (Var0<=0x65) 
	{
	Var1=Var1^@Var0;			
	Var0=Var0+1;
	}
	Var1=Var1^@0x67;	
	if (@0x66!=Var1) {Var10=1;}
	
	// вычисление КС инверсной группы
	Var0=0x68;
	Var2=0;	//КС
	while (Var0<=0x6D) 
	{
	Var2=Var2^@Var0;			
	Var0=Var0+1;
	}
	Var2=Var2^@0x6F;			
	if (@0x6E!=Var2) {Var10=1;}
	if (Var1!=(Var2^0xFF)) {Var10=1;}	

	Var0=0x60; // проверка всей строки в целом
	while (Var0<=0x67) 
	{
	Var8=@Var0;
	Var9=(@(Var0+0x08))^0xFF;
	if (Var8!=Var9) {Var10=1;}
	Var0=Var0+1;
	}

	if(Var10!=0) {message.Color=0x0000FF; Message="Неверный дамп!";}
	else 
	{
	if (@0x61=0x41) {message.Color=0xFF0000; message="DRL включен, нажмите кнопку <Применить>";}
	if (@0x61=0x56) {message.Color=0xFF0000; message="DRL выключен, нажмите кнопку <Применить>";}	
	}
}

OnApply

{	if(cbx1=1) 
	{
		@0x61=0x56; // прямая группа
		// вычисление КС
		Var0=0x60;
		Var1=0;	// КС	
		while (Var0<=0x65) 
			{
			Var1=Var1^@Var0;			
			Var0=Var0+1;
			}
		Var1=Var1^@0x67;	
		@0x66=Var1;
	
		@0x69=0xA9; // инверсная группа
		// вычисление КС
		Var0=0x68;
		Var2=0;	// КС	
		while (Var0<=0x6D) 
			{
			Var2=Var2^@Var0;			
			Var0=Var0+1;
			}
		Var2=Var2^@0x6F;	
		@0x6E=Var2;
	}
	
	if(cbx1=2) 
	{
		@0x61=0x41; // прямая группа
		// вычисление КС
		Var0=0x60;
		Var1=0;	// КС	
		while (Var0<=0x65) 
			{
			Var1=Var1^@Var0;			
			Var0=Var0+1;
			}
		Var1=Var1^@0x67;	
		@0x66=Var1;
	
		@0x69=0xBE; // инверсная группа
		// вычисление КС
		Var0=0x68;
		Var2=0;	// КС	
		while (Var0<=0x6D) 
			{
			Var2=Var2^@Var0;			
			Var0=Var0+1;
			}
		Var2=Var2^@0x6F;	
		@0x6E=Var2;
	}	
	message.Color=0xFF0000;
        message="Дамп ОК. Новый пробег записан.";

}
