   // Check that vSync and hSync characteristics look normal
   return 0.95 <= vSync && vSync <= 1.20 && 0.95 <= hSync && hSync <= 1.05;
 }
+
+#if hasSerial
+void sendEcho(char next, char last)
+{
+  if (echo)
+    switch (next) {
+      case 127:  Serial.print("\b \b"); return;
+      case '\n': if (last == '\r')      return; // else FALL THROUGH
+      case '\r': Serial.println();      return;
+      default: Serial.print(next);
+    }
+}
+#endif
 
 #if hasSerial
 void doCommand(char line[])

  case 'P': doTransfer(gt1File);              break;
  case 'U': doTransfer(NULL);                 break;
  case '.': doLine(&line[1]);                 break;
  case 'T': doTerminal();                     break;
  case 'W': sendController(~buttonUp,     2); break;
  case 'A': sendController(~buttonLeft,   2); break;

{
  #if hasSerial
    Serial.println(detectGigatron() ? ":Gigatron OK" : "!Gigatron offline");
    Serial.println("Cmd?");
  #endif
}

