[Dashboard\Opel\Antara 93c86 Vasilich]

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



// 0 2
// 1 3
// 2 0
// 3 1



OnShow 
{   
    Var0 = 0x00; // Начальный адрес
    Var1 = 0;
    Var2 = 48; // Количество повторов пробега
    Var5 = 0;
    Var10 = 0;
    Var20 = 0;

    if (@0x305 = 0xFF) {Var5 = 1;} 

	if (Var5 = 0)
        {

		while(Var1 < Var2) {
			Var11 = (@(Var0 + 2) << 8) | @(Var0 + 3); // Первая половина пробега
			Var12 = (@(Var0 + 0) << 8) | @(Var0 + 1); // Вторая
			Var20 = (Var11 << 16) | Var12;
			if(Var10 < Var20) {
				Var10 = Var20;
			}
			Var0 = Var0 + 4;
			Var1 = Var1 + 1;
			Var13 = Var1 % 3;
			if(Var13 = 0) {Var0 = Var0 + 12;}		 
		}
        msg.Color = 0xFF0000;
        msg.Bold = 1;
        msg = "Дамп ОК. Введите пробег.";
        Distance = Var10 / 64;
        Vin = "VIN: "+#c.@0X305+#c.@0X304+#c.@0X307+#c.@0X306+#c.@0X309+#c.@0X308+#c.@0X30B+#c.@0X30A+#c.@0X30D+#c.@0X30C+#c.@0X30F+#c.@0X30E+#c.@0X311+#c.@0X310+#c.@0X313+#c.@0X312+#c.@0X315;
    }
    else
    {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Неверный дамп!";
        Distance = 0;
    } 
}

OnApply {
	
	Var0 = 0;
    if (@0x305 = 0xff) {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 * 64;
			Var4 = 0x00; Var5 = Var2 >> 24; Var6 = Var2 >> 16; Var7 = Var2 >> 8; Var8 = Var2 & 255; 
			Var9 = 0x00;
			while(Var4 != 0x180)
			{
				@Var4 = Var7; Var4 = Var4 + 1;
				@Var4 = Var8; Var4 = Var4 + 1;
				@Var4 = Var5; Var4 = Var4 + 1;
				@Var4 = Var6; Var4 = Var4 + 1;

				@Var4 = Var7; Var4 = Var4 + 1;
				@Var4 = Var8; Var4 = Var4 + 1;
				@Var4 = Var5; Var4 = Var4 + 1;
				@Var4 = Var6; Var4 = Var4 + 1;

				@Var4 = Var7; Var4 = Var4 + 1;
				@Var4 = Var8; Var4 = Var4 + 1;
				@Var4 = Var5; Var4 = Var4 + 1;
				@Var4 = Var6; Var4 = Var4 + 1;

				@Var4 = Var9; Var4 = Var4 + 1;
				@Var4 = Var9; Var4 = Var4 + 1;
				@Var4 = Var9; Var4 = Var4 + 1;
				@Var4 = Var9; Var4 = Var4 + 1;

				@Var4 = Var9; Var4 = Var4 + 1;
				@Var4 = Var9; Var4 = Var4 + 1;
				@Var4 = Var9; Var4 = Var4 + 1;
				@Var4 = Var9; Var4 = Var4 + 5;
			} 

			msg.Color = 0xFF0000;
			msg.Bold = 1;
			msg = "Новый пробег записан.";
		}
	}
}
