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