EEPROMex "Exceeded maximum number of writes"

PeterH:
So I think your data consists of an array of ints; the index into the array is the 'chord index' and the value is the chordValue associated with that index.

Right on, chord index gets converted to the letter that the chordValue is associated with.

now stay with me on this one, going to take a turn into the weeds...
Because the function,
EEPROM.readBlock<int>(address, array, size);
requires bringing the whole array into ram, I run into issues when I want a larger array,
this is why I built the checkAlt( ) function I posted recently.
You have to kinda imagine the index as the iterations that the for loop is going though.
the index values get converted to address space in eeprom, (basically skipping every other byte as an int is 2 bytes)
the "modifier" helps reduce interations by selectively searching address space

This makes things more complex but gives the needed flexibility
The assignment function was a little more of a puzzle then expected, heres a part of it.
keep in mind the letter coming in will actually be the ascii number associated with it, see here http://web.cs.mun.ca/~michael/c/ascii-table.html

int assignAlt(int chordValue, int letterNum)
//returns overwritten value... just in case
{
  if(letterNum>ALPHA && letterNum<123)
  {
    int startAddress=1;
    int endAddress=27;
    int modifier=96;
    for(int i=startAddress;i<endAdress;i++)
    {
      if(letterNum==i+96)
      {
        int address=i*2-1;
        int lastValue=EEPROM.readInt(address, chordValue);
        EEPROM.writeInt(address);
        return lastValue;
      }
    }
  }
  if(letterNum>64 && letterNum<59)
  {
    address=;
  }
}

Wondering if this is possible with out the for loop, gathering the address from an equation?