--- nono/wx/privatechar.cpp 2026/04/29 17:04:59 1.1.1.2 +++ nono/wx/privatechar.cpp 2026/04/29 17:05:16 1.1.1.4 @@ -11,11 +11,9 @@ #include "bitops.h" #include "privatechar.h" -#define B(x) _rev8(0b##x) +#define B(x) (0b##x) +#define W(x) (B(x) >> 8), (B(x) & 0xff) -// XBM 形式で保存する。XBM は 1bpp 左右鏡像で右(下位)詰めだが、 -// _rev8() が反転を行っているのでソースコード上は鏡像にせず左(上位)詰め。 -// code = 0 のエントリで終了。 constexpr private_char private_chars[] { { 0x01, // 早送りの三角 { @@ -48,6 +46,31 @@ constexpr private_char private_chars[] { B(11100000), // d B(11000000), // e B(10000000), // f + }, { + W(000000000000'0000), // 0 + W(100000000000'0000), // 1 + W(110000000000'0000), // 2 + W(111000000000'0000), // 3 + W(111100000000'0000), // 4 + W(111110000000'0000), // 5 + W(111111000000'0000), // 6 + W(111111100000'0000), // 7 + W(111111110000'0000), // 8 + W(111111111000'0000), // 9 + W(111111111100'0000), // 10 + W(111111111110'0000), // 11 + W(111111111111'0000), // 12 + W(111111111110'0000), // 13 + W(111111111100'0000), // 14 + W(111111111000'0000), // 15 + W(111111110000'0000), // 16 + W(111111100000'0000), // 17 + W(111111000000'0000), // 18 + W(111110000000'0000), // 19 + W(111100000000'0000), // 20 + W(111000000000'0000), // 21 + W(110000000000'0000), // 22 + W(100000000000'0000), // 23 } }, @@ -82,6 +105,31 @@ constexpr private_char private_chars[] { B(00000000), // d B(00000000), // e B(00000000), // f + }, { + W(000000000000'0000), // 0 + W(000000000000'0000), // 1 + W(000000000000'0000), // 2 + W(000000000000'0000), // 3 + W(000000000000'0000), // 4 + W(000000000000'0000), // 5 + W(001111111111'0000), // 6 + W(011111111111'0000), // 7 + W(011101111101'0000), // 8 + W(011101111101'0000), // 9 + W(011101111101'0000), // 10 + W(011101101101'0000), // 11 + W(011101101101'0000), // 12 + W(011101010101'0000), // 13 + W(011101010101'0000), // 14 + W(011110111011'0000), // 15 + W(011110111011'0000), // 16 + W(011110111011'0000), // 17 + W(011111111111'0000), // 18 + W(001111111111'0000), // 19 + W(000000000000'0000), // 20 + W(000000000000'0000), // 21 + W(000000000000'0000), // 22 + W(000000000000'0000), // 23 } }, @@ -116,6 +164,31 @@ constexpr private_char private_chars[] { B(00000000), // d B(00000000), // e B(00000000), // f + }, { + W(000000000000'0000), // 0 + W(000000000000'0000), // 1 + W(000000000000'0000), // 2 + W(000000000000'0000), // 3 + W(000000000000'0000), // 4 + W(000000000000'0000), // 5 + W(111111111000'0000), // 6 + W(111111111100'0000), // 7 + W(110000011100'0000), // 8 + W(111101111100'0000), // 9 + W(111101111100'0000), // 10 + W(111101111100'0000), // 11 + W(111101111100'0000), // 12 + W(111101111100'0000), // 13 + W(111101111100'0000), // 14 + W(111101111100'0000), // 15 + W(111101111100'0000), // 16 + W(110000011100'0000), // 17 + W(111111111100'0000), // 18 + W(111111111000'0000), // 19 + W(000000000000'0000), // 20 + W(000000000000'0000), // 21 + W(000000000000'0000), // 22 + W(000000000000'0000), // 23 } }, @@ -150,6 +223,31 @@ constexpr private_char private_chars[] { B(01111100), // d B(00000000), // e B(00000000), // f + }, { + W(000000000000'0000), // 0 + W(000000000000'0000), // 1 + W(000000000000'0000), // 2 + W(111111100011'0000), // 3 + W(011000010001'0000), // 4 + W(011000011001'0000), // 5 + W(011000011001'0000), // 6 + W(011000011001'0000), // 7 + W(011000011001'0000), // 8 + W(011000110001'0000), // 9 + W(011111100001'0000), // 10 + W(011000010001'0000), // 11 + W(011000011001'0000), // 12 + W(011000001101'0000), // 13 + W(011000001101'0000), // 14 + W(011000001101'0000), // 15 + W(011000001101'0000), // 16 + W(011000001101'0000), // 17 + W(011000001101'0000), // 18 + W(011000011001'0000), // 19 + W(011111100011'0000), // 20 + W(000000000000'0000), // 21 + W(000000000000'0000), // 22 + W(000000000000'0000), // 23 } }, @@ -184,6 +282,31 @@ constexpr private_char private_chars[] { B(10001011), // d B(00000000), // e B(00000000), // f + }, { + W(000000000000'0000), // 0 + W(000000000000'0000), // 1 + W(000000000000'0000), // 2 + W(111110011111'0000), // 3 + W(100011001100'0000), // 4 + W(100001101100'0000), // 5 + W(100001101100'0000), // 6 + W(100001101100'0000), // 7 + W(100001101100'0000), // 8 + W(100011001100'0000), // 9 + W(111100001111'0000), // 10 + W(100110001100'0000), // 11 + W(100011001100'0000), // 12 + W(100011001100'0000), // 13 + W(100011001100'0000), // 14 + W(100001101100'0000), // 15 + W(100001101100'0000), // 16 + W(100001101100'0000), // 17 + W(100001101100'0000), // 18 + W(100001101100'0000), // 19 + W(110011111111'0000), // 20 + W(000000000000'0000), // 21 + W(000000000000'0000), // 22 + W(000000000000'0000), // 23 } }, @@ -218,6 +341,31 @@ constexpr private_char private_chars[] { B(11101000), // d B(00000000), // e B(00000000), // f + }, { + W(000000000000'0000), // 0 + W(000000000000'0000), // 1 + W(000000000000'0000), // 2 + W(111000011000'0000), // 3 + W(001000011000'0000), // 4 + W(001000011000'0000), // 5 + W(000100011000'0000), // 6 + W(000000101100'0000), // 7 + W(010000101100'0000), // 8 + W(010000101100'0000), // 9 + W(110000101100'0000), // 10 + W(010001000110'0000), // 11 + W(010001000110'0000), // 12 + W(000001000110'0000), // 13 + W(000001111110'0000), // 14 + W(000001000110'0000), // 15 + W(000010000011'0000), // 16 + W(000010000011'0000), // 17 + W(001010000011'0000), // 18 + W(001010000011'0000), // 19 + W(111011100111'0000), // 20 + W(000000000000'0000), // 21 + W(000000000000'0000), // 22 + W(000000000000'0000), // 23 } }, @@ -252,6 +400,31 @@ constexpr private_char private_chars[] { B(10100010), // d B(00000000), // e B(00000000), // f + }, { + W(000000000000'0000), // 0 + W(000000000000'0000), // 1 + W(000000000000'0000), // 2 + W(011110000111'0000), // 3 + W(001100000010'0000), // 4 + W(001100000100'0000), // 5 + W(001100000100'0000), // 6 + W(001100001000'0000), // 7 + W(001100010000'0000), // 8 + W(001100010000'0000), // 9 + W(001100100000'0000), // 10 + W(001101110000'0000), // 11 + W(001110110000'0000), // 12 + W(001100011000'0000), // 13 + W(001100011000'0000), // 14 + W(001100011000'0000), // 15 + W(001100001100'0000), // 16 + W(001100001100'0000), // 17 + W(001100000110'0000), // 18 + W(001100000110'0000), // 19 + W(111110001111'0000), // 20 + W(000000000000'0000), // 21 + W(000000000000'0000), // 22 + W(000000000000'0000), // 23 } }, @@ -292,6 +465,31 @@ constexpr private_char private_chars[] { B(01111101), // d B(00000000), // e B(00000000), // f + }, { + W(000000000000'0000), // 0 + W(000000000000'0000), // 1 + W(000000000000'0000), // 2 + W(111111111110'0000), // 3 + W(011000010110'0000), // 4 + W(011000010111'0000), // 5 + W(011000000101'0000), // 6 + W(011000000101'0000), // 7 + W(011000010101'0000), // 8 + W(011000010100'0000), // 9 + W(011111110100'0000), // 10 + W(011000010100'0000), // 11 + W(011000010100'0000), // 12 + W(011000000100'0000), // 13 + W(011000000100'0000), // 14 + W(011000000100'0000), // 15 + W(011000000100'0000), // 16 + W(011000000100'0000), // 17 + W(011000010100'0000), // 18 + W(011000010100'0000), // 19 + W(111111110110'0000), // 20 + W(000000000000'0000), // 21 + W(000000000000'0000), // 22 + W(000000000000'0000), // 23 } }, @@ -326,10 +524,37 @@ constexpr private_char private_chars[] { B(00010001), // d B(00000000), // e B(00000000), // f + }, { + W(000000000000'0000), // 0 + W(000000000000'0000), // 1 + W(000000000000'0000), // 2 + W(000011101111'0000), // 3 + W(000001010001'0000), // 4 + W(000001010001'0000), // 5 + W(000001000001'0000), // 6 + W(100001000001'0000), // 7 + W(100001000001'0000), // 8 + W(110001000001'0000), // 9 + W(110001000001'0000), // 10 + W(011001000001'0000), // 11 + W(011001000001'0000), // 12 + W(001101000001'0000), // 13 + W(001101000001'0000), // 14 + W(000111000001'0000), // 15 + W(000111000001'0000), // 16 + W(000011000001'0000), // 17 + W(000011000001'0000), // 18 + W(000001000001'0000), // 19 + W(000001000111'0000), // 20 + W(000000000000'0000), // 21 + W(000000000000'0000), // 22 + W(000000000000'0000), // 23 } }, - { 0x0d, // 4文字幅の ENTER (3文字目) + // 0x0d は '\r' なので割り当てない + + { 0x0e, // 4文字幅の ENTER (3文字目) { B(000000'00), // 0 B(101111'00), // 1 @@ -360,10 +585,35 @@ constexpr private_char private_chars[] { B(00011111), // d B(00000000), // e B(00000000), // f + }, { + W(000000000000'0000), // 0 + W(000000000000'0000), // 1 + W(000000000000'0000), // 2 + W(111101111111'0000), // 3 + W(100010110000'0000), // 4 + W(100010110000'0000), // 5 + W(100010110000'0000), // 6 + W(100000110000'0000), // 7 + W(100000110001'0000), // 8 + W(100000110001'0000), // 9 + W(100000111111'0000), // 10 + W(100000110001'0000), // 11 + W(100000110001'0000), // 12 + W(100000110001'0000), // 13 + W(100000110000'0000), // 14 + W(100000110000'0000), // 15 + W(100000110000'0000), // 16 + W(100000110000'0000), // 17 + W(100000110000'0000), // 18 + W(100000110000'0000), // 19 + W(110001111111'0000), // 20 + W(000000000000'0000), // 21 + W(000000000000'0000), // 22 + W(000000000000'0000), // 23 } }, - { 0x0e, // 4文字幅の ENTER (4文字目) + { 0x0f, // 4文字幅の ENTER (4文字目) { B(000000'00), // 0 B(111000'00), // 1 @@ -394,6 +644,31 @@ constexpr private_char private_chars[] { B(01000100), // d B(00000000), // e B(00000000), // f + }, { + W(000000000000'0000), // 0 + W(000000000000'0000), // 1 + W(000000000000'0000), // 2 + W(101111111000'0000), // 3 + W(101100001100'0000), // 4 + W(101100000110'0000), // 5 + W(101100000110'0000), // 6 + W(001100000110'0000), // 7 + W(001100000110'0000), // 8 + W(001100001100'0000), // 9 + W(001111110000'0000), // 10 + W(001100011000'0000), // 11 + W(001100001100'0000), // 12 + W(001100001100'0000), // 13 + W(001100001100'0000), // 14 + W(001100000110'0000), // 15 + W(001100000110'0000), // 16 + W(001100000110'0000), // 17 + W(101100000110'0000), // 18 + W(101100000110'0000), // 19 + W(111110001111'0000), // 20 + W(000000000000'0000), // 21 + W(000000000000'0000), // 22 + W(000000000000'0000), // 23 } },