[Dashboard\Hummer\H3\H3 BCM 25040]
#H3 BCM.DOC
Size(280,290);
Form
{
  Group("Пробег",5,5,140,50)
    {
        Digit(Distance," ",5,18,70);
        Label(lb1,"MILES",90,20);
    }
    Group("Идентификация",5,62,270,50)
    {
        Label(pn," ",0,20);
    } 
    Group("Информация",5,113,270,45)
    {
        Label(msg," ",0,18);
    }
    Group("Описание",5,158,270,80) 
    {
        Label(lb4,"Калькулятор пробега для BCM Hummer3.",0,15);
        Label(lb5,"EEPROM 93C56",0,30);
        Label(lb2,"Введите нужное значение в окне <Пробег>.",0,45);
        Label(lb3,"и нажмите кнопку <Применить>.",0,60);
    }
    Picture(Logo,"Hummer.bmp",180,5,0,0);
}
OnShow 
{ 
   Var0 = 0;
   Var1 = (@0x80 << 24) | (@0x81 << 16) | (@0x82 << 8) | @0x83;  
   Var2 = (@0x84 << 24) | (@0x85 << 16) | (@0x86 << 8) | @0x87;  
   if(Var1 = Var2) 
    {
     Var1 = (Var1 / 4000);
        pn = "VIN: "+#c.@0x41+#c.@0x42+#c.@0x43+#c.@0x44+#c.@0x45+#c.@0x46+#c.@0x47+#c.@0x48+#c.@0x49+#c.@0x4a+#c.@0x4b+#c.@0x4c+#c.@0x4d+#c.@0x4e+#c.@0x4f+#c.@0x50+#c.@0x51;
        msg.Color = 0xFF0000;
        msg.Bold = 1;
        msg = "Дамп ОК. Введите пробег.";
        Distance =var1;
        }
       else
        {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Неверный дамп!";
        Distance = 0;
        } 
}

OnApply 
{
  if (@0x4f = 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 * 4000; Var5 =Var3 & 255; Var6=(Var3 >> 8) & 255; Var7=(Var3 >> 16) & 255; Var8=(Var3 >> 24) & 255;
        var4 = 0x80;
        while(Var4 != 0x8c)
          {
          @Var4 = Var8; Var4 = Var4 + 1;
          @Var4 = Var7; Var4 = Var4 + 1;
          @Var4 = Var6; Var4 = Var4 + 1;
          @Var4 = Var5; Var4 = Var4 + 1;
          } 
        msg.Color = 0xFF0000;
        msg.Bold = 1;
        msg = "Новый пробег записан.";
        
       
    }
   }
}
