[Dashboard\Opel\Astra\Astra J 25160 Body]

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

Form 
{
	Group("Пробег",12,10,120,60)
	{
		Digit(Distance," ",5,18,70);
		Label(lbkm,"КМ",90,20);
	}
	Group("Информация",5,80,270,45) 
	{
		Label(message," ",0,18);
	}    
	Group("Описание",5,130,270,90) 
	{
        Label(lb1,"Калькулятор пробега Opel Astra J Body.",0,20);
        Label(lb2,"выпуска после 2010 г. EEPROM 25160.",0,35);
        Label(lb3,"Введите нужное значение в окне ПРОБЕГ.",0,50);
        Label(lb4,"Нажмите кнопку <Применить>.",0,65);
	}
	Picture(Logo,"Opel.bmp",160,5,0,0);
}

Var Address, Error, TempDist1, TempDist2;

OnShow 
{
	Address = 0xF7;
	Error = 0;		// индикатор ошибки
			
//	if(@0x1E8 != 0x4B) {Error = 1;} // !!!! Нуждается в проверке !!!!
//	if(@0x1E9 != 0x4C) {Error = 1;} // !!!! Нуждается в проверке !!!!
	
	if(Error = 1) 
	{
		message.Color = 0x0000FF; 
		message.Bold = 1;
		message = "Неверный дамп!"; 
		Distance = 0;
	}
	else
	{
		message.Color = 0xFF0000;
		message.Bold = 1;
		message = " Дамп Ок, введите новый пробег";
		TempDist1 = (@Address) | (@(Address + 1) << 8) | (@(Address + 2) << 16);
		Distance = TempDist1 / 64;
	}
}

OnApply 
{
	Address = 0xF7;
	Var0 = Distance;
	if(Var0 > 999900)	
	{
		message.Color = 0x0000FF; 
		message.Bold = 1;
		message = "Пробег должен быть от 1 до 999900 км";
	}
	else
    {
		Var0 = Var0 * 64;
		Var1 = Var0 & 0xFF;
		Var2 = (Var0 >> 8) & 0xFF;
		Var3 = (Var0 >> 16) & 0xFF;
		@Address = Var1; Address = Address + 1;
		@Address = Var2; Address = Address + 1;
		@Address = Var3; Address = Address + 0x6D;

		@Address = Var1; Address = Address + 1;
		@Address = Var2; Address = Address + 1;
		@Address = Var3; Address = Address + 0x5C;

		@Address = Var1; Address = Address + 1;
		@Address = Var2; Address = Address + 1;
		@Address = Var3;
		
		message.Color = 0xFF0000;
        message = "Дамп OK. Новый пробег записан.";
	}
}
