	#INCLUDE "p16f84a.inc" 					
	LIST p=16f84a
	ERRORLEVEL -302    				
	__CONFIG _XT_OSC &_PWRTE_ON & _WDT_OFF &_CP_OFF	
						
	CBLOCK		0x0C					
		T1				
		T2
		TT1
		TT2
		W_TEMP
		S_TEMP
		TIME
		TIM	
		MEGTIM
		MTIM
		BEK
		MOSTZÁR
		GYUJTÁS
		AJTÓ
		BEMENET
		RIA
		MEM
		MGYUJ
		MAJT
		MBEM
	ENDC

	ORG 0X000

		GOTO	START
	
	ORG	0X004

		BTFSS	INTCON,T0IF
		GOTO	RBINT

		BCF		INTCON,T0IF
PUSH	MOVWF	W_TEMP
		SWAPF	STATUS,W
		MOVWF	S_TEMP

		MOVLW	H'DD'
		MOVWF	MTIM
		MOVLW	H'EE'
		MOVWF	MEGTIM

		MOVLW	H'00'
		MOVWF	GYUJTÁS
		MOVLW	H'00'
		MOVWF	AJTÓ
		MOVLW	H'00'
		MOVWF	BEMENET

NYIT	BTFSS	PORTA,0
		GOTO	NOMNYIT
		MOVLW	H'DD'
		MOVWF	MTIM
ZÁR		BTFSS	PORTA,1
		GOTO	NOMZÁR
		MOVLW	H'DD'
		MOVWF	MTIM
GYUJT	BTFSS	PORTA,2
		GOTO	NOMGYUJ
		MOVLW	H'DD'
		MOVWF	MTIM
AJT		BTFSS	PORTA,3
		GOTO	NOMAJT
		MOVLW	H'DD'
		MOVWF	MTIM
BEM		BTFSS	PORTA,4
		GOTO	NOMBEM
		MOVLW	H'DD'
		MOVWF	MTIM
;GOMB	BTFSS	PORTB,0
;		GOTO	NOMGOMB
;		MOVLW	H'EE'
;		MOVWF	MTIM

		GOTO	POP

NOMNYIT	DECFSZ	MTIM,F
		GOTO	NYIT
		BTFSS	PORTB2

		CALL	NYITÁS
		GOTO	POP
NOMZÁR	DECFSZ	MTIM,F
		GOTO	ZÁR
		CALL	ZÁRÁS
		GOTO	POP
NOMGYUJ	DECFSZ	MTIM,F
		GOTO	GYUJT
		MOVLW	H'01'
		MOVWF	GYUJTÁS
		GOTO	POP
NOMAJT	DECFSZ	MTIM,F
		GOTO	AJT
		MOVLW	H'01'
		MOVWF	AJTÓ
		GOTO	POP
NOMBEM	DECFSZ	MTIM,F
		GOTO	BEM
		MOVLW	H'01'
		MOVWF	BEMENET
		GOTO	POP
;NOMGOMB DECFSZ	MTIM,F
;		GOTO	GOMB
;		CALL	GOMBRES
;		GOTO	POP
		
RBINT	MOVWF	W_TEMP
		SWAPF	STATUS,W
		MOVWF	S_TEMP



		
POP		SWAPF	S_TEMP,W
		MOVF	STATUS
		SWAPF	W_TEMP,F
		SWAPF	W_TEMP,W
	RETFIE

START	BSF		STATUS,RP0
		MOVLW	B'00000001'
		MOVWF	TRISB		
		MOVLW	B'00011111'
		MOVWF	TRISA		
		MOVLW	B'10000111'
		MOVWF	OPTION_REG
		BCF		STATUS,RP0	
		BSF		INTCON,GIE
		BSF		INTCON,T0IE	

		MOVLW	H'00'
		MOVWF	BEK	
		MOVLW	H'00'
		MOVWF	MGYUJ
		MOVLW	H'00'
		MOVWF	MAJT
		MOVLW	H'00'
		MOVWF	MBEM		
		;MOVLW	H'00'
		;MOVWF	GYUJTÁS
		;MOVLW	H'00'
		;MOVWF	AJTÓ
		;MOVLW	H'00'
		;MOVWF	BEMENET
		
