Problem with - PMB-248 GPS Receiver

I recently bought "PMB-248 GPS Receiver" from parallax

I used this code and it's working

#include <SoftwareSerial.h>

SoftwareSerial GPS = SoftwareSerial(2, 3);
byte GPSByte;

void setup()
{
  GPS.begin(4800);
  Serial.begin(9600);
}

void loop()
{
  // Get the GPS data
  GPSByte = GPS.read();
  // Print GPS data
  Serial.print(GPSByte);
}

Now how I can convert the income serial data to readable info and save them to EEPROM

Thanks

I merge it with code in Arduino Playground

the final code

#include <SoftwareSerial.h>
#include <string.h>
#include <ctype.h>

int ledPin=13;
int byteGPS=-1;
char linea[300] = "";
char comandoGPR[7] = "$GPRMC";
int cont=0;
int bien=0;
int conta=0;
int indices[13];

SoftwareSerial GPS = SoftwareSerial(14, 15);

void setup()
{
  pinMode(ledPin, OUTPUT);       // Initialize LED pin
  Serial.begin(9600);
  GPS.begin(4800);
    for (int i=0;i<300;i++)
  {       // Initialize a buffer for received data
    linea[i]=' ';
  }   
}

void loop()
{
  savelocation ();
}

void savelocation ()
{
digitalWrite(ledPin, HIGH);
  byteGPS=GPS.read();         // Read a byte of the serial port
  if (byteGPS == -1) 
  {           // See if the port is empty yet
    delay(100); 
  } 
  else {
    linea[conta]=byteGPS;        // If there is serial port data, it is put in the buffer
    conta++;                      
    if (byteGPS==13)
    {            // If the received byte is = to 13, end of transmission
      digitalWrite(ledPin, LOW); 
      cont=0;
      bien=0;
      for (int i=1;i<7;i++)
      {     // Verifies if the received command starts with $GPR
        if (linea[i]==comandoGPR[i-1])
        {
          bien++;
        }
      }
      if(bien==6)
      {               // If yes, continue and process the data
        for (int i=0;i<300;i++)
        {
          if (linea[i]==','){    // check for the position of the  "," separator
            indices[cont]=i;
            cont++;
          }
          if (linea[i]=='*')
          {    // ... and the "*"
            indices[12]=i;
            cont++;
          }
        }
        Serial.println("");      // ... and write to the serial port
        Serial.println("");
        Serial.println("---------------");
        for (int i=0;i<12;i++)
        {
          switch(i){
          case 0 :
            Serial.print("Time in UTC (HhMmSs): ");
            break;
          case 1 :
            Serial.print("Status (A=OK,V=KO): ");
            break;
          case 2 :
            Serial.print("Latitude: ");
            break;
          case 3 :
            Serial.print("Direction (N/S): ");
            break;
          case 4 :
            Serial.print("Longitude: ");
            break;
          case 5 :
            Serial.print("Direction (E/W): ");
            break;
          case 6 :
            Serial.print("Velocity in knots: ");
            break;
          case 7 :
            Serial.print("Heading in degrees: ");
            break;
          case 8 :
            Serial.print("Date UTC (DdMmAa): ");
            break;
          case 9 :
            Serial.print("Magnetic degrees: ");
            break;
          case 10 :
            Serial.print("(E/W): ");
            break;
          case 11 :
            Serial.print("Mode: ");
            break;
          case 12 :
            Serial.print("Checksum: ");
            break;
          }
          for (int j=indices[i];j<(indices[i+1]-1);j++)
          {
            Serial.print(linea[j+1]); 
          }
          Serial.println("");
        }
      }
      conta=0;                    // Reset the buffer
      for (int i=0;i<300;i++)
      { 
        linea[i]=' ';             
      }                 
    }
  }
}

This will help:
http://arduiniana.org/libraries/tinygps/

Mowcius