Hey Michael,
This doesn't really explain your problem, but in this section...
Code:
; save the FSR value because it gets changed below
movf Low FSR0, W
movwf fsave
movf High FSR0, W
movwf fsave+1
It's really just saving address 00 instead of saving the contents of the FSR0 registers. (FE9 and FEA)
The symbol FSR0 equates to 0x0h. It's for use with LFSR etc.
I believe it should be like this.
Code:
; save the FSR value because it gets changed below
movf FSR0L, W
movwf fsave
movf FSR0H, W
movwf fsave+1
It's the same again when trying to restore it.
HTH,
Darrel
Bookmarks