chiark / gitweb /
undo broken deletion
[trains.git] / iwjpictest / onecopybit.inc
1 ; macro for copying bits about
2
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
8         xorlw   xorinv                          ; invert?
9         movwf   destreg, 0                      ; write output latch
10         endm                                            ; (6cy total)
11
12 copybiti macro sreg, sbitno, dreg, dbitvals
13         copybit_mi      sreg, sbitno, dreg, dbitvals, dbitvals
14         endm
15
16 copybit macro sreg, sbitno, dreg, dbitvals
17         copybit_mi      sreg, sbitno, dreg, dbitvals, 0
18         endm