ESP8266 EEPROM volatile?

I am working on a sketch for the ESP8266 using a Nodemcu module, and I need to use the first 128 bytes of EEPROM memory to store non-volatile data . I am have also written a separate small utility program to view and clear those first 128 bytes of data in EEPROM memory should the need arise. On a UNO Board all I require is EEPROM.write() and EEPROM.read(). It seems that the ESP8266 additionally needs EEPROM.begin() before an EEPROM.read() or EEPROM.write(), and EEPROM.commit() after the write to save the data to EEPROM. I have included those statements in my code. However, I find that I can read the data back from the EEPROM only provided that the board is not reset. Once the board is reset or powered down, the data is lost and all that gets read back are zeroes. Am I missing something in my code? Or is this a problem with my ESP8266 module?

The code below works fine on a UNO board, but not on an ESP8266.

At the start of the sketch I have defined as follows:

#define EEPROM_SIZE 128

#ifdef __AVR__
  #define EBYTE FF
#endif

#ifdef ESP8266
  #define EBYTE 0
  #define COMMIT
#endif

These are the EEPROM readback and store routines:

void readEEprom() {
  int val = 0;
  int cnt = 0;
  Serial.println("\nReading EEPROM:-\n");
  for (int i=0;i<EEPROM_SIZE;i++){
    val = EEPROM.read(i);
    Serial.print(val, HEX);
    Serial.print(' ');
    cnt++;
    if (cnt==16){
      cnt = 0;
      Serial.println();
    }
  }
  Serial.println("\nDone.\n");
}


void clearEEprom() {
#ifdef COMMIT
  EEPROM.begin(EEPROM_SIZE);
#endif

  for (int i=0;i<EEPROM_SIZE;i++){
    EEPROM.write(i, EBYTE);
  }
  Serial.println("\nDone.");
  Serial.println("Press any key to continue...\n");
  while(!Serial.available()){
    // Wait until key pressed
  }
#ifdef COMMIT
  EEPROM.commit(); 
#endif
}

These sub-routines are called on demand from a simple menu in void loop();