GSM 900 module msg to LCD: help with code !

Hello people ! I am using this code to receive sms text messages onto an lcd, using a GSM 900 module and Arduino r3. However, the code only accommodates upto 16 characters in a single line and it cuts off the rest of the message if it exceeds 16 chrcters. I am looking for help on how to make the message scroll so that I can display more than 16 characters. I have attached to code. Any help would be much appreciated !

Code:

#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
LiquidCrystal lcd(2,3,4,5,6,7);
SoftwareSerial SIM900(9, 8 );
int inByte=0;
void setup()
{
Serial.begin(19200); // for serial monitor display
SIM900.begin(19200); // for GSM shield start serial programming
lcd.begin(16, 2);
lcd.print(" ATTENTION");
lcd.setCursor(0, 1);
lcd.print("READ THE MESSAGE");
delay(20000); // give time to manually power ON the GSM Shield andconnect to the network
SIM900.print("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
SIM900.print("AT+CNMI=2,2,0,0,0\r"); // Configuration to extract content of the received message.Display it on Arduino Serial Monitor
delay(100);
}
void loop()
{
// Now we simply display any text that the GSM shield sends out on the serial monitor
do
{
while ( !SIM900.available() );
} while ( '"' != SIM900.read() );

do
{
while ( !SIM900.available() );
} while ( '"' != SIM900.read() );

do
{
while ( !SIM900.available() );
} while ( '"' != SIM900.read() );

do
{
while ( !SIM900.available() );
} while ( '"' != SIM900.read() );
do
{
while ( !SIM900.available() );
} while ( '"' != SIM900.read() );

do
{
while ( !SIM900.available() );
} while ( '"' != SIM900.read() );

while ( !SIM900.available() );
inByte = SIM900.read();
while ( !SIM900.available() );
inByte = SIM900.read();

lcd.clear();
while(1)
{
while ( !SIM900.available() );
inByte = SIM900.read();

if ( inByte == '\r' )
break;
else;
Serial.write(inByte);
lcd.write ( inByte );
}
}

LCD_GSM.ino (2.08 KB)