	list      p=16F716            
	#include <p16F716.inc>     
	Errorlevel	-302

	__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_OFF & _HS_OSC  &_BODEN_OFF  ;&_VBOR_25
	cblock	0x20
			;	General	register's ,, Timer reg!

			x
			x1
			index
			tmr.period
			time.out
			slow,slow2
			
			loc
			servo.toogle
			tmr1l
			tmr1h
		wtf
		Transmission.enabled
			;	Switch register's
			switch
			Lamp

			;	Data register's

			dev		;	8 bit
			com		;	8 bit
			com2	;	8 bit
			extr		;	8 bit
			err		;	8 bit
			stop		;	2 bit

			com.out	
			extr.out
			com2.out
			coM

			flag	
			bit
			shift
	servo.carry
	bit2
			;	Save reg

			w_save
			status_save
			fsr_s	
			pclath_s
			intcon_s
			;  	Register's --LCD--		

			t1,t2,text.reg,turn,slide.reg,shift2
			lcd.shift,lcd.shift.dec,lcd.shift2,lcd.shift2.dec
			hun,hun1
			ten,ten1
			one,one1
			;	Analog reg

			ad.regh

			endc
			
			#define		pwm			CCPR1L
			#define		rs			PORTA,0
			#define		en			PORTA,1
	
			#define		dat			PORTB
			#define		in			PORTB,2
			#define		m.ena		PORTB,3
			#define		servo		PORTA,2
			#define		out			PORTB,1
	

			;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			;	Transmission		Include File's				
			;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			#include		Transmission.asm
			#include		Save.asm
			#include		Load.asm

			;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			;		LCD	Include File's				
			;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			#include		Ltctm.asm
			#include		slides3.asm
			#include		Character.def.asm
			#include		Lcd.Register.controll.asm
			
			;	<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
				Character.def		 ;#### Long.Macro
			;	<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;			Reset vektor				
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	org		0x00
	goto	Start
	
	org		0x04
			;	<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
					Save		 ;#### Short.Macro
			;	<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;	  ###	Goto interrupt priority	###
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

;	btfsc	INTCON,T0IF
;	goto	Tmr0.interrupt

	btfsc	PIR1,TMR1IF
	goto	Tmr1.interrupt

;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;			Portb,0 interrupt			
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Rb0.interrupt
	bcf		INTCON,INTF	
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;			Start bit wait				
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	btfsc	flag,0
	goto	Device.code		
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;	Start bit maximum length			
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	movlw	.162
	addwf	TMR0,w								
	skpnc										
	goto	Exit															
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;	Start bit minimum length			
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	movfw	TMR0
	sublw	.88	
	skpnc
	goto	Exit	
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;			Start bit Ok!				
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	bsf		flag,0
	goto	Load.Escape

			;	<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
					Transmission	 ;#### Short.Macro
			;	<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Done
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;		Succes.Protect					
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

;	movlw	.119
;	subwf	err,w
;	skpz
;	goto	Exit
;
;	movlw	.176
;	subwf	dev,w
;	skpz
;	goto	Exit
;
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,


	movfw	com
	movwf	com.out
	movfw	com2
	movwf	com2.out
	movfw	extr
	movwf	extr.out



Exit
	clrf		flag
	clrf		dev
	clrf		bit
	clrf		com
	clrf		com2
	clrf		extr

	goto	Load.Escape
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;		TMR1 interrupt!					
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tmr1.interrupt

	bcf		PIR1,TMR1IF

Load.Escape
			;	<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
					Load		 ;#### Short.Macro
			;	<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
;	#######	All Interrupt END #########	
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	


;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
;	Enter Bank1		Initializing		
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	

Start	
	bsf			STATUS,5
	clrf			TRISB
	clrf			TRISA
	bsf			TRISB,0
	bsf			TRISA,3

;	bsf			TRISA,1		;	Servo.Analog ### !!!!!!!

	movlw		.0	
	movwf		ADCON1			
	movlw		0xff				
	movwf		PR2	

	bsf			PIE1,TMR1IE

		;	20Mhz Prescale 32 zero bit .110 Strat 50 - 195	
		;	20Mhz Prescale 64 zero bit .50 Strat 162 - 88	
		;	4Mhz Prescale 16 zero bit .40  Strat 170- 61	
		;	RF Module bit6 .. 1
		;	IR Module bit6 ...0
						
	movlw		b'01000101'
	movwf		OPTION_REG			
	bcf			STATUS,5				
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
;	###		Zero.bit over check		###	
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	

	movlw		.50
	movwf		tmr.period
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
;	Megszakítás regiszetrek engedélyezése!
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	

	bsf			INTCON,GIE
	bsf			INTCON,INTE
