[Dashboard\Samsung\SM3 93C56]

Size(280,250); 

Form
{
    Group("Пробег",5,5,140,50)
    {
        Digit(Distance," ",5,18,90);
        Label(lb1,"KM",110,20);
    }
        
     Group("Информация",5,58,270,45)
    {
        Label(message," ",0,18);
    }
    Group("Описание",5,105,270,100) 
    {
        Label(lb4,"Калькулятор для Samsung SM3.",0,20);
        Label(lb5,"EEPROM 93C56",0,35);
        Label(lb2,"Введите нужное значение в окне ПРОБЕГ",0,55);
        Label(lb3,"и нажмите кнопку <Применить>.",0,70);
    }
    Picture(Picture1,"Samsung.bmp",170,10,0,0);
}

OnShow 
{
	Var0 = 0;
	Var1 = 0;
	Var5 = 0x04; // Начальный адрес

	while(Var1 < 4) {
		Var2 = ((@Var5 ^ 0xFF) << 8) | (@(Var5 + 1) ^ 0xFF);
		Var3 = (@(Var5 + 2) << 8) | @(Var5 + 3); // (@(Var5 + 5) << 16) | 
		Var6 = (@(Var5 + 5)) | (@(Var5 + 4) << 8);
		Var4 = Var3 + Var6;
		if (Var2 != Var4) {Var0 = 1;}
		Var5 = Var5 + 6;
		Var1 = Var1 + 1;
	}

	if(Var0 != 0)
	{
		message.Color = 0x0000FF;
		Message.Bold = 1;
		Message = "Неверный дамп!";
		Distance = 0;
	}
	else
	{
		Var1 = Var3 | (Var6 << 16);     // значение в нулевой ячейке
		Message.Bold = 1;
		Message.Alignment = 1;
		message.Color = 0xFF0000;
		message = "Дамп ОК, нажмите кнопку <Применить>";
		Distance = Var1;
	}
}

OnApply 
{
    Var10 = Distance;
    Var0 = 0;
    if(Var10 < 0)     {Var0 = 1;}
    if(Var10 > 999900)  {Var0 = 1;}

    if(Var0 = 1)
    {
		Message.Bold = 1;
		message.Color = 0x0000FF;
		Message = "Пробег должен быть не более 999999 км.";
    }
    else
    {
        Var5 = 0x04;
        Var14 = 0;
          
        Var1 = (Var10 >> 8) & 0xFF; 
        Var2 = Var10 & 0xFF; 
        Var4 = (Var10 >> 16) & 0xFF; 
        Var3 = (Var10 >> 24) & 0xFF; 
		Var6 = (Var10 & 0xFFFF) + Var4;
        while (Var14 < 4)
		{
			@Var5 = ((Var6 >> 8) & 0xFF) ^ 0xFF; Var5 = Var5 + 1;
			@Var5 = (Var6 & 0xFF) ^ 0xFF; Var5 = Var5 + 1;
			@Var5 = Var1; Var5 = Var5 + 1;
			@Var5 = Var2; Var5 = Var5 + 1;
			@Var5 = Var3; Var5 = Var5 + 1;
			@Var5 = Var4; Var5 = Var5 + 1;
			Var14 = Var14 + 1;
		} 
        // заполняем дамп
		Message.Bold = 1;
		message.Color = 0xFF0000;
        message = "Дамп ОК. Новый пробег записан.";
    }
}