[Dashboard\Tagaz\Tager\Tager 93C56]

Size(280,250); 

Form
{
	Group("Пробег",5,5,150,50)
	{
		Digit(Distance," ",5,18,80);
		Label(lb1,"KM",110,20);
	}
	Group("Информация",5,60,270,45)
	{
		Label(msg," ",0,18);
	}
	Group("Описание",5,105,270,95) 
	{
		Label(lb4,"Калькулятор пробега для Tager.",0,20);
		Label(lb5,"EEPROM 93C56",0,35);
		Label(lb2,"Введите нужное значение в окне <Пробег>.",0,55);
		Label(lb3,"и нажмите кнопку <Применить>.",0,70);
	}
	Picture(Logo,"Tager.bmp",160,10,0,0);
}

OnShow 
{   
	Var0 = 0;
	if (@0x8c != 0x55) {Var0 = 1;} // полная проверка дампа!!!
	if (@0x8d != 0x55) {Var0 = 1;}
	if (Var0 = 0)
	{
		Var10 = 0x08; // Начальный адрес
		Var3 = 0;
		while(Var10 < 0x10) // 78)
		{
			Var2 = (@(Var10 + 1) << 24) | (@(Var10) << 16) | (@(Var10 + 3) << 8) | (@(Var10 + 2)); // подсчет значений пробега в группах
			if(Var2 > Var3) {Var3 = Var2;} // Определение максимального пробега
			Var10 = Var10 + 0x0C;
		}
		msg.Color = 0xFF0000;
		msg.Bold = 1;
		msg = "Дамп ОК. Введите пробег.";
		Distance = Var3 / 10;
	}
	else
	{
		msg.Color = 0x0000FF;
		msg.Bold = 1;
		msg = "Неверный дамп!";
		Distance = 0;
	} 
}

OnApply
{
	Var0 = 0;
	if (@0x8c != 0x55) {Var0 = Var0 + 1;} // полная проверка дампа!!!
	if (@0x8d != 0x55) {Var0 = Var0 + 1;}
	if (Var0 != 0)
	{
		msg.Color = 0x0000FF;
		msg.Bold = 1;
		msg = "Неверный дамп! Запись отменена!";
	}
	else
	{   
		Var1 = 0;
		Var2 = Distance;
		if(Var2 > 999900) {Var1 = 1;}
		if(Var1 != 0)
		{
			msg.Color = 0x0000FF;
			msg.Bold = 1;
			msg = "Пробег должен быть до 999900 км";
		}
		else
		{
			Var2 = Var2 * 10;
			Var4 = 0x08;
			while(Var4 < 0x78)
			{
				@Var4 = Var2 >> 16; Var4 = Var4 + 1;
				@Var4 = Var2 >> 24; Var4 = Var4 + 1;
				@Var4 = Var2 & 255; Var4 = Var4 + 1;
				@Var4 = Var2 >> 8;	Var4 = Var4 + 9;
			}
           msg.Color = 0xFF0000;
           msg.Bold = 1;
           msg = "Новый пробег записан.";
		}
	}
}
