;
;
;	Omega Digitális inditó.  1.1 VER 2013 Március

;	PIC 24FJ256GA106

.include "P24FJ256GA106.INC"

.bss           ; adatterület
lcd:		.space 256		;255 byte az lcd memoria ad/par bit=1 sorvege=2bit 0800h tol 08fe 08ff ig 
AA:     	.space 2       ; 2 bájt 
BB:     	.space 2       ; 2 bájt 
CC:     	.space 2       ; 2 bájt 
DD:     	.space 2       ; 2 bájt 
seti0:		.space 2       ; 2 bájt 
seti1:		.space 2       ; 2 bájt 
tizes:		.space 2       ; 2 bájt 
egyes:		.space 2       ; 2 bájt 
tizedtiz:	.space 2       ; 2 bájt 
tizedegy:	.space 2
csipog:		.space 2		;csipogo valtozoja
lcdcim:		.space 2	;ebben tarolom lcd mem cim mutatojat kiirashoz 
lcdmem:		.space 2	;ebben tarolom lcd mem-be írásához
ad1000:		.space 2	;A/D feszultseg ertekek
ad500:		.space 2 	;1000m 500m 200m bejövő fesz és a tapok 3,3V 12V, 30V 5V
ad200:		.space 2
v3:			.space 2
v5:			.space 2
v12:		.space 2
v30:		.space 2
ad10tizes:		.space 2		;1000m es bontas lcd re kiirashoz
ad10egyes:		.space 2
ad10tizedtiz:	.space 2
ad10tizedegy:	.space 2
ad5tizes:		.space 2		;500m es bontas lcd re kiirashoz
ad5egyes:		.space 2
ad5tizedtiz:	.space 2
ad5tizedegy:	.space 2
ad2tizes:		.space 2		;200m es bontas lcd re kiirashoz
ad2egyes:		.space 2
ad2tizedtiz:	.space 2
ad2tizedegy:	.space 2


mem1:		.space 1024		;mem terulet ahova a start idoket tarolom !!!
;----------------------------------------------------------------------------------------------
;.section .const,psv 			;szoveg tarolasa program mem ben PSV formatumban also 16 byte on !!!!!


;===================================================================
.text

;.org 00204
udvozlo0:	.byte   42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,2				;**************** -gok
udvozlo1:	.byte   32,0,32,0,32,0,32,0,87,0,105,0,108,0,108,0,99,0,111,0,109,0,101,0,32,0,32,0,32,0,32,2		;    Willcome    "
udvozlo2:	.byte 	32,0,79,0,109,0,101,0,103,0,97,0,32,0,83,0,116,0,97,0,114,0,116,0,105,0,110,0,103,0,32,2	; Omega Starting "
udvozlo3:	.byte 	32,0,83,0,121,0,115,0,116,0,101,0,109,0,32,0,49,0,46,0,49,0,32,0,118,0,101,0,114,0,32,2		; System 1.0 ver "
hibak0:		.byte	32,0,32,0,32,0,67,0,105,0,109,0,32,0,101,0,114,0,114,0,111,0,114,0,32,0,32,0,32,0,32,2		;   Cim error    "
hibak1:		.byte 	114,0,101,0,115,0,101,0,116,0,104,0,101,0,122,0,32,0,110,0,121,0,111,0,106,0,32,0,32,2		;resethez nyomj  "
hibak2:		.byte	109,0,101,0,103,0,32,0,101,0,103,0,121,0,32,0,103,0,111,0,109,0,98,0,111,0,116,0,32,0,32,2	;meg egy gombot  "
ora1:		.byte	32,0,32,0,32,0,80,0,111,0,110,0,116,0,111,0,115,0,32,0,105,0,100,0,111,0,58,0,32,0,32,2		;   Pontos ido   "
ora2:		.byte	32,0,32,0,32,0,32,0,32,0,32,0,58,0,32,0,32,0,46,0,32,0,32,0,32,0,32,0,32,0,32,2				;      :  .      "
ora3:		.byte	65,0,108,0,108,0,105,0,116,0,97,0,115,0,104,0,111,0,122,0,32,0,110,0,121,0,111,0,109,0,106,2;Allitashoz nyomj"
ora4:		.byte	32,0,32,0,32,0,101,0,103,0,121,0,32,0,103,0,111,0,109,0,98,0,111,0,116,0,32,0,32,0,32,2		;   egy gombot   "
sz1:		.byte	49,0,48,0,48,0,48,0,109,0,32,0,32,0,44,0,32,0,86,0,32,0,32,0,32,0,58,0,32,0,32,2			;1000m  ,  V   :   "
sz2:		.byte 	32,0,53,0,48,0,48,0,109,0,32,0,32,0,44,0,32,0,86,0,32,0,32,0,32,0,58,0,32,0,32,2			; 500m  ,  V   :   "
sz3:		.byte	32,0,50,0,48,0,48,0,109,0,32,0,32,0,44,0,32,0,86,0,32,0,32,0,32,0,58,0,32,0,32,2			; 200m  ,  V   :   "
sz4:		.byte	83,0,32,0,32,0,32,0,58,0,32,0,32,0,32,0,58,0,32,0,46,0,32,2									;S   :     :  .  "
hiba1:		.byte	72,0,105,0,98,0,97,0,58,2	;Hiba:"
hiba2:		.byte	75,0,105,0,109,0,101,0,110,0,101,0,116,0,101,0,110,2	;Kimeneten!"
giba3:		.byte	84,0,97,0,112,0,104,0,105,0,98,0,97,2	;Taphiba!
Edit1:		.byte	49,0,46,0,84,0,101,0,115,0,122,0,116,2	;1.Teszt         "
Edit2:		.byte	50,0,46,0,83,0,116,0,97,0,114,0,116,0,105,0,100,0,111,0,107,2	;2.Startidok     "  
teszt1:		.byte	51,0,48,0,86,0,61,0,32,0,32,0,44,0,32,0,32,0,86,0,32,0,49,0,46,0,32,0,32,2	;30V=  ,  V 1.   "
teszt2:		.byte	49,0,50,0,86,0,61,0,32,0,32,0,44,0,32,0,32,0,86,0,32,0,50,0,46,0,32,0,32,2	;12V=  ,  V 2.   "
teszt3:		.byte	32,0,53,0,86,0,61,0,32,0,32,0,44,0,32,0,32,0,86,0,32,0,51,0,46,0,32,0,32,2	; 5V=  ,  V 3.   "
teszt4:		.byte	51,0,44,0,51,0,61,0,32,0,32,0,44,0,32,0,32,0,32,2	;3,3=  ,  V      "
teszt5:		.byte	90,0,97,0,114,0,116,2	;Zart"
teszt6:		.byte	78,0,121,0,105,0,116,2	;Nyit"




CEVT		=0x09	; Comparatorok esemeny bitjei
EVPOL0		=0x06	; Comaparatorok 0,1 invertin & non inverting 
EVPOL1		=0x07	;
CMIF		=0x02	; Comparator megszak IF 

.global __reset

__reset:
;--------- Veremtar inicializalasa ----------	
	nop
	mov 	#__SP_init, W15		;automatilusan allitja be a cimet a fordito linker
	mov		#__SPLIM_init, W0	;az utolso nem hasznalt mem terulet elejet alitja be 
;	mov		#0x00C00,W15		;C00 nal kezdodik a veremtar és 255 byte hosszu
;	mov 	#0x00Cff,W0
;	mov		W0, SPLIM
;--------------------------------------------
	btst	RCON, #POR			;mi okozta a resetet Power On ?
	bra		z,start				;branch in not
	
	bclr	RCON,#POR			;POR bit torlese
	
start:		
	goto	inicializal1
