In C. Peter --- void lcd_byte(uchar b) { LCD_PORT = b; // lcd D4..7 are D4..7 of port, send MSnybbl 1st LCD_E=1; DELAY1USEC; LCD_E=0; DELAY4USEC; LCD_PORT = (b << 4) & 0xF0; LCD_E=1; DELAY1USEC; LCD_E=0; return; } This is an almost verbatim quote from code that runs here just fine (and has for ~9 years). Peter -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu