; Source created with Parsic Version 3.x

; at              : 2008.09.02. 13:53:41


; Project File    : C:\Program Files\Parsic\Parsic_3.4.3.w.CR\win.pic

; Project Version : 1.0.24

; Created         : 2008.08.21. 2:12:00

; Last change     : 2008.08.25. 18:05:00

	PROCESSOR 16F628

	INCLUDE P16F628.INC

	RADIX DEC


	__IDLOCS H'0100'

	__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _BODEN_ON & _XT_OSC & _LVP_OFF & _MCLRE_ON

; Diverses

ZERO	EQU Z	; ZERO-Flag
CARRY	 EQU C	; CARRY-Flag


; Variable

S0	= 32	; located in Bank 0
MF1	= 33	; located in Bank 0
MF1_HI	= 34	; located in Bank 0
MF2	= 35	; located in Bank 0
MF2_HI	= 36	; located in Bank 0
MF2_FD	= 37	; located in Bank 0
S1	= 38	; located in Bank 0
MF3	= 39	; located in Bank 0
MF3_HI	= 40	; located in Bank 0
MF3_FD	= 41	; located in Bank 0
OS1_FD	= 42	; located in Bank 0
S2	= 43	; located in Bank 0
MF4	= 44	; located in Bank 0
MF4_HI	= 45	; located in Bank 0
MF4_FD	= 46	; located in Bank 0
OS2_FD	= 47	; located in Bank 0
S3	= 48	; located in Bank 0
RAM	= 49	; located in Bank 0
SYS_WSAV	= 112	; located in Bank 0, 1, 2, 3
SYS_SSAV	= 113	; located in Bank 0, 1, 2, 3

	ERRORLEVEL -302	; disable warning (Bankswitching)
	ERRORLEVEL -306	; disable warning (Pageswitching)

;****************************************
;Programmanfang
;****************************************

	ORG 0

	CLRF STATUS	; switch to RAM-Bank 0
	GOTO SYS_INIT
	NOP
	NOP

;****************************************
;Interrupt-Adress
;****************************************

	MOVWF SYS_WSAV	; save register
	SWAPF STATUS,W
	CLRF STATUS	; bank 0
	MOVWF SYS_SSAV

	BCF INTCON,T0IF	; Interrupt quitieren

	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	INCFSZ MF1,F
	GOTO SYS_INT_LABEL_0
	INCF MF1_HI,F

SYS_INT_LABEL_0
	INCFSZ MF2,F
	GOTO SYS_INT_LABEL_1
	INCF MF2_HI,F

SYS_INT_LABEL_1
	BSF STATUS,RP1	; Bank 2
	INCFSZ MF3,F
	GOTO SYS_INT_LABEL_2
	INCF MF3_HI,F

SYS_INT_LABEL_2
	BSF STATUS,RP0	; Bank 1
	BCF STATUS,RP1	; Bank 1
	INCFSZ MF4,F
	GOTO SYS_INT_LABEL_3
	BCF STATUS,RP0	; Bank 2
	BSF STATUS,RP1	; Bank 2
	INCF MF4_HI,F

SYS_INT_LABEL_3
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0

EXITINT

	SWAPF SYS_SSAV,W	; Register zurück
	MOVWF STATUS
	SWAPF SYS_WSAV,F
	SWAPF SYS_WSAV,W

	RETURN


;****************************************
; Subroutines
;****************************************


;****************************************
;Initialisierung
;****************************************


SYS_INIT

	MOVLW B'00100000'
	MOVWF INTCON

; Set output before direction

	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	MOVLW B'00000000'
	MOVWF PORTA

	MOVLW B'00000000'
	MOVWF PORTB

	MOVLW 15
	BSF STATUS,RP0	; Bank 1
	MOVWF OPTION_REG


; Richtung setzen

	MOVLW B'11111111'
	MOVWF TRISA

	MOVLW B'11001111'
	MOVWF TRISB

	MOVLW 7	; Comparators off
	MOVWF CMCON
; init vars


; Clear RAM

	BCF STATUS,IRP
	MOVLW 32
	MOVWF FSR
CR1
	CLRF INDF
	INCF FSR,F
	BTFSS FSR,7
	GOTO CR1
	BSF FSR,5
CR2
	CLRF INDF
	INCF FSR,F
	MOVLW H'F0'
	SUBWF FSR,W
	BTFSS STATUS,ZERO
	GOTO CR2
	BSF STATUS,IRP
	MOVLW 32
	MOVWF FSR
