; #=#=#=#=#=#=#=#=#= PROJECT  SZINKRONIZÁLT UTOBLOKKOL =#=#=#=#=#=#=#=#=#=#=#
;                            TRANZISZTOROS
;                 SZINKRONIZÁLT MAGYAR LASER+ISMERETLEN 
;                         TOVÁBB BLOKKOLÁS 5SEC-IG
;                   BOKKOLÁS KI/BE KAPCSOLHATÓ(CSAK DETEKTOR ÜZEMMÓD)
;                    ISMERETLEN KI/BE KAPCSOLHATÓ 
;                     GOMBNYOMÁSRA F3 JEL KIADÁS
; PIC12F629 running at 20MHz  

	processor pic12F629
	#include "p12f629.inc"
__CONFIG _HS_OSC & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _CP_OFF & _MCLRE_OFF
;--------------------------------------------------------------

#define _BLOCK       GPIO,0 ;KIMENET   FET VEZERLES
#define _INP         GPIO,2 ;SYNC+DETEKTOR     
#define _OUT         GPIO,1 ;KIMENET   LED
#define _SYNC        GPIO,2 ;SZINKRON KIMENET
;--------------------------------------------------------------
INITRISIO         = b'00001100' 
ENINPUT           = b'11010000' ;ENABLE INTERUPT GPIO2 LOW (INTCON)
DISINT            = b'00000000' ;DISABLE  INTERUPT
INIOPTION         = b'10010111' ;GPIO2 LEFUTO ÉL 
ENTMR1            = b'00011101' ;0.BIT=1 ENABLE TMR1, (1/2 ELOOSZTO)
DISTMR1           = b'00001100' ;DISABLE TMR1
KISYNC            = b'00001000' ;SYNC=KIMENET
BESYNC            = b'00001100' ;SYNC=BEMENET

SCS103L           = 0X06   ;3200PPS       312,5  uSEC   TMR1=030D 
SCS103H           = 0X03   ;1/2x3200PPS   625    uSEC   TMR1=061B                               
 
FAMA2L            = 0X06   ;238,4PPS  4.194630 mSEC TMR1=28F5 
FAMA2H            = 0X29
       
FAMA3L            = 0XCE   ;200PPS    5.000 mSEC  TMR1=30D3 
FAMA3H            = 0X30

SCS101L          = 0X1C    ;125PPS    8.000 mSEC  TMR1=4E20
SCS101H          = 0X4E 

;ISMERETLEN LÉZER 213uSEC-13mSEC  4694PPS-77PPS  TMR1=0215-8000
       
;---------------------------------------------------------------

NALO        	= H'20'
NAHI	        = H'21'
NBLO  	        = H'22'
NBHI	        = H'23'
IDO1            = H'24'
IDO2            = H'25'
BLJELZO         = H'26'
VIZS            = H'27'

W1L             = H'29'
W1H             = H'28'
W2L             = H'2A'
W2H             = H'2B'

KES1            = H'2C' 
BEM1            = H'2D'
BEM2            = H'2E'
BEM3            = H'2F'
BEM4            = H'30'
BEM5            = H'31'

BLOKK           = H'35'
ISMBLOKKL       = H'37'
ISMBLOKKH       = H'36'
ISMEREDL        = H'3B'
ISMEREDH        = H'3A'
KIBE            = H'3C'
BUTL            = H'3D'
BUTH            = H'3E'
BUTL1           = H'3F'
BUTH1           = H'40'
ELELOVES        = H'41'
;---------------------------------------------------------------------------------------
ORG  0X2100
         DE     0X01               ;EPROM-BA 01 0-ÁS CÍMRE BLOKKOL NORMÁL
ORG  0X00
         GOTO   INIC
         GOTO   INIC
         GOTO   INIC
         GOTO   INIC     
;------------------------------------------------------------------------------------
                               ;MEGSZAKITAS KEZDETE
         BTFSC INTCON,INTF
         GOTO  BEIMP             ;LEFUTO EL ESTEN      
         RETFIE
BEIMP
         BSF     STATUS,RP0       ;SYNC=KIMENET
         MOVLW   KISYNC
         MOVWF   TRISIO           ;SZINKRONHOZ 
         BCF     STATUS,RP0 

         BCF     _SYNC            ;SYNC KIMENET L-BE 
                                  ; SZINKRON!!!!!!!!!!     

         BTFSC   BLOKK,0
         GOTO    BLOKKOL_SCS 
         BTFSC   BLOKK,1
         GOTO    BLOKKOL_FAMA2         
         BTFSC   BLOKK,2
         GOTO    BLOKKOL_FAMA3
         BTFSC   BLOKK,3
         GOTO    BLOKKOL_SCS1
         BTFSC   BLOKK,4
         GOTO    BLOKKOL_ISMERETLEN        
         GOTO    VIZSGAL
     
;-----------------------------------------------------------------------------------
INIC                           ;INICIALIZALAS         

         CLRF    STATUS
         CLRF    WPU               ;FELHUZO ELLENALLASOK KI
         CLRF    GPIO 
         CLRF    TMR0
         MOVLW   0X07              ;KOMPARATOR KI
         MOVWF   CMCON
 
         BSF     STATUS,RP0        ;BANK 1 
         MOVLW   INIOPTION         
         OPTION    
 	     MOVLW   INITRISIO         
         MOVWF   TRISIO                   
         BCF     STATUS,RP0         ;BANK 0   

         MOVLW   DISINT             ;DISABLE INTERRUPT 
         MOVWF   INTCON
         CALL    REPROM        ;CSAK DETEKTOR+ BLOKKOLÁS KI/BE ADAT EPROMBÓL
         CALL    PAUSE
     
         BTFSS  _INP
         GOTO   KIBEKAPCS           ;CSAK DETEKTOR+ BLOKKOLÁS KI/BE    
         
;--------------------------------------------------------
TEST
         BSF  _OUT            ;KIMENET TESZT 400 uSEC VILAGIT +HANG        
	     CALL PAUSE
         BCF  _OUT                 ;LED KI

         MOVF    KIBE,W

	     XORLW   00H
	     BTFSC   STATUS,Z
	     GOTO    EGY1
	
	     MOVF    KIBE,W
	     XORLW   01H
	     BTFSC   STATUS,Z
	     GOTO    KETTO1
	
	     MOVF    KIBE,W
	     XORLW   02H
 	     BTFSC   STATUS,Z
	     GOTO    HAROM1
