; pic14mac.inc
; Copyright (c) 1994 Ian King
; Macros for picasm to generate 14bit PIC code
; from Microchip standard mnemonics
;

macro clrw	data 0x0100	endm
macro nop	data 0x0000	endm
macro clrwdt	data 0x0064	endm
macro retfie	data 0x0009	endm
macro return	data 0x0008	endm
macro sleep	data 0x0063	endm

macro option
	data 0x0062
	warn "OPTION may be removed from future PICs"
endm

macro addlw
	data 0x3e00 | (($1) & 0x00ff)
endm

macro andlw
	data 0x3900 | (($1) & 0x00ff)
endm

macro call
	data 0x2000 | (($1) & 0x7ff)
endm

macro goto
	data 0x2800 | (($1) & 0x7ff)
endm

macro iorlw
	data 0x3800 | (($1) & 0x00ff)
endm

macro movlw
	data 0x3000 | (($1) & 0x00ff)
endm

macro retlw
	data 0x3400 | (($1) & 0x00ff)
endm

macro sublw
	data 0x3c00 | (($1) & 0x00ff)
endm

macro xorlw
	data 0x3a00 | (($1) & 0x00ff)
endm

macro tris
	data 0x0060 | (($1) & 0x0007)
	warn "TRIS   may be removed from future PICs"
endm

macro bcf
	data 0x1000 | (($1) & 0x7f) | ((($2) & 0x07) << 7)
endm

macro bsf
	data 0x1400 | (($1) & 0x7f) | ((($2) & 0x07) << 7)
endm

macro btfsc
	data 0x1800 | (($1) & 0x7f) | ((($2) & 0x07) << 7)
endm

macro btfss
	data 0x1c00 | (($1) & 0x7f) | ((($2) & 0x07) << 7)
endm

macro addwf
	data 0x0700 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro andwf
	data 0x0500 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro clrf
	data 0x0180 | (($1) & 0x7f)
endm

macro comf
	data 0x0900 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro decf
	data 0x0300 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro decfsz
	data 0x0b00 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro incf
	data 0x0a00 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro incfsz
	data 0x0f00 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro iorwf
	data 0x0400 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro movf
	data 0x0800 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro movwf
	data 0x0080 | (($1) & 0x7f)
endm

macro rlf
	data 0x0d00 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro rrf
	data 0x0c00 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro subwf
	data 0x0200 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro swapf
	data 0x0e00 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

macro xorwf
	data 0x0600 | (($1) & 0x7f) | ((($2) & 0x01) << 7)
endm

; .. The End ...