;------------- Interrupt tabla ------------------------------------------
;	.global __DefaultInterrupt
;__DefaultInterrupt:
	
.global __OscillatorFail
	__OscillatorFail:
	goto	oscerror
	
.global __AddressError
__AddressError:
	goto	cimerror
	
.global __StackError
__StackError:
	goto	stekerror
	
.global	__MathError	
__MathError:
	goto	matcherror
	
;.global _DMACError
;__DMACError:
;	goto	dmaerror
;-------------- periferiak interrupt tablaja -----------------------------------------------------
;.global	__INT0Interrupt
;__INT0Interrupt:
;	goto	INT0

;.global	__INT1Interrupt
;__INT1Interrupt:
;	goto	INT1

;.global	__INT2Interrupt
;__INT2Interrupt:
;	goto	INT2

;.global	__INT3Interrupt
;__INT3Interrupt:
;	goto	INT3

.global	__ADC1Interrupt
__ADC1Interrupt:
	goto	ADkesz

.global	__CompInterrupt
__CompInterrupt:
	goto	Comparator

;.global	__T1Interrupt
;__T1Interrupt:
;	goto
	
;.global	__T2Interrupt
;__T2Interrupt:
;	goto
	
;.global	__T3Interrupt
;__T3Interrupt:
;	goto
	
.global	__T4Interrupt
__T4Interrupt:
	goto	csipogki
	
.global	__T5Interrupt
__T5Interrupt:
	goto	LCDki
	
;.global	__SPI1Interrupt
;__SPI1Interrupt:
;	goto
	
;.global	__U1RXInterrupt
;__U1RXInterrupt:
;	goto
	
;.global	__U1TXInterrupt
;__U1TXInterrupt:
;	goto
;============== Non masked interrupt ==================================
oscerror:
		nop
		reset
		retfie
cimerror:
		nop
		reset
		retfie
stekerror:
		bclr	INTCON1,#STKERR		;stek hiba torlese
		reset
		retfie
matcherror:
		bclr.b	INTCON1,#4	;int törlese
		clr		RCOUNT		;repet utasitas nullazasa nem feltetlenul ez okozza a matematikai hibát
		retfie
;dmaerror:
;	nop
;	retfie
;========================================================================
;					Normal megszakitások
;========================================================================
;INT0:	nop			; 		
;		retfie
;------------------------------------------------------------------------
;INT1:	nop			;
;		retfie
;------------------------------------------------------------------------
;INT2:	nop			;
;		retfie
;------------------------------------------------------------------------
;INT3:	nop			;
;		retfie
;**************************************************************************************************
;---- 14 db A/D csinál 2x7 utanna megszakitas --------------------------------------------------------------------
;------ Fesuültseg meresek ketszer 7 db meres a két mért érték atlagat kiszamitani es tarolni ram ban ------------
ADkesz:		nop
				push	w0
				push	w1
				push	w2
				push	w3
				push	w4
				
	bset	LATG,#6		;Nyomogom led on
				
			;	mov		#0x02,w3		;ennyivel kell osztani
				mov		ADC1BUF0,w0		;kiolvasom 1000m 
			;	mov		ADC1BUF7,w1		;kiolvas masodik erteket de az elso AD bemenethez !
				mov		w0,v5
				
		;		mov		#ad1000,w4		;memoria cimet toltok bele
		;		call	atlagszam		
		;		mov		ADC1BUF1,w0		;kiolvasom 500m
		;		mov		ADC1BUF8,w1		;kiolvas masodik erteket de az elso AD bemenethez !
		;		mov		#ad500,w4		;memoria cimet toltok bele
		;		call	atlagszam
		;		mov		ADC1BUF2,w0		;kiolvasom 200m
		;		mov		ADC1BUF9,w1		;kiolvas masodik erteket de az elso AD bemenethez !
		;		mov		#ad200,w4		;memoria cimet toltok bele
		;		call	atlagszam
		;	mov		ADC1BUF3,w0		;kiolvasom 5V
		;	mov		ADC1BUFA,w1		;kiolvas masodik erteket de az elso AD bemenethez !
		;	mov		#v5,w4		;memoria cimet toltok bele
		;	call	atlagszam
		;	mov		ADC1BUF4,w0		;kiolvasom 3,3V
		;	mov		ADC1BUFB,w1		;kiolvas masodik erteket de az elso AD bemenethez !
		;	mov		#v3,w4		;memoria cimet toltok bele
		;	call	atlagszam
		;	mov		ADC1BUF5,w0		;kiolvasom 12V
		;	mov		ADC1BUFC,w1		;kiolvas masodik erteket de az elso AD bemenethez !
		;	mov		#v12,w4		;memoria cimet toltok bele
		;	call	atlagszam
		;	mov		ADC1BUF6,w0		;kiolvasom 30V
		;	mov		ADC1BUFD,w1		;kiolvas masodik erteket de az elso AD bemenethez !
		;	mov		#v30,w4		;memoria cimet toltok bele
		;	call	atlagszam
		bset	seti0,#0			;jelzem AD kesz adat van benne !!!!!
		pop		w4
		pop		w3
		pop		w2
		pop		w1
		pop		w0
		bclr	IFS0,#13	;AD IF ki
		retfie
		
atlagszam:			add		w0,w1,w2	;osseadom w0+w1=w2 
					repeat	#17
					div.u	w2,w3		;nem elojeles osztas w2:w3= w0 maradek w1 be kerul
					mov		w0,[w4]		;mentem ram ba 
					return
;------------------------------------------------------------------------------------------------------------------------
;----------------------------------------------------------------------------------------------------------
Comparator:		nop
				btss	CMSTAT,#8		;comparator 1
				bra		comp1
				btss	CMSTAT,#9		;comparator 2
				bra		comp2
				btss	CMSTAT,#10		;comparator 3
				bra		compvege
				
		;		btss	CM1CON,#CEVT
		;		bra		comp1
				
				
comp1:
;			btss	CM2CON,#CEVT
;				bra		comp2
				
comp2:	
;			btss	CM3CON,#CEVT
;				bra		comp3
				
compvege:		
				bclr	IFS1,#CMIF		; torlom megszak jelo bitet
				retfie
;------------- lcd re kiiras ram mem bol körforgó puffer ----------------------------------------------------------------
LCDki:			nop					;Az LCD memben a felső byte = adat/parancs jelzo, Az also byte maga az adat !!!
				push	w3
				push	w4
				push	w0
		cpsne	w13,w14		;összehasonlitom ket cim mutatot w14 ben a beírasnal hasznalt cim van
		bra		vege		;ha egyforma kilep mert nincs tobb kiirando adat
				mov		[w13++],w3		;letarolt lcd mem mutatot beolvasom növelem 
		mov		#0x08ff,w0	;lcd ram mem cim vege
		and		w13,w0,w13	;ha w13 erteke nagyobb lesz 87f nel az AND eredmenye 0800 lesz igy visszamegy a puffer elejere
				mov.b	w3,w4		;kiveszem csak az also byte ot ami az adat 
				bclr	LATD,#2		;parancs adat bit 0 ra 	
				btss	w3,#8		;ha 8-as bit=0 es akkor parancs ha 1 akkor adat
				bset	LATD,#2		;adat adat bit 1 re 	
				mov		w4,LATE		;kiirom parancsot lcd be
					bset	LATD,#0		;lcd E 
					nop
					nop
					nop
					bclr	LATD,#0		;lcd E 0 ra
				mov		w13,lcdcim	;elmentem mutatot
vege:
				bclr	IFS1,#12	; T5 IF torlese		PR5 regbe van komparalasi 16 bites adat		
				pop		w0
				pop		w4
				pop		w3
				retfie