EGY1                                ;ÜZEMMÓD KIJELZÉS 
         CALL    PAUSE
         CALL    CSIPPAN
         CALL    PAUSE              ; 1 CSAK DETEKTOR 
         GOTO    START
KETTO1
         CALL    PAUSE
         CALL    CSIPPAN
         CALL    PAUSE
         CALL    CSIPPAN            ; 2 NORMÁL BLOKKOLÁS
         CALL    PAUSE 
         GOTO    START
HAROM1
         CALL    PAUSE
         CALL    CSIPPAN
         CALL    PAUSE              ; 3 BLOKKOL+ ISMERETLEN
         CALL    CSIPPAN
         CALL    PAUSE
         CALL    CSIPPAN
         CALL    PAUSE

START        
         BSF     STATUS,RP0        ;SYNC=BEMENET  
         MOVLW   BESYNC
         MOVWF   TRISIO
         BCF     STATUS,RP0
         CALL    PAUSE
         
         MOVLW   ENINPUT            ;ENABLE INTERRUPT (BEMENET LEFUTO EL)
         MOVWF   INTCON
;-----------------------------------------------------------------------------------
FOPROGRAM
        BCF    _OUT                 ;LED KI        
        CLRF    BEM1
        CLRF    BEM2
        CLRF    BEM3
        CLRF    BEM4
        CLRF    BEM5                
        CLRF    BLOKK         
        CLRF    VIZS 
       
        MOVLW  0X0C
        MOVWF  NALO                  ;2 PERCENKÉNT CSIPPAN + VILLAN
	    CLRF   NAHI
	    CLRF   NBLO                  ;121 SEC
	    CLRF   NBHI        	    
DELOOPSEC
	    DECFSZ  NBLO
	    GOTO    DELOOPSEC
	    DECFSZ  NBHI
	    GOTO    DELOOPSEC
	    DECFSZ  NAHI
	    GOTO    DELOOPSEC     
        DECFSZ  NALO
	    GOTO    DELOOPSEC

        BSF    _OUT                   
        CLRF   NALO                   ;40 mSEC HANG + VILLAN 
        CLRF   NAHI
DELOOPSEC1
	    DECFSZ  NALO
	    GOTO    DELOOPSEC1
        DECFSZ  NAHI
	    GOTO    DELOOPSEC1	         
        GOTO    FOPROGRAM
;-----------------------------------------------------------------------------------
VIZSGAL                            ;MEGSZAKÍTÁS UTÁNI IMPULZUS VIZSGÁLAT
        BTFSC  VIZS,0
        GOTO   IMPHOSSZ

        BSF    VIZS,0 
        CLRF   TMR1L
        CLRF   TMR1H
        MOVLW  ENTMR1             ;TMR1 ENABLE
        MOVWF  T1CON         
VLOOP0 
        BTFSS  TMR1L,7            ;50 uSEC MULVA
        GOTO   VLOOP0
 
        BSF     STATUS,RP0        ;SYNC=BEMENET   
        MOVLW   BESYNC
        MOVWF   TRISIO
        BCF     STATUS,RP0       
VLOOP1        
        BTFSS  TMR1H,1           
        GOTO   VLOOP1             ;150 uSEC MULVA        
        BTFSS  _INP               ;  A BEMENETNEK "H"-NAK KELL LENNI
        GOTO   TOLONG             ;HA TUL HOSSZU

        MOVLW  ENINPUT            ;ENABLE INTERRUPT (BEMENET LEFUTO EL)
        MOVWF  INTCON        
VLOOP2        
        BTFSC  TMR1H,7            ;13 MSEC-EN BELUL JONNI KELL
        GOTO   LEJART             ;  A KOVETKEZO IMPULZUSNAK       
        GOTO   VLOOP2       
;--------------------------------------------------------
IMPHOSSZ       
        CLRF   VIZS
        MOVLW  DISTMR1              ;TMR1 DISABLE
        MOVWF  T1CON

        MOVLW  0X52                 
        MOVWF  NALO
IMPLOOP
        DECFSZ NALO                 ;50 uSEC MULVA
        GOTO   IMPLOOP

        BSF    STATUS,RP0           ;SYNC=BEMENET
        MOVLW  BESYNC
        MOVWF  TRISIO
        BCF    STATUS,RP0            
;--------------------------------------------------------         
IMP1
        MOVF   TMR1L,W             ;IMPHOSSZ =SCS103 ?(030D)        
        MOVWF  W1L
        MOVF   TMR1H,W
        MOVWF  W1H

        MOVF  W1L,W
	    SUBLW 0X03
	    MOVF  W1H,W
	    BTFSS STATUS,C
	    INCFSZ W1H,W
	    SUBLW 03H
	    BTFSC STATUS,C
	    GOTO  IMP11
	
    	MOVLW 03H
	    SUBWF W1H,W
	    MOVLW 17H
	    BTFSC STATUS,Z
	    SUBWF W1L,W
	    BTFSS STATUS,C
	    GOTO  SCS103
;--------------------------------------------------------         
IMP11
        MOVF   TMR1L,W             ;IMPHOSSZ =1/2xSCS103 ?(061B)        
        MOVWF  W1L
        MOVF   TMR1H,W
        MOVWF  W1H

        MOVF  W1L,W
	    SUBLW 0X11
	    MOVF  W1H,W
	    BTFSS STATUS,C
	    INCFSZ W1H,W
	    SUBLW 06H
	    BTFSC STATUS,C
	    GOTO  IMP2
	
    	MOVLW 06H
	    SUBWF W1H,W
	    MOVLW 25H
	    BTFSC STATUS,Z
	    SUBWF W1L,W
	    BTFSS STATUS,C
	    GOTO  SCS103
;--------------------------------------------------------
IMP2
        MOVF   TMR1L,W              ;IMPHOSSZ =FAMA2 ?(28F5)
        MOVWF  W1L
        MOVF   TMR1H,W              
        MOVWF  W1H

        MOVF   W1L,w
	    SUBLW  0XEB
	    MOVF   W1H,W
	    BTFSS  STATUS,C
	    INCFSZ W1H,W
	    SUBLW  0X28
	    BTFSC  STATUS,C
	    GOTO   IMP3

	    MOVLW  0X28
	    SUBWF  W1H,W
	    MOVLW  0XFF
	    BTFSC  STATUS,Z
	    SUBWF  W1L,W
	    BTFSS  STATUS,C
	    GOTO   FAMA2
