	;csak SZIMULÁCIÓHOZ
	LIST	P=18F4550
	#INCLUDE	<P18F4550.INC>

 		 config PLLDIV   = 5         ; PLL osztó 20 MHz-es kristályhoz
         config CPUDIV   = OSC1_PLL2 ; CPU órajel forrása a 96MHz PLL/2 
         config USBDIV   = 2         ; USB órajel forrása a 96MHz PLL/2
         config FOSC     = HSPLL_HS  ; HS oszcillátor és PLL a jelforrás
         config FCMEN    = OFF       ; Fail Safe Clock Monitor tiltása
         config IESO     = OFF       ; Belső/külső oszcillátor tiltása
         config PWRT     = ON        ; Bekapcsoláskor 62 ms várakozás
         config BOR      = ON        ; Brown our Reset engedélyezve
         config BORV     = 1         ; Reset szint = 2,7 V
         config VREGEN   = ON        ; VUSB belső stabilizátorról megy 
         config WDT      = OFF       ; Watchdog timer letiltva
         config WDTPS    = 256       ; Watchdog utószámláló beállítása
         config MCLRE    = ON        ; MCLR (reset) bemenet engedélyezve
         config LPT1OSC  = OFF       ; T1OSC nagyobb teljesítményű üzemmód
         config PBADEN   = OFF       ; PORTB<4:0> digitális I/O-ként inicializálódik
         config CCP2MX   = ON        ; RC1 legyen a CCP2 kimenet
         config STVREN   = ON        ; A verem túlcsordulása RESET-et okoz
         config LVP      = OFF       ; Alacsonyfeszültségű programozás letiltva
         config ICPRT    = OFF       ; Dedikált programozói kivezetés nincs
         config XINST    = OFF       ; Extended Instruction Set
         config DEBUG    = OFF       ; Háttér nyomkövetés letiltva, RB6/7 normál I/O
         config CP0      = OFF       ; Kódvédelem kikapcsolva
         config CP1      = OFF
         config CP2      = OFF
         config CP3      = OFF
         config CPB      = OFF
         config CPD      = OFF
         config WRT0     = OFF       ; Írásvédelem kikapcsolva
         config WRT1     = OFF
         config WRT2     = OFF
         config WRT3     = OFF
         config WRTB     = OFF       ; Boot Blokk írásvédelem kikapcsolva
         config WRTC     = OFF       ; Konfigurációs blokk írásvédelem kikapcsolva
         config WRTD     = OFF       ; EEPROM adattár írásvédelme kikapcsolva
         config EBTR0    = OFF       ; Táblázatolvasás ne legyen letiltva
         config EBTR1    = OFF
         config EBTR2    = OFF
         config EBTR3    = OFF
         config EBTRB    = OFF       ; Boot 

	CBLOCK		0X20
	VAR1
	VAR2	
	VAR3
	POINTER
	KULD_LATH
	KULD_LAT
	ENDC
	
	CONSTANT	Á=B'00000001'
	#DEFINE		E		LATD,3
	#DEFINE		RS		LATD,0

	ORG		0
	GOTO	START
	
START
CLRF 		PORTE 
	CLRF 		LATE 
	MOVLW 		0Ah 
	MOVWF 		ADCON1 
	MOVLW 		03h
	MOVLW 		07h 
	MOVWF 		CMCON 
	MOVWF 		TRISC 
	MOVLW		B'00000100'
	MOVWF		TRISE
	MOVLW		B'00000001'
	MOVWF		TRISC
	CLRF		TRISB
	CLRF		LATB
	CLRF		TRISD
	CLRF		LATD

LCD_INIT
	CALL		IDO_100
	NOP
	CALL		IDO_50ms
	MOVLW		B'00110000'		
	MOVWF		LATD
	CALL		PARANCS
;*******************
	CALL		IDO_50ms	
	MOVLW		B'00110000'		
	MOVWF		LATD
	CALL		PARANCS
