highlight.asm-picsrc

                    ; 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