
#include "P16F877.INC"						; e nélkül nem definialtnak talal ilyeneket: PORTD  STATUS   PCL(program counter)  etc.  Az PIC specifikus include file tartalmazza ezen regisztereknek a nevét, címét


EEPROMmentes	udata		; adat szekcio a modul szamara

EEPROM_MENTESSZAM	res	1
	global	EEPROM_MENTESSZAM	; mentendo byte-okat extern-nel felsorolni

	extern	ONTOZESSZAM
	extern	AG_1_IDOTARTAM
	extern	AG_2_IDOTARTAM
	extern	AG_3_IDOTARTAM
	extern	ROVID_IDOTARTAM
	extern	HOSSZU_IDOTARTAM
	extern	PERCSZAMOLO_NAPPALEJSZAKA
	extern	TIMER_ONTOZES_ALLAPOT
	extern	SZELEP_ELOBYTE
	extern	ONTOZES_IDOTARTAM
	extern	main

;#########################################
eeprommenteskod	code    						; code szekcio a modul szamara         modulnév -ben ne legyen _ (hiba, hogy contiguous-nak kell lennie)	
									; modulnev code és utána a cimke(cimkék) eltéro nevuek legyenek  (név duplikáció hiba)







;++++++++++++++++++++++++++++++++++++++++++++++++++++++
eeprom_mentes      			; cimke1 ..2..3 stb a GOTO $-1 stb kikuszobolesere van (linkeres programszerkezetnel ne kelljen meg esetleges oldal atlepeseket is ellenorizgetni. Lsd tablazat/computed goto)	
	global	eeprom_mentes

	
eeprom_visszairas
	global	eeprom_visszairas

	END
;++++++++++++++++++++++++++++++++++++++++++++++++++++++











eeprom_mentes      			; cimke1 ..2..3 stb a GOTO $-1 stb kikuszobolesere van (linkeres programszerkezetnel ne kelljen meg esetleges oldal atlepeseket is ellenorizgetni. Lsd tablazat/computed goto)	
	global	eeprom_mentes

	BCF	INTCON,GIE

			banksel	PORTB
	BCF	PORTB,1			; Kijelzo választó biteket 0-ra » kijelzo ki 
	BCF	PORTB,2

	CLRF	PORTD			;szelepek, motor leall(amugy is leallna az aramszunet miatt), korabbi veszleallast jelzo led is kialszik(kapcsoljuk majd vissza a hibas szelepszam visszairasakor)

			banksel	EEPROM_MENTESSZAM
	INCF	EEPROM_MENTESSZAM,F	; szamoljuk a mentesek szamat



; Mindenképp mentendo byte-ok mentése:

;---------------------------------------------------------------------------------------------
;			<<<<<<<<< ONTOZESSZAM mentese, EEPROM hely: 1 >>>>>>>>>>>>>>>>
;			banksel	EECON1
;CIMKE1
;	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
;	GOTO	CIMKE1					
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	1			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	ONTOZESSZAM
	MOVFW	ONTOZESSZAM		;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE2
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE2					;

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)
;---------------------------------------------------------------------------------------------
;			<<<<<<<<<  EEPROM_MENTESSZAM mentese, EEPROM hely: 2 >>>>>>>>>>>>>>>>
			banksel	EECON1
CIMKE3
	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
	GOTO	CIMKE3					
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	2			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	EEPROM_MENTESSZAM
	MOVFW	EEPROM_MENTESSZAM	;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE4
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE4					;

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)
;---------------------------------------------------------------------------------------------
;			<<<<<<<<< AG_1_IDOTARTAM mentese, EEPROM hely: 3 >>>>>>>>>>>>>>>>
			banksel	EECON1
CIMKE5
	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
	GOTO	CIMKE5					
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	3			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	AG_1_IDOTARTAM
	MOVFW	AG_1_IDOTARTAM		;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE6
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE6					;

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)
;---------------------------------------------------------------------------------------------
;			<<<<<<<<< AG_2_IDOTARTAM mentese, EEPROM hely: 4 >>>>>>>>>>>>>>>>
			banksel	EECON1
CIMKE7
	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
	GOTO	CIMKE7					
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	4			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	AG_2_IDOTARTAM
	MOVFW	AG_2_IDOTARTAM		;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE8
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE8					;

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)
;---------------------------------------------------------------------------------------------
;			<<<<<<<<< AG_3_IDOTARTAM mentese, EEPROM hely: 5 >>>>>>>>>>>>>>>>
			banksel	EECON1
