IICBUS
iicbus_start(IICBUS(bktr), i2c_addr, 0 /* no timeout? */);
iicbus_write_byte(IICBUS(bktr), dev, 0);
iicbus_write_byte(IICBUS(bktr), addr_h, 0);
iicbus_write_byte(IICBUS(bktr), addr_l, 0);
iicbus_write_byte(IICBUS(bktr), data_h, 0);
iicbus_write_byte(IICBUS(bktr), data_l, 0);
iicbus_stop(IICBUS(bktr));
iicbus_start(IICBUS(bktr), i2c_addr, 0 /* no timeout? */);
iicbus_write_byte(IICBUS(bktr), dev_r, 0);
iicbus_write_byte(IICBUS(bktr), addr_h, 0);
iicbus_write_byte(IICBUS(bktr), addr_l, 0);
iicbus_repeated_start(IICBUS(bktr), i2c_addr +1, 0 /* no timeout? */);
iicbus_read(IICBUS(bktr), data_read, 2, &read, IIC_LAST_READ, 0);
iicbus_stop(IICBUS(bktr));
iicbus_start(IICBUS(bktr), i2c_addr, 0 /* no timeout? */);
iicbus_write_byte(IICBUS(bktr), 0x00, 0);
iicbus_write_byte(IICBUS(bktr), 0x80, 0);
iicbus_write_byte(IICBUS(bktr), 0x00, 0);
iicbus_stop(IICBUS(bktr));
iicbus_start(IICBUS(bktr), i2c_addr, 0 /* no timeout? */);
iicbus_write_byte(IICBUS(bktr), 0x00, 0);
iicbus_write_byte(IICBUS(bktr), 0x00, 0);
iicbus_write_byte(IICBUS(bktr), 0x00, 0);
iicbus_stop(IICBUS(bktr));
iicbus_start(IICBUS(bktr), bktr->remote_control_addr, 0 /* no timeout? */);
iicbus_read(IICBUS(bktr), remote->data, 3, &read, IIC_LAST_READ, 0);
iicbus_stop(IICBUS(bktr));