;
;         "macro_uim.txt" ;   
;
;          
;     ----------------------------
xchwf    macro regs ;;  "   "
      xorwf regs,w ;;   xchwf f ( xchwf <   > )
      xorwf regs,f
      xorwf regs,w
         endm
;
;     ----------------------------
bsw   macro bit ;;  " bsf W,bit "  bit=1   W
      iorlw 1<<bit ;;   bsw bit ( bit =  ()  )
        endm
;
;     ----------------------------
bcw   macro bit ;;  " bcf W,bit "  bit=0   W
      andlw 0xFF-(0xFF&(1<<bit)) ;;   bcw bit ( bit =  ()  )
        endm
;
;     ----------------------------
incw   macro ;;  "   (W)"
      addlw 1 ;;   incw
        endm
;
;     ----------------------------
decw   macro ;;  "   (W)"
      addlw 0xFF ;;   decw
        endm
;
;     ----------------------------
bank_set macro name ;;    
     if name == 0
      bcf STATUS,RP0
      bcf STATUS,RP1
      else
     if name == 1
      bsf STATUS,RP0
      bcf STATUS,RP1
      else
     if name == 2
      bcf STATUS,RP0
      bsf STATUS,RP1
      else
     if name == 3
      bsf STATUS,RP0
      bsf STATUS,RP1
      endif
        endm
;
;
;----------------------------------------------------------------------------------
;
;     /   
;
;                  ----------------------------
;
;     ----------------------------
;  (  ) 
;       W
;   W       
;ljmp macro prog_name
;      movlw high prog_name ;;   ljmp prog_name
;      movwf PCLATH ;;  prog_name     
;      movlw low prog_name
;      movwf PCL
;    endm
;
;     ----------------------------
;   ( /- ) 
;  ,   name + W
;  W=0x00  ljmp
; !   W   !
;
jmp_@W_TABL macro name
      movwf wwtp ;;   jmp_@W_TABL name
               ;;  prog_name     
      movlw high name
      movwf PCLATH
      movlw low name
      addwf wwtp,w
      btfsc STATUS,C
      incf PCLATH,f
      movwf PCL
    endm
;
;     ----------------------------
;   ( /- ) 
;  ,      DPTR   name + W
;      
; !   W   !
;
jmp_@W_DPTR macro name
      banksel name
      movwf wwtp ;;   jmp_@W_DPTR name
               ;;  name   DPTR   
      movf name,w
      movwf PCLATH
      movf (name+1),w
      addwf wwtp,w
      btfsc STATUS,C
      incf PCLATH,f
      movwf PCL
    endm
;
;     ----------------------------
;   ,   
;    W  - >   PC + W
; !   W   !
;
jmp_@W_PC macro
     local point_base
      movwf wwtp ;;   jmp_@W_PC  
      movlw high (point_base+1)
      movwf PCLATH
      movlw low (point_base+1)
      addwf wwtp,w
      btfsc STATUS,C
      incf PCLATH,f
point_base
      movwf PCL
    endm
;
;     ----------------------------
; -
t_slot macro time
     local loopt
    movlw time
    movwf t_mk_tct
loopt
;    nop
;    nop
    decfsz t_mk_tct,f
   goto loopt
    endm
;
;     ----------------------------
;
set_Z_APU macro
    bsf STATUS,RP0
    bsf TRISA,L_APU
    bcf STATUS,RP0
   endm
;
;     ----------------------------
;
clr_L_APU macro
    bsf STATUS,RP0
    bcf TRISA,L_APU
    bcf STATUS,RP0
   endm
;
;     ----------------------------
;
;