[Airbag\Land Rover\Freelander 2\9H52 14D374 AD]

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

Form // форма окна сообщения калька
{

    Group("Информация",10,10,180,40) // Что за информация ?
    {
        Label(msg," ",5,17);
    }
     Group("Идентификация",5,70,270,45)
    {
        Label(iden," ",0,12);
        Label(iden1," ",0,27);

		}
    Group("Описание",5,120,270,180) 
    {
	    Label(lb4,"Free Lander 2  ",0,20);  // описание в окошке
        Label(lb5,"Bosch 0 285 010 523 ",0,40); // описание в окошке
		Label(lb6,"9H52 14D3774 AD ",0,60);      // описание в окошке
        Label(lb7,"eeprom 95320",0,80);         // описание. Не понятен смысл и функция этого ----- BITE!!!....
        Label(lb2,"Чтобы стереть CRASH и ошибки -",0,100);  // описание
        Label(lb3,"нажмите кнопку <Применить>.",0,120); 
        Label(lb8,"avtor < u-vovchika116 >.",0,160);
	
	}
  Picture(Logo,"Lrover.bmp",195,8,0,0); // демонстрация логотипа марки
}
OnShow
    {
     
     var0 = 0;Var1 =0; Var2 =0x00;
     if(@0x500 = 0x00) {Var0 = Var0 + 1;} // тут идет проверка дампа, задается область  1d0-1d3 и проверяется есть ли там ff
     if(@0x501 = 0x00) {Var0 = Var0 + 1;} // По какому принципу и зачем искать в этой области ff, если краш лежит в других областях 0а0-0а7 ?? Исё поставил в FF кроме этого байта и в итоге пишет "чистый дамп"
     if(Var0 != 0) 
       {
        msg.Color = 0x0000FF; // Светло-синий цвет
	msg.Bold = 1;
	msg = "Неверный дамп!"; // Сообщение при обнаружении на определенном участке данных отличных от ff
       }
     else
       {
        iden1 = "N: "+#c.@0x500+#c.@0x501+#c.@0x502+#c.@0x503+#c.@0x504+#c.@0x505+#c.@0x506+#c.@0x507+#c.@0x508+#c.@0x509+#c.@0x50a+#c.@0x50b+#c.@0x50c+#c.@0x50d;
                iden = ""+#c.@0x30+#c.@0x31+#c.@0x32+#c.@0x33;
		
		
		Var1 =0x90; // проверка есть ли на определенном участке  0а0 -0а7 что то помимо ff если есть- то пишет ОБНАРУЖЕН КРАШ наоборот ДАМП ЧИСТЫЙ
        while(Var1 !=0x91)
        {
         Var2 =Var2 | @Var1; Var1 = var1 + 1;	
        }
        
        if(var2 != 0xff) // тут ставишь что должно стоять на участке 0а0-0а7 в данном случае ff
         {
          msg.Color = 0x0000FF;
	  msg.Bold = 1;
	  msg = "Обнаружен CRASH!";
         }
         else
         {
          msg.Color = 0xff0000;
	  msg.Bold = 1;
	  msg = "Дамп чистый!";
         }
       }  
    }
OnApply
      {
	  
       Var10 = 0x050; // С КАКОГО АДРЕСА
      while(Var10 != 0x063) // ПО КАКОЙ АДРЕС
      {
       @Var10 = 0x00; Var10 = Var10 + 1; // ЧТО СТАВИТЬ
      }
	  
      Var10 = 0x064; // С КАКОГО АДРЕСА
      while(Var10 != 0x070) // ПО КАКОЙ АДРЕС
      {
       @Var10 = 0x00; Var10 = Var10 + 1; // ЧТО СТАВИТЬ
      }
   
      Var10 = 0x070; // С КАКОГО АДРЕСА
      while(Var10 != 0x0dc) // ПО КАКОЙ АДРЕС
      {
       @Var10 = 0xFF; Var10 = Var10 + 1; // ЧТО СТАВИТЬ
      }
	  
      Var10 = 0x0dc; // С КАКОГО АДРЕСА
      while(Var10 != 0x0e0) // ПО КАКОЙ АДРЕС
      {
       @Var10 = 0x00; Var10 = Var10 + 1; // ЧТО СТАВИТЬ
      }
	  
	  Var10 = 0x0e0; // С КАКОГО АДРЕСА
      while(Var10 != 0x15c) // ПО КАКОЙ АДРЕС
      {
       @Var10 = 0xFF; Var10 = Var10 + 1; // ЧТО СТАВИТЬ
      }
	  
	  Var10 = 0x15c; // С КАКОГО АДРЕСА
      while(Var10 != 0x160) // ПО КАКОЙ АДРЕС
      {
       @Var10 = 0x00; Var10 = Var10 + 1; // ЧТО СТАВИТЬ
      }
	  
	  Var10 = 0x160; // С КАКОГО АДРЕСА
      while(Var10 != 0x280) // ПО КАКОЙ АДРЕС
      {
       @Var10 = 0xFF; Var10 = Var10 + 1; // ЧТО СТАВИТЬ
      }
	  
	  Var10 = 0x318; // С КАКОГО АДРЕСА
      while(Var10 != 0x45b) // ПО КАКОЙ АДРЕС
      {
       @Var10 = 0xFF; Var10 = Var10 + 1; // ЧТО СТАВИТЬ
      }
	  
	  Var10 = 0x45b; // С КАКОГО АДРЕСА
      while(Var10 != 0x45c) // ПО КАКОЙ АДРЕС
      {
       @Var10 = 0x00; Var10 = Var10 + 1; // ЧТО СТАВИТЬ
      }
	  
	  Var10 = 0x45c; // С КАКОГО АДРЕСА
      while(Var10 != 0x4b7) // ПО КАКОЙ АДРЕС
      {
       @Var10 = 0xFF; Var10 = Var10 + 1; // ЧТО СТАВИТЬ
      }
	  
	  
      msg.Color = 0xff00ff;
      msg.Bold = 1;
      msg = "CRASH и ошибки стерты!";
    }
	
}	