CR3
	CLRF INDF
	INCF FSR,F
	MOVLW H'50'
	SUBWF FSR,W
	BTFSS STATUS,ZERO
	GOTO CR3


	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	CLRF TMR0
	BCF INTCON,T0IF
	BSF INTCON,GIE	; Interrupt freigeben

;**********************************
;******* Haupt-Programm ***********
;**********************************

MAIN

;***************************************************
; ODER - Gatter -> BE
;***************************************************

LABEL_BE_1
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSC PORTB,2
	GOTO LABEL_BE_TRUE
LABEL_BE_2
	BSF STATUS,RP0	; Bank 1
	BTFSC PORTB,1
	GOTO LABEL_BE_TRUE

LABEL_BE_FALSE
	BCF S0,4
	GOTO LABEL_BE_ENDE
LABEL_BE_TRUE
	BSF S0,4
LABEL_BE_ENDE
;***************************************************
; Anzug-Verzögerung -> MF1
;***************************************************

	BTFSC S0,4	; Eingang auf High ?
	GOTO LABEL_MF1_CHKTIME	; Ja

; RESET

	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	CLRF MF1
	CLRF MF1_HI
	BCF S0,3
	GOTO LABEL_MF1_EXIT	; raus

LABEL_MF1_CHKTIME

	BTFSC S0,3	; Ausgang schon auf High ?
	GOTO LABEL_MF1_EXIT	; Ja

	MOVLW 7
	SUBWF MF1_HI,W
	BTFSS STATUS,CARRY
	GOTO LABEL_MF1_EXIT

	MOVLW 161
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	SUBWF MF1,W
	BTFSS STATUS,CARRY
	GOTO LABEL_MF1_EXIT

	BSF S0,3
LABEL_MF1_EXIT

;***************************************************
; UND - Gatter -> LG2
;***************************************************

LABEL_LG2_1
	BTFSS S0,0
	GOTO LABEL_LG2_FALSE
LABEL_LG2_2
	BTFSS S0,3
	GOTO LABEL_LG2_FALSE

LABEL_LG2_TRUE
	BSF S0,5
	GOTO LABEL_LG2_ENDE
LABEL_LG2_FALSE
	BCF S0,5
LABEL_LG2_ENDE
;***************************************************
; ODER - Gatter -> LG3
;***************************************************

LABEL_LG3_1
	BTFSC S0,5
	GOTO LABEL_LG3_TRUE
LABEL_LG3_2
	BTFSC S0,2
	GOTO LABEL_LG3_TRUE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0

LABEL_LG3_FALSE
	BCF PORTB,5
	GOTO LABEL_LG3_ENDE
LABEL_LG3_TRUE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BSF PORTB,5
LABEL_LG3_ENDE
;***************************************************
; Mono-Flop -> MF2
;***************************************************

; Läuft der Impuls ?

	BSF STATUS,RP0	; Bank 1
	BTFSC MF2_FD,1
	GOTO LABEL_MF2_CHKTIME

; Test auf positive Flanke

	BTFSC MF2_FD,0
	GOTO LABEL_MF2_SETFD
	BTFSS S0,1
	GOTO LABEL_MF2_SETFD


LABEL_MF2_RESET

	CLRF MF2
	CLRF MF2_HI
	BSF MF2_FD,1
	BSF S0,6

LABEL_MF2_CHKTIME

	MOVLW 6
	SUBWF MF2_HI,W
	BTFSS STATUS,ZERO
	GOTO LABEL_MF2_CHECK
	MOVLW 27
	SUBWF MF2,W
LABEL_MF2_CHECK
	BTFSS STATUS,CARRY
	GOTO LABEL_MF2_SETFD
LABEL_MF2_TO

	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF MF2_FD,1
	BCF S0,6

LABEL_MF2_SETFD

	BTFSS S0,1
	GOTO LABEL_MF2_CLR
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BSF MF2_FD,0
	GOTO LABEL_MF2_ENDE
LABEL_MF2_CLR
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF MF2_FD,0

LABEL_MF2_ENDE

;***************************************************
; UND - Gatter -> LG4
;***************************************************

LABEL_LG4_1
	BTFSS S0,1
	GOTO LABEL_LG4_FALSE
LABEL_LG4_2
	BTFSC S0,7
	GOTO LABEL_LG4_FALSE

LABEL_LG4_TRUE
	BSF S0,0
	GOTO LABEL_LG4_ENDE
LABEL_LG4_FALSE
	BCF S0,0
