Something for HACMan LED Sign

Dependencies:   mbed

main.cpp

Committer:
TBSliver
Date:
2015-06-11
Revision:
3:3fa042397a95
Parent:
2:ecd97a0901e2

File content as of revision 3:3fa042397a95:

#include "ledsign.h"

#define B 0
#define R 1
#define G 2
#define O 3


const int sign_a[32][128] = {
{B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, R, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, B, R, R, R, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, R, R, R, B, B, R, R, R, R, B, B, B, B, B, B, B, B, R, R, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, B, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, R, B, R, B, B, B, B, B, B, R, B, B, B, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, R, R, B, B, B, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, R, B, R, B, B, B, B, B, R, B, B, B, B, B, R, B, B, B, B, B, R, R, R, B, B, B, B, B, R, B, R, B, R, B, R, B, B, B, B, R, R, R, R, B, B, B, B, B, R, R, B, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, R, B, B, R, B, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, B, B, B, R, B, R, B, R, B, R, B, B, B, B, B, B, B, B, R, B, B, B, B, B, R, R, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, R, R, R, R, R, B, B, B, B, R, B, B, B, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, B, B, B, R, B, R, B, R, B, R, B, B, B, B, R, R, R, R, R, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, R, R, R, R, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, R, B, B, R, B, B, B, R, R, B, B, B, R, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, R, B, B, B, B, R, R, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, B, B, B, R, B, B, B, B, B, R, B, B, B, R, B, B, B, B, R, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, R, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, R, R, R, B, B, B, B, B, R, B, B, B, B, B, R, B, B, B, R, B, B, B, R, R, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, R, R, R, B, R, R, R, R, B, R, R, R, R, B, B, B, B, R, R, R, R, B, B, B, B, B, B, R, R, R, B, B, B, B, R, R, R, B, B, B, R, R, R, B, B, B, R, R, R, B, R, R, B, B, B, R, R, R, B, B, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, R, B, B, B, B, B, B, B, B, B, B, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, G, B, B, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, G, G, G, G, B, B, B, B, G, G, G, B, B, B, B, G, G, G, G, B, G, G, G, G, G, G, B, B, B, G, G, G, B, B, G, G, G, G, G, B, B, B, B, B, B, B, B, B, B, G, G, G, G, B, B, B, G, G, B, G, G, B, B, B, G, G, G, G, G, B, B, B, B, B, B, B, G, G, B, G, G, B, B, B, G, B, G, G, G, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, G, B, B, B, B, B, G, B, B, B, G, B, B, B, G, B, B, G, B, G, B, G, B, B, B, B, B, G, B, B, B, G, B, B, B, G, B, B, B, B, B, B, B, B, G, B, B, B, B, G, B, B, B, G, G, B, B, B, B, G, B, B, B, G, B, B, B, B, B, B, B, B, B, G, B, B, G, B, B, B, G, B, G, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, G, B, B, G, G, G, G, B, B, B, G, B, B, B, B, B, B, G, B, G, B, G, B, B, G, G, G, G, B, B, B, G, B, B, B, G, B, B, B, B, B, B, B, B, G, B, B, B, B, G, B, B, B, G, B, B, B, B, B, G, B, B, B, G, B, B, B, B, B, B, B, B, B, G, B, B, G, B, B, B, G, G, G, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, R, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, G, B, B, G, B, B, G, B, B, B, G, B, B, B, G, B, B, G, B, G, B, G, B, B, G, B, B, G, B, B, B, G, B, B, B, G, B, B, B, G, G, B, B, B, G, B, B, B, B, G, B, B, B, G, B, B, B, B, B, G, B, B, B, G, B, B, B, G, G, B, B, B, B, G, B, B, G, B, B, B, G, B, B, G, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, R, B, B, B, B, B, B, B, B, B, B, G, G, G, B, G, G, G, B, G, G, G, G, G, B, B, B, G, G, G, G, B, G, G, G, G, B, G, G, B, G, G, G, G, G, B, G, G, G, B, G, G, G, B, B, G, G, B, B, B, B, G, G, G, G, B, B, B, G, G, G, G, B, B, B, B, G, G, G, G, B, B, B, G, G, B, B, B, B, G, G, G, G, G, B, G, G, B, B, G, G, B, B, B},
{B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, G, B, B, G, B, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, G, B, G, G, B, B, G, G, G, G, B, B, B, G, G, G, B, B, G, G, G, G, B, G, G, G, G, G, G, B, B, G, G, G, B, G, G, G, G, G, B, B, G, G, G, G, B, B, G, G, G, G, B, B, B, G, G, G, B, B, G, G, G, G, B, B, B, G, B, B, B, B, B, G, G, G, B, B, G, G, B, G, G, B, B, B, B, B, B, B, B},
{B, B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, G, G, B, G, B, B, G, B, B, G, B, B, B, B, B, G, B, G, B, B, B, B, B, B, G, B, G, B, G, B, B, B, B, G, B, B, G, B, B, G, B, G, B, B, B, B, B, B, G, B, B, G, B, B, G, B, B, B, G, B, G, B, B, B, B, B, G, G, G, G, B, B, G, B, B, B, G, B, B, G, G, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, G, G, B, G, B, B, G, B, B, G, B, B, G, G, G, G, B, G, B, B, B, B, B, B, G, B, G, B, G, B, G, G, G, G, B, B, G, B, B, G, B, G, B, B, B, B, B, B, G, B, B, G, B, B, G, G, G, G, G, B, G, G, G, G, B, B, B, G, B, B, B, B, G, G, G, G, G, B, B, G, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, R, R, R, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, G, G, G, G, B, B, G, B, B, G, B, B, G, B, B, G, B, G, B, B, B, G, B, B, G, B, G, B, G, B, G, B, B, G, B, B, G, B, B, G, B, G, B, B, B, G, B, B, G, B, B, G, B, B, G, B, B, B, B, B, B, B, B, G, B, B, B, G, B, B, B, B, G, B, B, B, B, B, B, G, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, B, B, R, R, R, R, O, O, O, O, O, O, R, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, G, B, B, B, G, G, B, B, G, G, B, G, G, G, G, G, B, G, G, G, B, B, G, G, B, G, B, G, B, G, G, G, G, B, G, G, B, B, G, G, B, G, G, G, B, B, G, G, B, B, G, G, B, B, G, G, G, G, B, G, G, G, G, B, B, B, G, G, G, G, B, B, G, G, G, G, B, G, G, G, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B}
};

