; Begin
	R0L EQU 0x20
	R0H EQU 0x21
	R1L EQU 0x22
	R1H EQU 0x23
	R2L EQU 0x24
	R2H EQU 0x25
	R3L EQU 0x26
	R3H EQU 0x27
	R4L EQU 0x28
	R4H EQU 0x29
	R5L EQU 0x2A
	R5H EQU 0x2B
	W_TEMP EQU 0x7F
	STATUS_TEMP EQU 0x7E
	ORG 0x0000
	BCF PCLATH,3
	BCF PCLATH,4
	GOTO L0001
	ORG 0x0004
	MOVWF W_TEMP
	SWAPF STATUS,W
	CLRF STATUS
	MOVWF STATUS_TEMP
	CALL L0002
	SWAPF STATUS_TEMP,W
	MOVWF STATUS
	SWAPF W_TEMP,F
	SWAPF W_TEMP,W
	RETFIE
L0001:
; 1:  'Készítette: bbatka
; 2:  'Fejlesztő környezet: Picsimulatoride
; 3:  '2005.12.21.
; 4:  'Pic16f627   kvarc 32768 Hz
; 5:  'Megszakítás ha 32768/4/32=256 =>másodpercenkénti megszakítás=1
; 6: Dim t As Byte
;       The address of 't' is 0x2C
	t EQU 0x2C
; 7: TRISA = %00000000
	BSF STATUS,RP0
	CLRF 0x05
	BCF STATUS,RP0
; 8: TRISB = %00000000
	BSF STATUS,RP0
	CLRF 0x06
	BCF STATUS,RP0
; 9: PORTB = 0
	CLRF 0x06
; 10: OPTION_REG = %11000100 'TMR0 előosztó értéke: 32
	BSF STATUS,RP0
	MOVLW 0xC4
	MOVWF 0x01
	BCF STATUS,RP0
; 11: INTCON.T0IE = 1 'engedélyezi TMR0 megszakítást
	BSF 0x0B,5
; 12: INTCON.GIE = 1 'engedélyez minden nem maszkolt megszakítást
	BSF 0x0B,7
; 13: End
L0003:	GOTO L0003
; 14: 
; 15: On Interrupt 'interrupt routine
L0002:
; 16: If INTCON.T0IF = 1 Then
	BTFSS 0x0B,2
	GOTO L0004
; 17: t = t + 1
	MOVF 0x2C,W
	ADDLW 0x01
	MOVWF 0x2C
; 18: If t = 60 Then
	MOVF 0x2C,W
	SUBLW 0x3C
	BTFSS STATUS,Z
	GOTO L0005
; 19: PORTB.7 = 1
	BSF 0x06,7
; 20: WaitUs 30000
	MOVLW 0x30
	MOVWF R4L
	MOVLW 0x75
	MOVWF R4H
	CALL Y001
; 21: PORTB.7 = 0
	BCF 0x06,7
; 22: t = 0
	CLRF 0x2C
; 23: Endif
L0005:	MOVLW 0x1F
	ANDWF STATUS,F
; 24: Endif
L0004:	MOVLW 0x1F
	ANDWF STATUS,F
; 25: INTCON.T0IF = 0 'engedélyezése az új TMR0 megszakításnak
	BCF 0x0B,2
; 26: Resume
	RETURN
; End of program
L0006:	GOTO L0006
; Waitus Routine - Word Argument
Y001:	MOVLW 0x28
	SUBWF R4L,F
	CLRW
	BTFSS STATUS,C
	ADDLW 0x01
	SUBWF R4H,F
	BTFSS STATUS,C
	RETURN
	GOTO Y002
Y002:	MOVLW 0xC4
	SUBWF R4L,F
	CLRW
	BTFSS STATUS,C
	ADDLW 0x01
	SUBWF R4H,F
	BTFSS STATUS,C
	RETURN
	GOTO Y002
; End of listing
	END
