	LIST P=16F627
	#INCLUDE "P16F627.INC"
	__CONFIG _HS_OSC&_WDT_OFF&_PWRTE_ON&_CP_OFF&_MCLRE_OFF

	CBLOCK 0x20
		SZAMLALO
		W_TEMP
		STATUS_TEMP
	ENDC

	ORG		0x0000
	GOTO	START
   
	ORG		0x0004
	MOVWF	W_TEMP		; Lényeges regiszterek mentése
	SWAPF	STATUS, W	; Itt nem lenne rá szükség
	MOVWF	STATUS_TEMP	; De szokjuk meg, hogy kell

ISR
	BCF		INTCON, T0IF
	DECFSZ	SZAMLALO, F	; Csökkentjük a SZAMLALO-t, ha elért nullára, átugorjuk a GOTO-t
	GOTO	ISR_VEGE
	MOVLW	d'25'
	MOVWF	SZAMLALO	; 25-öt töltünk W-be
	COMF	PORTB, F	; PORTB összes bitjét ellentétesre fordítjuk
	NOP
ISR_VEGE

	SWAPF	STATUS_TEMP, W	; Lényeges regiszterek visszaállítása
	MOVWF	STATUS
	SWAPF	W_TEMP, F
	SWAPF	W_TEMP, W
	RETFIE

START:
	CLRF	PORTB
	BSF		STATUS, RP0	; Bank 1
	CLRF	TRISA		; PORTA összes láb kimenet
	CLRF	TRISB		; PORTB összes láb kimenet
	MOVLW	b'10000110'	; PORTB felhúzók letiltva, Timer0 a belső órajelről fut, Prescaler a Timer0-hoz hozzárendelve, 1:128 prescaler beállítva
	MOVWF	OPTION_REG	
	BCF		STATUS, RP0	; Bank 0
	MOVLW	d'25'
	MOVWF	SZAMLALO	; 25-öt töltünk SZAMLALO-ba
	CLRF	INTCON		; Intcon regiszter törlése, bármi van benne
	BSF		INTCON, T0IE	; Timer0 megszakítás engedélyezése
	BSF		INTCON, GIE		; Globális megszakítás engedélyezés

VISSZA
	GOTO	VISSZA		; Végtelen ciklus


   END 