

KONV_24bit_8digit
  ; Convert 24 bit binary number
  ; in TEMP+7:TEMP+6:TEMP+5
  ; to a 32 bit packed BCD number
  ; in TEMP+3:TEMP+2:TEMP+1:TEMP

; 24 bit binary to BCD converter
	rcall   ClearTemps
	movwf   PRODL
   
	bcf		STATUS,C,A
	bra		BIN2BC2
   
BIN2L:
	lfsr	FSR2,TEMP
BCDADJ:
	movlw	0x33
	addwf	INDF2,F,A
	btfsc	INDF2,3,A
	andlw	0xF0
	btfsc	INDF2,7,A
	andlw	0x0F
	subwf	POSTINC2,F,A
	btfss	FSR2L,2,A
	bra		BCDADJ
   
BIN2BC2:
	rlcf	TEMP+5,F,A    ; Shift Binary bytes
	rlcf	TEMP+6,F,A
	rlcf	TEMP+7,F,A
   
	rlcf	TEMP,F,A      ; Shift BCD    bytes
	rlcf	TEMP+1,F,A
	rlcf	TEMP+2,F,A
	rlcf	TEMP+3,F,A
   
	decfsz	PRODL,F,A     ; Loop for 24 times
	bra		BIN2L

	swapf	TEMP+3, w
	andlw	0x0F
	movwf	digit8
	movf	TEMP+3, w
	andlw	0x0F
	movwf	digit7

 	swapf	TEMP+2, w
	andlw	0x0F
	movwf	digit6
	movf	TEMP+2, w
	andlw	0x0F
	movwf	digit5

	swapf	TEMP+1, w
	andlw	0x0F
	movwf	digit4
	movf	TEMP+1, w
	andlw	0x0F
	movwf	digit3

	swapf	TEMP, w
	andlw	0x0F
	movwf	digit2
	movf	TEMP, w
	andlw	0x0F
	movwf	digit1

	RETURN
   
ClearTemps:
	clrf	TEMP,A
	clrf	TEMP+1,A
	clrf	TEMP+2,A
	clrf	TEMP+3,A
	retlw   .24







Szorzás_16bit_16bit
;--- 16 bites előjel nélküli számok szorzása ------
;--- szorzat_eredmény = szorzó1 * szorzó2     kiszámítása
	clrf	szorzat_eredmény
	clrf	szorzat_eredmény+1
	clrf	szorzat_eredmény+2
	clrf	szorzat_eredmény+3
        movf    szorzó2,w
        mulwf   szorzó1            ;aL*bL
        movff   PRODL,szorzat_eredmény      ;az eredmény elmentése
        movff   PRODH,szorzat_eredmény+1    ;p0 és p1-be
        movf    szorzó2+1,w
        mulwf   szorzó1+1          ;aH*bH
        movff   PRODL,szorzat_eredmény+2    ;az eredmény elmentése
        movff   PRODH,szorzat_eredmény+3    ;p2 és p3-ba
        movf    szorzó2,w
        mulwf   szorzó1+1          ;aH*bL
        movf    PRODL,w
        addwf   szorzat_eredmény+1,f        ;p1 = p1+Lo(aH*bL)
        movf    PRODH,w
        addwfc  szorzat_eredmény+2,f        ;p2=p2+Hi(aH*bL)+Carry
        clrf    WREG
        addwfc  szorzat_eredmény+3,f        ;p3=p3+Carry
        movf    szorzó2+1,w
        mulwf   szorzó1            ;aL*bH
        movf    PRODL,w
        addwf   szorzat_eredmény+1,f        ;p1 = p1+Lo(aL*bH)
        movf    PRODH,w
        addwfc  szorzat_eredmény+2,f        ;p2=p2+Hi(aL*bH)+Carry
        clrf    WREG
        addwfc  szorzat_eredmény+3,f        ;p3=p3+Carry
RETURN




Osztás_32bit_16bit
	MOVLW	D'32'   
	MOVWF	regiszter1
	CLRF	maradék+1   
	CLRF	maradék
