[Dashboard\Mazda\E2200 - 93C46 YNS]

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

Form 
{
	Group("Пробег",35,13,120,50)
	{
		Digit(Distance," ",5,18,70);
		Label(lbkm,"КМ",90,20);
	}
	Group("Информация",5,80,270,45) 
	{
		Label(Message," ",0,18);
	}    
	Group("Описание",5,130,270,90) 
	{
		Label(lb1,"Калькулятор пробега Mazda E2200",0,20);
		Label(lb2,"EEPROM 93С46.",0,35);
		Label(lb3,"Введите нужное значение в окне ПРОБЕГ.",0,50);
		Label(lb4,"Нажмите кнопку <Применить>.",0,65);
	}
	Picture(Logo,"Mazda.bmp",185,15,0,0);
}

OnShow
{
	Var1 = 0;
	Var2 = 0;
	Var3 = 0;
	Var4 = 0;
	Var5 = 0x00; // адрес малого круга
	Var6 = 100;
	Var10 = 0;
	Var11 = 0; // Error
	Var22 = 0;
	Var0 = (@Var5 << 8) | @(Var5 + 1);	Var5 = Var5 + 2; // значение в ячейке 0

	if (Var0 = 0xDEFB) { Var1 = 0; Var3 = Var3 + 1; }
	if (Var0 = 0xBDF7) { Var1 = 1; Var3 = Var3 + 1; }
	if (Var0 = 0x7BEF) { Var1 = 2; Var3 = Var3 + 1; }
	if (Var0 = 0xF7DE) { Var1 = 4; Var3 = Var3 + 1; }
	if (Var0 = 0xEFBD) { Var1 = 8; Var3 = Var3 + 1; }

	while (Var5 < 0x33)
	{
		Var10 = (@Var5 << 8) | @(Var5 + 1);     
		if (Var10 = 0xEFBD) {Var3 = Var3 + 1; }
		if (Var10 = 0xDEFB) {Var3 = Var3 + 1; }
		if (Var10 = 0xBDF7) {Var3 = Var3 + 1; }
		if (Var10 = 0x7BEF) {Var3 = Var3 + 1; }
		if (Var10 = 0xF7DE) {Var3 = Var3 + 1; }

		Var5 = Var5 + 2;
		if(Var5 = 0x14) {Var5 = 0x20;}
		if(Var0 = Var10) {Var22 = Var22 + 1;}
	}

	if (Var1 = 0x00) { Var99 = 0 + Var22;}
	if (Var1 = 0x01) { Var99 = 20 + Var22;}
	if (Var1 = 0x02) { Var99 = 40 + Var22;}
	if (Var1 = 0x04) { Var99 = 60 + Var22;}
	if (Var1 = 0x08) { Var99 = 80 + Var22;}
	
	if(Var3 < 20) {Var11 = 1;} // Error

	Var1 = 0;
	Var3 = 0;
	Var5 = 0x40;  // адрес

	while (Var2 < 4)
	{
		Var0 = (@Var5 << 8) | @(Var5 + 1);
		if (Var0 = 0xEFBD) { Var1 = 0; Var3 = Var3 + 1; }
		if (Var0 = 0xDEFB) { Var1 = 1; Var3 = Var3 + 1; }
		if (Var0 = 0xBDF7) { Var1 = 2; Var3 = Var3 + 1; }
		if (Var0 = 0x8CB1) { Var1 = 3; Var3 = Var3 + 1; }
		if (Var0 = 0x7BEF) { Var1 = 4; Var3 = Var3 + 1; }
		if (Var0 = 0x4AA9) { Var1 = 5; Var3 = Var3 + 1; }
		if (Var0 = 0x29A5) { Var1 = 6; Var3 = Var3 + 1; }
		if (Var0 = 0x18E3) { Var1 = 7; Var3 = Var3 + 1; }
		if (Var0 = 0xF7DE) { Var1 = 8; Var3 = Var3 + 1; }
		if (Var0 = 0xC698) { Var1 = 9; Var3 = Var3 + 1; }

		Var4 = Var4 + (Var1 * Var6);
		Var6 = Var6 * 10;

		Var5 = Var5 + 2;
		Var2 = Var2 + 1;
	}
	
	if(Var3 != 4)  {Var11 = 1;}

	if(Var11 != 0)
	{
		// ----------------- неверное значение пробега
		Message.Color = 0x0000FF;
		Message.Bold = 1;
		Message = "Ошибка в дампе!!!";
		Distance = 0;
	}
	else
	{
		Message.Color = 0xFF0000;
		Message.Bold = 1;
		Message.Alignment = 1;
		Distance = Var4 + Var99;
		message = "Дамп ОК. Введите пробег.";
	}
}