LABEL_LG4_ENDE
;***************************************************
; UND - Gatter -> LG5
;***************************************************

LABEL_LG5_1
	BTFSS S0,6
	GOTO LABEL_LG5_FALSE
LABEL_LG5_2
	BTFSC S0,4
	GOTO LABEL_LG5_FALSE

LABEL_LG5_TRUE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BSF S1,0
	GOTO LABEL_LG5_ENDE
LABEL_LG5_FALSE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF S1,0
LABEL_LG5_ENDE
;***************************************************
; Mono-Flop -> MF3
;***************************************************

; Läuft der Impuls ?

	BSF STATUS,RP1	; Bank 2
	BTFSC MF3_FD,1
	GOTO LABEL_MF3_CHKTIME

; Test auf positive Flanke

	BTFSC MF3_FD,0
	GOTO LABEL_MF3_SETFD
	BSF STATUS,RP0	; Bank 1
	BCF STATUS,RP1	; Bank 1
	BTFSS PORTB,1
	GOTO LABEL_MF3_SETFD


LABEL_MF3_RESET

	BCF STATUS,RP0	; Bank 2
	BSF STATUS,RP1	; Bank 2
	CLRF MF3
	CLRF MF3_HI
	BSF MF3_FD,1
	BSF STATUS,RP0	; Bank 1
	BCF STATUS,RP1	; Bank 1
	BSF S1,1

LABEL_MF3_CHKTIME

	MOVLW 6
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	SUBWF MF3_HI,W
	BTFSS STATUS,ZERO
	GOTO LABEL_MF3_CHECK
	MOVLW 27
	BSF STATUS,RP1	; Bank 2
	SUBWF MF3,W
LABEL_MF3_CHECK
	BTFSS STATUS,CARRY
	GOTO LABEL_MF3_SETFD
LABEL_MF3_TO

	BCF MF3_FD,1
	BSF STATUS,RP0	; Bank 1
	BCF STATUS,RP1	; Bank 1
	BCF S1,1

LABEL_MF3_SETFD

	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSS PORTB,1
	GOTO LABEL_MF3_CLR
	BSF STATUS,RP1	; Bank 2
	BSF MF3_FD,0
	GOTO LABEL_MF3_ENDE
LABEL_MF3_CLR
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF MF3_FD,0

LABEL_MF3_ENDE

;***************************************************
; UND - Gatter -> LG6
;***************************************************

LABEL_LG6_1
	BTFSC S0,4
	GOTO LABEL_LG6_FALSE
LABEL_LG6_2
	BSF STATUS,RP0	; Bank 1
	BTFSS S1,1
	GOTO LABEL_LG6_FALSE

LABEL_LG6_TRUE
	BSF S1,2
	GOTO LABEL_LG6_ENDE
LABEL_LG6_FALSE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF S1,2
LABEL_LG6_ENDE
;***************************************************
; UND - Gatter -> LG7
;***************************************************

LABEL_LG7_1
	BTFSS S0,3
	GOTO LABEL_LG7_FALSE
LABEL_LG7_2
	BSF STATUS,RP0	; Bank 1
	BTFSS S1,4
	GOTO LABEL_LG7_FALSE

LABEL_LG7_TRUE
	BSF S1,5
	GOTO LABEL_LG7_ENDE
LABEL_LG7_FALSE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF S1,5
LABEL_LG7_ENDE
;***************************************************
; UND - Gatter -> LG8
;***************************************************

LABEL_LG8_1
	BTFSC S0,7
	GOTO LABEL_LG8_FALSE
LABEL_LG8_2
	BSF STATUS,RP0	; Bank 1
	BTFSS PORTB,1
	GOTO LABEL_LG8_FALSE

LABEL_LG8_TRUE
	BSF S1,4
	GOTO LABEL_LG8_ENDE
LABEL_LG8_FALSE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF S1,4
LABEL_LG8_ENDE
;***************************************************
; ODER - Gatter -> LG9
;***************************************************

LABEL_LG9_1
	BSF STATUS,RP0	; Bank 1
	BTFSC S1,3
	GOTO LABEL_LG9_TRUE
LABEL_LG9_2
	BTFSC S1,5
	GOTO LABEL_LG9_TRUE

LABEL_LG9_FALSE
	BCF PORTB,4
	GOTO LABEL_LG9_ENDE
