I don't mean to sound like a broken record, but why are you setting your data bits AFTER raising E1?? Your code: > wrte > call BusyFlag > bsf RS > bcf RW > bsf E1 > > movf daten > movwf PORTB > > bcf E1 > > return Wouldn't it make more sense to use: wrte call BusyFlag movf daten movwf PORTB bsf RS bcf RW bsf E1 bcf E1 return Thereby putting your output on PORTB before clocking E1... Michael -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist