[Dashboard\BMW\LCM\LCM 9s12XDP512 (0L15Y)]
//@LCM_X3_XDP512.JPG



Size(280,330); // ширина и высота

Form
{
       Group("Пробег",5,10,120,50)
    {
        Digit(Distance," ",5,18,60);
        Label(lb1,"KM",90,20);
     }
    Group("Идентификация",5,65,270,60)
    {
        Label(fg," ",0,25);
        Label(nr," ",0,40);
    } 
    Group("Информация",5,130,270,45)
    {
        Label(message," ",0,18);
    }
    Group("Описание",5,180,270,100) 
    {
        Label(lb4,"Калькулятор пробега для BMW LCM.",0,20);
        Label(lb5,"MCU 68HC9S12XDP512 (0L15Y)",0,35);
        Label(lb2,"Введите нужное значение в окне <Пробег>.",0,55);
        Label(lb3,"и нажмите кнопку <Применить>.",0,70);
    }
    Picture(Picture1,"BMW.bmp",165,6,0,0);
}




OnShow 
{
Message.Bold = 1;
    Var0 = 0;
    Var1 =(@0xb12 << 8) | @0xb13;
     
  //if (@b0dx160 != @b0ex161) {Var0 = Var0 +1;}
 
    if(Var0 != 0)
    {
        message.Color = 0x0000FF; 	
        Message = "Неверный дамп!";     
        Distance = 0;                   
    }
else
    {
        message.Color = 0xFF0000;                    
        message = "Дамп ОК. Введите новый пробег.";  
        Distance =  Var1*100;
        fg.Bold = 1;var2=@0xb11;var3=var2>>4;
        fg = "FGSTNR: "+#c.@0xb0d+#c.@0xb0e+#b.@0xb0f+#b.@0xb10+#i.var3;
        
    }      



}

OnApply {
    Var1 = Distance;

    Var0 = 0;
    if(Var1 < 100)      { Var0 = Var0 + 1; }
    if(Var1 > 999900)   { Var0 = Var0 + 1; }
    if(Var0 != 0)
    {
        message.Color = 0x0000FF;
        Message = "Пробег должен быт от 100 до 999900 км.";
    }
    else
    {
      Var0 = Distance/100;
      Var3 = Var0 >> 8; Var4 = Var0 & 255;
      Var8 = 0xb12;      
      while (Var8 !=0xb14)
      {
        @Var8 = Var3; Var8 = Var8 + 1;
        @Var8 = Var4; Var8 = Var8 + 1;
       
      }
       
        message.Color = 0xFF0000;  
        message = "Новый пробег записан. Дамп ОК.";
    }


}
