ASM
lcd@crs clrf BPFH
bsf BPFH,7
curs@ movwf PP5
movlw 254
Call ch@snd2
movfw PP5
GoTo ch@snd2
Print movwf PP3H
bcf LCD#ENPORT,LCD#ENPIN
bcf LCD_ENPORT2,LCD_ENPIN2
bcf LCD#RSPORT,LCD#RSPIN
bcf (LCD#ENPORT + 18),LCD#ENPIN
bcf (LCD_ENPORT2 + 18),LCD_ENPIN2
bcf (LCD#ENPORT + 18),LCD#RSPIN
movlw 15
andwf (LCD#DTPORT + 18),f
movfw PP3H
btfsc BPF,1
GoTo prt@1
movlw 58
movwf PP0H
movlw 152
Call dlus@w
movlw 51
movwf PP3
Call pr@lp
movlw 19
movwf PP0H
movlw 136
Call dlus@w
Call pr@lp
movlw 100
Call dl@us
Call pr@lp
movlw 100
Call dl@us
movlw 34
movwf PP3
Call pr@lp
movlw 40
Call pr@c
movlw 12
Call pr@c
movlw 6
Call pr@c
bsf BPF,1
movfw PP3H
bra prt@1
pr@c bsf BPF,0
prt@1 movwf PP3
btfss BPF,0
bra pr@cc
bcf LCD#RSPORT,LCD#RSPIN
sublw 3
bnc pr@sd
Call pr@sd
movlw High LCD#COMMANDUS
movwf PP0H
movlw Low LCD#COMMANDUS
Call dlus@w
bsf STATUS,0
Return
pr@cc bsf BPF,0
sublw 254
btfsc STATUS,2
GoTo pr@ex
bsf LCD#RSPORT,LCD#RSPIN
pr@sd
btfss BPF,0
pr@lp bcf BPF,0
btfsc LCD#ENPINSELECT1
bsf LCD#ENPORT,LCD#ENPIN
btfsc LCD#ENPINSELECT2
bsf LCD_ENPORT2,LCD_ENPIN2
movlw 15
andwf LCD#DTPORT,f
movfw PP3
andlw 240
iorwf LCD#DTPORT,f
nop
bra $ + 2
nop
bcf LCD#ENPORT,LCD#ENPIN
bcf LCD_ENPORT2,LCD_ENPIN2
swapf PP3,f
nop
bra $ + 2
nop
btfsc BPF,0
bra pr@lp
movlw Low LCD#DATAUS
Call dl@us
pr@ex movfw PP3H
Return
ch@snd2
btfsc BPFH,7
GoTo Print
GoTo dl@us
ENDASM