I'm working with a device that reads and writes to an eeprom via I2C. It automatically uses a starting address at the bottom (beginning) and I cannot change this. But this device uses a fairly small amount of space compared to common eeproms these days. I would like to introduce a system of alternate options("presets", "programs" or "spaces" if you will) using a hardware switch.
Is there a shift register type of device that can cause the addressing of the eeprom to shift up by a specified amount such that the master device will think it is reading from address 0 but is actually reading from a much higher address (a different address space of the eeprom that does not overlap)? I would need this shifting to be controlled by my hardware switch and I want at least 5 different "address spaces" to be possible. If I understand correctly, this is kind of the opposite of an I2C mux.
Update: To help clarify the question (although Duskwuff understood and provided a useful suggestion): The main device reads initialization data from an eeprom when it starts up. Very simple setup. It just starts reading at 0. I wanted to create a system of startup presets for this device such that a multiple position switch of some sort would allow the user to select which startup preset would be active. But I was hoping to do this without using a separate micro-controller and/or multiple eeprom chips. The question was about whether there is an obscure (or not so obscure) chip on the market that can "translate" the address of the read (or write) 'I2C transaction' in order to map them to a different space in a single eeprom. Board space is one consideration for why I was looking for such a thing. It appears that the answer is "no". Although if I can find a micro with enough internal memory I might be able to use it as a one chip solution (as mentioned in the other aswer and commments). So far, I haven't found a suitable micro but the project is back-burnered anyway.