[Dashboard\Citroen\C8\Dash C8 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,"Калькулятор для Dash Citroen C8.",0,20);
        Label(lb5,"EEPROM 25020",0,35);
        Label(lb2,"Введите нужное значение в окне ПРОБЕГ",0,55);
        Label(lb3,"и нажмите кнопку <Применить>.",0,70);
    }
    Picture(Logo,"citroen.bmp",190,17,0,0);
}

OnShow 
{
    Message.Bold = 1;
    Var0 = 0;
    // проверка правильности дампа

    Var1 = (@0x03 << 24) | (@0x02 << 16) | (@0x01 << 8) | @0x00;
    Var2 = (@0x0B << 24) | (@0x0A << 16) | (@0x09 << 8) | @0x08;
    Var3 = (@0x07 << 24) | (@0x06 << 16) | (@0x05 << 8) | @0x04;
    Var4 = (@0x0F << 24) | (@0x0E << 16) | (@0x0D << 8) | @0x0C;
    
    Var3 = 0xFFFFFFFF ^ Var3;       // инвертируем значение Var2
    Var4 = 0xFFFFFFFF ^ Var4;       // инвертируем значение Var4

    if(Var1 != Var3) 		{ Var0 = Var0 + 1;}
    if(Var2 != Var4) 		{ Var0 = Var0 + 1;}

    if(Var0 != 0)
    {
        message.Color = 0x0000FF; 	
        Message = "Неверный дамп!";     
        Distance = 0;                   
    }
    else
    {
        Var1= Var1 / 10;
        message.Color = 0xFF0000;                    
        message = "Дамп ОК. Введите новый пробег.";  
        Distance =  Var1;  
    }                          
}

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;
                Var2 = Var2 * 10;

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

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

                Var3 = 0xFFFFFFFF ^ Var2;

        Var0 = 0x07;
        
		@Var0 = Var3 >> 24; Var0 = Var0 - 1;
		@Var0 = Var3 >> 16; Var0 = Var0 - 1;
		@Var0 = Var3 >> 8;  Var0 = Var0 - 1;
		@Var0 = Var3 & 255; 
        
        Var0 = 0x0f;
        
		@Var0 = Var3 >> 24; Var0 = Var0 - 1;
		@Var0 = Var3 >> 16; Var0 = Var0 - 1;
		@Var0 = Var3 >> 8;  Var0 = Var0 - 1;
		@Var0 = Var3 & 255;    

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





















