; *************** function _LCDWriteSUB *****************
; Defined at:
; line 22 in file "C:\Documents and Settings\Administrator\My Documents\Electronics\PIC Evil Genius\Experiments\2 Bit LCD\Basic.c"
; Parameters: Size Location Type
; dataout 2 0[BANK0 ] int
; RS 2 2[BANK0 ] int
; Auto vars: Size Location Type
; None
; Return value: Size Location Type
; 2 0[BANK0 ] int
; Registers used:
; wreg
; Tracked objects:
; On entry : 0/0
; On exit : 0/0
; Unchanged: 0/0
; Data sizes: COMMON BANK0 BANK1
; Locals: 5 4 0
; Temp: 5
; Total: 9
; This function calls:
; Nothing
; This function is called by:
; _LCDWrite
; This function uses a non-reentrant model
;
psect text30
file "C:\Documents and Settings\Administrator\My Documents\Electronics\PIC Evil Genius\Experiments\2 Bit LCD\Basic.c"
line 22
global __size_of_LCDWriteSUB
__size_of_LCDWriteSUB equ __end_of_LCDWriteSUB-_LCDWriteSUB
;Basic.c: 21: LCDWriteSUB(int dataout, int RS)
;Basic.c: 22: {
_LCDWriteSUB:
opt stack 5
; Regs used in _LCDWriteSUB: [wreg]
line 23
l30000388:
;Basic.c: 23: RA4 = 0;
bcf status, 5 ;RP0=0, select bank0
bcf (44/8),(44)&7
l30000389:
line 25
;Basic.c: 25: for (i = 0; i < 6; i++)
movlw low(0)
movwf (_i)
movlw high(0)
movwf ((_i))+1
l11:
line 27
;Basic.c: 26: {
;Basic.c: 27: RA5 = 1;
bcf status, 5 ;RP0=0, select bank0
bsf (45/8),(45)&7
line 28
;Basic.c: 28: RA5 = 0;
bcf (45/8),(45)&7
l30000391:
line 25
movlw low(01h)
addwf (_i),f
skipnc
incf (_i+1),f
movlw high(01h)
addwf (_i+1),f
movf (_i+1),w
xorlw 80h
movwf (??_LCDWriteSUB+0+0)
movlw (high(06h))^80h
subwf (??_LCDWriteSUB+0+0),w
skipz
goto u155
movlw low(06h)
subwf (_i),w
u155:
skipc
goto u151
goto u150
u151:
goto l11
u150:
l30000392:
line 31
;Basic.c: 29: }
;Basic.c: 31: dataout = dataout | (1 << 5) | ( (RS & 1) << 4);
movlw low(01h)
bcf status, 5 ;RP0=0, select bank0
andwf (LCDWriteSUB@RS),w
movwf (??_LCDWriteSUB+0+0)
movlw high(01h)
andwf (LCDWriteSUB@RS+1),w
movwf 1+(??_LCDWriteSUB+0+0)
movlw 04h
movwf (??_LCDWriteSUB+2+0)
u165:
clrc
rlf (??_LCDWriteSUB+0+0),f
rlf (??_LCDWriteSUB+0+1),f
decfsz (??_LCDWriteSUB+2+0),f
goto u165
movf (LCDWriteSUB@dataout),w
iorwf 0+(??_LCDWriteSUB+0+0),w
movwf (??_LCDWriteSUB+3+0)
movf (LCDWriteSUB@dataout+1),w
iorwf 1+(??_LCDWriteSUB+0+0),w
movwf 1+(??_LCDWriteSUB+3+0)
movlw 020h
iorwf 0+(??_LCDWriteSUB+3+0),w
movwf (LCDWriteSUB@dataout)
movf 1+(??_LCDWriteSUB+3+0),w
movwf 1+(LCDWriteSUB@dataout)
line 33
;Basic.c: 33: for(i = 0; i < 6; i++)
movlw low(0)
movwf (_i)
movlw high(0)
movwf ((_i))+1
l14:
line 35
;Basic.c: 34: {
;Basic.c: 35: if (0 != ((1 << 5) & dataout))
bcf status, 5 ;RP0=0, select bank0
btfss (LCDWriteSUB@dataout),(5)&7
goto u171
goto u170
u171:
goto l17
u170:
l30000394:
line 37
;Basic.c: 36: {
;Basic.c: 37: RA4 = 1;
bsf (44/8),(44)&7
goto l30000395
l17:
line 41
;Basic.c: 39: else
;Basic.c: 40: {
;Basic.c: 41: RA4 = 0;
bcf (44/8),(44)&7
l30000395:
line 43
;Basic.c: 42: }
;Basic.c: 43: dataout = dataout << 1;
movf (LCDWriteSUB@dataout+1),w
movwf (??_LCDWriteSUB+0+0+1)
movf (LCDWriteSUB@dataout),w
movwf (??_LCDWriteSUB+0+0)
movlw 01h
movwf (??_LCDWriteSUB+2+0)
u185:
clrc
rlf (??_LCDWriteSUB+0+0),f
rlf (??_LCDWriteSUB+0+1),f
decfsz (??_LCDWriteSUB+2+0),f
goto u185
movf 0+(??_LCDWriteSUB+0+0),w
movwf (LCDWriteSUB@dataout)
movf 1+(??_LCDWriteSUB+0+0),w
movwf (LCDWriteSUB@dataout+1)
l30000396:
line 45
;Basic.c: 45: RA5 = 1;
bsf (45/8),(45)&7
l30000397:
line 46
;Basic.c: 46: RA5 = 0;
bcf (45/8),(45)&7
line 33
movlw low(01h)
addwf (_i),f
skipnc
incf (_i+1),f
movlw high(01h)
addwf (_i+1),f
movf (_i+1),w
xorlw 80h
movwf (??_LCDWriteSUB+0+0)
movlw (high(06h))^80h
subwf (??_LCDWriteSUB+0+0),w
skipz
goto u195
movlw low(06h)
subwf (_i),w
u195:
skipc
goto u191
goto u190
u191:
goto l14
u190:
l15:
line 49
# 49 "C:\Documents and Settings\Administrator\My Documents\Electronics\PIC Evil Genius\Experiments\2 Bit LCD\Basic.c"
nop ;#
psect text30
line 50
;Basic.c: 50: RA4 = 1;
bcf status, 5 ;RP0=0, select bank0
bsf (44/8),(44)&7
line 51
# 51 "C:\Documents and Settings\Administrator\My Documents\Electronics\PIC Evil Genius\Experiments\2 Bit LCD\Basic.c"
nop ;#
psect text30
line 52
;Basic.c: 52: RA4 = 0;
bcf (44/8),(44)&7
l10:
return
opt stack 0
GLOBAL __end_of_LCDWriteSUB
__end_of_LCDWriteSUB:
; =============== function _LCDWriteSUB ends ============