89 {0x6,0x9,0x9,0x9,0x6},
90 {0x2,0x6,0x2,0x2,0x7},
91 {0xF,0x1,0xF,0x8,0xF},
92 {0xE,0x1,0x7,0x1,0xE},
93 {0x9,0x9,0xF,0x1,0x1},
94 {0xF,0x8,0xF,0x1,0xF},
95 {0x6,0x8,0xE,0x9,0x6},
96 {0xF,0x1,0x2,0x4,0x4},
97 {0x6,0x9,0x6,0x9,0x6},
98 {0x6,0x9,0x7,0x1,0x6},
99 {0xF,0x9,0xF,0x9,0x9},
100 {0xE,0x9,0xE,0x9,0xE},
101 {0x7,0x8,0x8,0x8,0x7},
102 {0xE,0x9,0x9,0x9,0xE},
103 {0xF,0x8,0xE,0x8,0xF},
104 {0xF,0x8,0xE,0x8,0x8}
119 unsigned startcp, endcp, thiscp;
124 fprintf (stderr,
"\n%s - generate unifont.hex code points as\n", argv[0]);
125 fprintf (stderr,
"four-digit hexadecimal numbers in a 2 by 2 grid,\n");
126 fprintf (stderr,
"or six-digit hexadecimal numbers in a 3 by 2 grid.\n");
127 fprintf (stderr,
"Syntax:\n\n");
128 fprintf (stderr,
" %s first_code_point last_code_point > glyphs.hex\n\n", argv[0]);
129 fprintf (stderr,
"Example (to generate glyphs for the Private Use Area):\n\n");
130 fprintf (stderr,
" %s e000 f8ff > pua.hex\n\n", argv[0]);
134 sscanf (argv[1],
"%x", &startcp);
135 sscanf (argv[2],
"%x", &endcp);
143 for (thiscp = startcp; thiscp <= endcp; thiscp++) {
144 if (thiscp <= 0xFFFF) {
175 d1 = (thiscp >> 12) & 0xF;
176 d2 = (thiscp >> 8) & 0xF;
177 d3 = (thiscp >> 4) & 0xF;
178 d4 = (thiscp ) & 0xF;
181 grid[0] = grid[15] = 0x0000;
184 for (row = 1; row < 15; row++) grid[row] = 0x7FFE;
186 printf (
"%04X:", thiscp);
192 for (row = 2; row < 7; row++) {
193 rowbits = (
hexdigit[d1][digitrow] << 9) |
195 grid[row] ^= rowbits;
203 for (row = 9; row < 14; row++) {
204 rowbits = (
hexdigit[d3][digitrow] << 9) |
206 grid[row] ^= rowbits;
210 for (row = 0; row < 16; row++) printf (
"%04X", grid[row] & 0xFFFF);
236 int d1, d2, d3, d4, d5, d6;
238 d1 = (thiscp >> 20) & 0xF;
239 d2 = (thiscp >> 16) & 0xF;
240 d3 = (thiscp >> 12) & 0xF;
241 d4 = (thiscp >> 8) & 0xF;
242 d5 = (thiscp >> 4) & 0xF;
243 d6 = (thiscp ) & 0xF;
246 grid[0] = grid[15] = 0x0000;
249 for (row = 1; row < 15; row++) grid[row] = 0xFFFF;
252 printf (
"%06X:", thiscp);
258 for (row = 2; row < 7; row++) {
259 rowbits = (
hexdigit[d1][digitrow] << 11) |
262 grid[row] ^= rowbits;
270 for (row = 9; row < 14; row++) {
271 rowbits = (
hexdigit[d4][digitrow] << 11) |
274 grid[row] ^= rowbits;
278 for (row = 0; row < 16; row++) printf (
"%04X", grid[row] & 0xFFFF);
int main(void)
The main function.
void hexprint4(int thiscp)
Generate a bitmap containing a 4-digit Unicode code point.
void hexprint6(int thiscp)
Generate a bitmap containing a 6-digit Unicode code point.
char hexdigit[16][5]
Bitmap pattern for each hexadecimal digit.