OnApply
{
	Var2 = 0;       // индикатор ошибки
	Var5 = 0;       // Счетчик
	Var55 = 0x00;    // Малый круг
	Var6 = 0x40;    // Пробег

	if(Distance > 9999999) { Var2 = 1;}
	if(Var2 != 0)
	{
		// ----------------- неверное значение пробега
		Message.Color = 0x0000FF;
		Message = "Пробег должен быть до 999900 км.";        
	}
	else
	{
		Var10 = Distance;
		Var7 = Var10 % 10; Var10 = Var10 / 10;
		Var8 = Var10 % 10; Var10 = Var10 / 10;
		Var9 = (Var8 * 10) + Var7;
		Var7 = Var9 / 20;
		Var8 = (Var9 % 20) + 1;

		if (Var7 = 0) { Var11 = 0xEFBD; Var12 = 0xDEFB;}
		if (Var7 = 1) { Var11 = 0xDEFB; Var12 = 0xBDF7;}
		if (Var7 = 2) { Var11 = 0xBDF7; Var12 = 0x7BEF;}
		if (Var7 = 3) { Var11 = 0x7BEF; Var12 = 0xF7DE;}
		if (Var7 = 4) { Var11 = 0xF7DE; Var12 = 0xEFBD;}

		Var21 = (Var11 >> 8) & 0xFF;
		Var22 = Var11 & 0xFF;
		Var31 = (Var12 >> 8) & 0xFF;
		Var32 = Var12 & 0xFF;

        while (Var55 < 0x33)
		{
			if(Var5 < Var8)
			{
				@Var55 = Var31; Var55 = Var55 + 1; 
				@Var55 = Var32; Var55 = Var55 + 1;
			}
			else
			{
				@Var55 = Var21; Var55 = Var55 + 1; 
				@Var55 = Var22; Var55 = Var55 + 1;
			}
			Var5 = Var5 + 1;
			if(Var55 = 0x14) {Var55 = 0x20;}
		}

		Var5 = 0;       // Счетчик
		while (Var5 < 4) {

			Var4 = (Var10 % 10); Var10 = Var10 / 10;

			if (Var4 = 0) { Var1 = 0xEFBD; }
			if (Var4 = 1) { Var1 = 0xDEFB; }
			if (Var4 = 2) { Var1 = 0xBDF7; }
			if (Var4 = 3) { Var1 = 0x8CB1; }
			if (Var4 = 4) { Var1 = 0x7BEF; }
			if (Var4 = 5) { Var1 = 0x4AA9; }
			if (Var4 = 6) { Var1 = 0x29A5; }
			if (Var4 = 7) { Var1 = 0x18E3; }
			if (Var4 = 8) { Var1 = 0xF7DE; }
			if (Var4 = 9) { Var1 = 0xC698; }

			Var11 = (Var1 >> 8) & 0xFF;
			Var12 = Var1 & 0xFF;

			@Var6 = Var11;	Var6 = Var6 + 1;
			@Var6 = Var12;	Var6 = Var6 + 1;

			Var5 = Var5 + 1;
		}
		Message.Color = 0xFF0000;
		Message.Bold = 1;
		Message.Alignment = 1;
		message = "Новый пробег записан.";
	}
}