; Blank line
loop  sleep     ; Label and operation
      incf 6,1  ; Operation with 2 parameters
      goto loop ; Operation with 1 parameter

#define X Y
#defin ; incomplete
#undefine X

number equ 5

label_#v((number + 1) * 5)_suffix equ 0x10

db .34,O'35',O'93',0xAf,0xady,a'a',a'ap,A'\'

any   macro parm
      movlw parm
      endm
      any 33

; Shift reg left
slf   macro reg
      clrc
      rlf   reg,f
endm

; Scale W by “factor”. Result in “reg”, W unchanged.
scale macro reg, factor
      if (factor == 1)
          movwf reg                ; 1 X is easy
      else
          scale reg, (factor / 2)  ; W * (factor / 2)
          slf   reg,f              ; double reg
          if ((factor & 1) == 1)   ; if lo-bit set ..
              addwf reg,f          ; .. add W to reg
          endif
      endif
endm

      scale tmp,D'10'

      movwf  tmp
      clrc
      rlf    tmp,f
      addwf  tmp,f

spin  macro  n
      movlw  n
      addlw  0xff
      btfss  STATUS,Z
      goto   $-2
endm

LOOP: BTFSS flag,0x00
      GOTO LOOP

      
      BTFSS flag,0x00
      GOTO $ - 1