;Program: čtyřbajtová časová smyčka
;nejnižší bajt registr TM+0 a nejvyšší bajt registr TM+3
;*******************************************************************************
 LIST P = 16F84, R = DEC
 #INCLUDE <P16F84.INC>
;------------------------------------------------------------------------------- 
 __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;*******************************************************************************

        CBLOCK  H'0C'
         TM : 4
        ENDC 
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        ORG     0
        GOTO    START
;*******************************************************************************
SMYC    MOVLW   H'X'
        MOVWF   TM+0            ;zadání nejvyššího bajtu
        MOVLW   H'Y'
        MOVWF   TM+1            ;zadání druhého bajtu
        MOVLW   H'Z'
        MOVWF   TM+2            ;zadání třetího bajtu
        MOVLW   H'V'            
        MOVWF   TM+3            ;zadání nejnižšího bajtu
        CALL    t10uS
        
SMC     MOVF    TM+0,F
        BTFSS   STATUS,Z        ;je nejnižší bajt roven nule?
        GOTO    SMC_1           ;ne
        MOVF    TM+1,F          ;ano
        BTFSS   STATUS,Z        ;je druhý bajt roven nule?
        GOTO    SMC_2           ;ne
        MOVF    TM+2,F          ;ano
        BTFSS   STATUS,Z        ;je třetí bajt roven nule?
        GOTO    SMC_3           ;ne 
        MOVF    TM+3,F          ;ano
        BTFSC   STATUS,Z        ;je nejvyšší bajt roven nule?
        GOTO    SMC_4           ;ano,jdi na návěští SMC_4
        
        DECF    TM+3,F          ;odečítání příslušných registrů       
SMC_5   DECF    TM+2,F
SMC_6   DECF    TM+1,F
SMC_7   DECF    TM+0,F
        NOP
        NOP
        GOTO    SMC
        
SMC_1   CALL    t9uS
        GOTO    SMC_7                
        
SMC_2   CALL    t5uS
        GOTO    SMC_6
        
SMC_3   NOP
        GOTO    SMC_5
        
SMC_4   CALL    t5uS
        RETURN        
        
;-------------------------------------------------------------------------------
t10uS   NOP                     ;časová vyrovnávka čtyřbajtové časové smyčky
t9uS    NOP
        NOP
        NOP
        NOP
t5uS    NOP
        RETURN
;*******************************************************************************

START   CALL    SMYC
        NOP
        
        END                                                
        
