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

1.1     ! root        1: //
        !             2: // nono
        !             3: // Copyright (C) 2021 nono project
        !             4: // Licensed under nono-license.txt
        !             5: //
        !             6: 
        !             7: //
        !             8: // 外字データ
        !             9: //
        !            10: 
        !            11: #include "bitrev.h"
        !            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: 
        !            54:        { 0x02, // ライトプロテクト(1文字目)
        !            55:          {
        !            56:                B(000000'00),           // 0
        !            57:                B(000000'00),           // 1
        !            58:                B(000000'00),           // 2
        !            59:                B(000000'00),           // 3
        !            60:                B(111111'00),           // 4
        !            61:                B(101010'00),           // 5
        !            62:                B(101010'00),           // 6
        !            63:                B(100000'00),           // 7
        !            64:                B(110101'00),           // 8
        !            65:                B(110101'00),           // 9
        !            66:                B(111111'00),           // a
        !            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
        !            74:                B(00000000),            // 5
        !            75:                B(00000000),            // 6
        !            76:                B(01111111),            // 7
        !            77:                B(01011101),            // 8
        !            78:                B(01010101),            // 9
        !            79:                B(01010101),            // a
        !            80:                B(01000001),            // b
        !            81:                B(01101011),            // c
        !            82:                B(01101011),            // d
        !            83:                B(01111111),            // e
        !            84:                B(00000000),            // f
        !            85:          }
        !            86:        },
        !            87: 
        !            88:        { 0x03, // ライトプロテクト(2文字目)
        !            89:          {
        !            90:                B(000000'00),           // 0
        !            91:                B(000000'00),           // 1
        !            92:                B(000000'00),           // 2
        !            93:                B(000000'00),           // 3
        !            94:                B(111111'00),           // 4
        !            95:                B(100001'00),           // 5
        !            96:                B(101101'00),           // 6
        !            97:                B(100001'00),           // 7
        !            98:                B(101111'00),           // 8
        !            99:                B(101111'00),           // 9
        !           100:                B(111111'00),           // a
        !           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
        !           108:                B(00000000),            // 5
        !           109:                B(00000000),            // 6
        !           110:                B(11111100),            // 7
        !           111:                B(00001100),            // 8
        !           112:                B(01110100),            // 9
        !           113:                B(01110100),            // a
        !           114:                B(00001100),            // b
        !           115:                B(01111100),            // c
        !           116:                B(01111100),            // d
        !           117:                B(11111100),            // e
        !           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.