Andy, this is the routine I use for a 4 line LCD on my EasyPIC5 board

Code:
DEFINE LCD_DREG  PORTB                  ' LCD Data port
DEFINE LCD_DBIT  0                      ' starting Data bit (0 or 4)
DEFINE LCD_EREG  PORTB                  ' LCD Enable port
DEFINE LCD_EBIT  5                      '     Enable bit  (on EasyPIC 5 LCD)
DEFINE LCD_RSREG PORTB                  ' LCD Register Select port
DEFINE LCD_RSBIT 4                      '     Register Select bit   (on EasyPIC 5 LCD)
DEFINE LCD_BITS  4                      ' LCD bus size (4 or 8 bits)
DEFINE LCD_LINES 4                      ' number of lines on LCD
DEFINE LCD_COMMANDUS 2000               ' Command delay time in us 
DEFINE LCD_DATAUS 50                    ' Data delay time in us



If you have a 2 x 16 or 2 x 20 LCD then change the DEFINE LCD_LINES 4 to DEFINE LCD_LINES 2