|
|
1.1 root 1: //
2: // nono
1.1.1.3 root 3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
1.1 root 5: //
6:
1.1.1.4 root 7: //
8: // LCD (HD44780)
9: //
10:
1.1 root 11: #include "lcd.h"
12:
1.1.1.2 root 13: std::unique_ptr<LCDDevice> gLCD;
1.1 root 14:
15: LCDDevice::LCDDevice()
1.1.1.7 ! root 16: : inherited("LCD")
1.1 root 17: {
1.1.1.7 ! root 18: monitor.func = (MonitorCallback_t)&LCDDevice::MonitorUpdate;
! 19: monitor.SetSize(67, 3);
! 20: monitor.Regist(ID_MONITOR_LCD);
1.1 root 21: }
22:
23: LCDDevice::~LCDDevice()
24: {
25: }
26:
27: bool
28: LCDDevice::PowerOff()
29: {
1.1.1.5 root 30: // XXX 電源オフは色を落としたほうがいい
1.1 root 31: memset(ddram, 0x20, sizeof(ddram));
1.1.1.4 root 32: update++;
1.1 root 33: return true;
34: }
35:
36: void
1.1.1.5 root 37: LCDDevice::ResetHard()
38: {
39: // とりあえずモニタ画面での表示を消す
40: memset(ddram, 0x20, sizeof(ddram));
41: // XXX not yet
42: // CGRAM とか信号線とか
43:
44: update++;
45: }
46:
47: void
1.1 root 48: LCDDevice::SetRW(bool val)
49: {
50: rw = val;
51: putlog(2, "R/W = %c", val ? 'R' : 'W');
52: }
53:
54: void
55: LCDDevice::SetRS(int val)
56: {
57: rs = val;
58: putlog(2, "RS = %d", rs);
59: }
60:
61: void
62: LCDDevice::SetE(bool val)
63: {
64: en = val;
65: putlog(2, "E = %d", en);
66: }
67:
68: // E, RS, R/W 線の状態を取得する (PIO1 のポートC 読み込み用)
69: uint8
70: LCDDevice::Get() const
71: {
72: return (en ? 0x80 : 0)
73: | (rs >> 6)
74: | (rw ? 0x20 : 0);
75: }
76:
77: uint8
78: LCDDevice::Read()
79: {
80: if (en == false || rw == false) {
81: // XXX どうなるんだろ
82: return 0xff;
83: }
84: if (rs == 0) {
85: // ステータスレジスタの読み込み
86: // B A A A A A A A
87: // | +-+-+-+-+-+-+-- アドレスカウンタ
88: // +---------------- ビジーフラグ %1=BUSY
89:
90: // XXX ビジーは未実装
1.1.1.4 root 91: return (addr & 0x7f);
1.1 root 92: } else {
93: putlog(0, "未実装データ読み込み");
94: }
95: return 0xff;
96: }
97:
98: void
99: LCDDevice::Write(uint8 data)
100: {
101: if (en == false || rw == true) {
102: // どうなるんだろ
103: return;
104: }
105: if (rs == 0) {
106: // コマンド書き込み
1.1.1.4 root 107:
1.1 root 108: if ((data & 0x80)) {
1.1.1.4 root 109: addr = data;
110: putlog(1, "DDRAM アドレスセット $%02x", addr & 0x7f);
1.1 root 111: } else if ((data & 0x40)) {
1.1.1.4 root 112: addr = data;
113: putlog(1, "CGRAM アドレスセット $%02x", addr & 0x3f);
1.1 root 114: } else if ((data & 0x20)) {
115: // ファンクション・セット
116: // 0x38 (8ビットバス、2行表示、8ライン/行)モードのみサポート
117: if (data != 0x38) {
118: putlog(0, "コマンド書き込み $%02x ファンクションセット(未実装)",
119: data);
120: }
121: } else if ((data & 0x10)) {
122: // カーソル移動
123: putlog(0, "コマンド書き込み $%02x カーソル移動(未実装)", data);
124: } else if ((data & 0x08)) {
125: // 表示ON/OFF
126: // 文字表示 ON/OFF のみサポート
127: disp_char = (data & 0x04);
128: // XXX それ以外は未サポート
129: } else if ((data & 0x04)) {
130: // エントリモード
131: addr_inc = (data & 0x02);
132: // XXX 表示シフトは未サポート
133: } else if ((data & 0x02)) {
134: // カーソルホーム
1.1.1.4 root 135: addr = 0x40;
1.1 root 136: } else if ((data & 0x01)) {
137: // 表示クリア
138: memset(ddram, 0x20, sizeof(ddram));
1.1.1.4 root 139: addr = 0x40;
140: update++;
1.1 root 141: } else {
142: // $00 が書き込まれるんだけど、データシートにはないんだよね。
143: // 無視していいかな。
144: putlog(2, "未定義書き込み $%02x", data);
145: }
146: } else {
1.1.1.4 root 147: if ((addr & 0x80)) {
148: putlog(1, "DDRAM データ書き込み X=%d Y=%d <- $%02x",
149: (addr & 0x7f) % 0x40, (addr & 0x7f) / 0x40, data);
150: } else {
151: putlog(1, "CGRAM データ書き込み $%02x <- $%02x", addr & 0x3f, data);
152: }
153: ram[addr] = data;
154: update++;
1.1 root 155: // アドレス更新
1.1.1.4 root 156: // DDRAM は各行 0x27 までしか存在していないが、stride が 0x40 バイト。
157: // XXX CGRAM が折り返すかどうかは分からないがそのまま DDRAM 領域に
158: // 行っても困ると思うのでとりあえず。
1.1 root 159: if (addr_inc) {
160: addr++;
1.1.1.4 root 161: if (addr == 0x80) // CGRAM (XXX)
1.1 root 162: addr = 0x40;
1.1.1.4 root 163: else if (addr == 0x80 + 0x28) // DDRAM 1行目
164: addr = 0x80 + 0x40;
165: else if (addr == 0x80 + 0x68) // DDRAM 2行目
166: addr = 0x80 + 0;
1.1 root 167: } else {
168: addr--;
1.1.1.4 root 169: if (addr == 0x3f) // CGRAM (XXX)
170: addr = 0x7f;
171: else if (addr == 0x7f) // DDRAM 1行目
172: addr = 0x80 + 0x67;
173: else if (addr == 0x80 + 0x3f) // DDRAM 2行目
174: addr = 0x80 + 0x27;
1.1 root 175: }
176: }
177: }
178:
1.1.1.2 root 179: // PIO1 からのピーク用
180: uint8
181: LCDDevice::Peek() const
182: {
183: if (en == false || rw == false) {
184: // XXX どうなるんだろ
185: return 0xff;
186: }
187: if (rs == 0) {
1.1.1.4 root 188: // XXX ?
189: return (addr & 0x7f);
1.1.1.2 root 190: } else {
191: // データ読み込みは未実装
192: }
193: return 0xff;
194: }
195:
1.1.1.4 root 196: void
1.1.1.7 ! root 197: LCDDevice::MonitorUpdate(Monitor *, TextScreen &screen)
1.1 root 198: {
199: char buf[17];
200:
1.1.1.4 root 201: // 0 1 2 3 4 5 6
202: // 01234567890123456789012345678901234567890123456789012345678901234567
203: // RW=R RS=0 E=0
204: // 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f |0123456789abcdef|
205: // 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f |0123456789abcdef|
206:
1.1.1.7 ! root 207: screen.Clear();
! 208: screen.Print(0, 0, "RW=%c RS=%d E=%d", rw ? 'R' : 'W', rs, en);
1.1 root 209:
210: for (int y = 0; y < 2; y++) {
211: memcpy(buf, &ddram[y * 0x40], 16);
212: buf[16] = '\0';
1.1.1.4 root 213: // 16進を表示する端から文字ダンプ用に加工していく
214: for (int x = 0; x < 16; x++) {
1.1.1.7 ! root 215: screen.Print(x * 3 + (x / 8), y + 1, "%02x", buf[x]);
1.1.1.4 root 216: if (buf[x] < 0x20 || buf[x] > 0x7e) {
217: buf[x] = '.';
218: }
219: }
1.1.1.7 ! root 220: screen.Print(49, y + 1, "|%-16s|", buf);
1.1 root 221: }
222: }
1.1.1.4 root 223:
224: // CGROM は ROM A00 版のみ考慮する (A02 版との共存は今の所考えない)。
225: // A00 版は以下のような配置になっている。
226: //
227: // +0+1+2+3+4+5+6+7+8+9+a+b+c+d+e+f
228: // 0x00 <------------ CGRAM ----------->
229: // 0x10
230: // 0x20 ! " # $ % & ' ( ) * + , - . /
231: // 0x30 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
232: // 0x40 @ A B C D E F G H I J K L M N O
233: // 0x50 P Q R S T U V W X Y Z [ \ ] ^ _
234: // 0x60 ` a b c d e f g h i j k l m n o
235: // 0x70 p q r s t u v w x y z { | } →←
236: // 0x80
237: // 0x90
238: // 0xa0 。「」、・ヲァィゥェォャュョッ
239: // 0xb0 ーアイウエオカキクケコサシスセソ
240: // 0xc0 タチツテトナニヌネノハヒフヘホマ
241: // 0xd0 ミムメモヤユヨラリルレロワン゛゜
242: // 0xe0 <---- 5x10 ギリシャ文字など --->
243: // 0xf0 <---- 5x10 ギリシャ文字など --->
244: //
245: // 0x00 〜 0x07 は 8文字の CGRAM で、0x08 〜 0x0f には同じものが見える。
246: // 0x20〜0x7f と 0xa0〜0xdf までが 5x7 フォント、
247: // 0xe0〜0xff は 5x7 フォントと 5x10 フォントが混在している。
248: // 5x7 フォントは、メモリとしては 5x8 分(8バイト) を使用し、一番下のラインを
249: // 常に空白としておく (LCD の1行自体が 5x8 で構成されており、一番下が
250: // カーソル用に予約されているため)。
251: // 一方 5x10 フォントのカーソルはこのフォントの一つ下に表示するので 5x11
252: // フォントのうち一番下のラインがカーソル用とも言える。5x10 モードはサポート
253: // しないので、サイズを揃えるため上から 5x8 分のデータだけを保持することにする。
254: // (5x10 モードをサポートする時になんとかすること)
255: //
256: // 空き領域が多いこと、どのみち CGRAM 部分を考慮する必要があること、それと
257: // もし 5x10 モードをサポートする場合には途中でライン数が変わることなどから、
258: // フォントデータの取得は生データに直接アクセスさせるのではなく、1文字ずつ
259: // フォントデータのアドレスを返す方式にする。
260:
261: // 文字コード ch のフォントデータ(の先頭アドレス) を取得する。
262: //
263: // 連続する 8 バイトがフォントデータで、下位側(右側) 5ビットのみ有効。
264: // 9バイト目が次の文字の1バイト目であることは保証していないので必ず1文字ごと
265: // に呼び出すこと。また CGRAM 領域のように動的に変化する場合もあるため
266: // 呼び出し側でこの読み出し値をキャッシュしないこと。
267: const uint8 *
268: LCDDevice::GetFont(int ch) const
269: {
270: // CGRAM 部分
271: if (ch < 0x10) {
272: ch &= 0x07;
273: return &cgram[ch * 8];
274: }
275:
276: if (ch < 0x20) {
277: return &CGROM[0]; // space
278: }
279:
280: // ASCII 部分
281: if (ch < 0x80) {
282: return &CGROM[(ch - 0x20) * 8];
283: }
284:
285: if (ch < 0xa0) {
286: return &CGROM[0]; // space
287: }
288:
289: // カナ以降
290: return &CGROM[(ch - 0xa0 + 0x60) * 8];
291: }
292:
293: /*static*/ const uint8 LCDDevice::CGROM[12 * 16 * 8] =
294: {
295: 0b000'00000, // 0x20 space
296: 0b000'00000,
297: 0b000'00000,
298: 0b000'00000,
299: 0b000'00000,
300: 0b000'00000,
301: 0b000'00000,
302: 0,
303:
304: 0b000'00100, // 0x21 !
305: 0b000'00100,
306: 0b000'00100,
307: 0b000'00100,
308: 0b000'00100,
309: 0b000'00000,
310: 0b000'00100,
311: 0,
312:
313: 0b000'01010, // 0x22 "
314: 0b000'01010,
315: 0b000'00000,
316: 0b000'00000,
317: 0b000'00000,
318: 0b000'00000,
319: 0b000'00000,
320: 0,
321:
322: 0b000'01010, // 0x23 #
323: 0b000'01010,
324: 0b000'11111,
325: 0b000'01010,
326: 0b000'11111,
327: 0b000'01010,
328: 0b000'01010,
329: 0,
330:
331: 0b000'00100, // 0x24 $
332: 0b000'01110,
333: 0b000'10100,
334: 0b000'01110,
335: 0b000'00101,
336: 0b000'01110,
337: 0b000'00100,
338: 0,
339:
340: 0b000'11000, // 0x25 %
341: 0b000'11001,
342: 0b000'00010,
343: 0b000'00100,
344: 0b000'01011,
345: 0b000'10011,
346: 0b000'00000,
347: 0,
348:
349: 0b000'01100, // 0x26 &
350: 0b000'10010,
351: 0b000'10100,
352: 0b000'01000,
353: 0b000'10100,
354: 0b000'10010,
355: 0b000'01101,
356: 0,
357:
358: 0b000'01100, // 0x27 '
359: 0b000'00100,
360: 0b000'01000,
361: 0b000'00000,
362: 0b000'00000,
363: 0b000'00000,
364: 0b000'00000,
365: 0,
366:
367: 0b000'00010, // 0x28 (
368: 0b000'00100,
369: 0b000'01000,
370: 0b000'01000,
371: 0b000'01000,
372: 0b000'00100,
373: 0b000'00010,
374: 0,
375:
376: 0b000'01000, // 0x29 )
377: 0b000'00100,
378: 0b000'00010,
379: 0b000'00010,
380: 0b000'00010,
381: 0b000'00100,
382: 0b000'01000,
383: 0,
384:
385: 0b000'00000, // 0x2a *
386: 0b000'00100,
387: 0b000'10101,
388: 0b000'01110,
389: 0b000'10101,
390: 0b000'00100,
391: 0b000'00000,
392: 0,
393:
394: 0b000'00000, // 0x2b +
395: 0b000'00100,
396: 0b000'00100,
397: 0b000'11111,
398: 0b000'00100,
399: 0b000'00100,
400: 0b000'00000,
401: 0,
402:
403: 0b000'00000, // 0x2c ,
404: 0b000'00000,
405: 0b000'00000,
406: 0b000'00000,
407: 0b000'01100,
408: 0b000'00100,
409: 0b000'01000,
410: 0,
411:
412: 0b000'00000, // 0x2d -
413: 0b000'00000,
414: 0b000'00000,
415: 0b000'11111,
416: 0b000'00000,
417: 0b000'00000,
418: 0b000'00000,
419: 0,
420:
421: 0b000'00000, // 0x2e .
422: 0b000'00000,
423: 0b000'00000,
424: 0b000'00000,
425: 0b000'00000,
426: 0b000'01100,
427: 0b000'01100,
428: 0,
429:
430: 0b000'00000, // 0x2f /
431: 0b000'00001,
432: 0b000'00010,
433: 0b000'00100,
434: 0b000'01000,
435: 0b000'10000,
436: 0b000'00000,
437: 0,
438:
439: 0b000'01110, // 0x30 0
440: 0b000'10001,
441: 0b000'10011,
442: 0b000'10101,
443: 0b000'11001,
444: 0b000'10001,
445: 0b000'01110,
446: 0,
447:
448: 0b000'00100, // 0x31 1
449: 0b000'01100,
450: 0b000'00100,
451: 0b000'00100,
452: 0b000'00100,
453: 0b000'00100,
454: 0b000'01110,
455: 0,
456:
457: 0b000'01110, // 0x32 2
458: 0b000'10001,
459: 0b000'10001,
460: 0b000'00010,
461: 0b000'00100,
462: 0b000'01000,
463: 0b000'11111,
464: 0,
465:
466: 0b000'11111, // 0x33 3
467: 0b000'00010,
468: 0b000'00100,
469: 0b000'01110,
470: 0b000'00001,
471: 0b000'10001,
472: 0b000'01110,
473: 0,
474:
475: 0b000'00010, // 0x34 4
476: 0b000'00110,
477: 0b000'01010,
478: 0b000'10010,
479: 0b000'11111,
480: 0b000'00010,
481: 0b000'00010,
482: 0,
483:
484: 0b000'11111, // 0x35 5
485: 0b000'10000,
486: 0b000'10000,
487: 0b000'11110,
488: 0b000'00001,
489: 0b000'10001,
490: 0b000'01110,
491: 0,
492:
493: 0b000'00110, // 0x36 6
494: 0b000'01000,
495: 0b000'10000,
496: 0b000'11110,
497: 0b000'10001,
498: 0b000'10001,
499: 0b000'01110,
500: 0,
501:
502: 0b000'11111, // 0x37 7
503: 0b000'00001,
504: 0b000'00010,
505: 0b000'00100,
506: 0b000'00100,
507: 0b000'00100,
508: 0b000'00100,
509: 0,
510:
511: 0b000'01110, // 0x38 8
512: 0b000'10001,
513: 0b000'10001,
514: 0b000'01110,
515: 0b000'10001,
516: 0b000'10001,
517: 0b000'01110,
518: 0,
519:
520: 0b000'01110, // 0x39 9
521: 0b000'10001,
522: 0b000'10001,
523: 0b000'01111,
524: 0b000'00001,
525: 0b000'00010,
526: 0b000'01100,
527: 0,
528:
529: 0b000'00000, // 0x3a :
530: 0b000'01100,
531: 0b000'01100,
532: 0b000'00000,
533: 0b000'01100,
534: 0b000'01100,
535: 0b000'00000,
536: 0,
537:
538: 0b000'00000, // 0x3b ;
539: 0b000'01100,
540: 0b000'01100,
541: 0b000'00000,
542: 0b000'01100,
543: 0b000'00100,
544: 0b000'01000,
545: 0,
546:
547: 0b000'00010, // 0x3c <
548: 0b000'00100,
549: 0b000'01000,
550: 0b000'10000,
551: 0b000'01000,
552: 0b000'00100,
553: 0b000'00010,
554: 0,
555:
556: 0b000'00000, // 0x3d =
557: 0b000'00000,
558: 0b000'11111,
559: 0b000'00000,
560: 0b000'11111,
561: 0b000'00000,
562: 0b000'00000,
563: 0,
564:
565: 0b000'01000, // 0x3e >
566: 0b000'00100,
567: 0b000'00010,
568: 0b000'00001,
569: 0b000'00010,
570: 0b000'00100,
571: 0b000'01000,
572: 0,
573:
574: 0b000'01110, // 0x3f ?
575: 0b000'10001,
576: 0b000'00001,
577: 0b000'00010,
578: 0b000'00100,
579: 0b000'00000,
580: 0b000'00100,
581: 0,
582:
583: 0b000'01110, // 0x40 @
584: 0b000'10001,
585: 0b000'00001,
586: 0b000'01101,
587: 0b000'10101,
588: 0b000'10101,
589: 0b000'01110,
590: 0,
591:
592: 0b000'01110, // 0x41 A
593: 0b000'10001,
594: 0b000'10001,
595: 0b000'10001,
596: 0b000'11111,
597: 0b000'10001,
598: 0b000'10001,
599: 0,
600:
601: 0b000'11110, // 0x42 B
602: 0b000'10001,
603: 0b000'10001,
604: 0b000'11110,
605: 0b000'10001,
606: 0b000'10001,
607: 0b000'11110,
608: 0,
609:
610: 0b000'01110, // 0x43 C
611: 0b000'10001,
612: 0b000'10000,
613: 0b000'10000,
614: 0b000'10000,
615: 0b000'10001,
616: 0b000'01110,
617: 0,
618:
619: 0b000'11100, // 0x44 D
620: 0b000'10010,
621: 0b000'10001,
622: 0b000'10001,
623: 0b000'10001,
624: 0b000'10010,
625: 0b000'11100,
626: 0,
627:
628: 0b000'11111, // 0x45 E
629: 0b000'10000,
630: 0b000'10000,
631: 0b000'11110,
632: 0b000'10000,
633: 0b000'10000,
634: 0b000'11111,
635: 0,
636:
637: 0b000'11111, // 0x46 F
638: 0b000'10000,
639: 0b000'10000,
640: 0b000'11110,
641: 0b000'10000,
642: 0b000'10000,
643: 0b000'10000,
644: 0,
645:
646: 0b000'01110, // 0x47 G
647: 0b000'10001,
648: 0b000'10000,
649: 0b000'10011,
650: 0b000'10001,
651: 0b000'10001,
652: 0b000'01110,
653: 0,
654:
655: 0b000'10001, // 0x48 H
656: 0b000'10001,
657: 0b000'10001,
658: 0b000'11111,
659: 0b000'10001,
660: 0b000'10001,
661: 0b000'10001,
662: 0,
663:
664: 0b000'01110, // 0x49 I
665: 0b000'00100,
666: 0b000'00100,
667: 0b000'00100,
668: 0b000'00100,
669: 0b000'00100,
670: 0b000'01110,
671: 0,
672:
673: 0b000'00111, // 0x4a J
674: 0b000'00010,
675: 0b000'00010,
676: 0b000'00010,
677: 0b000'10010,
678: 0b000'10010,
679: 0b000'01100,
680: 0,
681:
682: 0b000'10001, // 0x4b K
683: 0b000'10010,
684: 0b000'10100,
685: 0b000'11000,
686: 0b000'10100,
687: 0b000'10010,
688: 0b000'10001,
689: 0,
690:
691: 0b000'10000, // 0x4c L
692: 0b000'10000,
693: 0b000'10000,
694: 0b000'10000,
695: 0b000'10000,
696: 0b000'10000,
697: 0b000'11111,
698: 0,
699:
700: 0b000'10001, // 0x4d M
701: 0b000'11011,
702: 0b000'10101,
703: 0b000'10101,
704: 0b000'10001,
705: 0b000'10001,
706: 0b000'10001,
707: 0,
708:
709: 0b000'10001, // 0x4e N
710: 0b000'10001,
711: 0b000'11001,
712: 0b000'10101,
713: 0b000'10011,
714: 0b000'10001,
715: 0b000'10001,
716: 0,
717:
718: 0b000'01110, // 0x4f O
719: 0b000'10001,
720: 0b000'10001,
721: 0b000'10001,
722: 0b000'10001,
723: 0b000'10001,
724: 0b000'01110,
725: 0,
726:
727: 0b000'11110, // 0x50 P
728: 0b000'10001,
729: 0b000'10001,
730: 0b000'11110,
731: 0b000'10000,
732: 0b000'10000,
733: 0b000'10000,
734: 0,
735:
736: 0b000'01110, // 0x51 Q
737: 0b000'10001,
738: 0b000'10001,
739: 0b000'10001,
740: 0b000'10101,
741: 0b000'10010,
742: 0b000'01101,
743: 0,
744:
745: 0b000'11110, // 0x52 R
746: 0b000'10001,
747: 0b000'10001,
748: 0b000'11110,
749: 0b000'10100,
750: 0b000'10010,
751: 0b000'10001,
752: 0,
753:
754: 0b000'01111, // 0x53 S
755: 0b000'10000,
756: 0b000'10000,
757: 0b000'01110,
758: 0b000'00001,
759: 0b000'00001,
760: 0b000'11110,
761: 0,
762:
763: 0b000'11111, // 0x54 T
764: 0b000'00100,
765: 0b000'00100,
766: 0b000'00100,
767: 0b000'00100,
768: 0b000'00100,
769: 0b000'00100,
770: 0,
771:
772: 0b000'10001, // 0x55 U
773: 0b000'10001,
774: 0b000'10001,
775: 0b000'10001,
776: 0b000'10001,
777: 0b000'10001,
778: 0b000'01110,
779: 0,
780:
781: 0b000'10001, // 0x56 V
782: 0b000'10001,
783: 0b000'10001,
784: 0b000'10001,
785: 0b000'10001,
786: 0b000'01010,
787: 0b000'00100,
788: 0,
789:
790: 0b000'10001, // 0x57 W
791: 0b000'10001,
792: 0b000'10001,
793: 0b000'10001,
794: 0b000'10101,
795: 0b000'10101,
796: 0b000'01010,
797: 0,
798:
799: 0b000'10001, // 0x58 X
800: 0b000'10001,
801: 0b000'01010,
802: 0b000'00100,
803: 0b000'01010,
804: 0b000'10001,
805: 0b000'10001,
806: 0,
807:
808: 0b000'10001, // 0x59 Y
809: 0b000'10001,
810: 0b000'10001,
811: 0b000'01010,
812: 0b000'00100,
813: 0b000'00100,
814: 0b000'00100,
815: 0,
816:
817: 0b000'11111, // 0x5a Z
818: 0b000'00001,
819: 0b000'00010,
820: 0b000'00100,
821: 0b000'01000,
822: 0b000'10000,
823: 0b000'11111,
824: 0,
825:
826: 0b000'01110, // 0x5b [
827: 0b000'01000,
828: 0b000'01000,
829: 0b000'01000,
830: 0b000'01000,
831: 0b000'01000,
832: 0b000'01110,
833: 0,
834:
835: 0b000'10001, // 0x5c ¥
836: 0b000'01010,
837: 0b000'11111,
838: 0b000'00100,
839: 0b000'11111,
840: 0b000'00100,
841: 0b000'00100,
842: 0,
843:
844: 0b000'01110, // 0x5d ]
845: 0b000'00010,
846: 0b000'00010,
847: 0b000'00010,
848: 0b000'00010,
849: 0b000'00010,
850: 0b000'01110,
851: 0,
852:
853: 0b000'00100, // 0x5e ^
854: 0b000'01010,
855: 0b000'10001,
856: 0b000'00000,
857: 0b000'00000,
858: 0b000'00000,
859: 0b000'00000,
860: 0,
861:
862: 0b000'00000, // 0x5f _
863: 0b000'00000,
864: 0b000'00000,
865: 0b000'00000,
866: 0b000'00000,
867: 0b000'00000,
868: 0b000'11111,
869: 0,
870:
871: 0b000'01000, // 0x60 `
872: 0b000'00100,
873: 0b000'00010,
874: 0b000'00000,
875: 0b000'00000,
876: 0b000'00000,
877: 0b000'00000,
878: 0,
879:
880: 0b000'00000, // 0x61 a
881: 0b000'00000,
882: 0b000'01110,
883: 0b000'00001,
884: 0b000'01111,
885: 0b000'10001,
886: 0b000'01111,
887: 0,
888:
889: 0b000'10000, // 0x62 b
890: 0b000'10000,
891: 0b000'10110,
892: 0b000'11001,
893: 0b000'10001,
894: 0b000'10001,
895: 0b000'11110,
896: 0,
897:
898: 0b000'00000, // 0x63 c
899: 0b000'00000,
900: 0b000'01110,
901: 0b000'10001,
902: 0b000'10000,
903: 0b000'10001,
904: 0b000'01110,
905: 0,
906:
907: 0b000'00001, // 0x64 d
908: 0b000'00001,
909: 0b000'01101,
910: 0b000'10011,
911: 0b000'10001,
912: 0b000'10001,
913: 0b000'01111,
914: 0,
915:
916: 0b000'00000, // 0x65 e
917: 0b000'00000,
918: 0b000'01110,
919: 0b000'10001,
920: 0b000'11111,
921: 0b000'10000,
922: 0b000'01110,
923: 0,
924:
925: 0b000'00011, // 0x66 f
926: 0b000'00100,
927: 0b000'01110,
928: 0b000'00100,
929: 0b000'00100,
930: 0b000'00100,
931: 0b000'00100,
932: 0,
933:
934: 0b000'00000, // 0x67 g
935: 0b000'00000,
936: 0b000'01111,
937: 0b000'10001,
938: 0b000'01111,
939: 0b000'00001,
940: 0b000'01110,
941: 0,
942:
943: 0b000'10000, // 0x68 h
944: 0b000'10000,
945: 0b000'10110,
946: 0b000'11001,
947: 0b000'10001,
948: 0b000'10001,
949: 0b000'10001,
950: 0,
951:
952: 0b000'00100, // 0x69 i
953: 0b000'00000,
954: 0b000'01100,
955: 0b000'00100,
956: 0b000'00100,
957: 0b000'00100,
958: 0b000'01110,
959: 0,
960:
961: 0b000'00010, // 0x6a j
962: 0b000'00000,
963: 0b000'00110,
964: 0b000'00010,
965: 0b000'00010,
966: 0b000'10010,
967: 0b000'01100,
968: 0,
969:
970: 0b000'10000, // 0x6b k
971: 0b000'10000,
972: 0b000'10010,
973: 0b000'10100,
974: 0b000'11000,
975: 0b000'10100,
976: 0b000'10010,
977: 0,
978:
979: 0b000'01100, // 0x6c l
980: 0b000'00100,
981: 0b000'00100,
982: 0b000'00100,
983: 0b000'00100,
984: 0b000'00100,
985: 0b000'01110,
986: 0,
987:
988: 0b000'00000, // 0x6d m
989: 0b000'00000,
990: 0b000'11010,
991: 0b000'10101,
992: 0b000'10101,
993: 0b000'10001,
994: 0b000'10001,
995: 0,
996:
997: 0b000'00000, // 0x6e n
998: 0b000'00000,
999: 0b000'10110,
1000: 0b000'11001,
1001: 0b000'10001,
1002: 0b000'10001,
1003: 0b000'10001,
1004: 0,
1005:
1006: 0b000'00000, // 0x6f o
1007: 0b000'00000,
1008: 0b000'01110,
1009: 0b000'10001,
1010: 0b000'10001,
1011: 0b000'10001,
1012: 0b000'01110,
1013: 0,
1014:
1015: 0b000'00000, // 0x70 p
1016: 0b000'00000,
1017: 0b000'11110,
1018: 0b000'10001,
1019: 0b000'11110,
1020: 0b000'10000,
1021: 0b000'10000,
1022: 0,
1023:
1024: 0b000'00000, // 0x71 q
1025: 0b000'00000,
1026: 0b000'01111,
1027: 0b000'10001,
1028: 0b000'01111,
1029: 0b000'00001,
1030: 0b000'00001,
1031: 0,
1032:
1033: 0b000'00000, // 0x72 r
1034: 0b000'00000,
1035: 0b000'10110,
1036: 0b000'11001,
1037: 0b000'10000,
1038: 0b000'10000,
1039: 0b000'10000,
1040: 0,
1041:
1042: 0b000'00000, // 0x73 s
1043: 0b000'00000,
1044: 0b000'01110,
1045: 0b000'10000,
1046: 0b000'01110,
1047: 0b000'00001,
1048: 0b000'11110,
1049: 0,
1050:
1051: 0b000'00000, // 0x74 t
1052: 0b000'01000,
1053: 0b000'11110,
1054: 0b000'01000,
1055: 0b000'01000,
1056: 0b000'01000,
1057: 0b000'00110,
1058: 0,
1059:
1060: 0b000'00000, // 0x75 u
1061: 0b000'00000,
1062: 0b000'10001,
1063: 0b000'10001,
1064: 0b000'10001,
1065: 0b000'10011,
1066: 0b000'01101,
1067: 0,
1068:
1069: 0b000'00000, // 0x76 v
1070: 0b000'00000,
1071: 0b000'10001,
1072: 0b000'10001,
1073: 0b000'10001,
1074: 0b000'01010,
1075: 0b000'00100,
1076: 0,
1077:
1078: 0b000'00000, // 0x77 w
1079: 0b000'00000,
1080: 0b000'10001,
1081: 0b000'10001,
1082: 0b000'10101,
1083: 0b000'10101,
1084: 0b000'01010,
1085: 0,
1086:
1087: 0b000'00000, // 0x78 x
1088: 0b000'00000,
1089: 0b000'10001,
1090: 0b000'01010,
1091: 0b000'00100,
1092: 0b000'01010,
1093: 0b000'10001,
1094: 0,
1095:
1096: 0b000'00000, // 0x79 y
1097: 0b000'00000,
1098: 0b000'10001,
1099: 0b000'10001,
1100: 0b000'01111,
1101: 0b000'00001,
1102: 0b000'01110,
1103: 0,
1104:
1105: 0b000'00000, // 0x7a z
1106: 0b000'00000,
1107: 0b000'11111,
1108: 0b000'00010,
1109: 0b000'00100,
1110: 0b000'01000,
1111: 0b000'11111,
1112: 0,
1113:
1114: 0b000'00010, // 0x7b {
1115: 0b000'00100,
1116: 0b000'00100,
1117: 0b000'01000,
1118: 0b000'00100,
1119: 0b000'00100,
1120: 0b000'00010,
1121: 0,
1122:
1123: 0b000'00100, // 0x7c |
1124: 0b000'00100,
1125: 0b000'00100,
1126: 0b000'00100,
1127: 0b000'00100,
1128: 0b000'00100,
1129: 0b000'00100,
1130: 0,
1131:
1132: 0b000'01000, // 0x7d }
1133: 0b000'00100,
1134: 0b000'00100,
1135: 0b000'00010,
1136: 0b000'00100,
1137: 0b000'00100,
1138: 0b000'01000,
1139: 0,
1140:
1141: 0b000'00000, // 0x7e →
1142: 0b000'00100,
1143: 0b000'00010,
1144: 0b000'11111,
1145: 0b000'00010,
1146: 0b000'00100,
1147: 0b000'00000,
1148: 0,
1149:
1150: 0b000'00000, // 0x7f ←
1151: 0b000'00100,
1152: 0b000'01000,
1153: 0b000'11111,
1154: 0b000'01000,
1155: 0b000'00100,
1156: 0b000'00000,
1157: 0,
1158:
1159:
1160: 0b000'00000, // 0xa0 space
1161: 0b000'00000,
1162: 0b000'00000,
1163: 0b000'00000,
1164: 0b000'00000,
1165: 0b000'00000,
1166: 0b000'00000,
1167: 0,
1168:
1169: 0b000'00000, // 0xa1 。
1170: 0b000'00000,
1171: 0b000'00000,
1172: 0b000'00000,
1173: 0b000'11100,
1174: 0b000'10100,
1175: 0b000'11100,
1176: 0,
1177:
1178: 0b000'00111, // 0xa2 「
1179: 0b000'00100,
1180: 0b000'00100,
1181: 0b000'00100,
1182: 0b000'00000,
1183: 0b000'00000,
1184: 0b000'00000,
1185: 0,
1186:
1187: 0b000'00000, // 0xa3 」
1188: 0b000'00000,
1189: 0b000'00000,
1190: 0b000'00100,
1191: 0b000'00100,
1192: 0b000'00100,
1193: 0b000'11100,
1194: 0,
1195:
1196: 0b000'00000, // 0xa4 、
1197: 0b000'00000,
1198: 0b000'00000,
1199: 0b000'00000,
1200: 0b000'10000,
1201: 0b000'01000,
1202: 0b000'00100,
1203: 0,
1204:
1205: 0b000'00000, // 0xa5 ・
1206: 0b000'00000,
1207: 0b000'00000,
1208: 0b000'01100,
1209: 0b000'01100,
1210: 0b000'00000,
1211: 0b000'00000,
1212: 0,
1213:
1214: 0b000'00000, // 0xa6 ヲ
1215: 0b000'11111,
1216: 0b000'00001,
1217: 0b000'01111,
1218: 0b000'00001,
1219: 0b000'00010,
1220: 0b000'01100,
1221: 0,
1222:
1223: 0b000'00000, // 0xa7 ァ
1224: 0b000'00000,
1225: 0b000'11111,
1226: 0b000'00001,
1227: 0b000'00110,
1228: 0b000'00100,
1229: 0b000'01000,
1230: 0,
1231:
1232: 0b000'00000, // 0xa8 ィ
1233: 0b000'00000,
1234: 0b000'00010,
1235: 0b000'00100,
1236: 0b000'01100,
1237: 0b000'10100,
1238: 0b000'00100,
1239: 0,
1240:
1241: 0b000'00000, // 0xa9 ゥ
1242: 0b000'00000,
1243: 0b000'00100,
1244: 0b000'11111,
1245: 0b000'10001,
1246: 0b000'00001,
1247: 0b000'00110,
1248: 0,
1249:
1250: 0b000'00000, // 0xaa ェ
1251: 0b000'00000,
1252: 0b000'11111,
1253: 0b000'00100,
1254: 0b000'00100,
1255: 0b000'00100,
1256: 0b000'11111,
1257: 0,
1258:
1259: 0b000'00000, // 0xab ォ
1260: 0b000'00000,
1261: 0b000'00010,
1262: 0b000'11111,
1263: 0b000'00110,
1264: 0b000'01010,
1265: 0b000'10010,
1266: 0,
1267:
1268: 0b000'00000, // 0xac ャ
1269: 0b000'00000,
1270: 0b000'01000,
1271: 0b000'11111,
1272: 0b000'01001,
1273: 0b000'01010,
1274: 0b000'01000,
1275: 0,
1276:
1277: 0b000'00000, // 0xad ュ
1278: 0b000'00000,
1279: 0b000'00000,
1280: 0b000'11110,
1281: 0b000'00010,
1282: 0b000'00010,
1283: 0b000'11111,
1284: 0,
1285:
1286: 0b000'00000, // 0xae ョ
1287: 0b000'00000,
1288: 0b000'11111,
1289: 0b000'00001,
1290: 0b000'11111,
1291: 0b000'00001,
1292: 0b000'11111,
1293: 0,
1294:
1295: 0b000'00000, // 0xaf ッ
1296: 0b000'00000,
1297: 0b000'10101,
1298: 0b000'10101,
1299: 0b000'00001,
1300: 0b000'00001,
1301: 0b000'00110,
1302: 0,
1303:
1304: 0b000'00000, // 0xb0 ー
1305: 0b000'00000,
1306: 0b000'10000,
1307: 0b000'01111,
1308: 0b000'00000,
1309: 0b000'00000,
1310: 0b000'00000,
1311: 0,
1312:
1313: 0b000'00000, // 0xb1 ア
1314: 0b000'11111,
1315: 0b000'00001,
1316: 0b000'00101,
1317: 0b000'00110,
1318: 0b000'00100,
1319: 0b000'01000,
1320: 0,
1321:
1322: 0b000'00001, // 0xb2 イ
1323: 0b000'00010,
1324: 0b000'00100,
1325: 0b000'01100,
1326: 0b000'10100,
1327: 0b000'00100,
1328: 0b000'00100,
1329: 0,
1330:
1331: 0b000'00100, // 0xb3 ウ
1332: 0b000'11111,
1333: 0b000'10001,
1334: 0b000'10001,
1335: 0b000'00001,
1336: 0b000'00010,
1337: 0b000'00100,
1338: 0,
1339:
1340: 0b000'00000, // 0xb4 エ
1341: 0b000'11111,
1342: 0b000'00100,
1343: 0b000'00100,
1344: 0b000'00100,
1345: 0b000'00100,
1346: 0b000'11111,
1347: 0,
1348:
1349: 0b000'00010, // 0xb5 オ
1350: 0b000'11111,
1351: 0b000'00010,
1352: 0b000'00110,
1353: 0b000'01010,
1354: 0b000'10010,
1355: 0b000'00010,
1356: 0,
1357:
1358: 0b000'01000, // 0xb6 カ
1359: 0b000'11111,
1360: 0b000'01001,
1361: 0b000'01001,
1362: 0b000'01001,
1363: 0b000'01001,
1364: 0b000'10010,
1365: 0,
1366:
1367: 0b000'00100, // 0xb7 キ
1368: 0b000'11111,
1369: 0b000'00100,
1370: 0b000'11111,
1371: 0b000'00100,
1372: 0b000'00100,
1373: 0b000'00100,
1374: 0,
1375:
1376: 0b000'00000, // 0xb8 ク
1377: 0b000'01111,
1378: 0b000'01001,
1379: 0b000'10001,
1380: 0b000'00001,
1381: 0b000'00010,
1382: 0b000'01100,
1383: 0,
1384:
1385: 0b000'01000, // 0xb9 ケ
1386: 0b000'01111,
1387: 0b000'10010,
1388: 0b000'00010,
1389: 0b000'00010,
1390: 0b000'00010,
1391: 0b000'00100,
1392: 0,
1393:
1394: 0b000'00000, // 0xba コ
1395: 0b000'11111,
1396: 0b000'00001,
1397: 0b000'00001,
1398: 0b000'00001,
1399: 0b000'00001,
1400: 0b000'11111,
1401: 0,
1402:
1403: 0b000'01010, // 0xbb サ
1404: 0b000'11111,
1405: 0b000'01010,
1406: 0b000'01010,
1407: 0b000'00010,
1408: 0b000'00100,
1409: 0b000'01000,
1410: 0,
1411:
1412: 0b000'00000, // 0xbc シ
1413: 0b000'11001,
1414: 0b000'00001,
1415: 0b000'11001,
1416: 0b000'00001,
1417: 0b000'00010,
1418: 0b000'11100,
1419: 0,
1420:
1421: 0b000'00000, // 0xbd ス
1422: 0b000'11111,
1423: 0b000'00001,
1424: 0b000'00010,
1425: 0b000'00100,
1426: 0b000'01010,
1427: 0b000'10001,
1428: 0,
1429:
1430: 0b000'01000, // 0xbe セ
1431: 0b000'11111,
1432: 0b000'01001,
1433: 0b000'01001,
1434: 0b000'01010,
1435: 0b000'01000,
1436: 0b000'00110,
1437: 0,
1438:
1439: 0b000'00000, // 0xbf ソ
1440: 0b000'10001,
1441: 0b000'10001,
1442: 0b000'01001,
1443: 0b000'00001,
1444: 0b000'00010,
1445: 0b000'01100,
1446: 0,
1447:
1448: 0b000'00000, // 0xc0 タ
1449: 0b000'01111,
1450: 0b000'01001,
1451: 0b000'10101,
1452: 0b000'00011,
1453: 0b000'00010,
1454: 0b000'01100,
1455: 0,
1456:
1457: 0b000'00010, // 0xc1 チ
1458: 0b000'01100,
1459: 0b000'00100,
1460: 0b000'11111,
1461: 0b000'00100,
1462: 0b000'00100,
1463: 0b000'01000,
1464: 0,
1465:
1466: 0b000'00000, // 0xc2 ツ
1467: 0b000'10101,
1468: 0b000'10101,
1469: 0b000'10101,
1470: 0b000'00001,
1471: 0b000'00010,
1472: 0b000'00100,
1473: 0,
1474:
1475: 0b000'01110, // 0xc3 テ
1476: 0b000'00000,
1477: 0b000'11111,
1478: 0b000'00100,
1479: 0b000'00100,
1480: 0b000'00100,
1481: 0b000'01000,
1482: 0,
1483:
1484: 0b000'01000, // 0xc4 ト
1485: 0b000'01000,
1486: 0b000'01000,
1487: 0b000'01100,
1488: 0b000'01010,
1489: 0b000'01000,
1490: 0b000'01000,
1491: 0,
1492:
1493: 0b000'00100, // 0xc5 ナ
1494: 0b000'00100,
1495: 0b000'11111,
1496: 0b000'00100,
1497: 0b000'00100,
1498: 0b000'00100,
1499: 0b000'01000,
1500: 0,
1501:
1502: 0b000'00000, // 0xc6 ニ
1503: 0b000'01110,
1504: 0b000'00000,
1505: 0b000'00000,
1506: 0b000'00000,
1507: 0b000'00000,
1508: 0b000'11111,
1509: 0,
1510:
1511: 0b000'00000, // 0xc7 ヌ
1512: 0b000'11111,
1513: 0b000'00001,
1514: 0b000'01010,
1515: 0b000'00100,
1516: 0b000'01010,
1517: 0b000'10001,
1518: 0,
1519:
1520: 0b000'00100, // 0xc8 ネ
1521: 0b000'11111,
1522: 0b000'00010,
1523: 0b000'00100,
1524: 0b000'01110,
1525: 0b000'10101,
1526: 0b000'00100,
1527: 0,
1528:
1529: 0b000'00000, // 0xc9 ノ
1530: 0b000'00010,
1531: 0b000'00010,
1532: 0b000'00010,
1533: 0b000'00010,
1534: 0b000'00100,
1535: 0b000'01000,
1536: 0,
1537:
1538: 0b000'00000, // 0xca ハ
1539: 0b000'00100,
1540: 0b000'00010,
1541: 0b000'10001,
1542: 0b000'10001,
1543: 0b000'10001,
1544: 0b000'10001,
1545: 0,
1546:
1547: 0b000'00000, // 0xcb ヒ
1548: 0b000'10000,
1549: 0b000'11111,
1550: 0b000'10000,
1551: 0b000'10000,
1552: 0b000'10000,
1553: 0b000'01111,
1554: 0,
1555:
1556: 0b000'00000, // 0xcc フ
1557: 0b000'11111,
1558: 0b000'00001,
1559: 0b000'00001,
1560: 0b000'00001,
1561: 0b000'00010,
1562: 0b000'01100,
1563: 0,
1564:
1565: 0b000'00000, // 0xcd ヘ
1566: 0b000'01000,
1567: 0b000'10100,
1568: 0b000'10010,
1569: 0b000'00001,
1570: 0b000'00001,
1571: 0b000'00000,
1572: 0,
1573:
1574: 0b000'00100, // 0xce ホ
1575: 0b000'11111,
1576: 0b000'00100,
1577: 0b000'10101,
1578: 0b000'10101,
1579: 0b000'10101,
1580: 0b000'00100,
1581: 0,
1582:
1583: 0b000'00000, // 0xcf マ
1584: 0b000'11111,
1585: 0b000'00001,
1586: 0b000'00001,
1587: 0b000'01010,
1588: 0b000'00100,
1589: 0b000'00010,
1590: 0,
1591:
1592: 0b000'00000, // 0xd0 ミ
1593: 0b000'01110,
1594: 0b000'00000,
1595: 0b000'01110,
1596: 0b000'00000,
1597: 0b000'01110,
1598: 0b000'00001,
1599: 0,
1600:
1601: 0b000'00000, // 0xd1 ム
1602: 0b000'00100,
1603: 0b000'00100,
1604: 0b000'01000,
1605: 0b000'01001,
1606: 0b000'10011,
1607: 0b000'11101,
1608: 0,
1609:
1610: 0b000'00000, // 0xd2 メ
1611: 0b000'00001,
1612: 0b000'00001,
1613: 0b000'00101,
1614: 0b000'00010,
1615: 0b000'00101,
1616: 0b000'11000,
1617: 0,
1618:
1619: 0b000'00000, // 0xd3 モ
1620: 0b000'11111,
1621: 0b000'00100,
1622: 0b000'11111,
1623: 0b000'00100,
1624: 0b000'00100,
1625: 0b000'00011,
1626: 0,
1627:
1628: 0b000'01000, // 0xd4 ヤ
1629: 0b000'01000,
1630: 0b000'11111,
1631: 0b000'01001,
1632: 0b000'01010,
1633: 0b000'01000,
1634: 0b000'01000,
1635: 0,
1636:
1637: 0b000'00000, // 0xd5 ユ
1638: 0b000'01110,
1639: 0b000'00010,
1640: 0b000'00010,
1641: 0b000'00010,
1642: 0b000'00010,
1643: 0b000'11111,
1644: 0,
1645:
1646: 0b000'00000, // 0xd6 ヨ
1647: 0b000'11111,
1648: 0b000'00001,
1649: 0b000'01111,
1650: 0b000'00001,
1651: 0b000'00001,
1652: 0b000'11111,
1653: 0,
1654:
1655: 0b000'01110, // 0xd7 ラ
1656: 0b000'00000,
1657: 0b000'11111,
1658: 0b000'00001,
1659: 0b000'00001,
1660: 0b000'00010,
1661: 0b000'00100,
1662: 0,
1663:
1664: 0b000'00000, // 0xd8 リ
1665: 0b000'10010,
1666: 0b000'10010,
1667: 0b000'10010,
1668: 0b000'00010,
1669: 0b000'00100,
1670: 0b000'01000,
1671: 0,
1672:
1673: 0b000'00000, // 0xd9 ル
1674: 0b000'00100,
1675: 0b000'10100,
1676: 0b000'10100,
1677: 0b000'10101,
1678: 0b000'10101,
1679: 0b000'00110,
1680: 0,
1681:
1682: 0b000'00000, // 0xda レ
1683: 0b000'10000,
1684: 0b000'10000,
1685: 0b000'10001,
1686: 0b000'10010,
1687: 0b000'10100,
1688: 0b000'11000,
1689: 0,
1690:
1691: 0b000'00000, // 0xdb ロ
1692: 0b000'11111,
1693: 0b000'10001,
1694: 0b000'10001,
1695: 0b000'10001,
1696: 0b000'10001,
1697: 0b000'11111,
1698: 0,
1699:
1700: 0b000'00000, // 0xdc ワ
1701: 0b000'11111,
1702: 0b000'10001,
1703: 0b000'10001,
1704: 0b000'00001,
1705: 0b000'00010,
1706: 0b000'00100,
1707: 0,
1708:
1709: 0b000'00000, // 0xdd ン
1710: 0b000'11000,
1711: 0b000'00000,
1712: 0b000'00001,
1713: 0b000'00001,
1714: 0b000'00010,
1715: 0b000'11100,
1716: 0,
1717:
1718: 0b000'00100, // 0xde ゛
1719: 0b000'10010,
1720: 0b000'01000,
1721: 0b000'00000,
1722: 0b000'00000,
1723: 0b000'00000,
1724: 0b000'00000,
1725: 0,
1726:
1727: 0b000'11100, // 0xdf ゜
1728: 0b000'10100,
1729: 0b000'11100,
1730: 0b000'00000,
1731: 0b000'00000,
1732: 0b000'00000,
1733: 0b000'00000,
1734: 0,
1735:
1736: // ここから実際には 5x10 dot も混ざるが、現在はサポートしていない
1737:
1738: 0b000'00000, // 0xe0 α
1739: 0b000'00000,
1740: 0b000'00001,
1741: 0b000'01101,
1742: 0b000'10010,
1743: 0b000'10010,
1744: 0b000'01101,
1745: 0b000'00000,
1746:
1747: 0b000'01010, // 0xe1 a‥(Latin Small Letter A with Diaeresis)
1748: 0b000'00000,
1749: 0b000'01110,
1750: 0b000'00001,
1751: 0b000'01111,
1752: 0b000'10001,
1753: 0b000'01111,
1754: 0b000'00000,
1755:
1756: 0b000'00000, // 0xe2 β (10dot)
1757: 0b000'00000,
1758: 0b000'01110,
1759: 0b000'10001,
1760: 0b000'11110,
1761: 0b000'10001,
1762: 0b000'11110,
1763: 0b000'10000,
1764:
1765: 0b000'00000, // 0xe3 ε
1766: 0b000'00000,
1767: 0b000'01110,
1768: 0b000'10000,
1769: 0b000'01110,
1770: 0b000'10000,
1771: 0b000'01110,
1772: 0b000'00000,
1773:
1774: 0b000'00000, // 0xe4 μ (10dot)
1775: 0b000'00000,
1776: 0b000'10001,
1777: 0b000'10001,
1778: 0b000'10001,
1779: 0b000'10011,
1780: 0b000'11101,
1781: 0b000'10000,
1782:
1783: 0b000'00000, // 0xe5 σ
1784: 0b000'00000,
1785: 0b000'01111,
1786: 0b000'10010,
1787: 0b000'10001,
1788: 0b000'10001,
1789: 0b000'01110,
1790: 0b000'00000,
1791:
1792: 0b000'00000, // 0xe6 ρ (10dot)
1793: 0b000'00000,
1794: 0b000'00000,
1795: 0b000'00000,
1796: 0b000'00000,
1797: 0b000'00000,
1798: 0b000'00000,
1799: 0b000'00000,
1800:
1801: 0b000'00000, // 0xe7 g (10dot ver)
1802: 0b000'00000,
1803: 0b000'01111,
1804: 0b000'10001,
1805: 0b000'10001,
1806: 0b000'10001,
1807: 0b000'01111,
1808: 0b000'00001,
1809:
1810: 0b000'00000, // 0xe8 √(?)
1811: 0b000'00111,
1812: 0b000'00100,
1813: 0b000'00100,
1814: 0b000'10100,
1815: 0b000'01000,
1816: 0b000'00000,
1817: 0b000'00000,
1818:
1819: 0b000'00000, // 0xe9 ^(-1) (?)
1820: 0b000'00010,
1821: 0b000'11010,
1822: 0b000'00010,
1823: 0b000'00000,
1824: 0b000'00000,
1825: 0b000'00000,
1826: 0b000'00000,
1827:
1828: 0b000'00010, // 0xea j (10dot ver)
1829: 0b000'00000,
1830: 0b000'00110,
1831: 0b000'00010,
1832: 0b000'00010,
1833: 0b000'00010,
1834: 0b000'00010,
1835: 0b000'00010,
1836:
1837: 0b000'00000, // 0xeb ^x (?)
1838: 0b000'00000,
1839: 0b000'00000,
1840: 0b000'00000,
1841: 0b000'00000,
1842: 0b000'00000,
1843: 0b000'00000,
1844: 0b000'00000,
1845:
1846: 0b000'00000, // 0xec ¢
1847: 0b000'00100,
1848: 0b000'01110,
1849: 0b000'10100,
1850: 0b000'10101,
1851: 0b000'01110,
1852: 0b000'00100,
1853: 0b000'00000,
1854:
1.1.1.6 root 1855: 0b000'00000, // 0xed L= (U+26c0 だろうか?)
1.1.1.4 root 1856: 0b000'00000,
1857: 0b000'00000,
1858: 0b000'00000,
1859: 0b000'00000,
1860: 0b000'00000,
1861: 0b000'00000,
1862: 0b000'00000,
1863:
1864: 0b000'00000, // 0xee n ̄(n マクロン?)
1865: 0b000'00000,
1866: 0b000'00000,
1867: 0b000'00000,
1868: 0b000'00000,
1869: 0b000'00000,
1870: 0b000'00000,
1871: 0b000'00000,
1872:
1873: 0b000'01010, // 0xef o‥(Latin Small Letter O with Diaeresis)
1874: 0b000'00000,
1875: 0b000'01110,
1876: 0b000'10001,
1877: 0b000'10001,
1878: 0b000'10001,
1879: 0b000'01110,
1880: 0b000'00000,
1881:
1882: 0b000'00000, // 0xf0 p (10dot ver)
1883: 0b000'00000,
1884: 0b000'10110,
1885: 0b000'11001,
1886: 0b000'10001,
1887: 0b000'10001,
1888: 0b000'11110,
1889: 0b000'10000,
1890:
1891: 0b000'00000, // 0xf1 q (10dot ver)
1892: 0b000'00000,
1893: 0b000'01101,
1894: 0b000'10011,
1895: 0b000'10001,
1896: 0b000'10001,
1897: 0b000'01111,
1898: 0b000'00001,
1899:
1900: 0b000'01110, // 0xf2 θ(?)
1901: 0b000'10001,
1902: 0b000'10001,
1903: 0b000'11111,
1904: 0b000'10001,
1905: 0b000'10001,
1906: 0b000'01110,
1907: 0b000'00000,
1908:
1909: 0b000'00000, // 0xf3 ∞(?)
1910: 0b000'00000,
1911: 0b000'01010,
1912: 0b000'10101,
1913: 0b000'10101,
1914: 0b000'01010,
1915: 0b000'00000,
1916: 0b000'00000,
1917:
1918: 0b000'00000, // 0xf4 Ω
1919: 0b000'01110,
1920: 0b000'10001,
1921: 0b000'10001,
1922: 0b000'10001,
1923: 0b000'01010,
1924: 0b000'11011,
1925: 0b000'00000,
1926:
1927: 0b000'01010, // 0xf5 u‥(?)
1928: 0b000'00000,
1929: 0b000'10001,
1930: 0b000'10001,
1931: 0b000'10001,
1932: 0b000'10011,
1933: 0b000'01101,
1934: 0b000'00000,
1935:
1936: 0b000'11111, // 0xf6 Σ
1937: 0b000'01000,
1938: 0b000'00100,
1939: 0b000'00010,
1940: 0b000'00100,
1941: 0b000'01000,
1942: 0b000'11111,
1943: 0b000'00000,
1944:
1945: 0b000'00000, // 0xf7 π
1946: 0b000'00000,
1947: 0b000'11111,
1948: 0b000'01010,
1949: 0b000'01010,
1950: 0b000'01010,
1951: 0b000'10011,
1952: 0b000'00000,
1953:
1954: 0b000'11111, // 0xf8 x ̄(?)
1955: 0b000'00000,
1956: 0b000'10001,
1957: 0b000'01010,
1958: 0b000'00100,
1959: 0b000'01010,
1960: 0b000'10001,
1961: 0b000'00000,
1962:
1963: 0b000'00000, // 0xf9 y (10dot ver)
1964: 0b000'00000,
1965: 0b000'10001,
1966: 0b000'10001,
1967: 0b000'10001,
1968: 0b000'10001,
1969: 0b000'01111,
1970: 0b000'00001,
1971:
1972: 0b000'00000, // 0xfa 千
1973: 0b000'00001,
1974: 0b000'01110,
1975: 0b000'00100,
1976: 0b000'11111,
1977: 0b000'00100,
1978: 0b000'00100,
1979: 0b000'00000,
1980:
1981: 0b000'00000, // 0xfb 万
1982: 0b000'11111,
1983: 0b000'01000,
1984: 0b000'01111,
1985: 0b000'01001,
1986: 0b000'01001,
1987: 0b000'10001,
1988: 0b000'00000,
1989:
1990: 0b000'00000, // 0xfc 円
1991: 0b000'11111,
1992: 0b000'10101,
1993: 0b000'10101,
1994: 0b000'11111,
1995: 0b000'10001,
1996: 0b000'10001,
1997: 0b000'00000,
1998:
1999: 0b000'00000, // 0xfd ÷
2000: 0b000'00000,
2001: 0b000'00100,
2002: 0b000'00000,
2003: 0b000'11111,
2004: 0b000'00000,
2005: 0b000'00100,
2006: 0b000'00000,
2007:
2008: 0b000'00000, // 0xfe space
2009: 0b000'00000,
2010: 0b000'00000,
2011: 0b000'00000,
2012: 0b000'00000,
2013: 0b000'00000,
2014: 0b000'00000,
2015: 0b000'00000,
2016:
2017: 0b000'11111, // 0xff cursor
2018: 0b000'11111,
2019: 0b000'11111,
2020: 0b000'11111,
2021: 0b000'11111,
2022: 0b000'11111,
2023: 0b000'11111,
2024: 0b000'11111,
2025: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.