Just for the fun of it. Can now control my Digital Satellite TV decoder from anywhere in my house....
Nano connected to the HC-05 module
B4A app connects to the HC-05 and sends the B4A "button codes" to the HC-05
HC-05 sends the "button codes" to the Nano
Nano fires the applicable IR codes to the DSTV decoder via an IR led
The "Hex Codes" are stored in the program memory of the Nano (PROGMEM) - else it runs OOM
The RED led is purely there as an indicator when the IR led sends the control codes to the DSTV decoder
Note: The RX pin of the HC-05 requires max 3.3V. See the voltage divider between pin D11 of the Nano, the RDX pin of the HC-05, and GND
		
		
	
	
		 
	
Libraries used:
		 
	
Take note that by default the library uses pin D3 (i.e the "S" pin of the IR module is connected to D3 of the Nano)
B4A UI (connected to the HC-05):
		 
	
B4R sample code:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Thank you @Erel for your guidance here
Code can in all probability be neatened up...but it is working as it is at present.
B4A and B4R projects attached.
			
			Nano connected to the HC-05 module
B4A app connects to the HC-05 and sends the B4A "button codes" to the HC-05
HC-05 sends the "button codes" to the Nano
Nano fires the applicable IR codes to the DSTV decoder via an IR led
The "Hex Codes" are stored in the program memory of the Nano (PROGMEM) - else it runs OOM
The RED led is purely there as an indicator when the IR led sends the control codes to the DSTV decoder
Note: The RX pin of the HC-05 requires max 3.3V. See the voltage divider between pin D11 of the Nano, the RDX pin of the HC-05, and GND
Libraries used:
Take note that by default the library uses pin D3 (i.e the "S" pin of the IR module is connected to D3 of the Nano)
B4A UI (connected to the HC-05):
B4R sample code:
			
				B4X:
			
		
		
		#Region Project Attributes
    #AutoFlushLogs: True
    #CheckArrayBounds: True
    #StackBufferSize: 300
#End Region
Sub Process_Globals
    Public Serial1 As Serial
    Private SoftwareSerial1 As SoftwareSerial
    Private astream As AsyncStreams
    Private leds(1) As Pin
    Dim program As Byte = 0
    
    Dim freq As UInt
        
End Sub
Private Sub AppStart
    Serial1.Initialize(115200)
    Log("AppStart")
    leds(0).Initialize(leds(0).A0, leds(0).MODE_OUTPUT)
    SoftwareSerial1.Initialize(9600, 10, 11) 'software serial port on pins 10 and 11
    astream.Initialize(SoftwareSerial1.Stream, "astream_NewData", Null)
End Sub
Sub AStream_NewData (Buffer() As Byte)
    
    Log("memory = ", AvailableRAM)
    For i = 0 To Buffer.Length - 2 Step 2
        If Buffer(i + 1) = 1 Then
            program = 1
            detail
        else If Buffer(i + 1) = 2 Then
            program = 2
            detail
        else If Buffer(i + 1) = 3 Then
            program = 3
            detail
            
        else If Buffer(i + 1) = 4 Then
            program = 4
            detail
            
        else If Buffer(i + 1) = 5 Then
            program = 5
            detail
        else if Buffer(i + 1) = 6 Then
            program = 6
            detail
            
        else if Buffer(i + 1) = 7 Then
            program = 7
            detail
            
        else if Buffer(i + 1) = 8 Then
            program = 8
            detail
            
        else if Buffer(i + 1) = 9 Then
            program = 9
            detail
        
        else if Buffer(i + 1) = 10 Then
            program = 10
            detail
            
        else if Buffer(i + 1) = 11 Then
            program = 11
            detail
            
        else if Buffer(i + 1) = 12 Then
            program = 12
            detail
            
        else if Buffer(i + 1) = 13 Then
            program = 13
            detail
            
        else if Buffer(i + 1) = 14 Then
            program = 14
            detail
        else if Buffer(i + 1) = 15 Then
            program = 15
            detail
            
        else if Buffer(i + 1) = 16 Then
            program = 16
            detail
            
        else if Buffer(i + 1) = 17 Then
            program = 17
            detail
            
        else if Buffer(i + 1) = 18 Then
            program = 18
            detail
            
        else if Buffer(i + 1) = 19 Then
            program = 19
            detail
            
        else if Buffer(i + 1) = 20 Then
            program = 20
            detail
            
        else if Buffer(i + 1) = 21 Then
            program = 21
            detail
            
        else if Buffer(i + 1) = 22 Then
            program = 22
            detail
            
        else if Buffer(i + 1) = 23 Then
            program = 23
            detail
            
        else if Buffer(i + 1) = 24 Then
            program = 24
            detail
            
        else if Buffer(i + 1) = 25 Then
            program = 25
            detail
            
        else if Buffer(i + 1) = 26 Then
            program = 26
            detail
            
        else if Buffer(i + 1) = 27 Then
            program = 27
            detail
            
        else if Buffer(i + 1) = 28 Then
            program = 28
            detail
            
        else if Buffer(i + 1) = 29 Then
            program = 29
            detail
            
        else if Buffer(i + 1) = 30 Then
            program = 30
            detail
            
        else if Buffer(i + 1) = 31 Then
            program = 31
            detail
            
        else if Buffer(i + 1) = 32 Then
            program = 32
            detail
            
        else if Buffer(i + 1) = 33 Then
            program = 33
            detail
            
        else if Buffer(i + 1) = 34 Then
            program = 34
            detail
            
        else if Buffer(i + 1) = 35 Then
            program = 35
            detail
            
        else if Buffer(i + 1) = 36 Then
            program = 36
            detail
            
        else if Buffer(i + 1) = 37 Then
            program = 37
            detail
            
        else if Buffer(i + 1) = 38 Then
            program = 38
            detail
            
        else if Buffer(i + 1) = 39 Then
            program = 39
            detail
            
        End If       
    Next
    
