[Dashboard\Chevrolet\Avalanche\Avalanche 25080]

Size(280,310); 
Form
{
       Group("Пробег",5,5,160,50)
    {
        Digit(Distance," ",5,18,45);
        Label(lb1,"MILES",60,20);
        Digit(h," ",95,18,35);
        Label(lbh,"H",140,20);
        
    }
    Group("Идентификация",5,70,270,45)
    {
        Label(vin," ",0,18);
    }
    Group("Информация",5,120,270,45)
    {
        Label(msg," ",0,18);
    }
    Group("Описание",5,170,270,95) 
    {
        Label(lb4,"Калькулятор пробега для Avalanche.",0,20);
        Label(lb5,"EEPROM 25080",0,35);
        Label(lb2,"Введите нужное значение в окне <Пробег>.",0,55);
        Label(lb3,"и нажмите кнопку <Применить>.",0,70);
    }
    Picture(Logo,"Chevrolet.bmp",175,10,0,0);
}


OnShow 
{   
     if (@0x11 != 0xFF)
      {
       Var0 = 0x10; Var1 = 0;Var2 = 0;
       while(Var0 != 0x150)
       {
        Var1 = @Var0; Var0 = Var0 + 1;
        Var1 = Var1|(@Var0 << 8);    
        if(Var1 > Var2) {Var2 = Var1;}
        Var0 = Var0 + 7;
        }
        msg.Color = 0xFF0000;
        msg.Bold = 1;
        msg = "Дамп ОК. Введите пробег.";
        Distance = (Var1 * 93174) / 10000;
       vin.bold =1;
       vin = "VIN: "+#c.@0x196+#c.@0x197+#c.@0x198+#c.@0x199+#c.@0x19a+#c.@0x19b+#c.@0x19c+#c.@0x19d
       +#c.@0x19e+#c.@0x19f+#c.@0x1a0+#c.@0x1a1+#c.@0x1a2+#c.@0x1a3+#c.@0x1a4+#c.@0x1a5;
       Var10 = (@0x238 << 24)|(@0x239 << 16)|(@0x23a << 8)|@0x23b;
       Var10 = Var10 /36016;
       h = Var10;
        }
       else
        {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Неверный дамп!";
        Distance = 0;
        } 
}

OnApply {
  if (@0x11 = 0xFF)
   {msg.Color = 0x0000FF;
    msg.Bold = 1;
    msg = "Неверный дамп! Запись отменена!";
   }
   else
   {   
    Var5 = 0;
    Var3 = Distance;
    if(Var3 > 999900) {Var5 = 1;}
    if(Var5 != 0)
    {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Пробег должен быть до 999900 миль";
    }
    else
    {
        Var3 = (Var3 * 10000) / 93174;
        
        Var0 = 0x10; 
       while(Var0 != 0x150)
       {
        @Var0 = Var3 & 0xff; Var0 = Var0 + 1;
        @Var0 = (Var3 >> 8) & 0xff; Var0 = Var0 + 7;
       }
       Var5 = h;
       Var5 = Var5 * 36016;
       Var6 = (Var5 >> 24) & 0xff; Var7 = (Var5 >> 16) & 0xff; Var8 = (Var5 >> 8) &0xff;
       Var9 = var5 & 0xff; var10 = (((Var6 + Var7)+ Var8) +Var9) & 0xff; Var10 = 0x100 - Var10;
       Var11 = 0x237;
       while(Var11 != 0x243)
       {
        @Var11 = var10; Var11 = Var11 + 1;
        @Var11 = var6; Var11 = Var11 + 1;
        @Var11 = var7; Var11 = Var11 + 1;
        @Var11 = var8; Var11 = Var11 + 1;
        @Var11 = var9; Var11 = Var11 + 2;
       }
            msg.Color = 0xFF0000;
            msg.Bold = 1;
            msg = "Новый пробег записан.";
        
       
    }
   }
}
