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

macro clrw	data 0x0040	endm
macro nop	data 0x0000	endm
macro clrwdt	data 0x0004	endm
macro sleep	data 0x0003	endm
macro option	data 0x0002	endm

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

macro call
	data 0x0900 | (($1) & 0x00ff)
endm

macro goto
	data 0x0a00 | (($1) & 0x01ff)
endm

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

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

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

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

macro tris
	data 0x0000 | (($1) & 0x0007)
endm

macro bcf
	data 0x0400 | (($1) & 0x1f) | ((($2) & 0x07) << 5)
endm

macro bsf
	data 0x0500 | (($1) & 0x1f) | ((($2) & 0x07) << 5)
endm

macro btfsc
	data 0x0600 | (($1) & 0x1f) | ((($2) & 0x07) << 5)
endm

macro btfss
	data 0x0700 | (($1) & 0x1f) | ((($2) & 0x07) << 5)
endm

macro addwf
	data 0x01c0 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro andwf
	data 0x0140 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro clrf
	data 0x0060 | (($1) & 0x1f)
endm

macro comf
	data 0x0240 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro decf
	data 0x00c0 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro decfsz
	data 0x02c0 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro incf
	data 0x0280 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro incfsz
	data 0x03c0 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro iorwf
	data 0x0100 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro movf
	data 0x0200 | (($1) & 0x1f)
endm

macro movwf
	data 0x0020 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro rlf
	data 0x0340 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro rrf
	data 0x0300 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro subwf
	data 0x0080 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro swapf
	data 0x0380 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

macro xorwf
	data 0x0180 | (($1) & 0x1f) | ((($2) & 0x01) << 5)
endm

; ... The End ...