;------------- Csipogo kikapcs --------------------------------------------------
csipogki:		push	w0
				push	w1
				mov		csipog,w1
				clr		w0
				
				cpsne	w0,w1
				bra		kikap
				dec		csipog
				bra		kilep
				
kikap:			bclr	T4CON,#15	;Timer 4 kikapcs
				bclr	LATD,#4		;csipogo off	
kilep:				
				pop		w1
				pop		w0
				bclr	IFS1,#11	; T4 IF torlese	
				retfie
;====================================================================================================================================================================
;====================================================================================================================================================================
start1:			nop
;----------- Alap kiirasa ------------------
			mov		#0x0301,w0	;lcd clear
			mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
			and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 lesz igy visszamegy a
			mov		w0,[w14++]		;parancs kezdo karakter cime van benne
			nop
			nop
		;------ varok picit
				mov		#0x0008,w0
				mov		w0,csipog	;most nem kapcsolom be a hangot csak kesleltetes
				bset	T4CON,#15	; Tmr4 engedem csipogo
				call	var1
				
				nop
				bclr	AD1CHS,#4	;11010
				bset	AD1CHS,#3	;A/D bemenet valasztas
				bclr	AD1CHS,#2	;
				bset	AD1CHS,#1
				bset	AD1CHS,#0

				bset	AD1CON1,#1	;SAMP engedelyezes
				
				
				
				
				
st1:			nop
				btss	seti0,#0		;vizsgalom AD adat megvan a ram ban
				bra		st1
				
				
				call	adutan			;fesz szamolasa
			;	call	lcdreinv		;lcd re kiiras 100m 500m 200m bejovo feszultseg erteke
		;---------------------------------------------------
			;	mov		#v3,w5			;3,3v os ertek szamitasa
			;	call	feszlcd			;ez az elso feszultseg kiszamítashoz
			;	mov		#tizes,w0
			;	call	lcdmembefesz	
			;		mov		#0x0020,w2		;ez a space karakter
			;		and		w14,w1,w14		;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800
			;		mov		w2,[w14++]		;
		;----------------------------------------------------
				mov		#v5,w5			;5v os ertek szamitasa
				call	feszlcd			;ez az elso feszultseg kiszamítashoz
				mov		#tizes,w0
				call	lcdmembefesz
					mov		#0x0020,w2		;ez a space karakter
					and		w14,w1,w14		;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800
					mov		w2,[w14++]		;	
		;----------------------------------------------------
			;	mov		#v12,w5			;5v os ertek szamitasa
			;	call	feszlcd			;ez az elso feszultseg kiszamítashoz
			;	mov		#tizes,w0
			;	call	lcdmembefesz
			;		mov		#0x0020,w2		;ez a space karakter
			;		and		w14,w1,w14		;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800
			;		mov		w2,[w14++]		;
		;----------------------------------------------------
			;	mov		#v30,w5			;5v os ertek szamitasa
			;	call	feszlcd			;ez az elso feszultseg kiszamítashoz
			;	mov		#tizes,w0
			;	call	lcdmembefesz
			;		mov		#0x0020,w2		;ez a space karakter
			;		and		w14,w1,w14		;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800
			;		mov		w2,[w14++]		;
megall:	nop		
		nop
		nop
		nop
		nop
		bra megall
				

			mov		#0x0180,w12		; kezdo sor 128
			mov		#0x0362,w11	;szoveg kezdo cimet sz1
			call	sorkiir
			mov		#0x01c0,w12		; kezdo sor 192
			mov		#0x0382,w11	;szoveg kezdo cimet sz2
			call	sorkiir
			
			mov		#0x0190,w12		; kezdo sor 144
			mov		#0x03a2,w11	;szoveg kezdo cimet sz3
			call	sorkiir
			mov		#0x01d0,w12		; kezdo sor 208
			mov		#0x03c2,w11	;szoveg kezdo cimet sz4
			call	sorkiir
			
			
			
start2:			nop
			;	bclr	LATC,#13	;Nyomogom led off
			;	btss	PORTF,#3
			;	bset	LATC,#13	;Nyomogom led on
			
				btss	seti0,#0		;vizsgalom AD adat megvan a ram ban
				bra		start2
				call	adutan
				call	lcdreinv		;lcd re input volt
				
				
				bra	start2
				
				
			
			

				
				goto start1
;================================================================================================================
;************    Subrutinok		*********************************************************************************
;================================================================================================================
adutan:			mov		#ad1000,w4	;kiszamolom kiirando erteket ad1000+32= kiirando feszultseg V
				call	feszszamol
				mov		#ad500,w4
				call	feszszamol
				mov		#ad200,w4
				call	feszszamol
				mov		#v3,w4
				call	feszszamol
				mov		#v5,w4
				call	feszszamol
				mov		#v12,w4
				call	feszszamol
				mov		#v30,w4
				call	feszszamol
				return
;------------ csak a bejovo start feszultsegek lcd re kiirasahoz atszamitas --------------------------------------------
lcdreinv:		mov		#ad1000,w5
				mov		#ad10tizes,w6
				mov		#ad10egyes,w7
				mov		#ad10tizedtiz,w8
				mov		#ad10tizedegy,w9
				call	lcdkiszamol
				mov		#ad500,w5
				mov		#ad5tizes,w6
				mov		#ad5egyes,w7
				mov		#ad5tizedtiz,w8
				mov		#ad5tizedegy,w9
				call	lcdkiszamol
				mov		#ad200,w5
				mov		#ad2tizes,w6
				mov		#ad2egyes,w7
				mov		#ad2tizedtiz,w8
				mov		#ad2tizedegy,w9
				call	lcdkiszamol
				return
;----------- feszultseg kiszamitas lcd re kiirashoz egyesevel w5 ben már benne van a kiszamitadno ertek -------------------------------------------------------------------------------
feszlcd:			mov		#tizes,w6
					mov		#egyes,w7
					mov		#tizedtiz,w8
					mov		#tizedegy,w9
					call	lcdkiszamol
					return
;-----------  feszultsegek lcd mem be torteno kiirasa ----------------------------------------------------
lcdmembefesz:		mov		#0x08ff,w1		;lcd ram mem cim vege Vizsgalat !!!!!
					and		w14,w1,w14		;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800
					mov		[w0++],[w14++]	;tizesek   w0 ról kiveszi növeli w0 at és lcd mem be rakja
					and		w14,w1,w14		;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800
					mov		[w0++],[w14++]	;egyesek
					mov		#0x002c,w2		;ez a vesszo 
					and		w14,w1,w14		;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800
					mov		w2,[w14++]		;
					and		w14,w1,w14		;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800
					mov		[w0++],[w14++]	;tized tizesek
					and		w14,w1,w14		;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800
					mov		[w0++],[w14++]	;tized egyesek
					return
