[Dashboard\Opel\Corsa\Corsa VDO 35080]

Size(280,300); 

Form 
{
    Group("Пробег",45,5,120,70)
    {
        Digit(Distance," ",5,18,75);
        Label(lbkm,"КМ",95,20);
        Label(lbpass,"Passiv: ",13,45);
        Label(pass," ",60,45);
        Label(passkm,"KM",95,45);
    }
    
    Group("Информация",5,120,270,45) 
    {
        Label(msg," ",0,18);
    }    
    Group("Описание",5,170,270,85) 
    {
        Label(lb1,"Калькулятор пробега для Opel Corsa.",0,20);
        Label(lb2,"EEPROM ST35080",0,35);
        Label(lb3,"Введите нужное значение в окне <Пробег>.",0,50);
        Label(lb4,"Нажмите кнопку <Применить>.",0,65);
    }
    Picture(Logo,"Opel.bmp",190,17,0,0);
}

OnShow 
{
	
	Var0 = 0;
        if(@0x00 = 0xff) {Var0 = 1;}
        if(Var0 != 0)
	{
		msg.Color = 0x0000FF;
		msg.Bold = 1;
		msg = "Неверный дамп!";
		Distance = 0;
	}
	else
	{
               
		Var2 = @0x01 | (@0x00 << 8);
                Var3 = 0; Var4 = 0x22; Var5 = 0x23;
                while(var4 != 0x42)
                {
                 Var6 = (@Var4 << 8) | @Var5;
                 if(Var6 > Var3) {Var3 = Var6;}
                 Var4 = Var4 + 4; Var5 = Var5 + 4;
                }
                Var2 = (Var2 << 16) | Var3;
        	msg.Color = 0xFF0000;
        	msg.Bold = 1;
        	msg = "Дамп ОК. Введите новый пробег.";
        	Distance = Var2 / 250;
                Var7 = (@0x126 << 16)|(@0x128 << 8)|@0x129;
                pass = #i.Var7;
	}
}

OnApply 
{
    Var5 = 0;
    Var2 = Distance;
    if(Var2 > 999900) {Var5 = 1;}
    if(Var5 != 0)
    {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Пробег должен быть до 999900 км";
    }
    else
    {
     Var2 = Var2 * 250;
     Var3 = Var2 >> 24; Var4 = Var2 >> 16;
     var5 = 0;
     while(Var5 != 0x10) 
     {
      @Var5 = Var3; Var5 = Var5 + 1;
      @Var5 = Var4; Var5 = Var5 + 1;
     }
     Var6 = Var2 >> 8; Var7 = Var2 & 0xFF;
     Var8 = (Var3 << 8)|Var4; Var9 = (Var6 << 8)|Var7; Var10 = Var8 + Var9; Var10 = Var10 ^ 0xFFFF;
     Var11 = Var10 >> 8; Var12 = Var10 & 0xFF;
     Var13 = 0x20;
     while(Var13 != 0x40)
     {
      @Var13 = Var11; Var13 = Var13 + 1;
      @Var13 = Var12; Var13 = Var13 + 1;
      @Var13 = Var6; Var13 = Var13 + 1;
      @Var13 = Var7; Var13 = Var13 + 1; 
     }
        msg.Color = 0xFF0000;
        msg.Bold = 1;
        msg = "Дамп OK. Новый пробег записан.";
        
    }
}