OSZTÁS2 
	BCF		STATUS,C
    RLCF	osztandó_eredmény,F  
    RLCF	osztandó_eredmény+1,F
    RLCF	osztandó_eredmény+2,F
    RLCF	osztandó_eredmény+3,F   	; LSB CARRY-be
    RLCF	maradék,F  		; maradékBA ÁTHOZVA
    RLCF	maradék+1,F
    BTFSC	STATUS,C   		; VOLT ÁTVITEL?
    GOTO	KIVON_GO2		; HA NEM VOLT AKKOR SIMA KIVONÁS
    MOVF	osztó+1,W  		 
    SUBWF	maradék+1,W
    BTFSS	STATUS,Z		 
    GOTO	NEM_NULL2   		
    MOVF	osztó,W  		
    SUBWF	maradék,W
NEM_NULL2
 	BTFSS	STATUS,C           
    GOTO	VAN_MÉG2
KIVON_GO2
	MOVF	osztó,W  			 
    SUBWF	maradék,F
    BTFSS	STATUS,C	     	; VOLT ÁTVITEL?
    DECF	maradék+1,F   		; -1
    MOVF	osztó+1,W
    SUBWF	maradék+1,F
    BSF		osztandó_eredmény,0  		; 1-ES HELYIÉRTÉKBE 1
VAN_MÉG2
	DECFSZ	regiszter1,F
    GOTO	OSZTÁS2
;osztás vége
RETURN	





;------------------- 4MHz-es időzítőrutinok ------------------
delay100us
		movlw	D'33'
		movwf	delay1
delay100us_0
		decfsz	delay1,1
		goto	delay100us_0
		RETURN
;----------------------------------------------------
delay1ms
		movlw	D'2'
		movwf	delay2
		movlw	D'75'
		movwf	delay1
delay1ms_0
		decfsz	delay1,1
		goto	delay1ms_0
		decfsz	delay2,1
		goto	delay1ms_0
		RETURN
;----------------------------------------------------
delay10ms
		movlw	D'13'
		movwf	delay2
		movlw	D'252'
		movwf	delay1
delay10ms_0
		decfsz	delay1,1
		goto	delay10ms_0
		decfsz	delay2,1
		goto	delay10ms_0
		RETURN
;----------------------------------------------------
delay100ms
		movlw	D'130'
		movwf	delay2
		movlw	D'222'
		movwf	delay1
delay100ms_0
		decfsz	delay1,1
		goto	delay100ms_0
		decfsz	delay2,1
		goto	delay100ms_0
		RETURN
;----------------------------------------------------
delay1s
		movlw	D'6'
		movwf	delay3
		movlw	D'19'
		movwf	delay2
		movlw	D'174'
		movwf	delay1
delay1s_0
		decfsz	delay1,1
		goto	delay1s_0
		decfsz	delay2,1
		goto	delay1s_0
		decfsz	delay3,1
		goto	delay1s_0
		RETURN
;----------------------------------------------------







LCD_felh_karakt_betölt
	call	LCD_törlés
	movlw	h'40'
	call	LCD_kurzor_mozgatas_CGRAM

;	movlw	b'00000010'
;	call	LCD_kiiratás
;	movlw	b'00000100'
;	call	LCD_kiiratás
;	movlw	b'00001110'
;	call	LCD_kiiratás
;	movlw	b'00000001'
;	call	LCD_kiiratás
;	movlw	b'00001111'
;	call	LCD_kiiratás
;	movlw	b'00010001'
;	call	LCD_kiiratás
;	movlw	b'00001111'
;	call	LCD_kiiratás
;	movlw	b'00000000'
;	call	LCD_kiiratás		;á-betű
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00001010'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00001110'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00001110'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás		;ö-betű
	movlw	b'00000010'
	call	LCD_kiiratás
	movlw	b'00000100'
	call	LCD_kiiratás
	movlw	b'00001110'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00011111'
	call	LCD_kiiratás
	movlw	b'00010000'
	call	LCD_kiiratás
	movlw	b'00001110'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás		;é-betű
	movlw	b'00000010'
	call	LCD_kiiratás
	movlw	b'00000100'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00001100'
	call	LCD_kiiratás
	movlw	b'00000100'
	call	LCD_kiiratás
	movlw	b'00000100'
	call	LCD_kiiratás
	movlw	b'00001110'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás		;í-betű
	movlw	h'05'
	call	LCD_kiiratás
	movlw	h'0A'
	call	LCD_kiiratás
	movlw	h'00'
	call	LCD_kiiratás
	movlw	h'0E'
	call	LCD_kiiratás
	movlw	h'11'
	call	LCD_kiiratás
	movlw	h'11'
	call	LCD_kiiratás
	movlw	h'0E'
	call	LCD_kiiratás
	movlw	h'00'
	call	LCD_kiiratás		;ő-betű
	movlw	b'00001010'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00001110'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás		;Ü-betű
	movlw	b'00000010'
	call	LCD_kiiratás
	movlw	b'00000100'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00001110'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00001110'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás		;ó-betű
	movlw	b'00000010'
	call	LCD_kiiratás
	movlw	b'00000100'
	call	LCD_kiiratás
	movlw	b'00001110'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00011111'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás		;Á-betű

	movlw	h'00'
	call	LCD_kurzor_mozgatas
	call	LCD_törlés