const int sign_b[32][128] = {
{R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, R, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, B, R, R, R, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, R, R, R, B, B, R, R, R, R, B, B, B, B, B, B, B, B, R, R, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, B, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, R, B, R, B, B, B, B, B, B, R, B, B, B, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, R, R, B, B, B, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, R, B, R, B, B, B, B, B, R, B, B, B, B, B, R, B, B, B, B, B, R, R, R, B, B, B, B, B, R, B, R, B, R, B, R, B, B, B, B, R, R, R, R, B, B, B, B, B, R, R, B, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, R, B, B, R, B, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, B, B, B, R, B, R, B, R, B, R, B, B, B, B, B, B, B, B, R, B, B, B, B, B, R, R, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, R, R, R, R, R, B, B, B, B, R, B, B, B, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, B, B, B, R, B, R, B, R, B, R, B, B, B, B, R, R, R, R, R, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, R, R, R, R, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, R, B, B, R, B, B, B, R, R, B, B, B, R, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, R, B, B, B, B, R, R, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, B, B, B, R, B, B, B, B, B, R, B, B, B, R, B, B, B, B, R, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, B, B, B, B, R, B, B, B, R, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, R, R, R, B, B, B, B, B, R, B, B, B, B, B, R, B, B, B, R, B, B, B, R, R, B, B, B, B, B, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, R, R, R, B, B, R, R, R, B, R, R, R, R, B, R, R, R, R, B, B, B, B, R, R, R, R, B, B, B, B, B, B, R, R, R, B, B, B, B, R, R, R, B, B, B, R, R, R, B, B, B, R, R, R, B, R, R, B, B, B, R, R, R, B, B, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, R, B, B, B, B, B, B, B, B, B, B, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, G, B, B, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, G, G, G, G, B, B, B, B, G, G, G, B, B, B, B, G, G, G, G, B, G, G, G, G, G, G, B, B, B, G, G, G, B, B, G, G, G, G, G, B, B, B, B, B, B, B, B, B, B, G, G, G, G, B, B, B, G, G, B, G, G, B, B, B, G, G, G, G, G, B, B, B, B, B, B, B, G, G, B, G, G, B, B, B, G, B, G, G, G, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, G, B, B, B, B, B, G, B, B, B, G, B, B, B, G, B, B, G, B, G, B, G, B, B, B, B, B, G, B, B, B, G, B, B, B, G, B, B, B, B, B, B, B, B, G, B, B, B, B, G, B, B, B, G, G, B, B, B, B, G, B, B, B, G, B, B, B, B, B, B, B, B, B, G, B, B, G, B, B, B, G, B, G, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, R, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, G, B, B, G, G, G, G, B, B, B, G, B, B, B, B, B, B, G, B, G, B, G, B, B, G, G, G, G, B, B, B, G, B, B, B, G, B, B, B, B, B, B, B, B, G, B, B, B, B, G, B, B, B, G, B, B, B, B, B, G, B, B, B, G, B, B, B, B, B, B, B, B, B, G, B, B, G, B, B, B, G, G, G, B, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, R, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, G, B, B, G, B, B, G, B, B, B, G, B, B, B, G, B, B, G, B, G, B, G, B, B, G, B, B, G, B, B, B, G, B, B, B, G, B, B, B, G, G, B, B, B, G, B, B, B, B, G, B, B, B, G, B, B, B, B, B, G, B, B, B, G, B, B, B, G, G, B, B, B, B, G, B, B, G, B, B, B, G, B, B, G, B, B, B, B},
{B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, R, B, B, B, B, B, B, B, B, B, B, G, G, G, B, G, G, G, B, G, G, G, G, G, B, B, B, G, G, G, G, B, G, G, G, G, B, G, G, B, G, G, G, G, G, B, G, G, G, B, G, G, G, B, B, G, G, B, B, B, B, G, G, G, G, B, B, B, G, G, G, G, B, B, B, B, G, G, G, G, B, B, B, G, G, B, B, B, B, G, G, G, G, G, B, G, G, B, B, G, G, B, B, B},
{B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, G, B, B, G, B, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, G, B, G, G, B, B, G, G, G, G, B, B, B, G, G, G, B, B, G, G, G, G, B, G, G, G, G, G, G, B, B, G, G, G, B, G, G, G, G, G, B, B, G, G, G, G, B, B, G, G, G, G, B, B, B, G, G, G, B, B, G, G, G, G, B, B, B, G, B, B, B, B, B, G, G, G, B, B, G, G, B, G, G, B, B, B, B, B, B, B, B},
{B, B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, G, G, B, G, B, B, G, B, B, G, B, B, B, B, B, G, B, G, B, B, B, B, B, B, G, B, G, B, G, B, B, B, B, G, B, B, G, B, B, G, B, G, B, B, B, B, B, B, G, B, B, G, B, B, G, B, B, B, G, B, G, B, B, B, B, B, G, G, G, G, B, B, G, B, B, B, G, B, B, G, G, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, R, R, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, R, R, B, B, B, B, B, B, B, B, B, B, B, G, G, B, G, B, B, G, B, B, G, B, B, G, G, G, G, B, G, B, B, B, B, B, B, G, B, G, B, G, B, G, G, G, G, B, B, G, B, B, G, B, G, B, B, B, B, B, B, G, B, B, G, B, B, G, G, G, G, G, B, G, G, G, G, B, B, B, G, B, B, B, B, G, G, G, G, G, B, B, G, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, R, R, R, O, O, O, O, O, O, O, O, O, O, O, O, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, G, G, G, G, B, B, G, B, B, G, B, B, G, B, B, G, B, G, B, B, B, G, B, B, G, B, G, B, G, B, G, B, B, G, B, B, G, B, B, G, B, G, B, B, B, G, B, B, G, B, B, G, B, B, G, B, B, B, B, B, B, B, B, G, B, B, B, G, B, B, B, B, G, B, B, B, B, B, B, G, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, B, B, R, R, R, R, O, O, O, O, O, O, R, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, G, B, B, B, G, G, B, B, G, G, B, G, G, G, G, G, B, G, G, G, B, B, G, G, B, G, B, G, B, G, G, G, G, B, G, G, B, B, G, G, B, G, G, G, B, B, G, G, B, B, G, G, B, B, G, G, G, G, B, G, G, G, G, B, B, B, G, G, G, G, B, B, G, G, G, G, B, G, G, G, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, R, R, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, G, G, G, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B},
{B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B}
};