;*******************
	CALL		IDO_50ms	
	MOVLW		B'00110000'		
	MOVWF		LATD
	CALL		PARANCS
;*******************
	CALL		IDO_5ms		
	MOVLW		B'00100000'
	MOVWF		LATD
	CALL		PARANCS
;*******************			
	CALL		IDO_5ms
	MOVLW		B'00100000'		
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'10000000'		
	MOVWF		LATD
	CALL		PARANCS
	CLRF		LATD
;*******************
	CALL		IDO_5ms
	MOVLW		B'00000000'		
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'10000000'		
	MOVWF		LATD
	CALL		PARANCS
	CLRF		LATD
;*******************
	CALL		IDO_5ms
	MOVLW		B'00000000'		
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'00010000'		
	MOVWF		LATD
	CALL		PARANCS
	CLRF		LATD
;*******************
	CALL		IDO_5ms
	MOVLW		B'00000000'		
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'11000000'		
	MOVWF		LATD
	CALL		PARANCS
	CLRF		LATD
	GOTO		MAIN
;*******************

MAIN
	CALL		TABLE_1_INIT
	MOVLW		B'01000000'
	MOVWF		LATD
	CALL		PARANCS
	CLRF		LATD
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		PARANCS
	CLRF		LATD
;----------------------	
	CALL		TABLA_KEZELO
;----------------------
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		PARANCS
	CLRF		LATD
	MOVLW		B'00010000'
	MOVWF		LATD
	CALL		PARANCS
	CLRF		LATD
	CALL		IDO_100
;----------------------
ER
;1. egyéni karakter kiírása
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		ADAT
	CLRF		LATD
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		ADAT
	CALL		IDO_100
;POZICIO	
	MOVLW		B'10000000'
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		PARANCS
;2. egyéni karakter kiírása
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		ADAT
	CLRF		LATD
	MOVLW		B'00010000'
	MOVWF		LATD
	CALL		ADAT
	CALL		IDO_100
;POZICIO	
	MOVLW		B'10000000'
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		PARANCS
;3. egyéni karakter kiírása
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		ADAT
	CLRF		LATD
	MOVLW		B'00100000'
	MOVWF		LATD
	CALL		ADAT
	CALL		IDO_100
;POZICIO	
	MOVLW		B'10000000'
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		PARANCS
;4. egyéni karakter kiírása
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		ADAT
	CLRF		LATD
	MOVLW		B'00110000'
	MOVWF		LATD
	CALL		ADAT
	CALL		IDO_100
;POZICIO	
	MOVLW		B'10000000'
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		PARANCS
;5. egyéni karakter kiírása
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		ADAT
	CLRF		LATD
	MOVLW		B'01000000'
	MOVWF		LATD
	CALL		ADAT
	CALL		IDO_100
;POZICIO	
	MOVLW		B'10000000'
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		PARANCS
;6. egyéni karakter kiírása
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		ADAT
	CLRF		LATD
	MOVLW		B'01010000'
	MOVWF		LATD
	CALL		ADAT
	CALL		IDO_100
;POZICIO	
	MOVLW		B'10000000'
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		PARANCS
;7. egyéni karakter kiírása
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		ADAT
	CLRF		LATD
	MOVLW		B'01100000'
	MOVWF		LATD
	CALL		ADAT
	CALL		IDO_100
;POZICIO	
	MOVLW		B'10000000'
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		PARANCS

;8. egyéni karakter kiírása
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		ADAT
	CLRF		LATD
	MOVLW		B'01110000'
	MOVWF		LATD
	CALL		ADAT
	CALL		IDO_100
;POZICIO	
	MOVLW		B'10000000'
	MOVWF		LATD
	CALL		PARANCS
	MOVLW		B'00000000'
	MOVWF		LATD
	CALL		PARANCS


	GOTO		ER
	
	
	
TABLA_KEZELO
	CLRF		TBLPTRL
	MOVLW		D'64'
	MOVWF		POINTER
