here is the final result, the message is Baby on Board on my native language (bosnian)



the code is made in ProtonIde compiler and is similar to PBP hope someone will use it

Code:
		 '****************************************************************

' SIMPLE 15X8 LED MATRIX SCROLLING EXAMPLE
' 16F877A External 8MHz Xtal Osc
' LED Matrix columns are conected to PORTC pin rc0 via ULN2004AN and CD4017.
' RC1 reset for 4017
' LED Matrix rows conected to PORTB via 100 ohm resistors 
' RB0 - top row
' Author: Muamer Halilovic
' www.mtskola.com
' today
'***************************************************************************************
Device 16F877A
Xtal 12
TRISB = %00000000
TRISC = %10000000
TRISD = %00000000
PORTB=0
PORTC=0
PORTD=0
All_Digital = True
  
	EWrite 0,[%00000100,%00000110,%01111111,%00000110,%00000100]	'Up Arrow
	EWrite 5,[%00010000,%00110000,%01111111,%00110000,%00010000]	'Dn Arrow
	EWrite 10,[%01111110,%00010001,%00010001,%00010001,%01111110]	'A
	EWrite 15,[%01111111,%01001001,%01001001,%01001001,%00110110]	'B
	EWrite 20,[%00111110,%01000001,%01000001,%01000001,%00100010]	'C
	EWrite 25,[%01111111,%01000001,%01000001,%00100010,%00011100]	'D
	EWrite 30,[%01111111,%01001001,%01001001,%01001001,%01000001]	'E
	EWrite 35,[%01111111,%00001001,%00001001,%00001001,%00000001]	'F
	EWrite 40,[%00111110,%01000001,%01001001,%01001001,%01111010]	'G
	EWrite 45,[%01111111,%00001000,%00001000,%00001000,%01111111]	'H
	EWrite 50,[%00000000,%01000001,%01111111,%01000001,%00000000]	'I
	EWrite 55,[%00100000,%01000000,%01000001,%00111111,%00000001]	'J
	EWrite 60,[%01111111,%00001000,%00010100,%00100010,%01000001]	'K
	EWrite 65,[%01111111,%01000000,%01000000,%01000000,%01000000]	'L
	EWrite 70,[%01111111,%00000010,%00000110,%00000010,%01111111]	'M
	EWrite 75,[%01111111,%00000100,%00001000,%00010000,%01111111]	'N
	EWrite 80,[%00111110,%01000001,%01000001,%01000001,%00111110]	'O
	EWrite 85,[%01111111,%00001001,%00001001,%00001001,%00000110]	'P
	EWrite 90,[%01111111,%00001001,%00011001,%00101001,%01000110]	'R
	EWrite 95,[%01000110,%01001001,%01001001,%01001001,%00110001]	'S
	EWrite 100,[%00000001,%00000001,%01111111,%00000001,%00000001]	'T
	EWrite 105,[%00111111,%01000000,%01000000,%01000000,%00111111]	'U
	EWrite 110,[%00011111,%00100000,%01000000,%00100000,%00011111]	'V
	EWrite 115,[$00,$00,$00,$00,$00]	'blank space
	EWrite 185,[$00,$00,$00,$00,$00]
	EWrite 190,[$00,$00,$00,$00,$00]
	EWrite 195,[$00,$00,$00,$00,$00]
	EWrite 200,[$00,$00,$00,$00,$00]
	EWrite 205,[$00,$00,$00,$00,$00]
	EWrite 210,[$00,$00,$00,$00,$00]
	EWrite 215,[$00,$00,$00,$00,$00]
	EWrite 220,[$00,$00,$00,$00,$00]
	EWrite 225,[$00,$00,$00,$00,$00]
	EWrite 230,[$00,$00,$00,$00,$00]
	EWrite 235,[$00,$00,$00,$00,$00]
	EWrite 240,[$00,$00,$00,$00,$00]
	EWrite 245,[$00,$00,$00,$00,$00]
	


    '________________________________________________________________
    'Deklaracija promjenjivih
    '________________________________________________________________
   	Dim kolona As Byte
	Dim brojac As Byte
	Dim k As Byte
	Dim scan  As Byte
	Dim scroll As Byte
	leddata var Byte[100]
    Dim ir_ulaz As Word ' WORD variabla za zaprimanje podataka
    Dim EEpromAdress As Byte 'eprom adresa za upis 
    Dim test As Word 'uporedjivach 
    Dim upisi As ir_ulaz.LowByte
    Dim i As Byte
    Dim sledeceslovo As Word
    Dim prethodnoslovo As Word
    Dim potvrdi As Word
    Dim play As Word
    Dim x As Byte
    Dim j As Byte
    Dim cnt As Byte
    Dim a As Byte
    Dim b As Byte
    Dim c As Byte
    Dim d As Byte

    '________________________________________________________________
    'poetene vrijednosti
    '________________________________________________________________

    EEpromAdress = 255
    cnt=0
    k=114

    '________________________________________________________________
    'Inicijalizacija
    '________________________________________________________________
    High PORTD.0
    DelayMS 1300
    Low PORTD.0
    DelayMS 1300
    '________________________________________________________________
    'pregledaj eeprom ako ima sta idi na main ako ne idi na pripremu
    '________________________________________________________________
      '*******************************************************************
    Declare RC5In_Pin PORTC.7                    'infrared sensor pin
    '********************************************************************

