		LIST P=16F877
#INCLUDE "P16F877.INC"
#INCLUDE "M_BANK.ASM" 
		__CONFIG _XT_OSC&_PWRTE_ON &_CP_OFF&_WDT_OFF&_LVP_OFF

        CBLOCK 0x20  ;A Minden BANK-ból látható GPR kezdőcím
		URES
		NULLA
		EGY
		KETTO	
		HAROM
		NEGY
		OT
		HAT
		HET
		NYOLC
		KILENC
		T1
		T2
		TEMP
		EGYES
		TIZES
		SZAZAS
		EZRES
		TIZ
		JELDB
		CKL
		SZORZO
		SZAMLALO
		CSORD
		EREDM_FELSO
		EREDM_ALSO
		STATMEM
		WMEM
		CSORTEMP
		JELZO		

		COUNTER
        ENDC 

		ORG 0
		GOTO 	START

        ORG 4
		BCF	  INTCON,GIE

		BTFSC INTCON,T0IF
		GOTO  TMRINT
		BCF   INTCON,INTF

		INCF  EREDM_ALSO
		BTFSC STATUS,0
		INCF  EREDM_FELSO
		BCF   STATUS,0  
    

		BSF   INTCON,GIE
        RETFIE     
 
TMRINT:	BCF   	INTCON,GIE
		BCF   	INTCON,T0IF  			
		BCF	STATUS,0
		DECFSZ  JELZO,F
		GOTO    KIIR
		CALL    SZAMOL  

KIIR:   MOVLW   B'00010000' 
        MOVWF   PORTD 
		MOVFW	EZRES
		ADDLW	H'21'
		MOVWF	FSR
		MOVFW	INDF
		MOVWF	PORTC
		CALL	DELAY5
		MOVLW	B'11111111'
		MOVWF	PORTC
		
	    MOVLW   B'00100000' 
        MOVWF   PORTD 
		MOVFW	SZAZAS
		ADDLW	H'21'
		MOVWF	FSR
		MOVFW	INDF
		MOVWF	PORTC
		CALL	DELAY5
		MOVLW	B'11111111'
		MOVWF	PORTC
			
	    MOVLW   B'01000000' 
        MOVWF   PORTD 
		MOVFW	TIZES
		ADDLW	H'21'
		MOVWF	FSR
		MOVFW	INDF
		MOVWF	PORTC
		CALL	DELAY5
		MOVLW	B'11111111'
		MOVWF	PORTC
		
	    MOVLW   B'10000000' 
        MOVWF   PORTD 
		MOVFW	EGYES
		ADDLW	H'21'
		MOVWF	FSR
		MOVFW	INDF
		MOVWF	PORTC
		CALL	DELAY5
		MOVLW	B'11111111'
		MOVWF	PORTC
		
		CLRF	EREDM_ALSO
		CLRF	EREDM_FELSO
		CLRF	CSORD
		CLRF	CSORTEMP
		;LRF	COUNTER

		CLRF	TMR0
		BCF		STATUS,0
		BCF		INTCON,T0IF
		BSF		INTCON,T0IE
		BSF	  INTCON,GIE
        RETFIE     

START   BSF   STATUS,RP0
	BCF   STATUS,RP1
		
        MOVLW B'00000001'  			
        MOVWF TRISB   				
        MOVLW B'00000000'  			
        MOVWF TRISC   				
        MOVLW B'00000000'  			
        MOVWF TRISD   				
	MOVLW B'00000001'
	MOVWF OPTION_REG

      	BCF   STATUS,RP0

		CALL  DEFAULT

		BSF	  INTCON,GIE
 		BSF   INTCON,T0IE
		BSF   INTCON,INTE

		CLRF  TMR0
		BCF   INTCON,T0IF
  
LOOP:   NOP
	NOP	
	GOTO LOOP     	