LABEL_LG9_TRUE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BSF PORTB,4
LABEL_LG9_ENDE
;***************************************************
; One Shot -> OS1
;***************************************************


	BTFSS S0,4
	GOTO LABEL_OS1_1
	BTFSC OS1_FD,0
	GOTO LABEL_OS1_1
	BSF OS1_FD,0
	BSF STATUS,RP0	; Bank 1
	BSF S1,6
	GOTO LABEL_OS1_2
LABEL_OS1_1
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF S1,6
	BTFSC S0,4
	GOTO LABEL_OS1_2
	BCF OS1_FD,0
LABEL_OS1_2
;***************************************************
; ODER - Gatter -> LG10
;***************************************************

LABEL_LG10_1
	BTFSC S0,2
	GOTO LABEL_LG10_TRUE
LABEL_LG10_2
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSC S1,3
	GOTO LABEL_LG10_TRUE

LABEL_LG10_FALSE
	BCF S2,0
	GOTO LABEL_LG10_ENDE
LABEL_LG10_TRUE
	BSF S2,0
LABEL_LG10_ENDE
;***************************************************
; UND - Gatter -> LG11
;***************************************************

LABEL_LG11_1
	BTFSS S2,0
	GOTO LABEL_LG11_FALSE
LABEL_LG11_2
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSS S1,6
	GOTO LABEL_LG11_FALSE

LABEL_LG11_TRUE
	BSF STATUS,RP0	; Bank 1
	BSF S1,7
	GOTO LABEL_LG11_ENDE
LABEL_LG11_FALSE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF S1,7
LABEL_LG11_ENDE
;***************************************************
; Mono-Flop -> MF4
;***************************************************

; Läuft der Impuls ?

	BSF STATUS,RP0	; Bank 1
	BTFSC MF4_FD,1
	GOTO LABEL_MF4_CHKTIME

; Test auf positive Flanke

	BTFSC MF4_FD,0
	GOTO LABEL_MF4_SETFD
	BTFSS S2,2
	GOTO LABEL_MF4_SETFD


LABEL_MF4_RESET

	CLRF MF4
	BCF STATUS,RP0	; Bank 2
	BSF STATUS,RP1	; Bank 2
	CLRF MF4_HI
	BSF STATUS,RP0	; Bank 1
	BCF STATUS,RP1	; Bank 1
	BSF MF4_FD,1
	BSF S2,4

LABEL_MF4_CHKTIME

	MOVLW 7
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	SUBWF MF4_HI,W
	BTFSS STATUS,ZERO
	GOTO LABEL_MF4_CHECK
	MOVLW 161
	BSF STATUS,RP0	; Bank 1
	SUBWF MF4,W
LABEL_MF4_CHECK
	BTFSS STATUS,CARRY
	GOTO LABEL_MF4_SETFD
LABEL_MF4_TO

	BCF MF4_FD,1
	BCF S2,4

LABEL_MF4_SETFD

	BTFSS S2,2
	GOTO LABEL_MF4_CLR
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BSF MF4_FD,0
	GOTO LABEL_MF4_ENDE
LABEL_MF4_CLR
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF MF4_FD,0

LABEL_MF4_ENDE

;***************************************************
; One Shot -> OS2
;***************************************************


	BSF STATUS,RP0	; Bank 1
	BTFSS PORTB,0
	GOTO LABEL_OS2_1
	BTFSC OS2_FD,0
	GOTO LABEL_OS2_1
	BSF OS2_FD,0
	BSF S2,3
	GOTO LABEL_OS2_2
LABEL_OS2_1
	BCF S2,3
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSC PORTB,0
	GOTO LABEL_OS2_2
	BSF STATUS,RP0	; Bank 1
	BCF OS2_FD,0
LABEL_OS2_2
;***************************************************
; ODER - Gatter -> LG12
;***************************************************

LABEL_LG12_1
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSC S1,7
	GOTO LABEL_LG12_TRUE
LABEL_LG12_2
	BTFSS S2,1
	GOTO LABEL_LG12_TRUE

LABEL_LG12_FALSE
	BCF S2,2
	GOTO LABEL_LG12_ENDE
LABEL_LG12_TRUE
	BSF S2,2
LABEL_LG12_ENDE
;***************************************************
; ODER - Gatter -> LG13
;***************************************************

LABEL_LG13_1
	BTFSC S2,3
	GOTO LABEL_LG13_TRUE
LABEL_LG13_2
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSC PORTB,2
	GOTO LABEL_LG13_TRUE

LABEL_LG13_FALSE
	BCF S0,1
	GOTO LABEL_LG13_ENDE
LABEL_LG13_TRUE
	BSF S0,1
