I'm trying to understand how the I2C "General Call Address" is supposed to work for implementing in a microcontroller.
According to the I2C Specification (PDF), Section 3.1.13:
When bit B is a 'zero', the second byte has the following definition:
0000 0110 (06h): Reset and write programmable part of slave address by hardware. On receiving this 2-byte sequence, all devices designed to respond to the general call address reset and take in the programmable part of their address. Precautions must be taken to ensure that a device is not pulling down the SDA or SCL line after applying the supply voltage, since these low levels would block the bus.
0000 0100 (04h): Write programmable part of slave address by hardware. Behaves as above, but the device does not reset.
How is the "programmable" part of the slave address supposed to be set? Is there supposed to be a third byte in the general-call command?