├── layer_logos ├── pi.bmp ├── pi.pxf ├── base.bmp ├── base.pxf ├── game.bmp ├── game.pxf ├── raise.bmp ├── raise.pxf ├── coffee.bmp ├── coffee.pxf ├── exclaim.bmp ├── exclaim.pxf ├── lambda.bmp ├── lambda.pxf ├── integers.bmp └── integers.pxf ├── animation_frames ├── d2.bmp ├── d2.pxf ├── d4.bmp ├── d4.pxf ├── d6.bmp ├── d6.pxf ├── d8.bmp ├── d8.pxf ├── d10.bmp ├── d10.pxf ├── d12.bmp ├── d12.pxf ├── d20.bmp ├── d20.pxf ├── flower.pxf ├── frame01.bmp ├── frame02.bmp ├── frame03.bmp ├── frame04.bmp ├── frame05.bmp ├── frame06.bmp ├── frame07.bmp ├── frame08.bmp ├── frame09.bmp ├── frame10.bmp ├── frame11.bmp ├── frame12.bmp ├── frame13.bmp ├── frame14.bmp ├── frame15.bmp └── frame16.bmp ├── rules.mk ├── README.md ├── config.h ├── keymap.c └── frames.h /layer_logos/pi.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/pi.bmp -------------------------------------------------------------------------------- /layer_logos/pi.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/pi.pxf -------------------------------------------------------------------------------- /layer_logos/base.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/base.bmp -------------------------------------------------------------------------------- /layer_logos/base.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/base.pxf -------------------------------------------------------------------------------- /layer_logos/game.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/game.bmp -------------------------------------------------------------------------------- /layer_logos/game.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/game.pxf -------------------------------------------------------------------------------- /layer_logos/raise.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/raise.bmp -------------------------------------------------------------------------------- /layer_logos/raise.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/raise.pxf -------------------------------------------------------------------------------- /animation_frames/d2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d2.bmp -------------------------------------------------------------------------------- /animation_frames/d2.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d2.pxf -------------------------------------------------------------------------------- /animation_frames/d4.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d4.bmp -------------------------------------------------------------------------------- /animation_frames/d4.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d4.pxf -------------------------------------------------------------------------------- /animation_frames/d6.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d6.bmp -------------------------------------------------------------------------------- /animation_frames/d6.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d6.pxf -------------------------------------------------------------------------------- /animation_frames/d8.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d8.bmp -------------------------------------------------------------------------------- /animation_frames/d8.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d8.pxf -------------------------------------------------------------------------------- /layer_logos/coffee.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/coffee.bmp -------------------------------------------------------------------------------- /layer_logos/coffee.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/coffee.pxf -------------------------------------------------------------------------------- /layer_logos/exclaim.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/exclaim.bmp -------------------------------------------------------------------------------- /layer_logos/exclaim.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/exclaim.pxf -------------------------------------------------------------------------------- /layer_logos/lambda.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/lambda.bmp -------------------------------------------------------------------------------- /layer_logos/lambda.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/lambda.pxf -------------------------------------------------------------------------------- /animation_frames/d10.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d10.bmp -------------------------------------------------------------------------------- /animation_frames/d10.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d10.pxf -------------------------------------------------------------------------------- /animation_frames/d12.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d12.bmp -------------------------------------------------------------------------------- /animation_frames/d12.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d12.pxf -------------------------------------------------------------------------------- /animation_frames/d20.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d20.bmp -------------------------------------------------------------------------------- /animation_frames/d20.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/d20.pxf -------------------------------------------------------------------------------- /layer_logos/integers.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/integers.bmp -------------------------------------------------------------------------------- /layer_logos/integers.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/layer_logos/integers.pxf -------------------------------------------------------------------------------- /rules.mk: -------------------------------------------------------------------------------- 1 | EXTRAFLAGS += -flto 2 | OLED_DRIVER_ENABLE = yes 3 | UNICODEMAP_ENABLE = yes 4 | COMBO_ENABLE = yes -------------------------------------------------------------------------------- /animation_frames/flower.pxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/flower.pxf -------------------------------------------------------------------------------- /animation_frames/frame01.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame01.bmp -------------------------------------------------------------------------------- /animation_frames/frame02.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame02.bmp -------------------------------------------------------------------------------- /animation_frames/frame03.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame03.bmp -------------------------------------------------------------------------------- /animation_frames/frame04.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame04.bmp -------------------------------------------------------------------------------- /animation_frames/frame05.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame05.bmp -------------------------------------------------------------------------------- /animation_frames/frame06.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame06.bmp -------------------------------------------------------------------------------- /animation_frames/frame07.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame07.bmp -------------------------------------------------------------------------------- /animation_frames/frame08.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame08.bmp -------------------------------------------------------------------------------- /animation_frames/frame09.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame09.bmp -------------------------------------------------------------------------------- /animation_frames/frame10.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame10.bmp -------------------------------------------------------------------------------- /animation_frames/frame11.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame11.bmp -------------------------------------------------------------------------------- /animation_frames/frame12.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame12.bmp -------------------------------------------------------------------------------- /animation_frames/frame13.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame13.bmp -------------------------------------------------------------------------------- /animation_frames/frame14.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame14.bmp -------------------------------------------------------------------------------- /animation_frames/frame15.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame15.bmp -------------------------------------------------------------------------------- /animation_frames/frame16.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jvasilakes/keyboards/HEAD/animation_frames/frame16.bmp -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CRKBD 2 | 3 | See `keymap.c` for layer mappings. 4 | 5 | The right OLED will grow a sunflower as you type. The growth rate is 1 stage per 1000 keystrokes. 6 | This can be changed in `frames.h`. Press `KC_SPC` + `KC_ENT` to reset it. 7 | 8 | Under the `_GAME` layer there is a `_DICE` layer (far right thumb key) that allows you to roll a 9 | d{2,4,6,8,10,12,20}. Press `KC_SPC` to change dice and `KC_ENT` to roll. -------------------------------------------------------------------------------- /config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This is the c configuration file for the keymap 3 | 4 | Copyright 2012 Jun Wako 5 | Copyright 2015 Jack Humbert 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | #pragma once 22 | 23 | //#define USE_MATRIX_I2C 24 | 25 | /* Select hand configuration */ 26 | 27 | #define MASTER_LEFT 28 | // #define MASTER_RIGHT 29 | // #define EE_HANDS 30 | 31 | #define USE_SERIAL_PD2 32 | 33 | #define TAPPING_FORCE_HOLD 34 | #define TAPPING_TERM 100 35 | 36 | #define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" 37 | 38 | #define UNICODE_SELECTED_MODES UC_WINC, UC_LNX 39 | 40 | #define COMBO_COUNT 2 41 | 42 | // Must be set with EXTRAFLAGS += -flto in rules.mk 43 | #define NO_ACTION_MACRO 44 | #define NO_ACTION_FUNCTION -------------------------------------------------------------------------------- /keymap.c: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019 @foostan 3 | Copyright 2020 Drashna Jaelre <@drashna> 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 2 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include QMK_KEYBOARD_H 20 | #include 21 | #include 22 | #include "frames.h" 23 | 24 | uint16_t roll(uint16_t N); 25 | 26 | static int num_keypresses = 0; 27 | static int current_frame = 0; 28 | uint8_t die_idx = 0; 29 | uint16_t roll_result = 1; 30 | 31 | 32 | // Layers 33 | enum { 34 | _BASE, 35 | _SYM, 36 | _NUM, 37 | _GREEK, 38 | _MATH, 39 | _GAME, 40 | _WPN, 41 | _DICE 42 | }; 43 | 44 | enum custom_keycodes { 45 | NEXT_DIE = SAFE_RANGE, 46 | ROLL, 47 | }; 48 | 49 | enum combos { 50 | FLWR_RESET, // KC_SPC + KC_ENT 51 | FLWR_GROW, // KC_SPC + KC_K 52 | }; 53 | 54 | enum unicode_names { 55 | // GREEK 56 | ALPHA_LO, 57 | BETA_LO, 58 | GAMMA_UP, GAMMA_LO, 59 | DELTA_UP, DELTA_LO, 60 | EPS_LO, 61 | ZETA_LO, 62 | ETA_LO, 63 | THETA_UP, THETA_LO, 64 | IOTA_LO, 65 | KAPPA_LO, 66 | LAMBDA_UP, LAMBDA_LO, 67 | MU_LO, 68 | NU_LO, 69 | XI_UP, XI_LO, 70 | PI_UP, PI_LO, 71 | RHO_LO, 72 | SIG_UP, SIG_LO, 73 | TAU_LO, 74 | UPS_LO, 75 | PHI_UP, PHI_LO, 76 | CHI_LO, 77 | PSI_UP, PSI_LO, 78 | OMEG_UP, OMEG_LO, 79 | // MATH 80 | PLSMIN, 81 | GE, 82 | LE, 83 | COMPLEX, 84 | INTS, 85 | NATURAL, 86 | NUL, 87 | RAT, 88 | REAL, 89 | IN, 90 | NIN, 91 | DEL, 92 | NABLA, 93 | INTEG, 94 | }; 95 | 96 | const uint32_t PROGMEM unicode_map[] = { 97 | // GREEK 98 | [ALPHA_LO] = 0x03B1, 99 | [BETA_LO] = 0x03B2, 100 | [GAMMA_UP] = 0x0393, [GAMMA_LO] = 0x03B3, 101 | [DELTA_UP] = 0x0394, [DELTA_LO] = 0x03B4, 102 | [EPS_LO] = 0x03B5, 103 | [ZETA_LO] = 0x03B6, 104 | [ETA_LO] = 0x03B7, 105 | [THETA_UP] = 0x0398, [THETA_LO] = 0x03B8, 106 | [IOTA_LO] = 0x03B9, 107 | [KAPPA_LO] = 0x03BA, 108 | [LAMBDA_UP] = 0x039B, [LAMBDA_LO] = 0x03BB, 109 | [MU_LO] = 0x03BC, 110 | [NU_LO] = 0x03BD, 111 | [XI_UP] = 0x039E, [XI_LO] = 0x03BE, 112 | [PI_UP] = 0x03A0, [PI_LO] = 0x03C0, 113 | [RHO_LO] = 0x03C1, 114 | [SIG_UP] = 0x03A3, [SIG_LO] = 0x03C3, 115 | [TAU_LO] = 0x03C4, 116 | [UPS_LO] = 0x03C5, 117 | [PHI_UP] = 0x03A6, [PHI_LO] = 0x03C6, 118 | [CHI_LO] = 0x03C7, 119 | [PSI_UP] = 0x03A8, [PSI_LO] = 0x03C8, 120 | [OMEG_UP] = 0x03A9, [OMEG_LO] = 0x03A9, 121 | // MATH 122 | [PLSMIN] = 0x00B1, 123 | [GE] = 0x2265, 124 | [LE] = 0x2264, 125 | [COMPLEX] = 0x2102, 126 | [INTS] = 0x2124, 127 | [NATURAL] = 0x2115, 128 | [NUL] = 0x2205, 129 | [RAT] = 0x211A, 130 | [REAL] = 0x211D, 131 | [IN] = 0x2208, 132 | [NIN] = 0x2209, 133 | [DEL] = 0x2202, 134 | [NABLA] = 0x2207, 135 | [INTEG] = 0x222B, 136 | }; 137 | 138 | const uint16_t PROGMEM flwr_combo[] = {KC_SPC, KC_ENT, COMBO_END}; 139 | const uint16_t PROGMEM flwr_grow[] = {KC_SPC, KC_K, COMBO_END}; 140 | combo_t key_combos[COMBO_COUNT] = { 141 | [FLWR_RESET] = COMBO_ACTION(flwr_combo), 142 | [FLWR_GROW] = COMBO_ACTION(flwr_grow), 143 | }; 144 | 145 | 146 | const uint16_t dice[7] = {2, 4, 6, 8, 10, 12, 20}; 147 | 148 | 149 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 150 | /* 151 | // BASE, workman layout 152 | [0] = LAYOUT_split_3x6_3( 153 | //,-----------------------------------------------------. ,-----------------------------------------------------. 154 | KC_ESC, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, KC_BSPC, 155 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 156 | KC_TAB, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_SCLN, 157 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 158 | KC_LSPO, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, 159 | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 160 | KC_LCTL, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT 161 | //`--------------------------' `--------------------------' 162 | ), 163 | */ 164 | // BASE 165 | [_BASE] = LAYOUT_split_3x6_3( 166 | //,-----------------------------------------------------. ,-----------------------------------------------------. 167 | KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 168 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 169 | KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 170 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 171 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, 172 | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 173 | KC_LCTL, MO(_SYM), KC_SPC, KC_ENT, MO(_NUM), KC_LALT 174 | //`--------------------------' `--------------------------' 175 | ), 176 | 177 | // SYM 178 | [_SYM] = LAYOUT_split_3x6_3( 179 | //,-----------------------------------------------------. ,-----------------------------------------------------. 180 | KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, KC_BSLS, 181 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 182 | KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LPRN, KC_RPRN, 183 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 184 | KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LBRC, KC_RBRC, 185 | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 186 | KC_LGUI, KC_TRNS, KC_SPC, KC_ENT, UC_MOD, KC_TRNS 187 | //`--------------------------' `--------------------------' 188 | ), 189 | 190 | // NUM 191 | [_NUM] = LAYOUT_split_3x6_3( 192 | //,-----------------------------------------------------. ,-----------------------------------------------------. 193 | KC_PSLS, KC_PAST, KC_PEQL, KC_7, KC_8, KC_9, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, 194 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 195 | KC_PMNS, KC_PPLS, KC_PDOT, KC_4, KC_5, KC_6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 196 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 197 | KC_CIRC, KC_PERC, KC_0, KC_1, KC_2, KC_3, UC_MOD, KC_NO, KC_NO, MO(_GREEK),MO(_MATH),TG(_GAME), 198 | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 199 | KC_TRNS, UC_MOD, KC_SPC, KC_ENT, KC_TRNS, KC_TRNS 200 | //`--------------------------' `--------------------------' 201 | ), 202 | 203 | // GREEK 204 | [_GREEK] = LAYOUT_split_3x6_3( 205 | //,----------------------------------------------------------------------------------------------------------. ,---------------------------------------------------------------------------------------------------. 206 | KC_NO, KC_NO, KC_NO, X(EPS_LO), X(RHO_LO), X(TAU_LO), X(UPS_LO), XP(THETA_LO,THETA_UP), X(IOTA_LO), KC_O, XP(PI_LO,PI_UP), KC_NO, 207 | //|--------+------------+------------------+----------------------+------------------+-----------------------| |-----------+-----------------------+-----------+-------------------------+----------------+--------| 208 | KC_NO, X(ALPHA_LO), XP(SIG_LO,SIG_UP), XP(DELTA_LO,DELTA_UP), XP(PHI_LO,PHI_UP), XP(GAMMA_LO,GAMMA_UP), X(ETA_LO), XP(XI_UP,XI_LO), X(KAPPA_LO), XP(LAMBDA_LO,LAMBDA_UP), KC_NO, KC_RSFT, 209 | //|--------+------------+------------------+----------------------+------------------+-----------------------| |-----------+-----------------------+-----------+-------------------------+----------------+--------| 210 | KC_LSFT, X(ZETA_LO), X(CHI_LO), XP(PSI_LO,PSI_UP), XP(OMEG_LO,OMEG_UP), X(BETA_LO), X(NU_LO), X(MU_LO), KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, 211 | //|--------+------------+------------------+----------------------+------------------+-----------------------| |-----------+-----------------------+-----------+-------------------------+----------------+--------| 212 | KC_TAB, KC_NO, KC_SPC, KC_ENT, KC_TRNS, KC_NO 213 | //`--------------------------' `--------------------------' 214 | ), 215 | 216 | // MATH 217 | [_MATH] = LAYOUT_split_3x6_3( 218 | //,----------------------------------------------------------------------------------------------------------. ,---------------------------------------------------------------------------------------------------. 219 | KC_NO, X(RAT), KC_NO, XP(IN,NIN), X(REAL), KC_NO, KC_NO, KC_NO, KC_NO, X(NUL), KC_NO, KC_NO, 220 | //|--------+------------+------------------+----------------------+------------------+-----------------------| |-----------+-----------------------+-----------+-------------------------+----------------+--------| 221 | KC_NO, KC_NO, XP(SIG_UP,INTEG), XP(DEL,NABLA), XP(PHI_LO,PHI_UP), XP(GAMMA_LO,GAMMA_UP), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, 222 | //|--------+------------+------------------+----------------------+------------------+-----------------------| |-----------+-----------------------+-----------+-------------------------+----------------+--------| 223 | KC_LSFT, X(INTS), KC_NO, X(COMPLEX), KC_NO, KC_NO, X(NATURAL), KC_NO, X(LE), X(GE), KC_NO, KC_NO, 224 | //|--------+------------+------------------+----------------------+------------------+-----------------------| |-----------+-----------------------+-----------+-------------------------+----------------+--------| 225 | KC_TAB, KC_NO, KC_SPC, KC_ENT, KC_TRNS, KC_NO 226 | //`--------------------------' `--------------------------' 227 | ), 228 | // GAME 229 | [_GAME] = LAYOUT_split_3x6_3( 230 | //,-----------------------------------------------------. ,-----------------------------------------------------. 231 | KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_BSPC, 232 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 233 | KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 234 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 235 | KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_PGDN, KC_PGUP, KC_NO, KC_NO, KC_TRNS, 236 | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 237 | KC_LSFT, MO(_WPN), KC_SPC, KC_ENT, KC_TRNS, TG(_DICE) 238 | //`--------------------------' `--------------------------' 239 | ), 240 | 241 | // WPN 242 | [_WPN] = LAYOUT_split_3x6_3( 243 | //,-----------------------------------------------------. ,-----------------------------------------------------. 244 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 245 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 246 | KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 247 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 248 | KC_TRNS, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 249 | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 250 | KC_TRNS, KC_TRNS, KC_SPC, KC_ENT, KC_NO, KC_NO 251 | //`--------------------------' `--------------------------' 252 | ), 253 | 254 | [_DICE] = LAYOUT_split_3x6_3( 255 | //,-----------------------------------------------------. ,-----------------------------------------------------. 256 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 257 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 258 | KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 259 | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 260 | KC_TRNS, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 261 | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 262 | KC_TRNS, KC_TRNS, NEXT_DIE, ROLL, KC_TRNS, KC_TRNS 263 | //`--------------------------' `--------------------------' 264 | ) 265 | }; 266 | 267 | 268 | 269 | // Shift + Backspace for Delete 270 | // Initialize variable holding the binary representation of active modifiers. 271 | uint8_t mod_state; 272 | char roll_str[5] = {}; 273 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { 274 | if (record->event.pressed) { 275 | num_keypresses = num_keypresses + 1; 276 | if (current_frame < (ANIM_FRAMES - 1)) { 277 | if (num_keypresses % GROW_RATE == 0) { 278 | current_frame = current_frame + 1; 279 | } 280 | } 281 | } 282 | // Store the current modifier state in the variable for later reference 283 | mod_state = get_mods(); 284 | switch (keycode) { 285 | 286 | case KC_BSPC: 287 | { 288 | // Initialize a boolean variable that keeps track 289 | // of the delete key status: registered or not? 290 | static bool delkey_registered; 291 | if (record->event.pressed) { 292 | // Detect the activation of either shift keys 293 | if (mod_state & MOD_MASK_SHIFT) { 294 | // First temporarily canceling both shifts so that 295 | // shift isn't applied to the KC_DEL keycode 296 | del_mods(MOD_MASK_SHIFT); 297 | register_code(KC_DEL); 298 | // Update the boolean variable to reflect the status of KC_DEL 299 | delkey_registered = true; 300 | // Reapplying modifier state so that the held shift key(s) 301 | // still work even after having tapped the Backspace/Delete key. 302 | set_mods(mod_state); 303 | return false; 304 | } 305 | } else { // on release of KC_BSPC 306 | // In case KC_DEL is still being sent even after the release of KC_BSPC 307 | if (delkey_registered) { 308 | unregister_code(KC_DEL); 309 | delkey_registered = false; 310 | return false; 311 | } 312 | } 313 | // Let QMK process the KC_BSPC keycode as usual outside of shift 314 | return true; 315 | } 316 | case TG(_DICE): 317 | { 318 | if (record->event.pressed) { 319 | } else { 320 | oled_clear(); 321 | } 322 | } 323 | case NEXT_DIE: 324 | { 325 | if (record->event.pressed) { 326 | if (die_idx < (DICE_FRAMES - 1)) { 327 | die_idx = die_idx + 1; 328 | } else { 329 | die_idx = 0; 330 | } 331 | } 332 | break; 333 | } 334 | case ROLL: 335 | { 336 | if (record->event.pressed) { 337 | roll_result = roll(dice[die_idx]); 338 | snprintf(roll_str, sizeof(roll_str), "%d ", roll_result); 339 | } 340 | } 341 | } 342 | return true; 343 | }; 344 | 345 | uint16_t roll(uint16_t n) { 346 | if ((n - 1) >= RAND_MAX) { 347 | return rand(); 348 | } else { 349 | // Chop off all of the values that would cause skew... 350 | int end = RAND_MAX / n; // truncate skew 351 | //assert (end > 0); 352 | end *= n; 353 | 354 | // ... and ignore results from rand() that fall above that limit. 355 | // (Worst case the loop condition should succeed 50% of the time, 356 | // so we can expect to bail out of this loop pretty quickly.) 357 | int r; 358 | while ((r = rand()) >= end); 359 | 360 | return (r % n) + 1; 361 | } 362 | } 363 | 364 | 365 | #ifdef OLED_DRIVER_ENABLE 366 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { 367 | srand(time(0)); // seed random for ROLL 368 | return OLED_ROTATION_270; 369 | } 370 | 371 | 372 | void process_combo_event(uint16_t combo_index, bool pressed) { 373 | switch(combo_index) { 374 | case FLWR_RESET: 375 | if (pressed) { 376 | num_keypresses = 0; 377 | current_frame = 0; 378 | } 379 | break; 380 | case FLWR_GROW: 381 | if (pressed) { 382 | if (current_frame < (ANIM_FRAMES - 1)) { 383 | current_frame = current_frame + 1; 384 | } 385 | } 386 | break; 387 | } 388 | } 389 | 390 | char die_str[4] = {}; 391 | void oled_render_layer_state(void) { 392 | // oled_write_P(PSTR("Layer: "), false); 393 | oled_set_cursor(0, 6); 394 | switch (get_highest_layer(layer_state)) { 395 | case _BASE: 396 | oled_write_raw_P(base_logo, LOGO_SIZE); 397 | break; 398 | case _SYM: 399 | oled_write_raw_P(sym_logo, LOGO_SIZE); 400 | break; 401 | case _NUM: 402 | oled_write_raw_P(num_logo, LOGO_SIZE); 403 | break; 404 | case _GREEK: 405 | oled_write_raw_P(greek_logo, LOGO_SIZE); 406 | break; 407 | case _MATH: 408 | oled_write_raw_P(math_logo, LOGO_SIZE); 409 | break; 410 | case _GAME: 411 | oled_scroll_off(); 412 | oled_write_raw_P(game_logo, LOGO_SIZE); 413 | break; 414 | case _WPN: 415 | oled_write_raw_P(game_logo, LOGO_SIZE); 416 | oled_scroll_right(); 417 | break; 418 | case _DICE: 419 | oled_set_cursor(2, 4); 420 | oled_write(roll_str, false); 421 | oled_set_cursor(0, 6); 422 | oled_write_raw_P(dice_frames[die_idx], LOGO_SIZE); 423 | snprintf(die_str, sizeof(die_str), "d%d ", dice[die_idx]); 424 | oled_set_cursor(2, 11); 425 | oled_write(die_str, false); 426 | break; 427 | } 428 | } 429 | 430 | 431 | void oled_render_animation_phase(void) { 432 | oled_write_raw_P(plant_anim[current_frame], ANIM_SIZE); 433 | } 434 | 435 | 436 | void oled_task_user(void) { 437 | if (is_master) { 438 | oled_render_layer_state(); 439 | } else { 440 | oled_render_animation_phase(); 441 | } 442 | } 443 | 444 | #endif // OLED_DRIVER_ENABLE 445 | -------------------------------------------------------------------------------- /frames.h: -------------------------------------------------------------------------------- 1 | #define ANIM_FRAMES 7 2 | #define DICE_FRAMES 7 3 | #define ANIM_SIZE 512 4 | #define GROW_RATE 1000 5 | #define LOGO_SIZE 128 6 | 7 | 8 | static const char PROGMEM plant_anim[ANIM_FRAMES][ANIM_SIZE] = { 9 | { 10 | // 'frame01, 32x128px 11 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 12 | 0x10, 0xc0, 0xe4, 0xe0, 0xf0, 0xf0, 0xf7, 0xf0, 0xf0, 0xf0, 0xe4, 0xe0, 0xc0, 0x10, 0x08, 0x40, 13 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x48, 0x00, 14 | 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x88, 15 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 16 | 0x02, 0x00, 0x01, 0x09, 0x03, 0x03, 0xfb, 0x03, 0x03, 0x0b, 0x01, 0x01, 0x00, 0x02, 0x04, 0x00, 17 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 19 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 20 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 21 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 22 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 23 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 24 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 25 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 26 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 27 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 28 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 29 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 30 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 31 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 32 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 33 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 34 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 35 | 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x20, 36 | 0xd0, 0xf0, 0xe0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 37 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 38 | 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 39 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 40 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 41 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 42 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 43 | },{ 44 | // 'frame05, 32x128px 45 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 46 | 0x10, 0xc0, 0xe4, 0xe0, 0xf0, 0xf0, 0xf7, 0xf0, 0xf0, 0xf0, 0xe4, 0xe0, 0xc0, 0x10, 0x08, 0x40, 47 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x48, 0x00, 48 | 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x88, 49 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 50 | 0x02, 0x00, 0x01, 0x09, 0x03, 0x03, 0xfb, 0x03, 0x03, 0x0b, 0x01, 0x01, 0x00, 0x02, 0x04, 0x00, 51 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 52 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 53 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 54 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 55 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 56 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 57 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 58 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 59 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 60 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 61 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 62 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 63 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 64 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 65 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 66 | 0x00, 0x80, 0xc0, 0x60, 0xd0, 0xc8, 0xe8, 0x78, 0x38, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 67 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x06, 0x84, 68 | 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 69 | 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0x01, 70 | 0xff, 0xf8, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 71 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x88, 0xcc, 72 | 0x63, 0xff, 0x44, 0x48, 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 73 | 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x03, 0x91, 0x89, 0x89, 0x44, 0x22, 74 | 0xfa, 0x8f, 0x0a, 0x14, 0x10, 0x20, 0x20, 0x20, 0x01, 0x01, 0x03, 0x02, 0x02, 0x02, 0x04, 0x00, 75 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x08, 76 | 0x04, 0x5f, 0x21, 0x22, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 77 | },{ 78 | // 'frame07, 32x128px 79 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 80 | 0x10, 0xc0, 0xe4, 0xe0, 0xf0, 0xf0, 0xf7, 0xf0, 0xf0, 0xf0, 0xe4, 0xe0, 0xc0, 0x10, 0x08, 0x40, 81 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x48, 0x00, 82 | 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x88, 83 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 84 | 0x02, 0x00, 0x01, 0x09, 0x03, 0x03, 0xfb, 0x03, 0x03, 0x0b, 0x01, 0x01, 0x00, 0x02, 0x04, 0x00, 85 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 86 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 87 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 88 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 89 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 90 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 91 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 92 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 93 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 94 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 95 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 96 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 97 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0xc0, 0x80, 0x80, 0x00, 98 | 0xf8, 0x8e, 0xc0, 0xe0, 0xf0, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 99 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0x40, 0x41, 0xc1, 0x83, 0x83, 100 | 0x1f, 0xff, 0xf0, 0x30, 0x78, 0x4c, 0x64, 0x76, 0x7a, 0x3a, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, 101 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x06, 0x02, 0x03, 102 | 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 103 | 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0x00, 104 | 0xff, 0xff, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 105 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x10, 0x90, 0x88, 0xcc, 106 | 0x63, 0xff, 0x44, 0x48, 0x48, 0x40, 0xa0, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x00, 107 | 0x00, 0x00, 0x00, 0x04, 0x04, 0x14, 0x0c, 0x06, 0x22, 0x2a, 0x13, 0x91, 0x89, 0x89, 0x44, 0x22, 108 | 0xfa, 0x8f, 0x0a, 0x14, 0x14, 0x20, 0x20, 0x20, 0x41, 0xa1, 0x23, 0x22, 0x42, 0x02, 0x04, 0x00, 109 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x21, 0x10, 0x11, 0x10, 0x08, 0x09, 110 | 0x04, 0xdf, 0x21, 0x22, 0x46, 0x06, 0x0a, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 111 | },{ 112 | // 'frame09, 32x128px 113 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 114 | 0x10, 0xc0, 0xe4, 0xe0, 0xf0, 0xf0, 0xf7, 0xf0, 0xf0, 0xf0, 0xe4, 0xe0, 0xc0, 0x10, 0x08, 0x40, 115 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x48, 0x00, 116 | 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x88, 117 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 118 | 0x02, 0x00, 0x01, 0x09, 0x03, 0x03, 0xfb, 0x03, 0x03, 0x0b, 0x01, 0x01, 0x00, 0x02, 0x04, 0x00, 119 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 120 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 121 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 122 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 123 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 124 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 125 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 126 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 127 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 128 | 0x40, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xc4, 0x88, 130 | 0x18, 0xff, 0x18, 0x88, 0x84, 0xc0, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x60, 0xa0, 0x60, 0xe0, 0xc1, 0x01, 132 | 0xff, 0xff, 0xc1, 0xe3, 0xd1, 0xe9, 0x7c, 0x3c, 0x1c, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 133 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x40, 0x40, 0x40, 0x41, 0xc1, 0x83, 0x83, 134 | 0x1f, 0xff, 0xf0, 0x31, 0x79, 0x6c, 0x66, 0x77, 0x7b, 0x3d, 0x1d, 0x0f, 0x07, 0x03, 0x01, 0x00, 135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x06, 0x02, 0xc3, 136 | 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 137 | 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0xff, 138 | 0xff, 0xff, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 139 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xa0, 0x20, 0x10, 0x10, 0x90, 0xc8, 0xef, 140 | 0x7f, 0xff, 0x64, 0x68, 0x48, 0x48, 0xa8, 0x88, 0x90, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x00, 141 | 0x00, 0x00, 0x00, 0x04, 0x04, 0x14, 0x0c, 0x06, 0x22, 0x2a, 0x13, 0x91, 0x89, 0x89, 0x44, 0x22, 142 | 0xfa, 0x8f, 0x0a, 0x14, 0x14, 0x20, 0x20, 0x20, 0x41, 0xa1, 0x23, 0x22, 0x42, 0x02, 0x04, 0x00, 143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x21, 0x10, 0x11, 0x10, 0x08, 0x09, 144 | 0x04, 0xdf, 0x21, 0x22, 0x46, 0x06, 0x0a, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 145 | },{ 146 | // 'frame11, 32x128px 147 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 148 | 0x10, 0xc0, 0xe4, 0xe0, 0xf0, 0xf0, 0xf7, 0xf0, 0xf0, 0xf0, 0xe4, 0xe0, 0xc0, 0x10, 0x08, 0x40, 149 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x48, 0x00, 150 | 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x88, 151 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 152 | 0x02, 0x00, 0x01, 0x09, 0x03, 0x03, 0xfb, 0x03, 0x03, 0x0b, 0x01, 0x01, 0x00, 0x02, 0x04, 0x00, 153 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 154 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 158 | 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x43, 160 | 0xf6, 0x9c, 0x46, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x32, 0x76, 0x64, 162 | 0xc9, 0xfe, 0xc8, 0x64, 0x76, 0x32, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xc2, 0xe3, 0xe7, 0xa5, 0xa5, 0xc6, 0x8c, 164 | 0xfe, 0xff, 0x18, 0x8c, 0x4a, 0xa5, 0xa7, 0xe3, 0x61, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x70, 0xd0, 0xd0, 0xd0, 0xb0, 0xe0, 0xc1, 0x01, 166 | 0xff, 0xff, 0xc1, 0xa3, 0xd3, 0xe9, 0x75, 0x3c, 0x1c, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x40, 0x40, 0x41, 0x41, 0xc1, 0x83, 0x83, 168 | 0x1f, 0xff, 0xf0, 0x31, 0x79, 0x6c, 0x66, 0x77, 0x7b, 0x3d, 0x1d, 0x0f, 0x07, 0x03, 0x01, 0x00, 169 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x06, 0x02, 0xc3, 170 | 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 171 | 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0xff, 172 | 0xff, 0xff, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 173 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xa0, 0x20, 0x10, 0x10, 0x90, 0xc8, 0xef, 174 | 0x7f, 0xff, 0x64, 0x68, 0x48, 0x48, 0xa8, 0x88, 0x90, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x00, 175 | 0x00, 0x00, 0x00, 0x04, 0x04, 0x14, 0x0c, 0x06, 0x22, 0x2a, 0x13, 0x91, 0x89, 0x89, 0x44, 0x22, 176 | 0xfa, 0x8f, 0x0a, 0x14, 0x14, 0x20, 0x20, 0x20, 0x41, 0xa1, 0x23, 0x22, 0x42, 0x02, 0x04, 0x00, 177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x21, 0x10, 0x11, 0x10, 0x08, 0x09, 178 | 0x04, 0xdf, 0x21, 0x22, 0x46, 0x06, 0x0a, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 179 | },{ 180 | // 'frame13, 32x128px 181 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 182 | 0x10, 0xc0, 0xe4, 0xe0, 0xf0, 0xf0, 0xf7, 0xf0, 0xf0, 0xf0, 0xe4, 0xe0, 0xc0, 0x10, 0x08, 0x40, 183 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x48, 0x00, 184 | 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x88, 185 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 186 | 0x02, 0x00, 0x01, 0x09, 0x03, 0x03, 0xfb, 0x03, 0x03, 0x0b, 0x01, 0x01, 0x00, 0x02, 0x04, 0x00, 187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 190 | 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x2c, 0xa9, 0xf2, 0xdc, 192 | 0xae, 0x57, 0xae, 0xdc, 0xf2, 0xa9, 0x2c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 193 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11, 0x31, 0x20, 0x42, 194 | 0xf9, 0xef, 0xc1, 0x62, 0x20, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 195 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x12, 0x33, 0x33, 0x76, 0x64, 196 | 0xdf, 0xff, 0xcc, 0x66, 0x76, 0x32, 0x32, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 197 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xc2, 0xe3, 0xe7, 0xa5, 0xa5, 0xc6, 0x8c, 198 | 0xfe, 0xff, 0x18, 0x8c, 0x4a, 0xa5, 0xa7, 0xe3, 0x61, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 199 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x70, 0xd0, 0xd0, 0xd0, 0xb0, 0xe0, 0xc1, 0x01, 200 | 0xff, 0xff, 0xc1, 0xa3, 0xd3, 0xe9, 0x75, 0x3c, 0x1c, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x40, 0x40, 0x41, 0x41, 0xc1, 0x83, 0x83, 202 | 0x1f, 0xff, 0xf0, 0x31, 0x79, 0x6c, 0x66, 0x77, 0x7b, 0x3d, 0x1d, 0x0f, 0x07, 0x03, 0x01, 0x00, 203 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x06, 0x02, 0xc3, 204 | 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 205 | 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0xff, 206 | 0xff, 0xff, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xa0, 0x20, 0x10, 0x10, 0x90, 0xc8, 0xef, 208 | 0x7f, 0xff, 0x64, 0x68, 0x48, 0x48, 0xa8, 0x88, 0x90, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x00, 209 | 0x00, 0x00, 0x00, 0x04, 0x04, 0x14, 0x0c, 0x06, 0x22, 0x2a, 0x13, 0x91, 0x89, 0x89, 0x44, 0x22, 210 | 0xfa, 0x8f, 0x0a, 0x14, 0x14, 0x20, 0x20, 0x20, 0x41, 0xa1, 0x23, 0x22, 0x42, 0x02, 0x04, 0x00, 211 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x21, 0x10, 0x11, 0x10, 0x08, 0x09, 212 | 0x04, 0xdf, 0x21, 0x22, 0x46, 0x06, 0x0a, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 213 | },{ 214 | // frame16 215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 216 | 0x10, 0xc0, 0xe4, 0xe0, 0xf0, 0xf0, 0xf7, 0xf0, 0xf0, 0xf0, 0xe4, 0xe0, 0xc0, 0x10, 0x08, 0x40, 217 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x48, 0x00, 218 | 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x88, 219 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 220 | 0x02, 0x00, 0x01, 0x09, 0x03, 0x03, 0xfb, 0x03, 0x03, 0x0b, 0x01, 0x01, 0x00, 0x02, 0x04, 0x00, 221 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xa0, 0xd8, 0x78, 0xf0, 0xf0, 0xdc, 0xb8, 0xe0, 222 | 0xfc, 0xfe, 0xfc, 0xe0, 0xb8, 0xdc, 0xf0, 0xf0, 0x78, 0xd8, 0xa0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 223 | 0x00, 0x00, 0x00, 0x80, 0xc6, 0xde, 0xfe, 0xfd, 0xfb, 0xff, 0xbf, 0x5e, 0xaf, 0x57, 0xab, 0x57, 224 | 0x2b, 0x57, 0x2b, 0x57, 0xab, 0x57, 0xaf, 0x5e, 0xbf, 0xff, 0xfb, 0xfd, 0xfe, 0xde, 0xc6, 0x80, 225 | 0x00, 0x00, 0x00, 0x00, 0x19, 0x5d, 0x6f, 0xff, 0xbf, 0xff, 0xf8, 0x75, 0xca, 0x95, 0xaa, 0x94, 226 | 0xa8, 0x94, 0xa8, 0x94, 0xaa, 0x95, 0xca, 0x75, 0xf8, 0xff, 0xbf, 0xff, 0x6f, 0x5d, 0x19, 0x00, 227 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x05, 0x0b, 0x1e, 0x1f, 0x0f, 0x1b, 0x3d, 0x0f, 228 | 0xbf, 0x7f, 0x3f, 0x0f, 0x3d, 0x1b, 0x0f, 0x1f, 0x1e, 0x0b, 0x05, 0x03, 0x03, 0x00, 0x00, 0x00, 229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x12, 0x33, 0x33, 0x76, 0x64, 230 | 0xdf, 0xff, 0xcc, 0x66, 0x76, 0x32, 0x32, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 231 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xc2, 0xe3, 0xe7, 0xa5, 0xa5, 0xc6, 0x8c, 232 | 0xfe, 0xff, 0x18, 0x8c, 0x4a, 0xa5, 0xa7, 0xe3, 0x61, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 233 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x70, 0xd0, 0xd0, 0xd0, 0xb0, 0xe0, 0xc1, 0x01, 234 | 0xff, 0xff, 0xc1, 0xa3, 0xd3, 0xe9, 0x75, 0x3c, 0x1c, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 235 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x40, 0x40, 0x41, 0x41, 0xc1, 0x83, 0x83, 236 | 0x1f, 0xff, 0xf0, 0x31, 0x79, 0x6c, 0x66, 0x77, 0x7b, 0x3d, 0x1d, 0x0f, 0x07, 0x03, 0x01, 0x00, 237 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x06, 0x02, 0xc3, 238 | 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 239 | 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0xff, 240 | 0xff, 0xff, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 241 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xa0, 0x20, 0x10, 0x10, 0x90, 0xc8, 0xef, 242 | 0x7f, 0xff, 0x64, 0x68, 0x48, 0x48, 0xa8, 0x88, 0x90, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x00, 243 | 0x00, 0x00, 0x00, 0x04, 0x04, 0x14, 0x0c, 0x06, 0x22, 0x2a, 0x13, 0x91, 0x89, 0x89, 0x44, 0x22, 244 | 0xfa, 0x8f, 0x0a, 0x14, 0x14, 0x20, 0x20, 0x20, 0x41, 0xa1, 0x23, 0x22, 0x42, 0x02, 0x04, 0x00, 245 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x21, 0x10, 0x11, 0x10, 0x08, 0x09, 246 | 0x04, 0xdf, 0x21, 0x22, 0x46, 0x06, 0x0a, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 247 | } 248 | }; 249 | 250 | static const char PROGMEM game_logo[] = { 251 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 252 | 0x13, 0x16, 0x34, 0x6c, 0x88, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 253 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xf3, 254 | 0x9a, 0x0e, 0x07, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 255 | 0xc0, 0xf0, 0x3c, 0x0e, 0x87, 0x83, 0x03, 0x33, 0x33, 0x03, 0x83, 0x83, 0x03, 0x03, 0x03, 0x03, 256 | 0x03, 0x03, 0x03, 0xe3, 0xa3, 0xe3, 0x03, 0x3b, 0x2b, 0x3b, 0x03, 0x07, 0x0e, 0x3c, 0xf0, 0xc0, 257 | 0x03, 0x0f, 0x3c, 0x78, 0xe1, 0xc1, 0xc0, 0xcc, 0xcc, 0xc0, 0xc1, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 258 | 0xc0, 0xc0, 0xc0, 0xc0, 0xdc, 0xd4, 0xdc, 0xc0, 0xc7, 0xc5, 0xc7, 0xe0, 0x78, 0x3c, 0x0f, 0x03 259 | }; 260 | 261 | static const char PROGMEM base_logo[] = { 262 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 263 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x38, 0x64, 0xe0, 0xcf, 0xc0, 0xc2, 0xc2, 0x81, 0xb8, 0x87, 265 | 0x80, 0x81, 0x81, 0xc2, 0xc0, 0xcf, 0xc0, 0x64, 0x64, 0x38, 0xf0, 0x80, 0xc0, 0xc0, 0x80, 0x00, 266 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 267 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0x31, 0x60, 0x70, 0x3d, 0x1f, 268 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x18, 0x30, 0x20, 0x61, 0x63, 0x67, 0x4f, 0xcf, 0xdf, 0xdf, 269 | 0xdf, 0xdf, 0xdf, 0x5f, 0x5f, 0x7f, 0x7f, 0x37, 0x33, 0x19, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00 270 | }; 271 | 272 | static const char PROGMEM sym_logo[] = { 273 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 274 | 0xfe, 0xfe, 0xfe, 0xfe, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 275 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 276 | 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 277 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0x7f, 0x7f, 278 | 0x7f, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 279 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3e, 0x3e, 280 | 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 281 | }; 282 | 283 | static const char PROGMEM num_logo[] = { 284 | 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 285 | 0x60, 0x60, 0x60, 0x60, 0xe0, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0xe0, 0xe0, 0x00, 0x00, 0x00, 286 | 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 287 | 0x18, 0x0c, 0x06, 0x83, 0xc1, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 288 | 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x83, 0xc1, 0x60, 0x30, 0x18, 289 | 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 290 | 0x00, 0x00, 0x00, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 291 | 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00 292 | }; 293 | 294 | static const char PROGMEM greek_logo[] = { 295 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x0c, 0x0c, 0x0c, 0x1c, 0x7c, 0xf8, 296 | 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 297 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xff, 298 | 0xff, 0x7f, 0xfc, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 299 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0xff, 0x3f, 0x0f, 0x03, 300 | 0x00, 0x00, 0x01, 0x07, 0x3f, 0xff, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 301 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 302 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00 303 | }; 304 | 305 | static const char PROGMEM math_logo[] = { 306 | 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 307 | 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x00, 0x00, 0x00, 308 | 0x00, 0x00, 0x00, 0x0e, 0x07, 0x03, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 309 | 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 310 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 311 | 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 312 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1f, 0x1f, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 313 | 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1c, 0x0e, 0x03, 0x00, 0x00, 0x00 314 | }; 315 | 316 | 317 | static const char PROGMEM dice_frames[DICE_FRAMES][LOGO_SIZE] = { 318 | // d2, 32x32px 319 | { 320 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 321 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 322 | 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 323 | 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 324 | 0x00, 0x00, 0x00, 0x07, 0x0e, 0x1c, 0x14, 0x38, 0x38, 0x28, 0x70, 0x70, 0x70, 0x50, 0x70, 0x50, 325 | 0x70, 0x50, 0x50, 0x70, 0x50, 0x50, 0x70, 0x28, 0x28, 0x38, 0x14, 0x14, 0x0a, 0x07, 0x00, 0x00, 326 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 327 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 328 | },{ 329 | // d4 330 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x18, 0x04, 331 | 0x18, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 332 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x30, 0x08, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 333 | 0x00, 0x00, 0x00, 0x01, 0x06, 0x08, 0x30, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 334 | 0x00, 0x80, 0x60, 0x10, 0x0c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 335 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x60, 0x80, 0x00, 0x00, 336 | 0x00, 0x03, 0x03, 0x05, 0x05, 0x05, 0x05, 0x09, 0x09, 0x09, 0x09, 0x11, 0x11, 0x11, 0x11, 0x21, 337 | 0x11, 0x11, 0x11, 0x11, 0x09, 0x09, 0x09, 0x09, 0x05, 0x05, 0x05, 0x05, 0x03, 0x03, 0x00, 0x00 338 | },{ 339 | // d6 340 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x08, 0x08, 0x10, 341 | 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 342 | 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0c, 0x12, 0x11, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 343 | 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x11, 0x09, 0x06, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 344 | 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 345 | 0x02, 0xfe, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 346 | 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 347 | 0x40, 0x7f, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 348 | },{ 349 | // d8 350 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0xd0, 0x28, 0x1c, 0x06, 351 | 0x1c, 0x28, 0xd0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 352 | 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0x42, 0x31, 0x08, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 353 | 0x00, 0x00, 0x00, 0x01, 0x06, 0x08, 0x31, 0x42, 0x84, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 354 | 0x00, 0xff, 0x60, 0x10, 0x0c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 355 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x60, 0xff, 0x00, 0x00, 356 | 0x00, 0x01, 0x01, 0x03, 0x03, 0x05, 0x05, 0x09, 0x09, 0x11, 0x11, 0x21, 0x21, 0x41, 0x41, 0x81, 357 | 0x41, 0x41, 0x21, 0x21, 0x11, 0x11, 0x09, 0x09, 0x05, 0x05, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00 358 | },{ 359 | // d10 360 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xfe, 361 | 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 362 | 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x3f, 363 | 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 364 | 0x01, 0x03, 0x05, 0x09, 0x11, 0x22, 0x42, 0x82, 0x06, 0x19, 0x61, 0x80, 0x00, 0x00, 0x00, 0x00, 365 | 0x00, 0x00, 0x00, 0x80, 0x61, 0x19, 0x06, 0x82, 0x42, 0x22, 0x11, 0x09, 0x05, 0x03, 0x01, 0x00, 366 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x09, 0x16, 0x38, 0x60, 0x80, 367 | 0x60, 0x38, 0x16, 0x09, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 368 | },{ 369 | // d12 370 | 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 371 | 0xff, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x18, 0x60, 0x80, 0x00, 0x00, 372 | 0x00, 0xf0, 0x0e, 0x11, 0x10, 0x20, 0x20, 0x40, 0x40, 0xc0, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 373 | 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0xc0, 0x40, 0x40, 0x20, 0x20, 0x10, 0x11, 0x0e, 0xf0, 374 | 0x00, 0x1f, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x4c, 0x30, 0x20, 0x20, 0x20, 375 | 0x20, 0x20, 0x20, 0x20, 0x30, 0x4c, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x1f, 376 | 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x18, 0x14, 0x12, 0x21, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 377 | 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x21, 0x12, 0x14, 0x18, 0x04, 0x03, 0x00, 0x00, 0x00 378 | },{ 379 | // d 380 | 0x00, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x90, 0x90, 0x48, 0x28, 0x24, 0x14, 0x0a, 0x0a, 0x05, 381 | 0x0a, 0x0a, 0x14, 0x24, 0x28, 0x48, 0x90, 0x90, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 382 | 0xff, 0x01, 0x01, 0x82, 0x72, 0x0e, 0x13, 0x62, 0x82, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 383 | 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, 0x62, 0x13, 0x0e, 0x72, 0x82, 0x01, 0x01, 0xff, 0x00, 384 | 0xff, 0xe0, 0x9c, 0x83, 0x80, 0x80, 0x00, 0x00, 0x00, 0x03, 0x04, 0x18, 0x20, 0xc0, 0x00, 0x00, 385 | 0x00, 0xc0, 0x20, 0x18, 0x04, 0x03, 0x00, 0x00, 0x00, 0x80, 0x80, 0x83, 0x9c, 0xe0, 0xff, 0x00, 386 | 0x00, 0x01, 0x02, 0x02, 0x04, 0x04, 0x09, 0x09, 0x11, 0x11, 0x21, 0x22, 0x42, 0x42, 0x83, 0xfe, 387 | 0x83, 0x42, 0x42, 0x22, 0x21, 0x11, 0x11, 0x09, 0x09, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00 388 | } 389 | }; 390 | --------------------------------------------------------------------------------