1 ; macro for copying bits about
3 copybit_mi macro sourcereg, sourcebitno, destreg, destbitvals, xorinv
4 movf destreg, 0, 0 ; read output latch
5 andlw ~destbitvals ; mask out output bit
6 btfsc sourcereg, sourcebitno, 0 ; skip if input clear
7 iorlw destbitvals ; add output bit
9 movwf destreg, 0 ; write output latch
12 copybiti macro sreg, sbitno, dreg, dbitvals
13 copybit_mi sreg, sbitno, dreg, dbitvals, dbitvals
16 copybit macro sreg, sbitno, dreg, dbitvals
17 copybit_mi sreg, sbitno, dreg, dbitvals, 0