;--------------------------------------------------------
IMP3                                  
        MOVF   TMR1L,W              ;IMPHOSSZ = FAMA3(30D3)
        MOVWF  W1L
        MOVF   TMR1H,W
        MOVWF  W1H

        MOVF   W1L,W
	    SUBLW  0XC9
	    MOVF   W1H,W
	    BTFSS  STATUS,C
	    INCFSZ W1H,W
	    SUBLW  0X30
	    BTFSC  STATUS,C
	    GOTO   IMP4
	
	    MOVLW  0X30
	    SUBWF  W1H,W
	    MOVLW  0XDD
	    BTFSC  STATUS,Z
	    SUBWF  W1L,W
	    BTFSS  STATUS,C
	    GOTO   FAMA3
;--------------------------------------------------------
IMP4
        MOVF   TMR1L,W              ;IMPHOSSZ = SCS101?(4E20)
        MOVWF  W1L
        MOVF   TMR1H,W
        MOVWF  W1H

        MOVF   W1L,W
	    SUBLW  16H
	    MOVF   W1H,W
	    BTFSS  STATUS,C
	    INCFSZ W1H,W
	    SUBLW  4EH
	    BTFSC  STATUS,C
	    GOTO   ISMERETLEN
	
	    MOVLW  4EH
	    SUBWF  W1H,W
	    MOVLW  0X2A
	    BTFSC  STATUS,Z
	    SUBWF  W1L,W
	    BTFSS  STATUS,C
	    GOTO   SCS101
        GOTO   ISMERETLEN	   
;--------------------------------------------------------
SCS103
	    INCF  BEM1                     ;312,5 uSEC
	    BTFSC BEM1,2                   ;625   uSEC 
        GOTO  BLOKKOL_SCSE
        GOTO  VARIMP1
FAMA2
        INCF  BEM2                     ;4.1946 mSEC
	    BTFSC BEM2,2                    
        GOTO  BLOKKOL_FAMA2E                   
        GOTO  VARIMP2
FAMA3   
        INCF  BEM3                     ;5.000 mSEC
	    BTFSC BEM3,2
        GOTO  BLOKKOL_FAMA3E
        GOTO  VARIMP2
SCS101
	    INCF  BEM4                     ;8 mSEC
	    BTFSC BEM4,2                   
        GOTO  BLOKKOL_SCS1E
        GOTO  VARIMP3
;--------------------------------------------------------
VARIMP1
       BCF    INTCON,INTF 
       MOVLW  ENINPUT             ;ENABLE INTERRUPT 
       MOVWF  INTCON
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON
VARLOOP1        
       BTFSC  TMR1H,3             ;820 uSEC-IG VÁR 
       GOTO   LEJART            
       GOTO   VARLOOP1       
;--------------------------------------------------------
VARIMP2
       BCF    INTCON,INTF 
       MOVLW  ENINPUT             ;ENABLE INTERRUPT 
       MOVWF  INTCON 
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON
VARLOOP2               
       BTFSC  TMR1H,6             ;6 MSEC-IG VÁR
       GOTO   LEJART         
       GOTO   VARLOOP2
;--------------------------------------------------------
VARIMP3
       BCF    INTCON,INTF 
       MOVLW  ENINPUT             ;ENABLE INTERRUPT 
       MOVWF  INTCON 
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON
VARLOOP3               
       BTFSC  TMR1H,7             ;13 MSEC-IG VÁR
       GOTO   LEJART         
       GOTO   VARLOOP3
;--------------------------------------------------------
TOLONG
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON
VLOOP3        
       BTFSC  TMR1H,7            ;13 MSEC KESLELETETES          
       GOTO   LEJART
       BTFSC  _INP               ;KIUGRIK "H"ESTEN
       GOTO   LEJART     
       GOTO   VLOOP3
;--------------------------------------------------
LEJART
       BSF     STATUS,RP0         ;SYNC=BEMENET
       MOVLW   BESYNC
       MOVWF   TRISIO
       BCF     STATUS,RP0
   
       BTFSS  _INP                ;HA MEG MINDIG "L"
       GOTO   KEZIBLOKK      
;--------------------------------------------------     
STOP          
        MOVLW   DISINT             ;DISABLE INTERRUPT 
        MOVWF   INTCON    
        BCF     _OUT               ;LED KI
        CLRF    BLOKK
        CLRF    BEM1
        CLRF    BEM2
        CLRF    BEM3
        CLRF    BEM4
        CLRF    BEM5        
        BSF     STATUS,RP0        ;SYNC=BEMENET
        MOVLW   BESYNC
        MOVWF   TRISIO
        BCF     STATUS,RP0        
        
        MOVLW  ENINPUT           ;ENABLE INTERRUPT (BEMENET LEFUTO EL)
        MOVWF  INTCON
        GOTO   FOPROGRAM 
;--------------------------------------------------------
KEZIBLOKK
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON
KLOOP0        
       BTFSC  TMR1H,7             ;13 MSEC KESLELETETES          
       GOTO   TESZTER
       BTFSC  _INP                ;KIUGRIK "H"ESTEN
       GOTO   STOP  
       GOTO   KLOOP0
TESZTER
        MOVLW   0XFF
 	    MOVWF   NBHI
	    MOVLW   03H
	    MOVWF   NBLO
        BSF    _OUT
TESTLOOP        
        MOVLW   21H
 	    MOVWF   NAHI
	    MOVLW   74H
	    MOVWF   NALO
TESTDELOOP1                
	    DECFSZ  NALO
	    GOTO    TESTDELOOP1       ;FAMA3 JEL KISUGÁRZÁS 200PPS  
	    DECFSZ  NAHI
	    GOTO    TESTDELOOP1
        NOP       
        NOP

        BSF     _BLOCK            ;5 SEC-IG
        BCF     _BLOCK

        DECFSZ   NBHI
        GOTO     TESTLOOP
        DECFSZ   NBLO
        GOTO     TESTLOOP
        GOTO     STOP
;--------------------------------------------------------
;********************************************************
;--------------------------------------------------------
BLOKKOL_SCSE                       ;SCS 102 103 BLOKKOLÁSA
       BTFSC KIBE,1
       GOTO  TOVSCS        

       BTFSS KIBE,0
       GOTO  CSAKDET 