End Sub
private Sub detail
    Dim data(68) As UInt
    Dim prup(72) As UInt
    For i = 0 To 71
        prup(i) = GetUint(i)
    Next
    freq = 1000000/(prup(1)*0.241246)/1000
    Dim timing As Float = 1/freq*1000
    For i = 4 To prup.Length - 2
        data(i-4) = prup(i) * timing
    Next
    RunNative("send_code", data)
    leds(0).DigitalWrite(True)
    Delay(200)
    leds(0).DigitalWrite(False)
    
End Sub
Private Sub GetUint(Index As UInt) As UInt
    Index = Index * 2
    Dim low As Byte = RunNative("getdata", Index)
    Index = Index + 1
    Dim high As Byte = RunNative("getdata", Index)
    Return Bit.Or(low, Bit.ShiftLeft(high, 8))
End Sub
#If C
    #include <avr/pgmspace.h>
    const PROGMEM uint16_t progup[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DD
    };
    const PROGMEM uint16_t progdown[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012E, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };
    const PROGMEM uint16_t volup[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0097, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DE
    };
    const PROGMEM uint16_t voldown[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };
    const PROGMEM uint16_t pwr[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };
    const PROGMEM uint16_t mute[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012E, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };
    
    const PROGMEM uint16_t info[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F ,0x0098 ,0x0013 ,0x0013 ,0x0013 ,0x0039 ,0x0013 ,0x0039 ,0x0013 ,0x0013 ,0x0013 ,0x0039 ,0x0013 ,0x0039 ,0x0013 ,0x0039 ,0x0013 ,0x0039 ,0x0013 ,0x0039 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0039 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0039 ,0x0013 ,0x0039 ,0x0013 ,0x0013 ,0x0013 ,0x0039 ,0x0013 ,0x0039 ,0x0013 ,0x0039 ,0x0013 ,0x0039 ,0x0013 ,0x0039 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0039 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x0013 ,0x05DF
    };   
    
    const PROGMEM uint16_t ex[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };   
    
    const PROGMEM uint16_t ok[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };       
    
    const PROGMEM uint16_t zero[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0097, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DE
    };       
    
    const PROGMEM uint16_t one[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };       
    
    const PROGMEM uint16_t two[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0097, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };   
    
    const PROGMEM uint16_t three[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };           
    
    const PROGMEM uint16_t four[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012E, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DE
    };       
    
    const PROGMEM uint16_t five[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012E, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DE
    };       
    
    const PROGMEM uint16_t six[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012E, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DE
    };   
    
    const PROGMEM uint16_t seven[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DE
    };   
    
    const PROGMEM uint16_t eight[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };
    
    const PROGMEM uint16_t nine[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DC
    };   
    
    const PROGMEM uint16_t up[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };       
    
    const PROGMEM uint16_t down[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };   
    
    const PROGMEM uint16_t left[] = { //change the data here
    0x0000, 0x006E, 0x0000, 0x0022, 0x012D, 0x0096, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05D1
    };       
    
    const PROGMEM uint16_t right[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0097, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };   
    
    const PROGMEM uint16_t options[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };       
    
    const PROGMEM uint16_t dstv[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DE
    };           
    
    const PROGMEM uint16_t help[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };       
    
    const PROGMEM uint16_t playlist[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0097, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };       
    
    const PROGMEM uint16_t boxoffice[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };   
    
    const PROGMEM uint16_t tv[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x0130, 0x0097, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };   
    
    const PROGMEM uint16_t tvguide[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0097, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };   
    
    const PROGMEM uint16_t alt[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };           
    
    const PROGMEM uint16_t catchup[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };       
    
    const PROGMEM uint16_t arc[] = { //change the data here
    0x0000, 0x006D, 0x0022, 0x0000, 0x012E, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x5F04
    };   
    
    const PROGMEM uint16_t pauseplay[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };   
    
    const PROGMEM uint16_t record[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0097, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DD
    };       
    
    const PROGMEM uint16_t stp[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };   
    
    const PROGMEM uint16_t search[] = { //change the data here
    0x0000, 0x006E, 0x0000, 0x0022, 0x012C, 0x0096, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0038, 0x0013, 0x0038, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05D1
    };   
    
    const PROGMEM uint16_t ff[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012E, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };   
    
    const PROGMEM uint16_t rew[] = { //change the data here
    0x0000, 0x006D, 0x0000, 0x0022, 0x012F, 0x0098, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0039, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x05DF
    };                       
                    
    
    
    IRsend irsend;
    B4R::Object beo1;
    void send_code(B4R::Object* o){
        B4R::Array* b = (B4R::Array*)B4R::Object::toPointer(o);
        UInt* c = (UInt*)b->data;
        irsend.sendRaw(c, 68, b4r_main::_freq);
    }
    B4R::Object* getdata(B4R::Object* o) {
       if (b4r_main::_program == 1)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)progup + o->toLong()));
       if (b4r_main::_program == 2)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)progdown + o->toLong()));   
       if (b4r_main::_program == 3)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)volup + o->toLong()));                   
       if (b4r_main::_program == 4)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)voldown + o->toLong()));       
       if (b4r_main::_program == 5)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)pwr + o->toLong()));       
       if (b4r_main::_program == 6)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)mute + o->toLong()));                                       
       if (b4r_main::_program == 7)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)info + o->toLong()));   
       if (b4r_main::_program == 8)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)ex + o->toLong()));       
       if (b4r_main::_program == 9)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)ok + o->toLong()));             
       if (b4r_main::_program == 10)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)one + o->toLong()));       
       if (b4r_main::_program == 11)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)two + o->toLong()));       
       if (b4r_main::_program == 12)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)three + o->toLong()));   
       if (b4r_main::_program == 13)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)four + o->toLong()));   
       if (b4r_main::_program == 14)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)five + o->toLong()));
       if (b4r_main::_program == 15)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)six + o->toLong()));   
       if (b4r_main::_program == 16)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)seven + o->toLong()));   
       if (b4r_main::_program == 17)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)eight + o->toLong()));
       if (b4r_main::_program == 18)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)nine + o->toLong()));                                                                   
       if (b4r_main::_program == 19)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)zero + o->toLong()));       
       if (b4r_main::_program == 20)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)up + o->toLong()));
       if (b4r_main::_program == 21)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)down + o->toLong()));
       if (b4r_main::_program == 22)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)left + o->toLong()));
       if (b4r_main::_program == 23)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)right + o->toLong()));             
       if (b4r_main::_program == 24)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)options + o->toLong()));       
       if (b4r_main::_program == 25)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)dstv + o->toLong()));   
       if (b4r_main::_program == 26)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)help + o->toLong()));   
       if (b4r_main::_program == 27)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)playlist + o->toLong()));   
       if (b4r_main::_program == 28)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)boxoffice + o->toLong()));     
       if (b4r_main::_program == 29)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)tv + o->toLong()));   
       if (b4r_main::_program == 30)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)tvguide + o->toLong()));   
       if (b4r_main::_program == 31)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)alt + o->toLong()));   
       if (b4r_main::_program == 32)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)catchup + o->toLong()));   
       if (b4r_main::_program == 33)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)arc + o->toLong()));   
       if (b4r_main::_program == 34)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)pauseplay + o->toLong()));   
       if (b4r_main::_program == 35)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)record + o->toLong()));   
       if (b4r_main::_program == 36)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)stp + o->toLong()));   
       if (b4r_main::_program == 37)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)search + o->toLong()));       
       if (b4r_main::_program == 38)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)rew + o->toLong()));       
       if (b4r_main::_program == 39)
          return beo1.wrapNumber(pgm_read_byte_near((Byte*)ff + o->toLong()));                                                                         
                                                                                                                                    
    }
    
#End IfCode can in all probability be neatened up...but it is working as it is at present.
B4A and B4R projects attached.
 
				 
 
		 
 
		 
						
					 
 
		 
 
		 
 
		 
 
		 
 
		