none
LED Matrix Display [School Project]

    General discussion

  • Hello friends,

    I was working on a project from quite a some time now actually it was my school project.

    The project was about to make 6 x 8 LED matrix to show digits 0-9(Single digit at a time).

    After showing it in my school i decided to extend this project to a full fledged LED Matrix Scroller Display. So the project status is as follow.

    1. A LED font designer is ready
    Matrix_Width = 450
    Matrix_Height = 200
    LED_Size =25
    LED_Color_Out = "DarkRed"
    LED_Color_In = "Red"
    LED_Num_H =6
    LED_Num_V = 8
    GraphicsWindow.Width = Matrix_Width 
    GraphicsWindow.Height = Matrix_Height
    GraphicsWindow.Title = "LED Font Editor"
    LED_Font_Raw_Data = Controls.AddMultiLineTextBox(160,0)
    LED_Font_Raw_Data_CharAndDigit = Controls.AddTextBox(160,155)
    LED_Data_Save = Controls.AddButton("Save Data",330,155)
    Controls.ButtonClicked = Save
    Controls.SetSize(LED_Font_Raw_Data,300,150)
    GraphicsWindow.PenColor = LED_Color_Out
    GraphicsWindow.BrushColor = LED_Color_In
    GraphicsWindow.MouseMove= Move
    For _V = 0 To LED_Num_V - 1
      For _H = 0 To LED_Num_H - 1
        LED_Bulb[_V][_H] = Shapes.AddEllipse(LED_Size,LED_Size)
        Shapes.Move(LED_Bulb[_V][_H],(_H * LED_Size),(_V * LED_Size))
        Shapes.SetOpacity(LED_Bulb[_V][_H],30)
      EndFor
    EndFor
    Sub Move
      _Mouse_X = GraphicsWindow.MouseX
      _Mouse_Y = GraphicsWindow.MouseY
      If _Mouse_X < 150 Then
        For _V = 0 To LED_Num_V - 1
          For _H = 0 To LED_Num_H - 1
            If _Mouse_Y > _V * LED_Size And _Mouse_Y < (_V * LED_Size) + LED_Size Then
              If _Mouse_X > _H * LED_Size And _Mouse_X < (_H * LED_Size) + LED_Size Then
                If Mouse.IsLeftButtonDown Then
                  Shapes.SetOpacity(LED_Bulb[_V][_H],100)
                  Data[Controls.GetTextBoxText(LED_Font_Raw_Data_CharAndDigit)][_V][_H] = 1
                ElseIf Mouse.IsRightButtonDown Then
                  Shapes.SetOpacity(LED_Bulb[_V][_H],30)
                  Data[Controls.GetTextBoxText(LED_Font_Raw_Data_CharAndDigit)][_V][_H] = 0
                EndIf
              EndIf
            EndIf
          EndFor
        EndFor
      EndIf
      Controls.SetTextBoxText(LED_Font_Raw_Data,Data)
    EndSub
    Sub Save
      File.WriteContents(Program.Directory+"\"+"fonts data"+".TXT",Data)
      EndSub

    However it is not complete as of now but i working as i planned initially.

    I think there is a bug in Shapes.GetOpacity() it crashes the program. So i forced to use another method which not as good as it could be with  Shapes.GetOpacity() to achieve the desired result.

    If you want to try it then first enter a Alphabet or a digit in text box and then design your own character or digit by moving the mouse on LEDs while holding left mouse button (right button will turn the LED off)  then click on "Save Data" button. Now Enter another digit or character in text box turn all LEDs off by moving the mouse on them while holding right mouse button and repeat he first step. After finishing font designing close the editor.

    1. LED Matrix Display is ready
    Matrix_Width = 120
    Matrix_Height = 160
    LED_Size = 20
    LED_Color_Out = "DarkRed"
    LED_Color_In = "Red"
    LED_Num_H = 6
    LED_Num_V = 8
    Data = File.ReadContents("fonts data.txt")
    GraphicsWindow.Width = Matrix_Width 
    GraphicsWindow.Height = Matrix_Height
    GraphicsWindow.KeyDown = KeyDown
    GraphicsWindow.Title = "LED Tester"
    GraphicsWindow.PenColor = LED_Color_Out
    GraphicsWindow.BrushColor = LED_Color_In
    For _V = 0 To LED_Num_V - 1
      For _H = 0 To LED_Num_H - 1
        LED_Bulb[_V][_H] = Shapes.AddEllipse(LED_Size,LED_Size)
        Shapes.Move(LED_Bulb[_V][_H],(_H * LED_Size),(_V * LED_Size))
        Shapes.SetOpacity(LED_Bulb[_V][_H],30)
      EndFor
    EndFor
    Sub KeyDown
      Last_Key = GraphicsWindow.LastKey
      If Last_Key = "NumPad1" Then
        Key = 1
      ElseIf Last_Key = "NumPad2" Then
        Key = 2
      ElseIf Last_Key = "NumPad3" Then
        Key = 3
      ElseIf Last_Key = "NumPad4" Then
        Key = 4
      ElseIf Last_Key = "NumPad5" Then
        Key = 5
      ElseIf Last_Key = "NumPad6" Then
        Key = 6
      ElseIf Last_Key = "NumPad7" Then
        Key = 7
      ElseIf Last_Key = "NumPad8" Then
        Key = 8
      ElseIf Last_Key = "NumPad9" Then
        Key = 9
      ElseIf Last_Key = "NumPad0" Then
        Key = 0
      EndIf
      Display()
    EndSub
    Sub Display
      For _V = 0 To LED_Num_V - 1
        For _H = 0 To LED_Num_H - 1
          If Data[key][_V][_H] = 1 Then
            Shapes.SetOpacity(LED_Bulb[_V][_H],100)
          Else
            Shapes.SetOpacity(LED_Bulb[_V][_H],30)
          EndIf
        EndFor
      EndFor
    EndSub

    This program reads font data saved in a file file earlier by Font Designer and draw the obtained digit on LED Display. You may need to modify it a little or less to get it work.

    Still i want some help, guidance from you to make a scrolling display.

    Thanks in advance

    here is the screenshot of what i have done so far

     


    They say working hard is good but i say working smart is best...

    Saturday, December 22, 2012 7:09 PM

All replies

  • The get opacity is a known bug.

    Look really nice, but I couldn't get a display output like you.  If you can provide exact instructions of what to do with the code.  Perhaps even a test code that just does the display with preset values in it.  i.e something I can run without having to modify first.

    To scroll I think you just have to offset the _H on display.

    Something like (not actual code - just the idea)

    _Hval = _H - offset 'move to left

    While (_Hval  < 0)

      _Hval = _Hval +LED_Num_H

    EndWhile

    Then use _Hval in place of _H to set the opacity.  offset is the scroll value which you just increase every 0.5 sec or similar.

    Saturday, December 22, 2012 7:55 PM
    Moderator
  • The get opacity is a known bug.

    Look really nice, but I couldn't get a display output like you.  If you can provide exact instructions of what to do with the code.  Perhaps even a test code that just does the display with preset values in it.  i.e something I can run without having to modify first.

    To scroll I think you just have to offset the _H on display.

    Something like (not actual code - just the idea)

    _Hval = _H - offset 'move to left

    While (_Hval  < 0)

      _Hval = _Hval +LED_Num_H

    EndWhile

    Then use _Hval in place of _H to set the opacity.  offset is the scroll value which you just increase every 0.5 sec or similar.

    Here is the code it should work without any modification.

    I also implement your idea of making text scroll.

    Matrix_Width = 540
    Matrix_Height = 120
    LED_Size = 15
    LED_Color_Out = "DarkGreen"
    LED_Color_In = "Green"
    LED_Num_H = 36
    LED_Num_V = 8
    Shift = 36
    Data = "A=7\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;6\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;5\=0\\\=1\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=1\\\;\;4\=0\\\=1\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=1\\\;\;3\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;2\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;5\\\=1\\\;4\\\=1\\\;\;1\=0\\\=1\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=1\\\;\;0\=0\\\=0\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=0\\\;\;;B=0\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;C=0\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;D=0\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;E=0\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;F=0\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;;G=4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;0\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;5\=4\\\=1\\\;5\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=4\\\=1\\\;5\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=4\\\=1\\\;5\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;;H=0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;;I=0\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;1\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;2\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;3\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;4\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;6\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;7\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;;J=0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;;K=0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;;L=0\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;M=0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;;N=7\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;;O=0\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;P=0\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;;Q=0\=0\\\=0\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=0\\\;\;1\=0\\\=1\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=1\\\;\;2\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;3\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;4\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;5\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;6\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=1\\\;4\\\=1\\\;5\\\=1\\\;\;7\=0\\\=0\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=1\\\;\;;R=0\=0\\\=1\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=0\\\;\;1\=0\\\=1\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=1\\\;\;2\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;3\=0\\\=1\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=1\\\;\;4\=0\\\=1\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=0\\\;\;5\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;6\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;7\=0\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;4\\\=1\\\;5\\\=1\\\;\;;S=0\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;T=0\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;3\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;4\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;6\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;7\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;;U=0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;;V=0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;7\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;;W=0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;;X=0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;4\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;;Y=0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;6\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;7\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;;Z=0\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;3\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;4\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;0=7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;6\=0\\\=1\\\;4\\\=1\\\;5\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;\;5\=0\\\=1\\\;4\\\=1\\\;5\\\=1\\\;3\\\=0\\\;1\\\=1\\\;2\\\=0\\\;\;4\=0\\\=1\\\;4\\\=1\\\;5\\\=1\\\;3\\\=0\\\;1\\\=1\\\;2\\\=0\\\;\;3\=0\\\=1\\\;5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;\;2\=0\\\=1\\\;5\\\=1\\\;4\\\=1\\\;1\\\=1\\\;2\\\=0\\\;3\\\=0\\\;\;1\=0\\\=1\\\;5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;\;0\=0\\\=0\\\;1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;4\\\=1\\\;5\\\=0\\\;\;;1=0\=5\\\=0\\\;0\\\=0\\\;1\\\=0\\\;2\\\=1\\\;3\\\=1\\\;4\\\=0\\\;\;1\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;2\=5\\\=0\\\;0\\\=0\\\;1\\\=0\\\;2\\\=1\\\;3\\\=1\\\;4\\\=0\\\;\;3\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;4\=5\\\=0\\\;0\\\=0\\\;1\\\=0\\\;2\\\=1\\\;3\\\=1\\\;4\\\=0\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;6\=5\\\=0\\\;0\\\=0\\\;1\\\=0\\\;2\\\=1\\\;3\\\=1\\\;4\\\=0\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;;2=0\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;3\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=0\\\;0\\\=0\\\;\;4\=5\\\=0\\\;4\\\=0\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;5\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;3=0\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;3\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;4=0\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;;5=0\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;;6=0\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;1\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=0\\\;4\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;;7=0\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;4\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;5\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;6\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;;8=0\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;4\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;7\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;;9=0\=5\\\=0\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;1\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;2\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=1\\\;0\\\=1\\\;\;3\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=1\\\;\;4\=5\\\=1\\\;4\\\=1\\\;3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;0\\\=0\\\;\;5\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;6\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;7\=5\\\=1\\\;4\\\=1\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;0\\\=0\\\;\;;"
    GraphicsWindow.Width = Matrix_Width
    GraphicsWindow.Height = Matrix_Height
    GraphicsWindow.BackgroundColor = "Black"
    GraphicsWindow.KeyDown = KeyDown
    GraphicsWindow.Title = "LED Matrix Scroller Display"
    GraphicsWindow.PenColor = LED_Color_Out
    GraphicsWindow.BrushColor = LED_Color_In
    For _V = 0 To LED_Num_V - 1
      For _H = 0 To LED_Num_H - 1
        LED_Bulb[_V][_H] = Shapes.AddEllipse(LED_Size,LED_Size)
        Shapes.Move(LED_Bulb[_V][_H],(_H * LED_Size),(_V * LED_Size))
        Shapes.SetOpacity(LED_Bulb[_V][_H],30)
      EndFor
    EndFor
    Sub KeyDown
      Last_Key = GraphicsWindow.LastKey
      Key = 0
      Display()
      Scroll()
    EndSub
    Sub Display
      For _V = 0 To LED_Num_V - 1
        For _H = 0 To LED_Num_H - 1
          If Data[Alpha][_V][_H] = 1 Then
            Shapes.SetOpacity(LED_Bulb[_V][_H+Shift],100)
          Else
            Shapes.SetOpacity(LED_Bulb[_V][_H+Shift],30)
          EndIf
        EndFor
      EndFor
    EndSub
    Sub OffallLEDs
      For _V = 0 To LED_Num_V - 1
        For _H = 0 To LED_Num_H - 1
          Shapes.SetOpacity(LED_Bulb[_V][_H],30)
        EndFor
      EndFor
    EndSub
    Sub Scroll
      Shift = LED_Num_H
      OffallLEDs()
      While Shift <> -6
        Shift = Shift - 1
        Display()
        Program.Delay(150)
        Key = Key + 1
        If Key > 35 Then
          Key = 0
        EndIf
        If Key < 25 Then
          Alpha = Text.GetCharacter(65+Key)
        Else
          Alpha = Key - 25
        EndIf
      EndWhile
    EndSub


    Merry Xmas!

    Sunday, December 23, 2012 7:35 AM
  • Very cool Amir, I nominated it for the blog.  Here is an import ID NGJ236.
    Sunday, December 23, 2012 10:29 AM
    Moderator
  • Very cool Amir, I nominated it for the blog.  Here is an import ID NGJ236.

    Hi LitDev Thanks for nominating my program.

    ZRL837 here is the new version. Actually this display is not new it was string to LED font generator which convert a string into LED compatible font data. I will post the String to LED Font converter after doing some better GUI and tweaks.


    Merry Xmas!

    Sunday, December 23, 2012 12:51 PM
  • Matrix_Width = 540
    Matrix_Height = 105
    LED_Size = 15
    LED_Color_Out = "DarkGreen"
    LED_Color_In = "Green"
    LED_Num_H = 124
    LED_Num_V = 7
    Shift = 36
    Data = "SB=0\=1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;119\\\=0\\\;118\\\=0\\\;117\\\=0\\\;116\\\=0\\\;115\\\=0\\\;114\\\=1\\\;113\\\=1\\\;112\\\=1\\\;0\\\=0\\\;4\\\=0\\\;5\\\=0\\\;6\\\=0\\\;7\\\=0\\\;8\\\=0\\\;9\\\=0\\\;10\\\=0\\\;11\\\=0\\\;12\\\=0\\\;13\\\=0\\\;14\\\=0\\\;15\\\=0\\\;16\\\=0\\\;17\\\=1\\\;18\\\=0\\\;19\\\=0\\\;20\\\=1\\\;21\\\=0\\\;22\\\=0\\\;23\\\=0\\\;24\\\=1\\\;25\\\=1\\\;26\\\=1\\\;27\\\=0\\\;28\\\=0\\\;29\\\=0\\\;30\\\=0\\\;31\\\=0\\\;32\\\=0\\\;33\\\=0\\\;34\\\=0\\\;35\\\=0\\\;36\\\=0\\\;37\\\=0\\\;38\\\=0\\\;39\\\=0\\\;40\\\=1\\\;41\\\=0\\\;42\\\=0\\\;43\\\=0\\\;44\\\=0\\\;45\\\=0\\\;46\\\=0\\\;47\\\=0\\\;48\\\=1\\\;49\\\=0\\\;50\\\=0\\\;51\\\=0\\\;52\\\=0\\\;53\\\=0\\\;54\\\=0\\\;55\\\=0\\\;56\\\=0\\\;57\\\=0\\\;58\\\=1\\\;59\\\=0\\\;60\\\=0\\\;61\\\=0\\\;62\\\=0\\\;63\\\=0\\\;64\\\=0\\\;65\\\=0\\\;66\\\=0\\\;67\\\=0\\\;68\\\=0\\\;69\\\=0\\\;70\\\=0\\\;71\\\=0\\\;72\\\=0\\\;73\\\=0\\\;74\\\=0\\\;75\\\=0\\\;76\\\=0\\\;77\\\=0\\\;78\\\=0\\\;79\\\=0\\\;80\\\=0\\\;81\\\=0\\\;82\\\=0\\\;83\\\=0\\\;84\\\=0\\\;85\\\=0\\\;86\\\=0\\\;87\\\=1\\\;88\\\=0\\\;89\\\=0\\\;90\\\=0\\\;91\\\=1\\\;92\\\=0\\\;93\\\=0\\\;94\\\=0\\\;95\\\=0\\\;96\\\=0\\\;97\\\=0\\\;98\\\=0\\\;99\\\=0\\\;100\\\=0\\\;101\\\=0\\\;102\\\=0\\\;103\\\=1\\\;104\\\=0\\\;105\\\=0\\\;106\\\=0\\\;107\\\=0\\\;108\\\=0\\\;109\\\=0\\\;110\\\=0\\\;111\\\=0\\\;\;1\=0\\\=1\\\;4\\\=1\\\;110\\\=0\\\;109\\\=0\\\;108\\\=0\\\;107\\\=0\\\;106\\\=0\\\;105\\\=0\\\;104\\\=1\\\;103\\\=1\\\;102\\\=0\\\;101\\\=0\\\;100\\\=0\\\;99\\\=0\\\;98\\\=0\\\;97\\\=0\\\;96\\\=0\\\;95\\\=0\\\;94\\\=0\\\;93\\\=0\\\;92\\\=0\\\;91\\\=1\\\;90\\\=1\\\;89\\\=0\\\;88\\\=1\\\;87\\\=1\\\;86\\\=0\\\;85\\\=0\\\;84\\\=0\\\;83\\\=0\\\;82\\\=0\\\;81\\\=0\\\;80\\\=0\\\;79\\\=0\\\;78\\\=1\\\;77\\\=0\\\;76\\\=0\\\;75\\\=0\\\;72\\\=0\\\;70\\\=0\\\;69\\\=0\\\;68\\\=0\\\;66\\\=0\\\;64\\\=0\\\;63\\\=0\\\;59\\\=0\\\;58\\\=0\\\;56\\\=0\\\;55\\\=0\\\;52\\\=0\\\;51\\\=0\\\;50\\\=0\\\;49\\\=0\\\;48\\\=0\\\;47\\\=0\\\;46\\\=0\\\;45\\\=0\\\;44\\\=0\\\;43\\\=0\\\;41\\\=0\\\;40\\\=0\\\;38\\\=0\\\;37\\\=0\\\;36\\\=0\\\;35\\\=0\\\;33\\\=0\\\;31\\\=0\\\;30\\\=0\\\;29\\\=0\\\;28\\\=0\\\;27\\\=1\\\;26\\\=0\\\;25\\\=0\\\;24\\\=1\\\;23\\\=0\\\;21\\\=0\\\;19\\\=0\\\;18\\\=0\\\;17\\\=1\\\;16\\\=0\\\;15\\\=0\\\;14\\\=0\\\;13\\\=0\\\;12\\\=0\\\;11\\\=0\\\;10\\\=0\\\;9\\\=0\\\;8\\\=0\\\;7\\\=0\\\;6\\\=0\\\;5\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;119\\\=0\\\;118\\\=0\\\;117\\\=0\\\;114\\\=0\\\;115\\\=1\\\;116\\\=0\\\;113\\\=0\\\;112\\\=0\\\;111\\\=1\\\;73\\\=0\\\;74\\\=0\\\;67\\\=0\\\;42\\\=0\\\;53\\\=0\\\;71\\\=0\\\;57\\\=1\\\;60\\\=0\\\;61\\\=0\\\;62\\\=0\\\;65\\\=0\\\;54\\\=0\\\;32\\\=0\\\;22\\\=0\\\;20\\\=1\\\;39\\\=0\\\;34\\\=0\\\;\;2\=0\\\=1\\\;117\\\=0\\\;116\\\=1\\\;115\\\=0\\\;114\\\=1\\\;118\\\=0\\\;119\\\=0\\\;112\\\=1\\\;113\\\=0\\\;111\\\=0\\\;109\\\=0\\\;108\\\=0\\\;110\\\=1\\\;106\\\=0\\\;103\\\=1\\\;100\\\=0\\\;90\\\=1\\\;93\\\=0\\\;91\\\=1\\\;86\\\=0\\\;88\\\=1\\\;89\\\=0\\\;73\\\=0\\\;77\\\=1\\\;81\\\=0\\\;85\\\=0\\\;87\\\=1\\\;74\\\=0\\\;76\\\=0\\\;78\\\=1\\\;84\\\=0\\\;107\\\=0\\\;105\\\=0\\\;104\\\=0\\\;102\\\=0\\\;101\\\=0\\\;98\\\=0\\\;96\\\=0\\\;94\\\=0\\\;92\\\=0\\\;97\\\=0\\\;95\\\=0\\\;99\\\=0\\\;82\\\=0\\\;83\\\=0\\\;79\\\=0\\\;80\\\=1\\\;75\\\=0\\\;72\\\=0\\\;71\\\=0\\\;68\\\=0\\\;65\\\=1\\\;61\\\=0\\\;59\\\=0\\\;58\\\=1\\\;41\\\=0\\\;40\\\=1\\\;39\\\=0\\\;38\\\=1\\\;37\\\=1\\\;36\\\=1\\\;35\\\=0\\\;34\\\=0\\\;33\\\=0\\\;32\\\=1\\\;31\\\=1\\\;30\\\=0\\\;29\\\=0\\\;28\\\=0\\\;27\\\=1\\\;26\\\=0\\\;25\\\=0\\\;24\\\=1\\\;23\\\=0\\\;22\\\=0\\\;21\\\=0\\\;20\\\=1\\\;19\\\=0\\\;18\\\=0\\\;17\\\=1\\\;16\\\=0\\\;15\\\=0\\\;14\\\=1\\\;13\\\=1\\\;12\\\=0\\\;66\\\=1\\\;67\\\=0\\\;69\\\=0\\\;70\\\=0\\\;64\\\=1\\\;63\\\=0\\\;42\\\=0\\\;44\\\=1\\\;46\\\=0\\\;49\\\=0\\\;51\\\=1\\\;52\\\=1\\\;53\\\=1\\\;54\\\=0\\\;48\\\=1\\\;50\\\=0\\\;55\\\=0\\\;60\\\=1\\\;62\\\=1\\\;57\\\=1\\\;56\\\=1\\\;47\\\=0\\\;45\\\=0\\\;43\\\=1\\\;11\\\=0\\\;10\\\=0\\\;9\\\=1\\\;8\\\=0\\\;7\\\=1\\\;6\\\=1\\\;4\\\=0\\\;5\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;\;3\=1\\\=1\\\;2\\\=1\\\;3\\\=1\\\;119\\\=0\\\;118\\\=0\\\;117\\\=0\\\;116\\\=1\\\;113\\\=0\\\;114\\\=0\\\;115\\\=1\\\;112\\\=0\\\;111\\\=1\\\;110\\\=1\\\;109\\\=0\\\;108\\\=0\\\;103\\\=1\\\;96\\\=0\\\;93\\\=0\\\;90\\\=0\\\;88\\\=0\\\;86\\\=0\\\;77\\\=1\\\;83\\\=0\\\;64\\\=1\\\;70\\\=0\\\;79\\\=1\\\;89\\\=0\\\;99\\\=0\\\;100\\\=0\\\;67\\\=1\\\;69\\\=0\\\;72\\\=0\\\;95\\\=0\\\;65\\\=0\\\;71\\\=0\\\;74\\\=0\\\;80\\\=1\\\;101\\\=0\\\;105\\\=0\\\;104\\\=0\\\;106\\\=0\\\;107\\\=0\\\;97\\\=0\\\;94\\\=1\\\;92\\\=0\\\;102\\\=1\\\;98\\\=0\\\;91\\\=1\\\;81\\\=0\\\;78\\\=1\\\;82\\\=0\\\;84\\\=1\\\;87\\\=1\\\;85\\\=0\\\;76\\\=1\\\;75\\\=0\\\;73\\\=0\\\;68\\\=0\\\;58\\\=0\\\;57\\\=1\\\;47\\\=0\\\;46\\\=0\\\;44\\\=0\\\;43\\\=0\\\;11\\\=0\\\;10\\\=1\\\;9\\\=0\\\;8\\\=1\\\;7\\\=0\\\;6\\\=1\\\;13\\\=0\\\;16\\\=0\\\;18\\\=0\\\;22\\\=0\\\;25\\\=1\\\;62\\\=1\\\;63\\\=0\\\;66\\\=0\\\;61\\\=0\\\;59\\\=0\\\;52\\\=0\\\;49\\\=0\\\;39\\\=0\\\;37\\\=0\\\;36\\\=0\\\;35\\\=1\\\;34\\\=0\\\;56\\\=0\\\;51\\\=0\\\;48\\\=1\\\;45\\\=1\\\;42\\\=1\\\;41\\\=0\\\;40\\\=1\\\;60\\\=1\\\;55\\\=0\\\;54\\\=0\\\;53\\\=0\\\;4\\\=0\\\;0\\\=0\\\;5\\\=0\\\;12\\\=0\\\;17\\\=1\\\;20\\\=1\\\;24\\\=1\\\;26\\\=1\\\;29\\\=0\\\;30\\\=0\\\;31\\\=0\\\;32\\\=0\\\;33\\\=1\\\;50\\\=1\\\;28\\\=0\\\;27\\\=1\\\;15\\\=1\\\;14\\\=0\\\;19\\\=0\\\;21\\\=0\\\;23\\\=0\\\;38\\\=0\\\;\;4\=4\\\=1\\\;118\\\=0\\\;119\\\=0\\\;115\\\=0\\\;117\\\=0\\\;116\\\=1\\\;113\\\=1\\\;114\\\=1\\\;112\\\=1\\\;111\\\=0\\\;110\\\=1\\\;109\\\=0\\\;108\\\=0\\\;107\\\=0\\\;100\\\=1\\\;65\\\=0\\\;60\\\=1\\\;58\\\=0\\\;98\\\=0\\\;53\\\=0\\\;55\\\=0\\\;61\\\=0\\\;67\\\=1\\\;75\\\=0\\\;85\\\=1\\\;77\\\=1\\\;69\\\=0\\\;81\\\=0\\\;84\\\=1\\\;78\\\=1\\\;82\\\=0\\\;86\\\=1\\\;90\\\=0\\\;94\\\=1\\\;96\\\=0\\\;97\\\=0\\\;70\\\=0\\\;73\\\=0\\\;79\\\=0\\\;91\\\=1\\\;93\\\=1\\\;72\\\=0\\\;87\\\=1\\\;66\\\=0\\\;64\\\=1\\\;89\\\=0\\\;80\\\=1\\\;88\\\=0\\\;92\\\=1\\\;102\\\=1\\\;101\\\=0\\\;99\\\=0\\\;103\\\=1\\\;104\\\=0\\\;105\\\=0\\\;106\\\=0\\\;95\\\=0\\\;76\\\=0\\\;83\\\=0\\\;74\\\=0\\\;71\\\=0\\\;68\\\=0\\\;56\\\=0\\\;54\\\=0\\\;52\\\=1\\\;51\\\=1\\\;50\\\=0\\\;49\\\=0\\\;30\\\=0\\\;33\\\=1\\\;48\\\=1\\\;47\\\=0\\\;46\\\=0\\\;45\\\=0\\\;44\\\=0\\\;43\\\=0\\\;42\\\=1\\\;59\\\=0\\\;62\\\=1\\\;63\\\=0\\\;57\\\=1\\\;40\\\=1\\\;39\\\=0\\\;37\\\=1\\\;35\\\=0\\\;34\\\=0\\\;32\\\=1\\\;31\\\=1\\\;29\\\=0\\\;28\\\=1\\\;26\\\=0\\\;25\\\=0\\\;24\\\=1\\\;23\\\=0\\\;22\\\=0\\\;21\\\=0\\\;20\\\=1\\\;19\\\=0\\\;18\\\=0\\\;17\\\=1\\\;36\\\=1\\\;38\\\=0\\\;41\\\=0\\\;16\\\=0\\\;7\\\=0\\\;6\\\=1\\\;5\\\=0\\\;3\\\=0\\\;8\\\=1\\\;9\\\=0\\\;10\\\=1\\\;11\\\=0\\\;12\\\=0\\\;13\\\=1\\\;14\\\=1\\\;15\\\=1\\\;27\\\=0\\\;0\\\=0\\\;1\\\=0\\\;2\\\=0\\\;\;5\=4\\\=1\\\;0\\\=1\\\;119\\\=0\\\;118\\\=0\\\;117\\\=0\\\;116\\\=0\\\;115\\\=1\\\;114\\\=0\\\;113\\\=0\\\;112\\\=0\\\;111\\\=1\\\;110\\\=0\\\;109\\\=0\\\;108\\\=0\\\;107\\\=0\\\;106\\\=0\\\;98\\\=0\\\;68\\\=0\\\;91\\\=1\\\;85\\\=0\\\;76\\\=0\\\;67\\\=1\\\;60\\\=1\\\;54\\\=0\\\;52\\\=0\\\;63\\\=0\\\;70\\\=0\\\;58\\\=0\\\;86\\\=0\\\;87\\\=1\\\;71\\\=0\\\;73\\\=0\\\;97\\\=0\\\;82\\\=0\\\;80\\\=0\\\;79\\\=0\\\;77\\\=0\\\;94\\\=1\\\;92\\\=0\\\;90\\\=0\\\;88\\\=0\\\;81\\\=0\\\;74\\\=0\\\;72\\\=0\\\;89\\\=0\\\;78\\\=1\\\;83\\\=0\\\;84\\\=1\\\;93\\\=0\\\;95\\\=0\\\;96\\\=0\\\;99\\\=0\\\;101\\\=1\\\;102\\\=1\\\;100\\\=1\\\;105\\\=0\\\;103\\\=1\\\;104\\\=0\\\;75\\\=0\\\;34\\\=0\\\;55\\\=0\\\;56\\\=0\\\;57\\\=1\\\;69\\\=0\\\;61\\\=0\\\;62\\\=1\\\;64\\\=1\\\;66\\\=0\\\;65\\\=0\\\;59\\\=0\\\;53\\\=1\\\;49\\\=0\\\;50\\\=0\\\;51\\\=0\\\;48\\\=1\\\;47\\\=0\\\;46\\\=0\\\;44\\\=0\\\;43\\\=0\\\;42\\\=1\\\;41\\\=0\\\;40\\\=1\\\;39\\\=0\\\;38\\\=1\\\;37\\\=0\\\;36\\\=0\\\;35\\\=0\\\;33\\\=1\\\;32\\\=0\\\;30\\\=1\\\;29\\\=0\\\;28\\\=1\\\;27\\\=0\\\;26\\\=0\\\;25\\\=0\\\;24\\\=1\\\;23\\\=0\\\;22\\\=0\\\;21\\\=0\\\;20\\\=1\\\;19\\\=0\\\;18\\\=0\\\;17\\\=1\\\;16\\\=0\\\;15\\\=1\\\;14\\\=0\\\;13\\\=0\\\;12\\\=1\\\;11\\\=0\\\;10\\\=1\\\;9\\\=0\\\;8\\\=1\\\;7\\\=0\\\;6\\\=1\\\;5\\\=0\\\;3\\\=0\\\;2\\\=0\\\;1\\\=0\\\;31\\\=0\\\;45\\\=1\\\;\;6\=3\\\=1\\\;2\\\=1\\\;1\\\=1\\\;118\\\=0\\\;119\\\=0\\\;115\\\=0\\\;116\\\=0\\\;117\\\=0\\\;113\\\=1\\\;112\\\=1\\\;114\\\=1\\\;111\\\=0\\\;110\\\=0\\\;109\\\=0\\\;108\\\=0\\\;107\\\=0\\\;106\\\=0\\\;105\\\=1\\\;100\\\=0\\\;96\\\=0\\\;60\\\=0\\\;59\\\=0\\\;95\\\=0\\\;61\\\=1\\\;62\\\=1\\\;64\\\=1\\\;57\\\=1\\\;85\\\=1\\\;66\\\=0\\\;69\\\=1\\\;73\\\=1\\\;78\\\=0\\\;89\\\=0\\\;94\\\=1\\\;68\\\=0\\\;67\\\=1\\\;71\\\=1\\\;72\\\=0\\\;75\\\=0\\\;81\\\=0\\\;86\\\=0\\\;90\\\=1\\\;93\\\=1\\\;80\\\=0\\\;82\\\=0\\\;79\\\=0\\\;70\\\=0\\\;76\\\=0\\\;77\\\=0\\\;83\\\=0\\\;87\\\=1\\\;91\\\=1\\\;84\\\=1\\\;103\\\=1\\\;98\\\=0\\\;99\\\=0\\\;97\\\=0\\\;102\\\=1\\\;104\\\=1\\\;101\\\=1\\\;88\\\=1\\\;92\\\=0\\\;74\\\=0\\\;46\\\=0\\\;51\\\=1\\\;52\\\=1\\\;53\\\=0\\\;54\\\=0\\\;65\\\=0\\\;63\\\=0\\\;58\\\=0\\\;56\\\=0\\\;55\\\=0\\\;50\\\=1\\\;49\\\=0\\\;48\\\=1\\\;0\\\=0\\\;47\\\=0\\\;45\\\=0\\\;44\\\=1\\\;43\\\=1\\\;42\\\=0\\\;41\\\=0\\\;40\\\=1\\\;39\\\=0\\\;38\\\=0\\\;37\\\=1\\\;36\\\=1\\\;35\\\=1\\\;34\\\=0\\\;33\\\=1\\\;32\\\=1\\\;31\\\=1\\\;30\\\=0\\\;29\\\=0\\\;28\\\=0\\\;27\\\=1\\\;26\\\=1\\\;25\\\=1\\\;24\\\=1\\\;23\\\=0\\\;22\\\=0\\\;21\\\=1\\\;20\\\=0\\\;19\\\=0\\\;18\\\=1\\\;17\\\=0\\\;16\\\=0\\\;15\\\=1\\\;14\\\=1\\\;13\\\=1\\\;12\\\=0\\\;11\\\=0\\\;10\\\=1\\\;9\\\=0\\\;8\\\=1\\\;7\\\=0\\\;6\\\=1\\\;5\\\=0\\\;4\\\=0\\\;\;;"
    GraphicsWindow.Width = Matrix_Width 
    GraphicsWindow.Height = Matrix_Height
    GraphicsWindow.BackgroundColor = "Black"
    GraphicsWindow.Title = "LED Matrix Scroller Display"
    GraphicsWindow.PenColor = LED_Color_Out
    GraphicsWindow.BrushColor = LED_Color_In
    For _V = 0 To LED_Num_V - 1
      For _H = 0 To LED_Num_H - 1
        LED_Bulb[_V][_H] = Shapes.AddEllipse(LED_Size,LED_Size)
        Shapes.Move(LED_Bulb[_V][_H],(_H * LED_Size),(_V * LED_Size))
        Shapes.SetOpacity(LED_Bulb[_V][_H],20)
      EndFor
    EndFor
      Scroll()
    Sub Display
      For _V = 0 To LED_Num_V - 1
        For _H = 0 To LED_Num_H - 1
          If Data["SB"][_V][_H] = 1 Then
            Shapes.SetOpacity(LED_Bulb[_V][_H+Shift],100)
          Else
            Shapes.SetOpacity(LED_Bulb[_V][_H+Shift],20)
          EndIf
        EndFor
      EndFor
    EndSub
    Sub Scroll
      While "True"
        Shift = Shift - 1
        If Shift < -124 Then
          Shift = 36
        EndIf
        Display()
      EndWhile
    EndSub
          

    Hello LitDev,

    My Text to LED fonts converter get one character from a text string get the related data from a text file (file saved by Font Designer) and join all the character in an array. E.g

    column =  1 row = 10000101010101

    column =  2 row = 00010111011100

    and so on....

    but the problem i facing is that when string is long it become slower because of  array length.

    try the code and please help me to sort out this problem....

    The "Data" variable is actually a 3D array.

    e.g

    Data["SB"][1][1] = 0

    Data["SB"][1][2] = 1


    Merry Xmas!

    Sunday, December 23, 2012 7:02 PM
  • Merry Xmas,

    The arrays in Small Basic are slow - no magic wand.  Your code is good, nothing to do to speed it apart from:

    1] Reduce the size of arrays - e.g. one array for each row (horrible code results).

    2] Use an extension for arrays - these are 1D arrays mostly, so lots of nasty workarounds.

    3] You have written a great program that is only limited by the way SmallBasic handles arrays - consider playing with VB or C# to see how it might handle things.

    EDIT suggestion

    swap the order of changing bulbs

      For _V = 0 To LED_Num_V - 1
        For _H = 0 To LED_Num_H - 1
    

    to

      For _H = 0 To LED_Num_H - 1
        For _V = 0 To LED_Num_V - 1
    
    Not faster but looks smoother


    Sunday, December 23, 2012 7:44 PM
    Moderator
  • It will be featured. Thanks, guys!

    Ed Price (a.k.a User Ed), SQL Server Customer Program Manager (Blog, Twitter, Wiki)

    Saturday, December 29, 2012 8:37 AM
    Owner
  • Featured here: http://blogs.msdn.com/b/smallbasic/archive/2013/01/06/led-display-small-basic-featured-program.aspx

    Thanks!


    Ed Price (a.k.a User Ed), SQL Server Customer Program Manager (Blog, Twitter, Wiki)

    Sunday, January 06, 2013 10:32 PM
    Owner
  • I will post a new version very soon. Work still going on to make it faster.

    Merry Xmas!

    Sunday, January 20, 2013 6:10 PM