// Author: Uberteg, Andrew Shinn
num hRev1	= -1;
num hRev2	= -1;

num hVtec1	= -1;
num hVtec2	= -1;
num hVtec3	= -1;
num hVtec4	= -1;

num hIab1	= -1;
num hIab2	= -1;

void open()
{
// Rev Limiter	
	num x = 10;
	num y = 10;
	CreateBorder(x, y, 200, 65, 5, 0, "Rev");
	CreateStatic(x+5, y-5, 100, 20, 5, 0, "Rev Limits");
	
	x = x + 20;
	y = y + 20;

	hRev1 = CreateEdit(x, y, 75, 20, 5, 0, "Rev1");
		CreateStatic(x+80, y, 90, 20, 5, 0, "Fuel Cut");
	setitem(hRev1, 1875600 / readword(readword(0x3F5F)+2));
	
	y = y + 20;
	hRev2 = CreateEdit(x, y, 75, 20, 5, 0, "Rev2");
		CreateStatic(x+80, y, 90, 20, 5, 0, "Fuel Resume");
	setitem(hRev2, 1875600 / readword(readword(0x3F5C)+2));


// VTEC
	x = 250;
	y = 10;

	CreateBorder(x, y, 200, 105, 5, 0, "VTEC Points");
	CreateStatic(x+5, y-5, 100, 20, 5, 0, "VTEC Points");

	x = x + 20;
	y = y + 20;

	num rev = (readbyte(0x645D) - 128) * 62.52;

	hVtec1 = CreateEdit(x, y, 75, 20, 5, 0, "Rev1");
		CreateStatic(x+80, y, 90, 20, 5, 0, "RPM");
	setitem(hVtec1, rev);
	
	y = y + 20;
	rev = (readbyte(0x645F) - 128) * 62.52;
	hVtec2 = CreateEdit(x, y, 75, 20, 5, 0, "Rev2");
		CreateStatic(x+80, y, 90, 20, 5, 0, "RPM");
	setitem(hVtec2, rev);

	y = y + 20;
	rev = (readbyte(0x6464) - 128) * 62.52;
	hVtec3 = CreateEdit(x, y, 75, 20, 5, 0, "Rev3");
		CreateStatic(x+80, y, 90, 20, 5, 0, "RPM");
	setitem(hVtec3, rev);

	y = y + 20;
	rev = (readbyte(0x6466) - 128) * 62.52;
	hVtec4 = CreateEdit(x, y, 75, 20, 5, 0, "Rev4");
		CreateStatic(x+80, y, 90, 20, 5, 0, "RPM");
	setitem(hVtec4, rev);


// IAB
	num x = 490;
	num y = 10;
	CreateBorder(x,y, 200, 65, 5, 0, "IAB");
	CreateStatic(x+5, y-5, 100, 20, 5, 0, "IAB RPM's");
	
	x = x + 20;
	y = y + 20;

	num iab = (readbyte(0x43A2) - 128) * 62.52;
	hIab1 = CreateEdit(x, y, 75, 20, 5, 0, "Iab1");
		CreateStatic(x+80, y, 90, 20, 5, 0, "IAB Open");
	setitem(hIab1, iab);	

	y = y + 20;
	iab = (readbyte(0x439D) - 128) * 62.52;
	hIab2 = CreateEdit(x, y, 75, 20, 5, 0, "Iab2");
		CreateStatic(x+80, y, 90, 20, 5, 0, "IAB Close");
	setitem(hIab2, iab);	

}

void save()
{
	// Rev Limiter
	writeword(readword(0x3F5F)+2, 1875600 / getitem(hRev1));
	writeword(readword(0x3F5C)+2, 1875600 / getitem(hRev2));
	writeword(readword(0x3F68)+2, 1875600 / getitem(hRev1));
	writeword(readword(0x3F65)+2, 1875600 / getitem(hRev2));

	
	// VTEC
	num rev;

	rev = ((getitem(hVtec1) / 1562) * 25) + 128;
	writebyte(0x645D, rev);

	rev = ((getitem(hVtec2) / 1562) * 25) + 128;
	writebyte(0x645F, rev);

	rev = ((getitem(hVtec3) / 1562) * 25) + 128;
	writebyte(0x6464, rev);

	rev = ((getitem(hVtec4) / 1562) * 25) + 128;
	writebyte(0x6466, rev);

	
	// IAB
	num iab;

		iab = ((getitem(hIab1) / 1562) * 25) + 128;
		writebyte(0x43A2, iab);

		iab = ((getitem(hIab2) / 1562) * 25) + 128;
		writebyte(0x439D, iab);
}
