def compute_address_commandable(address):
    """
    Creates a commandable address, with the checksum appended
    :param address: A list of bytes corresponding to the address or the actual address in question
    :return: A list of bytes corresponding to the address with the checksum appended
    """
    if not isinstance(address, bytearray):
        if isinstance(address, bytes) or isinstance(address, list):
            address = bytearray(address)
        else:
            address = [address >> 24 & 255, address >> 16 & 255, address >>
                8 & 255, address & 255]
    checksum = 0
    for x in address:
        checksum ^= x
    address.append(checksum)
    return address
