[Dashboard\Opel\Vivaro\Vivaro 25020]

Size(280,250); 

Form
{
    Group("Пробег",5,5,140,50)
    {
        Digit(Distance," ",5,18,90);
        Label(lb1,"KM",110,20);
    }
        
     Group("Информация",5,58,270,45)
    {
        Label(message," ",0,18);
    }
    Group("Описание",5,105,270,100) 
    {
        Label(lb4,"Калькулятор для Opel Vivaro.",0,20);
        Label(lb5,"EEPROM 25020",0,35);
        Label(lb2,"Введите нужное значение в окне ПРОБЕГ",0,55);
        Label(lb3,"и нажмите кнопку <Применить>.",0,70);
    }
    Picture(Picture1,"Opel.bmp",200,5,0,0);
}

OnShow 
{
    Message.Bold = 1;
    Var0 = 0;
    Var1 = (@0xF2 << 16) | (@0xF1 << 8) | @0xF0;
    Var2 = (@0xF6 << 16) | (@0xF5 << 8) | @0xF4;
    Var3 = (@0xFA << 16) | (@0xF9 << 8) | @0xF8;
    Var4 = (@0xFE << 16) | (@0xFD << 8) | @0xFC;
    if(Var1 > Var2) {Var5 = Var1;}
    if(Var1 = Var2) {Var5 = Var1;}
    else
    {Var6 = Var2;}
    if(Var2 > Var3) {Var5 = Var2;}
    if(Var2 = Var3) {Var5 = Var2;}
    else
    {Var6 = Var3;}
    if(Var3 > Var4) {Var5 = Var3;}
    if(Var3 = Var4) {Var5 = Var3;}
    else
    {Var6 = Var4;}
    if(Var4 > Var1) {Var5 = Var4;}
    if(Var4 = Var1) {Var5 = Var4;}
    else
    {Var6 = Var1;}
 
 // Проверка контрольных сумм
 
    Var7 = ((@0xF2 + @0xF1) + @0xF0) & 0x0FF;
    Var8 = @0xF3;   
    if(Var7 != Var8) { Var0 = Var0 + 1; }
    Var9 = ((@0xF6 + @0xF5) + @0xF4) & 0x0FF;
    Var10 = @0xF7;   
    if(Var9 != Var10) { Var0 = Var0 + 1; }
    Var11 = ((@0xFA + @0xF9) + @0xF8) & 0x0FF;
    Var12 = @0xFB;   
    if(Var11 != Var12) { Var0 = Var0 + 1; }
    Var13 = ((@0xFE + @0xFD) + @0xFC) & 0x0FF;
    Var14 = @0xFF;   
    if(Var13 != Var14) { Var0 = Var0 + 1; }
     if(Var0 != 0)
    {
        message.Color = 0x0000FF; 	
        Message = "Неверный дамп!";     
        Distance = 0;                   
    }
    else
    {
        
        message.Color = 0xFF0000;                    
        message = "Дамп ОК. Введите новый пробег.";  
        Distance =  Var5;  
    }                          
}

OnApply
{
    Var0 = 0;
    Var1 = Distance; 
    if(Var1 < 100)      { Var0 = Var0 + 1; }
    if(Var1 > 999900)   { Var0 = Var0 + 1; }

    if(Var0 != 0)
    {
        message.Color = 0x0000FF; 
        Message = "Пробег должен быть от 100 до 999900 км.";
    }
    else
    {
                Var2 = Distance;
                
        Var0 = 0x0f2;
        
		@Var0 = Var2 >> 16; Var0 = Var0 - 1;
		@Var0 = Var2 >> 8;  Var0 = Var0 - 1;
		@Var0 = Var2 & 255; 

        Var0 = 0x0f6;
        
		@Var0 = Var2 >> 16; Var0 = Var0 - 1;
		@Var0 = Var2 >> 8;  Var0 = Var0 - 1;
		@Var0 = Var2 & 255; 

            
        Var0 = 0x0fa;
        
		@Var0 = Var2 >> 16; Var0 = Var0 - 1;
		@Var0 = Var2 >> 8;  Var0 = Var0 - 1;
		@Var0 = Var2 & 255; 
        
        Var0 = 0x0fe;
        
		@Var0 = Var2 >> 16; Var0 = Var0 - 1;
		@Var0 = Var2 >> 8;  Var0 = Var0 - 1;
		@Var0 = Var2 & 255;    

  // подсчет контрольных сумм
                Var1 = ((Var2 >> 16) + (Var2 >> 8) + Var2) & 255;
                @0x0f3 = Var1;
                @0x0f7 = Var1; 
                @0x0fb = Var1;
                @0x0ff = Var1;
                  

        message.Color = 0xFF0000;  
        message = "Новый пробег записан. Дамп ОК.";
    }
}





