provjera:
   
        test.LowByte = ERead 255 'iscitaj zapis iz eeproma sa adrese 255
                If test.LowByte = $FF Then 'ako je FF 
                    GoSub eepromprogON 'idi u programiraj komande
                    DelayMS 500
                EndIf    
        test.LowByte = ERead 120 ' iscitaj zapis iz eeproma sa adrese 120 (pocetak poruke)
                If test.LowByte = $FF Then ' ako je 00 
                    GoSub odaberporuku     ' idi na odaberi poruku
                    DelayMS 500
                EndIf 
               
main:
    
Clear ' ocisti sve varijable
Low PORTD.0  ' usli smo u mod za prikaz poruke
a=14
k=120
j=0
leddata[0-13] = $00             ' varijabla ledadta od 0 do 13 je 00
For b = 0 To 11                 ' moguci broj slova u poruci
    For i = 0 To 4      
        c=i+a                   'povecaj a=14-19; a=20-24; a=26-30 itd...
        d=i+j+k                   'povecaj j=120-124; a=126-130; a=131-135 itd...
            leddata [c]= ERead d	'filuj ledadtu od 14 do max broja slova za prikaz iz eeproma pocevsi od 120 pa nadalje
            DelayUS 20  
    Next
    leddata [a+5]=ERead 119   'upisi prazanu kolonu izmedju slova	
      a=a+6   
      j=j+6   
 Next
       For scroll = 0 To c      ' skrolaj poruku c zadnji leddata
          
         For scan = 0 To 35
                  PORTC.1 = 1   'reseting 4017
                  PORTC.1 =0 
			For kolona = 0 To 14  'broj kolona
				PORTC.0 = 1       'clock 4017
                PORTC.0 =0
                PORTB = leddata[kolona]
				DelayUS 250
                PORTB=0    	
		    Next

         Next
         For brojac = 0 To (c-1)
        leddata[brojac]=leddata[brojac+1]' pomjeri za jedan
        Next

        Next
                If PORTD.1=1 Then 
                GoSub odaberporuku 
    	 	End If
GoTo main
End

eepromprogON: 'podprogram za odabir komadi za upravljanje             
    High PORTD.0  
    
            Repeat
                ir_ulaz.LowByte= RC5In '  Primanje signala sa TSOP1738
            Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala
                   
      EWrite EEpromAdress , [ ir_ulaz.LowByte ]
      sledeceslovo.LowByte = ERead EEpromAdress ' pridruzi varijabli sledece slovo komandu i upisi u eprom na zadnju lokaciju
      For i = 0 To 4 
	 leddata [i]=ERead i	'  prikazi strelicu
	Next
         For scan = 0 To 185
         PORTC.1 = 1  'reseting 4017
         PORTC.1 =0	
			For kolona = 0 To 4
				PORTC.0 = 1 'clock 4017
                PORTC.0 =0
                PORTB = leddata[kolona]
				DelayUS 500
                PORTB=0     	
		    Next
         Next
Low PORTD.0
DelayMS 100
High PORTD.0
DelayMS 100
Low PORTD.0
DelayMS 100
High PORTD.0
            Repeat
                ir_ulaz.LowByte= RC5In '  Primanje signala sa TSOP1738
            Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala
            EEpromAdress=EEpromAdress - 1      
      EWrite EEpromAdress , [ ir_ulaz.LowByte ]
      prethodnoslovo.LowByte = ERead EEpromAdress ' pridruzi varijabli sledece slovo komandu i upisi u eprom na zadnju lokaciju
      For i = 0 To 4 
	 leddata [i]=ERead i+5	'  prikazi strelicu
	Next
         For scan = 0 To 185
         PORTC.1 = 1  'reseting 4017
         PORTC.1 =0	
			For kolona = 0 To 4
				PORTC.0 = 1 'clock 4017
                PORTC.0 =0
                PORTB = leddata[kolona]
				DelayUS 500
                PORTB=0     	
		    Next
         Next
Low PORTD.0
DelayMS 100
High PORTD.0
DelayMS 100
Low PORTD.0
DelayMS 100
High PORTD.0
            Repeat
                ir_ulaz.LowByte= RC5In '  Primanje signala sa TSOP1738
            Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala
                   EEpromAdress=EEpromAdress - 1
                   EWrite EEpromAdress , [ ir_ulaz.LowByte ]
      play.LowByte = ERead EEpromAdress  ' pridruzi varijabli play komandu i upisi u eprom na predzadnju lokaciju
      leddata[0]=$FE  'play simbol
	leddata[1]=$7C
	leddata[2]=$38
	leddata[3]=$10
	leddata[4]=$00
 
     For scan = 0 To 185
         PORTC.1 = 1  'reseting 4017
         PORTC.1 =0	
			For kolona = 0 To 4
				PORTC.0 = 1 'clock 4017
                PORTC.0 =0
                PORTB = leddata[kolona]
				DelayUS 500
                PORTB=0     	
		    Next
         Next     
