Annotation of nono/wx/privatechar.cpp, revision 1.1.1.2

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2021 nono project
                      4: // Licensed under nono-license.txt
                      5: //
                      6: 
                      7: //
                      8: // 外字データ
                      9: //
                     10: 
1.1.1.2 ! root       11: #include "bitops.h"
1.1       root       12: #include "privatechar.h"
                     13: 
                     14: #define B(x)   _rev8(0b##x)
                     15: 
                     16: // XBM 形式で保存する。XBM は 1bpp 左右鏡像で右(下位)詰めだが、
                     17: // _rev8() が反転を行っているのでソースコード上は鏡像にせず左(上位)詰め。
                     18: // code = 0 のエントリで終了。
                     19: constexpr private_char private_chars[] {
                     20:        { 0x01, // 早送りの三角
                     21:          {
                     22:                B(000000'00),           // 0
                     23:                B(100000'00),           // 1
                     24:                B(110000'00),           // 2
                     25:                B(111000'00),           // 3
                     26:                B(111100'00),           // 4
                     27:                B(111110'00),           // 5
                     28:                B(111111'00),           // 6
                     29:                B(111110'00),           // 7
                     30:                B(111100'00),           // 8
                     31:                B(111000'00),           // 9
                     32:                B(110000'00),           // a
                     33:                B(100000'00),           // b
                     34:          }, {
                     35:                B(00000000),            // 0
                     36:                B(10000000),            // 1
                     37:                B(11000000),            // 2
                     38:                B(11100000),            // 3
                     39:                B(11110000),            // 4
                     40:                B(11111000),            // 5
                     41:                B(11111100),            // 6
                     42:                B(11111110),            // 7
                     43:                B(11111111),            // 8
                     44:                B(11111110),            // 9
                     45:                B(11111100),            // a
                     46:                B(11111000),            // b
                     47:                B(11110000),            // c
                     48:                B(11100000),            // d
                     49:                B(11000000),            // e
                     50:                B(10000000),            // f
                     51:          }
                     52:        },
                     53: 
1.1.1.2 ! root       54:        { 0x02, // ライト無視(1文字目)
1.1       root       55:          {
                     56:                B(000000'00),           // 0
                     57:                B(000000'00),           // 1
                     58:                B(000000'00),           // 2
1.1.1.2 ! root       59:                B(111111'00),           // 3
        !            60:                B(101010'00),           // 4
1.1       root       61:                B(101010'00),           // 5
1.1.1.2 ! root       62:                B(100000'00),           // 6
        !            63:                B(110101'00),           // 7
1.1       root       64:                B(110101'00),           // 8
1.1.1.2 ! root       65:                B(111111'00),           // 9
        !            66:                B(000000'00),           // a
1.1       root       67:                B(000000'00),           // b
                     68:          }, {
                     69:                B(00000000),            // 0
                     70:                B(00000000),            // 1
                     71:                B(00000000),            // 2
                     72:                B(00000000),            // 3
                     73:                B(00000000),            // 4
1.1.1.2 ! root       74:                B(01111111),            // 5
        !            75:                B(01011101),            // 6
        !            76:                B(01010101),            // 7
        !            77:                B(01010101),            // 8
        !            78:                B(01000001),            // 9
        !            79:                B(01101011),            // a
        !            80:                B(01101011),            // b
        !            81:                B(01111111),            // c
        !            82:                B(00000000),            // d
        !            83:                B(00000000),            // e
1.1       root       84:                B(00000000),            // f
                     85:          }
                     86:        },
                     87: 
1.1.1.2 ! root       88:        { 0x03, // ライト無視(2文字目)
1.1       root       89:          {
                     90:                B(000000'00),           // 0
                     91:                B(000000'00),           // 1
                     92:                B(000000'00),           // 2
1.1.1.2 ! root       93:                B(111110'00),           // 3
        !            94:                B(100010'00),           // 4
        !            95:                B(110110'00),           // 5
        !            96:                B(110110'00),           // 6
        !            97:                B(110110'00),           // 7
        !            98:                B(100010'00),           // 8
        !            99:                B(111110'00),           // 9
        !           100:                B(000000'00),           // a
1.1       root      101:                B(000000'00),           // b
                    102:          }, {
                    103:                B(00000000),            // 0
                    104:                B(00000000),            // 1
                    105:                B(00000000),            // 2
                    106:                B(00000000),            // 3
                    107:                B(00000000),            // 4
1.1.1.2 ! root      108:                B(11111100),            // 5
        !           109:                B(10001100),            // 6
        !           110:                B(11011100),            // 7
        !           111:                B(11011100),            // 8
        !           112:                B(11011100),            // 9
        !           113:                B(11011100),            // a
        !           114:                B(10001100),            // b
        !           115:                B(11111100),            // c
        !           116:                B(00000000),            // d
        !           117:                B(00000000),            // e
1.1       root      118:                B(00000000),            // f
                    119:          }
                    120:        },
                    121: 
                    122:        { 0x04, // 4文字幅の BREAK (1文字目)
                    123:          {
                    124:                B(000000'00),           // 0
                    125:                B(111001'00),           // 1
                    126:                B(100101'00),           // 2
                    127:                B(100101'00),           // 3
                    128:                B(100101'00),           // 4
                    129:                B(111001'00),           // 5
                    130:                B(100101'00),           // 6
                    131:                B(100101'00),           // 7
                    132:                B(100101'00),           // 8
                    133:                B(111001'00),           // 9
                    134:                B(000000'00),           // a
                    135:                B(000000'00),           // b
                    136:          }, {
                    137:                B(00000000),            // 0
                    138:                B(00000000),            // 1
                    139:                B(01111100),            // 2
                    140:                B(00100010),            // 3
                    141:                B(00100010),            // 4
                    142:                B(00100010),            // 5
                    143:                B(00100010),            // 6
                    144:                B(00111100),            // 7
                    145:                B(00100010),            // 8
                    146:                B(00100010),            // 9
                    147:                B(00100010),            // a
                    148:                B(00100010),            // b
                    149:                B(00100010),            // c
                    150:                B(01111100),            // d
                    151:                B(00000000),            // e
                    152:                B(00000000),            // f
                    153:          }
                    154:        },
                    155: 
                    156:        { 0x05, // 4文字幅の BREAK (2文字目)
                    157:          {
                    158:                B(000000'00),           // 0
                    159:                B(110011'00),           // 1
                    160:                B(001010'00),           // 2
                    161:                B(001010'00),           // 3
                    162:                B(001010'00),           // 4
                    163:                B(110011'00),           // 5
                    164:                B(010010'00),           // 6
                    165:                B(001010'00),           // 7
                    166:                B(001010'00),           // 8
                    167:                B(001011'00),           // 9
                    168:                B(000000'00),           // a
                    169:                B(000000'00),           // b
                    170:          }, {
                    171:                B(00000000),            // 0
                    172:                B(00000000),            // 1
                    173:                B(11110011),            // 2
                    174:                B(10001010),            // 3
                    175:                B(10001010),            // 4
                    176:                B(10001010),            // 5
                    177:                B(10001010),            // 6
                    178:                B(11110011),            // 7
                    179:                B(10010010),            // 8
                    180:                B(10010010),            // 9
                    181:                B(10001010),            // a
                    182:                B(10001010),            // b
                    183:                B(10001010),            // c
                    184:                B(10001011),            // d
                    185:                B(00000000),            // e
                    186:                B(00000000),            // f
                    187:          }
                    188:        },
                    189: 
                    190:        { 0x06, // 4文字幅の BREAK (3文字目)
                    191:          {
                    192:                B(000000'00),           // 0
                    193:                B(110011'00),           // 1
                    194:                B(000100'00),           // 2
                    195:                B(000100'00),           // 3
                    196:                B(000100'00),           // 4
                    197:                B(100111'00),           // 5
                    198:                B(000100'00),           // 6
                    199:                B(000100'00),           // 7
                    200:                B(000100'00),           // 8
                    201:                B(110100'00),           // 9
                    202:                B(000000'00),           // a
                    203:                B(000000'00),           // b
                    204:          }, {
                    205:                B(00000000),            // 0
                    206:                B(00000000),            // 1
                    207:                B(11100010),            // 2
                    208:                B(00000010),            // 3
                    209:                B(00000101),            // 4
                    210:                B(00000101),            // 5
                    211:                B(00000101),            // 6
                    212:                B(11001000),            // 7
                    213:                B(00001000),            // 8
                    214:                B(00001000),            // 9
                    215:                B(00001111),            // a
                    216:                B(00001000),            // b
                    217:                B(00001000),            // c
                    218:                B(11101000),            // d
                    219:                B(00000000),            // e
                    220:                B(00000000),            // f
                    221:          }
                    222:        },
                    223: 
                    224:        { 0x07, // 4文字幅の BREAK (4文字目)
                    225:          {
                    226:                B(000000'00),           // 0
                    227:                B(001001'00),           // 1
                    228:                B(101010'00),           // 2
                    229:                B(101010'00),           // 3
                    230:                B(101100'00),           // 4
                    231:                B(101100'00),           // 5
                    232:                B(101010'00),           // 6
                    233:                B(101010'00),           // 7
                    234:                B(101001'00),           // 8
                    235:                B(101001'00),           // 9
                    236:                B(000000'00),           // a
                    237:                B(000000'00),           // b
                    238:          }, {
                    239:                B(00000000),            // 0
                    240:                B(00000000),            // 1
                    241:                B(00100010),            // 2
                    242:                B(00100010),            // 3
                    243:                B(00100100),            // 4
                    244:                B(00100100),            // 5
                    245:                B(00101000),            // 6
                    246:                B(10110000),            // 7
                    247:                B(10101000),            // 8
                    248:                B(10101000),            // 9
                    249:                B(10100100),            // a
                    250:                B(10100100),            // b
                    251:                B(10100010),            // c
                    252:                B(10100010),            // d
                    253:                B(00000000),            // e
                    254:                B(00000000),            // f
                    255:          }
                    256:        },
                    257: 
                    258:        { 0x08, // (アキ)
                    259:        },
                    260: 
                    261:        // 0x09 は '\t'、
                    262:        // 0x0a は '\n' なので割り当てない
                    263: 
                    264:        { 0x0b, // 4文字幅の ENTER (1文字目)
                    265:          {
                    266:                B(000000'00),           // 0
                    267:                B(111101'00),           // 1
                    268:                B(100001'00),           // 2
                    269:                B(100001'00),           // 3
                    270:                B(100001'00),           // 4
                    271:                B(111001'00),           // 5
                    272:                B(100001'00),           // 6
                    273:                B(100001'00),           // 7
                    274:                B(100001'00),           // 8
                    275:                B(111101'00),           // 9
                    276:                B(000000'00),           // a
                    277:                B(000000'00),           // b
                    278:          }, {
                    279:                B(00000000),            // 0
                    280:                B(00000000),            // 1
                    281:                B(01111101),            // 2
                    282:                B(01000001),            // 3
                    283:                B(01000001),            // 4
                    284:                B(01000001),            // 5
                    285:                B(01000001),            // 6
                    286:                B(01111001),            // 7
                    287:                B(01000001),            // 8
                    288:                B(01000001),            // 9
                    289:                B(01000001),            // a
                    290:                B(01000001),            // b
                    291:                B(01000001),            // c
                    292:                B(01111101),            // d
                    293:                B(00000000),            // e
                    294:                B(00000000),            // f
                    295:          }
                    296:        },
                    297: 
                    298:        { 0x0c, // 4文字幅の ENTER (2文字目)
                    299:          {
                    300:                B(000000'00),           // 0
                    301:                B(001011'00),           // 1
                    302:                B(101001'00),           // 2
                    303:                B(101001'00),           // 3
                    304:                B(101001'00),           // 4
                    305:                B(011001'00),           // 5
                    306:                B(011001'00),           // 6
                    307:                B(011001'00),           // 7
                    308:                B(001001'00),           // 8
                    309:                B(001001'00),           // 9
                    310:                B(000000'00),           // a
                    311:                B(000000'00),           // b
                    312:          }, {
                    313:                B(00000000),            // 0
                    314:                B(00000000),            // 1
                    315:                B(00010111),            // 2
                    316:                B(00010001),            // 3
                    317:                B(10010001),            // 4
                    318:                B(10010001),            // 5
                    319:                B(10010001),            // 6
                    320:                B(01010001),            // 7
                    321:                B(01010001),            // 8
                    322:                B(00110001),            // 9
                    323:                B(00110001),            // a
                    324:                B(00110001),            // b
                    325:                B(00010001),            // c
                    326:                B(00010001),            // d
                    327:                B(00000000),            // e
                    328:                B(00000000),            // f
                    329:          }
                    330:        },
                    331: 
                    332:        { 0x0d, // 4文字幅の ENTER (3文字目)
                    333:          {
                    334:                B(000000'00),           // 0
                    335:                B(101111'00),           // 1
                    336:                B(001000'00),           // 2
                    337:                B(001000'00),           // 3
                    338:                B(001000'00),           // 4
                    339:                B(001110'00),           // 5
                    340:                B(001000'00),           // 6
                    341:                B(001000'00),           // 7
                    342:                B(001000'00),           // 8
                    343:                B(001111'00),           // 9
                    344:                B(000000'00),           // a
                    345:                B(000000'00),           // b
                    346:          }, {
                    347:                B(00000000),            // 0
                    348:                B(00000000),            // 1
                    349:                B(11011111),            // 2
                    350:                B(00010000),            // 3
                    351:                B(00010000),            // 4
                    352:                B(00010000),            // 5
                    353:                B(00010000),            // 6
                    354:                B(00011110),            // 7
                    355:                B(00010000),            // 8
                    356:                B(00010000),            // 9
                    357:                B(00010000),            // a
                    358:                B(00010000),            // b
                    359:                B(00010000),            // c
                    360:                B(00011111),            // d
                    361:                B(00000000),            // e
                    362:                B(00000000),            // f
                    363:          }
                    364:        },
                    365: 
                    366:        { 0x0e, // 4文字幅の ENTER (4文字目)
                    367:          {
                    368:                B(000000'00),           // 0
                    369:                B(111000'00),           // 1
                    370:                B(100100'00),           // 2
                    371:                B(100100'00),           // 3
                    372:                B(100100'00),           // 4
                    373:                B(111000'00),           // 5
                    374:                B(101000'00),           // 6
                    375:                B(100100'00),           // 7
                    376:                B(100100'00),           // 8
                    377:                B(100100'00),           // 9
                    378:                B(000000'00),           // a
                    379:                B(000000'00),           // b
                    380:          }, {
                    381:                B(00000000),            // 0
                    382:                B(00000000),            // 1
                    383:                B(01111000),            // 2
                    384:                B(01000100),            // 3
                    385:                B(01000100),            // 4
                    386:                B(01000100),            // 5
                    387:                B(01000100),            // 6
                    388:                B(01111000),            // 7
                    389:                B(01001000),            // 8
                    390:                B(01001000),            // 9
                    391:                B(01000100),            // a
                    392:                B(01000100),            // b
                    393:                B(01000100),            // c
                    394:                B(01000100),            // d
                    395:                B(00000000),            // e
                    396:                B(00000000),            // f
                    397:          }
                    398:        },
                    399: 
                    400:        { 0 },  // 番兵
                    401: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.