RETURN



LCD_felh_karakt_betölt_2
	call	LCD_törlés
	movlw	h'40'
	call	LCD_kurzor_mozgatas_CGRAM

	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás		;vonal: 0
	movlw	b'00010000'
	call	LCD_kiiratás
	movlw	b'00010000'
	call	LCD_kiiratás
	movlw	b'00010000'
	call	LCD_kiiratás
	movlw	b'00010000'
	call	LCD_kiiratás
	movlw	b'00010000'
	call	LCD_kiiratás
	movlw	b'00010000'
	call	LCD_kiiratás
	movlw	b'00010000'
	call	LCD_kiiratás
	movlw	b'00010000'
	call	LCD_kiiratás		;vonal: 1
	movlw	b'00011000'
	call	LCD_kiiratás
	movlw	b'00011000'
	call	LCD_kiiratás
	movlw	b'00011000'
	call	LCD_kiiratás
	movlw	b'00011000'
	call	LCD_kiiratás
	movlw	b'00011000'
	call	LCD_kiiratás
	movlw	b'00011000'
	call	LCD_kiiratás
	movlw	b'00011000'
	call	LCD_kiiratás
	movlw	b'00011000'
	call	LCD_kiiratás		;vonal: 2
	movlw	b'00011100'
	call	LCD_kiiratás
	movlw	b'00011100'
	call	LCD_kiiratás
	movlw	b'00011100'
	call	LCD_kiiratás
	movlw	b'00011100'
	call	LCD_kiiratás
	movlw	b'00011100'
	call	LCD_kiiratás
	movlw	b'00011100'
	call	LCD_kiiratás
	movlw	b'00011100'
	call	LCD_kiiratás
	movlw	b'00011100'
	call	LCD_kiiratás		;vonal: 3
	movlw	b'00011110'
	call	LCD_kiiratás
	movlw	b'00011110'
	call	LCD_kiiratás
	movlw	b'00011110'
	call	LCD_kiiratás
	movlw	b'00011110'
	call	LCD_kiiratás
	movlw	b'00011110'
	call	LCD_kiiratás
	movlw	b'00011110'
	call	LCD_kiiratás
	movlw	b'00011110'
	call	LCD_kiiratás
	movlw	b'00011110'
	call	LCD_kiiratás		;vonal: 4
	movlw	b'00011111'
	call	LCD_kiiratás
	movlw	b'00011111'
	call	LCD_kiiratás
	movlw	b'00011111'
	call	LCD_kiiratás
	movlw	b'00011111'
	call	LCD_kiiratás
	movlw	b'00011111'
	call	LCD_kiiratás
	movlw	b'00011111'
	call	LCD_kiiratás
	movlw	b'00011111'
	call	LCD_kiiratás
	movlw	b'00011111'
	call	LCD_kiiratás		;vonal: 5
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás
	movlw	b'00001110'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00010001'
	call	LCD_kiiratás
	movlw	b'00001010'
	call	LCD_kiiratás
	movlw	b'00011011'
	call	LCD_kiiratás
	movlw	b'00000000'
	call	LCD_kiiratás		;Omega karakter

	movlw	h'00'
	call	LCD_kurzor_mozgatas
	call	LCD_törlés
RETURN




