	
	LIST P=18F4520
	#INCLUDE "P18F4520.INC"


	cblock	0x0000
ora
perc
csora
csperc

temp
	endc
	

	movlw	UPPER(figyelmeztet)		;jelzésidőpontok táblázatának címe
	movwf 	TBLPTRU
	movlw	HIGH(figyelmeztet)
	movwf	TBLPTRH
	movlw	LOW(figyelmeztet)
	movwf	TBLPTRL					;Táblázatcím előkészítése

	
jelzesciklus

	tblrd*+							;Óra olvasása a sorom következő sorból, a mutató léptetése
	movff	TABLAT,csora
	movf	ora,w					;aktuális óra beolvasása
	xorwf	csora,w
	movwf	temp					;Az egyezőség tárolása
	
	tblrd*+							;Perc olvasása a sorom következő sorból, a mutató léptetése
	movff	TABLAT,csperc
	movf	perc,w					;aktuális perc beolvasása
	xorwf	csperc,w
	iorwf	temp,w					;Hozzávesszük, hogy az óra egezett-e
	bnz		noteq					;Az óra vagy a perc nem egyezik, ugrás

	nop
	
;	bsf jelz_out					;óra, perc egyezik, jelzés aktiválás
;	call wait_ring			
;	bcf jelz_out
	
noteq
	incf	csperc,w				;Megvizsgálom, hogy a táblázat végére értem-e? (perc = 255, azaz perc+1=256)
	incf	csora,f					;(óra = 255, azaz óra+1=256)
	iorwf	csora,w					;Az ((óra+1) modulo 256) és ((perc+1) modulo 256) 
	bnz		jelzesciklus			;Ha az ((óra+1) modulo 256) nem 0 és a ((perc+1) modulo 256) nem 0, megyünk a következő sorra 

Vege								; Egyébként a táblázat végére értünk 
	bra		Vege


	org 	0x1000					;jelzési idő adatok (óra,perc)
figyelmeztet
	db .6,.0
	db .11,.55
	db .15,.0
	db .19,.15
	db .22,.30
	db .255,.255

	end