   int i=0;
   int items = 0;
   while( fcnlist[i].name ) {
-    if( fcnlist[i].flags & kFcnFlagHDR ) {
+
+    if( fcnlist[i].flags & kFcnFlagNL ) {
       items = 0;
+    } else if( fcnlist[i].flags & kFcnFlagHDR ) {
       Serial.println( "" );
-      Serial.println( fcnlist[i].name );
+      Serial.print( fcnlist[i].name );
+      items = 0;
     } else {
-      if( 0 == (items % 0)) { Serial.print( "   " ); }
-      Serial.print( fcnlist[i].name );
-      Serial.print( " \t" );
+      if( 0 == (items % 0)) { 
+        Serial.println( "" );
+        Serial.print( "   " );
+      }
+      sprintf( (char*)buf, "%-6s ",  fcnlist[i].name );
+
+      Serial.print( buf );
       items++;
     }
     i++;

static const unsigned char msg_Cmds[]    PROGMEM = "Commands:";
static const unsigned char msg_Bytes[]   PROGMEM = " bytes.";
static const unsigned char msg_Files[]   PROGMEM = " Files.";
static const unsigned char msg_More[]    PROGMEM = " ==[ More ]==";
static const unsigned char msg_EchoOn[]  PROGMEM = "Echo on.";
static const unsigned char msg_EchoOff[] PROGMEM = "Echo off.";
static const unsigned char msg_BadPort[] PROGMEM = "Bad port.";

// main loop entry point

bool showPrompt = true;
void prompt()
{
    Serial.print( "> " );
    Serial.flush();
}

void loop()
{
  // nothing happens after setup finishes.
  if( showPrompt ) {
    prompt();
  }
  
  getLine();