;	bsf			INTCON,T0IE
	bsf			INTCON,PEIE

	movlw	b'00000001'
	movwf	T1CON
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
;			pwm  in Engine driver		
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	

 ;	clrf	 	TMR2 	
 ;	bsf 		T2CON,0 		
 ;	movlw 	b'00001100'	
;	movwf 	CCP1CON 	
 ;	bsf 		T2CON,2 

;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
;	Segédregiszterek induláskor törlés	
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
		
	clrf	hun
	clrf	ten
	clrf	one
	clrf	hun1
	clrf	ten1
	clrf	one1

;#####################  	MAIN PROGRAM	################################

;Main
;
;	btfss	loc,0
;	goto	$-1
;
;Cycle
;
;	movfw	com.out
;	movwf	ad.regh
;
;	movlw	0
;	subwf	ad.regh,w
;	movlw	1
;	skpnz
;	movwf	ad.regh
;
;
;	bsf		servo
;	call		position
;	bcf		servo
;	call		t.20ms
;
;	decfsz	slow,f
;	goto	Cycle
;	
;	movlw	.20
;	movwf	slow
;	
;
;	bcf		loc,0
;
;	goto	Main
;
;
;position
;	decfsz	ad.regh,f
;	goto	_nop
;	
;	movlw	.110
;	movwf	t1
;	movlw	.10
;	movwf	t2
;	decfsz	t2,f
;	goto	$-1
;	decfsz	t1,f
;	goto	$-5
;	
;	return
;
;_nop
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	$+1
;	goto	position
;
;t.20ms
;	movlw	0xff
;	movwf	t1
;	movlw	.50
;	movwf	t2
;	decfsz	t2,f
;	goto	$-1
;	decfsz	t1,f
;	goto	$-5
;	return
;
;

;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
;		### LCD Initailize	####		
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	

	call		LCD.initialize
	movlw	1
	call		lcd.cmd
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
; 		###	INITIALIZING END ###		
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	


				;		MAIN PROGRAM				
LCD

	movlw	.10
	subwf	extr.out,w
	skpnz
	bsf		out
	skpz
	bcf		out

	;	###	LCD LINE 1 ###############################

	movfw	extr.out
	movfw	com2.out
	movwf	lcd.shift
	movwf	lcd.shift.dec	
	;	###	LCD LINE 2 ###############################

	movfw	com.out
	movwf	lcd.shift2
	movwf	lcd.shift2.dec


			;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
				Lcd.Register.controll ;#### Long.Macro 
			;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	

	goto	LCD

;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
; 		###	Delay ... Subrutin's		 ###		
;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	


;########	##########	#########
	

			;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
				Lcd.text.cmd.timer.macro ;### Long.Macro
			;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
	return

			;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
				slide.s3				;### Long.Macro 
			;	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
	return

table					
    movwf    index			

	movlw	.11
	subwf	index,w
	movlw	.10
	skpnc
	movwf	index

    movlw    high(num)
    movwf    PCLATH
    movlw    low(num)
    addwf     index,w
    btfsc      STATUS,C
    incf    	    PCLATH,f
    movwf    PCL
num
	retlw		.48		;	0
	retlw		.49		;	1
	retlw		.50		;	2
	retlw		.51		;	3
	retlw		.52		;	4
	retlw		.53		;	5
	retlw		.54		;	6
	retlw		.55		;	7
	retlw		.56		;	8
	retlw		.57		;	9
	retlw		.58		;	L



;
;Inside.transmission
;
;	call		Start.15us
;	call		oFF
;
;	
;	movlw	.200
;	movwf	servo.carry	
;	movlw	.8
;	movwf	bit2
;cycle
;	rrf		servo.carry,f
;	skpnc
;	call		one.50us
;	skpc
;	call		zero.25us
;	call		oFF
;	decfsz	bit2,f
;	goto	cycle
;
;	call		pajze
;
;	goto	Inside.transmission	


;Start.15us
;	bsf		out
;	movlw	.30
;	goto	clock
;one.50us
;	bsf		out
;	movlw	.75
;	goto	clock
;zero.25us
;	bsf		out
;	movlw	.50
;	goto	clock
;oFF
;	bcf		out
;	movlw	.30
;	goto	clock
;pajze
;	movlw	0xff
;clock	
;	movwf	t1
;	decfsz	t1,f
;	goto	$-1
;	bcf		out
;	return
	end

