		list	b=4
		list	p=18f2550
		#include p18f2550.inc

	CONFIG PLLDIV = 5, CPUDIV = OSC1_PLL2, USBDIV = 2                   ; CONFIG1L
;	config FOSC = HSPLL_HS, FCMEM = OFF, IESO = OFF                     ; CONFIG1H */
	config FOSC = HSPLL_HS,  IESO = OFF                     			; CONFIG1H
	config PWRT = ON, BOR = OFF, BORV = 3, VREGEN = ON                  ; CONFIG2L
	config WDT = OFF, WDTPS = 32768                                     ; CONFIG2H
	config MCLRE = OFF, LPT1OSC = OFF, PBADEN = OFF, CCP2MX = OFF       ; CONFIG3H
;	config STVREN = ON, LVP = OFF, ICPRT = OFF, XINST = OFF, DEBUG = OFF; CONFIG4L */
	config STVREN = ON, LVP = OFF, XINST = OFF, DEBUG = OFF				; CONFIG4L
	config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF                   ; CONFIG5L
	config CPB = OFF, CPD = OFF                                         ; CONFIG5H
	config WRT0 = ON, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF                ; CONFIG6L
	config WRTB = ON, WRTC = OFF, WRTD = OFF                            ; CONFIG6H
	config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF           ; CONFIG7L
	config EBTRB = OFF                                                  ; CONFIG7H


      #DEFINE	NULLA	b'00000011'
      #DEFINE	EGY		b'10011111'
      #DEFINE	KETTO	b'00100101'
      #DEFINE	HAROM	b'00001101'
      #DEFINE	NEGY	b'10011001'
      #DEFINE	OT		b'01001001'
      #DEFINE	HAT		b'01000001'
      #DEFINE	HET		b'00011111'
      #DEFINE	NYOLC	b'00000001'
      #DEFINE	KILENC	b'00001001'
      ;-------------------------------------------------------------
      #DEFINE	K1		PORTC,0
      #DEFINE	K2		PORTC,1
      #DEFINE	K3		PORTC,7
      #DEFINE	K4		PORTC,6

      CBLOCK  0x000
              SZAM1
              SZAM2
              SZAM3
              TEMP
		ENDC

	ORG		0x0000
		bra		KEZD

	ORG		0x0008
;						A megszakítás belépési pontja

	ORG		0x0018
;						A megszakítás belépési pontja

KEZD:
;		BANKSEL	TRISB				; Nem kell, ld. ACCESS bank leírása
		MOVLW	b'00000000'
		MOVWF	TRISB,ACCESS		; Az ACCESS -t nem kötelező kiírni...
		MOVLW	b'00001111'
		MOVWF	ADCON1,ACCESS
;		BANKSEL	TRISC
		MOVLW	b'00111100'
		MOVWF	TRISC,ACCESS

;		BANKSEL	PORTB
;		CLRF	PORTB,ACCESS		; Felesleges, ugyan ezt törli a clrf LATB
		CLRF	LATB,ACCESS
;		CLRF	PORTC,ACCESS		; Felesleges, ugyan ezt törli a clrf LATC
		CLRF	LATC,ACCESS
		BSF		K1
		BSF		K2
		BSF		K3
		BSF		K4

ELEJE:
		MOVLW	b'00000000'		; 0 -ról indul a számok kijelzése
		MOVWF	TEMP
NOVEL: 
		MOVLW	b'00001010'		; A .10 et már nem jelezzük ki
		XORWF	TEMP,W
		BTFSC	STATUS,Z
		CLRF	TEMP   			; Helyette ismét 0 -t jelzünk ki
		RCALL	TABLAZAT		; Átkódoljuk a hétszegmenses kijelző mintájára
		MOVWF	LATB			; Kitesszük a portra
		BCF		K1				; Kiválasztjuk a digitet
		RCALL	KESL
		BSF		K1				; Letiltjuk a digitet
		INCF	TEMP,F			; Növeljük a számlálót
 		BRA		NOVEL			; Végtelen ciklusban végezzük a kijelzést

;	org		0x0F0

TABLAZAT:
		RLNCF	TEMP,w			; Duplázzuk a számot, mert a RETLW 2 byte -ot foglal
		ADDWF	PCL,F
TblKezd:
		RETLW   NULLA
		RETLW   EGY
		RETLW   KETTO
		RETLW   HAROM
		RETLW   NEGY
		RETLW   OT
		RETLW   HAT
		RETLW   HET
 		RETLW   NYOLC
		RETLW   KILENC
TblVege:

	if high(TblVege)!=high(TblKezd)
		error	"TABLAZAT átlóg a 256 byte-os határon"
	endif

KESL:      
		MOVLW	.255		; Decimális szám megadása
		MOVWF	SZAM1
		MOVLW	.150
		MOVWF	SZAM2
		MOVLW	.10
		MOVWF	SZAM3
CIKLUS:
		DECFSZ	SZAM1,f
		BRA		CIKLUS
		DECFSZ	SZAM2,f
		BRA		CIKLUS
		DECFSZ	SZAM3,f
		BRA		CIKLUS
		RETURN

		END