From b0b86a30e09c91118e8e87a4fcbfbd94f53150ca Mon Sep 17 00:00:00 2001 From: Jens Schweikhardt Date: Wed, 20 Aug 2025 19:41:47 +0200 Subject: Complete Specials. Implement srctohex in C. --- .gitignore | 1 + GNUmakefile | 12 +- README.md | 2 +- gallant.bdf | 1682 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- gallant.fnt | Bin 172564 -> 173500 bytes gallant.hex | 60 ++- gallant.src | 1392 ++++++++++++++++++++++++++++++++++++++++++++++--- lscp.c | 46 +- srctohex.c | 191 +++++++ 9 files changed, 3196 insertions(+), 190 deletions(-) create mode 100644 srctohex.c diff --git a/.gitignore b/.gitignore index 0cc8d45..ba418c5 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ lint.lnt lscp output.png predef-c.h +srctohex txttopng diff --git a/GNUmakefile b/GNUmakefile index 93e8654..9b9f2de 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -9,20 +9,22 @@ unexport C_INCLUDE_PATH # Remove from shell environment; confuses gcc. export LANG = C export LC_ALL = C -TOP_LEVEL_TARGETS = lscp tsttopng gallant.bdf gallant.fnt +TOP_LEVEL_TARGETS = lscp tsttopng gallant.bdf gallant.fnt srctohex .PHONY: all all: $(TOP_LEVEL_TARGETS) lscp: lscp.o +srctohex: srctohex.o + tsttopng: tsttopng.o gallant.bdf: gallant.hex ./hex2bdf.pl $^ > $@ gallant.hex: gallant.src - ./src2hex.pl < $^ > $@ + ./srctohex < $^ > $@ gallant.fnt: gallant.hex vtfontcvt -v -o $@ $^ @@ -44,10 +46,11 @@ APP_WARNS += -Wcast-align APP_WARNS += -Wcast-qual APP_WARNS += -Wfloat-equal APP_WARNS += -Wformat=2 +APP_WARNS += -Wno-format-nonliteral APP_WARNS += -Winline APP_WARNS += -Wstrict-prototypes APP_WARNS += -Wmissing-prototypes -APP_WARNS += -Wunused +APP_WARNS += -Wno-unused APP_WARNS += -Wold-style-definition APP_WARNS += -Wpedantic APP_WARNS += -Wpointer-arith @@ -67,6 +70,9 @@ APP_LIBDIRS = -L /usr/local/lib lscp: lscp.o $(CC) -o $@ $(APP_LIBDIRS) -luninameslist -lunistring $^ +srctohex: srctohex.o + $(CC) -o $@ $^ + txttopng: txttopng.o $(CC) -o $@ $(APP_LIBDIRS) -lpng $^ diff --git a/README.md b/README.md index c2c7dbb..5fabcfa 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ none are present. |U+AB70 - U+FAFF|[...Many foreign alphabets...](https://www.unicode.org/charts/PDF/UAB70.pdf) |TODO | |U+FB00 - U+FB4F|[Alphabetic Presentation Forms](https://www.unicode.org/charts/PDF/UFB00.pdf) |Partial | |U+FB50 - U+FFEF|[...Many foreign alphabets...](https://www.unicode.org/charts/PDF/UFB50.pdf) |TODO | -|U+FFF0 - U+FFFF|[Specials](https://www.unicode.org/charts/PDF/UFFF0.pdf) |Partial | +|U+FFF0 - U+FFFF|[Specials](https://www.unicode.org/charts/PDF/UFFF0.pdf) |Complete | Codepoints >= U+10000 can be part of a BDF file, but cannot be used by core X11 since it internally restricts glyph encoding numbers to 16 bit. diff --git a/gallant.bdf b/gallant.bdf index dc9619d..4213c59 100644 --- a/gallant.bdf +++ b/gallant.bdf @@ -6,7 +6,7 @@ STARTPROPERTIES 2 FONT_ASCENT 17 FONT_DESCENT 5 ENDPROPERTIES -CHARS 4030 +CHARS 4082 STARTCHAR U+0000 ENCODING 0 SWIDTH 500 0 @@ -43855,6 +43855,122 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U+1f1a +ENCODING 7962 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +e200 +1300 +6100 +7fc0 +3040 +3040 +3000 +3000 +3080 +3f80 +3080 +3000 +3000 +3000 +3020 +3020 +7fe0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f1b +ENCODING 7963 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +7200 +8300 +6100 +7fc0 +3040 +3040 +3000 +3000 +3080 +3f80 +3080 +3000 +3000 +3000 +3020 +3020 +7fe0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f1c +ENCODING 7964 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +e100 +1300 +6200 +7fc0 +3040 +3040 +3000 +3000 +3080 +3f80 +3080 +3000 +3000 +3000 +3020 +3020 +7fe0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f1d +ENCODING 7965 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +7100 +8300 +6200 +7fc0 +3040 +3040 +3000 +3000 +3080 +3f80 +3080 +3000 +3000 +3000 +3020 +3020 +7fe0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR STARTCHAR U+1f20 ENCODING 7968 SWIDTH 500 0 @@ -43971,6 +44087,64 @@ BITMAP 00c0 01e0 ENDCHAR +STARTCHAR U+1f24 +ENCODING 7972 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +2780 +79c0 +30c0 +30c0 +30c0 +30c0 +30c0 +30c0 +30c0 +78c0 +00c0 +00c0 +00c0 +00c0 +01e0 +ENDCHAR +STARTCHAR U+1f25 +ENCODING 7973 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +2780 +79c0 +30c0 +30c0 +30c0 +30c0 +30c0 +30c0 +30c0 +78c0 +00c0 +00c0 +00c0 +00c0 +01e0 +ENDCHAR STARTCHAR U+1f26 ENCODING 7974 SWIDTH 500 0 @@ -44029,116 +44203,232 @@ BITMAP 00c0 01e0 ENDCHAR -STARTCHAR U+1f1a -ENCODING 7962 +STARTCHAR U+1f28 +ENCODING 7976 SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -e200 -1300 -6100 -7fc0 -3040 -3040 -3000 -3000 -3080 -3f80 -3080 -3000 -3000 -3000 -3020 -3020 +0000 +0000 +0000 +f0f0 +6060 +6060 +6060 +6060 +6060 7fe0 +6060 +6060 +6060 +6060 +6060 +6060 +f0f0 0000 0000 0000 0000 0000 ENDCHAR -STARTCHAR U+1f1b -ENCODING 7963 +STARTCHAR U+1f29 +ENCODING 7977 SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -7200 -8300 -6100 -7fc0 -3040 -3040 -3000 -3000 -3080 -3f80 -3080 -3000 -3000 -3000 -3020 -3020 +0000 +0000 +0000 +f0f0 +6060 +6060 +6060 +6060 +6060 7fe0 +6060 +6060 +6060 +6060 +6060 +6060 +f0f0 0000 0000 0000 0000 0000 ENDCHAR -STARTCHAR U+1f1c -ENCODING 7964 +STARTCHAR U+1f2a +ENCODING 7978 SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -e100 -1300 -6200 -7fc0 -3040 -3040 -3000 -3000 -3080 -3f80 -3080 -3000 -3000 -3000 -3020 -3020 +0000 +0000 +0000 +f0f0 +6060 +6060 +6060 +6060 +6060 7fe0 +6060 +6060 +6060 +6060 +6060 +6060 +f0f0 0000 0000 0000 0000 0000 ENDCHAR -STARTCHAR U+1f1d -ENCODING 7965 +STARTCHAR U+1f2b +ENCODING 7979 SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -7100 -8300 -6200 -7fc0 -3040 -3040 -3000 -3000 -3080 -3f80 -3080 -3000 -3000 -3000 -3020 -3020 +0000 +0000 +0000 +f0f0 +6060 +6060 +6060 +6060 +6060 +7fe0 +6060 +6060 +6060 +6060 +6060 +6060 +f0f0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f2c +ENCODING 7980 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +f0f0 +6060 +6060 +6060 +6060 +6060 +7fe0 +6060 +6060 +6060 +6060 +6060 +6060 +f0f0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f2d +ENCODING 7981 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +f0f0 +6060 +6060 +6060 +6060 +6060 +7fe0 +6060 +6060 +6060 +6060 +6060 +6060 +f0f0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f2e +ENCODING 7982 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +f0f0 +6060 +6060 +6060 +6060 +6060 +7fe0 +6060 +6060 +6060 +6060 +6060 +6060 +f0f0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f2f +ENCODING 7983 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +f0f0 +6060 +6060 +6060 +6060 +6060 7fe0 +6060 +6060 +6060 +6060 +6060 +6060 +f0f0 0000 0000 0000 @@ -44261,20 +44551,310 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U+1f34 +ENCODING 7988 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +1e00 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f35 +ENCODING 7989 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0000 +0000 +0000 +0000 +1e00 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR STARTCHAR U+1f36 ENCODING 7990 SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -1c60 -6380 +1c60 +6380 +0000 +0e00 +1000 +0c00 +0000 +1e00 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f37 +ENCODING 7991 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +1c60 +6380 +0000 +1c00 +0200 +0c00 +0000 +1e00 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f38 +ENCODING 7992 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +1f80 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f39 +ENCODING 7993 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +1f80 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f3a +ENCODING 7994 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +1f80 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f3b +ENCODING 7995 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +1f80 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f3c +ENCODING 7996 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +1f80 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f3d +ENCODING 7997 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +1f80 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +1f80 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f3e +ENCODING 7998 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP 0000 -0e00 -1000 -0c00 0000 -1e00 +0000 +1f80 +0600 +0600 +0600 +0600 0600 0600 0600 @@ -44290,20 +44870,20 @@ BITMAP 0000 0000 ENDCHAR -STARTCHAR U+1f37 -ENCODING 7991 +STARTCHAR U+1f3f +ENCODING 7999 SWIDTH 500 0 DWIDTH 12 0 BBX 12 22 0 -5 BITMAP -1c60 -6380 0000 -1c00 -0200 -0c00 0000 -1e00 +0000 +1f80 +0600 +0600 +0600 +0600 0600 0600 0600 @@ -44493,6 +45073,180 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U+1f48 +ENCODING 8008 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f49 +ENCODING 8009 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f4a +ENCODING 8010 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f4b +ENCODING 8011 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f4c +ENCODING 8012 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f4d +ENCODING 8013 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR STARTCHAR U+1f50 ENCODING 8016 SWIDTH 500 0 @@ -44725,6 +45479,122 @@ BITMAP 0000 0000 ENDCHAR +STARTCHAR U+1f59 +ENCODING 8025 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +f070 +6020 +3040 +1880 +1880 +0d00 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f5b +ENCODING 8027 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +f070 +6020 +3040 +1880 +1880 +0d00 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f5d +ENCODING 8029 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +f070 +6020 +3040 +1880 +1880 +0d00 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f5f +ENCODING 8031 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +f070 +6020 +3040 +1880 +1880 +0d00 +0600 +0600 +0600 +0600 +0600 +0600 +0600 +0f00 +0000 +0000 +0000 +0000 +0000 +ENDCHAR STARTCHAR U+1f60 ENCODING 8032 SWIDTH 500 0 @@ -44957,6 +45827,238 @@ c630 0000 0000 ENDCHAR +STARTCHAR U+1f68 +ENCODING 8040 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0900 +4920 +79e0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f69 +ENCODING 8041 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0900 +4920 +79e0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f6a +ENCODING 8042 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0900 +4920 +79e0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f6b +ENCODING 8043 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0900 +4920 +79e0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f6c +ENCODING 8044 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0900 +4920 +79e0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f6d +ENCODING 8045 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0900 +4920 +79e0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f6e +ENCODING 8046 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0900 +4920 +79e0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR +STARTCHAR U+1f6f +ENCODING 8047 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +0000 +0f00 +11c0 +20c0 +2060 +6060 +6060 +6060 +6060 +2040 +3040 +1880 +0900 +4920 +79e0 +0000 +0000 +0000 +0000 +0000 +ENDCHAR STARTCHAR U+1f70 ENCODING 8048 SWIDTH 500 0 @@ -45363,6 +46465,238 @@ c630 0000 0000 ENDCHAR +STARTCHAR U+1f88 +ENCODING 8072 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +e000 +1600 +6600 +0b00 +0b00 +0900 +1180 +1180 +1080 +3fc0 +20c0 +2040 +4060 +4060 +e0f0 +0000 +0040 +0040 +0060 +0000 +ENDCHAR +STARTCHAR U+1f89 +ENCODING 8073 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +0000 +7000 +8600 +6600 +0b00 +0b00 +0900 +1180 +1180 +1080 +3fc0 +20c0 +2040 +4060 +4060 +e0f0 +0000 +0040 +0040 +0060 +0000 +ENDCHAR +STARTCHAR U+1f8a +ENCODING 8074 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +1000 +1800 +1800 +0b00 +7300 +8580 +6580 +0480 +08c0 +08c0 +0840 +1fe0 +1060 +1020 +2030 +2030 +7070 +0000 +0040 +0040 +0060 +0000 +ENDCHAR +STARTCHAR U+1f8b +ENCODING 8075 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +1000 +1800 +1800 +0b00 +e300 +1580 +6580 +0480 +08c0 +08c0 +0840 +1fe0 +1060 +1020 +2030 +2030 +7070 +0000 +0040 +0040 +0060 +0000 +ENDCHAR +STARTCHAR U+1f8c +ENCODING 8076 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0800 +1800 +1800 +1300 +7300 +8580 +6580 +0480 +08c0 +08c0 +0840 +1fe0 +1060 +1020 +2030 +2030 +7070 +0000 +0040 +0040 +0060 +0000 +ENDCHAR +STARTCHAR U+1f8d +ENCODING 8077 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0800 +1800 +1800 +1300 +e300 +1580 +6580 +0480 +08c0 +08c0 +0840 +1fe0 +1060 +1020 +2030 +2030 +7070 +0000 +0040 +0040 +0060 +0000 +ENDCHAR +STARTCHAR U+1f8e +ENCODING 8078 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +7100 +8e00 +0300 +7300 +8580 +6580 +0480 +08c0 +08c0 +0840 +1fe0 +1060 +1020 +2030 +2030 +7070 +0000 +0040 +0040 +0060 +0000 +ENDCHAR +STARTCHAR U+1f8f +ENCODING 8079 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +7100 +8e00 +0300 +e300 +1580 +6580 +0480 +08c0 +08c0 +0840 +1fe0 +1060 +1020 +2030 +2030 +7070 +0000 +0040 +0040 +0060 +0000 +ENDCHAR STARTCHAR U+1fbd ENCODING 8125 SWIDTH 500 0 @@ -116848,6 +118182,122 @@ fc70 0000 0000 ENDCHAR +STARTCHAR U+fff9 +ENCODING 65529 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +aaa0 +0000 +fbe0 +8200 +8200 +f3c0 +8200 +8200 +8200 +0000 +0000 +fbe0 +8220 +8220 +f3e0 +8020 +8020 +83e0 +0000 +aaa0 +0000 +ENDCHAR +STARTCHAR U+fffa +ENCODING 65530 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +aaa0 +0000 +fbe0 +8200 +8200 +f3c0 +8200 +8200 +8200 +0000 +0000 +f9c0 +8220 +8220 +f3e0 +8220 +8220 +8220 +0000 +aaa0 +0000 +ENDCHAR +STARTCHAR U+fffb +ENCODING 65531 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +aaa0 +0000 +fbe0 +8200 +8200 +f3c0 +8200 +8200 +8200 +0000 +0000 +fbc0 +8220 +8220 +f3c0 +8220 +8220 +83c0 +0000 +aaa0 +0000 +ENDCHAR +STARTCHAR U+fffc +ENCODING 65532 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +aaa0 +0000 +fbe0 +8200 +8200 +f3c0 +8200 +8200 +8200 +0000 +0000 +f9e0 +8200 +8200 +f200 +8200 +8200 +81e0 +0000 +aaa0 +0000 +ENDCHAR STARTCHAR U+fffd ENCODING 65533 SWIDTH 500 0 @@ -116877,4 +118327,62 @@ c630 0000 0000 ENDCHAR +STARTCHAR U+fffe +ENCODING 65534 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +aaa0 +0000 +fbe0 +8200 +8200 +f3c0 +8200 +8200 +8200 +0000 +0000 +fbe0 +8200 +8200 +f3c0 +8200 +8200 +83e0 +0000 +aaa0 +0000 +ENDCHAR +STARTCHAR U+ffff +ENCODING 65535 +SWIDTH 500 0 +DWIDTH 12 0 +BBX 12 22 0 -5 +BITMAP +0000 +aaa0 +0000 +fbe0 +8200 +8200 +f3c0 +8200 +8200 +8200 +0000 +0000 +fbe0 +8200 +8200 +f3c0 +8200 +8200 +8200 +0000 +aaa0 +0000 +ENDCHAR ENDFONT diff --git a/gallant.fnt b/gallant.fnt index 03f0f95..90ff245 100644 Binary files a/gallant.fnt and b/gallant.fnt differ diff --git a/gallant.hex b/gallant.hex index 9f8fd9a..f0c1b45 100644 --- a/gallant.hex +++ b/gallant.hex @@ -1512,28 +1512,54 @@ 1f15:00000000384040c040c0308000000f801fc0206060003f003f00600060203fc01f0000000000000000000000 1f18:e000100060007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 1f19:7000800060007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 +1f1a:e200130061007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 +1f1b:7200830061007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 +1f1c:e100130062007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 +1f1d:7100830062007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 1f20:0000000000000e00010006000000278079c030c030c030c030c030c030c030c078c000c000c000c000c001e0 1f21:0000000000000700080006000000278079c030c030c030c030c030c030c030c078c000c000c000c000c001e0 1f22:00000000000070c0098033000000278079c030c030c030c030c030c030c030c078c000c000c000c000c001e0 1f23:0000000000003b00418030c00000278079c030c030c030c030c030c030c030c078c000c000c000c000c001e0 +1f24:0000000000000000000000000000278079c030c030c030c030c030c030c030c078c000c000c000c000c001e0 +1f25:0000000000000000000000000000278079c030c030c030c030c030c030c030c078c000c000c000c000c001e0 1f26:1c40238000000e00010006000000278079c030c030c030c030c030c030c030c078c000c000c000c000c001e0 1f27:1c40238000000700080006000000278079c030c030c030c030c030c030c030c078c000c000c000c000c001e0 -1f1a:e200130061007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 -1f1b:7200830061007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 -1f1c:e100130062007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 -1f1d:7100830062007fc0304030403000300030803f803080300030003000302030207fe000000000000000000000 +1f28:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 +1f29:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 +1f2a:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 +1f2b:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 +1f2c:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 +1f2d:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 +1f2e:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 +1f2f:000000000000f0f0606060606060606060607fe0606060606060606060606060f0f000000000000000000000 1f30:0000000000000e000100060000001e00060006000600060006000600060006001f8000000000000000000000 1f31:0000000000000e0010000c0000001e00060006000600060006000600060006001f8000000000000000000000 1f32:0000000000007300098030c000001e00060006000600060006000600060006001f8000000000000000000000 1f33:0000000000003b00418030c000001e00060006000600060006000600060006001f8000000000000000000000 +1f34:00000000000000000000000000001e00060006000600060006000600060006001f8000000000000000000000 +1f35:00000000000000000000000000001e00060006000600060006000600060006001f8000000000000000000000 1f36:1c60638000000e0010000c0000001e00060006000600060006000600060006001f8000000000000000000000 1f37:1c60638000001c0002000c0000001e00060006000600060006000600060006001f8000000000000000000000 +1f38:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +1f39:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +1f3a:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +1f3b:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +1f3c:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +1f3d:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +1f3e:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 +1f3f:0000000000001f800600060006000600060006000600060006000600060006001f8000000000000000000000 1f40:0000000000000e000100060000000f8011c020e06060606060606060704038801f0000000000000000000000 1f41:0000000000000e000800060000000f8011c020e06060606060606060704038801f0000000000000000000000 1f42:000000000000388004c0184000000f8011c020e06060606060606060704038801f0000000000000000000000 1f43:000000000000388020c0184000000f8011c020e06060606060606060704038801f0000000000000000000000 1f44:000000000000384004c0188000000f8011c020e06060606060606060704038801f0000000000000000000000 1f45:000000000000384020c0188000000f8011c020e06060606060606060704038801f0000000000000000000000 +1f48:0000000000000f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +1f49:0000000000000f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +1f4a:0000000000000f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +1f4b:0000000000000f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +1f4c:0000000000000f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 +1f4d:0000000000000f0011c020c020606060606060606060606060602040304018800f0000000000000000000000 1f50:000000000e00010001000600000079e030c030c030c030c030c030c030c038800f0000000000000000000000 1f51:000000000700080008000600000079e030c030c030c030c030c030c030c038800f0000000000000000000000 1f52:00000000388004c004c01840000079e030c030c030c030c030c030c030c038800f0000000000000000000000 @@ -1542,6 +1568,10 @@ 1f55:000000001c4020c020c01880000079e030c030c030c030c030c030c030c038800f0000000000000000000000 1f56:1c40238000000e0001000600000079e030c030c030c030c030c030c030c038800f0000000000000000000000 1f57:1c4023800000070008000600000079e030c030c030c030c030c030c030c038800f0000000000000000000000 +1f59:000000000000f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 +1f5b:000000000000f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 +1f5d:000000000000f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 +1f5f:000000000000f07060203040188018800d0006000600060006000600060006000f0000000000000000000000 1f60:0000000000000e000100060000006060c030c630c630c630c630c63066207fc0198000000000000000000000 1f61:00000000000007000800060000006060c030c630c630c630c630c63066207fc0198000000000000000000000 1f62:00000000008038c004c0184000006060c030c630c630c630c630c63066207fc0198000000000000000000000 @@ -1550,6 +1580,14 @@ 1f65:0000000000401cc020c0188000006060c030c630c630c630c630c63066207fc0198000000000000000000000 1f66:1c40238000000e000100060000006060c030c630c630c630c630c63066207fc0198000000000000000000000 1f67:1c402380000007000800060000006060c030c630c630c630c630c63066207fc0198000000000000000000000 +1f68:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1f69:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1f6a:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1f6b:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1f6c:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1f6d:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1f6e:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 +1f6f:0000000000000f0011c020c0206060606060606060602040304018800900492079e000000000000000000000 1f70:000000000c0006000300000000001f9031d060e060e060c060c060c061e072603c3000000000000000000000 1f71:00000000030006000c00000000001f9031d060e060e060c060c060c061e072603c3000000000000000000000 1f72:0000000000000c000600030000000f801fc0206060003f003f00600060203fc01f0000000000000000000000 @@ -1564,6 +1602,14 @@ 1f7b:00000000030006000c000000000079e030c030c030c030c030c030c030c038800f0000000000000000000000 1f7c:000000000c0006000300000000006060c030c630c630c630c630c63066207fc0198000000000000000000000 1f7d:00000000030006000c00000000006060c030c630c630c630c630c63066207fc0198000000000000000000000 +1f88:00000000e000160066000b000b0009001180118010803fc020c0204040604060e0f000000040004000600000 +1f89:000000007000860066000b000b0009001180118010803fc020c0204040604060e0f000000040004000600000 +1f8a:1000180018000b00730085806580048008c008c008401fe01060102020302030707000000040004000600000 +1f8b:1000180018000b00e30015806580048008c008c008401fe01060102020302030707000000040004000600000 +1f8c:0800180018001300730085806580048008c008c008401fe01060102020302030707000000040004000600000 +1f8d:0800180018001300e30015806580048008c008c008401fe01060102020302030707000000040004000600000 +1f8e:000071008e000300730085806580048008c008c008401fe01060102020302030707000000040004000600000 +1f8f:000071008e000300e30015806580048008c008c008401fe01060102020302030707000000040004000600000 1fbd:000000000e000100010006000000000000000000000000000000000000000000000000000000000000000000 1fd2:000000000400060066c062c000001e00060006000600060006000600060006001f8000000000000000000000 1fd3:000000000200060066c064c000001e00060006000600060006000600060006001f8000000000000000000000 @@ -4029,4 +4075,10 @@ fb03:0000000019c0266026606660666066006600fff0666066606660666066606660f7f00000000 fb04:0000000019a026e026e066e0666066606660ffe0666066606660666066606660f7f000000000000000000000 fb05:000000000f00198018c030c030c030c030c073f030c030c030c030c030c030c079e000000000000000000000 fb06:000000000000038007c00cc00cc07ec0c6c0c2f0e0c070c01cc00ec086c0c6c0fc7000000000000000000000 +fff9:0000aaa00000fbe082008200f3c082008200820000000000fbe082208220f3e08020802083e00000aaa00000 +fffa:0000aaa00000fbe082008200f3c082008200820000000000f9c082208220f3e08220822082200000aaa00000 +fffb:0000aaa00000fbe082008200f3c082008200820000000000fbc082208220f3c08220822083c00000aaa00000 +fffc:0000aaa00000fbe082008200f3c082008200820000000000f9e082008200f2008200820081e00000aaa00000 fffd:06000f001f803fc040204f20d9b0c1b0c1b0c330c630c030c630462040203fc01f800f000600000000000000 +fffe:0000aaa00000fbe082008200f3c082008200820000000000fbe082008200f3c08200820083e00000aaa00000 +ffff:0000aaa00000fbe082008200f3c082008200820000000000fbe082008200f3c08200820082000000aaa00000 diff --git a/gallant.src b/gallant.src index e5cdbe8..17e38ca 100644 --- a/gallant.src +++ b/gallant.src @@ -36286,6 +36286,102 @@ STARTCHAR U+1f19 GREEK CAPITAL LETTER EPSILON WITH DASIA 02 | | 01 | | ENDCHAR +STARTCHAR U+1f1a GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA +22 |███ █ | +21 | █ ██ | +20 | ██ █ | +19 | █████████ | +18 | ██ █ | +17 | ██ █ | +16 | ██ | +15 | ██ | +14 | ██ █ | +13 | ███████ | +12 | ██ █ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ █ | +07 | ██ █ | +06 | ██████████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f1b GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA +22 | ███ █ | +21 |█ ██ | +20 | ██ █ | +19 | █████████ | +18 | ██ █ | +17 | ██ █ | +16 | ██ | +15 | ██ | +14 | ██ █ | +13 | ███████ | +12 | ██ █ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ █ | +07 | ██ █ | +06 | ██████████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f1c GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA +22 |███ █ | +21 | █ ██ | +20 | ██ █ | +19 | █████████ | +18 | ██ █ | +17 | ██ █ | +16 | ██ | +15 | ██ | +14 | ██ █ | +13 | ███████ | +12 | ██ █ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ █ | +07 | ██ █ | +06 | ██████████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f1d GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +22 | ███ █ | +21 |█ ██ | +20 | ██ █ | +19 | █████████ | +18 | ██ █ | +17 | ██ █ | +16 | ██ | +15 | ██ | +14 | ██ █ | +13 | ███████ | +12 | ██ █ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ █ | +07 | ██ █ | +06 | ██████████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U+1f20 GREEK SMALL LETTER ETA WITH PSILI 22 | | 21 | | @@ -36382,6 +36478,54 @@ STARTCHAR U+1f23 GREEK SMALL LETTER ETA WITH DASIA AND VARIA 02 | ██ | 01 | ████ | ENDCHAR +STARTCHAR U+1f24 +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | █ ████ | +14 | ████ ███ | +13 | ██ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 | ████ ██ | +05 | ██ | +04 | ██ | +03 | ██ | +02 | ██ | +01 | ████ | +ENDCHAR +STARTCHAR U+1f25 +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | █ ████ | +14 | ████ ███ | +13 | ██ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 | ████ ██ | +05 | ██ | +04 | ██ | +03 | ██ | +02 | ██ | +01 | ████ | +ENDCHAR STARTCHAR U+1f26 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI 22 | ███ █ | 21 | █ ███ | @@ -36430,96 +36574,192 @@ STARTCHAR U+1f27 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI 02 | ██ | 01 | ████ | ENDCHAR -STARTCHAR U+1f1a GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA -22 |███ █ | -21 | █ ██ | -20 | ██ █ | -19 | █████████ | -18 | ██ █ | -17 | ██ █ | -16 | ██ | -15 | ██ | -14 | ██ █ | -13 | ███████ | -12 | ██ █ | -11 | ██ | -10 | ██ | -09 | ██ | -08 | ██ █ | -07 | ██ █ | -06 | ██████████ | +STARTCHAR U+1f28 +22 | | +21 | | +20 | | +19 |████ ████| +18 | ██ ██ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████████ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 |████ ████| 05 | | 04 | | 03 | | 02 | | 01 | | ENDCHAR -STARTCHAR U+1f1b GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA -22 | ███ █ | -21 |█ ██ | -20 | ██ █ | -19 | █████████ | -18 | ██ █ | -17 | ██ █ | -16 | ██ | -15 | ██ | -14 | ██ █ | -13 | ███████ | -12 | ██ █ | -11 | ██ | -10 | ██ | -09 | ██ | -08 | ██ █ | -07 | ██ █ | -06 | ██████████ | +STARTCHAR U+1f29 +22 | | +21 | | +20 | | +19 |████ ████| +18 | ██ ██ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████████ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 |████ ████| 05 | | 04 | | 03 | | 02 | | 01 | | ENDCHAR -STARTCHAR U+1f1c GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA -22 |███ █ | -21 | █ ██ | -20 | ██ █ | -19 | █████████ | -18 | ██ █ | -17 | ██ █ | -16 | ██ | -15 | ██ | -14 | ██ █ | -13 | ███████ | -12 | ██ █ | -11 | ██ | -10 | ██ | -09 | ██ | -08 | ██ █ | -07 | ██ █ | -06 | ██████████ | +STARTCHAR U+1f2a +22 | | +21 | | +20 | | +19 |████ ████| +18 | ██ ██ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████████ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 |████ ████| 05 | | 04 | | 03 | | 02 | | 01 | | ENDCHAR -STARTCHAR U+1f1d GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA -22 | ███ █ | -21 |█ ██ | -20 | ██ █ | -19 | █████████ | -18 | ██ █ | -17 | ██ █ | -16 | ██ | -15 | ██ | -14 | ██ █ | -13 | ███████ | -12 | ██ █ | -11 | ██ | -10 | ██ | -09 | ██ | -08 | ██ █ | -07 | ██ █ | -06 | ██████████ | +STARTCHAR U+1f2b +22 | | +21 | | +20 | | +19 |████ ████| +18 | ██ ██ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████████ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 |████ ████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f2c +22 | | +21 | | +20 | | +19 |████ ████| +18 | ██ ██ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████████ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 |████ ████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f2d +22 | | +21 | | +20 | | +19 |████ ████| +18 | ██ ██ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████████ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 |████ ████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f2e +22 | | +21 | | +20 | | +19 |████ ████| +18 | ██ ██ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████████ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 |████ ████| +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f2f +22 | | +21 | | +20 | | +19 |████ ████| +18 | ██ ██ | +17 | ██ ██ | +16 | ██ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██████████ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | ██ ██ | +08 | ██ ██ | +07 | ██ ██ | +06 |████ ████| 05 | | 04 | | 03 | | @@ -36622,6 +36862,54 @@ STARTCHAR U+1f33 GREEK SMALL LETTER IOTA WITH DASIA AND VARIA 02 | | 01 | | ENDCHAR +STARTCHAR U+1f34 +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | ████ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f35 +22 | | +21 | | +20 | | +19 | | +18 | | +17 | | +16 | | +15 | ████ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U+1f36 GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI 22 | ███ ██ | 21 | ██ ███ | @@ -36670,6 +36958,198 @@ STARTCHAR U+1f37 GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI 02 | | 01 | | ENDCHAR +STARTCHAR U+1f38 +22 | | +21 | | +20 | | +19 | ██████ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f39 +22 | | +21 | | +20 | | +19 | ██████ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f3a +22 | | +21 | | +20 | | +19 | ██████ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f3b +22 | | +21 | | +20 | | +19 | ██████ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f3c +22 | | +21 | | +20 | | +19 | ██████ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f3d +22 | | +21 | | +20 | | +19 | ██████ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f3e +22 | | +21 | | +20 | | +19 | ██████ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f3f +22 | | +21 | | +20 | | +19 | ██████ | +18 | ██ | +17 | ██ | +16 | ██ | +15 | ██ | +14 | ██ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ██████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U+1f40 GREEK SMALL LETTER OMICRON WITH PSILI 22 | | 21 | | @@ -36814,6 +37294,150 @@ STARTCHAR U+1f45 GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA 02 | | 01 | | ENDCHAR +STARTCHAR U+1f48 +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | █ █ | +08 | ██ █ | +07 | ██ █ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f49 +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | █ █ | +08 | ██ █ | +07 | ██ █ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f4a +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | █ █ | +08 | ██ █ | +07 | ██ █ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f4b +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | █ █ | +08 | ██ █ | +07 | ██ █ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f4c +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | █ █ | +08 | ██ █ | +07 | ██ █ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f4d +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | ██ ██ | +10 | ██ ██ | +09 | █ █ | +08 | ██ █ | +07 | ██ █ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U+1f50 GREEK SMALL LETTER UPSILON WITH PSILI 22 | | 21 | | @@ -37006,6 +37630,102 @@ STARTCHAR U+1f57 GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI 02 | | 01 | | ENDCHAR +STARTCHAR U+1f59 +22 | | +21 | | +20 | | +19 |████ ███| +18 | ██ █ | +17 | ██ █ | +16 | ██ █ | +15 | ██ █ | +14 | ██ █ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f5b +22 | | +21 | | +20 | | +19 |████ ███| +18 | ██ █ | +17 | ██ █ | +16 | ██ █ | +15 | ██ █ | +14 | ██ █ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f5d +22 | | +21 | | +20 | | +19 |████ ███| +18 | ██ █ | +17 | ██ █ | +16 | ██ █ | +15 | ██ █ | +14 | ██ █ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f5f +22 | | +21 | | +20 | | +19 |████ ███| +18 | ██ █ | +17 | ██ █ | +16 | ██ █ | +15 | ██ █ | +14 | ██ █ | +13 | ██ | +12 | ██ | +11 | ██ | +10 | ██ | +09 | ██ | +08 | ██ | +07 | ██ | +06 | ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U+1f60 GREEK SMALL LETTER OMEGA WITH PSILI 22 | | 21 | | @@ -37198,6 +37918,198 @@ STARTCHAR U+1f67 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI 02 | | 01 | | ENDCHAR +STARTCHAR U+1f68 +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | █ █ | +10 | ██ █ | +09 | ██ █ | +08 | █ █ | +07 | █ █ █ █ | +06 | ████ ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f69 +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | █ █ | +10 | ██ █ | +09 | ██ █ | +08 | █ █ | +07 | █ █ █ █ | +06 | ████ ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f6a +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | █ █ | +10 | ██ █ | +09 | ██ █ | +08 | █ █ | +07 | █ █ █ █ | +06 | ████ ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f6b +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | █ █ | +10 | ██ █ | +09 | ██ █ | +08 | █ █ | +07 | █ █ █ █ | +06 | ████ ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f6c +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | █ █ | +10 | ██ █ | +09 | ██ █ | +08 | █ █ | +07 | █ █ █ █ | +06 | ████ ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f6d +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | █ █ | +10 | ██ █ | +09 | ██ █ | +08 | █ █ | +07 | █ █ █ █ | +06 | ████ ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f6e +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | █ █ | +10 | ██ █ | +09 | ██ █ | +08 | █ █ | +07 | █ █ █ █ | +06 | ████ ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR +STARTCHAR U+1f6f +22 | | +21 | | +20 | | +19 | ████ | +18 | █ ███ | +17 | █ ██ | +16 | █ ██ | +15 | ██ ██ | +14 | ██ ██ | +13 | ██ ██ | +12 | ██ ██ | +11 | █ █ | +10 | ██ █ | +09 | ██ █ | +08 | █ █ | +07 | █ █ █ █ | +06 | ████ ████ | +05 | | +04 | | +03 | | +02 | | +01 | | +ENDCHAR STARTCHAR U+1f70 GREEK SMALL LETTER ALPHA WITH VARIA 22 | | 21 | | @@ -37534,6 +38446,198 @@ STARTCHAR U+1f7d GREEK SMALL LETTER OMEGA WITH OXIA 02 | | 01 | | ENDCHAR +STARTCHAR U+1f88 GREEK CAPITAL LETTER ALPHA WITH PSILI +22 | | +21 | | +20 |███ | +19 | █ ██ | +18 | ██ ██ | +17 | █ ██ | +16 | █ ██ | +15 | █ █ | +14 | █ ██ | +13 | █ ██ | +12 | █ █ | +11 | ████████ | +10 | █ ██ | +09 | █ █ | +08 | █ ██ | +07 | █ ██ | +06 |███ ████| +05 | | +04 | █ | +03 | █ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+1f89 GREEK CAPITAL LETTER ALPHA WITH DASIA +22 | | +21 | | +20 | ███ | +19 |█ ██ | +18 | ██ ██ | +17 | █ ██ | +16 | █ ██ | +15 | █ █ | +14 | █ ██ | +13 | █ ██ | +12 | █ █ | +11 | ████████ | +10 | █ ██ | +09 | █ █ | +08 | █ ██ | +07 | █ ██ | +06 |███ ████| +05 | | +04 | █ | +03 | █ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+1f8a GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA +22 | █ | +21 | ██ | +20 | ██ | +19 | █ ██ | +18 | ███ ██ | +17 |█ █ ██ | +16 | ██ █ ██ | +15 | █ █ | +14 | █ ██ | +13 | █ ██ | +12 | █ █ | +11 | ████████ | +10 | █ ██ | +09 | █ █ | +08 | █ ██| +07 | █ ██| +06 | ███ ███| +05 | | +04 | █ | +03 | █ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+1f8b GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA +22 | █ | +21 | ██ | +20 | ██ | +19 | █ ██ | +18 |███ ██ | +17 | █ █ ██ | +16 | ██ █ ██ | +15 | █ █ | +14 | █ ██ | +13 | █ ██ | +12 | █ █ | +11 | ████████ | +10 | █ ██ | +09 | █ █ | +08 | █ ██| +07 | █ ██| +06 | ███ ███| +05 | | +04 | █ | +03 | █ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+1f8c GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA +22 | █ | +21 | ██ | +20 | ██ | +19 | █ ██ | +18 | ███ ██ | +17 |█ █ ██ | +16 | ██ █ ██ | +15 | █ █ | +14 | █ ██ | +13 | █ ██ | +12 | █ █ | +11 | ████████ | +10 | █ ██ | +09 | █ █ | +08 | █ ██| +07 | █ ██| +06 | ███ ███| +05 | | +04 | █ | +03 | █ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+1f8d GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA +22 | █ | +21 | ██ | +20 | ██ | +19 | █ ██ | +18 |███ ██ | +17 | █ █ ██ | +16 | ██ █ ██ | +15 | █ █ | +14 | █ ██ | +13 | █ ██ | +12 | █ █ | +11 | ████████ | +10 | █ ██ | +09 | █ █ | +08 | █ ██| +07 | █ ██| +06 | ███ ███| +05 | | +04 | █ | +03 | █ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+1f8e GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI +22 | | +21 | ███ █ | +20 |█ ███ | +19 | ██ | +18 | ███ ██ | +17 |█ █ ██ | +16 | ██ █ ██ | +15 | █ █ | +14 | █ ██ | +13 | █ ██ | +12 | █ █ | +11 | ████████ | +10 | █ ██ | +09 | █ █ | +08 | █ ██| +07 | █ ██| +06 | ███ ███| +05 | | +04 | █ | +03 | █ | +02 | ██ | +01 | | +ENDCHAR +STARTCHAR U+1f8f GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI +22 | | +21 | ███ █ | +20 |█ ███ | +19 | ██ | +18 |███ ██ | +17 | █ █ ██ | +16 | ██ █ ██ | +15 | █ █ | +14 | █ ██ | +13 | █ ██ | +12 | █ █ | +11 | ████████ | +10 | █ ██ | +09 | █ █ | +08 | █ ██| +07 | █ ██| +06 | ███ ███| +05 | | +04 | █ | +03 | █ | +02 | ██ | +01 | | +ENDCHAR STARTCHAR U+1fbd GREEK KORONIS 22 | | 21 | | @@ -96694,6 +97798,102 @@ STARTCHAR U+fb06 LATIN SMALL LIGATURE ST 02 | | 01 | | ENDCHAR +STARTCHAR U+fff9 +22 | | +21 |█ █ █ █ █ █ | +20 | | +19 |█████ █████ | +18 |█ █ | +17 |█ █ | +16 |████ ████ | +15 |█ █ | +14 |█ █ | +13 |█ █ | +12 | | +02 | | +11 |█████ █████ | +10 |█ █ █ | +09 |█ █ █ | +08 |████ █████ | +07 |█ █ | +06 |█ █ | +05 |█ █████ | +04 | | +03 |█ █ █ █ █ █ | +01 | | +ENDCHAR +STARTCHAR U+fffa +22 | | +21 |█ █ █ █ █ █ | +20 | | +19 |█████ █████ | +18 |█ █ | +17 |█ █ | +16 |████ ████ | +15 |█ █ | +14 |█ █ | +13 |█ █ | +12 | | +02 | | +11 |█████ ███ | +10 |█ █ █ | +09 |█ █ █ | +08 |████ █████ | +07 |█ █ █ | +06 |█ █ █ | +05 |█ █ █ | +04 | | +03 |█ █ █ █ █ █ | +01 | | +ENDCHAR +STARTCHAR U+fffb +22 | | +21 |█ █ █ █ █ █ | +20 | | +19 |█████ █████ | +18 |█ █ | +17 |█ █ | +16 |████ ████ | +15 |█ █ | +14 |█ █ | +13 |█ █ | +12 | | +02 | | +11 |█████ ████ | +10 |█ █ █ | +09 |█ █ █ | +08 |████ ████ | +07 |█ █ █ | +06 |█ █ █ | +05 |█ ████ | +04 | | +03 |█ █ █ █ █ █ | +01 | | +ENDCHAR +STARTCHAR U+fffc +22 | | +21 |█ █ █ █ █ █ | +20 | | +19 |█████ █████ | +18 |█ █ | +17 |█ █ | +16 |████ ████ | +15 |█ █ | +14 |█ █ | +13 |█ █ | +12 | | +02 | | +11 |█████ ████ | +10 |█ █ | +09 |█ █ | +08 |████ █ | +07 |█ █ | +06 |█ █ | +05 |█ ████ | +04 | | +03 |█ █ █ █ █ █ | +01 | | +ENDCHAR STARTCHAR U+fffd REPLACEMENT CHARACTER 22 | ██ | 21 | ████ | @@ -96718,3 +97918,51 @@ STARTCHAR U+fffd REPLACEMENT CHARACTER 02 | | 01 | | ENDCHAR +STARTCHAR U+fffe +22 | | +21 |█ █ █ █ █ █ | +20 | | +19 |█████ █████ | +18 |█ █ | +17 |█ █ | +16 |████ ████ | +15 |█ █ | +14 |█ █ | +13 |█ █ | +12 | | +02 | | +11 |█████ █████ | +10 |█ █ | +09 |█ █ | +08 |████ ████ | +07 |█ █ | +06 |█ █ | +05 |█ █████ | +04 | | +03 |█ █ █ █ █ █ | +01 | | +ENDCHAR +STARTCHAR U+ffff +22 | | +21 |█ █ █ █ █ █ | +20 | | +19 |█████ █████ | +18 |█ █ | +17 |█ █ | +16 |████ ████ | +15 |█ █ | +14 |█ █ | +13 |█ █ | +12 | | +02 | | +11 |█████ █████ | +10 |█ █ | +09 |█ █ | +08 |████ ████ | +07 |█ █ | +06 |█ █ | +05 |█ █ | +04 | | +03 |█ █ █ █ █ █ | +01 | | +ENDCHAR diff --git a/lscp.c b/lscp.c index ae2b9d9..d27e88a 100644 --- a/lscp.c +++ b/lscp.c @@ -1,25 +1,25 @@ /* * NAME - * lscp - list a range of codepoints with width and name + * lscp - list a range of codepoints with width and name * * EXAMPLE USAGE - * $ ./lscp 0x2a00 0x2a10 - * U+2a00 1 a ⨀ b N-ARY CIRCLED DOT OPERATOR - * U+2a01 1 a ⨁ b N-ARY CIRCLED PLUS OPERATOR - * U+2a02 1 a ⨂ b N-ARY CIRCLED TIMES OPERATOR - * U+2a03 1 a ⨃ b N-ARY UNION OPERATOR WITH DOT - * U+2a04 1 a ⨄ b N-ARY UNION OPERATOR WITH PLUS - * U+2a05 1 a ⨅ b N-ARY SQUARE INTERSECTION OPERATOR - * U+2a06 1 a ⨆ b N-ARY SQUARE UNION OPERATOR - * U+2a07 1 a ⨇ b TWO LOGICAL AND OPERATOR - * U+2a08 1 a ⨈ b TWO LOGICAL OR OPERATOR - * U+2a09 1 a ⨉ b N-ARY TIMES OPERATOR - * U+2a0a 1 a ⨊ b MODULO TWO SUM - * U+2a0b 1 a ⨋ b SUMMATION WITH INTEGRAL - * U+2a0c 1 a ⨌ b QUADRUPLE INTEGRAL OPERATOR - * U+2a0d 1 a ⨍ b FINITE PART INTEGRAL - * U+2a0e 1 a ⨎ b INTEGRAL WITH DOUBLE STROKE - * U+2a0f 1 a ⨏ b INTEGRAL AVERAGE WITH SLASH + * $ lscp 0x2a00 0x2a10 + * U+2a00 1 a ⨀ b N-ARY CIRCLED DOT OPERATOR + * U+2a01 1 a ⨁ b N-ARY CIRCLED PLUS OPERATOR + * U+2a02 1 a ⨂ b N-ARY CIRCLED TIMES OPERATOR + * U+2a03 1 a ⨃ b N-ARY UNION OPERATOR WITH DOT + * U+2a04 1 a ⨄ b N-ARY UNION OPERATOR WITH PLUS + * U+2a05 1 a ⨅ b N-ARY SQUARE INTERSECTION OPERATOR + * U+2a06 1 a ⨆ b N-ARY SQUARE UNION OPERATOR + * U+2a07 1 a ⨇ b TWO LOGICAL AND OPERATOR + * U+2a08 1 a ⨈ b TWO LOGICAL OR OPERATOR + * U+2a09 1 a ⨉ b N-ARY TIMES OPERATOR + * U+2a0a 1 a ⨊ b MODULO TWO SUM + * U+2a0b 1 a ⨋ b SUMMATION WITH INTEGRAL + * U+2a0c 1 a ⨌ b QUADRUPLE INTEGRAL OPERATOR + * U+2a0d 1 a ⨍ b FINITE PART INTEGRAL + * U+2a0e 1 a ⨎ b INTEGRAL WITH DOUBLE STROKE + * U+2a0f 1 a ⨏ b INTEGRAL AVERAGE WITH SLASH */ #include #include @@ -40,18 +40,18 @@ int main(int aArgc, char **aArgv) { exit(EXIT_FAILURE); } errno = 0; - const unsigned long start = strtoul(aArgv[1], NULL, 0); - const unsigned long end = strtoul(aArgv[2], NULL, 0); + unsigned long start = strtoul(aArgv[1], NULL, 0); + unsigned long end = strtoul(aArgv[2], NULL, 0); if (errno != 0) { fprintf(stderr, "could not convert arguments to integers\n"); exit(EXIT_FAILURE); } for (unsigned long i = start; i < end; ++i) { char name[UNINAME_MAX + 1]; - const char *const p = unicode_character_name((ucs4_t) i, name); - printf("U+%04lx %2d a %lc b %s\n", i, wcwidth((wchar_t) i), (wint_t) i, p ? p : ""); + const char *const p = unicode_character_name((ucs4_t)i, name); + printf("U+%04lx %2d a %lc b %s\n", i, wcwidth((wchar_t)i), (wint_t)i, p ? p : ""); } return EXIT_SUCCESS; } -/* vim: set tabstop=4 shiftwidth=4 expandtab fileformat=unix: */ +/* vim: set syntax=c tabstop=4 shiftwidth=4 expandtab fileformat=unix: */ diff --git a/srctohex.c b/srctohex.c new file mode 100644 index 0000000..1f3e5d3 --- /dev/null +++ b/srctohex.c @@ -0,0 +1,191 @@ +/* + * NAME + * srctohex - convert font from src to hex format + * + * EXAMPLE USAGE + * srctohex -w 12 -h 22 < gallant.src > gallant.hex + */ +#include +#include +#include +#include +#include +#include +#include + +#define PixelWidth 12 +#define PixelHeight 22 +#define PixelSet L'Y' +#define PixelClear L' ' +#define LINE_MAX_WCHAR 1024 +#define FULL_BLOCK 0x2588 + +#define STARTCHAR 1 +#define BITMAP 2 +#define ENDCHAR 3 + +void parse_options(int aArgc, char **aArgv); +void usage(int aStatus); +void errx(const char *aFormat, ...); +int parse_startchar(const wchar_t *aLine); +void parse_bitmap(const wchar_t *aLine, int aWidth); +void parse_endchar(const wchar_t *aLine); + +int gWidth = PixelWidth; +int gHeight = PixelHeight; +int gLineNr = 0; +unsigned int gCodepoint = 0; + +int main(int aArgc, char **aArgv) { + if (!setlocale(LC_CTYPE, "")) { + fprintf(stderr, "Can't set the locale. Check LANG, LC_CTYPE, LC_ALL.\n"); + exit(EXIT_FAILURE); + } + int expect = STARTCHAR; + int bitmaps = 0; + int glyphs = 0; + int width = 1; + parse_options(aArgc, aArgv); + printf("# Width: %d\n# Height: %d\n", gWidth, gHeight); + wchar_t wbuf[LINE_MAX_WCHAR]; + while (fgetws(wbuf, LINE_MAX_WCHAR, stdin)) { + ++gLineNr; + switch (expect) { + case STARTCHAR: + width = parse_startchar(wbuf); + expect = BITMAP; + break; + case BITMAP: + parse_bitmap(wbuf, width); + ++bitmaps; + if (bitmaps == gHeight) { + putchar('\n'); + expect = ENDCHAR; + } + break; + case ENDCHAR: + parse_endchar(wbuf); + expect = STARTCHAR; + bitmaps = 0; + ++glyphs; + break; + default: + break; + } + } + if (expect != STARTCHAR) + errx("line %d, glyph U+%04x: incomplete glyph due to early end-of-file\n", gLineNr, gCodepoint); + fprintf(stderr, "found %d glyphs\n", glyphs); + return EXIT_SUCCESS; +} + +// Parse a STARTCHAR directive. +// +int parse_startchar(const wchar_t *aLine) { + if (swscanf(aLine, L"STARTCHAR U+%x", &gCodepoint) == 1) { + printf("%04x:", gCodepoint); + return wcwidth(gCodepoint); + } + errx("line %d: expected 'STARTCHAR U+xxxx', got %ls", gLineNr, aLine); + return 0; +} + +// Parse a |BITMAP| directive. +// +void parse_bitmap(const wchar_t *aLine, int aWidth) { + const wchar_t *delim1 = wcschr(aLine, L'|'); + if (delim1 == NULL) + errx("line %d: initial delimiter '|' not found in %ls; not enough pixel lines?\n", gLineNr, aLine); + + const wchar_t *delim2 = wcschr(delim1 + 1, L'|'); + if (delim2 == NULL) + errx("line %d: final delimiter '|' not found in %ls", gLineNr, aLine); + + const int bits = (delim2 - delim1) - 1; + if (aWidth == 2) { + if (bits != (2 * gWidth)) + errx("line %d, glyph U+%04x: expected %d pixels bewteen || delimiters for double width glyph, found %d\n", gLineNr, + gCodepoint, 2 * gWidth, bits); + } + else { + if (bits != gWidth) + errx("line %d, glyph U+%04x: expected %d pixels bewteen || delimiters for normal width glyph, found %d\n", gLineNr, + gCodepoint, gWidth, bits); + } + + int hex = 0; + aLine = delim1 + 1; + for (int i = 0; i < bits; ++i) { + const int rem = i % 4; + if (aLine[i] == FULL_BLOCK) + hex += (8 >> rem); + else { + if (aLine[i] != L' ') + errx("line %d, glyph U+%04x: pixels must be SPACE or FULL BLOCK U+2588 '%lc', found '%lc'\n", gLineNr, gCodepoint, + FULL_BLOCK, aLine[i]); + } + if (rem == 3) { + putchar("0123456789abcdef"[hex]); + hex = 0; + } + } + /* Pad to octet with zero bits, if any. */ + const int pad = 8 * ((bits + 7) / 8); + for (int i = bits; i < pad; ++i) { + if (i % 4 == 3) { + putchar("0123456789abcdef"[hex]); + hex = 0; + } + } +} + +// Parse an ENDCHAR directive. +// +void parse_endchar(const wchar_t *aLine) { + if (wcscmp(aLine, L"ENDCHAR\n") != 0) + errx("line %d, glyph U+%04x: expected 'ENDCHAR', got %ls", gLineNr, gCodepoint, aLine); +} + +// Parse the command line options. +// +void parse_options(int aArgc, char **aArgv) { + int ch; + while ((ch = getopt(aArgc, aArgv, "w:h:")) != -1) { + switch (ch) { + case 'h': + if (sscanf(optarg, "%d", &gHeight) != 1) + errx("can't convert '%s' to height integer\n", optarg); + break; + case 'w': + if (sscanf(optarg, "%d", &gWidth) != 1) + errx("can't convert '%s' to width integer\n", optarg); + break; + default: + usage(EXIT_FAILURE); + } + } +} + + + +// Output usage message and exit with status. +// +void usage(int aStatus) { + fprintf(stderr, "usage: srctohex [options]\n"); + fprintf(stderr, "Options [default]:\n"); + fprintf(stderr, " -h height height in pixels [%d]\n", PixelHeight); + fprintf(stderr, " -w width width in pixels [%d]\n", PixelWidth); + exit(aStatus); +} + +// Print formatted message on stderr and exit. +// +void errx(const char *aFormat, ...) { + va_list ap; + va_start(ap, aFormat); + vfprintf(stderr, aFormat, ap); + va_end(ap); + exit(EXIT_FAILURE); +} + +/* vim: set tabstop=4 shiftwidth=4 expandtab fileformat=unix: */ -- cgit v1.2.3