_waitUs:
;slcd.c,346 :: void waitUs(int x) //[COLOR="#FF0000"]unfortunately (and unnecessarily)
// the parameter x is a signed int !![/COLOR]
;slcd.c,349 :: for (x ;x>1;x--); //[COLOR="#FF0000"]line 349 in the C source[/COLOR]
L_waitUs14:
MOVLW 128
MOVWF R0+0
MOVLW 128
XORWF FARG_waitUs_x+1, 0 //[COLOR="#FF0000"]the signed 'x > 1' examining is such complicated :-([/COLOR]
SUBWF R0+0, 0
BTFSS STATUS+0, 2
GOTO L__waitUs32
MOVF FARG_waitUs_x+0, 0 //[COLOR="#FF0000"]the 'FARG_waitUs_x+0 (and +1) is the parameter x (2 bytes) [/COLOR]
SUBLW 1
L__waitUs32:
BTFSC STATUS+0, 0 //[COLOR="#FF0000"]if carry then end else continue[/COLOR]
GOTO L_waitUs15
MOVLW 1
SUBWF FARG_waitUs_x+0, 1 //[COLOR="#FF0000"]the 'x--' is also such complicated :-([/COLOR]
BTFSS STATUS+0, 0
DECF FARG_waitUs_x+1, 1
GOTO L_waitUs14
L_waitUs15:
;slcd.c,353 :: }
L_end_waitUs:
RETURN
; end of _waitUs