[Dashboard\Ford\Explorer\Explorer 93C86 miles]

Size(280,250); 

Form 
{
	Group("Пробег",5,10,165,50)
	{
		Digit(Distance," ",5,18,60);
		Label(lbkm,"Miles",80,20);
	}
	Group("Информация",5,70,270,45) 
	{
		Label(Message," ",0,18);
	}
	Group("Описание",5,120,270,90)
	{
		Label(lb1,"Калькулятор пробега для Ford Explorer.",0,20);
		Label(lb2,"EEPROM 93C86.",0,35);
		Label(lb3,"Введите нужное значение в окне <Пробег>.",0,50);
		Label(lb4,"Нажмите кнопку <Применить>.",0,65);
	}
	Picture(Logo,"Ford.bmp",185,8,0,0);
}

OnShow 
{
	Var0 = 1;
	Var1 = 0x500;

	Var2 = Var1 + 0x20;
	if (@Var1 != @Var2) {Var0 = 0;}
	if (Var0 = 0)
	{
		message.Color = 0x0000FF;
		Message = "Неверный дамп!";
		Distance = 0;
	}
	else
	{
		Var5 = (((@Var1 << 8)+ @(Var1 + 1)) ^ 0xFFFF) << 4;

		message.Color = 0xFF0000;
		message.Bold = 1;
		message = "Дамп ОК. Введите новый пробег.";
		Distance = Var5;
	}
}

OnApply
{
	Var5 = 0;
	Var2 = Distance;
	Var3 = 0x500;

	Var7 = Var2 >> 4; // Делим на 16 
	Var7 = (Var7 & 0xFFFF) ^ 0xFFFF;
	if(Var2 > 999900)	{Var5 = 1;}
	if(Var2 < 0)		{Var5 = 1;}
	if(Var5 != 0)
	{
		message.Color = 0x0000FF;
		message.Bold = 1;
		message = "Пробег должен быть от 0 до 999900 км";
	}
	else
	{
		Var4 = Var3 + 0x40;
		while(Var3 != Var4)
		{
			@Var3 = Var7 >> 8 & 0xFF;	Var3 = Var3 + 1;
			@Var3 = Var7 & 0xFF;		Var3 = Var3 + 1;
			Var6 = Var7 * 2;
			Var7 = (Var6 >> 16 + Var6) & 0xFFFF;
		}
		message.Color = 0xFF0000;
		message.Bold = 1;
		message = "Новый пробег записан.";
    }
}