; Source created with Parsic Version 3.x

; at              : 2009.10.17. 20:31:00


; Project File    : D:\pic\parsic\NONAME.PIC

; Project Version : 1.0.0

; Created         : 2009.10.17. 20:30:07

; Last change     : 2009.10.17. 20:30:53

	PROCESSOR 16F628

	INCLUDE P16F628.INC

	RADIX DEC


	__IDLOCS H'0100'

	__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _BODEN_ON & _INTRC_OSC_NOCLKOUT & _LVP_OFF & _MCLRE_ON

; Diverses

ZERO	EQU Z	; ZERO-Flag
CARRY	 EQU C	; CARRY-Flag


; Variable

RAM	= 32	; located in Bank 0

	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
	RETURN

;****************************************
; Subroutines
;****************************************


;****************************************
;Initialisierung
;****************************************


SYS_INIT

	MOVLW B'00000000'
	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'11111011'
	MOVWF TRISA

	MOVLW B'11111111'
	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



;**********************************
;******* Haupt-Programm ***********
;**********************************

MAIN

;***************************************************
; UND - Gatter -> LG1
;***************************************************

LABEL_LG1_1
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BTFSS PORTA,1
	GOTO LABEL_LG1_FALSE

LABEL_LG1_TRUE
	BSF STATUS,RP0	; Bank 1
	BSF PORTA,2
	GOTO LABEL_LG1_ENDE
LABEL_LG1_FALSE
	BCF STATUS,RP0	; Bank 0
	BCF STATUS,RP1	; Bank 0
	BCF PORTA,2
LABEL_LG1_ENDE
;****************************************

	GOTO MAIN


	END

