[Dashboard\Jeep\Grand Cherokee\Grand Cherokee Dash 93C56]

Size(280,260); 
Form 
{
    Group("Пробег",5,13,135,50)
    {
        Digit(Distance," ",5,18,60);
        Label(lbkm,"КМ",80,20);
    }
    Group("Информация",5,80,270,45) 
    {
        Label(Message," ",0,18);
    }    
    Group("Описание",5,125,270,90) 
    {
        Label(lb1,"Калькулятор пробега для Jeep Grand Cherokee.",0,20);
        Label(lb2,"EEPROM 93C56.",0,35);
        Label(lb3,"Введите нужное значение в окне <Пробег>.",0,50);
        Label(lb4,"Нажмите кнопку <Применить>.",0,65);
    }
    Picture(Logo,"Jeep.bmp",170,25,0,0);
}
OnShow 
{
    Message.Bold = 1;  
    Var0 = 1;
    var1 = (@0x01 << 8) | @0x00;
    if(Var1 = 0xffff) {Var0 = 0;}
    if (Var0 = 0) 
    {
        message.Color = 0x0000FF;
        Message = "Неверный дамп!";
        Distance = 0;
    }
    else
    { 
    var1 = 0x00;Var2 = 0;Var3 = 0;
    while(var1 != 0x64)
    {
    Var2 = @Var1; Var1 = Var1 + 1;
    Var2 = Var2 | (@Var1 << 8); Var2 = Var2 + 1; 
    Var4 =  (((Var2 >> 12) & 15) * 1000);
    Var4 = Var4 +  (((Var2 >> 8) & 15) * 100);
    Var4 = Var4 +  (((Var2 >> 4) & 15) * 10);
    Var4 = Var4 + (Var2 & 15);

    Var3 = Var3 + Var4; Var4 = 0;Var1 = Var1 + 1;
    }

    message.Color = 0xFF0000;
    message.Bold = 1;
    message = "Дамп ОК. Введите новый пробег.";
    Distance = Var3 *2;
    
    }
}
    
OnApply
{
    Var0 = 1;
    Var1 = (@0x00 << 8) | @0x01;
    if(Var1 = 0xffff) {Var0 = 0;}
    if (Var0 = 0)
    {
        message.Color = 0x0000FF;
        Message = "Неверный дамп! Запись прекращена!";
        Distance = 0;
    }
    else
    {
    Var1 = Distance;
    Var0 = 0;

    if(Var1 < 100)      { Var0 = Var0 + 1; }
    if(Var1 > 900000)   { Var0 = Var0 + 1; }

    if(Var0 != 0)
    {
       message.Color = 0x0000FF;
       message = "Пробег должен быть от 100 до 900000 км.";
    }
    else
    {
    Var1 = Var1 / 100;
    Var2 = Var1 % 10; Var1 = Var1 / 10;
    Var2 = Var2 | ((Var1 % 10) << 4); Var1 = Var1 / 10;  
    Var2 = Var2 | ((Var1 % 10) << 8); Var1 = Var1 / 10;  
    Var2 = Var2 | ((Var1 % 10) << 12); Var1 = Var1 / 10;

    Var3 = 0x00;
    while(Var3 != 0x64)
        {
            @Var3 = (Var2 & 255);	Var3 = Var3 + 1;
            @Var3 = (Var2 >> 8 & 255);	Var3 = Var3 + 1;
        }   
        message.Color = 0xFF0000;
        message.Bold = 1;
        message = "Дамп OK. Новый пробег записан.";
    }   
   }
}













