Yoshiyuki Uehara / Mbed 2 deprecated Maple

Dependencies:   mbed

Committer:
uehara00
Date:
Sun Oct 30 21:20:23 2011 +0000
Revision:
3:eec13a411e94
Parent:
2:299a1c9a5795
OLED(MARY-OB) drivers and demonstrations are added.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
uehara00 3:eec13a411e94 1 //copyright 2011 Uehara Yoshiyuki
uehara00 3:eec13a411e94 2 //====================================================================
uehara00 3:eec13a411e94 3 //The author provide the programs without any guarantees or warranty.
uehara00 3:eec13a411e94 4 //The author is not responsible for any damage or losses of any kind
uehara00 3:eec13a411e94 5 //caused by using or misusing of the programs.
uehara00 3:eec13a411e94 6 //The author is under no obligation to provide support, service,
uehara00 3:eec13a411e94 7 //corrections, or upgrades to the programs.
uehara00 3:eec13a411e94 8 //====================================================================
uehara00 3:eec13a411e94 9 // MAPLE board[MARM01-BASE]
uehara00 3:eec13a411e94 10 // OLED(UG-2828GDEDF11, SSD1351) driver
uehara00 3:eec13a411e94 11 #include "Maple_OLED.h"
uehara00 3:eec13a411e94 12 #include "Maple.h"
uehara00 3:eec13a411e94 13 #include "mbed.h"
uehara00 3:eec13a411e94 14
uehara00 3:eec13a411e94 15 // create SPI for OLED in SLOT-1/2 of MARM01-BASE
uehara00 3:eec13a411e94 16 // 3-wire SPI and power-control, reset-control
uehara00 3:eec13a411e94 17 SPI OLED_spi(p5, p6, p7); // mosi, miso, sclk for SLOT-1/2
uehara00 3:eec13a411e94 18 DigitalOut OLED_cs1(p8); // cs for SLOT-1
uehara00 3:eec13a411e94 19 DigitalOut OLED_power1(p11); // power-on for SLOT-1(GPIO2)
uehara00 3:eec13a411e94 20 DigitalOut OLED_reset1(p30); // reset for SLOT-1(GPIO4)
uehara00 3:eec13a411e94 21 DigitalOut OLED_cs2(p26); // cs for SLOT-2
uehara00 3:eec13a411e94 22 DigitalOut OLED_power2(p17); // power-on for SLOT-2(GPIO2)
uehara00 3:eec13a411e94 23 DigitalOut OLED_reset2(p21); // reset for SLOT-2(GPIO4)
uehara00 3:eec13a411e94 24
uehara00 3:eec13a411e94 25 // global variables
uehara00 3:eec13a411e94 26 int OLED_color_a1; // foreground color a
uehara00 3:eec13a411e94 27 int OLED_color_b1; // foreground color b
uehara00 3:eec13a411e94 28 int OLED_color_c1; // forebround color c
uehara00 3:eec13a411e94 29 int OLED_color_a2; // background color a
uehara00 3:eec13a411e94 30 int OLED_color_b2; // background color b
uehara00 3:eec13a411e94 31 int OLED_color_c2; // background color c
uehara00 3:eec13a411e94 32 int OLED_cursor_x; // cursor position x (column-left)
uehara00 3:eec13a411e94 33 int OLED_cursor_y; // cursor position y (row-upper)
uehara00 3:eec13a411e94 34
uehara00 3:eec13a411e94 35 // assert cs for the OLED selected
uehara00 3:eec13a411e94 36 // slot: 1..SLOT-1, 2..SLOT-2
uehara00 3:eec13a411e94 37 void OLED_cs_assert(int slot) {
uehara00 3:eec13a411e94 38 switch(slot){
uehara00 3:eec13a411e94 39 case 1: OLED_cs1 = CS_ASSERT; break;
uehara00 3:eec13a411e94 40 case 2: OLED_cs2 = CS_ASSERT; break;
uehara00 3:eec13a411e94 41 }
uehara00 3:eec13a411e94 42 }
uehara00 3:eec13a411e94 43
uehara00 3:eec13a411e94 44 // negate cs for all OLEDs
uehara00 3:eec13a411e94 45 void OLED_cs_negate() {
uehara00 3:eec13a411e94 46 OLED_cs1 = CS_NEGATE;
uehara00 3:eec13a411e94 47 OLED_cs2 = CS_NEGATE;
uehara00 3:eec13a411e94 48 }
uehara00 3:eec13a411e94 49
uehara00 3:eec13a411e94 50 // OLED set column address
uehara00 3:eec13a411e94 51 // a: start address (0x00-0x7f, 0x00 by reset)
uehara00 3:eec13a411e94 52 // b: end address (0x00-0x7f, 0x7f by reset)
uehara00 3:eec13a411e94 53 void OLED_set_column_address(int a, int b) {
uehara00 3:eec13a411e94 54 OLED_spi.write(0x15);
uehara00 3:eec13a411e94 55 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 56 OLED_spi.write(0x100 | b);
uehara00 3:eec13a411e94 57 }
uehara00 3:eec13a411e94 58
uehara00 3:eec13a411e94 59 // OLED set row address
uehara00 3:eec13a411e94 60 // a: start address (0x00-0x7f, 0x00 by reset)
uehara00 3:eec13a411e94 61 // b: end address (0x00-0x7f, 0x7f by reset)
uehara00 3:eec13a411e94 62 void OLED_set_row_address(int a, int b) {
uehara00 3:eec13a411e94 63 OLED_spi.write(0x75);
uehara00 3:eec13a411e94 64 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 65 OLED_spi.write(0x100 | b);
uehara00 3:eec13a411e94 66 }
uehara00 3:eec13a411e94 67
uehara00 3:eec13a411e94 68 // OLED write RAM
uehara00 3:eec13a411e94 69 void OLED_write_ram_command() {
uehara00 3:eec13a411e94 70 OLED_spi.write(0x5c);
uehara00 3:eec13a411e94 71 }
uehara00 3:eec13a411e94 72
uehara00 3:eec13a411e94 73 // OLED read RAM .. not supported by SPI
uehara00 3:eec13a411e94 74 void OLED_read_ram_command() {
uehara00 3:eec13a411e94 75 OLED_spi.write(0x5d);
uehara00 3:eec13a411e94 76 }
uehara00 3:eec13a411e94 77
uehara00 3:eec13a411e94 78 // OLED set re-map/color depth
uehara00 3:eec13a411e94 79 // a(0): 0..horizontal address increment 1..vertical address increment (0 by reset)
uehara00 3:eec13a411e94 80 // a(1): 0..column address 0 is to SEG0 1..column address 127 is to SEG0 (0 by reset)
uehara00 3:eec13a411e94 81 // a(2): 0..color sequence A->B->C 1..color sequence C->B->A (0 by reset)
uehara00 3:eec13a411e94 82 // a(3): 0..reserved 1..reserved
uehara00 3:eec13a411e94 83 // a(4): 0..scan COM(0)->COM(N-1) 1..scan COM(N-1)->COM(0) (0 by reset)
uehara00 3:eec13a411e94 84 // a(5): 0..disable COM split odd even 1..enable COM split odd even (1 by reset)
uehara00 3:eec13a411e94 85 // a(7-6): 00..65k color
uehara00 3:eec13a411e94 86 // 01..65k color (reset)
uehara00 3:eec13a411e94 87 // 10..262k color
uehara00 3:eec13a411e94 88 // 11..262k color 16-bit format 2
uehara00 3:eec13a411e94 89 void OLED_set_remap_color_depth(int a) {
uehara00 3:eec13a411e94 90 OLED_spi.write(0xa0);
uehara00 3:eec13a411e94 91 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 92 }
uehara00 3:eec13a411e94 93
uehara00 3:eec13a411e94 94 // OLED set display start line
uehara00 3:eec13a411e94 95 // a: start line (0x00-0x7f, 0x00 by reset)
uehara00 3:eec13a411e94 96 void OLED_set_display_start_line(int a) {
uehara00 3:eec13a411e94 97 OLED_spi.write(0xa1);
uehara00 3:eec13a411e94 98 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 99 }
uehara00 3:eec13a411e94 100
uehara00 3:eec13a411e94 101 // OLED set display offset
uehara00 3:eec13a411e94 102 // a: offset (0x00-0x7f, 0x60 by reset)
uehara00 3:eec13a411e94 103 void OLED_set_display_offset(int a) {
uehara00 3:eec13a411e94 104 OLED_spi.write(0xa2);
uehara00 3:eec13a411e94 105 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 106 }
uehara00 3:eec13a411e94 107
uehara00 3:eec13a411e94 108 // OLED set display mode all off
uehara00 3:eec13a411e94 109 void OLED_set_display_mode_all_off() {
uehara00 3:eec13a411e94 110 OLED_spi.write(0xa4);
uehara00 3:eec13a411e94 111 }
uehara00 3:eec13a411e94 112
uehara00 3:eec13a411e94 113 // OLED set display mode all on
uehara00 3:eec13a411e94 114 void OLED_set_display_mode_all_on() {
uehara00 3:eec13a411e94 115 OLED_spi.write(0xa5);
uehara00 3:eec13a411e94 116 }
uehara00 3:eec13a411e94 117
uehara00 3:eec13a411e94 118 // OLED set display mode reset to normal display (reset)
uehara00 3:eec13a411e94 119 void OLED_set_display_mode_normal() {
uehara00 3:eec13a411e94 120 OLED_spi.write(0xa6);
uehara00 3:eec13a411e94 121 }
uehara00 3:eec13a411e94 122
uehara00 3:eec13a411e94 123 // OLED set display mode reset to inverse display
uehara00 3:eec13a411e94 124 void OLED_set_display_mode_inverse() {
uehara00 3:eec13a411e94 125 OLED_spi.write(0xa7);
uehara00 3:eec13a411e94 126 }
uehara00 3:eec13a411e94 127
uehara00 3:eec13a411e94 128 // OLED function selection
uehara00 3:eec13a411e94 129 // a(0): 0..select external VDD 1..enable internal regulator (1 by reset)
uehara00 3:eec13a411e94 130 // a(7-6): 00..select 8-bit parallel interface (reset)
uehara00 3:eec13a411e94 131 // 01..select 16-bit parallel interface
uehara00 3:eec13a411e94 132 // 11..select 18-bit parallel interface
uehara00 3:eec13a411e94 133 void OLED_function_selection(int a) {
uehara00 3:eec13a411e94 134 OLED_spi.write(0xab);
uehara00 3:eec13a411e94 135 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 136 }
uehara00 3:eec13a411e94 137
uehara00 3:eec13a411e94 138 // OLED no operation
uehara00 3:eec13a411e94 139 void OLED_no_operation_ad() {
uehara00 3:eec13a411e94 140 OLED_spi.write(0xad);
uehara00 3:eec13a411e94 141 }
uehara00 3:eec13a411e94 142
uehara00 3:eec13a411e94 143 // OLED set sleep mode on
uehara00 3:eec13a411e94 144 void OLED_set_sleep_mode_on() {
uehara00 3:eec13a411e94 145 OLED_spi.write(0xae);
uehara00 3:eec13a411e94 146 }
uehara00 3:eec13a411e94 147
uehara00 3:eec13a411e94 148 // OLED set sleep mode off
uehara00 3:eec13a411e94 149 void OLED_set_sleep_mode_off() {
uehara00 3:eec13a411e94 150 OLED_spi.write(0xaf);
uehara00 3:eec13a411e94 151 }
uehara00 3:eec13a411e94 152
uehara00 3:eec13a411e94 153 // OLED no operation
uehara00 3:eec13a411e94 154 void OLED_no_operation_b0() {
uehara00 3:eec13a411e94 155 OLED_spi.write(0xb0);
uehara00 3:eec13a411e94 156 }
uehara00 3:eec13a411e94 157
uehara00 3:eec13a411e94 158 // OLED set reset / pre-charge period
uehara00 3:eec13a411e94 159 // a(3-0): phase 1 period (0x2..0xf, 0x2 by reset)
uehara00 3:eec13a411e94 160 // a(7-4): phase 2 period (0x3..0xf, 0x8 by reset)
uehara00 3:eec13a411e94 161 void OLED_set_reset_pre_charge_period(int a) {
uehara00 3:eec13a411e94 162 OLED_spi.write(0xb1);
uehara00 3:eec13a411e94 163 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 164 }
uehara00 3:eec13a411e94 165
uehara00 3:eec13a411e94 166 // OLED display enhancement
uehara00 3:eec13a411e94 167 // a, b, c: 0x00, 0x00, 0x00..normal (reset)
uehara00 3:eec13a411e94 168 // 0xa4, 0x00, 0x00..enhance display
uehara00 3:eec13a411e94 169 void OLED_display_enhancement(int a, int b, int c) {
uehara00 3:eec13a411e94 170 OLED_spi.write(0xb2);
uehara00 3:eec13a411e94 171 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 172 OLED_spi.write(0x100 | b);
uehara00 3:eec13a411e94 173 OLED_spi.write(0x100 | c);
uehara00 3:eec13a411e94 174 }
uehara00 3:eec13a411e94 175
uehara00 3:eec13a411e94 176 // OLED front clock divider / oscillator frequency
uehara00 3:eec13a411e94 177 // a(3-0): divset (0x0-0xa, 0x1 by reset)
uehara00 3:eec13a411e94 178 // a(7-4): oscillator frequency (0xd by reset)
uehara00 3:eec13a411e94 179 void OLED_front_clock_divider_oscillator_frequency(int a) {
uehara00 3:eec13a411e94 180 OLED_spi.write(0xb3);
uehara00 3:eec13a411e94 181 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 182 }
uehara00 3:eec13a411e94 183
uehara00 3:eec13a411e94 184 // OLED set segment low voltage
uehara00 3:eec13a411e94 185 void OLED_set_segment_low_voltage() {
uehara00 3:eec13a411e94 186 OLED_spi.write(0xb4);
uehara00 3:eec13a411e94 187 OLED_spi.write(0x1a0);
uehara00 3:eec13a411e94 188 OLED_spi.write(0x1b5);
uehara00 3:eec13a411e94 189 OLED_spi.write(0x155);
uehara00 3:eec13a411e94 190 }
uehara00 3:eec13a411e94 191
uehara00 3:eec13a411e94 192 // OLED set GPIO
uehara00 3:eec13a411e94 193 // a(1-0): GPIO0
uehara00 3:eec13a411e94 194 // a(3-2): GPIO1
uehara00 3:eec13a411e94 195 // 00..pin Hi-Z, input disabled
uehara00 3:eec13a411e94 196 // 01..pin Hi-Z, input enabled
uehara00 3:eec13a411e94 197 // 10..pin output low (reset)
uehara00 3:eec13a411e94 198 // 11..pin output high
uehara00 3:eec13a411e94 199 void OLED_set_GPIO(int a) {
uehara00 3:eec13a411e94 200 OLED_spi.write(0xb5);
uehara00 3:eec13a411e94 201 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 202 }
uehara00 3:eec13a411e94 203
uehara00 3:eec13a411e94 204 // OLED set second pre-charge period
uehara00 3:eec13a411e94 205 // a(3-0): period (0x1-0xf, 0x8 by reset)
uehara00 3:eec13a411e94 206 void OLED_set_second_pre_charge_period(int a) {
uehara00 3:eec13a411e94 207 OLED_spi.write(0xb6);
uehara00 3:eec13a411e94 208 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 209 }
uehara00 3:eec13a411e94 210
uehara00 3:eec13a411e94 211 // OLED look up table for gray scale pulse width
uehara00 3:eec13a411e94 212 void OLED_look_up_table_for_gray_scale_pulse_width() {
uehara00 3:eec13a411e94 213 const int a[63] = {
uehara00 3:eec13a411e94 214 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11,
uehara00 3:eec13a411e94 215 0x12, 0x13, 0x15, 0x17, 0x19, 0x1b, 0x1d, 0x1f, 0x21, 0x23, 0x25, 0x27, 0x2a, 0x2d, 0x30, 0x33,
uehara00 3:eec13a411e94 216 0x36, 0x39, 0x3c, 0x3f, 0x42, 0x45, 0x48, 0x4c, 0x50, 0x54, 0x58, 0x5c, 0x60, 0x64, 0x68, 0x6c,
uehara00 3:eec13a411e94 217 0x70, 0x74, 0x78, 0x7d, 0x82, 0x87, 0x8c, 0x91, 0x96, 0x9b, 0xa0, 0xa5, 0xaa, 0xaf, 0xb4
uehara00 3:eec13a411e94 218 };
uehara00 3:eec13a411e94 219
uehara00 3:eec13a411e94 220 OLED_spi.write(0xb8);
uehara00 3:eec13a411e94 221 for(int i = 0; i < 63; ++i) {
uehara00 3:eec13a411e94 222 OLED_spi.write(0x100 | a[i]);
uehara00 3:eec13a411e94 223 }
uehara00 3:eec13a411e94 224 }
uehara00 3:eec13a411e94 225
uehara00 3:eec13a411e94 226 // OLED use built-in linear look up table (linear by reset)
uehara00 3:eec13a411e94 227 void OLED_use_built_in_linear_lut() {
uehara00 3:eec13a411e94 228 OLED_spi.write(0xb9);
uehara00 3:eec13a411e94 229 }
uehara00 3:eec13a411e94 230
uehara00 3:eec13a411e94 231 // OLED set pre-charge voltage
uehara00 3:eec13a411e94 232 // a: 0x00-0x1f (0x17 by reset)
uehara00 3:eec13a411e94 233 void OLED_set_pre_charge_voltage(int a) {
uehara00 3:eec13a411e94 234 OLED_spi.write(0xbb);
uehara00 3:eec13a411e94 235 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 236 }
uehara00 3:eec13a411e94 237
uehara00 3:eec13a411e94 238 // OLED set VCOMH_voltage
uehara00 3:eec13a411e94 239 // a: 0x00-0x07 (0x05 by reset)
uehara00 3:eec13a411e94 240 void OLED_set_vcomh_voltage(int a) {
uehara00 3:eec13a411e94 241 OLED_spi.write(0xbe);
uehara00 3:eec13a411e94 242 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 243 }
uehara00 3:eec13a411e94 244
uehara00 3:eec13a411e94 245 // OLED set contrast current for color A, B, C
uehara00 3:eec13a411e94 246 // a: contrast value for color A (0x8a by reset)
uehara00 3:eec13a411e94 247 // b: contrast value for color B (0x51 by reset)
uehara00 3:eec13a411e94 248 // c: contrast value for color C (0x8a by reset)
uehara00 3:eec13a411e94 249 void OLED_set_contrast_for_color_abc(int a, int b, int c) {
uehara00 3:eec13a411e94 250 OLED_spi.write(0xc1);
uehara00 3:eec13a411e94 251 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 252 OLED_spi.write(0x100 | b);
uehara00 3:eec13a411e94 253 OLED_spi.write(0x100 | c);
uehara00 3:eec13a411e94 254 }
uehara00 3:eec13a411e94 255
uehara00 3:eec13a411e94 256 // OLED master contrast current control
uehara00 3:eec13a411e94 257 // a: 0x00-0x0e..reduce output current for all colors
uehara00 3:eec13a411e94 258 // 0x0f..no change (reset)
uehara00 3:eec13a411e94 259 void OLED_master_contrast_current_control(int a) {
uehara00 3:eec13a411e94 260 OLED_spi.write(0xc7);
uehara00 3:eec13a411e94 261 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 262 }
uehara00 3:eec13a411e94 263
uehara00 3:eec13a411e94 264 // OLED set MUX ratio
uehara00 3:eec13a411e94 265 // a: 0x0f-0x7f..16MUX-128MUX (0x7f by reset)
uehara00 3:eec13a411e94 266 void OLED_set_mux_ratio(int a) {
uehara00 3:eec13a411e94 267 OLED_spi.write(0xca);
uehara00 3:eec13a411e94 268 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 269 }
uehara00 3:eec13a411e94 270
uehara00 3:eec13a411e94 271 // OLED no operation
uehara00 3:eec13a411e94 272 void OLED_no_operation_d1() {
uehara00 3:eec13a411e94 273 OLED_spi.write(0xd1);
uehara00 3:eec13a411e94 274 }
uehara00 3:eec13a411e94 275
uehara00 3:eec13a411e94 276 // OLED no operation
uehara00 3:eec13a411e94 277 void OLED_no_operation_e3() {
uehara00 3:eec13a411e94 278 OLED_spi.write(0xe3);
uehara00 3:eec13a411e94 279 }
uehara00 3:eec13a411e94 280
uehara00 3:eec13a411e94 281 // OLED set command lock
uehara00 3:eec13a411e94 282 // a: MCU protection status
uehara00 3:eec13a411e94 283 // 0x12..unlock OLED driver IC MCU interface from entering command (reset)
uehara00 3:eec13a411e94 284 // 0x16..Lock OLED driver IC MCU interface from entering command
uehara00 3:eec13a411e94 285 // 0xb0..command a2, b1, b3, bb, be, c1 inaccessible in both lock and unlock state (reset)
uehara00 3:eec13a411e94 286 // 0xb1..command a2, b1, b3, bb, be, c1 accessible if in unlock state
uehara00 3:eec13a411e94 287 void OLED_set_command_lock(int a) {
uehara00 3:eec13a411e94 288 OLED_spi.write(0xfd);
uehara00 3:eec13a411e94 289 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 290 }
uehara00 3:eec13a411e94 291
uehara00 3:eec13a411e94 292 // OLED horizontal scroll
uehara00 3:eec13a411e94 293 // a: 0x00 ..no scrolling
uehara00 3:eec13a411e94 294 // 0x01-0x3f..scroll towards SEG127 with 1 column offset
uehara00 3:eec13a411e94 295 // 0x40-0xff..scroll towards SEG0 with 1 column offset
uehara00 3:eec13a411e94 296 // b: 0x00-0x7f..start row address
uehara00 3:eec13a411e94 297 // c: 0x00-0xff..number of rows to be h-scrolled (b + c <= 0x80)
uehara00 3:eec13a411e94 298 // d: reserved (0x00 by reset)
uehara00 3:eec13a411e94 299 // e: scrolling time interval
uehara00 3:eec13a411e94 300 // 0x00..test mode
uehara00 3:eec13a411e94 301 // 0x01..normal
uehara00 3:eec13a411e94 302 // 0x02..slow
uehara00 3:eec13a411e94 303 // 0x03..slowest
uehara00 3:eec13a411e94 304 void OLED_horizontal_scroll(int a, int b, int c, int d, int e) {
uehara00 3:eec13a411e94 305 OLED_spi.write(0x96);
uehara00 3:eec13a411e94 306 OLED_spi.write(0x100 | a);
uehara00 3:eec13a411e94 307 OLED_spi.write(0x100 | b);
uehara00 3:eec13a411e94 308 OLED_spi.write(0x100 | c);
uehara00 3:eec13a411e94 309 OLED_spi.write(0x100 | d);
uehara00 3:eec13a411e94 310 OLED_spi.write(0x100 | e);
uehara00 3:eec13a411e94 311 }
uehara00 3:eec13a411e94 312
uehara00 3:eec13a411e94 313 // OLED stop horizontal scroll
uehara00 3:eec13a411e94 314 void OLED_stop_moving() {
uehara00 3:eec13a411e94 315 OLED_spi.write(0x9e);
uehara00 3:eec13a411e94 316 }
uehara00 3:eec13a411e94 317
uehara00 3:eec13a411e94 318 // OLED start horizontal scroll
uehara00 3:eec13a411e94 319 void OLED_start_moving() {
uehara00 3:eec13a411e94 320 OLED_spi.write(0x9f);
uehara00 3:eec13a411e94 321 }
uehara00 3:eec13a411e94 322
uehara00 3:eec13a411e94 323 // OLED initialize
uehara00 3:eec13a411e94 324 void OLED_initialize() {
uehara00 3:eec13a411e94 325 OLED_power1 = OLED_POWER_OFF;
uehara00 3:eec13a411e94 326 OLED_power2 = OLED_POWER_OFF;
uehara00 3:eec13a411e94 327
uehara00 3:eec13a411e94 328 OLED_cs_negate();
uehara00 3:eec13a411e94 329 OLED_spi.format(9, 3); // 9bit mode, CPOL=1(inactive-H), CPHA=1(edge-UP)
uehara00 3:eec13a411e94 330 OLED_spi.frequency(20000000); // 20MHz (50ns)
uehara00 3:eec13a411e94 331
uehara00 3:eec13a411e94 332 OLED_reset1 = OLED_RESET_ON;
uehara00 3:eec13a411e94 333 OLED_reset2 = OLED_RESET_ON;
uehara00 3:eec13a411e94 334 wait_us(10);
uehara00 3:eec13a411e94 335 OLED_reset1 = OLED_RESET_OFF;
uehara00 3:eec13a411e94 336 OLED_reset2 = OLED_RESET_OFF;
uehara00 3:eec13a411e94 337
uehara00 3:eec13a411e94 338 OLED_set_color(0, 0, 0, 0); // background color
uehara00 3:eec13a411e94 339 OLED_set_color(1, 0x3f, 0x3f, 0x3f); // foreground color
uehara00 3:eec13a411e94 340 OLED_set_cursor(0, 0);
uehara00 3:eec13a411e94 341
uehara00 3:eec13a411e94 342 OLED_cs_assert(1); // SLOT-1
uehara00 3:eec13a411e94 343 OLED_initialize_sub();
uehara00 3:eec13a411e94 344 OLED_cs_negate();
uehara00 3:eec13a411e94 345
uehara00 3:eec13a411e94 346 OLED_cs_assert(2); // SLOT-2
uehara00 3:eec13a411e94 347 OLED_initialize_sub();
uehara00 3:eec13a411e94 348 OLED_cs_negate();
uehara00 3:eec13a411e94 349
uehara00 3:eec13a411e94 350 OLED_power1 = OLED_POWER_ON;
uehara00 3:eec13a411e94 351 OLED_power2 = OLED_POWER_ON;
uehara00 3:eec13a411e94 352 wait_ms(200);
uehara00 3:eec13a411e94 353 }
uehara00 3:eec13a411e94 354
uehara00 3:eec13a411e94 355 // OLED initialize sub-program
uehara00 3:eec13a411e94 356 // slot: 1..SLOT-1, 2..SLOT-2
uehara00 3:eec13a411e94 357 static void OLED_initialize_sub() {
uehara00 3:eec13a411e94 358 OLED_set_command_lock(0x12);
uehara00 3:eec13a411e94 359 OLED_set_command_lock(0xb1);
uehara00 3:eec13a411e94 360 OLED_set_sleep_mode_on();
uehara00 3:eec13a411e94 361 OLED_front_clock_divider_oscillator_frequency(0xf1);
uehara00 3:eec13a411e94 362 OLED_set_mux_ratio(0x7f);
uehara00 3:eec13a411e94 363 OLED_set_display_offset(0x00);
uehara00 3:eec13a411e94 364 OLED_set_display_start_line(0x00);
uehara00 3:eec13a411e94 365 OLED_set_remap_color_depth(0xb4); // 262k(18bit) color format-1
uehara00 3:eec13a411e94 366 OLED_set_GPIO(0x00);
uehara00 3:eec13a411e94 367 OLED_function_selection(0x01);
uehara00 3:eec13a411e94 368 OLED_set_segment_low_voltage();
uehara00 3:eec13a411e94 369 OLED_set_contrast_for_color_abc(0xc8, 0x80, 0xc8);
uehara00 3:eec13a411e94 370 OLED_master_contrast_current_control(0x0f);
uehara00 3:eec13a411e94 371 OLED_look_up_table_for_gray_scale_pulse_width();
uehara00 3:eec13a411e94 372 OLED_set_reset_pre_charge_period(0x32);
uehara00 3:eec13a411e94 373 OLED_display_enhancement(0xa4, 0x00, 0x00);
uehara00 3:eec13a411e94 374 OLED_set_pre_charge_voltage(0x17);
uehara00 3:eec13a411e94 375 OLED_set_second_pre_charge_period(0x01);
uehara00 3:eec13a411e94 376 OLED_set_vcomh_voltage(0x05);
uehara00 3:eec13a411e94 377 OLED_set_display_mode_normal();
uehara00 3:eec13a411e94 378 OLED_clear_screen(0); // by background color
uehara00 3:eec13a411e94 379 OLED_set_sleep_mode_off();
uehara00 3:eec13a411e94 380 }
uehara00 3:eec13a411e94 381
uehara00 3:eec13a411e94 382 // OLED set color
uehara00 3:eec13a411e94 383 // mode: 0..backgound, else..foreground
uehara00 3:eec13a411e94 384 void OLED_set_color(int mode, int a, int b, int c) {
uehara00 3:eec13a411e94 385 if(mode == 0) {
uehara00 3:eec13a411e94 386 OLED_color_a2 = a;
uehara00 3:eec13a411e94 387 OLED_color_b2 = b;
uehara00 3:eec13a411e94 388 OLED_color_c2 = c;
uehara00 3:eec13a411e94 389 }
uehara00 3:eec13a411e94 390 else {
uehara00 3:eec13a411e94 391 OLED_color_a1 = a;
uehara00 3:eec13a411e94 392 OLED_color_b1 = b;
uehara00 3:eec13a411e94 393 OLED_color_c1 = c;
uehara00 3:eec13a411e94 394 }
uehara00 3:eec13a411e94 395 }
uehara00 3:eec13a411e94 396
uehara00 3:eec13a411e94 397 // OLED set print position
uehara00 3:eec13a411e94 398 void OLED_set_cursor(int x, int y) {
uehara00 3:eec13a411e94 399 OLED_cursor_x = x;
uehara00 3:eec13a411e94 400 OLED_cursor_y = y;
uehara00 3:eec13a411e94 401 }
uehara00 3:eec13a411e94 402
uehara00 3:eec13a411e94 403 // OLED clear screen = fill-out with a color
uehara00 3:eec13a411e94 404 // mode: 0..backgound, else..foreground
uehara00 3:eec13a411e94 405 void OLED_clear_screen(int mode) {
uehara00 3:eec13a411e94 406 OLED_fill_rectangle(mode, 0, OLED_COLUMN_MAX + 1, 0, OLED_ROW_MAX + 1);
uehara00 3:eec13a411e94 407 }
uehara00 3:eec13a411e94 408
uehara00 3:eec13a411e94 409 // OLED fill rectangle
uehara00 3:eec13a411e94 410 // mode: 0..backgound, else..foreground
uehara00 3:eec13a411e94 411 // cs: column-start (0x00..OLED_COLUMN_MAX)
uehara00 3:eec13a411e94 412 // cl: column-length (0x01..OLED_COLUMN_MAX+1)
uehara00 3:eec13a411e94 413 // rs: row-start (0x00..OLED_ROW_MAX)
uehara00 3:eec13a411e94 414 // rl: row-length (0x01..OLED_ROW_MAX+1)
uehara00 3:eec13a411e94 415 void OLED_fill_rectangle(int mode, int cs, int cl, int rs, int rl) {
uehara00 3:eec13a411e94 416 OLED_set_column_address(cs, cs + cl - 1);
uehara00 3:eec13a411e94 417 OLED_set_row_address(rs, rs + rl - 1);
uehara00 3:eec13a411e94 418 OLED_write_ram_command();
uehara00 3:eec13a411e94 419 for(int i = 0; i < cl * rl; ++i) {
uehara00 3:eec13a411e94 420 OLED_write_pixel(mode);
uehara00 3:eec13a411e94 421 }
uehara00 3:eec13a411e94 422 }
uehara00 3:eec13a411e94 423
uehara00 3:eec13a411e94 424 // OLED write a pixel in 18-bit color mode
uehara00 3:eec13a411e94 425 // mode: 0..backgound, else..foreground
uehara00 3:eec13a411e94 426 void OLED_write_pixel(int mode) {
uehara00 3:eec13a411e94 427 if(mode == 0) {
uehara00 3:eec13a411e94 428 OLED_spi.write(0x100 | OLED_color_a2);
uehara00 3:eec13a411e94 429 OLED_spi.write(0x100 | OLED_color_b2);
uehara00 3:eec13a411e94 430 OLED_spi.write(0x100 | OLED_color_c2);
uehara00 3:eec13a411e94 431 }
uehara00 3:eec13a411e94 432 else {
uehara00 3:eec13a411e94 433 OLED_spi.write(0x100 | OLED_color_a1);
uehara00 3:eec13a411e94 434 OLED_spi.write(0x100 | OLED_color_b1);
uehara00 3:eec13a411e94 435 OLED_spi.write(0x100 | OLED_color_c1);
uehara00 3:eec13a411e94 436 }
uehara00 3:eec13a411e94 437 }
uehara00 3:eec13a411e94 438
uehara00 3:eec13a411e94 439 // OLED print string
uehara00 3:eec13a411e94 440 void OLED_print_string(char s[]) {
uehara00 3:eec13a411e94 441 for(int i = 0; s[i] != '\0'; ++i) {
uehara00 3:eec13a411e94 442 OLED_print_character(s[i]);
uehara00 3:eec13a411e94 443 }
uehara00 3:eec13a411e94 444 }
uehara00 3:eec13a411e94 445
uehara00 3:eec13a411e94 446 // OLED print integer(1 byte) in hex format
uehara00 3:eec13a411e94 447 void OLED_print_hex(int i) {
uehara00 3:eec13a411e94 448 OLED_print_character(int_to_hex1(i >> 4));
uehara00 3:eec13a411e94 449 OLED_print_character(int_to_hex1(i));
uehara00 3:eec13a411e94 450 }
uehara00 3:eec13a411e94 451
uehara00 3:eec13a411e94 452 // OLED print character of 6*9 font
uehara00 3:eec13a411e94 453 // ch: character
uehara00 3:eec13a411e94 454 void OLED_print_character(char ch) {
uehara00 3:eec13a411e94 455 static char font[0x80][OLED_FONT_SIZE_Y] = {
uehara00 3:eec13a411e94 456 { 0x90, // 1--1---- 0x00 NUL
uehara00 3:eec13a411e94 457 0xd0, // 11-1----
uehara00 3:eec13a411e94 458 0xb0, // 1-11----
uehara00 3:eec13a411e94 459 0x90, // 1--1----
uehara00 3:eec13a411e94 460 0x20, // --1-----
uehara00 3:eec13a411e94 461 0x20, // --1-----
uehara00 3:eec13a411e94 462 0x20, // --1-----
uehara00 3:eec13a411e94 463 0x38, // --111---
uehara00 3:eec13a411e94 464 0x00, // --------
uehara00 3:eec13a411e94 465 },
uehara00 3:eec13a411e94 466 { 0x60, // -11----- 0x01 SOH
uehara00 3:eec13a411e94 467 0x80, // 1-------
uehara00 3:eec13a411e94 468 0x40, // -1------
uehara00 3:eec13a411e94 469 0x20, // --1-----
uehara00 3:eec13a411e94 470 0xc0, // 11------
uehara00 3:eec13a411e94 471 0x28, // --1-1---
uehara00 3:eec13a411e94 472 0x38, // --111---
uehara00 3:eec13a411e94 473 0x28, // --1-1---
uehara00 3:eec13a411e94 474 0x00, // --------
uehara00 3:eec13a411e94 475 },
uehara00 3:eec13a411e94 476 { 0x60, // -11----- 0x02 STX
uehara00 3:eec13a411e94 477 0x80, // 1-------
uehara00 3:eec13a411e94 478 0x40, // -1------
uehara00 3:eec13a411e94 479 0x20, // --1-----
uehara00 3:eec13a411e94 480 0xc0, // 11------
uehara00 3:eec13a411e94 481 0x28, // --1-1---
uehara00 3:eec13a411e94 482 0x10, // ---1----
uehara00 3:eec13a411e94 483 0x28, // --1-1---
uehara00 3:eec13a411e94 484 0x00, // --------
uehara00 3:eec13a411e94 485 },
uehara00 3:eec13a411e94 486 { 0xe0, // 111----- 0x03 ETX
uehara00 3:eec13a411e94 487 0x80, // 1-------
uehara00 3:eec13a411e94 488 0xe0, // 111-----
uehara00 3:eec13a411e94 489 0x80, // 1-------
uehara00 3:eec13a411e94 490 0xe0, // 111-----
uehara00 3:eec13a411e94 491 0x28, // --1-1---
uehara00 3:eec13a411e94 492 0x10, // ---1----
uehara00 3:eec13a411e94 493 0x28, // --1-1---
uehara00 3:eec13a411e94 494 0x00, // --------
uehara00 3:eec13a411e94 495 },
uehara00 3:eec13a411e94 496 { 0xe0, // 111----- 0x04 EOT
uehara00 3:eec13a411e94 497 0x80, // 1-------
uehara00 3:eec13a411e94 498 0xe0, // 111-----
uehara00 3:eec13a411e94 499 0x80, // 1-------
uehara00 3:eec13a411e94 500 0xe0, // 111-----
uehara00 3:eec13a411e94 501 0x38, // --111---
uehara00 3:eec13a411e94 502 0x28, // --1-1---
uehara00 3:eec13a411e94 503 0x38, // --111---
uehara00 3:eec13a411e94 504 0x00, // --------
uehara00 3:eec13a411e94 505 },
uehara00 3:eec13a411e94 506 { 0xe0, // 111----- 0x05 ENQ
uehara00 3:eec13a411e94 507 0x80, // 1-------
uehara00 3:eec13a411e94 508 0xe0, // 111-----
uehara00 3:eec13a411e94 509 0x80, // 1-------
uehara00 3:eec13a411e94 510 0xf0, // 1111----
uehara00 3:eec13a411e94 511 0x48, // -1--1---
uehara00 3:eec13a411e94 512 0x58, // -1-11---
uehara00 3:eec13a411e94 513 0x38, // --111---
uehara00 3:eec13a411e94 514 0x00, // --------
uehara00 3:eec13a411e94 515 },
uehara00 3:eec13a411e94 516 { 0x40, // -1------ 0x06 ACK
uehara00 3:eec13a411e94 517 0xa0, // 1-1-----
uehara00 3:eec13a411e94 518 0xa0, // 1-1-----
uehara00 3:eec13a411e94 519 0xe0, // 111-----
uehara00 3:eec13a411e94 520 0xa0, // 1-1-----
uehara00 3:eec13a411e94 521 0x28, // --1-1---
uehara00 3:eec13a411e94 522 0x30, // --11----
uehara00 3:eec13a411e94 523 0x28, // --1-1---
uehara00 3:eec13a411e94 524 0x00, // --------
uehara00 3:eec13a411e94 525 },
uehara00 3:eec13a411e94 526 { 0xc0, // 11------ 0x07 BEL
uehara00 3:eec13a411e94 527 0xa0, // 1-1-----
uehara00 3:eec13a411e94 528 0xc0, // 11------
uehara00 3:eec13a411e94 529 0xa0, // 1-1-----
uehara00 3:eec13a411e94 530 0xc0, // 11------
uehara00 3:eec13a411e94 531 0x20, // --1-----
uehara00 3:eec13a411e94 532 0x20, // --1-----
uehara00 3:eec13a411e94 533 0x38, // --111---
uehara00 3:eec13a411e94 534 0x00, // --------
uehara00 3:eec13a411e94 535 },
uehara00 3:eec13a411e94 536 { 0xc0, // 11------ 0x08 BS
uehara00 3:eec13a411e94 537 0xa0, // 1-1-----
uehara00 3:eec13a411e94 538 0xc0, // 11------
uehara00 3:eec13a411e94 539 0xb8, // 1-111---
uehara00 3:eec13a411e94 540 0xe0, // 111-----
uehara00 3:eec13a411e94 541 0x10, // ---1----
uehara00 3:eec13a411e94 542 0x08, // ----1---
uehara00 3:eec13a411e94 543 0x30, // --11----
uehara00 3:eec13a411e94 544 0x00, // --------
uehara00 3:eec13a411e94 545 },
uehara00 3:eec13a411e94 546 { 0xa0, // 1-1----- 0x09 HT
uehara00 3:eec13a411e94 547 0xa0, // 1-1-----
uehara00 3:eec13a411e94 548 0xe0, // 111-----
uehara00 3:eec13a411e94 549 0xa0, // 1-1-----
uehara00 3:eec13a411e94 550 0xb8, // 1-111---
uehara00 3:eec13a411e94 551 0x10, // ---1----
uehara00 3:eec13a411e94 552 0x10, // ---1----
uehara00 3:eec13a411e94 553 0x10, // ---1----
uehara00 3:eec13a411e94 554 0x00, // --------
uehara00 3:eec13a411e94 555 },
uehara00 3:eec13a411e94 556 { 0x80, // 1------- 0x0a LF
uehara00 3:eec13a411e94 557 0x80, // 1-------
uehara00 3:eec13a411e94 558 0x80, // 1-------
uehara00 3:eec13a411e94 559 0xf8, // 11111---
uehara00 3:eec13a411e94 560 0x20, // --1-----
uehara00 3:eec13a411e94 561 0x38, // --111---
uehara00 3:eec13a411e94 562 0x20, // --1-----
uehara00 3:eec13a411e94 563 0x20, // --1-----
uehara00 3:eec13a411e94 564 0x00, // --------
uehara00 3:eec13a411e94 565 },
uehara00 3:eec13a411e94 566 { 0xa0, // 1-1----- 0x0b VT
uehara00 3:eec13a411e94 567 0xa0, // 1-1-----
uehara00 3:eec13a411e94 568 0xa0, // 1-1-----
uehara00 3:eec13a411e94 569 0x40, // -1------
uehara00 3:eec13a411e94 570 0x38, // --111---
uehara00 3:eec13a411e94 571 0x10, // ---1----
uehara00 3:eec13a411e94 572 0x10, // ---1----
uehara00 3:eec13a411e94 573 0x10, // ---1----
uehara00 3:eec13a411e94 574 0x00, // --------
uehara00 3:eec13a411e94 575 },
uehara00 3:eec13a411e94 576 { 0xe0, // 111----- 0x0c FF
uehara00 3:eec13a411e94 577 0x80, // 1-------
uehara00 3:eec13a411e94 578 0xe0, // 111-----
uehara00 3:eec13a411e94 579 0xb8, // 1-111---
uehara00 3:eec13a411e94 580 0xa0, // 1-1-----
uehara00 3:eec13a411e94 581 0x38, // --111---
uehara00 3:eec13a411e94 582 0x20, // --1-----
uehara00 3:eec13a411e94 583 0x20, // --1-----
uehara00 3:eec13a411e94 584 0x00, // --------
uehara00 3:eec13a411e94 585 },
uehara00 3:eec13a411e94 586 { 0x60, // -11----- 0x0d CR
uehara00 3:eec13a411e94 587 0x80, // 1-------
uehara00 3:eec13a411e94 588 0x80, // 1-------
uehara00 3:eec13a411e94 589 0xb0, // 1-11----
uehara00 3:eec13a411e94 590 0x68, // -11-1---
uehara00 3:eec13a411e94 591 0x30, // --11----
uehara00 3:eec13a411e94 592 0x28, // --1-1---
uehara00 3:eec13a411e94 593 0x28, // --1-1---
uehara00 3:eec13a411e94 594 0x00, // --------
uehara00 3:eec13a411e94 595 },
uehara00 3:eec13a411e94 596 { 0x60, // -11----- 0x0e SO
uehara00 3:eec13a411e94 597 0x80, // 1-------
uehara00 3:eec13a411e94 598 0x40, // -1------
uehara00 3:eec13a411e94 599 0x20, // --1-----
uehara00 3:eec13a411e94 600 0xc0, // 11------
uehara00 3:eec13a411e94 601 0x38, // --111---
uehara00 3:eec13a411e94 602 0x28, // --1-1---
uehara00 3:eec13a411e94 603 0x38, // --111---
uehara00 3:eec13a411e94 604 0x00, // --------
uehara00 3:eec13a411e94 605 },
uehara00 3:eec13a411e94 606 { 0x60, // -11----- 0x0f SI
uehara00 3:eec13a411e94 607 0x80, // 1-------
uehara00 3:eec13a411e94 608 0x40, // -1------
uehara00 3:eec13a411e94 609 0x20, // --1-----
uehara00 3:eec13a411e94 610 0xc0, // 11------
uehara00 3:eec13a411e94 611 0x38, // --111---
uehara00 3:eec13a411e94 612 0x10, // ---1----
uehara00 3:eec13a411e94 613 0x38, // --111---
uehara00 3:eec13a411e94 614 0x00, // --------
uehara00 3:eec13a411e94 615 },
uehara00 3:eec13a411e94 616 { 0xc0, // 11------ 0x10 DLE
uehara00 3:eec13a411e94 617 0xa0, // 1-1-----
uehara00 3:eec13a411e94 618 0xc0, // 11------
uehara00 3:eec13a411e94 619 0x38, // --111---
uehara00 3:eec13a411e94 620 0x20, // --1-----
uehara00 3:eec13a411e94 621 0x38, // --111---
uehara00 3:eec13a411e94 622 0x20, // --1-----
uehara00 3:eec13a411e94 623 0x38, // --111---
uehara00 3:eec13a411e94 624 0x00, // --------
uehara00 3:eec13a411e94 625 },
uehara00 3:eec13a411e94 626 { 0xc0, // 11------ 0x11 DC1
uehara00 3:eec13a411e94 627 0xa0, // 1-1-----
uehara00 3:eec13a411e94 628 0xc0, // 11------
uehara00 3:eec13a411e94 629 0x30, // --11----
uehara00 3:eec13a411e94 630 0x10, // ---1----
uehara00 3:eec13a411e94 631 0x10, // ---1----
uehara00 3:eec13a411e94 632 0x10, // ---1----
uehara00 3:eec13a411e94 633 0x38, // --111---
uehara00 3:eec13a411e94 634 0x00, // --------
uehara00 3:eec13a411e94 635 },
uehara00 3:eec13a411e94 636 { 0xc0, // 11------ 0x12 DC2
uehara00 3:eec13a411e94 637 0xa0, // 1-1-----
uehara00 3:eec13a411e94 638 0xc0, // 11------
uehara00 3:eec13a411e94 639 0x30, // --11----
uehara00 3:eec13a411e94 640 0x08, // ----1---
uehara00 3:eec13a411e94 641 0x10, // ---1----
uehara00 3:eec13a411e94 642 0x20, // --1-----
uehara00 3:eec13a411e94 643 0x38, // --111---
uehara00 3:eec13a411e94 644 0x00, // --------
uehara00 3:eec13a411e94 645 },
uehara00 3:eec13a411e94 646 { 0xc0, // 11------ 0x13 DC3
uehara00 3:eec13a411e94 647 0xa0, // 1-1-----
uehara00 3:eec13a411e94 648 0xc0, // 11------
uehara00 3:eec13a411e94 649 0x30, // --11----
uehara00 3:eec13a411e94 650 0x08, // ----1---
uehara00 3:eec13a411e94 651 0x30, // --11----
uehara00 3:eec13a411e94 652 0x08, // ----1---
uehara00 3:eec13a411e94 653 0x30, // --11----
uehara00 3:eec13a411e94 654 0x00, // --------
uehara00 3:eec13a411e94 655 },
uehara00 3:eec13a411e94 656 { 0xc0, // 11------ 0x14 DC4
uehara00 3:eec13a411e94 657 0xa0, // 1-1-----
uehara00 3:eec13a411e94 658 0xc0, // 11------
uehara00 3:eec13a411e94 659 0x28, // --1-1---
uehara00 3:eec13a411e94 660 0x28, // --1-1---
uehara00 3:eec13a411e94 661 0x38, // --111---
uehara00 3:eec13a411e94 662 0x08, // ----1---
uehara00 3:eec13a411e94 663 0x08, // ----1---
uehara00 3:eec13a411e94 664 0x00, // --------
uehara00 3:eec13a411e94 665 },
uehara00 3:eec13a411e94 666 { 0x90, // 1--1---- 0x15 NAK
uehara00 3:eec13a411e94 667 0xd0, // 11-1----
uehara00 3:eec13a411e94 668 0xb0, // 1-11----
uehara00 3:eec13a411e94 669 0x90, // 1--1----
uehara00 3:eec13a411e94 670 0x90, // 1--1----
uehara00 3:eec13a411e94 671 0x28, // --1-1---
uehara00 3:eec13a411e94 672 0x30, // --11----
uehara00 3:eec13a411e94 673 0x28, // --1-1---
uehara00 3:eec13a411e94 674 0x00, // --------
uehara00 3:eec13a411e94 675 },
uehara00 3:eec13a411e94 676 { 0x60, // -11----- 0x16 SYN
uehara00 3:eec13a411e94 677 0x80, // 1-------
uehara00 3:eec13a411e94 678 0x40, // -1------
uehara00 3:eec13a411e94 679 0x28, // --1-----
uehara00 3:eec13a411e94 680 0xc8, // 11--1---
uehara00 3:eec13a411e94 681 0x68, // -11-1---
uehara00 3:eec13a411e94 682 0x58, // -1-11---
uehara00 3:eec13a411e94 683 0x48, // -1--1---
uehara00 3:eec13a411e94 684 0x00, // --------
uehara00 3:eec13a411e94 685 },
uehara00 3:eec13a411e94 686 { 0xe0, // 111----- 0x17 ETB
uehara00 3:eec13a411e94 687 0x80, // 1-------
uehara00 3:eec13a411e94 688 0xe0, // 111-----
uehara00 3:eec13a411e94 689 0xb0, // 1-11----
uehara00 3:eec13a411e94 690 0xe8, // 111-1---
uehara00 3:eec13a411e94 691 0x30, // --11----
uehara00 3:eec13a411e94 692 0x28, // --1-1---
uehara00 3:eec13a411e94 693 0x30, // --11----
uehara00 3:eec13a411e94 694 0x00, // --------
uehara00 3:eec13a411e94 695 },
uehara00 3:eec13a411e94 696 { 0x60, // -11----- 0x18 CAN
uehara00 3:eec13a411e94 697 0x80, // 1-------
uehara00 3:eec13a411e94 698 0x80, // 1-------
uehara00 3:eec13a411e94 699 0x60, // -11-----
uehara00 3:eec13a411e94 700 0x48, // -1--1---
uehara00 3:eec13a411e94 701 0x68, // -11-1---
uehara00 3:eec13a411e94 702 0x58, // -1-11---
uehara00 3:eec13a411e94 703 0x48, // -1--1---
uehara00 3:eec13a411e94 704 0x00, // --------
uehara00 3:eec13a411e94 705 },
uehara00 3:eec13a411e94 706 { 0xe0, // 111----- 0x19 EM
uehara00 3:eec13a411e94 707 0x80, // 1-------
uehara00 3:eec13a411e94 708 0xe0, // 111-----
uehara00 3:eec13a411e94 709 0x80, // 1-------
uehara00 3:eec13a411e94 710 0xe0, // 111-----
uehara00 3:eec13a411e94 711 0x88, // 1---1---
uehara00 3:eec13a411e94 712 0xd8, // 11-11---
uehara00 3:eec13a411e94 713 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 714 0x00, // --------
uehara00 3:eec13a411e94 715 },
uehara00 3:eec13a411e94 716 { 0x60, // -11----- 0x1a SUB
uehara00 3:eec13a411e94 717 0x80, // 1-------
uehara00 3:eec13a411e94 718 0x40, // -1------
uehara00 3:eec13a411e94 719 0x30, // --11----
uehara00 3:eec13a411e94 720 0xe8, // 111-1---
uehara00 3:eec13a411e94 721 0x30, // --11----
uehara00 3:eec13a411e94 722 0x28, // --1-1---
uehara00 3:eec13a411e94 723 0x30, // --11----
uehara00 3:eec13a411e94 724 0x00, // --------
uehara00 3:eec13a411e94 725 },
uehara00 3:eec13a411e94 726 { 0xe0, // 111----- 0x1b ESC
uehara00 3:eec13a411e94 727 0x80, // 1-------
uehara00 3:eec13a411e94 728 0xe0, // 111-----
uehara00 3:eec13a411e94 729 0x80, // 1-------
uehara00 3:eec13a411e94 730 0xf8, // 11111---
uehara00 3:eec13a411e94 731 0x20, // --1-----
uehara00 3:eec13a411e94 732 0x20, // --1-----
uehara00 3:eec13a411e94 733 0x18, // ---11---
uehara00 3:eec13a411e94 734 0x00, // --------
uehara00 3:eec13a411e94 735 },
uehara00 3:eec13a411e94 736 { 0xe0, // 111----- 0x1c FS
uehara00 3:eec13a411e94 737 0x80, // 1-------
uehara00 3:eec13a411e94 738 0xe0, // 111-----
uehara00 3:eec13a411e94 739 0x98, // 1--11---
uehara00 3:eec13a411e94 740 0xa0, // 1-1-----
uehara00 3:eec13a411e94 741 0x10, // ---1----
uehara00 3:eec13a411e94 742 0x08, // ----1---
uehara00 3:eec13a411e94 743 0x30, // --11----
uehara00 3:eec13a411e94 744 0x00, // --------
uehara00 3:eec13a411e94 745 },
uehara00 3:eec13a411e94 746 { 0x70, // -111---- 0x1d GS
uehara00 3:eec13a411e94 747 0x80, // 1-------
uehara00 3:eec13a411e94 748 0xb0, // 1-11----
uehara00 3:eec13a411e94 749 0x98, // 1--11---
uehara00 3:eec13a411e94 750 0x60, // -11-----
uehara00 3:eec13a411e94 751 0x10, // ---1----
uehara00 3:eec13a411e94 752 0x08, // ----1---
uehara00 3:eec13a411e94 753 0x30, // --11----
uehara00 3:eec13a411e94 754 0x00, // --------
uehara00 3:eec13a411e94 755 },
uehara00 3:eec13a411e94 756 { 0xc0, // 11------ 0x1e RS
uehara00 3:eec13a411e94 757 0xa0, // 1-1-----
uehara00 3:eec13a411e94 758 0xc0, // 11------
uehara00 3:eec13a411e94 759 0xb8, // 1-111---
uehara00 3:eec13a411e94 760 0xa0, // 1-1-----
uehara00 3:eec13a411e94 761 0x10, // ---1----
uehara00 3:eec13a411e94 762 0x08, // ----1---
uehara00 3:eec13a411e94 763 0x30, // --11----
uehara00 3:eec13a411e94 764 0x00, // --------
uehara00 3:eec13a411e94 765 },
uehara00 3:eec13a411e94 766 { 0xa0, // 1-1----- 0x1f US
uehara00 3:eec13a411e94 767 0xa0, // 1-1-----
uehara00 3:eec13a411e94 768 0xe0, // 111-----
uehara00 3:eec13a411e94 769 0x18, // ---11---
uehara00 3:eec13a411e94 770 0x20, // --1-----
uehara00 3:eec13a411e94 771 0x10, // ---1----
uehara00 3:eec13a411e94 772 0x08, // ----1---
uehara00 3:eec13a411e94 773 0x30, // --11----
uehara00 3:eec13a411e94 774 0x00, // --------
uehara00 3:eec13a411e94 775 },
uehara00 3:eec13a411e94 776 { 0x00, // -------- 0x20 space
uehara00 3:eec13a411e94 777 0x00, // --------
uehara00 3:eec13a411e94 778 0x00, // --------
uehara00 3:eec13a411e94 779 0x00, // --------
uehara00 3:eec13a411e94 780 0x00, // --------
uehara00 3:eec13a411e94 781 0x00, // --------
uehara00 3:eec13a411e94 782 0x00, // --------
uehara00 3:eec13a411e94 783 0x00, // --------
uehara00 3:eec13a411e94 784 0x00, // --------
uehara00 3:eec13a411e94 785 },
uehara00 3:eec13a411e94 786 { 0x20, // --1----- 0x21 !
uehara00 3:eec13a411e94 787 0x20, // --1-----
uehara00 3:eec13a411e94 788 0x20, // --1-----
uehara00 3:eec13a411e94 789 0x20, // --1-----
uehara00 3:eec13a411e94 790 0x20, // --1-----
uehara00 3:eec13a411e94 791 0x00, // --------
uehara00 3:eec13a411e94 792 0x20, // --1-----
uehara00 3:eec13a411e94 793 0x00, // --------
uehara00 3:eec13a411e94 794 0x00, // --------
uehara00 3:eec13a411e94 795 },
uehara00 3:eec13a411e94 796 { 0x50, // -1-1---- 0x22 "
uehara00 3:eec13a411e94 797 0x50, // -1-1----
uehara00 3:eec13a411e94 798 0x00, // --------
uehara00 3:eec13a411e94 799 0x00, // --------
uehara00 3:eec13a411e94 800 0x00, // --------
uehara00 3:eec13a411e94 801 0x00, // --------
uehara00 3:eec13a411e94 802 0x00, // --------
uehara00 3:eec13a411e94 803 0x00, // --------
uehara00 3:eec13a411e94 804 0x00, // --------
uehara00 3:eec13a411e94 805 },
uehara00 3:eec13a411e94 806 { 0x50, // -1-1---- 0x23 #
uehara00 3:eec13a411e94 807 0x50, // -1-1----
uehara00 3:eec13a411e94 808 0xf8, // 11111---
uehara00 3:eec13a411e94 809 0x50, // -1-1----
uehara00 3:eec13a411e94 810 0xf8, // 11111---
uehara00 3:eec13a411e94 811 0x50, // -1-1----
uehara00 3:eec13a411e94 812 0x50, // -1-1----
uehara00 3:eec13a411e94 813 0x00, // --------
uehara00 3:eec13a411e94 814 0x00, // --------
uehara00 3:eec13a411e94 815 },
uehara00 3:eec13a411e94 816 { 0x20, // --1----- 0x24 $
uehara00 3:eec13a411e94 817 0x78, // -1111---
uehara00 3:eec13a411e94 818 0xa0, // 1-1-----
uehara00 3:eec13a411e94 819 0x70, // -111----
uehara00 3:eec13a411e94 820 0x28, // --1-1---
uehara00 3:eec13a411e94 821 0xf0, // 1111----
uehara00 3:eec13a411e94 822 0x20, // --1-----
uehara00 3:eec13a411e94 823 0x00, // --------
uehara00 3:eec13a411e94 824 0x00, // --------
uehara00 3:eec13a411e94 825 },
uehara00 3:eec13a411e94 826 { 0xc0, // 11------ 0x25 %
uehara00 3:eec13a411e94 827 0xc8, // 11--1---
uehara00 3:eec13a411e94 828 0x10, // ---1----
uehara00 3:eec13a411e94 829 0x20, // --1-----
uehara00 3:eec13a411e94 830 0x40, // -1------
uehara00 3:eec13a411e94 831 0x98, // 1--11---
uehara00 3:eec13a411e94 832 0x18, // ---11---
uehara00 3:eec13a411e94 833 0x00, // --------
uehara00 3:eec13a411e94 834 0x00, // --------
uehara00 3:eec13a411e94 835 },
uehara00 3:eec13a411e94 836 { 0x40, // -1------ 0x26 &
uehara00 3:eec13a411e94 837 0xa0, // 1-1-----
uehara00 3:eec13a411e94 838 0xa0, // 1-1-----
uehara00 3:eec13a411e94 839 0x40, // -1------
uehara00 3:eec13a411e94 840 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 841 0x90, // 1--1----
uehara00 3:eec13a411e94 842 0x68, // -11-1---
uehara00 3:eec13a411e94 843 0x00, // --------
uehara00 3:eec13a411e94 844 0x00, // --------
uehara00 3:eec13a411e94 845 },
uehara00 3:eec13a411e94 846 { 0x30, // --11---- 0x27 '
uehara00 3:eec13a411e94 847 0x20, // --1-----
uehara00 3:eec13a411e94 848 0x00, // --------
uehara00 3:eec13a411e94 849 0x00, // --------
uehara00 3:eec13a411e94 850 0x00, // --------
uehara00 3:eec13a411e94 851 0x00, // --------
uehara00 3:eec13a411e94 852 0x00, // --------
uehara00 3:eec13a411e94 853 0x00, // --------
uehara00 3:eec13a411e94 854 0x00, // --------
uehara00 3:eec13a411e94 855 },
uehara00 3:eec13a411e94 856 { 0x10, // ---1---- 0x28 (
uehara00 3:eec13a411e94 857 0x20, // --1-----
uehara00 3:eec13a411e94 858 0x40, // -1------
uehara00 3:eec13a411e94 859 0x40, // -1------
uehara00 3:eec13a411e94 860 0x40, // -1------
uehara00 3:eec13a411e94 861 0x20, // --1-----
uehara00 3:eec13a411e94 862 0x10, // ---1----
uehara00 3:eec13a411e94 863 0x00, // --------
uehara00 3:eec13a411e94 864 0x00, // --------
uehara00 3:eec13a411e94 865 },
uehara00 3:eec13a411e94 866 { 0x40, // -1------ 0x29 )
uehara00 3:eec13a411e94 867 0x20, // --1-----
uehara00 3:eec13a411e94 868 0x10, // ---1----
uehara00 3:eec13a411e94 869 0x10, // ---1----
uehara00 3:eec13a411e94 870 0x10, // ---1----
uehara00 3:eec13a411e94 871 0x20, // --1-----
uehara00 3:eec13a411e94 872 0x40, // -1------
uehara00 3:eec13a411e94 873 0x00, // --------
uehara00 3:eec13a411e94 874 0x00, // --------
uehara00 3:eec13a411e94 875 },
uehara00 3:eec13a411e94 876 { 0x00, // -------- 0x2a *
uehara00 3:eec13a411e94 877 0x20, // --1-----
uehara00 3:eec13a411e94 878 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 879 0x70, // -111----
uehara00 3:eec13a411e94 880 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 881 0x20, // --1-----
uehara00 3:eec13a411e94 882 0x00, // --------
uehara00 3:eec13a411e94 883 0x00, // --------
uehara00 3:eec13a411e94 884 0x00, // --------
uehara00 3:eec13a411e94 885 },
uehara00 3:eec13a411e94 886 { 0x00, // -------- 0x2b +
uehara00 3:eec13a411e94 887 0x20, // --1-----
uehara00 3:eec13a411e94 888 0x20, // --1-----
uehara00 3:eec13a411e94 889 0xf8, // 11111---
uehara00 3:eec13a411e94 890 0x20, // --1-----
uehara00 3:eec13a411e94 891 0x20, // --1-----
uehara00 3:eec13a411e94 892 0x00, // --------
uehara00 3:eec13a411e94 893 0x00, // --------
uehara00 3:eec13a411e94 894 0x00, // --------
uehara00 3:eec13a411e94 895 },
uehara00 3:eec13a411e94 896 { 0x00, // -------- 0x2c ,
uehara00 3:eec13a411e94 897 0x00, // --------
uehara00 3:eec13a411e94 898 0x00, // --------
uehara00 3:eec13a411e94 899 0x00, // --------
uehara00 3:eec13a411e94 900 0x00, // --------
uehara00 3:eec13a411e94 901 0x60, // -11-----
uehara00 3:eec13a411e94 902 0x20, // --1-----
uehara00 3:eec13a411e94 903 0x40, // -1------
uehara00 3:eec13a411e94 904 0x00, // --------
uehara00 3:eec13a411e94 905 },
uehara00 3:eec13a411e94 906 { 0x00, // -------- 0x2d -
uehara00 3:eec13a411e94 907 0x00, // --------
uehara00 3:eec13a411e94 908 0x00, // --------
uehara00 3:eec13a411e94 909 0xf8, // 11111---
uehara00 3:eec13a411e94 910 0x00, // --------
uehara00 3:eec13a411e94 911 0x00, // --------
uehara00 3:eec13a411e94 912 0x00, // --------
uehara00 3:eec13a411e94 913 0x00, // --------
uehara00 3:eec13a411e94 914 0x00, // --------
uehara00 3:eec13a411e94 915 },
uehara00 3:eec13a411e94 916 { 0x00, // -------- 0x2e .
uehara00 3:eec13a411e94 917 0x00, // --------
uehara00 3:eec13a411e94 918 0x00, // --------
uehara00 3:eec13a411e94 919 0x00, // --------
uehara00 3:eec13a411e94 920 0x00, // --------
uehara00 3:eec13a411e94 921 0x60, // -11-----
uehara00 3:eec13a411e94 922 0x60, // -11-----
uehara00 3:eec13a411e94 923 0x00, // --------
uehara00 3:eec13a411e94 924 0x00, // --------
uehara00 3:eec13a411e94 925 },
uehara00 3:eec13a411e94 926 { 0x00, // -------- 0x2f /
uehara00 3:eec13a411e94 927 0x08, // ----1---
uehara00 3:eec13a411e94 928 0x10, // ---1----
uehara00 3:eec13a411e94 929 0x20, // --1-----
uehara00 3:eec13a411e94 930 0x40, // -1------
uehara00 3:eec13a411e94 931 0x80, // 1-------
uehara00 3:eec13a411e94 932 0x00, // --------
uehara00 3:eec13a411e94 933 0x00, // --------
uehara00 3:eec13a411e94 934 0x00, // --------
uehara00 3:eec13a411e94 935 },
uehara00 3:eec13a411e94 936 { 0x70, // -111---- 0x30 0
uehara00 3:eec13a411e94 937 0x88, // 1---1---
uehara00 3:eec13a411e94 938 0x98, // 1--11---
uehara00 3:eec13a411e94 939 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 940 0xc8, // 11--1---
uehara00 3:eec13a411e94 941 0x88, // 1---1---
uehara00 3:eec13a411e94 942 0x70, // -111----
uehara00 3:eec13a411e94 943 0x00, // --------
uehara00 3:eec13a411e94 944 0x00, // --------
uehara00 3:eec13a411e94 945 },
uehara00 3:eec13a411e94 946 { 0x20, // --1----- 0x31 1
uehara00 3:eec13a411e94 947 0x60, // -11-----
uehara00 3:eec13a411e94 948 0x20, // --1-----
uehara00 3:eec13a411e94 949 0x20, // --1-----
uehara00 3:eec13a411e94 950 0x20, // --1-----
uehara00 3:eec13a411e94 951 0x20, // --1-----
uehara00 3:eec13a411e94 952 0x20, // --1-----
uehara00 3:eec13a411e94 953 0x00, // --------
uehara00 3:eec13a411e94 954 0x00, // --------
uehara00 3:eec13a411e94 955 },
uehara00 3:eec13a411e94 956 { 0x70, // -111---- 0x32 2
uehara00 3:eec13a411e94 957 0x88, // 1---1---
uehara00 3:eec13a411e94 958 0x08, // ----1---
uehara00 3:eec13a411e94 959 0x30, // --11----
uehara00 3:eec13a411e94 960 0x40, // -1------
uehara00 3:eec13a411e94 961 0x80, // 1-------
uehara00 3:eec13a411e94 962 0xf8, // 11111---
uehara00 3:eec13a411e94 963 0x00, // --------
uehara00 3:eec13a411e94 964 0x00, // --------
uehara00 3:eec13a411e94 965 },
uehara00 3:eec13a411e94 966 { 0x70, // -111---- 0x33 3
uehara00 3:eec13a411e94 967 0x88, // 1---1---
uehara00 3:eec13a411e94 968 0x08, // ----1---
uehara00 3:eec13a411e94 969 0x30, // --11----
uehara00 3:eec13a411e94 970 0x08, // ----1---
uehara00 3:eec13a411e94 971 0x88, // 1---1---
uehara00 3:eec13a411e94 972 0x70, // -111----
uehara00 3:eec13a411e94 973 0x00, // --------
uehara00 3:eec13a411e94 974 0x00, // --------
uehara00 3:eec13a411e94 975 },
uehara00 3:eec13a411e94 976 { 0x10, // ---1---- 0x34 4
uehara00 3:eec13a411e94 977 0x30, // --11----
uehara00 3:eec13a411e94 978 0x50, // -1-1----
uehara00 3:eec13a411e94 979 0x90, // 1--1----
uehara00 3:eec13a411e94 980 0xf8, // 11111---
uehara00 3:eec13a411e94 981 0x10, // ---1----
uehara00 3:eec13a411e94 982 0x10, // ---1----
uehara00 3:eec13a411e94 983 0x00, // --------
uehara00 3:eec13a411e94 984 0x00, // --------
uehara00 3:eec13a411e94 985 },
uehara00 3:eec13a411e94 986 { 0xf8, // 11111--- 0x35 5
uehara00 3:eec13a411e94 987 0x80, // 1-------
uehara00 3:eec13a411e94 988 0xf0, // 1111----
uehara00 3:eec13a411e94 989 0x08, // ----1---
uehara00 3:eec13a411e94 990 0x08, // ----1---
uehara00 3:eec13a411e94 991 0x88, // 1---1---
uehara00 3:eec13a411e94 992 0x70, // -111----
uehara00 3:eec13a411e94 993 0x00, // --------
uehara00 3:eec13a411e94 994 0x00, // --------
uehara00 3:eec13a411e94 995 },
uehara00 3:eec13a411e94 996 { 0x30, // --11---- 0x36 6
uehara00 3:eec13a411e94 997 0x40, // -1------
uehara00 3:eec13a411e94 998 0x80, // 1-------
uehara00 3:eec13a411e94 999 0xf0, // 1111----
uehara00 3:eec13a411e94 1000 0x88, // 1---1---
uehara00 3:eec13a411e94 1001 0x88, // 1---1---
uehara00 3:eec13a411e94 1002 0x70, // -111----
uehara00 3:eec13a411e94 1003 0x00, // --------
uehara00 3:eec13a411e94 1004 0x00, // --------
uehara00 3:eec13a411e94 1005 },
uehara00 3:eec13a411e94 1006 { 0xf8, // 11111--- 0x37 7
uehara00 3:eec13a411e94 1007 0x08, // ----1---
uehara00 3:eec13a411e94 1008 0x08, // ----1---
uehara00 3:eec13a411e94 1009 0x10, // ---1----
uehara00 3:eec13a411e94 1010 0x20, // --1-----
uehara00 3:eec13a411e94 1011 0x40, // -1------
uehara00 3:eec13a411e94 1012 0x40, // -1------
uehara00 3:eec13a411e94 1013 0x00, // --------
uehara00 3:eec13a411e94 1014 0x00, // --------
uehara00 3:eec13a411e94 1015 },
uehara00 3:eec13a411e94 1016 { 0x70, // -111---- 0x38 8
uehara00 3:eec13a411e94 1017 0x88, // 1---1---
uehara00 3:eec13a411e94 1018 0x88, // 1---1---
uehara00 3:eec13a411e94 1019 0x70, // -111----
uehara00 3:eec13a411e94 1020 0x88, // 1---1---
uehara00 3:eec13a411e94 1021 0x88, // 1---1---
uehara00 3:eec13a411e94 1022 0x70, // -111----
uehara00 3:eec13a411e94 1023 0x00, // --------
uehara00 3:eec13a411e94 1024 0x00, // --------
uehara00 3:eec13a411e94 1025 },
uehara00 3:eec13a411e94 1026 { 0x70, // -111---- 0x39 9
uehara00 3:eec13a411e94 1027 0x88, // 1---1---
uehara00 3:eec13a411e94 1028 0x88, // 1---1---
uehara00 3:eec13a411e94 1029 0x78, // -1111---
uehara00 3:eec13a411e94 1030 0x10, // ---1----
uehara00 3:eec13a411e94 1031 0x20, // --1-----
uehara00 3:eec13a411e94 1032 0x40, // -1------
uehara00 3:eec13a411e94 1033 0x00, // --------
uehara00 3:eec13a411e94 1034 0x00, // --------
uehara00 3:eec13a411e94 1035 },
uehara00 3:eec13a411e94 1036 { 0x00, // -------- 0x3a :
uehara00 3:eec13a411e94 1037 0x30, // --11----
uehara00 3:eec13a411e94 1038 0x30, // --11----
uehara00 3:eec13a411e94 1039 0x00, // --------
uehara00 3:eec13a411e94 1040 0x30, // --11----
uehara00 3:eec13a411e94 1041 0x30, // --11----
uehara00 3:eec13a411e94 1042 0x00, // --------
uehara00 3:eec13a411e94 1043 0x00, // --------
uehara00 3:eec13a411e94 1044 0x00, // --------
uehara00 3:eec13a411e94 1045 },
uehara00 3:eec13a411e94 1046 { 0x00, // -------- 0x3b ;
uehara00 3:eec13a411e94 1047 0x30, // --11----
uehara00 3:eec13a411e94 1048 0x30, // --11----
uehara00 3:eec13a411e94 1049 0x00, // --------
uehara00 3:eec13a411e94 1050 0x30, // --11----
uehara00 3:eec13a411e94 1051 0x10, // ---1----
uehara00 3:eec13a411e94 1052 0x20, // --1-----
uehara00 3:eec13a411e94 1053 0x00, // --------
uehara00 3:eec13a411e94 1054 0x00, // --------
uehara00 3:eec13a411e94 1055 },
uehara00 3:eec13a411e94 1056 { 0x08, // ----1--- 0x3c <
uehara00 3:eec13a411e94 1057 0x10, // ---1----
uehara00 3:eec13a411e94 1058 0x20, // --1-----
uehara00 3:eec13a411e94 1059 0x40, // -1------
uehara00 3:eec13a411e94 1060 0x20, // --1-----
uehara00 3:eec13a411e94 1061 0x10, // ---1----
uehara00 3:eec13a411e94 1062 0x08, // ----1---
uehara00 3:eec13a411e94 1063 0x00, // --------
uehara00 3:eec13a411e94 1064 0x00, // --------
uehara00 3:eec13a411e94 1065 },
uehara00 3:eec13a411e94 1066 { 0x00, // -------- 0x3d =
uehara00 3:eec13a411e94 1067 0x00, // --------
uehara00 3:eec13a411e94 1068 0xf8, // 11111---
uehara00 3:eec13a411e94 1069 0x00, // --------
uehara00 3:eec13a411e94 1070 0xf8, // 11111---
uehara00 3:eec13a411e94 1071 0x00, // --------
uehara00 3:eec13a411e94 1072 0x00, // --------
uehara00 3:eec13a411e94 1073 0x00, // --------
uehara00 3:eec13a411e94 1074 0x00, // --------
uehara00 3:eec13a411e94 1075 },
uehara00 3:eec13a411e94 1076 { 0x80, // 1------- 0x3e >
uehara00 3:eec13a411e94 1077 0x40, // -1------
uehara00 3:eec13a411e94 1078 0x20, // --1-----
uehara00 3:eec13a411e94 1079 0x10, // ---1----
uehara00 3:eec13a411e94 1080 0x20, // --1-----
uehara00 3:eec13a411e94 1081 0x40, // -1------
uehara00 3:eec13a411e94 1082 0x80, // 1-------
uehara00 3:eec13a411e94 1083 0x00, // --------
uehara00 3:eec13a411e94 1084 0x00, // --------
uehara00 3:eec13a411e94 1085 },
uehara00 3:eec13a411e94 1086 { 0x70, // -111---- 0x3f ?
uehara00 3:eec13a411e94 1087 0x88, // 1---1---
uehara00 3:eec13a411e94 1088 0x10, // ---1----
uehara00 3:eec13a411e94 1089 0x20, // --1-----
uehara00 3:eec13a411e94 1090 0x20, // --1-----
uehara00 3:eec13a411e94 1091 0x00, // --------
uehara00 3:eec13a411e94 1092 0x20, // --1-----
uehara00 3:eec13a411e94 1093 0x00, // --------
uehara00 3:eec13a411e94 1094 0x00, // --------
uehara00 3:eec13a411e94 1095 },
uehara00 3:eec13a411e94 1096 { 0x70, // -111---- 0x40 @
uehara00 3:eec13a411e94 1097 0x88, // 1---1---
uehara00 3:eec13a411e94 1098 0x98, // 1--11---
uehara00 3:eec13a411e94 1099 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1100 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1101 0x98, // 1--11---
uehara00 3:eec13a411e94 1102 0x40, // -1------
uehara00 3:eec13a411e94 1103 0x00, // --------
uehara00 3:eec13a411e94 1104 0x00, // --------
uehara00 3:eec13a411e94 1105 },
uehara00 3:eec13a411e94 1106 { 0x20, // --1----- 0x41 A
uehara00 3:eec13a411e94 1107 0x50, // -1-1----
uehara00 3:eec13a411e94 1108 0x88, // 1---1---
uehara00 3:eec13a411e94 1109 0x88, // 1---1---
uehara00 3:eec13a411e94 1110 0xf8, // 11111---
uehara00 3:eec13a411e94 1111 0x88, // 1---1---
uehara00 3:eec13a411e94 1112 0x88, // 1---1---
uehara00 3:eec13a411e94 1113 0x00, // --------
uehara00 3:eec13a411e94 1114 0x00, // --------
uehara00 3:eec13a411e94 1115 },
uehara00 3:eec13a411e94 1116 { 0xf0, // 1111---- 0x42 B
uehara00 3:eec13a411e94 1117 0x48, // -1--1---
uehara00 3:eec13a411e94 1118 0x48, // -1--1---
uehara00 3:eec13a411e94 1119 0x70, // -111----
uehara00 3:eec13a411e94 1120 0x48, // -1--1---
uehara00 3:eec13a411e94 1121 0x48, // -1--1---
uehara00 3:eec13a411e94 1122 0xf0, // 1111----
uehara00 3:eec13a411e94 1123 0x00, // --------
uehara00 3:eec13a411e94 1124 0x00, // --------
uehara00 3:eec13a411e94 1125 },
uehara00 3:eec13a411e94 1126 { 0x78, // -1111--- 0x43 C
uehara00 3:eec13a411e94 1127 0x80, // 1-------
uehara00 3:eec13a411e94 1128 0x80, // 1-------
uehara00 3:eec13a411e94 1129 0x80, // 1-------
uehara00 3:eec13a411e94 1130 0x80, // 1-------
uehara00 3:eec13a411e94 1131 0x80, // 1-------
uehara00 3:eec13a411e94 1132 0x78, // -1111---
uehara00 3:eec13a411e94 1133 0x00, // --------
uehara00 3:eec13a411e94 1134 0x00, // --------
uehara00 3:eec13a411e94 1135 },
uehara00 3:eec13a411e94 1136 { 0xf0, // 1111---- 0x44 D
uehara00 3:eec13a411e94 1137 0x48, // -1--1---
uehara00 3:eec13a411e94 1138 0x48, // -1--1---
uehara00 3:eec13a411e94 1139 0x48, // -1--1---
uehara00 3:eec13a411e94 1140 0x48, // -1--1---
uehara00 3:eec13a411e94 1141 0x48, // -1--1---
uehara00 3:eec13a411e94 1142 0xf0, // 1111----
uehara00 3:eec13a411e94 1143 0x00, // --------
uehara00 3:eec13a411e94 1144 0x00, // --------
uehara00 3:eec13a411e94 1145 },
uehara00 3:eec13a411e94 1146 { 0xf8, // 11111--- 0x45 E
uehara00 3:eec13a411e94 1147 0x80, // 1-------
uehara00 3:eec13a411e94 1148 0x80, // 1-------
uehara00 3:eec13a411e94 1149 0xf0, // 1111----
uehara00 3:eec13a411e94 1150 0x80, // 1-------
uehara00 3:eec13a411e94 1151 0x80, // 1-------
uehara00 3:eec13a411e94 1152 0xf8, // 11111---
uehara00 3:eec13a411e94 1153 0x00, // --------
uehara00 3:eec13a411e94 1154 0x00, // --------
uehara00 3:eec13a411e94 1155 },
uehara00 3:eec13a411e94 1156 { 0xf8, // 11111--- 0x46 F
uehara00 3:eec13a411e94 1157 0x80, // 1-------
uehara00 3:eec13a411e94 1158 0x80, // 1-------
uehara00 3:eec13a411e94 1159 0xf0, // 1111----
uehara00 3:eec13a411e94 1160 0x80, // 1-------
uehara00 3:eec13a411e94 1161 0x80, // 1-------
uehara00 3:eec13a411e94 1162 0x80, // 1-------
uehara00 3:eec13a411e94 1163 0x00, // --------
uehara00 3:eec13a411e94 1164 0x00, // --------
uehara00 3:eec13a411e94 1165 },
uehara00 3:eec13a411e94 1166 { 0x78, // -1111--- 0x47 G
uehara00 3:eec13a411e94 1167 0x80, // 1-------
uehara00 3:eec13a411e94 1168 0x80, // 1-------
uehara00 3:eec13a411e94 1169 0xb8, // 1-111---
uehara00 3:eec13a411e94 1170 0x88, // 1---1---
uehara00 3:eec13a411e94 1171 0x88, // 1---1---
uehara00 3:eec13a411e94 1172 0x78, // -1111---
uehara00 3:eec13a411e94 1173 0x00, // --------
uehara00 3:eec13a411e94 1174 0x00, // --------
uehara00 3:eec13a411e94 1175 },
uehara00 3:eec13a411e94 1176 { 0x88, // 1---1--- 0x48 H
uehara00 3:eec13a411e94 1177 0x88, // 1---1---
uehara00 3:eec13a411e94 1178 0x88, // 1---1---
uehara00 3:eec13a411e94 1179 0xf8, // 11111---
uehara00 3:eec13a411e94 1180 0x88, // 1---1---
uehara00 3:eec13a411e94 1181 0x88, // 1---1---
uehara00 3:eec13a411e94 1182 0x88, // 1---1---
uehara00 3:eec13a411e94 1183 0x00, // --------
uehara00 3:eec13a411e94 1184 0x00, // --------
uehara00 3:eec13a411e94 1185 },
uehara00 3:eec13a411e94 1186 { 0x70, // -111---- 0x49 I
uehara00 3:eec13a411e94 1187 0x20, // --1-----
uehara00 3:eec13a411e94 1188 0x20, // --1-----
uehara00 3:eec13a411e94 1189 0x20, // --1-----
uehara00 3:eec13a411e94 1190 0x20, // --1-----
uehara00 3:eec13a411e94 1191 0x20, // --1-----
uehara00 3:eec13a411e94 1192 0x70, // -111----
uehara00 3:eec13a411e94 1193 0x00, // --------
uehara00 3:eec13a411e94 1194 0x00, // --------
uehara00 3:eec13a411e94 1195 },
uehara00 3:eec13a411e94 1196 { 0x38, // --111--- 0x4a J
uehara00 3:eec13a411e94 1197 0x10, // ---1----
uehara00 3:eec13a411e94 1198 0x10, // ---1----
uehara00 3:eec13a411e94 1199 0x10, // ---1----
uehara00 3:eec13a411e94 1200 0x10, // ---1----
uehara00 3:eec13a411e94 1201 0x10, // ---1----
uehara00 3:eec13a411e94 1202 0xe0, // 111-----
uehara00 3:eec13a411e94 1203 0x00, // --------
uehara00 3:eec13a411e94 1204 0x00, // --------
uehara00 3:eec13a411e94 1205 },
uehara00 3:eec13a411e94 1206 { 0x88, // 1---1--- 0x4b K
uehara00 3:eec13a411e94 1207 0x90, // 1--1----
uehara00 3:eec13a411e94 1208 0xa0, // 1-1-----
uehara00 3:eec13a411e94 1209 0xc0, // 11------
uehara00 3:eec13a411e94 1210 0xa0, // 1-1-----
uehara00 3:eec13a411e94 1211 0x90, // 1--1----
uehara00 3:eec13a411e94 1212 0x88, // 1---1---
uehara00 3:eec13a411e94 1213 0x00, // --------
uehara00 3:eec13a411e94 1214 0x00, // --------
uehara00 3:eec13a411e94 1215 },
uehara00 3:eec13a411e94 1216 { 0x80, // 1------- 0x4c L
uehara00 3:eec13a411e94 1217 0x80, // 1-------
uehara00 3:eec13a411e94 1218 0x80, // 1-------
uehara00 3:eec13a411e94 1219 0x80, // 1-------
uehara00 3:eec13a411e94 1220 0x80, // 1-------
uehara00 3:eec13a411e94 1221 0x80, // 1-------
uehara00 3:eec13a411e94 1222 0xf8, // 11111---
uehara00 3:eec13a411e94 1223 0x00, // --------
uehara00 3:eec13a411e94 1224 0x00, // --------
uehara00 3:eec13a411e94 1225 },
uehara00 3:eec13a411e94 1226 { 0x88, // 1---1--- 0x4d M
uehara00 3:eec13a411e94 1227 0xd8, // 11-11---
uehara00 3:eec13a411e94 1228 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1229 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1230 0x88, // 1---1---
uehara00 3:eec13a411e94 1231 0x88, // 1---1---
uehara00 3:eec13a411e94 1232 0x88, // 1---1---
uehara00 3:eec13a411e94 1233 0x00, // --------
uehara00 3:eec13a411e94 1234 0x00, // --------
uehara00 3:eec13a411e94 1235 },
uehara00 3:eec13a411e94 1236 { 0x88, // 1---1--- 0x4e N
uehara00 3:eec13a411e94 1237 0x88, // 1---1---
uehara00 3:eec13a411e94 1238 0xc8, // 11--1---
uehara00 3:eec13a411e94 1239 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1240 0x98, // 1--11---
uehara00 3:eec13a411e94 1241 0x88, // 1---1---
uehara00 3:eec13a411e94 1242 0x88, // 1---1---
uehara00 3:eec13a411e94 1243 0x00, // --------
uehara00 3:eec13a411e94 1244 0x00, // --------
uehara00 3:eec13a411e94 1245 },
uehara00 3:eec13a411e94 1246 { 0x70, // -111---- 0x4f O
uehara00 3:eec13a411e94 1247 0x88, // 1---1---
uehara00 3:eec13a411e94 1248 0x88, // 1---1---
uehara00 3:eec13a411e94 1249 0x88, // 1---1---
uehara00 3:eec13a411e94 1250 0x88, // 1---1---
uehara00 3:eec13a411e94 1251 0x88, // 1---1---
uehara00 3:eec13a411e94 1252 0x70, // -111----
uehara00 3:eec13a411e94 1253 0x00, // --------
uehara00 3:eec13a411e94 1254 0x00, // --------
uehara00 3:eec13a411e94 1255 },
uehara00 3:eec13a411e94 1256 { 0xf0, // 1111---- 0x50 P
uehara00 3:eec13a411e94 1257 0x88, // 1---1---
uehara00 3:eec13a411e94 1258 0x88, // 1---1---
uehara00 3:eec13a411e94 1259 0xf0, // 1111----
uehara00 3:eec13a411e94 1260 0x80, // 1-------
uehara00 3:eec13a411e94 1261 0x80, // 1-------
uehara00 3:eec13a411e94 1262 0x80, // 1-------
uehara00 3:eec13a411e94 1263 0x00, // --------
uehara00 3:eec13a411e94 1264 0x00, // --------
uehara00 3:eec13a411e94 1265 },
uehara00 3:eec13a411e94 1266 { 0x70, // -111---- 0x51 Q
uehara00 3:eec13a411e94 1267 0x88, // 1---1---
uehara00 3:eec13a411e94 1268 0x88, // 1---1---
uehara00 3:eec13a411e94 1269 0x88, // 1---1---
uehara00 3:eec13a411e94 1270 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1271 0x90, // 1--1----
uehara00 3:eec13a411e94 1272 0x68, // -11-1---
uehara00 3:eec13a411e94 1273 0x00, // --------
uehara00 3:eec13a411e94 1274 0x00, // --------
uehara00 3:eec13a411e94 1275 },
uehara00 3:eec13a411e94 1276 { 0xf0, // 1111---- 0x52 R
uehara00 3:eec13a411e94 1277 0x88, // 1---1---
uehara00 3:eec13a411e94 1278 0x88, // 1---1---
uehara00 3:eec13a411e94 1279 0xf0, // 1111----
uehara00 3:eec13a411e94 1280 0xa0, // 1-1-----
uehara00 3:eec13a411e94 1281 0x90, // 1--1----
uehara00 3:eec13a411e94 1282 0x88, // 1---1---
uehara00 3:eec13a411e94 1283 0x00, // --------
uehara00 3:eec13a411e94 1284 0x00, // --------
uehara00 3:eec13a411e94 1285 },
uehara00 3:eec13a411e94 1286 { 0x78, // -1111--- 0x53 S
uehara00 3:eec13a411e94 1287 0x80, // 1-------
uehara00 3:eec13a411e94 1288 0x80, // 1-------
uehara00 3:eec13a411e94 1289 0x70, // -111----
uehara00 3:eec13a411e94 1290 0x08, // ----1---
uehara00 3:eec13a411e94 1291 0x08, // ----1---
uehara00 3:eec13a411e94 1292 0xf0, // 1111----
uehara00 3:eec13a411e94 1293 0x00, // --------
uehara00 3:eec13a411e94 1294 0x00, // --------
uehara00 3:eec13a411e94 1295 },
uehara00 3:eec13a411e94 1296 { 0xf8, // 11111--- 0x54 T
uehara00 3:eec13a411e94 1297 0x20, // --1-----
uehara00 3:eec13a411e94 1298 0x20, // --1-----
uehara00 3:eec13a411e94 1299 0x20, // --1-----
uehara00 3:eec13a411e94 1300 0x20, // --1-----
uehara00 3:eec13a411e94 1301 0x20, // --1-----
uehara00 3:eec13a411e94 1302 0x20, // --1-----
uehara00 3:eec13a411e94 1303 0x00, // --------
uehara00 3:eec13a411e94 1304 0x00, // --------
uehara00 3:eec13a411e94 1305 },
uehara00 3:eec13a411e94 1306 { 0x88, // 1---1--- 0x55 U
uehara00 3:eec13a411e94 1307 0x88, // 1---1---
uehara00 3:eec13a411e94 1308 0x88, // 1---1---
uehara00 3:eec13a411e94 1309 0x88, // 1---1---
uehara00 3:eec13a411e94 1310 0x88, // 1---1---
uehara00 3:eec13a411e94 1311 0x88, // 1---1---
uehara00 3:eec13a411e94 1312 0x70, // -111----
uehara00 3:eec13a411e94 1313 0x00, // --------
uehara00 3:eec13a411e94 1314 0x00, // --------
uehara00 3:eec13a411e94 1315 },
uehara00 3:eec13a411e94 1316 { 0x88, // 1---1--- 0x56 V
uehara00 3:eec13a411e94 1317 0x88, // 1---1---
uehara00 3:eec13a411e94 1318 0x88, // 1---1---
uehara00 3:eec13a411e94 1319 0x88, // 1---1---
uehara00 3:eec13a411e94 1320 0x50, // -1-1----
uehara00 3:eec13a411e94 1321 0x50, // -1-1----
uehara00 3:eec13a411e94 1322 0x20, // --1-----
uehara00 3:eec13a411e94 1323 0x00, // --------
uehara00 3:eec13a411e94 1324 0x00, // --------
uehara00 3:eec13a411e94 1325 },
uehara00 3:eec13a411e94 1326 { 0x88, // 1---1--- 0x57 W
uehara00 3:eec13a411e94 1327 0x88, // 1---1---
uehara00 3:eec13a411e94 1328 0x88, // 1---1---
uehara00 3:eec13a411e94 1329 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1330 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1331 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1332 0x50, // -1-1----
uehara00 3:eec13a411e94 1333 0x00, // --------
uehara00 3:eec13a411e94 1334 0x00, // --------
uehara00 3:eec13a411e94 1335 },
uehara00 3:eec13a411e94 1336 { 0x88, // 1---1--- 0x58 X
uehara00 3:eec13a411e94 1337 0x88, // 1---1---
uehara00 3:eec13a411e94 1338 0x50, // -1-1----
uehara00 3:eec13a411e94 1339 0x20, // --1-----
uehara00 3:eec13a411e94 1340 0x50, // -1-1----
uehara00 3:eec13a411e94 1341 0x88, // 1---1---
uehara00 3:eec13a411e94 1342 0x88, // 1---1---
uehara00 3:eec13a411e94 1343 0x00, // --------
uehara00 3:eec13a411e94 1344 0x00, // --------
uehara00 3:eec13a411e94 1345 },
uehara00 3:eec13a411e94 1346 { 0x88, // 1---1--- 0x59 Y
uehara00 3:eec13a411e94 1347 0x88, // 1---1---
uehara00 3:eec13a411e94 1348 0x50, // -1-1----
uehara00 3:eec13a411e94 1349 0x20, // --1-----
uehara00 3:eec13a411e94 1350 0x20, // --1-----
uehara00 3:eec13a411e94 1351 0x20, // --1-----
uehara00 3:eec13a411e94 1352 0x20, // --1-----
uehara00 3:eec13a411e94 1353 0x00, // --------
uehara00 3:eec13a411e94 1354 0x00, // --------
uehara00 3:eec13a411e94 1355 },
uehara00 3:eec13a411e94 1356 { 0xf8, // 11111--- 0x5a Z
uehara00 3:eec13a411e94 1357 0x08, // ----1---
uehara00 3:eec13a411e94 1358 0x10, // ---1----
uehara00 3:eec13a411e94 1359 0x20, // --1-----
uehara00 3:eec13a411e94 1360 0x40, // -1------
uehara00 3:eec13a411e94 1361 0x80, // 1-------
uehara00 3:eec13a411e94 1362 0xf8, // 11111---
uehara00 3:eec13a411e94 1363 0x00, // --------
uehara00 3:eec13a411e94 1364 0x00, // --------
uehara00 3:eec13a411e94 1365 },
uehara00 3:eec13a411e94 1366 { 0x70, // -111---- 0x5b [
uehara00 3:eec13a411e94 1367 0x40, // -1------
uehara00 3:eec13a411e94 1368 0x40, // -1------
uehara00 3:eec13a411e94 1369 0x40, // -1------
uehara00 3:eec13a411e94 1370 0x40, // -1------
uehara00 3:eec13a411e94 1371 0x40, // -1------
uehara00 3:eec13a411e94 1372 0x70, // -111----
uehara00 3:eec13a411e94 1373 0x00, // --------
uehara00 3:eec13a411e94 1374 0x00, // --------
uehara00 3:eec13a411e94 1375 },
uehara00 3:eec13a411e94 1376 { 0x00, // -------- 0x5c back slash
uehara00 3:eec13a411e94 1377 0x80, // 1-------
uehara00 3:eec13a411e94 1378 0x40, // -1------
uehara00 3:eec13a411e94 1379 0x20, // --1-----
uehara00 3:eec13a411e94 1380 0x10, // ---1----
uehara00 3:eec13a411e94 1381 0x08, // ----1---
uehara00 3:eec13a411e94 1382 0x00, // --------
uehara00 3:eec13a411e94 1383 0x00, // --------
uehara00 3:eec13a411e94 1384 0x00, // --------
uehara00 3:eec13a411e94 1385 },
uehara00 3:eec13a411e94 1386 { 0x70, // -111---- 0x5d ]
uehara00 3:eec13a411e94 1387 0x10, // ---1----
uehara00 3:eec13a411e94 1388 0x10, // ---1----
uehara00 3:eec13a411e94 1389 0x10, // ---1----
uehara00 3:eec13a411e94 1390 0x10, // ---1----
uehara00 3:eec13a411e94 1391 0x10, // ---1----
uehara00 3:eec13a411e94 1392 0x70, // -111----
uehara00 3:eec13a411e94 1393 0x00, // --------
uehara00 3:eec13a411e94 1394 0x00, // --------
uehara00 3:eec13a411e94 1395 },
uehara00 3:eec13a411e94 1396 { 0x20, // --1----- 0x5e ^
uehara00 3:eec13a411e94 1397 0x50, // -1-1----
uehara00 3:eec13a411e94 1398 0x88, // 1---1---
uehara00 3:eec13a411e94 1399 0x00, // --------
uehara00 3:eec13a411e94 1400 0x00, // --------
uehara00 3:eec13a411e94 1401 0x00, // --------
uehara00 3:eec13a411e94 1402 0x00, // --------
uehara00 3:eec13a411e94 1403 0x00, // --------
uehara00 3:eec13a411e94 1404 0x00, // --------
uehara00 3:eec13a411e94 1405 },
uehara00 3:eec13a411e94 1406 { 0x00, // -------- 0x5f _
uehara00 3:eec13a411e94 1407 0x00, // --------
uehara00 3:eec13a411e94 1408 0x00, // --------
uehara00 3:eec13a411e94 1409 0x00, // --------
uehara00 3:eec13a411e94 1410 0x00, // --------
uehara00 3:eec13a411e94 1411 0x00, // --------
uehara00 3:eec13a411e94 1412 0x00, // --------
uehara00 3:eec13a411e94 1413 0xf8, // 11111---
uehara00 3:eec13a411e94 1414 0x00, // --------
uehara00 3:eec13a411e94 1415 },
uehara00 3:eec13a411e94 1416 { 0x60, // -11----- 0x60 `
uehara00 3:eec13a411e94 1417 0x20, // --1-----
uehara00 3:eec13a411e94 1418 0x00, // --------
uehara00 3:eec13a411e94 1419 0x00, // --------
uehara00 3:eec13a411e94 1420 0x00, // --------
uehara00 3:eec13a411e94 1421 0x00, // --------
uehara00 3:eec13a411e94 1422 0x00, // --------
uehara00 3:eec13a411e94 1423 0x00, // --------
uehara00 3:eec13a411e94 1424 0x00, // --------
uehara00 3:eec13a411e94 1425 },
uehara00 3:eec13a411e94 1426 { 0x00, // -------- 0x61 a
uehara00 3:eec13a411e94 1427 0x00, // --------
uehara00 3:eec13a411e94 1428 0x70, // -111----
uehara00 3:eec13a411e94 1429 0x08, // ----1---
uehara00 3:eec13a411e94 1430 0x78, // -1111---
uehara00 3:eec13a411e94 1431 0x88, // 1---1---
uehara00 3:eec13a411e94 1432 0x78, // -1111---
uehara00 3:eec13a411e94 1433 0x00, // --------
uehara00 3:eec13a411e94 1434 0x00, // --------
uehara00 3:eec13a411e94 1435 },
uehara00 3:eec13a411e94 1436 { 0x80, // 1------- 0x62 b
uehara00 3:eec13a411e94 1437 0x80, // 1-------
uehara00 3:eec13a411e94 1438 0xf0, // 1111----
uehara00 3:eec13a411e94 1439 0x88, // 1---1---
uehara00 3:eec13a411e94 1440 0x88, // 1---1---
uehara00 3:eec13a411e94 1441 0x88, // 1---1---
uehara00 3:eec13a411e94 1442 0xf0, // 1111----
uehara00 3:eec13a411e94 1443 0x00, // --------
uehara00 3:eec13a411e94 1444 0x00, // --------
uehara00 3:eec13a411e94 1445 },
uehara00 3:eec13a411e94 1446 { 0x00, // -------- 0x63 c
uehara00 3:eec13a411e94 1447 0x00, // --------
uehara00 3:eec13a411e94 1448 0x78, // -1111---
uehara00 3:eec13a411e94 1449 0x80, // 1-------
uehara00 3:eec13a411e94 1450 0x80, // 1-------
uehara00 3:eec13a411e94 1451 0x80, // 1-------
uehara00 3:eec13a411e94 1452 0x78, // -1111---
uehara00 3:eec13a411e94 1453 0x00, // --------
uehara00 3:eec13a411e94 1454 0x00, // --------
uehara00 3:eec13a411e94 1455 },
uehara00 3:eec13a411e94 1456 { 0x08, // ----1--- 0x64 d
uehara00 3:eec13a411e94 1457 0x08, // ----1---
uehara00 3:eec13a411e94 1458 0x78, // -1111---
uehara00 3:eec13a411e94 1459 0x88, // 1---1---
uehara00 3:eec13a411e94 1460 0x88, // 1---1---
uehara00 3:eec13a411e94 1461 0x88, // 1---1---
uehara00 3:eec13a411e94 1462 0x78, // -1111---
uehara00 3:eec13a411e94 1463 0x00, // --------
uehara00 3:eec13a411e94 1464 0x00, // --------
uehara00 3:eec13a411e94 1465 },
uehara00 3:eec13a411e94 1466 { 0x00, // -------- 0x65 e
uehara00 3:eec13a411e94 1467 0x00, // --------
uehara00 3:eec13a411e94 1468 0x70, // -111----
uehara00 3:eec13a411e94 1469 0x88, // 1---1---
uehara00 3:eec13a411e94 1470 0xf8, // 11111---
uehara00 3:eec13a411e94 1471 0x80, // 1-------
uehara00 3:eec13a411e94 1472 0x78, // -1111---
uehara00 3:eec13a411e94 1473 0x00, // --------
uehara00 3:eec13a411e94 1474 0x00, // --------
uehara00 3:eec13a411e94 1475 },
uehara00 3:eec13a411e94 1476 { 0x18, // ---11--- 0x66 f
uehara00 3:eec13a411e94 1477 0x20, // --1-----
uehara00 3:eec13a411e94 1478 0x20, // --1-----
uehara00 3:eec13a411e94 1479 0xf8, // 11111---
uehara00 3:eec13a411e94 1480 0x20, // --1-----
uehara00 3:eec13a411e94 1481 0x20, // --1-----
uehara00 3:eec13a411e94 1482 0x20, // --1-----
uehara00 3:eec13a411e94 1483 0x00, // --------
uehara00 3:eec13a411e94 1484 0x00, // --------
uehara00 3:eec13a411e94 1485 },
uehara00 3:eec13a411e94 1486 { 0x00, // -------- 0x67 g
uehara00 3:eec13a411e94 1487 0x00, // --------
uehara00 3:eec13a411e94 1488 0x78, // -1111---
uehara00 3:eec13a411e94 1489 0x88, // 1---1---
uehara00 3:eec13a411e94 1490 0x88, // 1---1---
uehara00 3:eec13a411e94 1491 0x88, // 1---1---
uehara00 3:eec13a411e94 1492 0x78, // -1111---
uehara00 3:eec13a411e94 1493 0x08, // ----1---
uehara00 3:eec13a411e94 1494 0x70, // -111----
uehara00 3:eec13a411e94 1495 },
uehara00 3:eec13a411e94 1496 { 0x80, // 1------- 0x68 h
uehara00 3:eec13a411e94 1497 0x80, // 1-------
uehara00 3:eec13a411e94 1498 0xf0, // 1111----
uehara00 3:eec13a411e94 1499 0x88, // 1---1---
uehara00 3:eec13a411e94 1500 0x88, // 1---1---
uehara00 3:eec13a411e94 1501 0x88, // 1---1---
uehara00 3:eec13a411e94 1502 0x88, // 1---1---
uehara00 3:eec13a411e94 1503 0x00, // --------
uehara00 3:eec13a411e94 1504 0x00, // --------
uehara00 3:eec13a411e94 1505 },
uehara00 3:eec13a411e94 1506 { 0x20, // --1----- 0x69 i
uehara00 3:eec13a411e94 1507 0x00, // --------
uehara00 3:eec13a411e94 1508 0x60, // -11-----
uehara00 3:eec13a411e94 1509 0x20, // --1-----
uehara00 3:eec13a411e94 1510 0x20, // --1-----
uehara00 3:eec13a411e94 1511 0x20, // --1-----
uehara00 3:eec13a411e94 1512 0x70, // -111----
uehara00 3:eec13a411e94 1513 0x00, // --------
uehara00 3:eec13a411e94 1514 0x00, // --------
uehara00 3:eec13a411e94 1515 },
uehara00 3:eec13a411e94 1516 { 0x20, // --1----- 0x6a j
uehara00 3:eec13a411e94 1517 0x00, // --------
uehara00 3:eec13a411e94 1518 0x60, // -11-----
uehara00 3:eec13a411e94 1519 0x20, // --1-----
uehara00 3:eec13a411e94 1520 0x20, // --1-----
uehara00 3:eec13a411e94 1521 0x20, // --1-----
uehara00 3:eec13a411e94 1522 0x20, // --1-----
uehara00 3:eec13a411e94 1523 0x40, // -1------
uehara00 3:eec13a411e94 1524 0x80, // 1-------
uehara00 3:eec13a411e94 1525 },
uehara00 3:eec13a411e94 1526 { 0x80, // 1------- 0x6b k
uehara00 3:eec13a411e94 1527 0x80, // 1-------
uehara00 3:eec13a411e94 1528 0x88, // 1---1---
uehara00 3:eec13a411e94 1529 0x90, // 1--1----
uehara00 3:eec13a411e94 1530 0xe0, // 111-----
uehara00 3:eec13a411e94 1531 0x90, // 1--1----
uehara00 3:eec13a411e94 1532 0x88, // 1---1---
uehara00 3:eec13a411e94 1533 0x00, // --------
uehara00 3:eec13a411e94 1534 0x00, // --------
uehara00 3:eec13a411e94 1535 },
uehara00 3:eec13a411e94 1536 { 0x60, // -11----- 0x6c l
uehara00 3:eec13a411e94 1537 0x20, // --1-----
uehara00 3:eec13a411e94 1538 0x20, // --1-----
uehara00 3:eec13a411e94 1539 0x20, // --1-----
uehara00 3:eec13a411e94 1540 0x20, // --1-----
uehara00 3:eec13a411e94 1541 0x20, // --1-----
uehara00 3:eec13a411e94 1542 0x20, // --1-----
uehara00 3:eec13a411e94 1543 0x00, // --------
uehara00 3:eec13a411e94 1544 0x00, // --------
uehara00 3:eec13a411e94 1545 },
uehara00 3:eec13a411e94 1546 { 0x00, // -------- 0x6d m
uehara00 3:eec13a411e94 1547 0x00, // --------
uehara00 3:eec13a411e94 1548 0xd0, // 11-1----
uehara00 3:eec13a411e94 1549 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1550 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1551 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1552 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1553 0x00, // --------
uehara00 3:eec13a411e94 1554 0x00, // --------
uehara00 3:eec13a411e94 1555 },
uehara00 3:eec13a411e94 1556 { 0x00, // -------- 0x6e n
uehara00 3:eec13a411e94 1557 0x00, // --------
uehara00 3:eec13a411e94 1558 0xf0, // 1111----
uehara00 3:eec13a411e94 1559 0x88, // 1---1---
uehara00 3:eec13a411e94 1560 0x88, // 1---1---
uehara00 3:eec13a411e94 1561 0x88, // 1---1---
uehara00 3:eec13a411e94 1562 0x88, // 1---1---
uehara00 3:eec13a411e94 1563 0x00, // --------
uehara00 3:eec13a411e94 1564 0x00, // --------
uehara00 3:eec13a411e94 1565 },
uehara00 3:eec13a411e94 1566 { 0x00, // -------- 0x6f o
uehara00 3:eec13a411e94 1567 0x00, // --------
uehara00 3:eec13a411e94 1568 0x70, // -111----
uehara00 3:eec13a411e94 1569 0x88, // 1---1---
uehara00 3:eec13a411e94 1570 0x88, // 1---1---
uehara00 3:eec13a411e94 1571 0x88, // 1---1---
uehara00 3:eec13a411e94 1572 0x70, // -111----
uehara00 3:eec13a411e94 1573 0x00, // --------
uehara00 3:eec13a411e94 1574 0x00, // --------
uehara00 3:eec13a411e94 1575 },
uehara00 3:eec13a411e94 1576 { 0x00, // -------- 0x70 p
uehara00 3:eec13a411e94 1577 0x00, // --------
uehara00 3:eec13a411e94 1578 0xf0, // 1111----
uehara00 3:eec13a411e94 1579 0x88, // 1---1---
uehara00 3:eec13a411e94 1580 0x88, // 1---1---
uehara00 3:eec13a411e94 1581 0x88, // 1---1---
uehara00 3:eec13a411e94 1582 0xf0, // 1111----
uehara00 3:eec13a411e94 1583 0x80, // 1-------
uehara00 3:eec13a411e94 1584 0x80, // 1-------
uehara00 3:eec13a411e94 1585 },
uehara00 3:eec13a411e94 1586 { 0x00, // -------- 0x71 q
uehara00 3:eec13a411e94 1587 0x00, // --------
uehara00 3:eec13a411e94 1588 0x78, // -1111---
uehara00 3:eec13a411e94 1589 0x88, // 1---1---
uehara00 3:eec13a411e94 1590 0x88, // 1---1---
uehara00 3:eec13a411e94 1591 0x88, // 1---1---
uehara00 3:eec13a411e94 1592 0x78, // -1111---
uehara00 3:eec13a411e94 1593 0x08, // ----1---
uehara00 3:eec13a411e94 1594 0x08, // ----1---
uehara00 3:eec13a411e94 1595 },
uehara00 3:eec13a411e94 1596 { 0x00, // -------- 0x72 r
uehara00 3:eec13a411e94 1597 0x00, // --------
uehara00 3:eec13a411e94 1598 0x98, // 1--11---
uehara00 3:eec13a411e94 1599 0xa0, // 1-1-----
uehara00 3:eec13a411e94 1600 0xc0, // 11------
uehara00 3:eec13a411e94 1601 0x80, // 1-------
uehara00 3:eec13a411e94 1602 0x80, // 1-------
uehara00 3:eec13a411e94 1603 0x00, // --------
uehara00 3:eec13a411e94 1604 0x00, // --------
uehara00 3:eec13a411e94 1605 },
uehara00 3:eec13a411e94 1606 { 0x00, // -------- 0x73 s
uehara00 3:eec13a411e94 1607 0x00, // --------
uehara00 3:eec13a411e94 1608 0x78, // -1111---
uehara00 3:eec13a411e94 1609 0x80, // 1-------
uehara00 3:eec13a411e94 1610 0x70, // -111----
uehara00 3:eec13a411e94 1611 0x08, // ----1---
uehara00 3:eec13a411e94 1612 0xf0, // 1111----
uehara00 3:eec13a411e94 1613 0x00, // --------
uehara00 3:eec13a411e94 1614 0x00, // --------
uehara00 3:eec13a411e94 1615 },
uehara00 3:eec13a411e94 1616 { 0x20, // --1----- 0x74 t
uehara00 3:eec13a411e94 1617 0x20, // --1-----
uehara00 3:eec13a411e94 1618 0xf8, // 11111---
uehara00 3:eec13a411e94 1619 0x20, // --1-----
uehara00 3:eec13a411e94 1620 0x20, // --1-----
uehara00 3:eec13a411e94 1621 0x20, // --1-----
uehara00 3:eec13a411e94 1622 0x18, // ---11---
uehara00 3:eec13a411e94 1623 0x00, // --------
uehara00 3:eec13a411e94 1624 0x00, // --------
uehara00 3:eec13a411e94 1625 },
uehara00 3:eec13a411e94 1626 { 0x00, // -------- 0x75 u
uehara00 3:eec13a411e94 1627 0x00, // --------
uehara00 3:eec13a411e94 1628 0x88, // 1---1---
uehara00 3:eec13a411e94 1629 0x88, // 1---1---
uehara00 3:eec13a411e94 1630 0x88, // 1---1---
uehara00 3:eec13a411e94 1631 0x88, // 1---1---
uehara00 3:eec13a411e94 1632 0x70, // -111----
uehara00 3:eec13a411e94 1633 0x00, // --------
uehara00 3:eec13a411e94 1634 0x00, // --------
uehara00 3:eec13a411e94 1635 },
uehara00 3:eec13a411e94 1636 { 0x00, // -------- 0x76 v
uehara00 3:eec13a411e94 1637 0x00, // --------
uehara00 3:eec13a411e94 1638 0x88, // 1---1---
uehara00 3:eec13a411e94 1639 0x88, // 1---1---
uehara00 3:eec13a411e94 1640 0x50, // -1-1----
uehara00 3:eec13a411e94 1641 0x50, // -1-1----
uehara00 3:eec13a411e94 1642 0x20, // --1-----
uehara00 3:eec13a411e94 1643 0x00, // --------
uehara00 3:eec13a411e94 1644 0x00, // --------
uehara00 3:eec13a411e94 1645 },
uehara00 3:eec13a411e94 1646 { 0x00, // -------- 0x77 w
uehara00 3:eec13a411e94 1647 0x00, // --------
uehara00 3:eec13a411e94 1648 0x88, // 1---1---
uehara00 3:eec13a411e94 1649 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1650 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1651 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1652 0x50, // -1-1----
uehara00 3:eec13a411e94 1653 0x00, // --------
uehara00 3:eec13a411e94 1654 0x00, // --------
uehara00 3:eec13a411e94 1655 },
uehara00 3:eec13a411e94 1656 { 0x00, // -------- 0x78 x
uehara00 3:eec13a411e94 1657 0x00, // --------
uehara00 3:eec13a411e94 1658 0x88, // 1---1---
uehara00 3:eec13a411e94 1659 0x50, // -1-1----
uehara00 3:eec13a411e94 1660 0x20, // --1-----
uehara00 3:eec13a411e94 1661 0x50, // -1-1----
uehara00 3:eec13a411e94 1662 0x88, // 1---1---
uehara00 3:eec13a411e94 1663 0x00, // --------
uehara00 3:eec13a411e94 1664 0x00, // --------
uehara00 3:eec13a411e94 1665 },
uehara00 3:eec13a411e94 1666 { 0x00, // -------- 0x79 y
uehara00 3:eec13a411e94 1667 0x00, // --------
uehara00 3:eec13a411e94 1668 0x88, // 1---1---
uehara00 3:eec13a411e94 1669 0x88, // 1---1---
uehara00 3:eec13a411e94 1670 0x88, // 1---1---
uehara00 3:eec13a411e94 1671 0x50, // -1-1----
uehara00 3:eec13a411e94 1672 0x20, // --1-----
uehara00 3:eec13a411e94 1673 0x40, // -1------
uehara00 3:eec13a411e94 1674 0x80, // 1-------
uehara00 3:eec13a411e94 1675 },
uehara00 3:eec13a411e94 1676 { 0x00, // -------- 0x7a z
uehara00 3:eec13a411e94 1677 0x00, // --------
uehara00 3:eec13a411e94 1678 0xf8, // 11111---
uehara00 3:eec13a411e94 1679 0x10, // ---1----
uehara00 3:eec13a411e94 1680 0x20, // --1-----
uehara00 3:eec13a411e94 1681 0x40, // -1------
uehara00 3:eec13a411e94 1682 0xf8, // 11111---
uehara00 3:eec13a411e94 1683 0x00, // --------
uehara00 3:eec13a411e94 1684 0x00, // --------
uehara00 3:eec13a411e94 1685 },
uehara00 3:eec13a411e94 1686 { 0x30, // --11---- 0x7b {
uehara00 3:eec13a411e94 1687 0x40, // -1------
uehara00 3:eec13a411e94 1688 0x40, // -1------
uehara00 3:eec13a411e94 1689 0x80, // 1-------
uehara00 3:eec13a411e94 1690 0x40, // -1------
uehara00 3:eec13a411e94 1691 0x40, // -1------
uehara00 3:eec13a411e94 1692 0x30, // --11----
uehara00 3:eec13a411e94 1693 0x00, // --------
uehara00 3:eec13a411e94 1694 0x00, // --------
uehara00 3:eec13a411e94 1695 },
uehara00 3:eec13a411e94 1696 { 0x20, // --1----- 0x7c |
uehara00 3:eec13a411e94 1697 0x20, // --1-----
uehara00 3:eec13a411e94 1698 0x20, // --1-----
uehara00 3:eec13a411e94 1699 0x20, // --1-----
uehara00 3:eec13a411e94 1700 0x20, // --1-----
uehara00 3:eec13a411e94 1701 0x20, // --1-----
uehara00 3:eec13a411e94 1702 0x20, // --1-----
uehara00 3:eec13a411e94 1703 0x00, // --------
uehara00 3:eec13a411e94 1704 0x00, // --------
uehara00 3:eec13a411e94 1705 },
uehara00 3:eec13a411e94 1706 { 0x60, // -11----- 0x7d }
uehara00 3:eec13a411e94 1707 0x10, // ---1----
uehara00 3:eec13a411e94 1708 0x10, // ---1----
uehara00 3:eec13a411e94 1709 0x08, // ----1---
uehara00 3:eec13a411e94 1710 0x10, // ---1----
uehara00 3:eec13a411e94 1711 0x10, // ---1----
uehara00 3:eec13a411e94 1712 0x60, // -11-----
uehara00 3:eec13a411e94 1713 0x00, // --------
uehara00 3:eec13a411e94 1714 0x00, // --------
uehara00 3:eec13a411e94 1715 },
uehara00 3:eec13a411e94 1716 { 0x40, // -1------ 0x7e ~
uehara00 3:eec13a411e94 1717 0xa8, // 1-1-1---
uehara00 3:eec13a411e94 1718 0x10, // ---1----
uehara00 3:eec13a411e94 1719 0x00, // --------
uehara00 3:eec13a411e94 1720 0x00, // --------
uehara00 3:eec13a411e94 1721 0x00, // --------
uehara00 3:eec13a411e94 1722 0x00, // --------
uehara00 3:eec13a411e94 1723 0x00, // --------
uehara00 3:eec13a411e94 1724 0x00, // --------
uehara00 3:eec13a411e94 1725 },
uehara00 3:eec13a411e94 1726 { 0xc0, // 11------ 0x7f DEL
uehara00 3:eec13a411e94 1727 0xa0, // 1-1-----
uehara00 3:eec13a411e94 1728 0xa0, // 1-1-----
uehara00 3:eec13a411e94 1729 0xc0, // 11------
uehara00 3:eec13a411e94 1730 0x20, // --1-----
uehara00 3:eec13a411e94 1731 0x20, // --1-----
uehara00 3:eec13a411e94 1732 0x20, // --1-----
uehara00 3:eec13a411e94 1733 0x38, // --111---
uehara00 3:eec13a411e94 1734 0x00, // --------
uehara00 3:eec13a411e94 1735 },
uehara00 3:eec13a411e94 1736 };
uehara00 3:eec13a411e94 1737
uehara00 3:eec13a411e94 1738 switch(ch) {
uehara00 3:eec13a411e94 1739 case 0x0a: // LF
uehara00 3:eec13a411e94 1740 OLED_cursor_y += OLED_FONT_SIZE_Y;
uehara00 3:eec13a411e94 1741 if(OLED_cursor_y > OLED_ROW_MAX - OLED_FONT_SIZE_Y) {
uehara00 3:eec13a411e94 1742 OLED_cursor_y = 0;
uehara00 3:eec13a411e94 1743 }
uehara00 3:eec13a411e94 1744 break;
uehara00 3:eec13a411e94 1745
uehara00 3:eec13a411e94 1746 case 0x0d: // CR
uehara00 3:eec13a411e94 1747 OLED_cursor_x = 0;
uehara00 3:eec13a411e94 1748 break;
uehara00 3:eec13a411e94 1749
uehara00 3:eec13a411e94 1750 default:
uehara00 3:eec13a411e94 1751 // print a font
uehara00 3:eec13a411e94 1752 OLED_set_column_address(OLED_cursor_x, OLED_cursor_x + OLED_FONT_SIZE_X - 1);
uehara00 3:eec13a411e94 1753 OLED_set_row_address(OLED_cursor_y, OLED_cursor_y + OLED_FONT_SIZE_Y - 1);
uehara00 3:eec13a411e94 1754 OLED_write_ram_command();
uehara00 3:eec13a411e94 1755 for(int i = 0; i < OLED_FONT_SIZE_Y; ++i) {
uehara00 3:eec13a411e94 1756 for(int j = 0x80; j > (0x80 >> OLED_FONT_SIZE_X); j >>= 1) {
uehara00 3:eec13a411e94 1757 OLED_write_pixel(font[ch][i] & j);
uehara00 3:eec13a411e94 1758 }
uehara00 3:eec13a411e94 1759 }
uehara00 3:eec13a411e94 1760 // increment cursor position
uehara00 3:eec13a411e94 1761 OLED_cursor_x += OLED_FONT_SIZE_X;
uehara00 3:eec13a411e94 1762 if(OLED_cursor_x > OLED_COLUMN_MAX - OLED_FONT_SIZE_X) {
uehara00 3:eec13a411e94 1763 OLED_cursor_x = 0;
uehara00 3:eec13a411e94 1764 OLED_cursor_y += OLED_FONT_SIZE_Y;
uehara00 3:eec13a411e94 1765 if(OLED_cursor_y > OLED_ROW_MAX - OLED_FONT_SIZE_Y) {
uehara00 3:eec13a411e94 1766 OLED_cursor_y = 0;
uehara00 3:eec13a411e94 1767 }
uehara00 3:eec13a411e94 1768 }
uehara00 3:eec13a411e94 1769 }
uehara00 3:eec13a411e94 1770
uehara00 3:eec13a411e94 1771 }