// Sign Output Pins

BusOut address(p17, p18, p19, p20); // Address 0 to 16
BusOut colour(p15, p16);            // 0 = off, 1 = red, 2 = green, 3 = orange

DigitalOut abTop(p14);              // bank A or B switch for Top Row - 0 = A, 1 = B
DigitalOut clkTop(p13);             // clock for Top Row
DigitalOut weTop(p28);              // Write Enable for Top Row
DigitalOut aeTop(p27);              // Address Enable for Top Row
DigitalOut enbTop(p26);             // Enable for Top Row

DigitalOut abBot(p25);              // bank A or B switch for Bottom Row - 0 = A, 1 = B
DigitalOut clkBot(p24);             // clock for Bottom Row
DigitalOut weBot(p23);              // Write Enable for Bottom Row
DigitalOut aeBot(p22);              // Address Enable for Bottom Row
DigitalOut enbBot(p21);             // Enable for Bottom Row

int main() {

    setup();
    
    while(1)
    {
    writeArray((int*)sign_a);
    
    wait(1);
    
    writeArray((int*)sign_b);
    wait(1);
    }
}

void setup() {
    address = 0;
    colour = 0;
    abTop = 0;
    clkTop = 0;
    weTop = 0;
    aeTop = 0;
    enbTop = 0;
    abBot = 0;
    clkBot = 0;
    weBot = 0;
    aeBot = 0;
    enbBot = 0;

    //simple test pattern

    enbTop = 1;
    enbBot = 1;

    abTop = 1; // set top bank to A
    abBot = 1; // set bottom bank to A
    colour = 3; // set colour to orange
    writeColour();
    wait(1);
    abTop = 0; // set top bank to A
    abBot = 0; // set bottom bank to A
    colour = 2; // set colour to green
    writeColour();
    wait(1);
    abTop = 1; // set top bank to A
    abBot = 1; // set bottom bank to A
    colour = 1; // set colour to red
    writeColour();
    wait(1);
    abTop = 0; // set top bank to A
    abBot = 0; // set bottom bank to A
    colour = 0; // set colour to black
    writeColour();
    wait(1);
}