TOVSCS                      
       BSF    BLOKK,0
       BSF    _OUT
       MOVLW  ENINPUT             ;ENABLE INTERRUPT (BEMENET LEFUTO EL)
       MOVWF  INTCON
              
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON
SCLOOP 
       BTFSS  TMR1L,7             ;53 uSEC MULVA
       GOTO   SCLOOP
 
       BSF     STATUS,RP0         ;SYNC=BEMENET   
       MOVLW   BESYNC
       MOVWF   TRISIO
       BCF     STATUS,RP0         
BSCS        
       BTFSC  TMR1H,3              ;820 uSEC-IG VÁR IMPULZUSRA        
       GOTO   TBLOKKOL_IDSCS   
       GOTO   BSCS

BLOKKOL_SCS
       MOVLW  02H                  
 	   MOVWF  NAHI
	   MOVLW  0XE8  ;EZT KELLL VÁLTOZTATNI               
	   MOVWF  NALO

BLOKKOL_SCS_W                
       DECFSZ NALO
	   GOTO  BLOKKOL_SCS_W       ;IDŐMÉRÉS 297,5 uSEC  (312,5uSEC)
	   DECFSZ NAHI
	   GOTO   BLOKKOL_SCS_W
       NOP
 
IMPKIAD_SCS
       CALL   IMPKIADV
       CALL   IMPKIAD
       GOTO   BLOKKOL_SCSE
;-------------------------------------------------------- 
TBLOKKOL_IDSCS                  ;IDŐZÍTÉS TOVÁBB BLOKKOLÁSHOZ                                 
       MOVLW  01H             
 	   MOVWF  NAHI              ;1250 uSEC-RE KEREKÍT
	   MOVLW  0XBB  ;EZT KELLL VÁLTOZTATNI  
	   MOVWF  NALO
LOOPIDSCS        
       DECFSZ NALO
       GOTO   LOOPIDSCS
       DECFSZ NAHI
       GOTO   LOOPIDSCS
          
       GOTO   TBLOKKOL_SCS
;--------------------------------------------------------
BLOKKOL_FAMA2E                   ;FAMA2 BLOKKOLÁSA
       BTFSC KIBE,1
       GOTO  TOVF2

       BTFSS KIBE,0
       GOTO  CSAKDET 
TOVF2
       BSF    BLOKK,1
       BSF    _OUT
       MOVLW  ENINPUT             ;ENABLE INTERRUPT (BEMENET LEFUTO EL)
       MOVWF  INTCON
                  
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON
F2LOOP 
       BTFSS  TMR1L,7             ;53 uSEC MULVA
       GOTO   F2LOOP 
       BSF     STATUS,RP0         ;SYNC=BEMENET   
       MOVLW   BESYNC
       MOVWF   TRISIO
       BCF     STATUS,RP0

BFAMA2        
       BTFSC  TMR1H,6             ;6 MSEC-IG VÁR IMPULZUSRA        
       GOTO   TBLOKKOL_IDF2    
       GOTO   BFAMA2
 
BLOKKOL_FAMA2
       MOVLW  0X1C               
 	   MOVWF  NAHI
	   MOVLW  0X1C  ;EZT KELLL VÁLTOZTATNI              
	   MOVWF  NALO

BLOKKOL_FAMA2_W       
       DECFSZ NALO
	   GOTO   BLOKKOL_FAMA2_W       ;IDŐMÉRÉS 4179.5 uSEC (4.1946 mSEC)
	   DECFSZ NAHI
	   GOTO   BLOKKOL_FAMA2_W       
      
	   GOTO   IMPKIAD_FAMA2
       GOTO   BLOKKOL_FAMA2_W
       NOP 
 
IMPKIAD_FAMA2
       CALL   IMPKIADV
       CALL   IMPKIAD
       GOTO   BLOKKOL_FAMA2E
;-------------------------------------------------------- 
TBLOKKOL_IDF2                     ;IDŐZÍTÉS TOVÁBB BLOKKOLÁSHOZ 
       MOVLW  0X0C
 	   MOVWF  NAHI              ;4.1946 mSEC-RE KEREKÍT 
	   MOVLW  0XF3  ;EZT KELLL VÁLTOZTATNI                 
	   MOVWF  NALO
LOOPIDF2        
       DECFSZ NALO
       GOTO   LOOPIDF2
       DECFSZ NAHI
       GOTO   LOOPIDF2
       NOP
       NOP         
       GOTO   TBLOKKOL_F2
;--------------------------------------------------------
BLOKKOL_FAMA3E                    ;FAMA3 BLOKKOLÁSA
       BTFSC KIBE,1
       GOTO  TOVF3

       BTFSS  KIBE,0
       GOTO   CSAKDET
TOVF3
       BSF    BLOKK,2
       BSF    _OUT
       MOVLW  ENINPUT             ;ENABLE INTERRUPT (BEMENET LEFUTO EL)
       MOVWF  INTCON
             
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON
F3LOOP 
       BTFSS  TMR1L,7             ;53 uSEC MULVA
       GOTO   F3LOOP 
       BSF     STATUS,RP0         ;SYNC=BEMENET   
       MOVLW   BESYNC
       MOVWF   TRISIO
       BCF     STATUS,RP0

BFAMA3        
       BTFSC  TMR1H,6             ;6 MSEC-IG VÁR IMPULZUSRA        
       GOTO   TBLOKKOL_ID_F3     
       GOTO   BFAMA3
BLOKKOL_FAMA3
       MOVLW  0X21                
 	   MOVWF  NAHI
	   MOVLW  0X58    ;EZT KELLL VÁLTOZTATNI
	   MOVWF  NALO

BLOKKOL_FAMA3_W                
       DECFSZ NALO
	   GOTO   BLOKKOL_FAMA3_W     ;IDŐMÉRÉS 4985.5 uSEC  (5.000 mSEC)*******
	   DECFSZ NAHI
	   GOTO   BLOKKOL_FAMA3_W      

IMPKIAD_FAMA3
       CALL   IMPKIADV
       CALL   IMPKIAD
       GOTO   BLOKKOL_FAMA3E
;--------------------------------------------------------
TBLOKKOL_ID_F3                    ;IDŐZÍTÉS TOVÁBB BLOKKOLÁSHOZ 
       MOVLW  0X17
 	   MOVWF  NAHI                ;5mSEC-RE KEREKÍT
	   MOVLW  0X67   ;EZT KELLL VÁLTOZTATNI        
	   MOVWF  NALO
