radix dec
ISR
...
...
bsf STATUS,IRP ; indirect access to banks 2 & 3
movlw 0xEF ; send Bank3 GPR 24 no's
call Load_S_FSR ;
movlw 0x6F ; send Bank2 GPR 24 no's
call Load_S_FSR ;
bcf STATUS,IRP ; indirect access to banks 0 & 1
goto Make_Latch ;
Load_S_FSR
movwf FSR ;
movlw 24 ;
movwf Counter ;
movlw 4 ;
nxtbyte
bcf SR_Data ; bit 7
btfss INDF,7 ;
bsf SR_Data ;
bsf SR_Clock ;
bcf SR_Clock ;
bcf SR_Data ; bit 6
btfss INDF,6 ;
bsf SR_Data ;
bsf SR_Clock ;
bcf SR_Clock ;
bcf SR_Data ; bit 5
btfss INDF,5 ;
bsf SR_Data ;
bsf SR_Clock ;
bcf SR_Clock ;
bcf SR_Data ; bit 4
btfss INDF,4 ;
bsf SR_Data ;
bsf SR_Clock ;
bcf SR_Clock ;
bcf SR_Data ; bit 3
btfss INDF,3 ;
bsf SR_Data ;
bsf SR_Clock ;
bcf SR_Clock ;
bcf SR_Data ; bit 2
btfss INDF,2 ;
bsf SR_Data ;
bsf SR_Clock ;
bcf SR_Clock ;
bcf SR_Data ; bit 1
btfss INDF,1 ;
bsf SR_Data ;
bsf SR_Clock ;
bcf SR_Clock ;
bcf SR_Data ; bit 0
btfss INDF,0 ;
bsf SR_Data ;
bsf SR_Clock ;
bcf SR_Clock ;
subwf FSR,F ; setup for next byte (FSR -= 4)
decfsz Counter,F ; last byte? yes, skip, else
goto nxtbyte ; branch (do next byte)
return ;