CIMKE9
	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
	GOTO	CIMKE9					
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	5			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	AG_3_IDOTARTAM
	MOVFW	AG_3_IDOTARTAM		;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE10
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE10					;

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)
;---------------------------------------------------------------------------------------------
;			<<<<<<<<< ROVID_IDOTARTAM mentese, EEPROM hely: 6 >>>>>>>>>>>>>>>>
			banksel	EECON1
CIMKE11
	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
	GOTO	CIMKE11					
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	6			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	ROVID_IDOTARTAM
	MOVFW	ROVID_IDOTARTAM		;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE12
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE12					;

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)
;---------------------------------------------------------------------------------------------
;			<<<<<<<<< HOSSZU_IDOTARTAM mentese, EEPROM hely: 7 >>>>>>>>>>>>>>>>
			banksel	EECON1
CIMKE13
	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
	GOTO	CIMKE13					
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	7			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	HOSSZU_IDOTARTAM
	MOVFW	HOSSZU_IDOTARTAM	;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE14
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE14					;

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< PERCSZAMOLO_NAPPALEJSZAKA mentese, EEPROM hely: 8 >>>>>>>>>>>>>>>>
			banksel	EECON1
CIMKE15
	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
	GOTO	CIMKE15					
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	8			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	PERCSZAMOLO_NAPPALEJSZAKA
	MOVFW	PERCSZAMOLO_NAPPALEJSZAKA	;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE16
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE16					;

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)
;---------------------------------------------------------------------------------------------
;			<<<<<<<<< TIMER_ONTOZES_ALLAPOT mentese, EEPROM hely: 9 >>>>>>>>>>>>>>>>
			banksel	EECON1
CIMKE17
	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
	GOTO	CIMKE17					
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	9			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	TIMER_ONTOZES_ALLAPOT   
	MOVFW	TIMER_ONTOZES_ALLAPOT   ;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE18
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE18					;

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)

;###############################################################################################

; Feltételesen mentendo byte-ok mentése ha kell (ha öntözés folyamatan):

			banksel	TIMER_ONTOZES_ALLAPOT
	BTFSC	TIMER_ONTOZES_ALLAPOT,0
	CALL	ONTOZESI_BYTEOK_MENTESE
	GOTO	EEPROM_MENTES_VEGE

;###############################################################################################

ONTOZESI_BYTEOK_MENTESE
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< SZELEP_ELOBYTE mentese, EEPROM hely: 10 >>>>>>>>>>>>>>>>
			banksel	EECON1
CIMKE19
	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
	GOTO	CIMKE19				
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	10			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	SZELEP_ELOBYTE   
	MOVFW	SZELEP_ELOBYTE		;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE20
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE20					;

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< ONTOZES_IDOTARTAM mentese, EEPROM hely: 11 >>>>>>>>>>>>>>>>
			banksel	EECON1
CIMKE21
	BTFSC	EECON1, WR 		;Wait for write to finish (addig újabb írást nem kezd amig egy esetleges korábbit be nem fejezett)
	GOTO	CIMKE21					
		
			banksel	EEADR	; EEADR EEDATA   Bank 2-ben
	MOVLW	11			; ########  programmemória címe (ahova kiirok) #######    	16F877 256 EEPROM bytejanak egyikenek cimet megadjuk
	MOVWF	EEADR 			;write to  (erre a cimre irunk)

			banksel	ONTOZES_IDOTARTAM   
	MOVFW	ONTOZES_IDOTARTAM	;   #########  kiirando byte  ##########
			banksel	EEDATA
	MOVWF	EEDATA 			;write
			
			banksel	EECON1	;EECON1 EECON2 Bank 3-ban
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, WREN 		;Enable writes
	MOVLW	0x55 			;Write 55h to
	MOVWF	EECON2 			;EECON2
	MOVLW	0xAA 			;Write AAh to
	MOVWF	EECON2 			;EECON2
	BSF	EECON1, WR 			;Start write operation
CIMKE22					
	BTFSC	EECON1, WR 		;Wait for write to finish (addig nem lép tovább amíg be nem fejezodött az írás)
	GOTO	CIMKE22					

	BCF	EECON1, WREN 		;Ez kell?(tobb byte-ot irok ki)   Disable writes (le kell tíltani az EEPROM írását is, de csak akkor, ha már megtörtént az írás)
