public override Tlcs900Instruction Decode(byte b, Tlcs900Disassembler dasm) { if (this.fmt.Length == 0) { return(new Tlcs900Instruction { Opcode = this.opcode, Address = dasm.addr, op1 = dasm.opSrc }); } if (this.fmt[0] == 'Z') { // Override the size of opSrc dasm.opSrc.Width = dasm.Size(fmt[1]); return(new Tlcs900Instruction { Opcode = this.opcode, Address = dasm.addr, op1 = dasm.opSrc, }); } else { dasm.opDst = dasm.DecodeOperand(b, this.fmt); if (dasm.opDst == null) { return(dasm.Decode(b, Opcode.invalid, "")); } return(new Tlcs900Instruction { Opcode = this.opcode, Address = dasm.addr, op1 = dasm.opDst, op2 = dasm.opSrc, }); } }