STAR	MOVLW	B'00111111'
		MOVWF	TIME
		BTFSC	BEK,0  
		GOTO	ZÁRVA 
		BCF		PORTB,4	;KOMF	KI 	
		BSF		PORTB,7 ;GYB	KI
		BCF		PORTB,5 ;Hang 	kikapcs
		BCF		PORTB,6	;vill	kikapcs	
		MOVLW	B'01'
		MOVWF	RIA
		MOVLW	B'01'
		MOVWF	T1
		MOVLW	B'01'
		MOVWF	T2
		MOVLW	B'01'
		MOVWF	TT1
		MOVLW	B'01'
		MOVWF	TT2
		MOVLW	B'01'
		MOVWF	TIM
		BTFSC	GYUJTÁS,0
		GOTO	MEMTÖR
		BTFSC	MGYUJ,0
		GOTO	VILL1
MA		BTFSC	MAJT,0
		GOTO	VILL2
MB		BTFSC	MBEM,0
		GOTO	VILL3
		GOTO	STAR

MEMTÖR	MOVLW	H'00'
		MOVWF	MGYUJ
		MOVLW	H'00'
		MOVWF	MAJT
		MOVLW	H'00'
		MOVWF	MBEM
		GOTO	STAR

VILL1	BSF		PORTB,3 ;LED  	bekapcs
		CALL	DELAY
		BCF		PORTB,3 ;LED  	kikapcs
		CALL	DELAY
		CALL	DELAY
		CALL	DELAY
		CALL	DELAY
		GOTO	MA
VILL2	BSF		PORTB,3 ;LED  	bekapcs
		CALL	DELAY
		BCF		PORTB,3 ;LED  	kikapcs
		CALL	DELAY
		BSF		PORTB,3 ;LED  	bekapcs
		CALL	DELAY
		BCF		PORTB,3 ;LED  	kikapcs
		CALL	DELAY	
		CALL	DELAY
		CALL	DELAY	
		CALL	DELAY
		GOTO	MB
VILL3	BSF		PORTB,3 ;LED  	bekapcs
		CALL	DELAY
		BCF		PORTB,3 ;LED  	kikapcs
		CALL	DELAY
		BSF		PORTB,3 ;LED  	bekapcs
		CALL	DELAY
		BCF		PORTB,3 ;LED  	kikapcs
		CALL	DELAY
		BSF		PORTB,3 ;LED  	bekapcs
		CALL	DELAY
		BCF		PORTB,3 ;LED  	kikapcs
		CALL	DELAY
		CALL	DELAY
		CALL	DELAY
		CALL	DELAY
		GOTO	STAR

ZÁRVA	BCF		PORTB,7	;GYB	BE
		BTFSS	MOSTZÁR,0
		GOTO	ÉLES
		MOVLW	H'00'
		MOVWF	MOSTZÁR
		BSF		PORTB,3 ;LED  	bekapcs
		BSF		PORTB,4 ;komf	bekapcs	
		CALL	DELAYY
		BCF		PORTB,4	;KOMF	KI
		BCF		PORTB,3 ;LED  	kikapcs
		GOTO	ÉLES
			
ÉLES	BTFSC	GYUJTÁS,0
		GOTO	MEMGY
		BTFSC	AJTÓ,0
		GOTO	MEMAJT
		BTFSC	BEMENET,0
		GOTO	MEMBEM
		BSF		PORTB,3 ;LED  	bekapcs
		CALL	DELAY
		BTFSC	GYUJTÁS,0
		GOTO	MEMGY
		BTFSC	AJTÓ,0
		GOTO	MEMAJT
		BTFSC	BEMENET,0
		GOTO	MEMBEM
		BCF		PORTB,3 ;LED  	kikapcs
		CALL	DELAY
		GOTO 	STAR