LOOPIDF3        
       DECFSZ NALO
       GOTO   LOOPIDF3
       DECFSZ NAHI
       GOTO   LOOPIDF3
       NOP
       NOP       
       GOTO   TBLOKKOL_F3
;--------------------------------------------------------
BLOKKOL_SCS1E                       ;SCS101 BLOKKOLÁSA
       BTFSC KIBE,1
       GOTO  TOVSC1

       BTFSS KIBE,0
       GOTO  CSAKDET                       
TOVSC1
       BSF    BLOKK,3
       BSF    _OUT
       MOVLW  ENINPUT             ;ENABLE INTERRUPT (BEMENET LEFUTO EL)
       MOVWF  INTCON
              
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON
SC1LOOP 
       BTFSS  TMR1L,7             ;53 uSEC MULVA
       GOTO   SC1LOOP
 
       BSF     STATUS,RP0         ;SYNC=BEMENET   
       MOVLW   BESYNC
       MOVWF   TRISIO
       BCF     STATUS,RP0         
BSCS1        
       BTFSC  TMR1H,7              ;13 mSEC-IG VÁR IMPULZUSRA        
       GOTO   TBLOKKOL_IDSCS1   
       GOTO   BSCS1

BLOKKOL_SCS1
       MOVLW  34H                  
 	   MOVWF  NAHI
	   MOVLW  0XD2   ;EZT KELLL VÁLTOZTATNI  
	   MOVWF  NALO

BLOKKOL_SCS1_W                
       DECFSZ NALO
	   GOTO  BLOKKOL_SCS1_W       ;IDŐMÉRÉS 7991,5 uSEC (8,000mSEC)
	   DECFSZ NAHI
	   GOTO   BLOKKOL_SCS1_W
       NOP         
       NOP
 
IMPKIAD_SCS1
       CALL   IMPKIADV
       CALL   IMPKIAD
       GOTO   BLOKKOL_SCS1E
;-------------------------------------------------------- 
TBLOKKOL_IDSCS1                  ;IDŐZÍTÉS TOVÁBB BLOKKOLÁSHOZ                                 
       MOVLW  13H             
 	   MOVWF  NAHI              ;24 mSEC-RE KEREKÍT
	   MOVLW  0XBE  ;EZT KELLL VÁLTOZTATNI
	   MOVWF  NALO
LOOPIDSCS1        
       DECFSZ NALO
       GOTO   LOOPIDSCS1
       DECFSZ NAHI
       GOTO   LOOPIDSCS1      
        
       GOTO   TBLOKKOL_SCS1
;---------------------------------------------------------
;---------------------------------------------------------
ISMERETLEN        
        BTFSC  KIBE,0
        GOTO   LEJART        
        
        MOVF   BEM5,W
        SUBLW  0X00
        BTFSS  STATUS,Z
        GOTO   VOLTMAR

        MOVF   TMR1L,W            ;IMPHOSSZ =ISMERETLEN
        MOVWF  W1L
        MOVWF  ISMEREDL           ;1.IMPULZUS HOSSZ BETÖLT ISMERED-BE
        MOVF   TMR1H,W
        MOVWF  ISMEREDH              
        MOVWF  W1H
                                   ;HA TMR1H<10
        MOVLW 10H
	    SUBWF TMR1H,W
    	BTFSS STATUS,C
	    GOTO  SCSELELOVES
       
        MOVLW  0X38
        MOVWF  ELELOVES
        GOTO   ISMIMP

SCSELELOVES     
        MOVLW  0X42
        MOVWF  ELELOVES             ;SCS103 ESETEN

        GOTO   ISMIMP  
;---------------------------------------------------------
VOLTMAR
        MOVF   TMR1L,W            ;MÁR VOLT ISMERETLEN HOSSZ
        MOVWF  W1L       
        MOVF   TMR1H,W                     
        MOVWF  W1H        

        MOVF   W1L,W            
	    MOVWF  NALO
	    MOVF   W1H,W
	    MOVWF  NAHI
	    MOVLW  0AH               ;W1=W1-10
	    SUBWF  NALO
	    BTFSS  STATUS,C
	    DECF   NAHI
	    MOVF   NALO,W
	    MOVWF  W1L
	    MOVF   NAHI,W
	    MOVWF  W1H

        MOVF   ISMEREDL,W
	    SUBWF  W1L,W              ;HA W1-10 < ISMERED
	    MOVF   ISMEREDH,W
	    BTFSS  STATUS,C
	    INCFSZ ISMEREDH,W
	    SUBWF  W1H,W
	    BTFSS  STATUS,C
	    GOTO   PLUS
 
        GOTO   LEJART
PLUS
        MOVF   TMR1L,W            
        MOVWF  W1L       
        MOVF   TMR1H,W                     
        MOVWF  W1H
 
        MOVF   W1L,W
	    MOVWF  NALO
	    MOVF   W1H,W            
	    MOVWF  NAHI              ;W=W1+10
	    MOVLW  0AH
	    ADDWF  NALO
	    BTFSC  STATUS,C
	    INCF   NAHI
	    MOVF   NALO,W
	    MOVWF  W1L
	    MOVF   NAHI,W
	    MOVWF  W1H

        MOVF   W1L,W
	    SUBWF  ISMEREDL,W
	    MOVF   W1H,W             ;HA W1+10 > ISMERED 
	    BTFSS  STATUS,C
	    INCFSZ W1H,W
	    SUBWF  ISMEREDH,W
	    BTFSS  STATUS,C
	    GOTO   ISMIMP            ;HA OLYAN HOSSZÚ MINT AZ ELŐZŐ
        
        GOTO   LEJART
;---------------------------------------------------------
ISMIMP
        INCF  BEM5                     ;X mSEC
	    BTFSC BEM5,2                   
        GOTO  BLOKKOL_ISMERETLENE
        GOTO  VARIMP3
;---------------------------------------------------------
;*********************************************************
;---------------------------------------------------------
BLOKKOL_ISMERETLENE       
       BTFSS  KIBE,1
       GOTO   CSAKDET
                       
       BSF    BLOKK,4
       BSF    _OUT
;---------------------------------------------------------
       MOVF   ISMEREDL,W      ;EZ LESZ AZ IDŐALAP A BLOKKOLÁSHOZ    
	   MOVWF  NALO
	   MOVF   ISMEREDH,W          ; ISMERED-28H
	   MOVWF  NAHI

	   MOVF   ELELOVES,W          ; ITT KELL AZ ELÉLÖVÉST BEÁLLÍTANI
	   SUBWF  NALO                ; 5uSEC
	   BTFSS  STATUS,C
	   DECF   NAHI
	   MOVF   NALO,W
	   MOVWF  ISMBLOKKL
	   MOVF   NAHI,W
	   MOVWF  ISMBLOKKH 