;----------------A/D atalakitas ertekenek szamitasa ----------------------------------------------------------------------
;	w4 ben van az A/D eredmeny erteke ezt 32 vel kell osztani, a maradekot 8-al osztani majd a maradekot szorzom 3 mal
;	w4 ben lesz az eredmeny felso byte az egesz szamokat alo byte tizedes szamokat tartalmazza
;			w2:w3=w0 maradek w1 ben lesz
feszszamol:				mov		#32,w3		;
						mov		[w4],w2		;kiolvasom ram bol ad adatot
						repeat	#17
						div.u	w2,w3		;w2 osztom w3 (32)mal
						mov		w0,[w4]		;elmentem
						clr		w2
						cp0		w1			;megnezem w1=0 val mert akkor nem csináljuk tovabb !
						bra		Z,nulla
			;-------------------------------------
						mov		#8,w3
						mov		w1,w2		;maradekot tovabb osztom
						repeat	#17
						div.u	w2,w3
						mov		w0,w5		;elmentem 1-31 ig taró lista 
						mul.uu	w1,#0x03,w2	;maradekot megszorzom 3 mal w1*3= w2,w3 eredmeny w2 ben lesz 0-21 ig
			;--------------------------------------
						clr		w6
						mov		#01,w3
						cpsne	w5,w3		;w5=w3 al akkor köv utasitast atlepi
						mov		#25,w6		;25 dec et toltok 1 szer van eddig meg
						mov		#02,w3
						cpsne	w5,w3		;w5=w3 al akkor köv utasitast atlepi
						mov		#50,w6		;51 dec et toltok 2 szer van eddig meg
						mov		#03,w3
						cpsne	w5,w3		;w5=w3 al akkor köv utasitast atlepi
						mov		#75,w6		;75 dec et toltok 3 szer van eddig meg
						add		w6,w2,w2	;osszeadom és megkapom a tizedes feszultseg erteket
nulla:					mov		[w4],w0
						swap	w0			;also byte ot felsore teszem
						mov.b	w2,w0		;csak az also byte ra betoltom w2 erteket ezek a tizedes ertekek
						mov		w0,[w4]
						return
;-------------------------------------------------------------------------------------------------------------------
;-------------- LCD kiirashoz a szamok szétszedese tizesre egyesekre stb. ------------------------------------------
;---------  w5 ben van a szetszedendo szam magas byte egesz szam alacsony byte tort szam -okat tartalmazza
;			w6 ban tizes, w7 egyes ,w8 tort tizes, w9 tort egyes
;-------------------------------------------------------------------------------------------------------------------
lcdkiszamol:				clr			w4
							mov.b		[w5],w4		;az also byte ot atrakom w4 be ez a tort erteke
							mov			[w5],w5		;cimzett ram erteket rakom vissza w5 be
							swap		w5			;felcserelem alulra kerul az w5 egesz ertek
							ZE			w5,w5		;felso byte ot nullazom
							
							clr			[w6]		;torlom w6 ram tartalmat
megvan:						sub			w5,#10,w1	;w5-10=w1 
							btsc		SR,#N		;minusz eredmeny lesz akkor nincs tizes ertek
							bra			nincst
							inc			[w6],[w6]	;novelem 1 el tizest
							mov			w1,w5		;vissza kell tenni 
							bra			megvan
nincst:						add			#48,w5		;hozza adok 48 at és ascii karakter lesz belolle
							mov			w5,[w7]		;maradekot egyeseket w7 be teszem
							mov			[w6],w0		;kiveszem az értéket 
							add			#48,w0		;48+w0=ram ba tizesekhez is hozza adok 48 at ascii legyen 
							mov			w0,[w6]	
		;--------- tort ertek szamitasa ---------------------------------------------
							clr			[w8]		;torlom w8 ram tartalmat
megvan1:					sub			w4,#10,w1	;w4-10=w1 
							btsc		SR,#N		;minusz eredmeny lesz akkor nincs tizes ertek
							bra			nincst1
							inc			[w8],[w8]	;novelem 1 el tort tizest
							mov			w1,w4		;vissza kell tenni 
							bra			megvan1
nincst1:					add			#48,w4		;hozza adok 48 at és ascii karakter lesz belolle
							mov			w4,[w9]		;maradekot egyeseket w9 be teszem
							mov			[w8],w0		;kiveszem az értéket 
							add			#48,w0		;48+w0=ram ba tizesekhez is hozza adok 48 at ascii legyen 
							mov			w0,[w8]	
							return
;---------------- 1 teljes sor kiirasa ------------------------------------------------
;		W12= melyik sor 1.sor=00h 2.sor=40h 3.sor=10h 4.sor=50h 
;		W11= melyik szöveg, kezdocíme 
;		w14= memoria mutato cimet tartalmazza 
;		w13= megszakitasban a ram bol a kiirashoz a mem cimet tartalmazza
sorkiir:			
					mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
					and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 lesz igy visszamegy a
			mov		w12,[w14++]		;parancs kezdo karakter cime van benne
			clr		TBLPAG			;torlom tabla kezelo felso bitjeit 
			
vanmeg:		TBLRDL	[w11++],w0		;kiolvasom adatot prog mem bol[w14++]
				mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
				and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 
			mov		w0,[w14++]	;kiirom a w14 altal cimzett ram teruletre
			btss	w0,#9			;ha magas a 9 es bit akkor vege az adatsornak
			bra		vanmeg
			return
;-------------------------------------------------------------------------------
;--------------- varakozas megvarasa -------------------------------------------
var1:			nop
				btsc	T4CON,#15		;vizsgalom megvarom a csipogas veget 
				bra		var1
				return
;-------------------------------------------------------------------------------





;***********************************************************************************************************
;**  					 Inicializalas   																  **
;***********************************************************************************************************
inicializal1:
;-------  Analog portok es AD beallitasa ---------------------------------------
;				nop						;RA port analog OFF
;				mov	#0x0400,W0			;RA 10 bit On Vref A/D hez
;				mov	w0,ANSA
;				mov	#0x01FC,W0			;RB port analog 4-8 ig ON a tobbi off
;				mov	w0,ANSB	
;				clr ANSC				;a többi törölve mind digital I/O 
;				clr	ANSD
;				clr	ANSE
;				clr	ANSF
;				clr	ANSG
;------ A/D beállitása --------------------------------------------------------------------------------
				clr		CVRCON			;Comparator referencia fesz OFF
		; Engedélyezem használni kivant analog bemeneteket 
				mov		#0x3f3f,W0		;3f3fanalog port analog vagy digital
				mov		W0,AD1PCFGL		;An 1,2,3,4,5, 8,9,10,11,12,13 bekapcsolva Analog In 
				mov		#0x0003,W0		;A/D Band GAP Reference disabled
				mov		W0,AD1PCFGH		;Mindketto ON
		; Referencia feszültség beallitasa		
				bclr	AD1CON2,#15		;Vcfg  feszültség referencia forrasa
				bclr	AD1CON2,#14		;Vref+ On Vref 3,2V a töbi bit kikapcsolva AVss re
				bset	AD1CON2,#13
		; A/D konverzios orajel beallitasa
	;			bset	AD1CON3,#12		;SAM Auto-Samle time bit 16 re van allitva 12,11,10,9,8 bitek
	;			bset	AD1CON3,#11		;legnagyobb
	;			bset	AD1CON3,#10
	;			bset	AD1CON3,#9
	;			bset	AD1CON3,#8
		;		bset	AD1CON3,#7
		;		bset	AD1CON3,#3
		;		bset	AD1CON3,#2		;1,2,4 =7
			;	bset	AD1CON3,#1
			;	bset	AD1CON3,#0		;ADCS  A/D konverzio clock bitjei 2 re allitva 2*Tcy ????
			;	bclr	AD1CON3,#15		;ADRC  AD konverzio Clock forras valaszto belso ora
		mov		#0x1f3f,W0				;Tad= 16X Tcy !!!! ez van beallitva !
		mov		w0,AD1CON3							;max sample time 31Tad  Tad= 2x Tcy =125 ns >75ns ??? !!!!!!!
				
		; Mintaveteli konverzios szekvencia választása  (AD1CON 7:5 )
			;	bset	AD1CON1,#7		;konverzio trigger formatuma 111
			;	bset	AD1CON1,#6		;SSRC  mindharom bitje magas Auto Convert!
			;	bset	AD1CON1,#5	
				
				bclr	AD1CON1,#7		;000 auto konvert off
				bclr	AD1CON1,#6
				bclr	AD1CON1,#5
				
		; Eredmények megjelenese a pufferbe 
				bclr	AD1CON1,#9		;FORM  Iteger formatumban tarolja az adatot
				bclr	AD1CON1,#8
				
		; A/D sceneles beallitasa							
			;	mov		#0x3f02,W0		;an1=100m  !!!!!!!!!!!!
			;	mov		W0,AD1CSSL		;Input scan valaszto regiszter An 1,8,9,10,11,12,13 kivalasztva !!!!!!!!!4
			clr		AD1CSSL		;No scanning !!!!