MEMGY	MOVLW	H'01'
		MOVWF	MGYUJ
		GOTO	RIASZT	
MEMAJT	MOVLW	H'01'
		MOVWF	MAJT
		GOTO	RIASZT
MEMBEM	MOVLW	H'01'
		MOVWF	MBEM
		GOTO	RIASZT
		
RIASZT	MOVLW	B'00010111'
		MOVWF	RIA
RIM		BSF		PORTB,3 ;LED  	bekapcs
		BSF		PORTB,5 ;Hang 	bekapcs
		BSF		PORTB,6	;vill	bekapcs
		CALL	DELAY
		BCF		PORTB,6	;vill	kikapcs
		CALL 	DELAY
		DECFSZ	RIA,F
		GOTO 	RIM
		BCF		PORTB,3 ;LED  	kikapcs
		BCF		PORTB,5 ;Hang 	kikapcs
		BCF		PORTB,6	;vill	kikapcs
		GOTO 	STAR		

DELAY:	MOVLW	H'EE'
		MOVWF	TT1
DE1		MOVLW	H'EE'
		MOVWF	TT2	
DE2		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		DECFSZ	TT2,F
		GOTO	DE2
		DECFSZ	TT1,F
		GOTO	DE1
		RETURN	
	
DELAYY:	MOVLW	TIME
		MOVWF	TIM
DEL		MOVLW	H'EE'
		MOVWF	T1
DEL1	MOVLW	H'EE'
		MOVWF	T2	
DEL2	NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		DECFSZ	T2,F
		GOTO	DEL2
		DECFSZ	T1,F
		GOTO	DEL1
		DECFSZ	TIM,F
		GOTO	DEL
		RETURN

NYITÁS:	
		MOVLW	H'00'
		MOVWF	BEK	
		MOVLW	B'01'
		MOVWF	RIA
		MOVLW	B'01'
		MOVWF	T1
		MOVLW	B'01'
		MOVWF	T2
		MOVLW	B'01'
		MOVWF	TT1
		MOVLW	B'01'
		MOVWF	TT2
		MOVLW	B'01'
		MOVWF	TIM
		BCF		PORTB,3 ;LED  	kikapcs
		BSF		PORTB,7 ;GYB	KI
		BCF		PORTB,5 ;Hang 	KI
		BSF		PORTB,6	;vill	bekapcs
		BCF		PORTB,4 ;komf	kikapcs
		CALL	DELAY
		BCF		PORTB,6	;vill	kikapcs
		CALL	DELAY
		BSF		PORTB,6	;vill	bekapcs
		CALL	DELAY
		BCF		PORTB,6	;vill	kikapcs
		RETURN
 
ZÁRÁS:	
		
		MOVLW	H'01'
		MOVWF	BEK	
		MOVLW	H'01'
		MOVWF	MOSTZÁR
		MOVLW	B'01'
		MOVWF	RIA
		MOVLW	B'01'
		MOVWF	T1
		MOVLW	B'01'
		MOVWF	T2
		MOVLW	B'01'
		MOVWF	TT1
		MOVLW	B'01'
		MOVWF	TT2
		MOVLW	B'01'
		MOVWF	TIM
		MOVLW	H'00'
		MOVWF	MGYUJ
		MOVLW	H'00'
		MOVWF	MAJT
		MOVLW	H'00'
		MOVWF	MBEM
		BCF		PORTB,5 ;Hang 	KI
		BCF		PORTB,6	;vill	kikapcs
		BSF		PORTB,3 ;LED  	bekapcs
		BCF		PORTB,7	;GYB	BE
		BSF		PORTB,6	;vill	bekapcs
		BSF		PORTB,4 ;komf	bekapcs
		CALL	DELAY
		BCF		PORTB,6	;vill	kikapcs
		RETURN

	END	


