gameboy printer
Fork of HelloWorld by
Revision 9:f5dbcf0d30ba, committed 2018-03-21
- Comitter:
- spinal
- Date:
- Wed Mar 21 17:23:54 2018 +0000
- Parent:
- 8:82f64c4b9904
- Commit message:
- Use gameboy printer with pokitto
Changed in this revision
diff -r 82f64c4b9904 -r f5dbcf0d30ba PokittoLib.lib --- a/PokittoLib.lib Fri Dec 22 20:42:41 2017 +0000 +++ b/PokittoLib.lib Wed Mar 21 17:23:54 2018 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/users/Pokitto/code/PokittoLib/#fa6899411a24 +https://os.mbed.com/users/Pokitto/code/PokittoLib/#7d20a1e51908
diff -r 82f64c4b9904 -r f5dbcf0d30ba main.cpp --- a/main.cpp Fri Dec 22 20:42:41 2017 +0000 +++ b/main.cpp Wed Mar 21 17:23:54 2018 +0000 @@ -1,14 +1,168 @@ -// this might be better... -// https://github.com/davedarko/GBPrinter -// https://github.com/davedarko/GBPrinter/blob/master/examples/GBPrinter/GBPrinter.ino #include "Pokitto.h" Pokitto::Core mygame; -uint8_t hadl[640] = { -0xEF, 0xFF, 0xF7, 0xF7, 0xE7, 0xB7, 0xC3, 0xC3, 0xF1, 0xE1, 0xFA, 0xFA, 0xFC, 0xFC, 0xFC, 0xFC, 0xFE, 0xFF, 0xFD, 0xFD, 0xFC, 0xFC, 0xF8, 0xF8, 0xF1, 0xB0, 0x0B, 0x0B, 0x07, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xBF, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x4E, 0x16, 0x25, 0x65, 0x67, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1C, 0x1E, 0xC9, 0xCC, 0x09, 0x89, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xF3, 0xF3, 0xF3, 0x33, 0x73, 0x92, 0x92, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x30, 0x30, 0x6E, 0x6E, 0xF8, 0x74, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFC, 0xFC, 0xFC, 0xE4, 0xE0, 0x48, 0x64, 0x4C, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC2, 0xC2, 0xB9, 0xB8, 0xE1, 0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x73, 0x73, 0x67, 0x33, 0x27, 0x37, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xCF, 0xB3, 0x12, 0x3E, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1C, 0x8C, 0x6C, 0x04, 0x64, 0x64, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x99, 0x01, 0x44, 0xCC, 0xCC, 0xCC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xDF, 0xDF, 0x9F, 0xDF, 0x0F, 0x0F, 0xC7, 0x86, 0xE8, 0xE8, 0xF0, 0xF0, 0xF0, 0xF0, 0xFB, 0xFF, 0xF7, 0xF7, 0xF2, 0xF2, 0xE1, 0xE1, 0xC7, 0xC3, 0x2F, 0x2F, 0x1F, 0x1F, 0x1F, 0x1F, 0xFD, 0xFF, 0xFD, 0xFD, 0xFC, 0xFC, 0xF2, 0xF2, 0xC2, 0xC2, 0xE7, 0xA7, 0xF7, 0xF7, 0xEF, 0xEF, 0xB7, 0xBF, 0x17, 0x17, 0x47, 0x47, 0x09, 0x09, 0x28, 0x28, 0xFC, 0xFC, 0xFD, 0xFD, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0xBF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x66, 0x64, 0x64, 0x64, 0x64, 0x64, 0x66, 0x64, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x49, 0xC9, 0xC9, 0xC9, 0xCD, 0x08, 0x0C, 0x4E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF3, 0xF0, 0x93, 0x13, 0x33, 0x73, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x72, 0xE6, 0x66, 0x26, 0x26, 0x60, 0x30, 0x92, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x4C, 0x4C, 0x4C, 0x48, 0x64, 0x64, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x99, 0x99, 0x99, 0x99, 0x81, 0xC1, 0x89, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x27, 0x27, 0x07, 0xAF, 0x89, 0x09, 0x89, 0x89, 0x9F, 0x9F, 0x3F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0x3E, 0x3E, 0x3E, 0xB3, 0x02, 0x87, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, 0x64, 0x64, 0x64, 0x4C, 0x24, 0x1C, 0x8C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0xFE, 0xF4, 0xF4, 0xF1, 0xF1, 0xC8, 0xC8, 0x08, 0x08, 0x9F, 0x9F, 0xDF, 0xDF, 0xBF, 0xBF, 0xDF, 0xFF, 0x5F, 0x5F, 0x1F, 0x1F, 0x27, 0x27, 0xA1, 0xA1, 0xF2, 0xF2, 0xF7, 0xF7, 0xFB, 0xFB, +#include <stdint.h> + +//Total colors 4 +const uint16_t sprite_pal[] = { +59196,35953,14823,0, }; +const uint8_t sprite[] = +{ +160,144, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,85,85,85,85,85,85,85,85,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,85,85,85,85,85,85,85,85,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,85,85,85,85,85,85,85,85,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,85,85,85,85,85,85,85,85,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,85,85,0,0,0,0,85,85,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,85,85,0,0,0,0,85,85,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,85,85,0,0,0,0,85,85,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,85,85,0,0,0,0,85,85,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,85,0,0,85,0,0,85,0,0,85,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,85,0,0,85,0,0,85,0,0,85,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,85,0,0,85,0,0,85,0,0,85,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,85,0,0,85,0,0,85,0,0,85,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,0,0,0,0,0,0,0, +0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0, +0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0, +0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0, +0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0, +0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0, +0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0, +0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0, +0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0,85,0,0,85,170,170,170,85,0,0,85,0,0,0,0,0,0, +0,0,0,0,0,0,0,85,85,85,170,170,170,85,0,0,0,85,85,85,85,85,85,0,0,0,85,170,170,170,85,85,85,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,85,85,85,170,170,170,85,0,0,0,85,85,85,85,85,85,0,0,0,85,170,170,170,85,85,85,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,85,85,85,170,170,170,85,0,0,0,85,85,85,85,85,85,0,0,0,85,170,170,170,85,85,85,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,85,85,85,170,170,170,85,0,0,0,85,85,85,85,85,85,0,0,0,85,170,170,170,85,85,85,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0,0,0,0,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,85,85,85,85,85,85,85,85,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,85,85,85,85,85,85,85,85,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,85,85,85,85,85,85,85,85,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,85,85,85,85,85,85,85,85,85,85,85,85,85,85,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,85,85,85,85,85,85,170,170,170,85,85,85,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,85,85,85,85,85,85,170,170,170,85,85,85,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,85,85,85,85,85,85,170,170,170,85,85,85,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,85,85,85,85,85,85,170,170,170,85,85,85,170,85,85,85,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,85,85,85,85,85,85,170,170,170,85,85,85,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,85,85,85,85,85,85,170,170,170,85,85,85,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,85,85,85,85,85,85,170,170,170,85,85,85,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,85,85,85,85,85,85,170,170,170,85,85,85,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,85,85,85,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,85,85,85,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,85,85,85,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,85,85,85,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,85,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,170,170,170,170,170,170,85,85,85,170,170,170,170,170,170,170,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,170,170,170,170,170,170,85,85,85,170,170,170,170,170,170,170,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,170,170,170,170,170,170,85,85,85,170,170,170,170,170,170,170,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,170,170,170,170,170,170,85,85,85,170,170,170,170,170,170,170,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,170,170,170,170,170,170,170,170,170,170,170,170,170,170,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,85,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; + + + + +int px,py=0; + char respond[] = {0, 0}; //The 2 byte response we always get DigitalInOut datClk(P0_11); @@ -17,6 +171,7 @@ unsigned short checksum = 0; int whichChar = 0; +bool isPrinter=0; void sendByte(unsigned char byteToSend) { @@ -56,15 +211,111 @@ } wait_us(200); } + wait_us(500); } void sendChecksum() { unsigned short lineChecksum = checksum; //Grab the state of checksum so we don't change it while sending sendByte(lineChecksum & 0xFF); //Send checksum low byte sendByte(lineChecksum >> 8); //Send checksum high byte +} + +void sendHeader(){ + sendByte(0x88); // magic + sendByte(0x33); // magic + checksum = 0; // reset checksum +} + +void initPrinter(){ + sendHeader(); + sendByte(0x01); // 1 = init printer + sendByte(0x00); // compression, 0 = none, 1 = RLE + sendByte(0x00); // data length + sendByte(0x00); // data length 2nd byte + sendChecksum(); getResponse(); } +void printLine(){ + sendHeader(); + sendByte(0x04); // 4 = Send some print data + sendByte(0x00); // compression, 0 = none, 1 = RLE + // send 0x280 which is 640, the maximum data allowed at a time + sendByte(0x80); // data length + sendByte(0x02); // data length 2nd byte + /* + for(int t=0; t<640; t++){ + //sendByte(hadl[t]); // test data + sendByte(sprite[t+2]); // test data + } + */ + + int x1,y1,p1,p2,p3,p4,p5,p6,p7,p8,fullPixel; + for(int line=0; line<2; line++){ + for(int block=0; block<20; block++){ + for(int row=0; row<8; row++){ + fullPixel = 0; + x1 = px+(block*8); + y1 = py+(line*8)+row; + p1 = (mygame.display.getPixel(x1, y1)&2)>>1; + p2 = (mygame.display.getPixel(x1+1, y1)&2)>>1; + p3 = (mygame.display.getPixel(x1+2, y1)&2)>>1; + p4 = (mygame.display.getPixel(x1+3, y1)&2)>>1; + p5 = (mygame.display.getPixel(x1+4, y1)&2)>>1; + p6 = (mygame.display.getPixel(x1+5, y1)&2)>>1; + p7 = (mygame.display.getPixel(x1+6, y1)&2)>>1; + p8 = (mygame.display.getPixel(x1+7, y1)&2)>>1; + // getPixel is currently broken, so were-combine the pixels in a different order. + fullPixel = (p4<<7)+(p3<<6)+(p2<<5)+(p1<<4)+(p8<<3)+(p7<<2)+(p6<<1)+p5; + sendByte(fullPixel); + + p1 = mygame.display.getPixel(x1, y1)&1; + p2 = mygame.display.getPixel(x1+1, y1)&1; + p3 = mygame.display.getPixel(x1+2, y1)&1; + p4 = mygame.display.getPixel(x1+3, y1)&1; + p5 = mygame.display.getPixel(x1+4, y1)&1; + p6 = mygame.display.getPixel(x1+5, y1)&1; + p7 = mygame.display.getPixel(x1+6, y1)&1; + p8 = mygame.display.getPixel(x1+7, y1)&1; + fullPixel = (p4<<7)+(p3<<6)+(p2<<5)+(p1<<4)+(p8<<3)+(p7<<2)+(p6<<1)+p5; + + sendByte(fullPixel); + } + } + } + + sendChecksum(); + getResponse(); + // end data statement + sendHeader(); + sendByte(0x04); // + sendByte(0x00); // + sendByte(0x00); // + sendByte(0x00); // + sendChecksum(); + getResponse(); + + sendByte(0x88); // Magic bytes + sendByte(0x33); + checksum = 0; + sendByte(0x02); // Commande 2 (Print) + sendByte(0x00); + sendByte(0x04); // 4 bytes to send + sendByte(0x00); + sendByte(0x01); // 1 = print, 0 = line feed + if(py/16==8){ + sendByte(0x03); // Marges (nibbles avant 1, après 3) + }else{ + sendByte(0x00); // Marges (nibbles avant 1, après 3) + } + sendByte(0xE4); // Palette (11100100: Noir, Foncé, Clair, Blanc) + sendByte(0x40); // Expo (7 bits) + + sendChecksum(); + getResponse(); + +} + int main () { mygame.begin(); @@ -83,137 +334,54 @@ //printShape(1); // test! mygame.display.persistence = 1; - mygame.display.clear(); - mygame.display.print("Printer Test\n"); +// mygame.display.clear(); +// mygame.display.print("Printer Test\n"); + + mygame.display.drawBitmap(0,0,sprite); + mygame.display.load565Palette(sprite_pal); + while (mygame.isRunning()) { - if (mygame.update()) { + if (mygame.update()) { + + if (mygame.buttons.bBtn()){ + mygame.display.drawBitmap(0,0,sprite); + py=0; + } + if (mygame.buttons.aBtn()){ - mygame.display.print("Sending init code\n"); - mygame.display.update(); - - sendByte(0x88); // magic - sendByte(0x33); // magic - checksum = 0; - sendByte(0x01); // 1 = init printer - sendByte(0x00); // compression, 0 = none, 1 = RLE - sendByte(0x00); // data length - sendByte(0x00); // data length 2nd byte - int temp = checksum; - sendByte(temp & 0xFF); // checksum 2nd byte - sendByte(temp >> 8); // checksum - getResponse(); - - mygame.display.print("Done\n"); - - char tempText[20]; - sprintf(tempText,"Response = %#04x, %#04x\n", respond[0], respond[1]); - mygame.display.print(tempText); - + initPrinter(); + py=0; if(respond[0]==0x81 && respond[1]==0x00){ - mygame.display.print("OK, Proceed\n"); - mygame.display.update(); - - // send test data - sendByte(0x88); // magic - sendByte(0x33); // magic - checksum = 0; - sendByte(0x04); // 4 = Send some print data - sendByte(0x00); // compression, 0 = none, 1 = RLE - // send 0x280 which is 640, the maximum data allowed at a time - sendByte(0x80); // data length - sendByte(0x02); // data length 2nd byte - for(int t=0; t<640; t++){ - sendByte(hadl[t]); // test data - } - temp = checksum; - sendByte(temp & 0xFF); // checksum 2nd byte - sendByte(temp >> 8); // checksum - getResponse(); - - sprintf(tempText,"Response = %#04x, %#04x\n", respond[0], respond[1]); - mygame.display.print(tempText); - mygame.display.update(); - - // end data statement - sendByte(0x88); // magic - sendByte(0x33); // magic - checksum = 0; - sendByte(0x04); // - sendByte(0x00); // - sendByte(0x00); // - sendByte(0x00); // - temp = checksum; - sendByte(temp & 0xFF); // checksum 2nd byte - sendByte(temp >> 8); // checksum - getResponse(); + isPrinter=1; + } + + + if(isPrinter){ + int t=0; + while(t<9){ + + wait_ms(300); + sendByte(0x88); // magic + sendByte(0x33); // magic + checksum = 0; + sendByte(0x0F); // + sendByte(0x00); // + sendByte(0x00); // + sendByte(0x00); // + sendChecksum(); + getResponse(); + + if(!(respond[1]&0x0B)){ + printLine(); + py+=16; + t++; + } + } // t - sprintf(tempText,"Response = %#04x, %#04x\n", respond[0], respond[1]); - mygame.display.print(tempText); - mygame.display.update(); - - sendByte(0x88); // Magic bytes - sendByte(0x33); - checksum = 0; - sendByte(0x02); // Commande 2 (Print) - sendByte(0x00); - sendByte(0x04); // 4 bytes to send - sendByte(0x00); - sendByte(0x01); // 1 = print, 0 = line feed - sendByte(0x13); // Marges (nibbles avant 1, après 3) - sendByte(0xE4); // Palette (11100100: Noir, Foncé, Clair, Blanc) - sendByte(0x40); // Expo (7 bits) - - temp = checksum; - sendByte(temp & 0xFF); // checksum 2nd byte - sendByte(temp >> 8); // checksum - getResponse(); + - sprintf(tempText,"Response = %#04x, %#04x\n", respond[0], respond[1]); - mygame.display.print(tempText); - mygame.display.update(); - - bool waiting=1; - while(waiting){ - sendByte(0x88); // magic - sendByte(0x33); // magic - checksum = 0; - sendByte(0x0F); // - sendByte(0x00); // - sendByte(0x00); // - sendByte(0x00); // - temp = checksum; - sendByte(temp & 0xFF); // checksum 2nd byte - sendByte(temp >> 8); // checksum - getResponse(); - sprintf(tempText,"Response = %#04x, %#04x\n", respond[0], respond[1]); - mygame.display.print(tempText); - mygame.display.update(); - if(respond[1] & 2)waiting=0; - } - - waiting=1; - while(waiting){ - sendByte(0x88); // magic - sendByte(0x33); // magic - checksum = 0; - sendByte(0x0F); // - sendByte(0x00); // - sendByte(0x00); // - sendByte(0x00); // - temp = checksum; - sendByte(temp & 0xFF); // checksum 2nd byte - sendByte(temp >> 8); // checksum - getResponse(); - - sprintf(tempText,"Response = %#04x, %#04x\n", respond[0], respond[1]); - mygame.display.print(tempText); - mygame.display.update(); - if(!(respond[1] & 2))waiting=0; - } - - }else{ // show error log here if(respond[0] != 0x81){ @@ -222,9 +390,8 @@ mygame.display.print("Printer Error\n"); } } - mygame.display.update(); - wait(1); +// wait(1); } } }
diff -r 82f64c4b9904 -r f5dbcf0d30ba pictures.h --- a/pictures.h Fri Dec 22 20:42:41 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -const char picture[] = { - - //0 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - -0 - -};