;			clr		AD1CSSH			
				
				bclr	AD1CON2,#10		;CSCNA Scan input valaszto  1= scan input
		;		bset	AD1CON2,#10		;CSCNA Scan input valaszto  1= scan input

;				bclr	AD1CON2,#7		;BUFS Buffer fill status bit  00-0F csak olvashato!!!!
;										;SMPI sample/converter Int valaszto bit 5,4,3,2 bitek
				bset	AD1CON2,#5		;1-16 konverziot tud egymás után végrehajtani
				bset	AD1CON2,#4		;utánna kér megszakitast
				bclr	AD1CON2,#3		;14 re beallitva 2*7 mindig kétszer méri meg a feszt !!
				bset	AD1CON2,#2	;2-5 bit
				
				bclr	AD1CON2,#1		;BUFM  Buffer mod valaszto  16 szóra beállitva mindig a 0x00 cimtol kezdi a feltoltest
				bclr	AD1CON2,#0		;ALTS  Alternativ input mod valaszto  MUXA MUXB multiplexelt beallitas csak a MUXA-t használja 
		; Csatorna bemenet valaszto
;				bclr	AD1CHS,#15		;Channel csatornak  negativ benetei Vr- =0 AN0 =1
;				bclr	AD1CHS,#14
;				bclr	AD1CHS,#13
;				bclr	AD1CHS,#12
;				bclr	AD1CHS,#11
;				bclr	AD1CHS,#10
;				bclr	AD1CHS,#9
;				bclr	AD1CHS,#8
;				bclr	AD1CHS,#7
;				bclr	AD1CHS,#6
;				bclr	AD1CHS,#5
;				bclr	AD1CHS,#4
;				bclr	AD1CHS,#3
;				bclr	AD1CHS,#2
;				bclr	AD1CHS,#1
;				bclr	AD1CHS,#0
;				mov		#0x302,W0		;
;				mov		W0,AD1CHS		;MUXA AN0 inputra  MUXB AN0 inputra
				clr		AD1CHS			;az osszes nulla
;				clr		ANCFG			;A/D Band GAP Reference disabled
		; A/D Engedelyezese !!!!!!!
				bset	AD1CON1,#2		;ASAM AD sample auto start enable
				bset	AD1CON1,#13		;ADSIDL AD modul idle modban nem mukodik
				bset	AD1CON1,#15		;ADON AD modul bekapcsolva
				
;				bset	AD1CON1,#1		;SAMP AD Sample enable
;------------ Comparator modul ----------------------------------------------------------------------------------
		;.......... Comp 1 ..............
				mov		#0x8280,W0		;Comparator CxINA+=CNA  CxINB-=CNB
				mov		w0,CM1CON
		;		bclr	CM1CON,#CEVT
;				clr		CM1CON
		;.......... Comp 2 ..............
				mov		#0x8280,W0		;Comparator CxINA+=CNA  CxINB-=CNB
				mov		w0,CM2CON
		;		bclr	CM2CON,#CEVT
;				clr		CM2CON
		;.......... Comp 3 ..............
				mov		#0x8280,W0		;Comparator CxINA+=CNA  CxINB-=CNB
				mov		w0,CM3CON
		;		bclr	CM3CON,#CEVT
;				clr		CM3CON
			bset	CMSTAT,#15		;Comparator IDLE modban nem mulodik eggyik komparator sem.
			
;--------------- Real Time Ora RTCC ----------------------------------------------------------------------
			bset	OSCCON,#1		;SOSCEN bit 1 be mert külső 32,768 KHZ kristaly az órához kell !!
			;		mov		#0x80c0,W0		;Real Time ora
			;		mov		w0,RCFGCAL		;
			
			mov		#NVMKEY,w1		;NVMKEY cimet W1 be
			mov		#0x55,w2		;Irashoz 55h AAh at kell irni NVMKEY be !!
			mov		w2,[w1]			;55h irasa
			mov		#0xAA,w3
			mov		w3,[w1]			;AAh irasa
			bset	RCFGCAL,#13		;RTCWREN: Value Write Enable bit ON=Felhasznalo atirhatja a regisztereket
				;	mov		#0x00,w0		;0-7 RTC calibracios bit
				;	mov		w0,RCFGCAL		;
			bclr	RCFGCAL,#15		;RTCC OFF
				;	bset	RCFGCAL,#12		;RTCSYNC: RTCC Value Registers Read Synchronization bit
				;	bclr	RCFGCAL,#11		;HALFSEC: Half-Second Status bit
					bclr	RCFGCAL,#10		;RTCOE: RTCC Output Enable bit   0=disabled
					clr		PADCFG1			;
					clr		ALCFGRPT		;alarm OFF

	BSET	RCFGCAL, #8
	BSET	RCFGCAL, #9
	

	MOV	#0x0008, W0	;RTCVAL =18bin 0x0012h;   // Year
	MOV	WREG, RTCVAL
	MOV	#0x0101, W0	;RTCVAL = 0x0101;   // Month / day
	MOV	WREG, RTCVAL
	mov	#0x0608, w0
	mov wreg, RTCVAL		;RTCVAL = 0x0000;   // weekday / hours
	CLR	RTCVAL		;RTCVAL = 0x0000;   // min / sec

	BSET	RCFGCAL, #15	;RTCC ON
					
			mov		#NVMKEY,w1
			mov		#0x55,w2
			mov		w2,[w1]
			mov		#0xAA,w3
			mov		w3,[w1]
			bclr	RCFGCAL,#13		;RTCWREN:
		;			bset	CLKDIV,#8		;ezek 31,25 osztast allítjak be !			?????????
		;			bset	CLKDIV,#9		;RCDIV<2:0>: FRC Postscaler Select bits		?????????
		;			bset	CLKDIV,#10
;-------------- Open Drain kimenet konfigja CN Interrupt változás figyelés esetnén más a beállítás !!!!
;				mov		#0xc6ff,W0		;A port teljes 
;				mov		W0,ODCA
;				nop
				mov		#0xffff,W0		;B Port
				mov		W0,ODCB
				nop
				mov		#0x0000,W0		;C Port  off
				mov		W0,ODCC
				nop
				mov		#0x0fff,W0		;D Port4071 dec  0,1,2,3,4,5,6,7,8,9,10,11
				mov		W0,ODCD
				nop
				mov		#0x00ff,W0		;E Port 0-7 ig LCD data
				mov		W0,ODCE
				nop
				mov		#0x007f,W0		;F Port 0-6 ig
				mov		W0,ODCF
				nop
				mov		#0x0040,W0		;G Port G6 Led out
				mov		W0,ODCG
				nop
;---------- I/O Portok beallitasa ----------------------------------------------
		;		mov		#0x0000,W0		;osszes out
		;		mov		W0,TRISA
				nop
				mov		#0x3f7f,W0		;0,1,2,3,4,5,6, 8,9,10,11,12,13 IN  7,14,15 OUT
				mov		W0,TRISB
				nop
				mov		#0x3000,W0		;12,13 IN  14,15 out
				mov		W0,TRISC
				nop
				mov		#0x0fc0,W0		;6,7,8,9,10,11 IN tobbi OUT
				mov		W0,TRISD
				nop
				mov		#0x0000,W0		;mind kimenet LCD data
				mov		W0,TRISE
				nop
				mov		#0x005f,W0		;0,1,2,3,4,6 IN 
				mov		W0,TRISF
				nop
				mov		#0x0000,W0		;mind out
				mov		W0,TRISG
				nop
				clr		LATB
				clr		LATC
				clr		LATD
				clr		LATE
				clr		LATF
				clr		LATG