LABEL_LG13_ENDE
;***************************************************
; UND - Gatter -> LG14
;***************************************************

LABEL_LG14_1
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSS PORTB,5
	GOTO LABEL_LG14_FALSE
LABEL_LG14_2
	BTFSS S2,1
	GOTO LABEL_LG14_FALSE

LABEL_LG14_TRUE
	BSF STATUS,RP0	; Bank 1
	BSF PORTB,5
	GOTO LABEL_LG14_ENDE
LABEL_LG14_FALSE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF PORTB,5
LABEL_LG14_ENDE
;***************************************************
; UND - Gatter -> LG15
;***************************************************

LABEL_LG15_1
	BSF STATUS,RP0	; Bank 1
	BTFSS PORTB,4
	GOTO LABEL_LG15_FALSE
LABEL_LG15_2
	BTFSS S2,1
	GOTO LABEL_LG15_FALSE

LABEL_LG15_TRUE
	BSF PORTB,4
	GOTO LABEL_LG15_ENDE
LABEL_LG15_FALSE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF PORTB,4
LABEL_LG15_ENDE
;***************************************************
; ODER - Gatter -> LG16
;***************************************************

LABEL_LG16_1
	BTFSC S2,3
	GOTO LABEL_LG16_TRUE
LABEL_LG16_2
	BTFSC S2,4
	GOTO LABEL_LG16_TRUE

LABEL_LG16_FALSE
	BCF S0,7
	GOTO LABEL_LG16_ENDE
LABEL_LG16_TRUE
	BSF S0,7
LABEL_LG16_ENDE
;***************************************************
; RS-FLIP-FLOP -> RS1
;***************************************************

	BTFSC S0,7
	GOTO LABEL_RS1_RESET
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSS S1,0
	GOTO LABEL_RS1_ENDE
	BSF S0,2	; Ausgang setzen
	GOTO LABEL_RS1_ENDE
LABEL_RS1_RESET
	BCF S0,2	; Ausgang zurücksetzen
LABEL_RS1_ENDE

;***************************************************
; RS-FLIP-FLOP -> RS2
;***************************************************

	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSS PORTB,3
	GOTO LABEL_RS2_RESET
	BTFSS S2,6
	GOTO LABEL_RS2_ENDE
	BSF S2,7	; Ausgang setzen
	GOTO LABEL_RS2_ENDE
LABEL_RS2_RESET
	BCF S2,7	; Ausgang zurücksetzen
LABEL_RS2_ENDE

;***************************************************
; UND - Gatter -> LG17
;***************************************************

LABEL_LG17_1
	BTFSS S3,0
	GOTO LABEL_LG17_FALSE
LABEL_LG17_2
	BTFSS S2,7
	GOTO LABEL_LG17_FALSE

LABEL_LG17_TRUE
	BSF S2,1
	GOTO LABEL_LG17_ENDE
LABEL_LG17_FALSE
	BCF S2,1
LABEL_LG17_ENDE
;***************************************************
; UND - Gatter -> LG18
;***************************************************

LABEL_LG18_1
	BTFSC S0,4
	GOTO LABEL_LG18_FALSE
LABEL_LG18_2
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSS PORTB,3
	GOTO LABEL_LG18_FALSE

LABEL_LG18_TRUE
	BSF S2,6
	GOTO LABEL_LG18_ENDE
LABEL_LG18_FALSE
	BCF S2,6
LABEL_LG18_ENDE
;***************************************************
; RS-FLIP-FLOP -> RS3
;***************************************************

	BTFSC S0,7
	GOTO LABEL_RS3_RESET
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSS S1,2
	GOTO LABEL_RS3_ENDE
	BSF STATUS,RP0	; Bank 1
	BSF S1,3	; Ausgang setzen
	GOTO LABEL_RS3_ENDE
LABEL_RS3_RESET
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF S1,3	; Ausgang zurücksetzen
LABEL_RS3_ENDE

;***************************************************
; ODER - Gatter -> LG19
;***************************************************

LABEL_LG19_1
	BTFSC S0,2
	GOTO LABEL_LG19_TRUE
LABEL_LG19_2
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSC S1,3
	GOTO LABEL_LG19_TRUE
LABEL_LG19_3
	BTFSC S0,3
	GOTO LABEL_LG19_TRUE

LABEL_LG19_FALSE
	BCF S3,0
	GOTO LABEL_LG19_ENDE
LABEL_LG19_TRUE
	BSF S3,0
LABEL_LG19_ENDE
;****************************************

	GOTO MAIN


	END