;---------------------------------------------------------
       MOVLW  ENINPUT             ;ENABLE INTERRUPT (BEMENET LEFUTO EL)
       MOVWF  INTCON
              
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON
ISMLOOP 
       BTFSS  TMR1L,7             ;53 uSEC MULVA
       GOTO   ISMLOOP
 
       BSF     STATUS,RP0         ;SYNC=BEMENET   
       MOVLW   BESYNC
       MOVWF   TRISIO
       BCF     STATUS,RP0         
BISM        
       BTFSC  TMR1H,7              ;13 mSEC-IG VÁR IMPULZUSRA        
       GOTO   STOP   
       GOTO   BISM

BLOKKOL_ISMERETLEN
       CLRF   TMR1L
       CLRF   TMR1H
       MOVLW  ENTMR1              ;TMR1 ENABLE
       MOVWF  T1CON

ISMHUROK
       MOVF   TMR1L,W
       MOVWF  W1L
       MOVF   TMR1H,W
       MOVWF  W1H
	   MOVF   W1L,W
	   SUBWF  ISMBLOKKL,W	   
	   MOVF   W1H,W 
       BTFSS  STATUS,C
	   GOTO   INC
       NOP                       ;MINDIG EGYFORMA IDŐ ALAT FUSSON LE
       NOP
       NOP
       NOP 
INCV      
	   SUBWF  ISMBLOKKH,W
	   BTFSS  STATUS,C
	   GOTO   IMPKIAD_ISMERETLEN

 	   GOTO ISMHUROK
INC
       INCFSZ W1H,W 
       GOTO   INCV

IMPKIAD_ISMERETLEN
       CALL   IMPKIADV            ;1X6 +1X10 IMPULZUS
       CALL   IMPKIAD 
       GOTO   BLOKKOL_ISMERETLENE
;--------------------------------------------------------
IMPKIADV
       BSF    _BLOCK       
       BCF    _BLOCK          ;IMPULZUS CSOMAG SZINKRON BLOKKOLÁSHOZ
       GOTO   IMPF31                 ;ELSŐ FÁZIS
IMPF31
       BSF    _BLOCK                ;5 DB 400/600 IMPULZUS
       BCF    _BLOCK
       GOTO   IMPF32
IMPF32
       BSF    _BLOCK                ;4 uSEC ALATT FUT LE 1X
       BCF    _BLOCK
       GOTO   IMPF33
IMPF33
       BSF    _BLOCK       
       BCF    _BLOCK
       GOTO   IMPF34
IMPF34
       BSF    _BLOCK       
       BCF    _BLOCK
       BSF    _BLOCK       
       BCF    _BLOCK
       RETURN
;--------------------------------------------------------
IMPKIAD
       BSF    _BLOCK       
       BCF    _BLOCK          ;IMPULZUS CSOMAG SZINKRON BLOKKOLÁSHOZ
       BSF    _BLOCK                ;MÁSODIK FÁZIS     
       BCF    _BLOCK
       BSF    _BLOCK                ;10 DB 400/400 IMPULZUS
       BCF    _BLOCK
       BSF    _BLOCK       
       BCF    _BLOCK
       BSF    _BLOCK                ;4 uSEC ALATT FUT LE 1X
       BCF    _BLOCK
       BSF    _BLOCK       
       BCF    _BLOCK
       BSF    _BLOCK       
       BCF    _BLOCK
       BSF    _BLOCK       
       BCF    _BLOCK
       BSF    _BLOCK       
       BCF    _BLOCK
       BSF    _BLOCK       
       BCF    _BLOCK
       RETURN
;--------------------------------------------------------
TBLOKKOL_SCS                     ;TOVÁBB BLOKKOLÁS SCS-HEZ                               
        MOVLW   DISINT            
        MOVWF   INTCON           ;DISABLE INTERRUPT
  
        BSF     STATUS,RP0       ;SYNC=BEMENET
        MOVLW   BESYNC
        MOVWF   TRISIO
        BCF     STATUS,RP0

        BSF    _OUT               ;LED BE        
	    
	    MOVLW  0X20              ;UTÁN BLOKKOLÁS MÉG 5 SEC-IG
	    MOVWF  NAHI
	    MOVLW  0X41              ;41
	    MOVWF  NALO
        GOTO   IMPKIAD_UTAN_SCS      

BLDELOOPSCS
        MOVLW  0X04          
        MOVWF  BUTH
        MOVLW  0XFC
        MOVWF  BUTL

        NOP
        NOP                 
        
BLOKKOL_UTAN_SCS_W                
        DECFSZ BUTL
	    GOTO   BLOKKOL_UTAN_SCS_W     ;IDŐZÍTÉS UTAN BLOKKOLÁSHOZ
	    DECFSZ BUTH                        ;625 uSEC MINDEN MÁSODIK
	    GOTO   BLOKKOL_UTAN_SCS_W            
        NOP

IMPKIAD_UTAN_SCS
        CALL  IMPKIADV             
        CALL  IMPKIAD              ;EDDIG 1250 uSEC-NEK KELL LENNI
        DECFSZ NALO
	    GOTO   BLDELOOPSCS
        
	    DECFSZ NAHI   
        GOTO   KEREKIT_SCS             ;KREKÍTENI 1250-RE                                       
         	        
        GOTO   STOP
;--------------------------------------------------------
 KEREKIT_SCS             
        MOVLW  0X05        ;KEREKÍTÉS
	    MOVWF  NBHI
	    MOVLW  0X0C
	    MOVWF  NBLO
KERLOOP_SCS        
        DECFSZ NBLO
        GOTO   KERLOOP_SCS
        DECFSZ NBHI
        GOTO   KERLOOP_SCS
        
        GOTO   BLDELOOPSCS 
;--------------------------------------------------------
TBLOKKOL_F2                      ;TOVÁBB BLOKKOLÁS FÁMA2-HÖZ
        MOVLW   DISINT            
        MOVWF   INTCON           ;DISABLE INTERRUPT
  
        BSF     STATUS,RP0       ;SYNC=BEMENET
        MOVLW   BESYNC
        MOVWF   TRISIO
        BCF     STATUS,RP0

        BSF    _OUT               ;LED BE        
	    
	    MOVLW  0X05            ;UTÁN BLOKKOLÁS MÉG 5 SEC-IG
	    MOVWF  NAHI
	    MOVLW  0XAF
	    MOVWF  NALO