;--------- PPS regiszterek beallitasa és IO LOCK ki be kapcsolasa ------------
				mov		#OSCCON,w1		;ezek a sorok szükségesek 
				mov		#0x46,w2
				mov		#0x57,w3
				mov.b	w2,[w1]
				mov.b	w3,[w1]
				bclr	OSCCON,#6		;IO lock tiltas
	;----- PPS INPUT regiszterek ----------------------------------------------
				mov		#0x0000,w0		;INT1 REM1
				mov		w0,RPINR0
				mov		#0x0000,w0		;Alsó byte INT2  felső INT3 INT 
				mov		w0,RPINR1
				mov		#0x0000,w0		;INT4
				mov		w0,RPINR2
				mov		#0x0000,w0		;Timer2 Timer3 OFF
				mov		w0,RPINR3
				mov		#0x0000,w0		;Timer4 Timer5 Off
				mov		w0,RPINR4
				mov		#0x0000,w0		;Input capture 2,1 off
				mov		w0,RPINR7
				mov		#0x0000,w0		;Input capture 4,3 off
				mov		w0,RPINR8
				mov		#0x0000,w0		;Input capture 6,5 off
				mov		w0,RPINR9
				mov		#0x0000,w0		;Input capture 8,7 off
				mov		w0,RPINR10
				mov		#0x0000,w0		;Output Compare B,A off
				mov		w0,RPINR11
				mov		#0x0000,w0		;Input capture 9 off
				mov		w0,RPINR15
				mov		#0x0000,w0		;UART3 Receiver RX
				mov		w0,RPINR17
				mov		#0x0000,w0		;UART1 CTS, RX=RPi37 (0025h) nem kell
				mov		w0,RPINR18
				mov		#0x0000,w0		;UART2 CTS, RX
				mov		w0,RPINR19
				mov		#0x0000,w0		;SPI1 SCK1 IN SDI1 IN  VFD vezerles az SPI1 rol bemenet nincs
				mov		w0,RPINR20
				mov		#0x0000,w0		;UART3 CTS, SPI1 SS1 IN
				mov		w0,RPINR21
				mov		#0x0000,w0		;SPI2 CLK IN, SPI2 SDI2 IN Data in
				mov		w0,RPINR22
				mov		#0x0000,w0		;SPI2 SPI2SSP IN
				mov		w0,RPINR23
				mov		#0x0000,w0		;UART4 CTS, RX In
				mov		w0,RPINR27
				mov		#0x0000,w0		;SPI3  SCK IN, SDI IN
				mov		w0,RPINR28
				mov		#0x0000,w0		;SPI3 SS3 In Slave select
				mov		w0,RPINR29
	;---- PPS OUTPUT regiszterek -------------------------------------------------
				mov		#0x0000,w0		;RP1,RP0
				mov		w0,RPOR0
				mov		#0x0000,w0		;RP3,RP2
				mov		w0,RPOR1
				mov		#0x0000,w0		;RP5,RP4
				mov		w0,RPOR2
				mov		#0x0000,w0		;RP7,RP6
				mov		w0,RPOR3
				mov		#0x0000,w0		;RP9,RP8
				mov		w0,RPOR4
				mov		#0x0000,w0		;RP11,RP10
				mov		w0,RPOR5
				mov		#0x0000,w0		;RP13,RP12
				mov		w0,RPOR6
				mov		#0x0000,w0		;RP15,RP14
				mov		w0,RPOR7
				mov		#0x0000,w0		;RP17,RP16
				mov		w0,RPOR8
				mov		#0x0000,w0		;RP19,RP18
				mov		w0,RPOR9
				mov		#0x0003,w0		;RP21,RP20=TX1
				mov		w0,RPOR10
				mov		#0x0000,w0		;RP23,RP22  
				mov		w0,RPOR11
				mov		#0x0000,w0		;RP25,RP24	 
				mov		w0,RPOR12
				mov		#0x0000,w0		;RP27,RP26
				mov		w0,RPOR13
				mov		#0x0000,w0		;RP29,RP28
				mov		w0,RPOR14
				mov		#0x0000,w0		;RP31,RP30
				mov		w0,RPOR15
				nop
				mov		#OSCCON,w1
				mov		#0x46,w2
				mov		#0x57,w3
				mov.b	w2,[w1]
				mov.b	w3,[w1]
				bset	OSCCON,#6		;IO lock tiltas
;------------ TMR 4 Csipogo ido -------------------------------------------------------------------------------
				mov		#0x2030,w0		;a0h 20h   
				mov		w0,T4CON		;Tmr5 timer beallitasa
				mov		#0x07ff,w0		;0a 
				mov		w0,PR4			;Tmr5 periodus regisztere 32Mhz / 256 / 5= 25.000 40us 
				
;------------ TMR 5 -------------------------------------------------------------------------------
				mov		#0xa020,w0		;a0h 20h   
				mov		w0,T5CON		;Tmr5 timer beallitasa
				mov		#0x000a,w0		;0a 
				mov		w0,PR5			;Tmr5 periodus regisztere 32Mhz / 256 / 5= 25.000 40us 
				
;---- interrupt beallitas -------------------------------------------------------------------------
				bset	SR,#5		; interrup prioritas szintje 7-0 ig ha 7 es akkor a periferiak IRQ ja tiltott !!
				bset	SR,#6
				bclr	SR,#7		; CPU 3-as szntre beallítva 4,5,6,7 magasabb !!!
				
				bset	INTCON1,#15	; megszakítások megszakíthatjak egymást !!! 
				bclr	INTCON2,#15	; Alternativ interrupt vektor ( alpban van )
				
;				bclr	IEC0,#13	; AD1 IE
;				bclr	IEC0,#12	; U1TX IE
;				bclr	IEC0,#11	; U1RX IE
;				bclr	IEC0,#10	; SPI1 IE
;				bclr	IEC0,#9		; SPF1 IE
;				bclr	IEC0,#8		; T3 IE		
;				bclr	IEC0,#7		; T2 IE		
;				bclr	IEC0,#6		; OC2 IE
;				bclr	IEC0,#5		; IC2 IE
;				bclr	IEC0,#4		;
;				bclr	IEC0,#3		; T1 IE
;				bclr	IEC0,#2		; OC1 IE
;				bclr	IEC0,#1		; IC1 IE
;				bclr	IEC0,#0		; INT0 IE
				
				
;				bclr	IEC1,#15	; U2TX IE
;				bclr	IEC1,#14	; U2RX IE
;				bclr	IEC1,#13	; INT2 IE
;				bclr	IEC1,#12	; T5 IE			LCD kiiras
				bset	IEC1,#11	; T4 IE			csipogo idozitoje
;				bclr	IEC1,#10	; OC4 IE
;				bclr	IEC1,#9		; OC3 IE
;				bclr	IEC1,#8		;
;				bclr	IEC1,#7		; IC8 IE 
;				bclr	IEC1,#6		; IC7 IE
;				bclr	IEC1,#5		;
;				bclr	IEC1,#4		; INT1 IE
;				bclr	IEC1,#3		; CN IE	
	;			bset	IEC1,#2		; CM IE  Comparator		
;				bclr	IEC1,#1		; MI2C1 IE Master I2C 
;				bclr	IEC1,#0		; SI2C1 IE Slave I2C
				