Low PORTD.0
DelayMS 100
High PORTD.0
DelayMS 100
Low PORTD.0
DelayMS 100
High PORTD.0

 Repeat
                ir_ulaz.LowByte= RC5In '  Primanje signala sa TSOP1738
            Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala
                   EEpromAdress=EEpromAdress -1
                   EWrite EEpromAdress , [ ir_ulaz.LowByte ] ' pridruzi varijabli potvrfi komandu i upisi u eprom na predpredzadnju  :D lokaciju
      potvrdi.LowByte = ERead EEpromAdress
        
      leddata[0]=$00  
	leddata[1]=$00
	leddata[2]=$08
	leddata[3]=$10
	leddata[4]=$20
	leddata[5]=$10
	leddata[6]=$08
	leddata[7]=$04
	leddata[8]=$02
	leddata[9]=$01 
     For scan = 0 To 185
         PORTC.1 = 1  'reseting 4017
         PORTC.1 =0	
			For kolona = 0 To 9
				PORTC.0 = 1 'clock 4017
                PORTC.0 =0
                PORTB = leddata[kolona]
				DelayUS 500
                PORTB=0     	
		    Next
         Next     
      For x=0 To 5
        Toggle PORTD.0
        DelayMS 100
      x=x+1
      Next 
      x=0
      EEpromAdress=0
Return 'vrati se u if petlju na pocetku



odaberporuku:	' podrpogram za odabir poruke za prikaz
High PORTD.0
sledeceslovo.LowByte = ERead 255
prethodnoslovo.LowByte = ERead 254
play.LowByte = ERead 253
potvrdi.LowByte = ERead 252
cnt=0
k=114
Low PORTD.1
Repeat
       ir_ulaz.LowByte= RC5In '  Primanje signala sa TSOP1738
    Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala 
While ir_ulaz.LowByte<>play.LowByte
    Repeat
       ir_ulaz.LowByte= RC5In '  Primanje signala sa TSOP1738
    Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala 
If ir_ulaz.LowByte=prethodnoslovo.LowByte Then
          If cnt = 0 Then
            cnt=5
         EndIf
   cnt=cnt-5
    For i = 0 To 4 
	 leddata [i]=ERead i+cnt	'  
	Next
         For scan = 0 To 185
         PORTC.1 = 1  'reseting 4017
         PORTC.1 =0	
			For kolona = 0 To 4
				PORTC.0 = 1 'clock 4017
                PORTC.0 =0
                PORTB = leddata[kolona]
				DelayUS 500
                PORTB=0     	
		    Next
         Next
        
ElseIf ir_ulaz.LowByte=sledeceslovo.LowByte Then

   cnt=cnt+5

    For i = 0 To 4 
	 leddata [i]=ERead i+cnt	'  
	Next
         For scan = 0 To 185
         PORTC.1 = 1  'reseting 4017
         PORTC.1 =0	
			For kolona = 0 To 4
				PORTC.0 = 1 'clock 4017
                PORTC.0 =0
                PORTB = leddata[kolona]
				DelayUS 500
                PORTB=0     	
		    Next
         Next
                   If cnt = 119 Then
            cnt=0
         EndIf
ElseIf ir_ulaz.LowByte=potvrdi.LowByte Then 'upisi odabran0o slovo u narednu slobodnu eeprom lokaciju
 k=k+6'krecemo od 120
 For i = 0 To 4 
	 leddata [i]=ERead i+cnt
     DelayUS 10	'  
	Next
 
 For i = 0 To 4 
 
	 EWrite (i+k),[leddata [i]]	' 
     DelayMS 20 
 Next

For scroll =0 To 1
 For i = 0 To 4 
	 leddata [i]=ERead i+cnt	'prikazi odabrano slovo  
	Next
	leddata[5]=$00
	leddata[6]=$00
	leddata[7]=$08
	leddata[8]=$10
	leddata[9]=$20
	leddata[10]=$10
	leddata[11]=$08
	leddata[12]=$04
	leddata[13]=$02
	leddata[14]=$01
         For scan = 0 To 185
         PORTC.1 = 1  'reseting 4017
         PORTC.1 =0	
			For kolona = 0 To 14
				PORTC.0 = 1 'clock 4017
                PORTC.0 =0
                PORTB = leddata[kolona]
				DelayUS 500
                PORTB=0     	
		    Next
         Next
Next
EndIf
 
Wend
Low PORTD.0
Return ' vrati se odakle si i dosao