BLDELOOPF2
        MOVLW  0X1C                    ;1C NE PISZKALD           
        MOVWF  BUTH
        MOVLW  0X29                    ;29 NE PISZKALD 
        MOVWF  BUTL

        NOP
        NOP               
        
BLOKKOL_UTAN_F2_W                
        DECFSZ BUTL
	    GOTO   BLOKKOL_UTAN_F2_W     ;IDŐZÍTÉS UTAN BLOKKOLÁSHOZ
	    DECFSZ BUTH
	    GOTO   BLOKKOL_UTAN_F2_W	    
        NOP
        NOP

IMPKIAD_UTAN_F2
        CALL  IMPKIADV
        CALL  IMPKIAD            ;EDDIG 16.7784-NAK KELL LENNI
	    DECFSZ NALO
	    GOTO   BLDELOOPF2             ;1 IMP = 4.1946
        
	    DECFSZ NAHI
	    GOTO   KEREKIT_F2
	    	        
        GOTO   STOP
;--------------------------------------------------------
KEREKIT_F2
        MOVLW  0X1C        ;KEREKÍTÉS     8.389200
	    MOVWF  NBHI
	    MOVLW  0X3A
	    MOVWF  NBLO
KERLOOP_F2        
        DECFSZ NBLO
        GOTO   KERLOOP_F2
        DECFSZ NBHI
        GOTO   KERLOOP_F2

        GOTO   BLDELOOPF2
;--------------------------------------------------------
TBLOKKOL_F3                      ;TOVÁBB BLOKKOLÁS FÁMA3-HOZ
        MOVLW   DISINT            
        MOVWF   INTCON           ;DISABLE INTERRUPT
  
        BSF     STATUS,RP0       ;SYNC=BEMENET
        MOVLW   BESYNC
        MOVWF   TRISIO
        BCF     STATUS,RP0

        BSF    _OUT               ;LED BE        
   
	    MOVLW  0X04               ;UTÁN BLOKKOLÁS MÉG 5 SEC-IG
	    MOVWF  NAHI
	    MOVLW  0XF0       
	    MOVWF  NALO

BLDELOOPF3
        MOVLW  0X21           
        MOVWF  BUTH
        MOVLW  0X64
        MOVWF  BUTL

        NOP
        NOP                 
        
BLOKKOL_UTAN_F3_W                
        DECFSZ BUTL
	    GOTO   BLOKKOL_UTAN_F3_W     ;IDŐZÍTÉS UTAN BLOKKOLÁSHOZ
	    DECFSZ BUTH
	    GOTO   BLOKKOL_UTAN_F3_W	   
        NOP        
        NOP

IMPKIAD_UTAN_F3
        CALL  IMPKIADV
        CALL  IMPKIAD             ;EDDIG 20.0000 NAK KELL LENNI

	    DECFSZ NALO
	    GOTO   BLDELOOPF3

	    DECFSZ NAHI
	    GOTO   KEREKIT_F3
	    	        
        GOTO   STOP
;--------------------------------------------------------
KEREKIT_F3
        MOVLW  0X21              ;KEREKÍTÉS     10
	    MOVWF  NBHI
	    MOVLW  0X75
	    MOVWF  NBLO
KERLOOP_F3        
        DECFSZ NBLO
        GOTO   KERLOOP_F3
        DECFSZ NBHI
        GOTO   KERLOOP_F3

        GOTO   BLDELOOPF3
;--------------------------------------------------------
TBLOKKOL_SCS1                     ;TOVÁBB BLOKKOLÁS SCS101-HEZ                               
        MOVLW   DISINT            
        MOVWF   INTCON           ;DISABLE INTERRUPT
  
        BSF     STATUS,RP0       ;SYNC=BEMENET
        MOVLW   BESYNC
        MOVWF   TRISIO
        BCF     STATUS,RP0

        BSF    _OUT               ;LED BE        
	    
	    MOVLW  0X03              ;UTÁN BLOKKOLÁS MÉG 5 SEC-IG
	    MOVWF  NAHI
	    MOVLW  0X75              
	    MOVWF  NALO
        GOTO   IMPKIAD_UTAN_SCS1      

BLDELOOPSCS1
        MOVLW  0X34        
        MOVWF  BUTH
        MOVLW  0XE0
        MOVWF  BUTL

        NOP
        NOP 
               
BLOKKOL_UTAN_SCS1_W                
        DECFSZ BUTL
	    GOTO   BLOKKOL_UTAN_SCS1_W     ;IDŐZÍTÉS UTAN BLOKKOLÁSHOZ
	    DECFSZ BUTH                        ;8 mSEC 
	    GOTO   BLOKKOL_UTAN_SCS1_W        
        
IMPKIAD_UTAN_SCS1
        CALL  IMPKIADV             
        CALL  IMPKIAD              ;EDDIG 24 mSEC-NEK KELL LENNI
        DECFSZ NALO
	    GOTO   BLDELOOPSCS1
        
	    DECFSZ NAHI   
        GOTO   KEREKIT_SCS1             ;KREKÍTENI 16-RA                                      
         	        
        GOTO   STOP
;--------------------------------------------------------
 KEREKIT_SCS1             
        MOVLW  0X34        ;KEREKÍTÉS
	    MOVWF  NBHI
	    MOVLW  0XF0
	    MOVWF  NBLO
KERLOOP_SCS1        
        DECFSZ NBLO
        GOTO   KERLOOP_SCS1
        DECFSZ NBHI
        GOTO   KERLOOP_SCS1
        NOP
        GOTO   BLDELOOPSCS1
;--------------------------------------------------------
;--------------------------------------------------------
CSAKDET                         ;HANG KIADÁS CSAK DETEKTOR MÓD
       MOVLW   DISINT            
       MOVWF   INTCON           ;DISABLE INTERRUPT
       BSF     STATUS,RP0       ;SYNC=BEMENET
       MOVLW   BESYNC
       MOVWF   TRISIO
       BCF     STATUS,RP0
       CALL    DETHANG
       CALL    DETHANG
       CALL    DETHANG
       CALL    DETHANG
       CALL    DETHANG 
       GOTO  STOP

