asr16 macro aaa rlf aaa,w rrf aaa,f rrf aaa+1,f endm mov16 macro source,dest movf source,w movwf dest movf source+1,w movwf dest+1 endm movl16 macro literal,dest movlw (literal)>>8 movwf dest movlw (literal) & 255 movwf dest+1 endm neg16 macro aaa comf aaa+1,f incf aaa+1,f btfsc STATUS,z decf aaa,f comf aaa,f endm add16 macro src,dest movf src+1,w addwf dest+1,f btfsc STATUS,c incf dest,f movf src,w addwf dest,f endm sub16 macro source,dest movf source+1,w subwf dest+1,f movf source,w btfss STATUS,c decf dest,f subwf dest,f endm addl16 macro lit,dest movlw (lit)&0xff addwf dest+1,f movlw (lit)>>8 btfsc STATUS,c addlw 1 addwf dest,f endm div256 macro src movf src,w movwf src+1 clrf src btfsc src+1,7 decf src,f endm skpnb macro byte,bit btfsc byte,bit endm skpb macro byte,bit btfss byte,bit endm jnb macro byte,bit,target btfss byte,bit goto target endm jb macro byte,bit,target btfsc byte,bit goto target endm jnz macro target btfss STATUS,z goto target endm jz macro target btfsc STATUS,z goto target endm jnc macro target btfss STATUS,c goto target endm jc macro target btfsc STATUS,c goto target endm movlf macro lit,reg movlw lit movwf reg endm movff macro source,destination movf source,w movwf destination endm