;				bclr	IEC2,#15	; 
;				bclr	IEC2,#14	; 
;				bclr	IEC2,#13	; PMP IE
;				bclr	IEC2,#12	; OC8 IE
;				bclr	IEC2,#11	; OC7 IE
;				bclr	IEC2,#10	; OC6 IE
;				bclr	IEC2,#9		; OC5 IE
;				bclr	IEC2,#8		; IC6 IE
;				bclr	IEC2,#7		; IC5 IE
;				bclr	IEC2,#6		; IC4 IE
;				bclr	IEC2,#5		; IC3 IE
;				bclr	IEC2,#4		; 
;				bclr	IEC2,#3		; 	
;				bclr	IEC2,#2		; 
;				bclr	IEC2,#1		; SPI2 IE
;				bclr	IEC2,#0		; SPF2 IE
				
;				bclr	IEC3,#14	; RTC IE
;				bclr	IEC3,#13	; 
;				bclr	IEC3,#12	; 
;				bclr	IEC3,#11	; 
;				bclr	IEC3,#10	; 
;				bclr	IEC3,#9		; 
;				bclr	IEC3,#8		; 
;				bclr	IEC3,#7		; 
;				bclr	IEC3,#6		; INT4 IE
;				bclr	IEC3,#5		; INT3 IE
;				bclr	IEC3,#4		; 
;				bclr	IEC3,#3		; 	
;				bclr	IEC3,#2		; Mi2C IE
;				bclr	IEC3,#1		; Si2C IE
;				bclr	IEC3,#0		; 
				
;				bclr	IEC4,#15	; 
;				bclr	IEC4,#14	; 
;				bclr	IEC4,#13	; CTMU IE
;				bclr	IEC4,#12	; 
;				bclr	IEC4,#11	; 
;				bclr	IEC4,#10	; 
;				bclr	IEC4,#9		; 
;				bclr	IEC4,#8		; LVD IE
;				bclr	IEC4,#7		; 
;				bclr	IEC4,#6		; 
;				bclr	IEC4,#5		; 
;				bclr	IEC4,#4		; 
;				bclr	IEC4,#3		; CRC IE	
;				bclr	IEC4,#2		; U2ER IE
;				bclr	IEC4,#1		; U1ER IE
;				bclr	IEC4,#0		; 
				
;				bclr	IEC5,#15	; 
;				bclr	IEC5,#14	; 
;				bclr	IEC5,#13	; IC9 IE
;				bclr	IEC5,#12	; OC9 IE
;				bclr	IEC5,#11	; SPI3 IE
;				bclr	IEC5,#10	; SPF3 IE
;				bclr	IEC5,#9		; U4TX IE
;				bclr	IEC5,#8		; U4RX IE
;				bclr	IEC5,#7		; U4ER IE
;				bclr	IEC5,#6		; IE
;				bclr	IEC5,#5		; Mi2C3 IE
;				bclr	IEC5,#4		; Si2C3 IE
;				bclr	IEC5,#3		; U3TX IE	
;				bclr	IEC5,#2		; U3RX IE
;				bclr	IEC5,#1		; U3ER IE
;				bclr	IEC5,#0		; 
				
				mov		#0x0000,w0		;
				mov		w0,IPC0
				mov		#0x0000,w0		;
				mov		w0,IPC1
				mov		#0x0000,w0		;
				mov		w0,IPC2
				mov		#0x0050,w0		; A/D 5-os megszak szint
				mov		w0,IPC3
				mov		#0x0600,w0		;0700 Comparator 7-es szinten van !
				mov		w0,IPC4
				mov		#0x0000,w0		;
				mov		w0,IPC5
				mov		#0x4000,w0		;TMR4 4 es szinten csipogo
				mov		w0,IPC6
				mov		#0x0004,w0		;TMR5 4 es szinten van ! LCD kiiras
				mov		w0,IPC7
				mov		#0x0000,w0		;
				mov		w0,IPC8
				mov		#0x0000,w0		;
				mov		w0,IPC9
				mov		#0x0000,w0		;
				mov		w0,IPC10
				mov		#0x0000,w0		;
				mov		w0,IPC11
				mov		#0x0000,w0		;
				mov		w0,IPC12
				mov		#0x0000,w0		;
				mov		w0,IPC15
				mov		#0x0000,w0		;
				mov		w0,IPC16
				mov		#0x0000,w0		;
				mov		w0,IPC18
				mov		#0x0000,w0		;
				mov		w0,IPC19
				mov		#0x0000,w0		;
				mov		w0,IPC20
				mov		#0x0000,w0		;
				mov		w0,IPC21
				mov		#0x0000,w0		;
				mov		w0,IPC22
				mov		#0x0000,w0		;
				mov		w0,IPC23
				
;---------------------------------------------------------------------------------
				nop
				bclr	IFS1,#CMIF		; torlom megszak jelo bitet
		bclr	LATG,#6		;Nyomogom led off
		clr		seti0		;
		clr		seti1		;
				mov		#lcd,w13		;0800h LCD kezdo ram memoria cime megszakitasban!!!!
				mov		w13,w14			;Lcd ram kezdo cim mem be iraskor
				mov		W13,lcdcim 
;---------- lcd inicia udvozlo szoveg vagy hiba kiirasa ------------------------------------
;		W12= melyik sor 1.sor=00h 2.sor=40h 3.sor=10h 4.sor=50h 
;		W11= melyik szöveg, kezdocíme 
;		w14= memoria mutato cimet tartalmazza 
;		w13= megszakitasban a ram bol a kiirashoz a mem cimet tartalmazza
				bclr	LATD,#1		;lcd ir olvas bitje fixre 0-ra
				bset	IEC1,#12	; T5 IE	LCD kiiras enable
				bset	IEC0,#13	; AD1 IE
	;			bset	IEC1,#2		; CM IE  Comparator
		;****************************************************		
				mov		#0x0fff,w0		;0a 
				mov		w0,PR5			;Tmr5 periodus regisztere 32Mhz / 256 / 5= 25.000 40us
				nop
				mov		#0x0138,w0	;8bites 2 sor (4 soros )
				mov		w0,[w14++]
				mov		#0x010c,w0	;lcd on cursor off
				mov		w0,[w14++]
				mov		#0x0106,w0	;kép all cursor mozog
				mov		w0,[w14++]
				mov		#0x0301,w0	;lcd clear
				mov		w0,[w14++]
