   }
 }
 
-// draw the Save or Restore screen
+// draw the Save, Restore or Delete screen
 void savresdel_display(Menu *menu, int slot_num)
 {
-  Serial.print("savresdel_display: menu="); Serial.println(menu->title);
-  Serial.print("savresdel_display: slot_num="); Serial.println(slot_num);
-
-  // max length of item strings is "0: xxxxxxxxHz"
+  Frequency freq;
+  SelOffset offset;
+
+  // max length of item strings is "9: xxxxxxxxHz" - 13 chars
   const int max_len = 13;
   char buf[MAX_FREQ_CHARS + 1];
 
-  // get saved frequency, convert to a display buffer
-  Frequency freq = 0;
-  byte offset = 0;
-
   get_slot(slot_num, freq, offset);
 
   ltochbuff(buf, MAX_FREQ_CHARS, freq);
   buf[MAX_FREQ_CHARS] = 0;
-  Serial.print("savresdel_display: freq="); Serial.println(freq);
-  Serial.print("savresdel_display: buf="); Serial.write(buf, MAX_FREQ_CHARS);
-  Serial.println("");
 
   // write menu title on first row
   lcd.clear();

  while (events_pending() > 0)
  {
    // get next event and handle it
    byte event = pop_event();
#ifdef DEBUG
    Serial.print("loop: popped event "); Serial.println(event2display(event));
#endif

    switch (event)
    {

// Abort the program.
// Tries to tell the world what went wrong, then just loops.
//     msg  address of error string
// Only first 32 chars of message is displayed.
//----------------------------------------------------------

void abort(const char *msg)
{
  char buf[NUM_COLS*2+1];
  char *ptr = buf;
  
  // print error on console (maybe)
  Serial.println(msg);
  Serial.println("Teensy is paused!");

  // truncate/pad message to 32 chars
  for (int i = 0; i < NUM_COLS*2; ++i)
    *ptr++ = ' ';
  *ptr = '\0';
  Serial.print("buf='"); Serial.print(buf); Serial.println("'");
  
  strncpy(buf, msg, NUM_COLS*2);
  Serial.print("buf='"); Serial.print(buf); Serial.println("'");
  if (strlen(msg) < NUM_COLS*2)
    strncpy(buf + strlen(msg), "                                ", NUM_COLS*2 - strlen(msg));
  Serial.print("buf='"); Serial.print(buf); Serial.println("'");

  // show what we can on the display, forever
  while (1)
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.write(buf);
    lcd.setCursor(0, 1);
    lcd.write(buf + NUM_COLS);
    delay(2000);

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.write(" ");   // padding to centre name+version
    lcd.write(ProgramName);
    lcd.write(" ");
    lcd.write(Version);
    lcd.setCursor(0, 1);
    lcd.write("   is paused");
    delay(2000);
  }
}
