
#define MAX_LINES          35
#define MAXCHARS_ON_LINE   10
#define CHAR_MASK          0xBF

// You must ensure that there are 10 chars INCLUDING WHITE SPACE per line
// and phrase must be written in UPPERCASE LETTERS
// or else garbage will show up on display!!!!

unsigned char code phrases[] =
// 1234567890
  "CALIBRATE "	             // line  1
  "L. TURBINE"	             // line  2
  "R. TURBINE"	             // line  3
  "CMB       "	             // line  4
  "R. TURBINE"	             // line  5
  "R. TURBINE"	             // line  6
  ...
  "R. TURBINE";              // line 35

void put_phrase( unsigned char line_no )
{
   unsigned char idx;
                             // Parse the data array for 10 array elements
   for ( idx = 0; idx < MAXCHARS_ON_LINE; idx++ ) {
      P0 = phrases[ idx + line_no * MAXCHARS_ON_LINE ] & CHAR_MASK;
                             // Must strobe the write pin on the rising edge
                             // to latch char into memory position
                             // for each char in array
      write_enable();
   }
}		

void main( void )            // Main program
{
                             // clear any startup junk incase of a power cycle glitch
                             // or who the hell knows what else during a power cycle
                             // > recurring function
   clear_display();

   for(;;)                   // Loop this process forever
   {
      unsigned char line_no;
      for ( line_no = 0; line_no < MAX_LINES; line_no++ ) {
         clear_display(); put_phrase( line_no ); word_delay();
      }
      ...