loop1:		nop
			cpseq	w13,w14		;osszehasonlitom hogy kiirta e már az adatot lcd re !!!
			bra		loop1 		;megvarom lcd re kiirast mindenkepp	
		;****** udvozlo szoveg kiiras ******************************* 
				mov		#0x0180,w12		; kezdo sor 128
		;		mov		#TBLPAGE(udvozlo0),w12
				mov		#0x0204,w11	;szoveg kezdo cimet elvileg 00204h 1 szoveg
				call	sorkiir
				mov		#0x01c0,w12		; kezdo sor 192
				mov		#0x0224,w11	;szoveg kezdo cimet 
				call	sorkiir
				mov		#0x0190,w12		; kezdo sor 144
				mov		#0x0244,w11	;szoveg kezdo cimet 
				call	sorkiir
				mov		#0x01d0,w12		; kezdo sor 208
				mov		#0x0264,w11	;szoveg kezdo cimet 
				call	sorkiir
		;********** 2 őt  csipog *******************************************
				mov		#0x0001,w0
				mov		w0,csipog
				bset	LATD,#4		;Csipogo on
				bset	T4CON,#15	; Tmr4 engedem csipogo
				call	var1
				
				mov		#0x0002,w0
				mov		w0,csipog	;most nem kapcsolom be a hangot csak kesleltetes
				bset	T4CON,#15	; Tmr4 engedem csipogo
				call	var1
				
				mov		#0x0002,w0
				mov		w0,csipog
				bset	LATD,#4		;Csipogo on
				bset	T4CON,#15	; Tmr4 engedem csipogo
				call	var1
			;------- varakozas ------------------------------------------------
				mov		#0x006f,w0
				mov		w0,csipog	;most nem kapcsolom be a hangot csak kesleltetes
				bset	T4CON,#15	; Tmr4 engedem csipogo
				call	var1
				
				mov		#0x000a,w0		;0a  visszaírom lcd kijelzes 40 mikrosec idejet
				mov		w0,PR5			;Tmr5 periodus regisztere 32Mhz / 256 / 5= 25.000 40us
			;------- ora kiirasa plusz nyomogomb varakozas ---------------------
				mov		#0x0180,w12		; kezdo sor 128
				mov		#0x02e2,w11	;szoveg kezdo cimet elvileg 00204h 1 szoveg
				call	sorkiir
				mov		#0x01c0,w12		; kezdo sor 192
				mov		#0x0302,w11	;szoveg kezdo cimet 
				call	sorkiir
				
				mov		#0x0190,w12		; kezdo sor 144
				mov		#0x0322,w11	;szoveg kezdo cimet 
				call	sorkiir
				mov		#0x01d0,w12		; kezdo sor 208
				mov		#0x0342,w11	;szoveg kezdo cimet 
				call	sorkiir
				
				
	;------ varok picit
				mov		#0x002f,w0
				mov		w0,csipog	;most nem kapcsolom be a hangot csak kesleltetes
				bset	T4CON,#15	; Tmr4 engedem csipogo
				call	var1
	goto	start1
	
.end












	
ujrakiir:

					
;rtcc.c,133 :: 		void RTCCGetDateTime( struct datetime * s_dt ) {
;rtcc.c,136 :: 		RCFGCALbits.RTCPTR0 = 1;
	BSET	RCFGCAL, #8
;rtcc.c,137 :: 		RCFGCALbits.RTCPTR1 = 1;
	BSET	RCFGCAL, #9
;rtcc.c,139 :: 		val = RTCVAL;
; val start address is: 4 (W2)
	MOV	RTCVAL, W2
;rtcc.c,140 :: 		s_dt->year = val & 0x00FF;
	;	ADD	W10, #6, W1
	;	MOV	#255, W3
	;	AND	W2, W3, W3
; val end address is: 4 (W2)
	;	MOV.B	W3,w2
;rtcc.c,142 :: 		val = RTCVAL;
; val start address is: 6 (W3)
	MOV	RTCVAL, W3
;rtcc.c,143 :: 		s_dt->day =  val & 0x00FF;
	;	ADD	W10, #3, W1
	;	MOV	#255, W3
	;	AND	W4, W3, W3
	;	MOV.B	W3,w5
;rtcc.c,144 :: 		s_dt->month  = (val >> 8) & 0x00FF;
	;	ADD	W10, #5, W2
	;	LSR	W4, #8, W4
; val end address is: 6 (W3)
	;	MOV	#255, W0
	;	AND	W1, W0, W0
	;	MOV.B	W0, [W2]
;rtcc.c,146 :: 		val = RTCVAL;
; val start address is: 6 (W3)
	MOV	RTCVAL, W4
;rtcc.c,147 :: 		s_dt->hrs = val & 0x00FF;
	;	ADD	W10, #2, W1
	;	MOV	#255, W0
	;	AND	W3, W0, W0
	;	MOV.B	W0, [W1]
;rtcc.c,148 :: 		s_dt->weekday = (val >> 8) & 0x00FF;
	;	ADD	W10, #4, W2
	;	LSR	W3, #8, W1
; val end address is: 6 (W3)
	;	MOV	#255, W0
	;	AND	W1, W0, W0
	;	MOV.B	W0, [W2]
;rtcc.c,150 :: 		val = RTCVAL;
; val start address is: 6 (W3)
	MOV	RTCVAL, W5
;rtcc.c,151 :: 		s_dt->sec =  val & 0x00FF;
	;	MOV	#255, W0
	;	AND	W3, W0, W0
	;	MOV.B	W0, [W10]
;rtcc.c,152 :: 		s_dt->min = (val >> 8) & 0x00FF;
	;	ADD	W10, #1, W2
	;	LSR	W3, #8, W1
; val end address is: 6 (W3)
	;	MOV	#255, W0
	;	AND	W1, W0, W0
	;	MOV.B	W0, [W2]
;rtcc.c,154 :: 		}

;  w2,w3,w4,w5
					mov		#0x0180,w12		; kezdo sor 128
					mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
					and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 lesz igy visszamegy a
					mov		w12,[w14++]		;parancs kezdo karakter cime van benne
				clr		w0
				mov.B	w2,w0		;w0 ba a kiirando adatot !
				add		#48,w0
				mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
				and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 
			mov		w0,[w14++]	;kiirom a w14 altal cimzett ram teruletre
			;------------------------------------
					mov		#0x01c0,w12		; kezdo sor 192
					mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
					and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 lesz igy visszamegy a
					mov		w12,[w14++]		;parancs kezdo karakter cime van benne
			clr		w0
			mov.B	w3,w0		;w0 ba a kiirando adatot !
			add		#48,w0
				mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
				and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 
			mov		w0,[w14++]	;kiirom a w14 altal cimzett ram teruletre
			lsr	w3,#8,w3		;eltolja 8 bittel menti w2 be
			mov.B	w3,w0		;w0 ba a kiirando adatot !
			add		#48,w0
				mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
				and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 
			mov		w0,[w14++]	;kiirom a w14 altal cimzett ram teruletre
			;----------------------
					mov		#0x0190,w12		; kezdo sor 144
					mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
					and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 lesz igy visszamegy a
				mov		w12,[w14++]		;parancs kezdo karakter cime van benne
			clr		w0
			mov.B	w4,w0		;w0 ba a kiirando adatot !
			add		#48,w0
				mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
				and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 
			mov		w0,[w14++]	;kiirom a w14 altal cimzett ram teruletre
			lsr	w4,#8,w4		;eltolja 8 bittel menti w2 be
			mov.B	w4,w0		;w0 ba a kiirando adatot !
			add		#48,w0
				mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
				and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 
			mov		w0,[w14++]	;kiirom a w14 altal cimzett ram teruletre
			;---------------------
					mov		#0x01d0,w12		; kezdo sor 208
					mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
					and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 lesz igy visszamegy a
					mov		w12,[w14++]		;parancs kezdo karakter cime van benne
			clr		w0
			mov.B	w5,w0		;w0 ba a kiirando adatot !
			add		#48,w0
				mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
				and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 
			mov		w0,[w14++]	;kiirom a w14 altal cimzett ram teruletre
			lsr	w5,#8,w5		;eltolja 8 bittel menti w2 be
			mov.B	w5,w0		;w0 ba a kiirando adatot !
			add		#48,w0
				mov		#0x08ff,w1	;lcd ram mem cim vege Vizsgalat !!!!!
				and		w14,w1,w14	;ha w14 erteke nagyobb lesz 87f nel az AND eredmenye 0800 
			mov		w0,[w14++]	;kiirom a w14 altal cimzett ram teruletre
			;------ varok picit
				mov		#0x000f,w0
				mov		w0,csipog	;most nem kapcsolom be a hangot csak kesleltetes
				bset	T4CON,#15	; Tmr4 engedem csipogo
				call	var1
			
			goto ujrakiir
			
			
				goto start1
;*******************************************************************************
				
.end
		