G	TBLRD*+
	CALL		IDO_50ms
	CALL		KULD
	DECFSZ		POINTER,F
	GOTO		G
	RETURN

KULD
	MOVFF		TABLAT,WREG
	ANDLW		B'11110000'
	MOVWF		LATD
	CALL		IDO_5ms
	CALL		ADAT
	MOVFF		TABLAT,WREG
	SWAPF		WREG,W
	ANDLW		B'11110000'
	MOVWF		LATD
	CALL		IDO_5ms
	CALL		ADAT
	CLRF		LATD	
	RETURN	

ADAT
	BSF			RS
	CALL		IDO_5ms
	CALL		PARANCS
	CALL		IDO_5ms
	BCF			RS
	CLRF		LATD
	RETURN	
		
PARANCS
	BSF			E
	CALL		IDO_5ms
	BCF			E
	RETURN	
IDO_5ms
	MOVLW		d'20'
	MOVWF		VAR1
EGY
	MOVLW		d'10'
	MOVWF		VAR2
KETTO
	NOP
	NOP
	NOP
	DECFSZ		VAR2,F
	GOTO		KETTO
	DECFSZ		VAR1,F
	GOTO		EGY
	RETURN

IDO_50ms
	MOVLW		d'50'
	MOVWF		VAR1
EGY12
	MOVLW		d'25'
	MOVWF		VAR2
KETTO12
	NOP
	NOP
	NOP
	DECFSZ		VAR2,F
	GOTO		KETTO12
	DECFSZ		VAR1,F
	GOTO		EGY12
	RETURN

IDO_100
	MOVLW		D'20'
	MOVWF		VAR1
H1
	MOVLW		D'20'
	MOVWF		VAR2
H2	
	MOVLW		D'10'
	MOVWF		VAR3
H3
	NOP
	DECFSZ		VAR3,F
	GOTO		H3
	DECFSZ		VAR2,F
	GOTO		H2
	DECFSZ		VAR1,F
	GOTO		H1
	RETURN

TABLE_1_INIT
	MOVLW    	LOW(TABLE)
    MOVWF    	TBLPTRL
    MOVLW    	HIGH(TABLE)   
    MOVWF    	TBLPTRH   
    MOVLW    	UPPER(TABLE)   
    MOVWF   	TBLPTRU
	RETURN 
	
	ORG		0X1500
TABLE
;1. karakter
	DB		B'00001110',B'00010001'
	DB		B'00010001',B'00010001'
	DB		B'00010001',B'00010001'
	DB		B'00010001',B'00011111'
;2. karakter
	DB		B'00001110',B'00010001'
	DB		B'00010001',B'00010001'
	DB		B'00010001',B'00010001'
	DB		B'00011001',B'00011111'
;3. karakter
	DB		B'00001110',B'00010001'
	DB		B'00010001',B'00010001'
	DB		B'00010001',B'00011001'
	DB		B'00011101',B'00011111'
;4. karakter
	DB		B'00001110',B'00010001'
	DB		B'00010001',B'00010001'
	DB		B'00011001',B'00011101'
	DB		B'00011111',B'00011111'
;5. karakter
	DB		B'00001110',B'00010001'
	DB		B'00010001',B'00011001'
	DB		B'00011101',B'00011111'
	DB		B'00011111',B'00011111'
;6. karakter
	DB		B'00001110',B'00010001'
	DB		B'00011001',B'00011101'
	DB		B'00011111',B'00011111'
	DB		B'00011111',B'00011111'
;7. karakter
	DB		B'00001110',B'00011001'
	DB		B'00011101',B'00011111'
	DB		B'00011111',B'00011111'
	DB		B'00011111',B'00011111'
;8. karakter
	DB		B'00001110',B'00011101'
	DB		B'00011111',B'00011111'
	DB		B'00011111',B'00011111'
	DB		B'00011111',B'00011111'
	end
	

	