Név_LCD
	movlw	h'00'
	call	LCD_kurzor_mozgatas
	movlw	'P'
	call	LCD_kiiratás
	movlw	'I'
	call	LCD_kiiratás
	movlw	'C'
	call	LCD_kiiratás
	movlw	'-'
	call	LCD_kiiratás
	movlw	'e'
	call	LCD_kiiratás
	movlw	's'
	call	LCD_kiiratás
	movlw	' '
	call	LCD_kiiratás
	movlw	'p'
	call	LCD_kiiratás
	movlw	'a'
	call	LCD_kiiratás
	movlw	'n'
	call	LCD_kiiratás
	movlw	'e'
	call	LCD_kiiratás
	movlw	'l'
	call	LCD_kiiratás
	movlw	'm'
	call	LCD_kiiratás
	movlw	d'1'	;é-betű
	call	LCD_kiiratás
	movlw	'r'
	call	LCD_kiiratás
	movlw	d'3'	;ő-betű
	call	LCD_kiiratás
	movlw	h'47'
	call	LCD_kurzor_mozgatas
	movlw	'I'
	call	LCD_kiiratás
	movlw	'I'
	call	LCD_kiiratás
	movlw	'.'
	call	LCD_kiiratás
RETURN

Verziószám_LCD
	movlw	h'42'
	call	LCD_kurzor_mozgatas
	movlw	'v'
	call	LCD_kiiratás
	movlw	'e'
	call	LCD_kiiratás
	movlw	'r'
	call	LCD_kiiratás
	movlw	'z'
	call	LCD_kiiratás
	movlw	'i'
	call	LCD_kiiratás
	movlw	d'5'	;ó-betű
	call	LCD_kiiratás
	movlw	':'
	call	LCD_kiiratás
	movlw	verzió_egészek
	addlw	d'48'
	call	LCD_kiiratás
	movlw	'.'
	call	LCD_kiiratás
	movlw	verzió_tizedek
	addlw	d'48'
	call	LCD_kiiratás
	movlw	verzió_századok
	addlw	d'48'
	call	LCD_kiiratás
RETURN

Dátum_LCD
	movlw	h'01'
	call	LCD_kurzor_mozgatas
	movlw	'p'
	call	LCD_kiiratás
	movlw	'a'
	call	LCD_kiiratás
	movlw	'-'
	call	LCD_kiiratás
	movlw	'e'
	call	LCD_kiiratás
	movlw	'l'
	call	LCD_kiiratás
	movlw	'e'
	call	LCD_kiiratás
	movlw	'k'
	call	LCD_kiiratás
	movlw	't'
	call	LCD_kiiratás
	movlw	'r'
	call	LCD_kiiratás
	movlw	'o'
	call	LCD_kiiratás
	movlw	'n'
	call	LCD_kiiratás
	movlw	'i'
	call	LCD_kiiratás
	movlw	'k'
	call	LCD_kiiratás
	movlw	'a'
	call	LCD_kiiratás
	movlw	h'43'
	call	LCD_kurzor_mozgatas
	movlw	dátum_év1000
	addlw	d'48'
	call	LCD_kiiratás
	movlw	dátum_év100
	addlw	d'48'
	call	LCD_kiiratás
	movlw	dátum_év10
	addlw	d'48'
	call	LCD_kiiratás
	movlw	dátum_év1
	addlw	d'48'
	call	LCD_kiiratás
	movlw	'.'
	call	LCD_kiiratás
	movlw	dátum_hónap10
	addlw	d'48'
	call	LCD_kiiratás
	movlw	dátum_hónap1
	addlw	d'48'
	call	LCD_kiiratás
	movlw	'.'
	call	LCD_kiiratás
	movlw	dátum_nap10
	addlw	d'48'
	call	LCD_kiiratás
	movlw	dátum_nap1
	addlw	d'48'
	call	LCD_kiiratás
	movlw	'.'
	call	LCD_kiiratás
RETURN