void writeColour() {

    for (int i=0; i<128; i++) { // clock in 128 bits to turn all the LED's on
        clkTop = 1;
        clkBot = 1;
        wait_us(10);
        clkTop = 0;
        clkBot = 0;
        wait_us(10);
    }

    for (int i=0; i<16; i++) {
        writeTop(i);
        writeBot(i);
    }

}

void writeArray(int * pointer) {
    
    abTop = 1;
    abBot = 1;
    
    //top half image in array
    
    for(int ad = 0; ad < 16 ; ad++) {
        
        for(int row = 0; row < 128 ; row++) {
            
            colour = *(pointer++/* (128*ad) + row*/);
            wait_us(1);
            clkTop = 1;
            wait_us(1);
            clkTop = 0;
            wait_us(1);
            
        }
    
    writeTop(ad);
        
    }
    
    //bottom half image in array
    
    for(int ad = 0; ad < 16 ; ad++) {
        
        for(int row = 0; row < 128 ; row++) {
            
            colour = *(pointer++/* (128*(ad+16)) + row*/);
            wait_us(1);
            clkBot = 1;
            wait_us(1);
            clkBot = 0;
            wait_us(1);
            
        }
    
    writeBot(ad);
        
    }
    
    abTop = 0;
    abBot = 0;

}


void writeTop(int topAddress) {
    address = topAddress;
    aeTop = 1;
    wait_us(1);
    weTop = 1;
    wait_us(1);
    weTop = 0;
    wait_us(1);
    aeTop = 0;
    wait_us(1);
}

void writeBot(int botAddress) {
    address = botAddress;
    aeBot = 1;
    wait_us(1);
    weBot = 1;
    wait_us(1);
    weBot = 0;
    wait_us(1);
    aeBot = 0;
    wait_us(1);
}