SZAMOL: MOVLW 	D'9'
		MOVWF 	JELZO

		MOVLW	D'100'
		MOVWF	JELDB
		CALL	OSZTAS
  
		MOVFW	CSORD
		MOVWF	CSORTEMP
 
		MOVLW	D'10'
		MOVWF	JELDB
		CALL	OSZTAS

		MOVFW	EREDM_ALSO
		MOVWF	EZRES
		MOVFW	CSORD
		MOVWF	SZAZAS


		MOVFW	CSORTEMP
		MOVWF	EREDM_ALSO

		MOVLW	D'10'
		MOVWF	JELDB
		CALL	OSZTAS

		MOVFW	EREDM_ALSO
		MOVWF	TIZES
		MOVFW	CSORD
		MOVWF	EGYES
		CLRF	COUNTER
		RETURN


OSZTAS: CLRF	CSORD
		MOVLW	H'10'
		MOVWF	CKL	
CIKLUS: BCF		STATUS,0
		RLF		EREDM_ALSO,F
		RLF		EREDM_FELSO,F
		RLF		CSORD,F
		BCF		EREDM_ALSO,0	
		MOVF	JELDB,W
		SUBWF	CSORD,W
		BTFSS	STATUS,0
		GOTO	ATLEPES
		MOVWF	CSORD
		BSF		EREDM_ALSO,0
		
ATLEPES:DECFSZ	CKL,F
		GOTO	CIKLUS
		RETURN

SZORZAS:CLRF	EREDM_FELSO
		CLRF	EREDM_ALSO
		MOVLW   H'08'
		MOVWF	SZAMLALO
		MOVF	COUNTER,0
		BCF		STATUS,0
CIKLUSS	RRF		SZORZO,1
		BTFSC	STATUS,0
		ADDWF	EREDM_FELSO,1
		RRF		EREDM_FELSO,1
		RRF		EREDM_ALSO,1
		DECFSZ	SZAMLALO,1
		GOTO	CIKLUSS
		RETURN

DEFAULT:CLRF	EZRES
		CLRF 	SZAZAS
		CLRF	TIZES
		CLRF	EGYES

		MOVLW   D'3'
		MOVWF	SZAZAS
		MOVWF	EZRES
		MOVWF	TIZES
		MOVWF	EGYES

		CLRF	INDF 
		CLRF	TMR0
		CLRF	COUNTER
		CLRF	EREDM_ALSO
		CLRF	EREDM_FELSO
		CLRF	CSORD
	
		MOVLW	D'9'
		MOVWF	JELZO

		MOVLW	D'10'
		MOVWF 	SZORZO

		MOVLW	D'10'
		MOVWF 	JELDB
		
		MOVLW	B'11111111'
		MOVWF	URES

        MOVLW	B'11000000'
		MOVWF	NULLA
	
        MOVLW	B'11111001'
		MOVWF	EGY   

        MOVLW	B'10100100'
		MOVWF	KETTO

        MOVLW	B'10110000'
		MOVWF	HAROM

        MOVLW	B'10011001'
		MOVWF	NEGY

        MOVLW	B'10010010'
		MOVWF	OT

        MOVLW	B'10000010'
		MOVWF	HAT

        MOVLW	B'11011000'
		MOVWF	HET

        MOVLW	B'10000000'
		MOVWF	NYOLC

        MOVLW	B'10010000'
		MOVWF	KILENC
		RETURN

DELAY:	MOVLW	D'10'
		MOVWF	T1
DEL:	MOVLW	D'10'
		MOVWF	T2
DEL1:	NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		DECFSZ	T2,F
		GOTO	DEL1
		DECFSZ	T1,F
		GOTO	DEL 
		RETURN

DELAY5:	MOVLW	D'90'
		MOVWF	T1
DEL5:	MOVLW	D'10'
		MOVWF	T2
DEL15:	NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		DECFSZ	T2,F
		GOTO	DEL15
		DECFSZ	T1,F
		GOTO	DEL5 
		RETURN

		END

								