;-----------------------------------------------------------------------------------------------
	RETURN

;###############################################################################################

EEPROM_MENTES_VEGE
	GOTO	main


;####################################################################################
;####################################################################################







eeprom_visszairas
	global	eeprom_visszairas

;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< ONTOZESSZAM visszaírása, EEPROM hely: 1 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	1			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	ONTOZESSZAM 
	MOVWF	ONTOZESSZAM 			;   #########  visszairando byte  ##########
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< EEPROM_MENTESSZAM visszaírása, EEPROM hely: 2 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	2			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	EEPROM_MENTESSZAM
	MOVWF	EEPROM_MENTESSZAM			;   #########  visszairando byte  ##########
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< AG_1_IDOTARTAM visszaírása, EEPROM hely: 3 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	3			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	AG_1_IDOTARTAM 
	MOVWF	AG_1_IDOTARTAM 			;   #########  visszairando byte  ##########
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< AG_2_IDOTARTAM visszaírása, EEPROM hely: 4 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	4			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	AG_2_IDOTARTAM 
	MOVWF	AG_2_IDOTARTAM 			;   #########  visszairando byte  ##########
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< AG_3_IDOTARTAM visszaírása, EEPROM hely: 5 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	5			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	AG_3_IDOTARTAM 
	MOVWF	AG_3_IDOTARTAM 			;   #########  visszairando byte  ##########
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< ROVID_IDOTARTAM visszaírása, EEPROM hely: 6 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	6			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	ROVID_IDOTARTAM 
	MOVWF	ROVID_IDOTARTAM 			;   #########  visszairando byte  ##########
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< HOSSZU_IDOTARTAM visszaírása, EEPROM hely: 7 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	7			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	HOSSZU_IDOTARTAM 
	MOVWF	HOSSZU_IDOTARTAM 			;   #########  visszairando byte  ##########
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< PERCSZAMOLO_NAPPALEJSZAKA visszaírása, EEPROM hely: 8 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	8			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	PERCSZAMOLO_NAPPALEJSZAKA 
	MOVWF	PERCSZAMOLO_NAPPALEJSZAKA 			;   #########  visszairando byte  ##########
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< TIMER_ONTOZES_ALLAPOT visszaírása, EEPROM hely: 9 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	9			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	TIMER_ONTOZES_ALLAPOT 
	MOVWF	TIMER_ONTOZES_ALLAPOT 			;   #########  visszairando byte  ##########



;###############################################################################################

; Feltételesen visszaírando byte-ok visszaírása ha kell (ha öntözés folyamatan volt):

			banksel	TIMER_ONTOZES_ALLAPOT
	BTFSC	TIMER_ONTOZES_ALLAPOT,0
	CALL	ONTOZESI_BYTEOK_VISSZAIRASA
	RETURN					; visszatér a visszaírás rutinból a main-hez és folytatja az interrupt beállítással

;###############################################################################################

ONTOZESI_BYTEOK_VISSZAIRASA
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< SZELEP_ELOBYTE visszaírása, EEPROM hely: 10 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	10			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	SZELEP_ELOBYTE 
	MOVWF	SZELEP_ELOBYTE 				;   #########  visszairando byte  ##########
;-----------------------------------------------------------------------------------------------
;			<<<<<<<<< ONTOZES_IDOTARTAM visszaírása, EEPROM hely: 11 >>>>>>>>>>>>>>>>

			banksel	EEADR
	MOVLW	11			; ########  programmemória címe (ahonnan visszairjuk) #######
	MOVWF	EEADR 			;to read from
				
			banksel	EECON1
	BCF	EECON1, EEPGD 		;Point to Data memory
	BSF	EECON1, RD 		;Start read operation   (itt az EEDATA-ba 11111111 kerul)
				
			banksel	EEDATA
	MOVFW	EEDATA 			;W = EEDATA
			banksel	ONTOZES_IDOTARTAM 
	MOVWF	ONTOZES_IDOTARTAM ;   #########  visszairando byte  ##########
	RETURN

;###############################################################################################


	END							; modul vege
								; END utan barmi irhato, nem kell ;   END utan levok a fordito szamara nem leteznek



















































