From Dwayne Reid
;10 bit delay routine providing 1 cycle resolution. Works with both 12 & 14 bit core PICs.
;Original idea from Mike Harrison. This version by Dwayne Reid
;
;enters with upper 8 bits of delay in DELAYU, lower 2 bits in bits 1,0 of DELAYL
;bits 7..2 in DELAYL can be used as flags for whatever purpose desired.
;returns with W destroyed
Delay10bit ;delay is 10 bit value + 7 cycles ( + call + return, if any)
incf DELAYU,F ;correct for dec & test instead of test & dec
Dly10bLoop
comf DELAYL,W ;invert LSBs
decfsz DELAYU,F
goto Dly10bLoop ;coarse delay to closest 4 cycles
andlw b'00000011'
addwf PCL,F
nop
nop
nop