lilimike, A answer to your question is in the delays you have programmed into the LCD DEFINES. Just look at what you have....

LCD_DATAUS CON 50 ' Data delay time in us
LCD_COMMANDUS CON 2000 ' Command delay time in us

Everytime you send a cursor command proceeded with $FE your code is waiting 2 milliseconds...

Dave Purola,
N8NTA