From b6820a81f394c3a4fc86f70ecb4db3535bbc4ae8 Mon Sep 17 00:00:00 2001 From: Jens Schweikhardt Date: Mon, 1 Sep 2025 23:30:53 +0200 Subject: Add 6 Hiragana glyphs, see if Windows can be tricked. --- README.md | 66 ++++++++++++++++++++--- gallant.bdf | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- gallant.fnt | Bin 194868 -> 194964 bytes gallant.hex | 6 +++ gallant.pcf | Bin 640888 -> 641556 bytes gallant.src | 144 +++++++++++++++++++++++++++++++++++++++++++++++++ gallant.ttf | Bin 219424 -> 219700 bytes 7 files changed, 385 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 819f687..d748262 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ additions: * Currency symbols * More punctuation * Just enough Katakana to say コンニチハ -* Powerline glyphs in the *Private Use Area* at U+e0a0 +* [Powerline](https://github.com/powerline/powerline) glyphs in the *Private Use Area* at U+e0a0 I have tried hard to keep the look of the font for Greek and Cyrillic glyphs, but not for symbols like arrows and mathematical operators where @@ -193,6 +193,15 @@ drawing characters, where there will be vertical gaps. The same applies to all glyphs that connect to glyphs above and below, such as large parentheses, braces, brackets, integrals, etc. +Due to a Windows quirk, I have added six fake Hiraga glyphs that Windows +tests the existence of (and would otherwise reject as a font). I'd be +extremely delighted if someone contributed the full set of Hiragana +glyphs. + +### Is there a gallant.fon for Windows? + +No. The `fon` file format, dated as it is, does not support Unicode and +would only contain 256 glyphs. ## Who are you? @@ -204,6 +213,51 @@ university with the 3/60 and the SPARCstations. It was then and there that the gallant font and the Trinitron CRT raster were burnt in my retina. +## How did you edit the glyphs? + +With a text editor (vim). I wrote the [`hextosrc`](hextosrc.c) utility +which turns `gallant.hex` into a human readable file with 1 character +cell per pixel, a row count from 22 down to 1 so I know where the +baseline (06) is and each pixel row between `|` characters (12 or 24, +space for pixel not set, full block `█` for set). My +[`srctohex`](srctohex.c) utility converts in the opposite direction. + +This is what the glyph for A looks like: + +``` +STARTCHAR U0041 LATIN CAPITAL LETTER A +22 | | +21 | | +20 | | +19 | ██ | +18 | ██ | +17 | █ ██ | +16 | █ ██ | +15 | █ █ | +14 | █ ██ | +13 | █ ██ | +12 | █ █ | +11 | ████████ | +10 | █ ██ | +09 | █ █ | +08 | █ ██ | +07 | █ ██ | +06 |███ ████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +``` + +The row numbers and Unicode names are ignored by `srctohex`, and +inserted/restored by `hextosrc`. This allows to freely add and delete +pixel rows without tedious row renumbering or knowing the Unicode name. + +The utilites are complemented by [`hextobdf`](hextobdf.c) to generate +`gallant.bdf`. From there, other tools can create additional font formats. + ## History The oldest reference to the Gallant font I could find at first was in a @@ -228,10 +282,11 @@ In private conversation with the author, Jef said he guessed that the gallant font was designed by someone at Sun Microsystems before it made its way to Berkeley. -The Unix history site [v6sh.org](https://v6sh.org/) has a list of the -[4.4BSD-Alpha src directory +Further research examining the Unix history site +[v6sh.org](https://v6sh.org/) revealed a list of the [4.4BSD-Alpha src +directory contents](https://tuhs.v6sh.org/UnixArchiveMirror/Distributions/UCB/4.4BSD-Alpha/src.lst) -which contains an `rcons` directory with +which contains an `rcons` directory with these files: ``` rwxrwxr-x 3/9 0 Jul 25 07:58 1992 usr/src/sys/sparc/rcons/ @@ -245,7 +300,7 @@ r--r--r-- 3/9 7756 Jul 22 09:50 1992 usr/src/sys/sparc/rcons/rcons_kern.c r--r--r-- 3/9 15437 Jul 22 09:50 1992 usr/src/sys/sparc/rcons/rcons_subr.c ``` -The relevant C language header file is in +Gallant's relevant C language header file is in [History/rcons/gallant19.h](History/rcons/gallant19.h). The @@ -302,4 +357,3 @@ need to render them. This is the mapping: ## TODO * Describe how to contribute -* Describe the helper programs diff --git a/gallant.bdf b/gallant.bdf index b9bcce1..6052cd7 100644 --- a/gallant.bdf +++ b/gallant.bdf @@ -22,7 +22,7 @@ FONT_ASCENT 17 FONT_DESCENT 5 DEFAULT_CHAR 65533 ENDPROPERTIES -CHARS 4585 +CHARS 4591 STARTCHAR U0000 ENCODING 0 SWIDTH 500 0 @@ -131190,6 +131190,180 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U3044 +ENCODING 12356 +SWIDTH 1000 0 +DWIDTH 24 0 +BBX 24 22 0 -5 +BITMAP +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +3ffffc +3ffffc +000000 +000000 +3ffffc +3ffffc +000000 +000000 +000000 +000000 +000000 +000000 +000000 +ENDCHAR +STARTCHAR U3046 +ENCODING 12358 +SWIDTH 1000 0 +DWIDTH 24 0 +BBX 24 22 0 -5 +BITMAP +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +3ffffc +3ffffc +000000 +000000 +3ffffc +3ffffc +000000 +000000 +000000 +000000 +000000 +000000 +000000 +ENDCHAR +STARTCHAR U304b +ENCODING 12363 +SWIDTH 1000 0 +DWIDTH 24 0 +BBX 24 22 0 -5 +BITMAP +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +3ffffc +3ffffc +000000 +000000 +3ffffc +3ffffc +000000 +000000 +000000 +000000 +000000 +000000 +000000 +ENDCHAR +STARTCHAR U3057 +ENCODING 12375 +SWIDTH 1000 0 +DWIDTH 24 0 +BBX 24 22 0 -5 +BITMAP +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +3ffffc +3ffffc +000000 +000000 +3ffffc +3ffffc +000000 +000000 +000000 +000000 +000000 +000000 +000000 +ENDCHAR +STARTCHAR U306e +ENCODING 12398 +SWIDTH 1000 0 +DWIDTH 24 0 +BBX 24 22 0 -5 +BITMAP +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +3ffffc +3ffffc +000000 +000000 +3ffffc +3ffffc +000000 +000000 +000000 +000000 +000000 +000000 +000000 +ENDCHAR +STARTCHAR U3093 +ENCODING 12435 +SWIDTH 1000 0 +DWIDTH 24 0 +BBX 24 22 0 -5 +BITMAP +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +3ffffc +3ffffc +000000 +000000 +3ffffc +3ffffc +000000 +000000 +000000 +000000 +000000 +000000 +000000 +ENDCHAR STARTCHAR U30a0 ENCODING 12448 SWIDTH 1000 0 diff --git a/gallant.fnt b/gallant.fnt index 0123da2..da239ab 100644 Binary files a/gallant.fnt and b/gallant.fnt differ diff --git a/gallant.hex b/gallant.hex index 57a6315..aba3926 100644 --- a/gallant.hex +++ b/gallant.hex @@ -4523,6 +4523,12 @@ 2bfd:000000000000000004000e001f003f8004000400040004000e001100110011000e0000000000000000000000 2bfe:000000000000000000000030003000300030003000300030003000300030fff0fff000000000000000000000 2bff:00000000000000007fe07fe07fe00600060007e007e007e0060006007fe07fe07fe000000000000000000000 +3044:0000000000000000000000000000000000000000000000000000003ffffc3ffffc0000000000003ffffc3ffffc000000000000000000000000000000000000000000 +3046:0000000000000000000000000000000000000000000000000000003ffffc3ffffc0000000000003ffffc3ffffc000000000000000000000000000000000000000000 +304b:0000000000000000000000000000000000000000000000000000003ffffc3ffffc0000000000003ffffc3ffffc000000000000000000000000000000000000000000 +3057:0000000000000000000000000000000000000000000000000000003ffffc3ffffc0000000000003ffffc3ffffc000000000000000000000000000000000000000000 +306e:0000000000000000000000000000000000000000000000000000003ffffc3ffffc0000000000003ffffc3ffffc000000000000000000000000000000000000000000 +3093:0000000000000000000000000000000000000000000000000000003ffffc3ffffc0000000000003ffffc3ffffc000000000000000000000000000000000000000000 30a0:0000000000000000000000000000000000000000000000000000003ffffc3ffffc0000000000003ffffc3ffffc000000000000000000000000000000000000000000 30b3:00000000000000000000000007ffe007ffe000006000006000006000006000006000006000006000006007ffe007ffe0000060000000000000000000000000000000 30c1:0000000000000000000003e003ffe003fc00000c00000c000ffff80ffff8000c0000180000180000300000300000600000c000000000000000000000000000000000 diff --git a/gallant.pcf b/gallant.pcf index 2a9a0bd..af68c5c 100644 Binary files a/gallant.pcf and b/gallant.pcf differ diff --git a/gallant.src b/gallant.src index 538eb92..4cca0dc 100644 --- a/gallant.src +++ b/gallant.src @@ -108550,6 +108550,150 @@ STARTCHAR U2bff HELLSCHREIBER PAUSE SYMBOL 02 | | 01 | | ENDCHAR +STARTCHAR U3044 +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | | +14 | | +13 | ████████████████████ | +12 | ████████████████████ | +11 | | +10 | | +09 | ████████████████████ | +08 | ████████████████████ | +07 | | +06 | | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U3046 +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | | +14 | | +13 | ████████████████████ | +12 | ████████████████████ | +11 | | +10 | | +09 | ████████████████████ | +08 | ████████████████████ | +07 | | +06 | | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U304b +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | | +14 | | +13 | ████████████████████ | +12 | ████████████████████ | +11 | | +10 | | +09 | ████████████████████ | +08 | ████████████████████ | +07 | | +06 | | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U3057 +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | | +14 | | +13 | ████████████████████ | +12 | ████████████████████ | +11 | | +10 | | +09 | ████████████████████ | +08 | ████████████████████ | +07 | | +06 | | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U306e +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | | +14 | | +13 | ████████████████████ | +12 | ████████████████████ | +11 | | +10 | | +09 | ████████████████████ | +08 | ████████████████████ | +07 | | +06 | | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U3093 +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | | +14 | | +13 | ████████████████████ | +12 | ████████████████████ | +11 | | +10 | | +09 | ████████████████████ | +08 | ████████████████████ | +07 | | +06 | | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U30a0 KATAKANA-HIRAGANA DOUBLE HYPHEN 22 | | 21 | | diff --git a/gallant.ttf b/gallant.ttf index 61fde51..b9f4dbf 100644 Binary files a/gallant.ttf and b/gallant.ttf differ -- cgit v1.2.3