In some of my spare time I've been thinking about another EEPROM library interface. (currently it is on the shelf as I have too much other things to do)
The idea is to create a linked list in the EEPROM of "allocated" memory. Each node is identified by a char; when the node is created its size is defined and its location is determined.
uint16_t startPage; // every chunck starts at page boundary so - 1 - point to byte PAGESIZE (16/32?); this allows for max 64K nodes.
uint8_t deleted; // flag that this chunk is freed.
The first node would be on address 0 of course.
If I get this working I can write something like
succes = readEEPROM("myappcnf", (void*) &myconfig);
succes = readEEPROM("lutclr", (void*) &lookUpTableRGB2CMYK);
and something like
succes = createEEPROM("GagaMidi", 1024); // create a node and a internal ref to a chunk of 1024 bytes
succes = WriteEEPROM("GagagMidi", (void*) &midiArray); // and copy midiArray in it
If another sketch wants to use EEPROM it will never overwrite used EEPROM ... (never say never
what do you think of this idea?