Köszönés_LCD
	movlw	'A'
	call	LCD_kiiratás
	movlw	'd'
	call	LCD_kiiratás
	movlw	'j'
	call	LCD_kiiratás
	movlw	'o'
	call	LCD_kiiratás
	movlw	'n'
	call	LCD_kiiratás
	movlw	' '
	call	LCD_kiiratás
	movlw	'a'
	call	LCD_kiiratás
	movlw	'z'
	call	LCD_kiiratás
	movlw	' '
	call	LCD_kiiratás
	movlw	'I'
	call	LCD_kiiratás
	movlw	's'
	call	LCD_kiiratás
	movlw	't'
	call	LCD_kiiratás
	movlw	'e'
	call	LCD_kiiratás
	movlw	'n'
	call	LCD_kiiratás
	movlw	','
	call	LCD_kiiratás
	movlw	h'42'
	call	LCD_kurzor_mozgatas
	movlw	's'
	call	LCD_kiiratás
	movlw	'z'
	call	LCD_kiiratás
	movlw	'e'
	call	LCD_kiiratás
	movlw	'b'
	call	LCD_kiiratás
	movlw	'b'
	call	LCD_kiiratás
	movlw	' '
	call	LCD_kiiratás
	movlw	'j'
	call	LCD_kiiratás
	movlw	d'0'	;ö-betű
	call	LCD_kiiratás
	movlw	'v'
	call	LCD_kiiratás
	movlw	d'3'	;ő-betű
	call	LCD_kiiratás
	movlw	't'
	call	LCD_kiiratás
	movlw	'!'
	call	LCD_kiiratás
RETURN



;------------------------------------------------------------

LCD_inicializálás
	call	delay100ms
	call	delay100ms
	call	delay100ms
	call	delay100ms
	call	delay100ms
	call	delay100ms
	call	delay100ms
	call	delay100ms
	call	delay100ms
	call	delay100ms
;-------
;	bcf		lcd_RS
;	bcf		lcd_EN
;	bcf		lcd_b7
;	bcf		lcd_b6
;	bsf		lcd_b5
;	bsf		lcd_b4
;	call	delay1ms
;	bsf		lcd_EN		;nyolc bites mód
;	call	delay1ms
;	bcf		lcd_EN
;	call	delay10ms
;	bsf		lcd_EN		;nyolc bites mód
;	call	delay1ms
;	bcf		lcd_EN
;	call	delay10ms
;	bsf		lcd_EN		;nyolc bites mód
;	call	delay1ms
;	bcf		lcd_EN
;-------
	bcf		lcd_RS
	bcf		lcd_EN
	bcf		lcd_b7
	bcf		lcd_b6
	bsf		lcd_b5
	bcf		lcd_b4
	call	delay1ms
	bsf		lcd_EN		;négy bites mód
	call	delay1ms
	bcf		lcd_EN
	bcf		lcd_b7
	bcf		lcd_b6
	bsf		lcd_b5
	bcf		lcd_b4
	call	delay1ms
	bsf		lcd_EN		;négy bites mód
	call	delay1ms
	bcf		lcd_EN
;-------
	bcf		lcd_RS
	bcf		lcd_EN
	bsf		lcd_b7
	bsf		lcd_b6
	bcf		lcd_b5
	bcf		lcd_b4
	call	delay1ms
	bsf		lcd_EN		;két sor, 5*10 pixel
	call	delay1ms
	bcf		lcd_EN
	bcf		lcd_b7
	bcf		lcd_b6
	bcf		lcd_b5
	bcf		lcd_b4
	call	delay1ms
	bsf		lcd_EN		;két sor, 5*10 pixel
	call	delay1ms
	bcf		lcd_EN
;-------
	bcf		lcd_RS
	bcf		lcd_EN
	bsf		lcd_b7
	bsf		lcd_b6
	bcf		lcd_b5
	bcf		lcd_b4
	bsf		lcd_EN		;kijelző be, kurzor ki, villogás ki
	call	delay1ms
	bcf		lcd_EN
;	call	delay1ms
;	bsf		lcd_b7
;	bsf		lcd_b6
;	bcf		lcd_b5
;	bcf		lcd_b4
;	bsf		lcd_EN		;kijelző be, kurzor ki, villogás ki
;	call	delay1ms
;	bcf		lcd_EN



	bsf		lcd_RS
	bcf		lcd_EN
	bsf		lcd_b7
	bcf		lcd_b6
	bsf		lcd_b5
	bcf		lcd_b4
	call	delay1ms
	bsf		lcd_EN		;
	call	delay1ms
	bcf		lcd_EN
	bcf		lcd_b7
	bcf		lcd_b6
	bsf		lcd_b5
	bsf		lcd_b4
	call	delay1ms
	bsf		lcd_EN		;
	call	delay1ms
	bcf		lcd_EN
