diff --git a/spi03/Makefile b/spi03/Makefile new file mode 100644 index 0000000..c10efbe --- /dev/null +++ b/spi03/Makefile @@ -0,0 +1,32 @@ + +ARMGNU ?= arm-none-eabi + +COPS = -mthumb -Wall -O2 -nostdlib -nostartfiles -ffreestanding + +all : spi03.hex spi03.bin + +clean : + rm -f *.o + rm -f *.bin + rm -f *.hex + rm -f *.elf + rm -f *.list + rm -f *.img + +novectors.o : novectors.s + $(ARMGNU)-as novectors.s -o novectors.o + +spi03.o : spi03.c fontdata.h + $(ARMGNU)-gcc $(COPS) -c spi03.c -o spi03.o + +spi03.elf : memmap novectors.o spi03.o + $(ARMGNU)-ld novectors.o spi03.o -T memmap -o spi03.elf + $(ARMGNU)-objdump -D spi03.elf > spi03.list + +spi03.bin : spi03.elf + $(ARMGNU)-objcopy spi03.elf -O binary spi03.bin + +spi03.hex : spi03.elf + $(ARMGNU)-objcopy spi03.elf -O ihex spi03.hex + + diff --git a/spi03/README b/spi03/README new file mode 100644 index 0000000..5e01acd --- /dev/null +++ b/spi03/README @@ -0,0 +1,71 @@ + +See the top level README for information on where to find the +schematic and programmers reference manual for the ARM processor +on the raspberry pi. Also find information on how to load and run +these programs. + +See the top level README for information on how to connect the raspi +uart to your host computer. + +This example uses the spi interface with a Nokia 5110 display, these +are probably all recycled from old phones, who knows. There seems +to be a large quantity of the out there. + +https://www.sparkfun.com/products/10168 +http://www.adafruit.com/products/338 + +I got 5 of them on ebay for $13 with pins. + +Perhaps some soldering is required, in some way you need to hook up +the signals. + +I use these, but bought the 100 pack + +https://www.sparkfun.com/products/10898 + +F/F means Female/Female both ends are female which is what you want +if you have a row of pins on yours. + +Raspberry Pi signals of interest, all on the P1 connector + +alt function 0 for these +GPIO8 SPI0_CE0_N P1-24 +GPIO10 SPI0_MOSI P1-19 +GPIO11 SPI0_SCLK P1-23 + +these are set gpio outputs +GPIO7 SPI0_CE1_N P1-26 +GPIO25 GPIO_GEN6 P1-22 + +power and ground ++3V3 P1-1 +GND P1-25 + +Now the sparkfun and adafruit and ebay special dont have the same +pinout, the same signals are there but not necessarily in the same +order. So this chart is not necessarily in the same pin order as your +display. The names may not exactly match either... + +Nokia 5110 to raspi + +GND P1-25 ground +VCC P1-1 power +DIN (MOSI) P1-19 data in, spi mosi +SCK/CLK P1-23 spi clock +D/C P1-22 data/command +RST P1-26 reset +CS/CE P1-24 spi chip select + +Your board may have a row of pins above and below the display, they +are the same you only need one row. + +The various examples out there use the same init routine. + + + + + + + + + diff --git a/spi03/fontdata.h b/spi03/fontdata.h new file mode 100644 index 0000000..45ccda0 --- /dev/null +++ b/spi03/fontdata.h @@ -0,0 +1,2905 @@ + +const unsigned char fontdata[256][8]= +{ +//---- 0x00 ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ +//{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, +//---- 0x01 ---- +//[ ###### ] +//[# #] +//[# # # #] +//[# #] +//[# #### #] +//[# ## #] +//[# #] +//[ ###### +//{0x7E,0x81,0xA9,0x8D,0x8D,0xA9,0x81,0x7E}, +{0x7E,0x81,0x95,0xB1,0xB1,0x95,0x81,0x7E}, +//---- 0x02 ---- +//[ ###### ] +//[########] +//[## ## ##] +//[########] +//[## ##] +//[### ###] +//[########] +//[ ###### +//{0x7E,0xFF,0xD7,0xF3,0xF3,0xD7,0xFF,0x7E}, +{0x7E,0xFF,0xEB,0xCF,0xCF,0xEB,0xFF,0x7E}, +//---- 0x03 ---- +//[ ## ## ] +//[####### ] +//[####### ] +//[####### ] +//[ ##### ] +//[ ### ] +//[ # ] +//[ +//{0x70,0xF8,0xFC,0x7E,0xFC,0xF8,0x70,0x00}, +{0x0E,0x1F,0x3F,0x7E,0x3F,0x1F,0x0E,0x00}, +//---- 0x04 ---- +//[ # ] +//[ ### ] +//[ ##### ] +//[####### ] +//[ ##### ] +//[ ### ] +//[ # ] +//[ +//{0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00}, +{0x08,0x1C,0x3E,0x7F,0x3E,0x1C,0x08,0x00}, +//---- 0x05 ---- +//[ #### ] +//[ #### ] +//[ ## ] +//[########] +//[### ###] +//[ ## ] +//[ #### ] +//[ +//{0x18,0x18,0xDA,0xF6,0xF6,0xDA,0x18,0x18}, +{0x18,0x18,0x5B,0x6F,0x6F,0x5B,0x18,0x18}, +//---- 0x06 ---- +//[ # ] +//[ ### ] +//[ ##### ] +//[####### ] +//[### ### ] +//[ # ] +//[ ### ] +//[ +//{0x18,0x38,0x7A,0xF6,0x7A,0x38,0x18,0x00}, +{0x18,0x1C,0x5E,0x6F,0x5E,0x1C,0x18,0x00}, +//---- 0x07 ---- +//[ ] +//[ ] +//[ ## ] +//[ #### ] +//[ #### ] +//[ ## ] +//[ ] +//[ +//{0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00}, +{0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00}, +//---- 0x08 ---- +//[########] +//[########] +//[### ###] +//[## ##] +//[## ##] +//[### ###] +//[########] +//[######## +//{0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF}, +{0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF}, +//---- 0x09 ---- +//[ ] +//[ #### ] +//[ ## ## ] +//[ # # ] +//[ # # ] +//[ ## ## ] +//[ #### ] +//[ +//{0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00}, +{0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00}, +//---- 0x0A ---- +//[########] +//[## ##] +//[# ## #] +//[# #### #] +//[# #### #] +//[# ## #] +//[## ##] +//[######## +//{0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF}, +{0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF}, +//---- 0x0B ---- +//[ ####] +//[ ###] +//[ ####] +//[ ##### #] +//[## ## ] +//[## ## ] +//[## ## ] +//[ #### +//{0x0E,0x1F,0x11,0x11,0xBF,0xFE,0xE0,0xF0}, +{0x70,0xF8,0x88,0x88,0xFD,0x7F,0x07,0x0F}, +//---- 0x0C ---- +//[ #### ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ #### ] +//[ ## ] +//[ ###### ] +//[ ## +//{0x00,0x72,0xFA,0x8F,0x8F,0xFA,0x72,0x00}, +{0x00,0x4E,0x5F,0xF1,0xF1,0x5F,0x4E,0x00}, +//---- 0x0D ---- +//[ # ] +//[ ## ] +//[ # # ] +//[ # # ] +//[ # ] +//[ #### ] +//[#### ] +//[ +//{0x02,0x06,0x06,0x06,0xFC,0x40,0x30,0x00}, +{0x40,0x60,0x60,0x60,0x3F,0x02,0x0C,0x00}, +//---- 0x0E ---- +//[ ## ] +//[ # # ] +//[ ## # ] +//[ # ## ] +//[ ### # ] +//[### # ] +//[ ### ] +//[ ### +//{0x04,0x0C,0x0C,0xF9,0xA3,0x53,0x3E,0x00}, +{0x20,0x30,0x30,0x9F,0xC5,0xCA,0x7C,0x00}, +//---- 0x0F ---- +//[ # ] +//[ # # # ] +//[ ### ] +//[### ### ] +//[ ### ] +//[ # # # ] +//[ # ] +//[ +//{0x10,0x54,0x38,0xEE,0x38,0x54,0x10,0x00}, +{0x08,0x2A,0x1C,0x77,0x1C,0x2A,0x08,0x00}, +//---- 0x10 ---- +//[# ] +//[### ] +//[##### ] +//[####### ] +//[##### ] +//[### ] +//[# ] +//[ +//{0xFE,0x7C,0x7C,0x38,0x38,0x10,0x10,0x00}, +{0x7F,0x3E,0x3E,0x1C,0x1C,0x08,0x08,0x00}, +//---- 0x11 ---- +//[ # ] +//[ ### ] +//[ ##### ] +//[####### ] +//[ ##### ] +//[ ### ] +//[ # ] +//[ +//{0x10,0x10,0x38,0x38,0x7C,0x7C,0xFE,0x00}, +{0x08,0x08,0x1C,0x1C,0x3E,0x3E,0x7F,0x00}, +//---- 0x12 ---- +//[ ## ] +//[ #### ] +//[ # ## # ] +//[ ## ] +//[ # ## # ] +//[ #### ] +//[ ## ] +//[ +//{0x00,0x28,0x44,0xFE,0xFE,0x44,0x28,0x00}, +{0x00,0x14,0x22,0x7F,0x7F,0x22,0x14,0x00}, +//---- 0x13 ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ] +//[ ## ## ] +//[ +//{0x00,0xFA,0xFA,0x00,0x00,0xFA,0xFA,0x00}, +{0x00,0x5F,0x5F,0x00,0x00,0x5F,0x5F,0x00}, +//---- 0x14 ---- +//[ #######] +//[## ## ##] +//[## ## ##] +//[## ## ##] +//[ #### ##] +//[ ## ##] +//[ ## ##] +//[ +//{0x70,0xF8,0x88,0xFE,0xFE,0x80,0xFE,0xFE}, +{0x0E,0x1F,0x11,0x7F,0x7F,0x01,0x7F,0x7F}, +//---- 0x15 ---- +//[ ### ] +//[ # # ] +//[ ### ] +//[ # # ] +//[ # # ] +//[ ### ] +//[# # ] +//[ ### +//{0x02,0x19,0x65,0xA5,0xA6,0x98,0x40,0x00}, +{0x40,0x98,0xA6,0xA5,0x65,0x19,0x02,0x00}, +//---- 0x16 ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[ ###### ] +//[ ###### ] +//[ ###### ] +//[ +//{0x00,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x00}, +{0x00,0x70,0x70,0x70,0x70,0x70,0x70,0x00}, +//---- 0x17 ---- +//[ ## ] +//[ #### ] +//[ # ## # ] +//[ ## ] +//[ # ## # ] +//[ #### ] +//[ ## ] +//[ ###### +//{0x00,0x29,0x45,0xFF,0xFF,0x45,0x29,0x00}, +{0x00,0x94,0xA2,0xFF,0xFF,0xA2,0x94,0x00}, +//---- 0x18 ---- +//[ ## ] +//[ #### ] +//[ # ## # ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ +//{0x00,0x20,0x40,0xFE,0xFE,0x40,0x20,0x00}, +{0x00,0x04,0x02,0x7F,0x7F,0x02,0x04,0x00}, +//---- 0x19 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ # ## # ] +//[ #### ] +//[ ## ] +//[ +//{0x00,0x08,0x04,0xFE,0xFE,0x04,0x08,0x00}, +{0x00,0x10,0x20,0x7F,0x7F,0x20,0x10,0x00}, +//---- 0x1A ---- +//[ ] +//[ ## ] +//[ ## ] +//[####### ] +//[ ## ] +//[ ## ] +//[ ] +//[ +//{0x10,0x10,0x10,0x54,0x7C,0x38,0x10,0x00}, +{0x08,0x08,0x08,0x2A,0x3E,0x1C,0x08,0x00}, +//---- 0x1B ---- +//[ ] +//[ ## ] +//[ ## ] +//[####### ] +//[ ## ] +//[ ## ] +//[ ] +//[ +//{0x10,0x38,0x7C,0x54,0x10,0x10,0x10,0x00}, +{0x08,0x1C,0x3E,0x2A,0x08,0x08,0x08,0x00}, +//---- 0x1C ---- +//[ ] +//[ ] +//[## ] +//[## ] +//[## ] +//[####### ] +//[ ] +//[ +//{0x3C,0x3C,0x04,0x04,0x04,0x04,0x04,0x00}, +{0x3C,0x3C,0x20,0x20,0x20,0x20,0x20,0x00}, +//---- 0x1D ---- +//[ ] +//[ # # ] +//[ # # ] +//[########] +//[ # # ] +//[ # # ] +//[ ] +//[ +//{0x10,0x38,0x54,0x10,0x10,0x54,0x38,0x10}, +{0x08,0x1C,0x2A,0x08,0x08,0x2A,0x1C,0x08}, +//---- 0x1E ---- +//[ ] +//[ # ] +//[ ### ] +//[ ##### ] +//[####### ] +//[####### ] +//[ ] +//[ +//{0x0C,0x1C,0x3C,0x7C,0x3C,0x1C,0x0C,0x00}, +{0x30,0x38,0x3C,0x3E,0x3C,0x38,0x30,0x00}, +//---- 0x1F ---- +//[ ] +//[####### ] +//[####### ] +//[ ##### ] +//[ ### ] +//[ # ] +//[ ] +//[ +//{0x60,0x70,0x78,0x7C,0x78,0x70,0x60,0x00}, +{0x06,0x0E,0x1E,0x3E,0x1E,0x0E,0x06,0x00}, +//---- 0x20 ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ +//{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, +//---- 0x21 ---- +//[ ## ] +//[ #### ] +//[ #### ] +//[ ## ] +//[ ## ] +//[ ] +//[ ## ] +//[ +//{0x00,0x00,0x60,0xFA,0xFA,0x60,0x00,0x00}, +{0x00,0x00,0x06,0x5F,0x5F,0x06,0x00,0x00}, +//---- 0x22 ---- +//[ ## ## ] +//[ # # ] +//[ # # ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ +//{0x00,0x80,0xE0,0x00,0x80,0xE0,0x00,0x00}, +{0x00,0x01,0x07,0x00,0x01,0x07,0x00,0x00}, +//---- 0x23 ---- +//[ ## ## ] +//[ ## ## ] +//[####### ] +//[ ## ## ] +//[####### ] +//[ ## ## ] +//[ ## ## ] +//[ +//{0x28,0xFE,0xFE,0x28,0xFE,0xFE,0x28,0x00}, +{0x14,0x7F,0x7F,0x14,0x7F,0x7F,0x14,0x00}, +//---- 0x24 ---- +//[ # ] +//[ ##### ] +//[## # ] +//[ ##### ] +//[ # ## ] +//[###### ] +//[ # ] +//[ +//{0x24,0x74,0x54,0xFE,0x54,0x5C,0x08,0x00}, +{0x24,0x2E,0x2A,0x7F,0x2A,0x3A,0x10,0x00}, +//---- 0x25 ---- +//[ ] +//[ ## ## ] +//[# # ## ] +//[## ## ] +//[ ## ## ] +//[ ## # # ] +//[## ## ] +//[ +//{0x32,0x56,0x6C,0x18,0x36,0x6A,0x4C,0x00}, +{0x4C,0x6A,0x36,0x18,0x6C,0x56,0x32,0x00}, +//---- 0x26 ---- +//[ ### ] +//[ # ## ] +//[ ### ] +//[ #### ] +//[## ### ] +//[## ## ] +//[ #### # ] +//[ +//{0x0C,0x5E,0xB2,0xB2,0xFE,0x4C,0x0A,0x00}, +{0x30,0x7A,0x4D,0x4D,0x7F,0x32,0x50,0x00}, +//---- 0x27 ---- +//[ ## ] +//[ # ] +//[ # ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ +//{0x00,0x00,0xA0,0xC0,0x00,0x00,0x00,0x00}, +{0x00,0x00,0x05,0x03,0x00,0x00,0x00,0x00}, +//---- 0x28 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ +//{0x00,0x38,0x7C,0xC6,0x82,0x00,0x00,0x00}, +{0x00,0x1C,0x3E,0x63,0x41,0x00,0x00,0x00}, +//---- 0x29 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ +//{0x00,0x82,0xC6,0x7C,0x38,0x00,0x00,0x00}, +{0x00,0x41,0x63,0x3E,0x1C,0x00,0x00,0x00}, +//---- 0x2A ---- +//[ ] +//[ ## ## ] +//[ #### ] +//[########] +//[ #### ] +//[ ## ## ] +//[ ] +//[ +//{0x10,0x54,0x7C,0x38,0x38,0x7C,0x54,0x10}, +{0x08,0x2A,0x3E,0x1C,0x1C,0x3E,0x2A,0x08}, +//---- 0x2B ---- +//[ ] +//[ ## ] +//[ ## ] +//[###### ] +//[ ## ] +//[ ## ] +//[ ] +//[ +//{0x10,0x10,0x7C,0x7C,0x10,0x10,0x00,0x00}, +{0x08,0x08,0x3E,0x3E,0x08,0x08,0x00,0x00}, +//---- 0x2C ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ## ] +//[ # ] +//[ # +//{0x00,0x00,0x05,0x06,0x00,0x00,0x00,0x00}, +{0x00,0x00,0xA0,0x60,0x00,0x00,0x00,0x00}, +//---- 0x2D ---- +//[ ] +//[ ] +//[ ] +//[###### ] +//[ ] +//[ ] +//[ ] +//[ +//{0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00}, +{0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00}, +//---- 0x2E ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ## ] +//[ +//{0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00}, +{0x00,0x00,0x40,0x40,0x00,0x00,0x00,0x00}, +//---- 0x2F ---- +//[ # ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[## ] +//[ +//{0x02,0x06,0x0C,0x18,0x30,0x60,0xC0,0x00}, +{0x40,0x60,0x30,0x18,0x0C,0x06,0x03,0x00}, +//---- 0x30 ---- +//[ ##### ] +//[## ### ] +//[## #### ] +//[#### ## ] +//[### ## ] +//[### ## ] +//[ ##### ] +//[ +//{0x7C,0xFE,0x9E,0xB2,0xE2,0xFE,0x7C,0x00}, +{0x3E,0x7F,0x79,0x4D,0x47,0x7F,0x3E,0x00}, +//---- 0x31 ---- +//[ ## ] +//[ ### ] +//[ #### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ###### ] +//[ +//{0x00,0x22,0x62,0xFE,0xFE,0x02,0x02,0x00}, +{0x00,0x44,0x46,0x7F,0x7F,0x40,0x40,0x00}, +//---- 0x32 ---- +//[ ##### ] +//[## ## ] +//[ ## ] +//[ ### ] +//[ ### ] +//[## ## ] +//[####### ] +//[ +//{0x46,0xCE,0x8A,0x9A,0x92,0xF6,0x66,0x00}, +{0x62,0x73,0x51,0x59,0x49,0x6F,0x66,0x00}, +//---- 0x33 ---- +//[ ##### ] +//[## ## ] +//[ ## ] +//[ #### ] +//[ ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x44,0xC6,0x92,0x92,0x92,0xFE,0x6C,0x00}, +{0x22,0x63,0x49,0x49,0x49,0x7F,0x36,0x00}, +//---- 0x34 ---- +//[ ### ] +//[ #### ] +//[ ## ## ] +//[## ## ] +//[####### ] +//[ ## ] +//[ #### ] +//[ +//{0x18,0x38,0x68,0xCA,0xFE,0xFE,0x0A,0x00}, +{0x18,0x1C,0x16,0x53,0x7F,0x7F,0x50,0x00}, +//---- 0x35 ---- +//[####### ] +//[## ] +//[###### ] +//[ ## ] +//[ ## ] +//[## ## ] +//[ ##### ] +//[ +//{0xE4,0xE6,0xA2,0xA2,0xA2,0xBE,0x9C,0x00}, +{0x27,0x67,0x45,0x45,0x45,0x7D,0x39,0x00}, +//---- 0x36 ---- +//[ ##### ] +//[## ## ] +//[## ] +//[###### ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x7C,0xFE,0x92,0x92,0x92,0xDE,0x4C,0x00}, +{0x3E,0x7F,0x49,0x49,0x49,0x7B,0x32,0x00}, +//---- 0x37 ---- +//[####### ] +//[## ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ +//{0xC0,0xC0,0x8E,0x9E,0xB0,0xE0,0xC0,0x00}, +{0x03,0x03,0x71,0x79,0x0D,0x07,0x03,0x00}, +//---- 0x38 ---- +//[ ##### ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x6C,0xFE,0x92,0x92,0x92,0xFE,0x6C,0x00}, +{0x36,0x7F,0x49,0x49,0x49,0x7F,0x36,0x00}, +//---- 0x39 ---- +//[ ##### ] +//[## ## ] +//[## ## ] +//[ ###### ] +//[ ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x64,0xF6,0x92,0x92,0x92,0xFE,0x7C,0x00}, +{0x26,0x6F,0x49,0x49,0x49,0x7F,0x3E,0x00}, +//---- 0x3A ---- +//[ ] +//[ ## ] +//[ ] +//[ ] +//[ ] +//[ ## ] +//[ ] +//[ +//{0x00,0x00,0x44,0x44,0x00,0x00,0x00,0x00}, +{0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00}, +//---- 0x3B ---- +//[ ] +//[ ## ] +//[ ] +//[ ] +//[ ] +//[ ## ] +//[ # ] +//[ # +//{0x00,0x00,0x45,0x46,0x00,0x00,0x00,0x00}, +{0x00,0x00,0xA2,0x62,0x00,0x00,0x00,0x00}, +//---- 0x3C ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ +//{0x00,0x10,0x38,0x6C,0xC6,0x82,0x00,0x00}, +{0x00,0x08,0x1C,0x36,0x63,0x41,0x00,0x00}, +//---- 0x3D ---- +//[ ] +//[ ] +//[ ###### ] +//[ ] +//[ ] +//[ ###### ] +//[ ] +//[ +//{0x00,0x24,0x24,0x24,0x24,0x24,0x24,0x00}, +{0x00,0x24,0x24,0x24,0x24,0x24,0x24,0x00}, +//---- 0x3E ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ +//{0x00,0x82,0xC6,0x6C,0x38,0x10,0x00,0x00}, +{0x00,0x41,0x63,0x36,0x1C,0x08,0x00,0x00}, +//---- 0x3F ---- +//[ #### ] +//[## ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ] +//[ ## ] +//[ +//{0x40,0xC0,0x8A,0x9A,0xF0,0x60,0x00,0x00}, +{0x02,0x03,0x51,0x59,0x0F,0x06,0x00,0x00}, +//---- 0x40 ---- +//[ ##### ] +//[# # ] +//[# #### ] +//[# # ## ] +//[# #### ] +//[# ] +//[ ##### ] +//[ +//{0x7C,0x82,0x92,0xAA,0xAA,0xBA,0x78,0x00}, +{0x3E,0x41,0x49,0x55,0x55,0x5D,0x1E,0x00}, +//---- 0x41 ---- +//[ ##### ] +//[## ## ] +//[## ## ] +//[####### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ +//{0x7E,0xFE,0x90,0x90,0x90,0xFE,0x7E,0x00}, +{0x7E,0x7F,0x09,0x09,0x09,0x7F,0x7E,0x00}, +//---- 0x42 ---- +//[###### ] +//[ ## ## ] +//[ ## ## ] +//[ ##### ] +//[ ## ## ] +//[ ## ## ] +//[###### ] +//[ +//{0x82,0xFE,0xFE,0x92,0x92,0xFE,0x6C,0x00}, +{0x41,0x7F,0x7F,0x49,0x49,0x7F,0x36,0x00}, +//---- 0x43 ---- +//[ ##### ] +//[## ## ] +//[## ] +//[## ] +//[## ] +//[## ## ] +//[ ##### ] +//[ +//{0x7C,0xFE,0x82,0x82,0x82,0xC6,0x44,0x00}, +{0x3E,0x7F,0x41,0x41,0x41,0x63,0x22,0x00}, +//---- 0x44 ---- +//[###### ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[###### ] +//[ +//{0x82,0xFE,0xFE,0x82,0x82,0xFE,0x7C,0x00}, +{0x41,0x7F,0x7F,0x41,0x41,0x7F,0x3E,0x00}, +//---- 0x45 ---- +//[####### ] +//[ ## # ] +//[ ## # ] +//[ #### ] +//[ ## # ] +//[ ## # ] +//[####### ] +//[ +//{0x82,0xFE,0xFE,0x92,0xBA,0x82,0xC6,0x00}, +{0x41,0x7F,0x7F,0x49,0x5D,0x41,0x63,0x00}, +//---- 0x46 ---- +//[####### ] +//[ ## # ] +//[ ## # ] +//[ #### ] +//[ ## # ] +//[ ## ] +//[#### ] +//[ +//{0x82,0xFE,0xFE,0x92,0xB8,0x80,0xC0,0x00}, +{0x41,0x7F,0x7F,0x49,0x1D,0x01,0x03,0x00}, +//---- 0x47 ---- +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ] +//[## ### ] +//[## ## ] +//[ ###### ] +//[ +//{0x7C,0xFE,0x82,0x82,0x8A,0xEE,0x6E,0x00}, +{0x3E,0x7F,0x41,0x41,0x51,0x77,0x76,0x00}, +//---- 0x48 ---- +//[## ## ] +//[## ## ] +//[## ## ] +//[####### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ +//{0xFE,0xFE,0x10,0x10,0x10,0xFE,0xFE,0x00}, +{0x7F,0x7F,0x08,0x08,0x08,0x7F,0x7F,0x00}, +//---- 0x49 ---- +//[ #### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x00,0x00,0x82,0xFE,0xFE,0x82,0x00,0x00}, +{0x00,0x00,0x41,0x7F,0x7F,0x41,0x00,0x00}, +//---- 0x4A ---- +//[ #### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[## ## ] +//[## ## ] +//[ #### ] +//[ +//{0x0C,0x0E,0x02,0x82,0xFE,0xFC,0x80,0x00}, +{0x30,0x70,0x40,0x41,0x7F,0x3F,0x01,0x00}, +//---- 0x4B ---- +//[### ## ] +//[ ## ## ] +//[ ## ## ] +//[ #### ] +//[ ## ## ] +//[ ## ## ] +//[### ## ] +//[ +//{0x82,0xFE,0xFE,0x10,0x38,0xEE,0xC6,0x00}, +{0x41,0x7F,0x7F,0x08,0x1C,0x77,0x63,0x00}, +//---- 0x4C ---- +//[#### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## # ] +//[ ## ## ] +//[####### ] +//[ +//{0x82,0xFE,0xFE,0x82,0x02,0x06,0x0E,0x00}, +{0x41,0x7F,0x7F,0x41,0x40,0x60,0x70,0x00}, +//---- 0x4D ---- +//[# # ] +//[## ## ] +//[### ### ] +//[####### ] +//[## # ## ] +//[## ## ] +//[## ## ] +//[ +//{0xFE,0x7E,0x30,0x18,0x30,0x7E,0xFE,0x00}, +{0x7F,0x7E,0x0C,0x18,0x0C,0x7E,0x7F,0x00}, +//---- 0x4E ---- +//[## ## ] +//[### ## ] +//[#### ## ] +//[## #### ] +//[## ### ] +//[## ## ] +//[## ## ] +//[ +//{0xFE,0xFE,0x60,0x30,0x18,0xFE,0xFE,0x00}, +{0x7F,0x7F,0x06,0x0C,0x18,0x7F,0x7F,0x00}, +//---- 0x4F ---- +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x7C,0xFE,0x82,0x82,0x82,0xFE,0x7C,0x00}, +{0x3E,0x7F,0x41,0x41,0x41,0x7F,0x3E,0x00}, +//---- 0x50 ---- +//[###### ] +//[ ## ## ] +//[ ## ## ] +//[ ##### ] +//[ ## ] +//[ ## ] +//[#### ] +//[ +//{0x82,0xFE,0xFE,0x92,0x90,0xF0,0x60,0x00}, +{0x41,0x7F,0x7F,0x49,0x09,0x0F,0x06,0x00}, +//---- 0x51 ---- +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## # ## ] +//[## #### ] +//[ ##### ] +//[ ## +//{0x7C,0xFE,0x82,0x8E,0x86,0xFF,0x7D,0x00}, +{0x3E,0x7F,0x41,0x71,0x61,0xFF,0xBE,0x00}, +//---- 0x52 ---- +//[###### ] +//[ ## ## ] +//[ ## ## ] +//[ ##### ] +//[ ## ## ] +//[ ## ## ] +//[### ## ] +//[ +//{0x82,0xFE,0xFE,0x90,0x90,0xFE,0x6E,0x00}, +{0x41,0x7F,0x7F,0x09,0x09,0x7F,0x76,0x00}, +//---- 0x53 ---- +//[ ##### ] +//[## ## ] +//[## ] +//[ ##### ] +//[ ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x64,0xF6,0x92,0x92,0x92,0xDE,0x4C,0x00}, +{0x26,0x6F,0x49,0x49,0x49,0x7B,0x32,0x00}, +//---- 0x54 ---- +//[ ###### ] +//[ # ## # ] +//[ # ## # ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x00,0xE0,0x82,0xFE,0xFE,0x82,0xE0,0x00}, +{0x00,0x07,0x41,0x7F,0x7F,0x41,0x07,0x00}, +//---- 0x55 ---- +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0xFC,0xFE,0x02,0x02,0x02,0xFE,0xFC,0x00}, +{0x3F,0x7F,0x40,0x40,0x40,0x7F,0x3F,0x00}, +//---- 0x56 ---- +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ## ## ] +//[ ### ] +//[ # ] +//[ +//{0xF0,0xF8,0x0C,0x06,0x0C,0xF8,0xF0,0x00}, +{0x0F,0x1F,0x30,0x60,0x30,0x1F,0x0F,0x00}, +//---- 0x57 ---- +//[## ## ] +//[## ## ] +//[## # ## ] +//[####### ] +//[### ### ] +//[## ## ] +//[# # ] +//[ +//{0xFE,0xFC,0x18,0x30,0x18,0xFC,0xFE,0x00}, +{0x7F,0x3F,0x18,0x0C,0x18,0x3F,0x7F,0x00}, +//---- 0x58 ---- +//[## ## ] +//[ ## ## ] +//[ ### ] +//[ ### ] +//[ ### ] +//[ ## ## ] +//[## ## ] +//[ +//{0x82,0xC6,0x7C,0x38,0x7C,0xC6,0x82,0x00}, +{0x41,0x63,0x3E,0x1C,0x3E,0x63,0x41,0x00}, +//---- 0x59 ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ #### ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x00,0xE0,0xF2,0x1E,0x1E,0xF2,0xE0,0x00}, +{0x00,0x07,0x4F,0x78,0x78,0x4F,0x07,0x00}, +//---- 0x5A ---- +//[####### ] +//[## ## ] +//[# ## ] +//[ ## ] +//[ ## # ] +//[ ## ## ] +//[####### ] +//[ +//{0xE2,0xC6,0x8E,0x9A,0xB2,0xE6,0xCE,0x00}, +{0x47,0x63,0x71,0x59,0x4D,0x67,0x73,0x00}, +//---- 0x5B ---- +//[ #### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x00,0xFE,0xFE,0x82,0x82,0x00,0x00,0x00}, +{0x00,0x7F,0x7F,0x41,0x41,0x00,0x00,0x00}, +//---- 0x5C ---- +//[## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ # ] +//[ +//{0x80,0xC0,0x60,0x30,0x18,0x0C,0x06,0x00}, +{0x01,0x03,0x06,0x0C,0x18,0x30,0x60,0x00}, +//---- 0x5D ---- +//[ #### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x00,0x82,0x82,0xFE,0xFE,0x00,0x00,0x00}, +{0x00,0x41,0x41,0x7F,0x7F,0x00,0x00,0x00}, +//---- 0x5E ---- +//[ # ] +//[ ### ] +//[ ## ## ] +//[## ## ] +//[ ] +//[ ] +//[ ] +//[ +//{0x10,0x30,0x60,0xC0,0x60,0x30,0x10,0x00}, +{0x08,0x0C,0x06,0x03,0x06,0x0C,0x08,0x00}, +//---- 0x5F ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[######## +//{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}, +{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, +//---- 0x60 ---- +//[ ## ] +//[ # ] +//[ # ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ +//{0x00,0x00,0xC0,0xA0,0x00,0x00,0x00,0x00}, +{0x00,0x00,0x03,0x05,0x00,0x00,0x00,0x00}, +//---- 0x61 ---- +//[ ] +//[ ] +//[ #### ] +//[ ## ] +//[ ##### ] +//[## ## ] +//[ ### ## ] +//[ +//{0x04,0x2E,0x2A,0x2A,0x3C,0x1E,0x02,0x00}, +{0x20,0x74,0x54,0x54,0x3C,0x78,0x40,0x00}, +//---- 0x62 ---- +//[### ] +//[ ## ] +//[ ## ] +//[ ##### ] +//[ ## ## ] +//[ ## ## ] +//[ ##### ] +//[ +//{0x80,0xFE,0xFE,0x12,0x12,0x1E,0x0C,0x00}, +{0x01,0x7F,0x7F,0x48,0x48,0x78,0x30,0x00}, +//---- 0x63 ---- +//[ ] +//[ ] +//[ ##### ] +//[## ## ] +//[## ] +//[## ## ] +//[ ##### ] +//[ +//{0x1C,0x3E,0x22,0x22,0x22,0x36,0x14,0x00}, +{0x38,0x7C,0x44,0x44,0x44,0x6C,0x28,0x00}, +//---- 0x64 ---- +//[ ### ] +//[ ## ] +//[ ## ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[ ### ## ] +//[ +//{0x0C,0x1E,0x12,0x92,0xFC,0xFE,0x02,0x00}, +{0x30,0x78,0x48,0x49,0x3F,0x7F,0x40,0x00}, +//---- 0x65 ---- +//[ ] +//[ ] +//[ ##### ] +//[## ## ] +//[####### ] +//[## ] +//[ ##### ] +//[ +//{0x1C,0x3E,0x2A,0x2A,0x2A,0x3A,0x18,0x00}, +{0x38,0x7C,0x54,0x54,0x54,0x5C,0x18,0x00}, +//---- 0x66 ---- +//[ ### ] +//[ ## ## ] +//[ ## ] +//[ #### ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x00,0x12,0x7E,0xFE,0x92,0xC0,0x40,0x00}, +{0x00,0x48,0x7E,0x7F,0x49,0x03,0x02,0x00}, +//---- 0x67 ---- +//[ ] +//[ ] +//[ ### ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ ## ] +//[ #### +//{0x18,0x3D,0x25,0x25,0x1F,0x3E,0x20,0x00}, +{0x18,0xBC,0xA4,0xA4,0xF8,0x7C,0x04,0x00}, +//---- 0x68 ---- +//[### ] +//[ ## ] +//[ ## ## ] +//[ ### ## ] +//[ ## ## ] +//[ ## ## ] +//[### ## ] +//[ +//{0x82,0xFE,0xFE,0x10,0x20,0x3E,0x1E,0x00}, +{0x41,0x7F,0x7F,0x08,0x04,0x7C,0x78,0x00}, +//---- 0x69 ---- +//[ ## ] +//[ ] +//[ ### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x00,0x00,0x22,0xBE,0xBE,0x02,0x00,0x00}, +{0x00,0x00,0x44,0x7D,0x7D,0x40,0x00,0x00}, +//---- 0x6A ---- +//[ ] +//[ ## ] +//[ ] +//[ ### ] +//[ ## ] +//[ ## ] +//[## ## ] +//[ #### +//{0x02,0x03,0x01,0x11,0x5F,0x5E,0x00,0x00}, +{0x40,0xC0,0x80,0x88,0xFA,0x7A,0x00,0x00}, +//---- 0x6B ---- +//[### ] +//[ ## ] +//[ ## ## ] +//[ ## ## ] +//[ #### ] +//[ ## ## ] +//[### ## ] +//[ +//{0x82,0xFE,0xFE,0x08,0x1C,0x36,0x22,0x00}, +{0x41,0x7F,0x7F,0x10,0x38,0x6C,0x44,0x00}, +//---- 0x6C ---- +//[ ### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x00,0x00,0x82,0xFE,0xFE,0x02,0x00,0x00}, +{0x00,0x00,0x41,0x7F,0x7F,0x40,0x00,0x00}, +//---- 0x6D ---- +//[ ] +//[ ] +//[## ## ] +//[####### ] +//[## # ## ] +//[## # ## ] +//[## # ## ] +//[ +//{0x3E,0x3E,0x10,0x1E,0x30,0x3E,0x1E,0x00}, +{0x7C,0x7C,0x08,0x78,0x0C,0x7C,0x78,0x00}, +//---- 0x6E ---- +//[ ] +//[ ] +//[## ### ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ +//{0x20,0x3E,0x1E,0x20,0x20,0x3E,0x1E,0x00}, +{0x04,0x7C,0x78,0x04,0x04,0x7C,0x78,0x00}, +//---- 0x6F ---- +//[ ] +//[ ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x1C,0x3E,0x22,0x22,0x22,0x3E,0x1C,0x00}, +{0x38,0x7C,0x44,0x44,0x44,0x7C,0x38,0x00}, +//---- 0x70 ---- +//[ ] +//[ ] +//[## ### ] +//[ ## ## ] +//[ ## ## ] +//[ ##### ] +//[ ## ] +//[#### +//{0x21,0x3F,0x1F,0x25,0x24,0x3C,0x18,0x00}, +{0x84,0xFC,0xF8,0xA4,0x24,0x3C,0x18,0x00}, +//---- 0x71 ---- +//[ ] +//[ ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ ## ] +//[ #### +//{0x18,0x3C,0x24,0x25,0x3F,0x3F,0x01,0x00}, +{0x18,0x3C,0x24,0xA4,0xFC,0xFC,0x80,0x00}, +//---- 0x72 ---- +//[ ] +//[ ] +//[## #### ] +//[ ### ## ] +//[ ## ] +//[ ## ] +//[#### ] +//[ +//{0x22,0x3E,0x1E,0x32,0x20,0x30,0x30,0x00}, +{0x44,0x7C,0x78,0x4C,0x04,0x0C,0x0C,0x00}, +//---- 0x73 ---- +//[ ] +//[ ] +//[ ##### ] +//[## ] +//[ ##### ] +//[ ## ] +//[ ##### ] +//[ +//{0x10,0x3A,0x2A,0x2A,0x2A,0x2E,0x04,0x00}, +{0x08,0x5C,0x54,0x54,0x54,0x74,0x20,0x00}, +//---- 0x74 ---- +//[ # ] +//[ ## ] +//[###### ] +//[ ## ] +//[ ## ] +//[ ## # ] +//[ ## ] +//[ +//{0x20,0x20,0x7C,0xFE,0x22,0x24,0x00,0x00}, +{0x04,0x04,0x3E,0x7F,0x44,0x24,0x00,0x00}, +//---- 0x75 ---- +//[ ] +//[ ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ### ## ] +//[ +//{0x3C,0x3E,0x02,0x02,0x3C,0x3E,0x02,0x00}, +{0x3C,0x7C,0x40,0x40,0x3C,0x7C,0x40,0x00}, +//---- 0x76 ---- +//[ ] +//[ ] +//[## ## ] +//[## ## ] +//[ ## ## ] +//[ ### ] +//[ # ] +//[ +//{0x30,0x38,0x0C,0x06,0x0C,0x38,0x30,0x00}, +{0x0C,0x1C,0x30,0x60,0x30,0x1C,0x0C,0x00}, +//---- 0x77 ---- +//[ ] +//[ ] +//[## ## ] +//[## # ## ] +//[## # ## ] +//[####### ] +//[ ## ## ] +//[ +//{0x3C,0x3E,0x06,0x1C,0x06,0x3E,0x3C,0x00}, +{0x3C,0x7C,0x60,0x38,0x60,0x7C,0x3C,0x00}, +//---- 0x78 ---- +//[ ] +//[ ] +//[## ## ] +//[ ## ## ] +//[ ### ] +//[ ## ## ] +//[## ## ] +//[ +//{0x22,0x36,0x1C,0x08,0x1C,0x36,0x22,0x00}, +{0x44,0x6C,0x38,0x10,0x38,0x6C,0x44,0x00}, +//---- 0x79 ---- +//[ ] +//[ ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ ## ] +//[##### +//{0x39,0x3D,0x05,0x05,0x3F,0x3E,0x00,0x00}, +{0x9C,0xBC,0xA0,0xA0,0xFC,0x7C,0x00,0x00}, +//---- 0x7A ---- +//[ ] +//[ ] +//[###### ] +//[# ## ] +//[ ## ] +//[ ## # ] +//[###### ] +//[ +//{0x32,0x26,0x2E,0x3A,0x32,0x26,0x00,0x00}, +{0x4C,0x64,0x74,0x5C,0x4C,0x64,0x00,0x00}, +//---- 0x7B ---- +//[ ### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ### ] +//[ +//{0x00,0x00,0x10,0x7C,0xEE,0x82,0x82,0x00}, +{0x00,0x00,0x08,0x3E,0x77,0x41,0x41,0x00}, +//---- 0x7C ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ +//{0x00,0x00,0x00,0xEE,0xEE,0x00,0x00,0x00}, +{0x00,0x00,0x00,0x77,0x77,0x00,0x00,0x00}, +//---- 0x7D ---- +//[### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[### ] +//[ +//{0x82,0x82,0xEE,0x7C,0x10,0x00,0x00,0x00}, +{0x41,0x41,0x77,0x3E,0x08,0x00,0x00,0x00}, +//---- 0x7E ---- +//[ ### ## ] +//[## ### ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ +//{0x40,0xC0,0x80,0xC0,0x40,0xC0,0x80,0x00}, +{0x02,0x03,0x01,0x03,0x02,0x03,0x01,0x00}, +//---- 0x7F ---- +//[ ] +//[ # ] +//[ ### ] +//[ ## ## ] +//[## ## ] +//[## ## ] +//[####### ] +//[ +//{0x0E,0x1E,0x32,0x62,0x32,0x1E,0x0E,0x00}, +{0x70,0x78,0x4C,0x46,0x4C,0x78,0x70,0x00}, +//---- 0x80 ---- +//[ ##### ] +//[## ## ] +//[## ] +//[## ] +//[## ## ] +//[ ##### ] +//[ ## ] +//[ ### +//{0x78,0xFD,0x85,0x87,0x86,0xCC,0x48,0x00}, +{0x1E,0xBF,0xA1,0xE1,0x61,0x33,0x12,0x00}, +//---- 0x81 ---- +//[## ## ] +//[ ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ### ## ] +//[ +//{0xBC,0xBE,0x02,0x02,0xBC,0xBE,0x02,0x00}, +{0x3D,0x7D,0x40,0x40,0x3D,0x7D,0x40,0x00}, +//---- 0x82 ---- +//[ ### ] +//[ # ] +//[ ##### ] +//[## ## ] +//[####### ] +//[## ] +//[ ##### ] +//[ +//{0x1C,0x3E,0x2A,0x6A,0xAA,0xBA,0x98,0x00}, +{0x38,0x7C,0x54,0x56,0x55,0x5D,0x19,0x00}, +//---- 0x83 ---- +//[ ##### ] +//[# # ] +//[ ### ] +//[ ## ] +//[ ##### ] +//[## ## ] +//[ ### ## ] +//[ +//{0x44,0x8E,0xAA,0xAA,0xBC,0x9E,0x42,0x00}, +{0x22,0x71,0x55,0x55,0x3D,0x79,0x42,0x00}, +//---- 0x84 ---- +//[## ## ] +//[ ] +//[ #### ] +//[ ## ] +//[ ##### ] +//[## ## ] +//[ ### ## ] +//[ +//{0x84,0xAE,0x2A,0x2A,0xBC,0x9E,0x02,0x00}, +{0x21,0x75,0x54,0x54,0x3D,0x79,0x40,0x00}, +//---- 0x85 ---- +//[### ] +//[ # ] +//[ #### ] +//[ ## ] +//[ ##### ] +//[## ## ] +//[ ### ## ] +//[ +//{0x84,0xAE,0xAA,0x6A,0x3C,0x1E,0x02,0x00}, +{0x21,0x75,0x55,0x56,0x3C,0x78,0x40,0x00}, +//---- 0x86 ---- +//[ ## ] +//[ ## ] +//[ #### ] +//[ ## ] +//[ ##### ] +//[## ## ] +//[ ### ## ] +//[ +//{0x04,0x2E,0xEA,0xEA,0x3C,0x1E,0x02,0x00}, +{0x20,0x74,0x57,0x57,0x3C,0x78,0x40,0x00}, +//---- 0x87 ---- +//[ ] +//[ ] +//[ ##### ] +//[## ] +//[## ] +//[ ##### ] +//[ ## ] +//[ ### +//{0x18,0x3D,0x25,0x27,0x26,0x24,0x00,0x00}, +{0x18,0xBC,0xA4,0xE4,0x64,0x24,0x00,0x00}, +//---- 0x88 ---- +//[ ##### ] +//[# # ] +//[ ##### ] +//[## ## ] +//[####### ] +//[## ] +//[ ##### ] +//[ +//{0x5C,0xBE,0xAA,0xAA,0xAA,0xBA,0x58,0x00}, +{0x3A,0x7D,0x55,0x55,0x55,0x5D,0x1A,0x00}, +//---- 0x89 ---- +//[## ## ] +//[ ] +//[ ##### ] +//[## ## ] +//[####### ] +//[## ] +//[ ##### ] +//[ +//{0x9C,0xBE,0x2A,0x2A,0x2A,0xBA,0x98,0x00}, +{0x39,0x7D,0x54,0x54,0x54,0x5D,0x19,0x00}, +//---- 0x8A ---- +//[### ] +//[ # ] +//[ ##### ] +//[## ## ] +//[####### ] +//[## ] +//[ ##### ] +//[ +//{0x9C,0xBE,0xAA,0x6A,0x2A,0x3A,0x18,0x00}, +{0x39,0x7D,0x55,0x56,0x54,0x5C,0x18,0x00}, +//---- 0x8B ---- +//[ ## ## ] +//[ ] +//[ ### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x00,0x80,0xA2,0x3E,0x3E,0x82,0x80,0x00}, +{0x00,0x01,0x45,0x7C,0x7C,0x41,0x01,0x00}, +//---- 0x8C ---- +//[ ##### ] +//[# # ] +//[ ### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x40,0x80,0xA2,0xBE,0xBE,0x82,0x40,0x00}, +{0x02,0x01,0x45,0x7D,0x7D,0x41,0x02,0x00}, +//---- 0x8D ---- +//[### ] +//[ # ] +//[ ### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x80,0x80,0xA2,0x7E,0x3E,0x02,0x00,0x00}, +{0x01,0x01,0x45,0x7E,0x7C,0x40,0x00,0x00}, +//---- 0x8E ---- +//[## ## ] +//[ ] +//[ ##### ] +//[## ## ] +//[####### ] +//[## ## ] +//[## ## ] +//[ +//{0x9E,0xBE,0x28,0x28,0x28,0xBE,0x9E,0x00}, +{0x79,0x7D,0x14,0x14,0x14,0x7D,0x79,0x00}, +//---- 0x8F ---- +//[ ### ] +//[ ### ] +//[ ##### ] +//[## ## ] +//[####### ] +//[## ## ] +//[## ## ] +//[ +//{0x1E,0x3E,0xE8,0xE8,0xE8,0x3E,0x1E,0x00}, +{0x78,0x7C,0x17,0x17,0x17,0x7C,0x78,0x00}, +//---- 0x90 ---- +//[ ### ] +//[ # ] +//[####### ] +//[ ## ] +//[ #### ] +//[ ## ] +//[####### ] +//[ +//{0x22,0x3E,0x3E,0x6A,0xAA,0xA2,0xA2,0x00}, +{0x44,0x7C,0x7C,0x56,0x55,0x45,0x45,0x00}, +//---- 0x91 ---- +//[ ] +//[ ] +//[ ##### ] +//[ # # ] +//[ ###### ] +//[## # ] +//[ ###### ] +//[ +//{0x04,0x2E,0x2A,0x3E,0x2A,0x2A,0x1A,0x00}, +{0x20,0x74,0x54,0x7C,0x54,0x54,0x58,0x00}, +//---- 0x92 ---- +//[ ###### ] +//[## # ] +//[## # ] +//[####### ] +//[## # ] +//[## # ] +//[## ### ] +//[ +//{0x7E,0xFE,0x90,0x90,0xFE,0x92,0x92,0x00}, +{0x7E,0x7F,0x09,0x09,0x7F,0x49,0x49,0x00}, +//---- 0x93 ---- +//[ ##### ] +//[# # ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x5C,0xBE,0xA2,0xA2,0xA2,0xBE,0x5C,0x00}, +{0x3A,0x7D,0x45,0x45,0x45,0x7D,0x3A,0x00}, +//---- 0x94 ---- +//[## ## ] +//[ ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x9C,0xBE,0x22,0x22,0x22,0xBE,0x9C,0x00}, +{0x39,0x7D,0x44,0x44,0x44,0x7D,0x39,0x00}, +//---- 0x95 ---- +//[### ] +//[ # ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x9C,0xBE,0xA2,0x62,0x22,0x3E,0x1C,0x00}, +{0x39,0x7D,0x45,0x46,0x44,0x7C,0x38,0x00}, +//---- 0x96 ---- +//[ ##### ] +//[# # ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ### ## ] +//[ +//{0x7C,0xBE,0x82,0x82,0xBC,0xBE,0x42,0x00}, +{0x3E,0x7D,0x41,0x41,0x3D,0x7D,0x42,0x00}, +//---- 0x97 ---- +//[### ] +//[ # ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ### ## ] +//[ +//{0xBC,0xBE,0x82,0x42,0x3C,0x3E,0x02,0x00}, +{0x3D,0x7D,0x41,0x42,0x3C,0x7C,0x40,0x00}, +//---- 0x98 ---- +//[## ## ] +//[ ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ ## ] +//[##### +//{0xB9,0xBD,0x05,0x05,0xBF,0xBE,0x00,0x00}, +{0x9D,0xBD,0xA0,0xA0,0xFD,0x7D,0x00,0x00}, +//---- 0x99 ---- +//[## ## ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0xBC,0xFE,0x42,0x42,0x42,0xFE,0xBC,0x00}, +{0x3D,0x7F,0x42,0x42,0x42,0x7F,0x3D,0x00}, +//---- 0x9A ---- +//[## ## ] +//[ ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0xBC,0xBE,0x02,0x02,0x02,0xBE,0xBC,0x00}, +{0x3D,0x7D,0x40,0x40,0x40,0x7D,0x3D,0x00}, +//---- 0x9B ---- +//[ ## ] +//[ ##### ] +//[## # ## ] +//[## # ] +//[## # ## ] +//[ ##### ] +//[ ## ] +//[ +//{0x38,0x7C,0x44,0xFE,0xC6,0x6C,0x28,0x00}, +{0x1C,0x3E,0x22,0x7F,0x63,0x36,0x14,0x00}, +//---- 0x9C ---- +//[ ### ] +//[ ## ## ] +//[ ## ] +//[#### ] +//[ ## ] +//[#### # ] +//[## ### ] +//[ +//{0x16,0x7E,0xFC,0x96,0xC2,0x42,0x04,0x00}, +{0x68,0x7E,0x3F,0x69,0x43,0x42,0x20,0x00}, +//---- 0x9D ---- +//[ ## ## ] +//[ #### ] +//[ ## ] +//[ ###### ] +//[ ## ] +//[ ###### ] +//[ ## ] +//[ +//{0x00,0x94,0xD4,0x7E,0x7E,0xD4,0x94,0x00}, +{0x00,0x29,0x2B,0x7E,0x7E,0x2B,0x29,0x00}, +//---- 0x9E ---- +//[##### ] +//[## ## ] +//[##### ] +//[## # ] +//[## ## ] +//[## #### ] +//[## ## ] +//[ ## +//{0xFE,0xFE,0xA0,0xA4,0xEE,0x5F,0x05,0x00}, +{0x7F,0x7F,0x05,0x25,0x77,0xFA,0xA0,0x00}, +//---- 0x9F ---- +//[ ### ] +//[ ## ##] +//[ ## ] +//[ #### ] +//[ ## ] +//[ ## ] +//[## ## ] +//[ ### +//{0x02,0x03,0x11,0x7F,0xFE,0x90,0xC0,0x40}, +{0x40,0xC0,0x88,0xFE,0x7F,0x09,0x03,0x02}, +//---- 0xA0 ---- +//[ ### ] +//[ # ] +//[ #### ] +//[ ## ] +//[ ##### ] +//[## ## ] +//[ ### ## ] +//[ +//{0x04,0x2E,0x2A,0x6A,0xBC,0x9E,0x82,0x00}, +{0x20,0x74,0x54,0x56,0x3D,0x79,0x41,0x00}, +//---- 0xA1 ---- +//[ ### ] +//[ # ] +//[ ### ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ +//{0x00,0x00,0x22,0x7E,0xBE,0x82,0x80,0x00}, +{0x00,0x00,0x44,0x7E,0x7D,0x41,0x01,0x00}, +//---- 0xA2 ---- +//[ ### ] +//[ # ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x1C,0x3E,0x22,0x62,0xA2,0xBE,0x9C,0x00}, +{0x38,0x7C,0x44,0x46,0x45,0x7D,0x39,0x00}, +//---- 0xA3 ---- +//[ ### ] +//[ # ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ### ## ] +//[ +//{0x3C,0x3E,0x02,0x42,0xBC,0xBE,0x82,0x00}, +{0x3C,0x7C,0x40,0x42,0x3D,0x7D,0x41,0x00}, +//---- 0xA4 ---- +//[ ## ## ] +//[# ## ] +//[## ### ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ +//{0x60,0xBE,0x9E,0x60,0x60,0xBE,0x9E,0x00}, +{0x06,0x7D,0x79,0x06,0x06,0x7D,0x79,0x00}, +//---- 0xA5 ---- +//[ ## ## ] +//[# ## ] +//[### ## ] +//[#### ## ] +//[## #### ] +//[## ### ] +//[## ## ] +//[ +//{0x7E,0xBE,0xB0,0x58,0x4C,0xBE,0xBE,0x00}, +{0x7E,0x7D,0x0D,0x1A,0x32,0x7D,0x7D,0x00}, +//---- 0xA6 ---- +//[ ### ] +//[ ## ] +//[ #### ] +//[ ## # ] +//[ ] +//[ ###### ] +//[ ] +//[ +//{0x00,0x04,0xB4,0xB4,0xE4,0x74,0x04,0x00}, +{0x00,0x20,0x2D,0x2D,0x27,0x2E,0x20,0x00}, +//---- 0xA7 ---- +//[ ### ] +//[ ## ## ] +//[ ## ## ] +//[ ### ] +//[ ] +//[ ##### ] +//[ ] +//[ +//{0x00,0x64,0xF4,0x94,0xF4,0x64,0x00,0x00}, +{0x00,0x26,0x2F,0x29,0x2F,0x26,0x00,0x00}, +//---- 0xA8 ---- +//[ ## ] +//[ ] +//[ ## ] +//[ ## ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x0C,0x1E,0xB2,0xA2,0x02,0x0E,0x0C,0x00}, +{0x30,0x78,0x4D,0x45,0x40,0x70,0x30,0x00}, +//---- 0xA9 ---- +//[ ] +//[ ] +//[ ] +//[###### ] +//[## ] +//[## ] +//[ ] +//[ +//{0x1C,0x1C,0x10,0x10,0x10,0x10,0x00,0x00}, +{0x38,0x38,0x08,0x08,0x08,0x08,0x00,0x00}, +//---- 0xAA ---- +//[ ] +//[ ] +//[ ] +//[###### ] +//[ ## ] +//[ ## ] +//[ ] +//[ +//{0x10,0x10,0x10,0x10,0x1C,0x1C,0x00,0x00}, +{0x08,0x08,0x08,0x08,0x38,0x38,0x00,0x00}, +//---- 0xAB ---- +//[## ] +//[## # ] +//[## # ] +//[####### ] +//[ # ## ] +//[# ## ] +//[ #### ] +//[ +//{0xF4,0xF8,0x10,0x32,0x56,0x1E,0x1A,0x00}, +{0x2F,0x1F,0x08,0x4C,0x6A,0x78,0x58,0x00}, +//---- 0xAC ---- +//[## ] +//[## # ] +//[## # ] +//[### ## ] +//[ # ### ] +//[# ##### ] +//[ ## ] +//[ +//{0xF4,0xF8,0x14,0x2C,0x5E,0x1E,0x04,0x00}, +{0x2F,0x1F,0x28,0x34,0x7A,0x78,0x20,0x00}, +//---- 0xAD ---- +//[ ## ] +//[ ] +//[ ## ] +//[ ## ] +//[ #### ] +//[ #### ] +//[ ## ] +//[ +//{0x00,0x00,0x0C,0xBE,0xBE,0x0C,0x00,0x00}, +{0x00,0x00,0x30,0x7D,0x7D,0x30,0x00,0x00}, +//---- 0xAE ---- +//[ ] +//[ ## ## ] +//[ ## ## ] +//[## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ] +//[ +//{0x10,0x38,0x6C,0x54,0x38,0x6C,0x44,0x00}, +{0x08,0x1C,0x36,0x2A,0x1C,0x36,0x22,0x00}, +//---- 0xAF ---- +//[ ] +//[## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[## ## ] +//[ ] +//[ +//{0x44,0x6C,0x38,0x54,0x6C,0x38,0x10,0x00}, +{0x22,0x36,0x1C,0x2A,0x36,0x1C,0x08,0x00}, +//---- 0xB0 ---- +//[ # # ] +//[# # ] +//[ # # ] +//[# # ] +//[ # # ] +//[# # ] +//[ # # ] +//[# # +//{0x55,0x00,0xAA,0x00,0x55,0x00,0xAA,0x00}, +{0xAA,0x00,0x55,0x00,0xAA,0x00,0x55,0x00}, +//---- 0xB1 ---- +//[ # # # #] +//[# # # # ] +//[ # # # #] +//[# # # # ] +//[ # # # #] +//[# # # # ] +//[ # # # #] +//[# # # # +//{0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA}, +{0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55}, +//---- 0xB2 ---- +//[## ## ##] +//[ ### ###] +//[## ## ##] +//[### ### ] +//[## ## ##] +//[ ### ###] +//[## ## ##] +//[### ### +//{0xBB,0xFF,0x55,0xEE,0xBB,0x55,0xFF,0xEE}, +{0xDD,0xFF,0xAA,0x77,0xDD,0xAA,0xFF,0x77}, +//---- 0xB3 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## +//{0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00}, +{0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00}, +//---- 0xB4 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[##### ] +//[ ## ] +//[ ## ] +//[ ## +//{0x08,0x08,0x08,0xFF,0xFF,0x00,0x00,0x00}, +{0x10,0x10,0x10,0xFF,0xFF,0x00,0x00,0x00}, +//---- 0xB5 ---- +//[ ## ] +//[ ## ] +//[##### ] +//[ ## ] +//[##### ] +//[ ## ] +//[ ## ] +//[ ## +//{0x28,0x28,0x28,0xFF,0xFF,0x00,0x00,0x00}, +{0x14,0x14,0x14,0xFF,0xFF,0x00,0x00,0x00}, +//---- 0xB6 ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[#### ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x08,0x08,0xFF,0xFF,0x00,0xFF,0xFF,0x00}, +{0x10,0x10,0xFF,0xFF,0x00,0xFF,0xFF,0x00}, +//---- 0xB7 ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[####### ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x08,0x08,0x0F,0x0F,0x08,0x0F,0x0F,0x00}, +{0x10,0x10,0xF0,0xF0,0x10,0xF0,0xF0,0x00}, +//---- 0xB8 ---- +//[ ] +//[ ] +//[##### ] +//[ ## ] +//[##### ] +//[ ## ] +//[ ## ] +//[ ## +//{0x28,0x28,0x28,0x3F,0x3F,0x00,0x00,0x00}, +{0x14,0x14,0x14,0xFC,0xFC,0x00,0x00,0x00}, +//---- 0xB9 ---- +//[ ## ## ] +//[ ## ## ] +//[#### ## ] +//[ ## ] +//[#### ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x28,0x28,0xEF,0xEF,0x00,0xFF,0xFF,0x00}, +{0x14,0x14,0xF7,0xF7,0x00,0xFF,0xFF,0x00}, +//---- 0xBA ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x00,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x00}, +{0x00,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x00}, +//---- 0xBB ---- +//[ ] +//[ ] +//[####### ] +//[ ## ] +//[#### ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x28,0x28,0x2F,0x2F,0x20,0x3F,0x3F,0x00}, +{0x14,0x14,0xF4,0xF4,0x04,0xFC,0xFC,0x00}, +//---- 0xBC ---- +//[ ## ## ] +//[ ## ## ] +//[#### ## ] +//[ ## ] +//[####### ] +//[ ] +//[ ] +//[ +//{0x28,0x28,0xE8,0xE8,0x08,0xF8,0xF8,0x00}, +{0x14,0x14,0x17,0x17,0x10,0x1F,0x1F,0x00}, +//---- 0xBD ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[####### ] +//[ ] +//[ ] +//[ +//{0x08,0x08,0xF8,0xF8,0x08,0xF8,0xF8,0x00}, +{0x10,0x10,0x1F,0x1F,0x10,0x1F,0x1F,0x00}, +//---- 0xBE ---- +//[ ## ] +//[ ## ] +//[##### ] +//[ ## ] +//[##### ] +//[ ] +//[ ] +//[ +//{0x28,0x28,0x28,0xF8,0xF8,0x00,0x00,0x00}, +{0x14,0x14,0x14,0x1F,0x1F,0x00,0x00,0x00}, +//---- 0xBF ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[##### ] +//[ ## ] +//[ ## ] +//[ ## +//{0x08,0x08,0x08,0x0F,0x0F,0x00,0x00,0x00}, +{0x10,0x10,0x10,0xF0,0xF0,0x00,0x00,0x00}, +//---- 0xC0 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #####] +//[ ] +//[ ] +//[ +//{0x00,0x00,0x00,0xF8,0xF8,0x08,0x08,0x08}, +{0x00,0x00,0x00,0x1F,0x1F,0x10,0x10,0x10}, +//---- 0xC1 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[########] +//[ ] +//[ ] +//[ +//{0x08,0x08,0x08,0xF8,0xF8,0x08,0x08,0x08}, +{0x10,0x10,0x10,0x1F,0x1F,0x10,0x10,0x10}, +//---- 0xC2 ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[########] +//[ ## ] +//[ ## ] +//[ ## +//{0x08,0x08,0x08,0x0F,0x0F,0x08,0x08,0x08}, +{0x10,0x10,0x10,0xF0,0xF0,0x10,0x10,0x10}, +//---- 0xC3 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ #####] +//[ ## ] +//[ ## ] +//[ ## +//{0x00,0x00,0x00,0xFF,0xFF,0x08,0x08,0x08}, +{0x00,0x00,0x00,0xFF,0xFF,0x10,0x10,0x10}, +//---- 0xC4 ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[########] +//[ ] +//[ ] +//[ +//{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08}, +{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10}, +//---- 0xC5 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[########] +//[ ## ] +//[ ## ] +//[ ## +//{0x08,0x08,0x08,0xFF,0xFF,0x08,0x08,0x08}, +{0x10,0x10,0x10,0xFF,0xFF,0x10,0x10,0x10}, +//---- 0xC6 ---- +//[ ## ] +//[ ## ] +//[ #####] +//[ ## ] +//[ #####] +//[ ## ] +//[ ## ] +//[ ## +//{0x00,0x00,0x00,0xFF,0xFF,0x28,0x28,0x28}, +{0x00,0x00,0x00,0xFF,0xFF,0x14,0x14,0x14}, +//---- 0xC7 ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ###] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x00,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x08}, +{0x00,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x10}, +//---- 0xC8 ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ###] +//[ ## ] +//[ ######] +//[ ] +//[ ] +//[ +//{0x00,0x00,0xF8,0xF8,0x08,0xE8,0xE8,0x28}, +{0x00,0x00,0x1F,0x1F,0x10,0x17,0x17,0x14}, +//---- 0xC9 ---- +//[ ] +//[ ] +//[ ######] +//[ ## ] +//[ ## ###] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x00,0x00,0x3F,0x3F,0x20,0x2F,0x2F,0x28}, +{0x00,0x00,0xFC,0xFC,0x04,0xF4,0xF4,0x14}, +//---- 0xCA ---- +//[ ## ## ] +//[ ## ## ] +//[#### ###] +//[ ] +//[########] +//[ ] +//[ ] +//[ +//{0x28,0x28,0xE8,0xE8,0x08,0xE8,0xE8,0x28}, +{0x14,0x14,0x17,0x17,0x10,0x17,0x17,0x14}, +//---- 0xCB ---- +//[ ] +//[ ] +//[########] +//[ ] +//[#### ###] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x28,0x28,0x2F,0x2F,0x20,0x2F,0x2F,0x28}, +{0x14,0x14,0xF4,0xF4,0x04,0xF4,0xF4,0x14}, +//---- 0xCC ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ###] +//[ ## ] +//[ ## ###] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x00,0x00,0xFF,0xFF,0x00,0xEF,0xEF,0x28}, +{0x00,0x00,0xFF,0xFF,0x00,0xF7,0xF7,0x14}, +//---- 0xCD ---- +//[ ] +//[ ] +//[########] +//[ ] +//[########] +//[ ] +//[ ] +//[ +//{0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28}, +{0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14}, +//---- 0xCE ---- +//[ ## ## ] +//[ ## ## ] +//[#### ###] +//[ ] +//[#### ###] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x28,0x28,0xEF,0xEF,0x00,0xEF,0xEF,0x28}, +{0x14,0x14,0xF7,0xF7,0x00,0xF7,0xF7,0x14}, +//---- 0xCF ---- +//[ ## ] +//[ ## ] +//[########] +//[ ] +//[########] +//[ ] +//[ ] +//[ +//{0x28,0x28,0x28,0xE8,0xE8,0x28,0x28,0x28}, +{0x14,0x14,0x14,0x17,0x17,0x14,0x14,0x14}, +//---- 0xD0 ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[########] +//[ ] +//[ ] +//[ +//{0x08,0x08,0xF8,0xF8,0x08,0xF8,0xF8,0x08}, +{0x10,0x10,0x1F,0x1F,0x10,0x1F,0x1F,0x10}, +//---- 0xD1 ---- +//[ ] +//[ ] +//[########] +//[ ] +//[########] +//[ ## ] +//[ ## ] +//[ ## +//{0x28,0x28,0x28,0x2F,0x2F,0x28,0x28,0x28}, +{0x14,0x14,0x14,0xF4,0xF4,0x14,0x14,0x14}, +//---- 0xD2 ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[########] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x08,0x08,0x0F,0x0F,0x08,0x0F,0x0F,0x08}, +{0x10,0x10,0xF0,0xF0,0x10,0xF0,0xF0,0x10}, +//---- 0xD3 ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ######] +//[ ] +//[ ] +//[ +//{0x00,0x00,0xF8,0xF8,0x08,0xF8,0xF8,0x08}, +{0x00,0x00,0x1F,0x1F,0x10,0x1F,0x1F,0x10}, +//---- 0xD4 ---- +//[ ## ] +//[ ## ] +//[ #####] +//[ ## ] +//[ #####] +//[ ] +//[ ] +//[ +//{0x00,0x00,0x00,0xF8,0xF8,0x28,0x28,0x28}, +{0x00,0x00,0x00,0x1F,0x1F,0x14,0x14,0x14}, +//---- 0xD5 ---- +//[ ] +//[ ] +//[ #####] +//[ ## ] +//[ #####] +//[ ## ] +//[ ## ] +//[ ## +//{0x00,0x00,0x00,0x3F,0x3F,0x28,0x28,0x28}, +{0x00,0x00,0x00,0xFC,0xFC,0x14,0x14,0x14}, +//---- 0xD6 ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[ ######] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x00,0x00,0x0F,0x0F,0x08,0x0F,0x0F,0x08}, +{0x00,0x00,0xF0,0xF0,0x10,0xF0,0xF0,0x10}, +//---- 0xD7 ---- +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[########] +//[ ## ## ] +//[ ## ## ] +//[ ## ## +//{0x08,0x08,0xFF,0xFF,0x08,0xFF,0xFF,0x08}, +{0x10,0x10,0xFF,0xFF,0x10,0xFF,0xFF,0x10}, +//---- 0xD8 ---- +//[ ## ] +//[ ## ] +//[########] +//[ ## ] +//[########] +//[ ## ] +//[ ## ] +//[ ## +//{0x28,0x28,0x28,0xFF,0xFF,0x28,0x28,0x28}, +{0x14,0x14,0x14,0xFF,0xFF,0x14,0x14,0x14}, +//---- 0xD9 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[##### ] +//[ ] +//[ ] +//[ +//{0x08,0x08,0x08,0xF8,0xF8,0x00,0x00,0x00}, +{0x10,0x10,0x10,0x1F,0x1F,0x00,0x00,0x00}, +//---- 0xDA ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[ #####] +//[ ## ] +//[ ## ] +//[ ## +//{0x00,0x00,0x00,0x0F,0x0F,0x08,0x08,0x08}, +{0x00,0x00,0x00,0xF0,0xF0,0x10,0x10,0x10}, +//---- 0xDB ---- +//[########] +//[########] +//[########] +//[########] +//[########] +//[########] +//[########] +//[######## +//{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, +{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, +//---- 0xDC ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[########] +//[########] +//[########] +//[######## +//{0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F}, +{0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0}, +//---- 0xDD ---- +//[#### ] +//[#### ] +//[#### ] +//[#### ] +//[#### ] +//[#### ] +//[#### ] +//[#### +//{0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00}, +{0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00}, +//---- 0xDE ---- +//[ ####] +//[ ####] +//[ ####] +//[ ####] +//[ ####] +//[ ####] +//[ ####] +//[ #### +//{0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF}, +{0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF}, +//---- 0xDF ---- +//[########] +//[########] +//[########] +//[########] +//[ ] +//[ ] +//[ ] +//[ +//{0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0}, +{0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F}, +//---- 0xE0 ---- +//[ ] +//[ ] +//[ ### # ] +//[## ## ] +//[## # ] +//[## ### ] +//[ ### ## ] +//[ +//{0x1C,0x3E,0x22,0x26,0x1C,0x36,0x02,0x00}, +{0x38,0x7C,0x44,0x64,0x38,0x6C,0x40,0x00}, +//---- 0xE1 ---- +//[ #### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ### ] +//[ # +//{0x7E,0xFF,0x80,0xA2,0xF2,0x5E,0x0C,0x00}, +{0x7E,0xFF,0x01,0x45,0x4F,0x7A,0x30,0x00}, +//---- 0xE2 ---- +//[####### ] +//[ ## # ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[#### ] +//[ +//{0x82,0xFE,0xFE,0x82,0x80,0x80,0xC0,0x00}, +{0x41,0x7F,0x7F,0x41,0x01,0x01,0x03,0x00}, +//---- 0xE3 ---- +//[ ] +//[ # ] +//[ ###### ] +//[### ## ] +//[ ## ## ] +//[ ## ## ] +//[ # # ] +//[ +//{0x10,0x3E,0x3C,0x20,0x3E,0x3C,0x60,0x00}, +{0x08,0x7C,0x3C,0x04,0x7C,0x3C,0x06,0x00}, +//---- 0xE4 ---- +//[####### ] +//[ ## # ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## # ] +//[####### ] +//[ +//{0x82,0xC6,0xEE,0xBA,0x92,0x82,0xC6,0x00}, +{0x41,0x63,0x77,0x5D,0x49,0x41,0x63,0x00}, +//---- 0xE5 ---- +//[ ] +//[ ] +//[ ###### ] +//[## # ] +//[## # ] +//[## # ] +//[ ### ] +//[ +//{0x1C,0x3E,0x22,0x32,0x2C,0x20,0x20,0x00}, +{0x38,0x7C,0x44,0x4C,0x34,0x04,0x04,0x00}, +//---- 0xE6 ---- +//[ ] +//[ ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[##### ] +//[# +//{0x3F,0x3E,0x02,0x02,0x3E,0x3C,0x00,0x00}, +{0xFC,0x7C,0x40,0x40,0x7C,0x3C,0x00,0x00}, +//---- 0xE7 ---- +//[ ] +//[ ] +//[ ###### ] +//[## ## ] +//[ ## ] +//[ ## ] +//[ # ] +//[ +//{0x10,0x30,0x20,0x3E,0x3C,0x20,0x20,0x00}, +{0x08,0x0C,0x04,0x7C,0x3C,0x04,0x04,0x00}, +//---- 0xE8 ---- +//[ ### ] +//[ # ] +//[ ##### ] +//[## # ## ] +//[## # ## ] +//[ ##### ] +//[ # ] +//[ ### +//{0x18,0x3C,0xA5,0xFF,0xA5,0x3C,0x18,0x00}, +{0x18,0x3C,0xA5,0xFF,0xA5,0x3C,0x18,0x00}, +//---- 0xE9 ---- +//[ ##### ] +//[## ## ] +//[## ## ] +//[####### ] +//[## ## ] +//[## ## ] +//[ ##### ] +//[ +//{0x7C,0xFE,0x92,0x92,0x92,0xFE,0x7C,0x00}, +{0x3E,0x7F,0x49,0x49,0x49,0x7F,0x3E,0x00}, +//---- 0xEA ---- +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ ## ## ] +//[ # # ] +//[### ### ] +//[ +//{0x72,0xFA,0x8E,0x80,0x8E,0xFA,0x72,0x00}, +{0x4E,0x5F,0x71,0x01,0x71,0x5F,0x4E,0x00}, +//---- 0xEB ---- +//[ #### ] +//[ # # ] +//[ ## ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[ #### ] +//[ +//{0x0C,0x1E,0xD2,0xB2,0xBE,0x9C,0x40,0x00}, +{0x30,0x78,0x4B,0x4D,0x7D,0x39,0x02,0x00}, +//---- 0xEC ---- +//[ ] +//[ ] +//[ ## ## ] +//[# ## #] +//[# ## #] +//[ ## ## ] +//[ ] +//[ +//{0x18,0x24,0x24,0x18,0x18,0x24,0x24,0x18}, +{0x18,0x24,0x24,0x18,0x18,0x24,0x24,0x18}, +//---- 0xED ---- +//[ ] +//[ ## ] +//[ ##### ] +//[# #### ] +//[#### # ] +//[ ##### ] +//[## ] +//[ +//{0x1A,0x2E,0x2C,0x3C,0x34,0x74,0x58,0x00}, +{0x58,0x74,0x34,0x3C,0x2C,0x2E,0x1A,0x00}, +//---- 0xEE ---- +//[ ] +//[ ] +//[ ##### ] +//[## ] +//[##### ] +//[## ] +//[ ##### ] +//[ +//{0x1C,0x3E,0x2A,0x2A,0x2A,0x22,0x00,0x00}, +{0x38,0x7C,0x54,0x54,0x54,0x44,0x00,0x00}, +//---- 0xEF ---- +//[ ] +//[ ##### ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[## ## ] +//[ +//{0x3E,0x7E,0x40,0x40,0x40,0x7E,0x3E,0x00}, +{0x7C,0x7E,0x02,0x02,0x02,0x7E,0x7C,0x00}, +//---- 0xF0 ---- +//[ ] +//[####### ] +//[ ] +//[####### ] +//[ ] +//[####### ] +//[ ] +//[ +//{0x54,0x54,0x54,0x54,0x54,0x54,0x54,0x00}, +{0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x00}, +//---- 0xF1 ---- +//[ ## ] +//[ ## ] +//[ ###### ] +//[ ## ] +//[ ## ] +//[ ] +//[ ###### ] +//[ +//{0x00,0x22,0x22,0xFA,0xFA,0x22,0x22,0x00}, +{0x00,0x44,0x44,0x5F,0x5F,0x44,0x44,0x00}, +//---- 0xF2 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ] +//[ ##### ] +//[ +//{0x00,0x02,0x8A,0xDA,0x72,0x22,0x00,0x00}, +{0x00,0x40,0x51,0x5B,0x4E,0x44,0x00,0x00}, +//---- 0xF3 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ] +//[ ##### ] +//[ +//{0x00,0x22,0x72,0xDA,0x8A,0x02,0x00,0x00}, +{0x00,0x44,0x4E,0x5B,0x51,0x40,0x00,0x00}, +//---- 0xF4 ---- +//[ ### ] +//[ ## ##] +//[ ## ##] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## +//{0x00,0x00,0x00,0x7F,0xFF,0x80,0xE0,0x60}, +{0x00,0x00,0x00,0xFE,0xFF,0x01,0x07,0x06}, +//---- 0xF5 ---- +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[ ## ] +//[## ## ] +//[## ## ] +//[ ### +//{0x06,0x07,0x01,0xFF,0xFE,0x00,0x00,0x00}, +{0x60,0xE0,0x80,0xFF,0x7F,0x00,0x00,0x00}, +//---- 0xF6 ---- +//[ ] +//[ ## ] +//[ ] +//[ ###### ] +//[ ] +//[ ## ] +//[ ] +//[ +//{0x00,0x10,0x10,0x54,0x54,0x10,0x10,0x00}, +{0x00,0x08,0x08,0x2A,0x2A,0x08,0x08,0x00}, +//---- 0xF7 ---- +//[ ] +//[ ### ## ] +//[## ### ] +//[ ] +//[ ### ## ] +//[## ### ] +//[ ] +//[ +//{0x24,0x6C,0x48,0x6C,0x24,0x6C,0x48,0x00}, +{0x24,0x36,0x12,0x36,0x24,0x36,0x12,0x00}, +//---- 0xF8 ---- +//[ ### ] +//[ ## ## ] +//[ ### ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ +//{0x00,0x40,0xE0,0xA0,0xE0,0x40,0x00,0x00}, +{0x00,0x02,0x07,0x05,0x07,0x02,0x00,0x00}, +//---- 0xF9 ---- +//[ ] +//[ ] +//[ ] +//[ ## ] +//[ ## ] +//[ ] +//[ ] +//[ +//{0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00}, +{0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00}, +//---- 0xFA ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[ ## ] +//[ ] +//[ ] +//[ +//{0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x00}, +{0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00}, +//---- 0xFB ---- +//[ ####] +//[ ## ] +//[ ## ] +//[ ## ] +//[### ## ] +//[ ## ## ] +//[ #### ] +//[ +//{0x08,0x0C,0x0E,0x02,0xFE,0xFE,0x80,0x80}, +{0x10,0x30,0x70,0x40,0x7F,0x7F,0x01,0x01}, +//---- 0xFC ---- +//[## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ## ## ] +//[ ] +//[ ] +//[ ] +//[ +//{0x80,0xF0,0x70,0x80,0xF0,0x70,0x00,0x00}, +{0x01,0x0F,0x0E,0x01,0x0F,0x0E,0x00,0x00}, +//---- 0xFD ---- +//[#### ] +//[ ## ] +//[## ] +//[#### ] +//[ ] +//[ ] +//[ ] +//[ +//{0xB0,0xB0,0xD0,0xD0,0x00,0x00,0x00,0x00}, +{0x0D,0x0D,0x0B,0x0B,0x00,0x00,0x00,0x00}, +//---- 0xFE ---- +//[ ] +//[ ] +//[ #### ] +//[ #### ] +//[ #### ] +//[ #### ] +//[ ] +//[ +//{0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x00,0x00}, +{0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x00,0x00}, +//---- 0xFF ---- +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ ] +//[ +//{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, +}; + +const unsigned char clockdata[10][8]= +{ +{ +0xE, //xxx. +0xA, //x.x. +0xA, //x.x. +0xA, //x.x. +0xE, //xxx. +0,0,0 +}, +{ +0x2, //..x. +0x2, //..x. +0x2, //..x. +0x2, //..x. +0x2, //..x. +0,0,0 +}, +{ +0xE, //xxx. +0x2, //..x. +0xE, //xxx. +0x8, //x... +0xE, //xxx. +0,0,0 +}, +{ +0xE, //xxx. +0x2, //..x. +0xE, //xxx. +0x2, //..x. +0xE, //xxx. +0,0,0 +}, +{ +0xA, //x.x. +0xA, //x.x. +0xE, //xxx. +0x2, //. x. +0x2, //..x. +0,0,0 +}, +{ +0xE, //xxx. +0x8, //x .. +0xE, //xxx. +0x2, //. x. +0xE, //xxx. +0,0,0 +}, +{ +0xE, //xxx. +0x8, //x .. +0xE, //xxx. +0xA, //x x. +0xE, //xxx. +0,0,0 +}, +{ +0xE, //xxx. +0x2, //. x. +0x2, //..x. +0x2, //. x. +0x2, //..x. +0,0,0 +}, +{ +0xE, //xxx. +0xA, //x x. +0xE, //xxx. +0xA, //x x. +0xE, //xxx. +0,0,0 +}, +{ +0xE, //xxx. +0xA, //x x. +0xE, //xxx. +0x2, //. x. +0x2, //..x. +0,0,0 +} +}; + diff --git a/spi03/memmap b/spi03/memmap new file mode 100644 index 0000000..42d3af4 --- /dev/null +++ b/spi03/memmap @@ -0,0 +1,12 @@ + +MEMORY +{ + ram : ORIGIN = 0x8000, LENGTH = 0x1000 +} + +SECTIONS +{ + .text : { *(.text*) } > ram + .bss : { *(.bss*) } > ram +} + diff --git a/spi03/novectors.s b/spi03/novectors.s new file mode 100644 index 0000000..48404d9 --- /dev/null +++ b/spi03/novectors.s @@ -0,0 +1,49 @@ + +.globl _start +_start: + ldr sp,stack_start + ldr r0,thumb_start_add + bx r0 + +stack_start: .word 0x8000 +thumb_start_add: .word thumb_start +.word 0 +.word 0 + +.thumb +.thumb_func +thumb_start: + bl notmain +hang: b hang + +.thumb_func +.globl PUT32 +PUT32: + str r1,[r0] + bx lr + +.thumb_func +.globl GET32 +GET32: + ldr r0,[r0] + bx lr + +.thumb_func +.globl dummy +dummy: + bx lr + + + + +;@------------------------------------------------------------------------- +;@ +;@ Copyright (c) 2012 David Welch dwelch@dwelch.com +;@ +;@ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +;@ +;@ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +;@ +;@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +;@ +;@------------------------------------------------------------------------- diff --git a/spi03/spi03.c b/spi03/spi03.c new file mode 100644 index 0000000..ada078f --- /dev/null +++ b/spi03/spi03.c @@ -0,0 +1,392 @@ + +//------------------------------------------------------------------------- +//------------------------------------------------------------------------- + +#include "fontdata.h" + +extern void PUT32 ( unsigned int, unsigned int ); +extern unsigned int GET32 ( unsigned int ); +extern void dummy ( unsigned int ); + +#define GPFSEL0 0x20200000 +#define GPFSEL1 0x20200004 +#define GPFSEL2 0x20200008 + +#define GPSET0 0x2020001C +#define GPCLR0 0x20200028 +#define GPPUD 0x20200094 +#define GPPUDCLK0 0x20200098 + +#define AUX_ENABLES 0x20215004 +#define AUX_MU_IO_REG 0x20215040 +#define AUX_MU_IER_REG 0x20215044 +#define AUX_MU_IIR_REG 0x20215048 +#define AUX_MU_LCR_REG 0x2021504C +#define AUX_MU_MCR_REG 0x20215050 +#define AUX_MU_LSR_REG 0x20215054 +#define AUX_MU_MSR_REG 0x20215058 +#define AUX_MU_SCRATCH 0x2021505C +#define AUX_MU_CNTL_REG 0x20215060 +#define AUX_MU_STAT_REG 0x20215064 +#define AUX_MU_BAUD_REG 0x20215068 + +#define AUX_SPI0_CS 0x20204000 +#define AUX_SPI0_FIFO 0x20204004 +#define AUX_SPI0_CLK 0x20204008 +#define AUX_SPI0_DLEN 0x2020400C +#define AUX_SPI0_LTOH 0x20204010 +#define AUX_SPI0_DC 0x20204014 + + +#define SETCONTRAST 0x81 +#define DISPLAYALLONRESUME 0xA4 +#define DISPLAYALLON 0xA5 +#define NORMALDISPLAY 0xA6 +#define INVERTDISPLAY 0xA7 +#define DISPLAYOFF 0xAE +#define DISPLAYON 0xAF +#define SETDISPLAYOFFSET 0xD3 +#define SETCOMPINS 0xDA +#define SETVCOMDESELECT 0xDB +#define SETDISPLAYCLOCKDIV 0xD5 +#define SETPRECHARGE 0xD9 +#define SETMULTIPLEX 0xA8 +#define SETLOWCOLUMN 0x00 +#define SETHIGHCOLUMN 0x10 +#define SETSTARTLINE 0x40 +#define MEMORYMODE 0x20 +#define COMSCANINC 0xC0 +#define COMSCANDEC 0xC8 +#define SEGREMAP 0xA0 +#define CHARGEPUMP 0x8D +#define EXTERNALVCC 0x01 +#define SWITCHCAPVCC 0x02 + + + +unsigned int hex_screen_history[6]; + +//GPIO14 TXD0 and TXD1 +//GPIO15 RXD0 and RXD1 +//alt function 5 for uart1 +//alt function 0 for uart0 + +//((250,000,000/115200)/8)-1 = 270 +//------------------------------------------------------------------------ +void uart_init ( void ) +{ + unsigned int ra; + + ra=GET32(AUX_ENABLES); + ra|=1; //enable mini uart + PUT32(AUX_ENABLES,ra); + PUT32(AUX_MU_IER_REG,0); + PUT32(AUX_MU_CNTL_REG,0); + PUT32(AUX_MU_LCR_REG,3); + PUT32(AUX_MU_MCR_REG,0); + PUT32(AUX_MU_IER_REG,0); + PUT32(AUX_MU_IIR_REG,0xC6); + PUT32(AUX_MU_BAUD_REG,270); + //setup gpio before enabling uart + ra=GET32(GPFSEL1); + ra&=~(7<<12); //gpio14 + ra|=2<<12; //alt5 + ra&=~(7<<15); //gpio15 + ra|=2<<15; //alt5 + PUT32(GPFSEL1,ra); + PUT32(GPPUD,0); + for(ra=0;ra<150;ra++) dummy(ra); + PUT32(GPPUDCLK0,(1<<14)|(1<<15)); + for(ra=0;ra<150;ra++) dummy(ra); + PUT32(GPPUDCLK0,0); + //enable uart + PUT32(AUX_MU_CNTL_REG,3); +} +//------------------------------------------------------------------------ +void uart_putc ( unsigned int c ) +{ + while(1) + { + if(GET32(AUX_MU_LSR_REG)&0x20) break; + } + PUT32(AUX_MU_IO_REG,c); +} +//------------------------------------------------------------------------ +void hexstrings ( unsigned int d ) +{ + //unsigned int ra; + unsigned int rb; + unsigned int rc; + + rb=32; + while(1) + { + rb-=4; + rc=(d>>rb)&0xF; + if(rc>9) rc+=0x37; else rc+=0x30; + uart_putc(rc); + if(rb==0) break; + } + uart_putc(0x20); +} +//------------------------------------------------------------------------ +void hexstring ( unsigned int d ) +{ + hexstrings(d); + uart_putc(0x0D); + uart_putc(0x0A); +} + +//GPIO7 SPI0_CE1_N P1-26 (use for reset) +//GPIO8 SPI0_CE0_N P1-24 +//GPIO9 SPI0_MISO P1-21 +//GPIO10 SPI0_MOSI P1-19 +//GPIO11 SPI0_SCLK P1-23 +//alt function 0 for all of the above + +//P1 1 +3V3 +//P1 25 GND + +//P1 22 GPIO25 use as D/C + + +//------------------------------------------------------------------------ +void spi_init ( void ) +{ + unsigned int ra; + + ra=GET32(AUX_ENABLES); + ra|=2; //enable spi0 + PUT32(AUX_ENABLES,ra); + + ra=GET32(GPFSEL0); + //ra&=~(7<<27); //gpio9 + //ra|=4<<27; //alt0 + //ra|=1<<27; //output + ra&=~(7<<24); //gpio8 + ra|=4<<24; //alt0 + ra&=~(7<<21); //gpio7 + //ra|=4<<21; //alt0 + ra|=1<<21; //output + PUT32(GPFSEL0,ra); + ra=GET32(GPFSEL1); + ra&=~(7<<0); //gpio10/ + ra|=4<<0; //alt0 + ra&=~(7<<3); //gpio11/ + ra|=4<<3; //alt0 + PUT32(GPFSEL1,ra); + ra=GET32(GPFSEL2); + ra&=~(7<<15); //gpio25/ + ra|=1<<15; //output + PUT32(GPFSEL2,ra); + + PUT32(AUX_SPI0_CS,0x0000030); +// PUT32(AUX_SPI0_CLK,0x0000); //slowest possible, could probably go faster here + PUT32(AUX_SPI0_CLK,26); + +} +//------------------------------------------------------------------------ +void spi_one_byte ( unsigned int x ) +{ + PUT32(AUX_SPI0_CS,0x000000B0); //TA=1 cs asserted + while(1) + { + if(GET32(AUX_SPI0_CS)&(1<<18)) break; //TXD + } + PUT32(AUX_SPI0_FIFO,x&0xFF); + while(1) if(GET32(AUX_SPI0_CS)&(1<<16)) break; + //while(1) if(GET32(AUX_SPI0_CS)&(1<<17)) break; //should I wait for this? + PUT32(AUX_SPI0_CS,0x00000000); //cs0 comes back up +} +//------------------------------------------------------------------------ +void spi_command ( unsigned int cmd ) +{ + PUT32(GPCLR0,1<<25); //D/C = 0 for command + spi_one_byte(cmd); +} +//------------------------------------------------------------------------ +void spi_data ( unsigned int data ) +{ + PUT32(GPSET0,1<<25); //D/C = 1 for data + spi_one_byte(data); +} +//------------------------------------------------------------------------ +void show_string ( unsigned int row, const char *s ) +{ + unsigned int ra; + unsigned int rb; + unsigned int rc; + unsigned int rd; + + row&=7; + spi_command(0x80); //column + spi_command(0x40|row); //row + rc=0; + for(ra=0;ra<11;ra++) + { + if(s[ra]==0) break; + for(rb=0;rb<8;rb++) + { + rd=s[ra]; + spi_data(fontdata[rd][rb]); + rc++; + } + } + for(;rc<84;rc++) spi_data(0); +} +//------------------------------------------------------------------------ +int notmain ( void ) +{ + unsigned int ra; + unsigned int rb; + unsigned int rc; + unsigned int rd; + unsigned int re; + unsigned int rf; + unsigned int tim[4]; + + uart_init(); + hexstring(0x12345678); + for(ra=0;ra<10;ra++) + { + hexstring(ra); + } + spi_init(); + PUT32(GPSET0,1<<7); //reset high + for(ra=0;ra<0x10000;ra++) dummy(ra); + PUT32(GPCLR0,1<<7); //reset low + for(ra=0;ra<0x10000;ra++) dummy(ra); + PUT32(GPSET0,1<<7); //reset high + + spi_command(0x21); //extended commands + spi_command(0xB0); //vop + spi_command(0x04); //temp coef + spi_command(0x14); //bias mode 1:48 + spi_command(0x20); //extended off + spi_command(0x0C); //display on + +//experiment 1 +if(1) +{ + spi_command(0x80); //column + spi_command(0x40); //row + for(ra=0;ra<504;ra++) spi_data(ra); +} + +//experiment 2 +if(1) +{ + spi_command(0x80); //column + spi_command(0x40); //row + for(ra=0;ra<10;ra++) + { + for(rb=0;rb<8;rb++) spi_data(fontdata[ra][rb]); + } + show_string(1,"Hello"); + show_string(2,"World"); +} + +//experiment 3 +//4 boxes wide a clock would have three full digits plus a 1 +//2 boxes wide for the 1, 4 each for the other three 2+4+4+$ = 14 +//84/14 = 6 so six pixes wide per box...(8 tall). +if(1) +{ + for(ra=0;ra<10;ra++) + { + for(rb=0;rb<5;rb++) + { + spi_command(0x80); //column + spi_command(0x40|rb); //row + rc=clockdata[ra][rb]; + for(rd=0x8;rd;rd>>=1) + { + if(rc&rd) re=0xFF; + else re=0x00; + for(rf=0;rf<6;rf++) spi_data(re); + } + } + for(rf=0;rf<0x100000;rf++) dummy(rf); + } +} + + +if(1) +{ + spi_command(0x80); //column + spi_command(0x40|5); //row + for(rf=0;rf<84;rf++) spi_data(0x00); + tim[0]=0; + tim[1]=0; + tim[2]=0; + tim[3]=0; + while(1) + { + for(rb=0;rb<5;rb++) + { + spi_command(0x80); //column + spi_command(0x40|rb); //row + if(tim[0]==0) re=0x00; + else re=0xFF; + for(rf=0;rf<6;rf++) spi_data(re); + for(rf=0;rf<6;rf++) spi_data(0x00); + for(ra=1;ra<4;ra++) + { + rc=clockdata[tim[ra]][rb]; + for(rd=0x8;rd;rd>>=1) + { + if(rc&rd) re=0xFF; + else re=0x00; + for(rf=0;rf<6;rf++) spi_data(re); + } + } + for(rf=0;rf<0x1000;rf++) dummy(rf); + } + if(tim[3]==9) + { + tim[3]=0; + if(tim[2]==9) + { + tim[2]=0; + if(tim[1]==9) + { + tim[1]=0; + if(tim[0]==1) break; + else tim[0]++; + } + else + { + tim[1]++; + } + } + else + { + tim[2]++; + } + } + else + { + tim[3]++; + } + } +} + + + hexstring(0x12345678); + return(0); +} +//------------------------------------------------------------------------- +//------------------------------------------------------------------------- + + +//------------------------------------------------------------------------- +// +// Copyright (c) 2014 David Welch dwelch@dwelch.com +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//-------------------------------------------------------------------------