DETHANG
       BSF   _OUT            ;LED+HANG BE
       CALL  PAUSE 
       BCF   _OUT            ;LED+ HANG KI
       RETUURN      
;--------------------------------------------------------
PAUSE                               ;400 mSEC
	   MOVLW  01H
	   MOVWF  NBHI
	   MOVLW  0BH
	   MOVWF  NBLO
	   MOVLW  26H
	   MOVWF  NAHI
	   MOVLW  68H
	   MOVWF  NALO
DELOOPP
	   DECFSZ NALO
	   GOTO   DELOOPP
	   DECFSZ NAHI
	   GOTO   DELOOPP
	   DECFSZ NBLO
	   GOTO   DELOOPP
	   DECFSZ NBHI
	   GOTO   DELOOPP
       RETURN
;---------------------------------------------------------
REPROM                       ;EEPROM OLVASAS  
       BSF    STATUS,RP0
       MOVLW  0X00           ; CIM 
       MOVWF  EEADR           
       BSF    EECON1,RD       
       MOVF   EEDATA,W
       MOVWF  KIBE           ;ADAT BEOLVASAS
       BCF    STATUS,RP0
       RETURN
;---------------------------------------------------------
WEPROM                        ;EEPROM IRAS
       BSF    STATUS,RP0
       BCF    INTCON,GIE      ;DISABLE INTERUPT       
       MOVLW  0X00            ; CIM 
       MOVWF  EEADR
       MOVF   KIBE,W           ;ADAT 
       MOVWF  EEDATA
       BSF    STATUS,RP0
       BSF    EECON1,WREN      
       MOVLW  0X55
       MOVWF  EECON2
       MOVLW  0XAA
       MOVWF  EECON2
       BSF    EECON1,WR
IRAS1   
       BTFSC  EECON1,WR
       GOTO   IRAS1
       BCF    STATUS,RP0
       RETURN
;--------------------------------------------------------
CSIPPAN
        BSF    _OUT
        CLRF   NALO                  ;40 mSEC HANG + VILLAN 
        CLRF   NAHI
DELOOPCSIP
	    DECFSZ  NALO
	    GOTO    DELOOPCSIP
        DECFSZ  NAHI
	    GOTO    DELOOPCSIP	         
        BCF    _OUT
        RETURN
;---------------------------------------------------------
KIBEKAPCS                     ;CSAK DETEKTOR+BLOKKOLÁS KI/BE

GOMBLOOP
         CALL   CSIPPAN
         CALL   PAUSE            
         BTFSS  _INP
         GOTO   GOMBLOOP

KIJELEZ
        BTFSS  _INP  
        GOTO    HOSSZ
VALT        
        MOVF    KIBE,W
	    SUBLW   02H
	    BTFSC   STATUS,C
	    GOTO    MARAD	

        CLRF    KIBE
MARAD            

        CALL    PAUSE1
        CALL    PAUSE1
        
        MOVF    KIBE,W

	    XORLW   00H
	    BTFSC   STATUS,Z
	    GOTO    EGY
	
	    MOVF    KIBE,W
	    XORLW   01H
	    BTFSC   STATUS,Z
	    GOTO    KETTO
	
	    MOVF    KIBE,W
	    XORLW   02H
 	    BTFSC   STATUS,Z
	    GOTO    HAROM
EGY                               ;ÜZEMMÓD KIJELZÉS
        CALL    CSIPP1
        CALL    PAUSE1
        GOTO    KIJELEZ
KETTO
        CALL    CSIPP1
        CALL    PAUSE1
        CALL    CSIPP1
        CALL    PAUSE1 
        GOTO    KIJELEZ
HAROM
        CALL    CSIPP1
        CALL    PAUSE1
        CALL    CSIPP1
        CALL    PAUSE1
        CALL    CSIPP1
        CALL    PAUSE1
        GOTO    KIJELEZ
;---------------------------------------------------------
HOSSZ        
       MOVLW    01H
	   MOVWF    NBHI
	   MOVLW    20H                   ;HA A GOMB 2SEC-IG NYOMVA KILÉP 
	   MOVWF    NBLO
	   MOVLW    26H
	   MOVWF    NAHI
	   MOVLW    68H
	   MOVWF    NALO
DELOOPHSZ
       BTFSC    _INP
       GOTO     VALT1
	   DECFSZ   NALO
	   GOTO     DELOOPHSZ
	   DECFSZ   NAHI
	   GOTO     DELOOPHSZ
	   DECFSZ   NBLO
	   GOTO     DELOOPHSZ
	   DECFSZ   NBHI
	   GOTO     DELOOPHSZ     
;---------------------------------------------------------
KILEP      
       CALL    WEPROM
       CALL    CSIPPAN
       CALL    PAUSE                  ; 5X CSIPOG
       CALL    CSIPPAN
       CALL    PAUSE  
       CALL    CSIPPAN
       CALL    PAUSE
       CALL    CSIPPAN
       CALL    PAUSE
       CALL    CSIPPAN
       CALL    PAUSE
VARKI
       BTFSS   _INP                  ;GOMB ELENGEDÉSRE VÁR
       GOTO    VARKI
 
       GOTO    TEST
VALT1
       INCF    KIBE
       CALL    PAUSE
       GOTO    VALT 
;---------------------------------------------------------
CSIPP1
        BSF    _OUT        
        MOVLW  0X9D
	    MOVWF  NAHI                 ;40 mSEC HANG + VILLAN 
        CLRF   NALO
DELOOPCSIP1
        BTFSS  _INP  
        GOTO    HOSSZ
	    DECFSZ  NALO
	    GOTO    DELOOPCSIP1
        DECFSZ  NAHI
	    GOTO    DELOOPCSIP1	         
        BCF    _OUT        
        RETURN
;---------------------------------------------------------
PAUSE1                               ;400 mSEC
	   MOVLW  01H
	   MOVWF  NBHI
	   MOVLW  07H
	   MOVWF  NBLO
	   MOVLW  26H
	   MOVWF  NAHI
	   MOVLW  68H
	   MOVWF  NALO
DELOOPP1
       BTFSS  _INP  
       GOTO    HOSSZ
	   DECFSZ NALO
	   GOTO   DELOOPP1
	   DECFSZ NAHI
	   GOTO   DELOOPP1
	   DECFSZ NBLO
	   GOTO   DELOOPP1
	   DECFSZ NBHI
	   GOTO   DELOOPP1
       RETURN
;---------------------------------------------------------
       END

