private string machineCodeToParameter(byte[] _input) { string result = ""; AssemblyTable table = new AssemblyTable(); byte[] data = new byte[2]; switch (_input[0]) //First argument mode { case 0x00: case 0x10: case 0x20: //It's a register. Figure out which one result += table.GetRegister(_input[2]); break; case 0x01: //It's a literal. Convert to hex data[0] = _input[1]; data[1] = _input[2]; result += ("x" + ByteArrayToStringSimple(data)); break; case 0x02: case 0x12: case 0x22: //Absolute RAM data[0] = _input[1]; data[1] = _input[2]; result += ("@" + ByteArrayToStringSimple(data)); break; case 0x03: case 0x13: case 0x23: //Indirect RAM data[0] = _input[1]; data[1] = _input[2]; result += ("$" + ByteArrayToStringSimple(data)); break; case 0x04: case 0x14: case 0x24: //Absolute RAM from register result += ("@" + table.GetRegister(_input[2])); break; case 0x05: case 0x15: case 0x25: //Indirect RAM from register result += ("$" + table.GetRegister(_input[2])); break; } //Check for byte mode and add suffix if needed if (_input[0] > 0x0F) { if (_input[0] >= 0x10 && _input[0] <= 0x1F)//Lower byte { result += ".L"; } else if (_input[0] >= 0x20 && _input[0] <= 0x2F)//Upper byte { result += ".U"; } } return result; }
private string machineCodeToParameter(byte[] _input) { string result = ""; AssemblyTable table = new AssemblyTable(); byte[] data = new byte[2]; switch (_input[0]) //First argument mode { case 0x00: case 0x10: case 0x20: //It's a register. Figure out which one result += table.GetRegister(_input[2]); break; case 0x01: //It's a literal. Convert to hex data[0] = _input[1]; data[1] = _input[2]; result += ("x" + ByteArrayToStringSimple(data)); break; case 0x02: case 0x12: case 0x22: //Absolute RAM data[0] = _input[1]; data[1] = _input[2]; result += ("@" + ByteArrayToStringSimple(data)); break; case 0x03: case 0x13: case 0x23: //Indirect RAM data[0] = _input[1]; data[1] = _input[2]; result += ("$" + ByteArrayToStringSimple(data)); break; case 0x04: case 0x14: case 0x24: //Absolute RAM from register result += ("@" + table.GetRegister(_input[2])); break; case 0x05: case 0x15: case 0x25: //Indirect RAM from register result += ("$" + table.GetRegister(_input[2])); break; } //Check for byte mode and add suffix if needed if (_input[0] > 0x0F) { if (_input[0] >= 0x10 && _input[0] <= 0x1F)//Lower byte { result += ".L"; } else if (_input[0] >= 0x20 && _input[0] <= 0x2F)//Upper byte { result += ".U"; } } return(result); }