private byte[] PrintMessageSuperCommand(byte slotID, uint romPointer, ushort messageWait)
{
byte[] message;
if (commands.ContainsKey("SETWORD"))
{
ushort commandID = commands["SETWORD"].HexID;
byte length = 1;
if (commandID > 0x100)
{
length = 2;
}
message = new byte[length + 8];
for (int i = 0; i < length; i++)
{
message[i] = (Byte.Parse(ToDecimal("0x" + commandID.ToString("X4").Substring(4 - ((i * 2) + 2), 2))));
}
message[length] = 0x24;
message[length + 1] = 0xC0;
message[length + 2] = 0x3;
message[length + 3] = 0x2;
if (romPointer < 0x8000000)
{
romPointer += 0x8000000;
}
for (int i = 0; i < 4; i++)
{
message[length + 4 + i] = (Byte.Parse(ToDecimal("0x" + romPointer.ToString("X8").Substring(8 - ((i * 2) + 2), 2))));
}
}
else
{
message = SetWordSuperCommand(romPointer, 0x0203C024);
}
byte[] stuff = new byte[14 + message.Length];
for (int i = 0; i < message.Length; i++)
{
stuff[i] = message[i];
}
stuff[message.Length] = 0x2E;
stuff[1 + message.Length] = 0x87;
stuff[2 + message.Length] = 0x3E;
stuff[3 + message.Length] = 0x2;
stuff[4 + message.Length] = 0x2;
stuff[5 + message.Length] = 0x0;
stuff[6 + message.Length] = 0x13;
stuff[7 + message.Length] = 0x24;
stuff[8 + message.Length] = 0xC0;
stuff[9 + message.Length] = 0x3;
stuff[10 + message.Length] = 0x2;
stuff[11 + message.Length] = 0x12;
for (int i = 0; i < 2; i++)
{
stuff[12 + i + message.Length] = (Byte.Parse(ToDecimal("0x" + messageWait.ToString("X4").Substring(4 - ((i * 2) + 2), 2))));
}
return stuff;
}