large code revision

let's see whether we can make EEPROM-saved presets actually work, after
all this time.