	LIST P=16F628A
	#INCLUDE <P16F628A.INC>
	__CONFIG _CP_OFF&_HS_OSC&_WDT_OFF&_LVP_OFF&_MCLRE_ON&_PWRTE_ON 	; kvarc 20MHZ
	CBLOCK	0x20
	ALLAPOT
	EGYMS
	W_SAVE
	STATUS_SAVE
	SERVOPOZICIO
	SERVOPOZICIO_TEMP
	KESLELTETES
	T1
	T2
	T3
	ENDC

	ORG 0
	GOTO MAIN

	ORG 4
	MOVWF W_SAVE		; STATUS ÉS W ELMENTÉSE
	SWAPF STATUS, W
	MOVWF STATUS_SAVE
	BCF STATUS, RP0		;BANK0
	BCF STATUS, RP1		;-||-
	BTFSC INTCON, T0IF	; MEGSZAKíTÁS T0 MIATT HA NEM AKKOR KIHAGYJA A KÖV UTASíTÁST
	GOTO T0MEGSZAK		; T0 INT ESETÉN IDE UGRIK
	GOTO INTVEGE		; VISSZATÖLTI A W, STATUS REGEKET ÉS KILÉP AZ INT BŐL


T0MEGSZAK
	BTFSS ALLAPOT, 0	; HA 1 AKKOR MASODIK SZAKASZ
	GOTO ELSOSZAKASZ	; KÜLÖNBEN 1. SZAKASZ
	GOTO MASODIKSZAKASZ

ELSOSZAKASZ
	BSF PORTB, 0
	MOVF EGYMS, F
	BTFSS STATUS, Z
	GOTO ELSO_SZAKASZ_CSOKKENT_EGYMS
	MOVF SERVOPOZICIO_TEMP, F
	BTFSS STATUS, Z
	GOTO ELSO_SZAKASZ_CSOKKENT_SERVO
	BSF ALLAPOT, 0
	MOVLW D'10'
	MOVWF EGYMS
	MOVFW SERVOPOZICIO
	MOVWF SERVOPOZICIO_TEMP
	GOTO T0INTVEGE
MASODIKSZAKASZ
	BCF PORTB, 0
	MOVF KESLELTETES, F
	BTFSS STATUS, Z
	GOTO MASODIK_SZAKASZ_CSOKKENTES
	BCF PORTB, 0
	MOVLW D'140'
	MOVWF KESLELTETES
	MOVFW SERVOPOZICIO_TEMP
	SUBWF KESLELTETES, F
	BCF ALLAPOT, 0
	GOTO T0INTVEGE
MASODIK_SZAKASZ_CSOKKENTES
	DECF KESLELTETES, F
	GOTO T0INTVEGE

ELSO_SZAKASZ_CSOKKENT_SERVO
	DECF SERVOPOZICIO_TEMP, F
	GOTO T0INTVEGE
ELSO_SZAKASZ_CSOKKENT_EGYMS
	DECF EGYMS, F
	GOTO T0INTVEGE

T0INTVEGE
	BCF INTCON, T0IF
	GOTO INTVEGE
INTVEGE
	SWAPF STATUS_SAVE, W
	MOVWF STATUS
	SWAPF W_SAVE, 1
	SWAPF W_SAVE, 0
	RETFIE

MAIN
	BSF STATUS, RP0
	MOVLW B'11110110'
	MOVWF PORTB
	MOVLW B'10000000'
	MOVWF OPTION_REG
	MOVLW B'10100000'
	MOVWF INTCON
	BCF STATUS, RP0
	MOVLW D'10'
	MOVWF EGYMS
	MOVLW D'5'
	MOVWF SERVOPOZICIO
MAIN2
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	BTFSS PORTB, 1
	GOTO MAIN3
	BSF PORTB, 3
	INCF SERVOPOZICIO, F
	CALL DELAY
	BCF PORTB, 3
	GOTO MAIN2
MAIN3
	BTFSS PORTB, 2
	GOTO MAIN2
	BSF PORTB, 3
	DECF SERVOPOZICIO, F
	CALL DELAY
	BCF PORTB, 3
	GOTO MAIN2

DELAY
	MOVLW	d'80'
	MOVWF	T1
DEL
	MOVLW	d'80'
	MOVWF	T2
DEL1
	MOVLW	d'125'
	MOVWF	T3
DEL2
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	DECFSZ	T3,f
	GOTO	DEL2
	DECFSZ	T2,f
	GOTO	DEL1
	DECFSZ	T1,f
	GOTO	DEL
	RETURN




	END