#include <EEPROM.h>

// save current machine pos to EEPROM
void pos_to_eeprom()
{
  unsigned int addr = 0;
  Serial.println("saving pos to EEPROM");
  for (byte ax=0;ax<max_ax;ax++)
  {
    
    byte b=(pos[ax] & 0xff000000) >> 24;   //HSB first
    EEPROM.write(addr, b);addr++;
         b=(pos[ax] & 0x00ff0000) >> 16;   
    EEPROM.write(addr, b);addr++;
         b=(pos[ax] & 0x0000ff00) >> 8;   
    EEPROM.write(addr, b);addr++;
         b=(pos[ax] & 0x000000ff);   
    EEPROM.write(addr, b);addr++;
  }
}

// load last machine pos from EEPROM on startup
void pos_from_eeprom()
{
  Serial.println("loading pos from EEPROM");
  Serial.println("pos loaded:");
  
  
  unsigned int addr = 0;
  int result;
  for (byte ax=0;ax<max_ax;ax++)
  {
    result=EEPROM.read(addr)<<24;
    addr++;
    result=result | (EEPROM.read(addr)<<16);
    addr++;
    result=result | (EEPROM.read(addr)<<8);
    addr++;
    result=result | (EEPROM.read(addr));
    addr++;

    pos[ax]=result;
  }
  print_positions();
}