Understanding the language, error messages, etc.
by Duhjoker » Sun Jan 15, 2017 2:27 am
All right guys I've got several color libraries depending on what hardware you want use. We have one working for the inhaos lcd2000_7755 that should work with any teensy. We have one for MCUfriend that works with up to a teensy3.2 and T3.5-6 I also have one that uses KurtE and Paul S' optimized ili9341 library. And I'm working on a couple more so there's gonna be a variety ways to go color.
But let me ask a question.........
What would you guys like to see and have in a color library? What would make it worth it?
I've got a ton of bitmap versions including tilemap, adafruit, SD and push colors. I have the collision built in as well.
Let me know what you guys think and what you would like!!!!
Update::::::
Ok so I've got two libraries that claim to work with any board and most of the popular screens.
First we have the MCU_friend library that works with almost all the arduinos and all the teensy's it took some doing since it wasn't meant for any teensy over 3.2, so I had to do some code modifying to get it to compile and to work. Any way it also works for most of the ili93xx screens and some of the st77xx screens.
Now I also took SumoToys rocket fast ili93XX library and gamebuino'd it as well. Now this one works with a ton of arduinos and all the teensy's. It also works on the popular ili93xx and some st77xx version Tft's.
So both these libraries will work with most the popular and well documented and distributed screens of right now and they are every where. You don't have to use a teensy if don't want to either as they have SD capability. Rather do a black/grey/white game go ahead it's possible. Just use several real grey colors.
But if you have a color screen you would like to use and it's not covered by the code libraries above, feel free to ask and send me your screens "driver" library and I will set you up in a couple days.
-
Duhjoker
-
- Posts: 446
- Joined: Sat Jul 02, 2016 4:57 am
- Location: Where Palm trees grow
by naed » Tue Jan 17, 2017 8:07 am
Any chance of seeing this in action? Screenshots? Video?
-
naed
-
- Posts: 140
- Joined: Tue May 31, 2016 3:18 pm
by Duhjoker » Tue Jan 17, 2017 9:40 am
Soon my friend. Im trying to get the wiring sorted out so i can try to at least display bitmaps. Then ill do buttons. Hopefully by next week about this time.
Take a look though and tell me what you think.
Getting anxious myself!!
-
Duhjoker
-
- Posts: 446
- Joined: Sat Jul 02, 2016 4:57 am
- Location: Where Palm trees grow
by Duhjoker » Tue Jan 17, 2017 10:32 am
Ok so how do i actually use the drawbitmap from SD function from mougino in the library from his example. How are the bitmaps stored and what format do they need to be in for it to read and display them? Text, raw,..etc.
-
Duhjoker
-
- Posts: 446
- Joined: Sat Jul 02, 2016 4:57 am
- Location: Where Palm trees grow
by naed » Tue Jan 17, 2017 6:24 pm
Can you link me to that drawbitmap from sd function?
-
naed
-
- Posts: 140
- Joined: Tue May 31, 2016 3:18 pm
by Duhjoker » Tue Jan 17, 2017 9:25 pm
Sorry just got your message.
Sure can
The drawBitMapfrom Sd command is included in the library or you could download mouginos example file from here.......
viewtopic.php?f=12&t=787&hilit=read+from+sd&start=10#p10556Or here it is.......
- Code: Select all
#include <SPI.h>
#include <Gamebuino.h>
#include <petit_fatfs.h>
//#define debug // Comment for live conditions (Gamebuino+SD). Uncomment for demo conditions (simulator)
PROGMEM const unsigned char title[] = { 32,32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xE0,0x00,0x00,0x7F,0xF8,0x00,0x00,0xE0,0x1E,0x00,0x03,0x00,0x83,0x80,0x06,0x01,0xC0,0xC0,0x0C,0x03,0xE0,0x60,0x08,0x03,0xE0,0x20,0x18,0xE1,0xC0,0x30,0x19,0xF0,0x02,0x10,0x19,0xF0,0x07,0x98,0x38,0xE0,0x08,0xD8,0x30,0x40,0x08,0x58,0x30,0x00,0x08,0x58,0x30,0x00,0x0C,0xD8,0x30,0x00,0x07,0x18,0x30,0x40,0x00,0x18,0x38,0xE0,0xF8,0x30,0x19,0xF0,0xCC,0x60,0x19,0xF1,0x83,0xC0,0x18,0xE1,0x80,0x00,0x0C,0x03,0x00,0x00,0x0E,0x07,0x00,0x00,0x07,0x1E,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
#ifdef debug // Below are the bitmaps data dumped to PROGMEM (made possible with my "FileToArray.exe" util) for debug in simulator
PROGMEM const char ff[] = { 0x42,0x4d,0x32,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x04,0x00,0x00,0x28,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x40,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x42,0x4d,0x32,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x04,0x00,0x00,0x00,0x00,0xb0,0x48,0xac,0x00,0x24,0x05,0x00,0x00,0x34,0x04,0x00,0x00,0x0f,0x00,0x85,0x01,0x96,0x11,0x01,0x95,0x3a,0x08,0x05,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaf,0x60,0x20,0x00,0x20,0x2f,0x14,0x00,0xdc,0x64,0xb1,0x00,0x22,0x02,0xfb,0x7f,0x26,0x00,0x00,0x00,0x78,0xae,0x14,0x00,0x30,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xd4,0x4b,0x77,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0xd8,0x64,0xb1,0x00,0x98,0xf5,0x12,0x00,0x44,0x4a,0x0e,0x77,0x34,0x60,0x5c,0x77,0xd8,0x64,0xb1,0x00,0xa0,0x7b,0x21,0x00,0x84,0xf7,0x12,0x00,0xd8,0x64,0xb1,0x00,0x80,0x00,0x00,0x00,0xac,0xf5,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xdc,0x64,0xb1,0x00,0x40,0xf9,0x12,0x00,0x32,0xc8,0x20,0x00,0x00,0x00,0x00,0x00,0xcc,0xf5,0x12,0x00,0x3f,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xf7,0x12,0x00,0x40,0xf9,0x12,0x00,0x9f,0x4f,0x20,0x00,0x88,0xf7,0x12,0x00,0x36,0x04,0x28,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xb3,0x14,0x00,0x5a,0x3a,0x5c,0x41,0x72,0x64,0x75,0x69,0x6e,0x6f,0x20,0x4c,0x44,0x56,0x45,0x4c,0x48,0x20,0x4d,0x61,0x6b,0x65,0x72,0x5c,0x44,0x46,0x30,0x31,0x5c,0x74,0x69,0x74,0x6c,0x65,0x2e,0x62,0x6d,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x3d,0x20,0x00,0xc0,0x12,0x3f,0x7e,0x78,0x67,0x4b,0x00,0x58,0xf9,0x12,0x00,0xa1,0x7b,0x21,0x00,0xf5,0xb3,0x14,0x00,0xcf,0x4e,0x20,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfa,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7c,0xff,0xff,0xc0,0x00,0x03,0xff,0xff,0xdf,0xbf,0xe0,0x03,0xff,0xf0,0x0f,0xff,0xff,0xe8,0x07,0xff,0x78,0xfd,0xe1,0xff,0xfb,0xf0,0x1f,0xe7,0xf9,0xf8,0xf1,0xff,0xfe,0xfc,0x03,0x63,0xff,0xf8,0xfe,0xff,0xc0,0x3f,0x07,0xe0,0x00,0x01,0xf8,0xf8,0x4f,0xcf,0xc0,0x00,0x00,0x08,0x0a,0xe2,0x3f,0xc7,0xa0,0x00,0x00,0x08,0x0e,0x03,0xe5,0xf3,0xf8,0x00,0x00,0xe8,0x1f,0x3f,0xe6,0x05,0x7e,0x00,0x01,0xd4,0x45,0x3f,0xf8,0x14,0xfb,0x00,0x06,0x68,0x23,0x07,0x00,0x03,0xaf,0xe0,0x30,0x40,0x7b,0xa7,0x00,0x00,0xbb,0xb8,0xbe,0x41,0xf7,0xdf,0x80,0x00,0x31,0xfe,0x05,0x04,0xcf,0xef,0xc0,0x00,0x34,0xe0,0x0e,0x0c,0x5f,0xf6,0x20,0x01,0x39,0xeb,0x90,0x1e,0x7f,0xfc,0x10,0x47,0x6e,0x0c,0x20,0x19,0xff,0xfe,0x7c,0x02,0xc0,0x84,0x04,0x0f,0xff,0xff,0x3e,0x10,0x80,0xec,0x03,0x1f,0xff,0xff,0xd4,0x00,0x00,0x04,0xe0,0xff,0xff,0xff,0xf2,0x70,0x00,0x9c,0x38,0x0f,0xff,0xff,0xff,0x4f,0x06,0x71,0xfe,0x07,0xff,0xff,0xff,0xef,0xbf,0x07,0xfe,0x05,0xff,0xff,0xff,0xf8,0x01,0xff,0xff,0xc6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff };
PROGMEM const char d2[] = { 0x42,0x4d,0x5a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc4,0x0e,0x00,0x00,0xc4,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
PROGMEM const char d4[] = { 0x42,0x4d,0x5a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xc4,0x0e,0x00,0x00,0xc4,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
PROGMEM const char i358[] = { 0x42,0x4d,0x82,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x04,0x00,0x00,0x28,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x54,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x42,0x4d,0x82,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x04,0x00,0x00,0x00,0x00,0x60,0x2f,0x31,0x00,0x74,0x06,0x00,0x00,0x34,0x04,0x00,0x00,0x0f,0x00,0x85,0x01,0x37,0x1c,0x01,0x8e,0x7b,0x1c,0x05,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaf,0x60,0x20,0x00,0x00,0x3e,0xfb,0x76,0x54,0xf4,0x04,0x07,0x18,0xf4,0x13,0x00,0x1f,0x3e,0xfb,0x76,0x00,0x00,0x18,0x00,0x90,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xf4,0x13,0x00,0x3e,0x52,0x38,0x77,0x44,0x23,0x0d,0x77,0x50,0xf4,0x04,0x07,0x34,0xf6,0x13,0x00,0xa0,0x7b,0x21,0x00,0x81,0x52,0x38,0x77,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x7c,0x2e,0x72,0x1b,0x5c,0xf4,0x13,0x00,0xe7,0x51,0x38,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc5,0x85,0xae,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xf6,0x13,0x00,0x6c,0x05,0x20,0x00,0x50,0xf4,0x13,0x00,0x00,0x00,0x00,0x00,0x3f,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xf6,0x13,0x00,0xf0,0xf7,0x13,0x00,0x9f,0x4f,0x20,0x00,0x38,0xf6,0x13,0x00,0x6c,0x05,0x20,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x2b,0x11,0x04,0x5a,0x3a,0x5c,0x47,0x61,0x6d,0x65,0x62,0x75,0x69,0x6e,0x6f,0x20,0x4c,0x44,0x56,0x45,0x4c,0x48,0x20,0x4d,0x61,0x6b,0x65,0x72,0x5c,0x44,0x46,0x30,0x31,0x5c,0x33,0x35,0x38,0x2e,0x62,0x6d,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x3d,0x20,0x00,0x10,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa1,0x7b,0x21,0x00,0x1d,0x2b,0x11,0x04,0xcf,0x4e,0x20,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xf6,0x80,0x75,0x7f,0x80,0x40,0x14,0x60,0x6a,0xb3,0x00,0x00,0xf3,0x00,0x33,0x7e,0x95,0x00,0x10,0x57,0x9a,0x2f,0x10,0x00,0xff,0xc0,0x07,0x5e,0xb0,0x40,0xb0,0x18,0x0b,0x3f,0x10,0x00,0xfe,0xe0,0x0e,0x98,0x84,0x41,0x20,0x91,0x07,0x0a,0x10,0x00,0x00,0xc0,0x0e,0x80,0xb0,0x00,0x20,0x93,0x30,0x06,0xa0,0x00,0xff,0x80,0x0b,0x3e,0x13,0x00,0x00,0x18,0x35,0x84,0x80,0x00,0x7f,0x1a,0x03,0x08,0xc2,0xa0,0x00,0x54,0x25,0x4d,0x90,0x00,0xbe,0x01,0x02,0xd1,0x13,0xa4,0x05,0x58,0x35,0x69,0x30,0x00,0x3c,0x00,0x02,0x7f,0xa9,0x88,0x14,0x90,0x37,0x61,0x30,0x00,0xf8,0x00,0x0a,0x9f,0x40,0x44,0x1d,0x18,0x13,0x42,0x70,0x00,0xf0,0x00,0x01,0x40,0x29,0x0e,0x1d,0x18,0xa1,0x66,0xf0,0x00,0xe0,0xc0,0x02,0x6f,0x99,0x1e,0x7f,0x88,0xd3,0x65,0xf0,0x00,0xc1,0x88,0x05,0xf5,0xf1,0x4c,0x0f,0x8a,0xc7,0xbb,0xf0,0x00,0x87,0x8c,0x0d,0xfb,0x80,0x2b,0xbf,0xd2,0x85,0x93,0xf0,0x00,0x0f,0x0f,0x0b,0xfd,0x33,0x1c,0x0e,0xc8,0x4d,0xf3,0xf0,0x00,0x3f,0x1f,0xf7,0xfe,0xc0,0x58,0x07,0xc1,0x6a,0x73,0xf0,0x00,0xf3,0x1f,0xfb,0x3f,0x01,0x5e,0x1f,0x48,0x73,0x77,0xf0,0x00,0xeb,0x3f,0xf0,0xff,0xa1,0x57,0xbf,0x68,0x18,0x17,0xf0,0x00,0xda,0x78,0xf2,0xff,0xe0,0x5f,0x36,0x60,0x1a,0xef,0xf0,0x00,0xe6,0x71,0x05,0xff,0xe6,0x78,0xc7,0x62,0x39,0x2f,0xf0,0x00,0x5a,0xed,0xf3,0xff,0xc5,0x7d,0xe5,0xe8,0x3a,0xdf,0xf0,0x00,0x92,0xed,0xff,0xff,0xf1,0x7d,0x4f,0xe8,0x38,0xdf,0xf0,0x00,0xb7,0xf6,0x7f,0xbe,0xfe,0x7f,0x7e,0xc0,0x54,0xff,0xf0,0x00,0x90,0xf5,0xff,0x07,0x82,0x5f,0xff,0x86,0x6f,0xbf,0xf0,0x00,0xfe,0xf5,0xfe,0x53,0x64,0x3f,0x7f,0xe2,0xf2,0x7f,0xf0,0x00,0xfa,0xef,0xfd,0x80,0x49,0xbb,0x77,0xea,0x1d,0xff,0xf0,0x00,0xfe,0x5f,0xe0,0x9f,0xc9,0x7f,0xdb,0xe0,0x92,0xff,0xf0,0x00,0xfe,0xcf,0xe4,0xff,0xfd,0xf9,0x49,0xe5,0xe3,0xff,0xf0,0x00,0xff,0xff,0x41,0xff,0xf2,0xe1,0x60,0x28,0x3f,0xff,0xf0,0x00,0xff,0xfe,0x67,0xff,0xf8,0xa8,0xd8,0xb1,0xff,0xff,0xf0,0x00,0xff,0xfc,0x2f,0xff,0xf8,0xc1,0x03,0x7a,0xff,0xff,0xf0,0x00,0xff,0xfc,0x2f,0xff,0xf8,0xfb,0xf8,0x60,0xff,0xff,0xf0,0x00,0xff,0xfc,0x1f,0xff,0xfa,0xd7,0xff,0xb8,0xff,0xff,0xf0,0x00,0xff,0xfe,0xdf,0xff,0xf8,0xaf,0xff,0x20,0xff,0xff,0xf0,0x00,0xff,0xfe,0x1f,0xff,0xf9,0xff,0xde,0x70,0xff,0xff,0xf0,0x00,0xff,0xff,0xcf,0xff,0xf8,0xff,0xff,0xec,0xff,0xff,0xf0,0x00,0xff,0xff,0x3f,0x03,0xf2,0xbc,0x19,0xf8,0xff,0xff,0xf0,0x00,0xff,0xff,0x38,0xbd,0xf8,0xbf,0xff,0xe1,0xff,0xff,0xf0,0x00,0xff,0xff,0x67,0x6b,0xf8,0xff,0x3f,0xe1,0xff,0xff,0xf0,0x00,0xff,0xff,0xa9,0x43,0xf8,0xf7,0x3f,0xc9,0xff,0xff,0xf0,0x00,0xff,0xff,0x94,0x42,0xfa,0xef,0x31,0xa3,0xff,0xff,0xf0,0x00,0xff,0xff,0xe5,0x4d,0xfc,0x6e,0x19,0x93,0xff,0xff,0xf0,0x00,0xff,0xff,0xf1,0xb1,0xf8,0x01,0x19,0x5b,0xff,0xff,0xf0,0x00,0xff,0xff,0xfa,0x11,0xf8,0xce,0x24,0xd7,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0x03,0xfc,0x24,0x04,0xef,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xff,0xff,0x18,0x2b,0x1f,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xff,0xff,0xc5,0x24,0xbf,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xff,0xff,0xf8,0x01,0xff,0xff,0xff,0xf0,0x00 };
PROGMEM const char i383[] = { 0x42,0x4d,0x82,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x04,0x00,0x00,0x28,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x54,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x42,0x4d,0x82,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x04,0x00,0x00,0x00,0x00,0x60,0x2f,0x31,0x00,0x74,0x06,0x00,0x00,0x34,0x04,0x00,0x00,0x0f,0x00,0x85,0x01,0x37,0x1c,0x01,0xfd,0x05,0x1d,0x05,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaf,0x60,0x20,0x00,0x00,0x3e,0xfb,0x76,0x14,0xee,0x04,0x07,0x18,0xf4,0x13,0x00,0x1f,0x3e,0xfb,0x76,0x00,0x00,0x18,0x00,0x30,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xf4,0x13,0x00,0x3e,0x52,0x38,0x77,0x44,0x23,0x0d,0x77,0x10,0xee,0x04,0x07,0x34,0xf6,0x13,0x00,0xa0,0x7b,0x21,0x00,0x81,0x52,0x38,0x77,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x7c,0x2e,0x72,0x1b,0x5c,0xf4,0x13,0x00,0xe7,0x51,0x38,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc5,0x85,0xae,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xf6,0x13,0x00,0x6c,0x05,0x21,0x00,0x50,0xf4,0x13,0x00,0x00,0x00,0x00,0x00,0x3f,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xf6,0x13,0x00,0xf0,0xf7,0x13,0x00,0x9f,0x4f,0x20,0x00,0x38,0xf6,0x13,0x00,0x6c,0x05,0x21,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x08,0x2f,0x00,0x5a,0x3a,0x5c,0x47,0x61,0x6d,0x65,0x62,0x75,0x69,0x6e,0x6f,0x20,0x4c,0x44,0x56,0x45,0x4c,0x48,0x20,0x4d,0x61,0x6b,0x65,0x72,0x5c,0x44,0x46,0x30,0x31,0x5c,0x33,0x38,0x33,0x2e,0x62,0x6d,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x3d,0x20,0x00,0x10,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa1,0x7b,0x21,0x00,0x6d,0x08,0x2f,0x00,0xcf,0x4e,0x20,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xff,0xfc,0x7b,0xff,0xe4,0x00,0x40,0x00,0x3f,0xc7,0xf0,0x00,0xe0,0x3e,0x7d,0xff,0xe0,0x20,0x60,0x04,0x3c,0x7e,0x00,0x00,0x07,0x82,0x7e,0xff,0xe0,0x1c,0x40,0x02,0x3f,0xc0,0x00,0x00,0xff,0xfe,0x7e,0x7f,0x87,0xe0,0x5c,0x04,0xb8,0xff,0xf0,0x00,0x82,0x06,0x7f,0x7f,0x90,0x02,0xe0,0x08,0x3f,0xe0,0x00,0x00,0xfe,0xfc,0x7f,0x7f,0x98,0x10,0xf0,0x04,0xbe,0x0f,0xf0,0x00,0x3f,0xe8,0x7f,0x80,0x01,0x00,0x6f,0xc0,0x3f,0xf0,0x60,0x00,0xc2,0x7c,0x40,0x00,0x09,0x00,0x40,0xf8,0x3e,0x00,0x00,0x00,0xff,0xe6,0x7e,0x7f,0xe1,0x1f,0x20,0x06,0x3b,0xff,0xf0,0x00,0xe0,0x7c,0x7f,0x7f,0xff,0x82,0xa0,0x40,0x3f,0xc0,0x00,0x00,0x1e,0x06,0x7f,0xbf,0xff,0xe0,0x00,0x00,0x3f,0x0e,0x70,0x00,0xe6,0x78,0x7f,0x9f,0xf8,0xe1,0x04,0x00,0x3b,0xff,0x30,0x00,0x06,0x0e,0x7f,0xdf,0xf6,0x00,0x10,0x03,0xbf,0xf0,0x10,0x00,0xff,0xf8,0x7f,0xe0,0x01,0x9e,0x1e,0x00,0x3e,0x1f,0xf0,0x00,0x06,0x1e,0x7f,0x00,0x61,0xdf,0x80,0x00,0x39,0xf0,0x30,0x00,0xff,0xf8,0x00,0xff,0xe8,0xe7,0xc0,0x18,0xb8,0x3f,0xf0,0x00,0x06,0xce,0x07,0xff,0xc0,0x51,0x80,0x00,0xba,0x80,0x00,0x00,0xff,0xe2,0x7f,0xff,0x81,0x5c,0x10,0xfc,0x3c,0xff,0xf0,0x00,0xc6,0x1e,0x7f,0xff,0x00,0x0e,0x01,0xff,0xb7,0x80,0x00,0x00,0x3c,0x0a,0x00,0x07,0x00,0x06,0x03,0xff,0xbe,0x0f,0xf0,0x00,0xff,0xfe,0x7e,0x40,0x30,0x06,0x00,0x7f,0xbf,0xfe,0x00,0x00,0x00,0xd6,0x7f,0xf8,0x64,0x0c,0x00,0x01,0xbc,0x00,0x20,0x00,0xff,0xfe,0x7f,0xfe,0x2d,0x04,0x47,0xe0,0x3f,0xff,0x00,0x00,0x04,0x0e,0x7f,0xfc,0x4f,0x84,0x00,0x7f,0xb8,0x07,0xf0,0x00,0xff,0xfe,0x70,0x1b,0x8f,0x8e,0x00,0x1f,0xbe,0x1f,0x40,0x00,0xfe,0x1a,0x7f,0x03,0x8f,0xce,0x1f,0x03,0xb8,0x03,0xf0,0x00,0x04,0x7e,0x00,0x01,0x9f,0xc2,0x07,0xe0,0x3f,0xff,0xf0,0x00,0xff,0xfe,0x7e,0xf0,0xb5,0xe2,0x83,0xfc,0x3f,0x00,0x00,0x00,0x04,0x0e,0x7e,0xf4,0x40,0x70,0x98,0x0f,0x3b,0x07,0xf0,0x00,0x07,0xfe,0x7f,0xf0,0x30,0x7e,0x18,0x01,0xbf,0x81,0x00,0x00,0xff,0x5e,0x7f,0x60,0xe0,0x30,0x43,0xe0,0x39,0xff,0xf0,0x00,0x00,0x1e,0x7f,0xe8,0xe0,0x24,0x03,0xf4,0x3f,0xff,0x00,0x00,0xff,0xf6,0x7f,0xaf,0xe0,0x0f,0x73,0xf3,0xbf,0xff,0xf0,0x00,0x00,0x1e,0x7f,0xaf,0xb0,0x0f,0x71,0xfb,0xbf,0xff,0xe0,0x00,0xff,0xfe,0x7f,0xa7,0xb8,0x5f,0x79,0xfb,0xb8,0x00,0x00,0x00,0xfe,0x0e,0x43,0x87,0xff,0x9f,0x71,0xfb,0xbf,0xff,0xf0,0x00,0x00,0x7e,0x00,0x07,0xff,0xbf,0xf4,0xfb,0xbf,0xff,0xc0,0x00,0xff,0xfe,0x7f,0xfb,0xff,0xbf,0xbd,0xfb,0xbf,0x80,0xf0,0x00,0xff,0xce,0x3f,0xf9,0xff,0x9f,0x8d,0xfb,0xbf,0xff,0xc0,0x00,0x00,0xfe,0x00,0x00,0xff,0xef,0x98,0x73,0xbe,0x0f,0xf0,0x00,0xff,0xfe,0x7c,0x00,0x7f,0xf0,0xf8,0x00,0xbf,0xff,0xe0,0x00,0xff,0xee,0x7f,0xff,0x3f,0xff,0xf3,0xfe,0x38,0xe0,0x00,0x00,0x03,0xfe,0x78,0x1f,0x9f,0xff,0xf0,0x0f,0xbf,0xff,0xf0,0x00,0xff,0xfe,0x7f,0xe0,0x0f,0xff,0xe0,0x01,0xb9,0xff,0x80,0x00,0xff,0xd6,0x7f,0xff,0xe3,0xff,0xc7,0xf0,0x3f,0xff,0xf0,0x00,0x00,0xde,0x70,0x00,0x18,0xff,0x8f,0xff,0x3d,0x87,0x00,0x00,0xff,0xfe,0x7f,0x00,0x00,0x7f,0x9f,0xff,0xbf,0xc1,0xb0,0x00,0xff,0x2e,0x00,0x3f,0xff,0x80,0x38,0x5b,0xbc,0x06,0x00,0x00 };
PROGMEM const char i400[] = { 0x42,0x4d,0x82,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x04,0x00,0x00,0x28,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x54,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x42,0x4d,0x82,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x04,0x00,0x00,0x00,0x00,0xc0,0x22,0x17,0x01,0x74,0x06,0x00,0x00,0x34,0x04,0x00,0x00,0x0f,0x00,0x85,0x01,0x39,0x0e,0x01,0x0c,0x7b,0x0e,0x05,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaf,0x60,0x20,0x00,0x00,0x3e,0x29,0x77,0xb4,0x09,0x8b,0x03,0x98,0xf6,0x13,0x00,0x1f,0x3e,0x29,0x77,0x00,0x00,0x18,0x00,0xfc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xf6,0x13,0x00,0x3e,0x52,0x99,0x76,0x44,0x23,0x3b,0x77,0xb0,0x09,0x8b,0x03,0xb4,0xf8,0x13,0x00,0xa0,0x7b,0x21,0x00,0x81,0x52,0x99,0x76,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x54,0x9f,0x64,0xa9,0xdc,0xf6,0x13,0x00,0xe7,0x51,0x99,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xda,0x61,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0xf8,0x13,0x00,0x28,0x05,0x06,0x00,0xd0,0xf6,0x13,0x00,0x00,0x00,0x00,0x00,0x3f,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0xf8,0x13,0x00,0x70,0xfa,0x13,0x00,0x9f,0x4f,0x20,0x00,0xb8,0xf8,0x13,0x00,0x28,0x05,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0xf8,0x1b,0x01,0x5a,0x3a,0x5c,0x47,0x61,0x6d,0x65,0x62,0x75,0x69,0x6e,0x6f,0x20,0x4c,0x44,0x56,0x45,0x4c,0x48,0x20,0x4d,0x61,0x6b,0x65,0x72,0x5c,0x44,0x46,0x30,0x31,0x5c,0x34,0x30,0x30,0x2e,0x62,0x6d,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x3d,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa1,0x7b,0x21,0x00,0xc5,0xf8,0x1b,0x01,0xcf,0x4e,0x20,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xff,0xfe,0x0f,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xff,0x8c,0x21,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xff,0x02,0xec,0x7f,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xff,0x76,0xec,0x3f,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xff,0x8e,0xed,0x4f,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xf8,0x7e,0xed,0x73,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xfa,0xfe,0x28,0x7c,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xfa,0x7d,0x08,0x7f,0x0f,0xff,0xff,0xf0,0x00,0xff,0xff,0xfe,0x2c,0xf8,0x81,0x3f,0xa1,0xff,0xff,0xf0,0x00,0xff,0xff,0xfe,0x9f,0x14,0xe1,0x3f,0x0d,0xff,0xff,0xf0,0x00,0xff,0xff,0xfe,0x3e,0x52,0xe1,0x3f,0x90,0xff,0xff,0xf0,0x00,0xff,0xff,0xfc,0x30,0x02,0xe1,0x3f,0x1c,0x7f,0xff,0xf0,0x00,0xff,0xff,0xfd,0xb0,0x82,0xe1,0x01,0x0d,0x0f,0xff,0xf0,0x00,0xff,0xff,0xfd,0xa3,0x82,0xe1,0x4e,0x8d,0x47,0xff,0xf0,0x00,0xff,0xff,0xfd,0xb3,0x82,0xe1,0x4e,0x0d,0x57,0xff,0xf0,0x00,0xff,0xff,0xfd,0x83,0x82,0xe1,0x4e,0x0d,0x57,0xff,0xf0,0x00,0xff,0xff,0xfd,0x83,0x02,0xe1,0x4e,0x0d,0x07,0xff,0xf0,0x00,0xff,0xff,0xfd,0x83,0x82,0xe5,0x4d,0x8d,0x03,0xff,0xf0,0x00,0xff,0xff,0xfd,0x83,0xe6,0xe5,0x4e,0x4c,0x93,0xff,0xf0,0x00,0xff,0xff,0xf5,0x83,0xe6,0x45,0x4e,0x2c,0x57,0xff,0xf0,0x00,0xff,0xff,0xf9,0x83,0xe6,0x04,0x4f,0x2c,0x57,0xff,0xf0,0x00,0xff,0xff,0xfd,0x83,0xe4,0xe4,0x47,0xe8,0x57,0xff,0xf0,0x00,0xff,0xff,0xfd,0x8f,0xe2,0x00,0x47,0xe9,0x57,0xff,0xf0,0x00,0xff,0xff,0xfc,0x9f,0x30,0x80,0x80,0x69,0x57,0xff,0xf0,0x00,0xff,0xff,0xfc,0x09,0x88,0x00,0x08,0x09,0x57,0xff,0xf0,0x00,0xff,0xff,0xfc,0x00,0x00,0x01,0x00,0x00,0xd7,0xff,0xf0,0x00,0xff,0xff,0xfe,0x20,0x40,0x00,0x00,0x00,0x47,0xff,0xf0,0x00,0xff,0xff,0xf8,0x03,0x40,0x00,0x00,0x00,0x87,0xff,0xf0,0x00,0xff,0xff,0xeb,0x80,0x10,0x00,0x00,0x00,0x3f,0xff,0xf0,0x00,0xff,0xff,0xda,0xf2,0x84,0x0a,0x00,0x0c,0xff,0xff,0xf0,0x00,0xff,0xff,0xba,0x00,0x40,0x90,0x07,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0x7c,0x06,0xc0,0x00,0x83,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0x74,0x01,0x00,0x00,0x09,0xff,0xff,0xff,0xf0,0x00,0xff,0xfe,0xf4,0x00,0x40,0x00,0x11,0xff,0xff,0xff,0xf0,0x00,0xff,0xfe,0xf4,0x00,0x0e,0x00,0x03,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xf0,0x01,0x3e,0x01,0x8f,0xff,0xff,0xff,0xf0,0x00,0xff,0xfd,0xe8,0x1f,0xbf,0x81,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xfd,0xe8,0x7f,0xff,0xc1,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xfd,0xe8,0xfb,0x1f,0xc1,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xfd,0xe9,0xfe,0x6f,0xc1,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xfd,0xf1,0xfc,0xef,0xc3,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xfd,0xd3,0xfc,0xaf,0xc3,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xd7,0xfd,0xaf,0xc3,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xfe,0xd7,0xfd,0xa0,0x03,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0x50,0x01,0xe8,0x03,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0x00,0x01,0x27,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0xff,0xff,0xff,0xf8,0x0f,0xff,0xff,0xff,0xff,0xff,0xf0,0x00 };
PGM_P bmp;
#endif
// drawBitmapFromSd() return values
#define BMP_OK 0 // ok
#define BMP_NO_FILE 1 // error: bitmap file not found on SD
#define BMP_NOT_WBM 2 // error: not a Windows Bitmap
#define BMP_NOT_1BPP 3 // error: not a monochrome bitmap
#define BMP_ERR_CMP 4 // error: compressed bitmap
#define BMP_TOO_BIG 5 // error: bitmap width > Gamebuino screen
// Various macros
#define WORD(AR,PO) (byte)AR[PO]+0x100L*(byte)AR[PO+1] // read word from char array AR at position PO
#define LONG(AR,PO) (byte)AR[PO]+0x100L*(byte)AR[PO+1]+0x10000L*(byte)AR[PO+2]+0x1000000L*(byte)AR[PO+3]
Gamebuino gb;
// Following two functions are needed by petit_fatfs
byte rx() { SPDR=0xFF; loop_until_bit_is_set(SPSR, SPIF); return SPDR; }
void tx(byte d) { SPDR=d; loop_until_bit_is_set(SPSR, SPIF); }
// Read 'n' bytes of bitmap data starting at position 'start' and put them in buffer buf[]
void readNCharsAt(byte n, word start, char *buf) {
#ifdef debug // use PROGMEM dump of bitmap data
for(byte i=0; i<n; i++) { buf[i]=pgm_read_byte(&(bmp[start+i])); }
#else // open real bitmap on SD
WORD br; pf_lseek(start); pf_read((void*)&buf[0], n, &br);
#endif
}
// Draw inverted-color bitmap from SRAM char array
void drawBitmap(byte x, byte y, char *bitmap) { // where bitmap[] is the char array containing bitmap data
byte w=bitmap[0];
byte h=bitmap[1];
byte i,j,byteNum,bitNum,byteWidth=(w+7)>>3;
for(i=0; i<w; i++) {
byteNum=i/8; bitNum=i%8;
for(j=0; j<h; j++) {
if(!((bitmap[2+j*byteWidth+byteNum]) & (B10000000>>bitNum))) gb.display.drawPixel(x+i, y+j);
}
}
}
// Draw bitmap from SD at position x0, y0
int drawBitmapFromSd(byte x0, byte y0, char *bitmap) { // where bitmap[] is the name of the bitmap file on SD
char buf[13]; // max 2 bytes for W/H + 11 bytes of data to cover the 84 pixel width of the Gamebuino screen
// 1. open bitmap file
#ifdef debug // use PROGMEM dump of bitmap data
if(bitmap=="ff.bmp") bmp=ff;
else if(bitmap=="d2.bmp") bmp=d2;
else if(bitmap=="d4.bmp") bmp=d4;
else if(bitmap=="358.bmp") bmp=i358;
else if(bitmap=="383.bmp") bmp=i383;
else if(bitmap=="400.bmp") bmp=i400;
else return BMP_NO_FILE;
#else // open real bitmap on SD
if(pf_open(bitmap)) return BMP_NO_FILE;
#endif
// 2a. read information from bitmap header > identifier
readNCharsAt(2,0,buf); // BMP.wIdentifier
buf[2]=NULL;
if(strcmp(buf,"BM")) return BMP_NOT_WBM;
// 2b. read information from bitmap header > bpp, compression and data size
readNCharsAt(10,28,buf); // BMP.wBitsPerPixel + BMP.dwCompression + BMP.dwDataSize
if(WORD(buf,0)!=1) return BMP_NOT_1BPP; // not a 1bpp bitmap
if(LONG(buf,2)) return BMP_ERR_CMP; // not an UNcompressed bitmap
word datasize=WORD(buf,6);
// 2c. read information from bitmap header > data offset
readNCharsAt(4,10,buf); // BMP.dwDataOffset
word offset=WORD(buf,0);
// 2d. read information from bitmap header > dimensions
readNCharsAt(8,18,buf); // BMP.dwWidth + BMP.dwHeight
byte w=(byte)buf[0];
if(w>LCDWIDTH) return BMP_TOO_BIG;
byte h=(byte)buf[4];
byte datalen=datasize/h;
// 3. read and draw bitmap data
buf[0]=w; buf[1]=1; // get bitmap data line by line
for(byte y=0; y<h; y++) {
readNCharsAt(datalen,offset+y*datalen,buf+2);
drawBitmap(x0, y0+(h-1)-y, buf); // and draw it!
}
return BMP_OK;
}
byte slide;
void updateSlide() {
int err;
gb.display.clear();
switch(slide) {
case 0:
err=drawBitmapFromSd(10,0,"ff.bmp");
break;
case 1:
err=drawBitmapFromSd(10,5,"d2.bmp");
err=drawBitmapFromSd(10,LCDHEIGHT-22,"d4.bmp");
err=drawBitmapFromSd(LCDWIDTH-17,5,"d4.bmp");
err=drawBitmapFromSd(LCDWIDTH-17,LCDHEIGHT-22,"d2.bmp");
break;
case 2:
err=drawBitmapFromSd(0,0,"358.bmp");
break;
case 3:
err=drawBitmapFromSd(0,0,"383.bmp");
break;
case 4:
err=drawBitmapFromSd(0,0,"400.bmp");
break;
} // switch(slide)
switch(err) {
case BMP_NO_FILE: gb.display.println(F("bitmap not found")); break;
case BMP_NOT_WBM: gb.display.println(F("not a Windows bitmap")); break;
case BMP_NOT_1BPP: gb.display.println(F("not a monochrome bmp")); break;
case BMP_ERR_CMP: gb.display.println(F("compressed bitmap")); break;
case BMP_TOO_BIG: gb.display.println(F("bitmap too big")); break;
case BMP_OK: default: break;
} // switch(err)
gb.display.cursorX=0; gb.display.cursorY=LCDHEIGHT-gb.display.fontHeight;
gb.display.print(F("next bitmap \020 press \025"));
}
void setup() {
// put your setup code here, to run once:
gb.begin();
#ifndef debug
Serial.begin(9600); PFFS.begin(10, rx, tx); // initialize petit_fatfs
#endif
gb.titleScreen(F(" Draw bitmap from SD"), title);
gb.setFrameRate(10);
gb.display.persistence=true; // stop clearing screen at every gb.update()
updateSlide();
}
void loop() {
// put your main code here, to run repeatedly:
if(gb.update() && gb.buttons.pressed(BTN_A)) { slide=(slide+1)%5; updateSlide(); }
} // loop()
-
Duhjoker
-
- Posts: 446
- Joined: Sat Jul 02, 2016 4:57 am
- Location: Where Palm trees grow
Return to Programming Questions
Who is online
Users browsing this forum: No registered users and 2 guests