goto$
RETURN




LCD_kiiratás
	btfss	INTCON, GIE	
	bra		b1
	bra		b2
b1	bcf		GIE_temp
	bra		b3
b2	bsf		GIE_temp
b3	bcf		INTCON, GIE		;globális megszakítás tiltás
	bsf		lcd_RS
	bcf		lcd_b4
	bcf		lcd_b5
	bcf		lcd_b6
	bcf		lcd_b7
	bcf		lcd_EN
	btfsc	WREG,4
	bsf		lcd_b4
	btfsc	WREG,5
	bsf		lcd_b5
	btfsc	WREG,6
	bsf		lcd_b6
	btfsc	WREG,7
	bsf		lcd_b7
	bsf		lcd_EN
	call	delay100us
	bcf		lcd_EN
	bcf		lcd_b4
	bcf		lcd_b5
	bcf		lcd_b6
	bcf		lcd_b7
	btfsc	WREG,0
	bsf		lcd_b4
	btfsc	WREG,1
	bsf		lcd_b5
	btfsc	WREG,2
	bsf		lcd_b6
	btfsc	WREG,3
	bsf		lcd_b7
	bsf		lcd_EN
	call	delay100us
	bcf		lcd_EN
	btfss	GIE_temp
	RETURN
	bsf		INTCON, GIE		;globális megszakítás engedélyezés
RETURN	



LCD_kurzor_mozgatas
	movwf	LATC
	bcf		lcd_EN
	bcf		lcd_RS
	bcf		lcd_b4
	bcf		lcd_b5
	bcf		lcd_b6
	bsf		lcd_b7
	btfsc	WREG,4
	bsf		lcd_b4
	btfsc	WREG,5
	bsf		lcd_b5
	btfsc	WREG,6
	bsf		lcd_b6
	bsf		lcd_EN
	call	delay100us
	bcf		lcd_EN
	bcf		lcd_b4
	bcf		lcd_b5
	bcf		lcd_b6
	bcf		lcd_b7
	btfsc	WREG,0
	bsf		lcd_b4
	btfsc	WREG,1
	bsf		lcd_b5
	btfsc	WREG,2
	bsf		lcd_b6
	btfsc	WREG,3
	bsf		lcd_b7
	bsf		lcd_EN
	call	delay100us	
	bcf		lcd_EN
	call	delay1ms
RETURN


LCD_kurzor_mozgatas_CGRAM
	bcf		lcd_EN
	bcf		lcd_RS
	bcf		lcd_b4
	bcf		lcd_b5
	bsf		lcd_b6
	bcf		lcd_b7
	btfsc	WREG,4
	bsf		lcd_b4
	btfsc	WREG,5
	bsf		lcd_b5
	bsf		lcd_EN
	call	delay100us
	bcf		lcd_EN
	bcf		lcd_b4
	bcf		lcd_b5
	bcf		lcd_b6
	bcf		lcd_b7
	btfsc	WREG,0
	bsf		lcd_b4
	btfsc	WREG,1
	bsf		lcd_b5
	btfsc	WREG,2
	bsf		lcd_b6
	btfsc	WREG,3
	bsf		lcd_b7
	bsf		lcd_EN
	call	delay100us	
	bcf		lcd_EN
	call	delay1ms
RETURN


LCD_törlés
	bcf		lcd_EN
	bcf		lcd_RS
	bcf		lcd_b4
	bcf		lcd_b5
	bcf		lcd_b6
	bcf		lcd_b7
	bsf		lcd_EN
	call	delay100us
	bcf		lcd_EN
	bsf		lcd_b4
	bcf		lcd_b5
	bcf		lcd_b6
	bcf		lcd_b7
	bsf		lcd_EN
	call	delay100us
	bcf		lcd_EN
	call	delay1ms
	call	delay1ms
RETURN




LCD_felső_sor_törlés
	movlw	h'00'
	call	LCD_kurzor_mozgatas
	movlw	' '
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
RETURN


LCD_alsó_sor_törlés
	movlw	h'40'
	call	LCD_kurzor_mozgatas
	movlw	' '
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
	call	LCD_kiiratás
RETURN

