 
 void cmd_elist( void )
 {
-  int ch = 'X';
-
-  for( int i=0 ; (i<=E2END) && (ch != '\0') ; i++ )
-  {
-    ch = EEPROM.read( i );
-
-    if( ch == '\0' ) continue;
-    Serial.write( (char *) &ch, 1 );
-  }
+	int ch = 'X';
+
+	for( int i=0 ; (i<kEESize) && (ch != '\0') ; i++ )
+	{
+		ch = EEPROM.read( i );
+
+		if( ch == '\0' ) continue;
+		Serial.write( (char *) &ch, 1 );
+	}
 }
 
 void cmd_eload( void )
 {
+	int i;
+	int ch = 'X';
+
+	for( i=0 ; (i<kEESize) && (ch != '\0') ; i++ )
+	{
+		ch = EEPROM.read( i );
+
+		programRam[i] = ch;
+		if( ch == '\0' ) continue;
+	}
+
+	Serial.print( (long)i, DEC );
+	Serial.println( " bytes loaded." );
 }
 
 void cmd_esave( void )
 {
-}
-
+	int i;
+	int ch = 'X';
+
+	for( i=0 ; (i<kEESize) && (ch != '\0') ; i++ )
+	{
+		ch = programRam[i];
+		EEPROM.write( i, ch );
+
+		if( ch == '\0' ) continue;
+	}
+
+	Serial.print( (long)i, DEC );
+	Serial.println( " bytes saved." );
+}
+
+void cmd_new( void )
+{
+	for( int i=0 ; i<kRamSize ; i++ )
+	{
+		programRam[ i ] = '\0';
+	}
+}
+
+void cmd_list( void )
+{
+	Serial.println( programRam );
+}
+
+#define kLineLen (32)
+char linebuf[kLineLen];
 
 void loop()
 {

}


#define kLineLen (32)
char linebuf[kLineLen];

void cmd_eformat( void )
{
  Serial.print( "Formatting EEPROM..." );
  for( int i=0 ; i<=E2END ; i++ )
  {
    EEPROM.write( i, 0x00 );
//    digitalWrite( kLED, i & 0x020 );

	Serial.print( (long)kRamSize, DEC );
	Serial.println( " bytes free RAM" );

	// recompute eeFree
	int ch = 'X';

	// figure out how much is used
	for( eeFree=0 ; (eeFree<=kEESize) && (ch != '\0') ; eeFree++ )
	{
		ch = EEPROM.read( eeFree );
		if( ch == '\0' ) continue;
	}
	eeFree = kEESize - eeFree; // turn it into free.


	Serial.print( "    " );
	Serial.print( (long)eeFree, DEC );
	Serial.print( " of " );
	Serial.print( (long)kEESize, DEC );
	Serial.println( " bytes free EEProm" );
}

