;****************************
;*							*
;*	Macro para guardar los	*
;*	registros en la rutina	*
;*	de servicio de las		*
;*	interrupciones			*
;*							*
;****************************
PUSH_MACRO	MACRO
	movwf	W_TEMP
	swapf	STATUS, W
	movwf	STATUS_TEMP
	endm

POP_MACRO	MACRO
	swapf	STATUS_TEMP, W
	movwf	STATUS
	swapf	W_TEMP, F
	swapf	W_TEMP, W
	endm

;****************************
;*							*
;*	Macro para leer de la 	*
;*	eeprom					*
;*							*
;****************************
LEE_EEPROM_MACRO MACRO	direccion
	BANKSEL	2
	movf	direccion, W
	movwf	EEADR
	BANKSEL 3
	bcf		EECON1, EEPGD
	bsf		EECON1, RD
	BANKSEL 2
	movf	EEDATA, W
	BANKSEL 0
	endm

;****************************
;*							*
;*	Macro para escribir en	*
;*	la eeprom				*
;*							*
;****************************
ESCRIBE_EEPROM_MACRO MACRO direccion, registro
	BANKSEL 3
	btfsc	EECON1, WR	; esperamos a que acabe el ultimo write
	goto	$-1
	BANKSEL 2
	movf	direccion, W
	movwf	EEADR
	movf	registro, W
	movwf	EEDATA
	BANKSEL 3
	bcf		EECON1, EEPGD
	bsf		EECON1, WREN
	bcf		INTCON, GIE	; Deshabilitamos las interrupciones
	movlw	0x55
	movwf	EECON2
	movlw	0xaa
	movwf	EECON2
	bsf		EECON1, WR
	bsf		INTCON, GIE	; Habilitamos las interrupciones
	bcf		EECON1, WREN	; Deshabilitamos las escrituras
	BANKSEL 0
	endm

