;0-9 ig bineáris számláló nyomógombal.
;--------------------------------------------------
A	EQU	25			;Time szubrutinnak memoriaterület lefoglalás	
B	EQU	30			;Nyomógomb számlálására külön memoriaterület
	ORG	0
	GOTO	SETUP
;--------------------------------------------------
SETUP
	CLRF	PORTB			;PORTB kimenet, PORTD,0 bemenet
	CLRF	PORTD
	BANKSEL	TRISB
	CLRF	TRISB
	BSF	TRISD,0
	BANKSEL	PORTB
	GOTO	PROGRAM
;--------------------------------------------------
PROGRAM
	BTFSS	PORTD,0			;Gomb pergésmentesítés
	GOTO	NEMNYOM
X	BTFSC	PORTD,0
	GOTO	X	
	INCFSZ	B,F			;Hozzáad 1-et B memoriaterülethez
	NOP
	MOVFW	B			;Bemozgatja B értékét a munkatergiszterbe
	XORLW	B'01101111'		;XOR kapcsolatba hozza a 9-es számmal
	BTFSS	STATUS,Z			;Ha egyezik a STATUS,Z 1-be billen
	GOTO	KIIR			;Ha nem igaz Tovább a KIIR szubrutinra
	CLRW
	GOTO	PROGRAM
;-------------------------------------------------
KIIR
	CALL	TÁBLA			;Behívja TÁBLÁT
	NOP
	MOVWF	PORTB			;Táblából visszatérés utána kiírja munkaregiszter tartalmát PORTB-re
	CALL	TIME
	GOTO	PROGRAM
;------------------------------------------------
NEMNYOM
	CLRF	PORTB
	GOTO	PROGRAM
;------------------------------------------------
TÁBLA
	ADDWF	PCL,F
	RETLW	B'00111111'
	RETLW	B'00000110'
	RETLW	B'01011011'
	RETLW	B'01001111'
	RETLW	B'01100110'
	RETLW	B'01101101'
	RETLW	B'01111101'
	RETLW	B'00000111'
	RETLW	B'01111111'
	RETLW	B'01101111'
;------------------------------------------------
TIME
	MOVLW	D'20'
	MOVWF	A
H	DECFSZ	A,F
	GOTO	H
	RETURN
;-----------------------------------------------

	END