private void cmdNext_Click(object sender, EventArgs e)
        {
            if (null != m_Command)
            {
                System.Byte[] cResult = null;
                if (HEXBuilder.HEXStringToByteArray(txtCommand.Text, ref cResult))
                {
                    //! legal input
                    m_Command.Command = cResult[0];
                }
                else
                {
                    MessageBox.Show
                    (
                        "Please Enter a legal command byte in HEX string format.",
                        "Wizard Warnning",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Warning
                    );
                    return;
                }
            }

            frmCommandWizardStepD CommandWizard = new frmCommandWizardStepD(m_Command);

            this.Hide();
            CommandWizard.Show();
            this.Dispose();
        }
        private void cmdPrevious_Click(object sender, EventArgs e)
        {
            if (null != m_Command)
            {
                if (-1 == combCommandAddress.SelectedIndex)
                {
                    System.Byte[] cResult = null;
                    if (HEXBuilder.HEXStringToByteArray(combCommandAddress.Text, ref cResult))
                    {
                        m_Command.AddressValue = cResult[0];
                    }
                }
                else
                {
                    switch (combCommandAddress.SelectedIndex)
                    {
                    case 0:                         //!< Adapter
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_ADAPTER;
                        break;

                    case 1:                         //!< SMBus
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SMBUS;
                        break;

                    case 2:
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SMBUS_PEC;
                        break;

                    case 3:                         //!< UART
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_UART;
                        break;

                    case 4:
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_UART_PEC;
                        break;

                    case 5:                         //!< Single wire UART
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SINGLE_WIRE_UART;
                        break;

                    case 6:
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SINGLE_WIRE_UART_PEC;
                        break;

                    case 7:                         //!< SPI
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SPI;
                        break;

                    case 8:
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SPI_PEC;
                        break;

                    case 9:                         //!< I2C
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_I2C;
                        break;

                    case 10:
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_I2C_PEC;
                        break;

                    case 11:                        //!< Loader
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_LOADER;
                        break;

                    case 12:                        //!< Charger
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_CHARGER;
                        break;

                    case 13:                        //!< printer
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_PRN;
                        break;

                    case 14:                        //!< LCD
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_LCD;
                        break;

                    case 15:                         //!< SMBus Extend
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SMBUS_EX;
                        break;

                    case 16:
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SMBUS_PEC_EX;
                        break;

                    case 17:                         //!< UART Extend
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_UART_EX;
                        break;

                    case 18:
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_UART_PEC_EX;
                        break;

                    case 19:                         //!< Single wire UART Extend
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SINGLE_WIRE_UART_EX;
                        break;

                    case 20:
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SINGLE_WIRE_UART_PEC_EX;
                        break;

                    case 21:                         //!< SPI Extend
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SPI_EX;
                        break;

                    case 22:
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_SPI_PEC_EX;
                        break;

                    case 23:                         //!< I2C Extend
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_I2C_EX;
                        break;

                    case 24:
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_I2C_PEC_EX;
                        break;

                    case 25:                        //!< All
                        m_Command.AddressValue = (Byte)BM_CMD_ADDR.BM_CMD_ADDR_ALL;
                        break;
                    }
                }
            }


            frmCommandWizardStepD CommandWizard = new frmCommandWizardStepD(m_Command);

            this.Hide();
            CommandWizard.Show();
            this.Dispose();
        }