Provide characters missing from Terminus fonts

This commit is contained in:
Ray Chason
2022-10-15 09:05:58 -04:00
parent 4ab2860718
commit 333fc71b86
10 changed files with 770 additions and 66 deletions
+25 -9
View File
@@ -94,12 +94,18 @@ bwidth = nil
glyph = nil glyph = nil
bitmap = false bitmap = false
if arg[2] == nil or arg[3] ~= nil then if #arg < 2 then
io.stderr:write("Usage: " .. arg[0] .. " <input-bdf> <output-psf>\n") io.stderr:write("Usage: " .. arg[0] .. " <input-bdf> [<input-bdf>...] <output-psf>\n")
os.exit(1) os.exit(1)
end end
fp = io.open(arg[1], "r") for inp = 1, #arg-1 do
fp = io.open(arg[inp], "r")
if fp == nil then
io.stderr:write("Could not open: " .. arg[inp] .. "\n")
os.exit(1)
end
while true do while true do
line = fp:read() line = fp:read()
@@ -109,9 +115,18 @@ while true do
if start_with(line, 'FONTBOUNDINGBOX ') then if start_with(line, 'FONTBOUNDINGBOX ') then
-- Width and height of a glyph -- Width and height of a glyph
rec = split(line) rec = split(line)
width = rec[2] if inp == 1 then
height = rec[3] -- First input file sets the dimensions
width = tonumber(rec[2])
height = tonumber(rec[3])
bwidth = math.floor((width + 7) / 8) bwidth = math.floor((width + 7) / 8)
else
-- Any others must match, or an error results
if width ~= tonumber(rec[2]) or height ~= tonumber(rec[3]) then
io.stderr:write(arg[inp] .. " bounding box does not match that of " .. arg[1] .. "\n")
os.exit(1)
end
end
elseif start_with(line, 'STARTCHAR ') then elseif start_with(line, 'STARTCHAR ') then
-- A glyph begins here -- A glyph begins here
glyph = new_glyph(width, height) glyph = new_glyph(width, height)
@@ -124,9 +139,9 @@ while true do
bitmap = true bitmap = true
elseif start_with(line, 'ENDCHAR') then elseif start_with(line, 'ENDCHAR') then
-- End of bitmap data -- End of bitmap data
-- Position will be according to IBM437 if the code point is in IBM437, -- Position will be according to IBM437 if the code point is in
-- else matching any prior occurrence if the same glyph has appeared -- IBM437, else matching any prior occurrence if the same glyph has
-- before, else as a new glyph -- appeared before, else as a new glyph
pos = ibm437_rev[glyph.code[1]] or font_by_bytes[glyph.bytes] pos = ibm437_rev[glyph.code[1]] or font_by_bytes[glyph.bytes]
if pos == nil then if pos == nil then
pos = next_pos pos = next_pos
@@ -153,6 +168,7 @@ while true do
end end
fp:close() fp:close()
end
-- The provided BDFs code positions 16 and 17 differently from what NetHack -- The provided BDFs code positions 16 and 17 differently from what NetHack
-- expects -- expects
@@ -182,7 +198,7 @@ for i = 1, 256 do
end end
end end
outfile = io.open(arg[2], "wb") outfile = io.open(arg[#arg], "wb")
-- Write the PSF header -- Write the PSF header
outfile:write("\x72\xB5\x4A\x86") -- magic outfile:write("\x72\xB5\x4A\x86") -- magic
+68
View File
@@ -0,0 +1,68 @@
STARTFONT 2.1
FONTBOUNDINGBOX 8 16
STARTPROPERTIES 3
NOTICE "Additional characters to use with ter-u16b.bdf"
COPYRIGHT "Copyright 2022 Ray Chason."
NOTICE "NetHack may be freely redistributed. See license for details."
ENDPROPERTIES
STARTCHAR tripletilde
ENCODING 8779
BITMAP
00
00
00
00
32
4C
00
32
4C
00
32
4C
00
00
00
00
ENDCHAR
STARTCHAR uppereighth
ENCODING 9620
BITMAP
FF
FF
00
00
00
00
00
00
00
00
00
00
00
00
00
00
ENDCHAR
STARTCHAR righteighth
ENCODING 9621
BITMAP
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
ENDCHAR
ENDFONT
+68
View File
@@ -0,0 +1,68 @@
STARTFONT 2.1
FONTBOUNDINGBOX 8 16
STARTPROPERTIES 3
NOTICE "Additional characters to use with ter-u16v.bdf"
COPYRIGHT "Copyright 2022 Ray Chason."
NOTICE "NetHack may be freely redistributed. See license for details."
ENDPROPERTIES
STARTCHAR tripletilde
ENCODING 8779
BITMAP
00
00
00
00
32
4C
00
32
4C
00
32
4C
00
00
00
00
ENDCHAR
STARTCHAR uppereighth
ENCODING 9620
BITMAP
FF
FF
00
00
00
00
00
00
00
00
00
00
00
00
00
00
ENDCHAR
STARTCHAR righteighth
ENCODING 9621
BITMAP
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
ENDCHAR
ENDFONT
+74
View File
@@ -0,0 +1,74 @@
STARTFONT 2.1
FONTBOUNDINGBOX 10 18
STARTPROPERTIES 3
NOTICE "Additional characters to use with ter-u18b.bdf"
COPYRIGHT "Copyright 2022 Ray Chason."
NOTICE "NetHack may be freely redistributed. See license for details."
ENDPROPERTIES
STARTCHAR tripletilde
ENCODING 8779
BITMAP
0000
0000
0000
3100
4900
4600
0000
3100
4900
4600
0000
3100
4900
4600
0000
0000
0000
0000
ENDCHAR
STARTCHAR uppereighth
ENCODING 9620
BITMAP
FFC0
FFC0
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR righteighth
ENCODING 9621
BITMAP
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
ENDCHAR
ENDFONT
+80
View File
@@ -0,0 +1,80 @@
STARTFONT 2.1
FONTBOUNDINGBOX 10 20
STARTPROPERTIES 3
NOTICE "Additional characters to use with ter-u20b.bdf"
COPYRIGHT "Copyright 2022 Ray Chason."
NOTICE "NetHack may be freely redistributed. See license for details."
ENDPROPERTIES
STARTCHAR tripletilde
ENCODING 8779
BITMAP
0000
0000
0000
0000
3100
4900
4600
0000
3100
4900
4600
0000
3100
4900
4600
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR uppereighth
ENCODING 9620
BITMAP
FFC0
FFC0
FFC0
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR righteighth
ENCODING 9621
BITMAP
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
0040
ENDCHAR
ENDFONT
+86
View File
@@ -0,0 +1,86 @@
STARTFONT 2.1
FONTBOUNDINGBOX 11 22
STARTPROPERTIES 3
NOTICE "Additional characters to use with ter-u22b.bdf"
COPYRIGHT "Copyright 2022 Ray Chason."
NOTICE "NetHack may be freely redistributed. See license for details."
ENDPROPERTIES
STARTCHAR tripletilde
ENCODING 8779
BITMAP
0000
0000
0000
0000
0000
3080
4C80
4300
0000
3080
4C80
4300
0000
3080
4C80
4300
0000
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR uppereighth
ENCODING 9620
BITMAP
FFE0
FFE0
FFE0
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR righteighth
ENCODING 9621
BITMAP
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
0060
ENDCHAR
ENDFONT
+92
View File
@@ -0,0 +1,92 @@
STARTFONT 2.1
FONTBOUNDINGBOX 12 24
STARTPROPERTIES 3
NOTICE "Additional characters to use with ter-u24b.bdf"
COPYRIGHT "Copyright 2022 Ray Chason."
NOTICE "NetHack may be freely redistributed. See license for details."
ENDPROPERTIES
STARTCHAR tripletilde
ENCODING 8779
BITMAP
0000
0000
0000
0000
0000
0000
3C60
6660
63C0
0000
3C60
6660
63C0
0000
3C60
6660
63C0
0000
0000
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR uppereighth
ENCODING 9620
BITMAP
FFF0
FFF0
FFF0
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR righteighth
ENCODING 9621
BITMAP
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
0030
ENDCHAR
ENDFONT
+104
View File
@@ -0,0 +1,104 @@
STARTFONT 2.1
FONTBOUNDINGBOX 14 28
STARTPROPERTIES 3
NOTICE "Additional characters to use with ter-u28b.bdf"
COPYRIGHT "Copyright 2022 Ray Chason."
NOTICE "NetHack may be freely redistributed. See license for details."
ENDPROPERTIES
STARTCHAR tripletilde
ENCODING 8779
BITMAP
0000
0000
0000
0000
0000
0000
0000
1C30
3630
6360
61C0
0000
1C30
3630
6360
61C0
0000
1C30
3630
6360
61C0
0000
0000
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR uppereighth
ENCODING 9620
BITMAP
FFFC
FFFC
FFFC
FFFC
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR righteighth
ENCODING 9621
BITMAP
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
000C
ENDCHAR
ENDFONT
+116
View File
@@ -0,0 +1,116 @@
STARTFONT 2.1
FONTBOUNDINGBOX 16 32
STARTPROPERTIES 3
NOTICE "Additional characters to use with ter-u32b.bdf"
COPYRIGHT "Copyright 2022 Ray Chason."
NOTICE "NetHack may be freely redistributed. See license for details."
ENDPROPERTIES
STARTCHAR tripletilde
ENCODING 8779
BITMAP
0000
0000
0000
0000
0000
0000
0000
0000
1F0C
3F9C
39FC
30F8
0000
0000
1F0C
3F9C
39FC
30F8
0000
0000
1F0C
3F9C
39FC
30F8
0000
0000
0000
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR uppereighth
ENCODING 9620
BITMAP
FFFF
FFFF
FFFF
FFFF
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
ENDCHAR
STARTCHAR righteighth
ENCODING 9621
BITMAP
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
ENDCHAR
ENDFONT
+16 -16
View File
@@ -25,22 +25,22 @@ $(TARGETPFX)exceptn.o : ../lib/djgpp/djgpp-patch/src/libc/go32/exceptn.S
$(GAMEBIN) : $(HOBJ) $(LUACROSSLIB) $(GAMEBIN) : $(HOBJ) $(LUACROSSLIB)
$(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \ $(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
$(HOBJ) $(WINLIB) $(TARGET_LIBS) $(HOBJ) $(WINLIB) $(TARGET_LIBS)
$(FONTDIR)/ter-u16b.psf: $(FONTTOP)/ter-u16b.bdf $(FONTDIR)/makefont.lua $(LUABIN) $(FONTDIR)/ter-u16b.psf: $(FONTTOP)/ter-u16b.bdf ../sys/msdos/fonts/nh-u16b.bdf $(FONTDIR)/makefont.lua $(LUABIN)
$(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u16b.bdf $@ $(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u16b.bdf ../sys/msdos/fonts/nh-u16b.bdf $@
$(FONTDIR)/ter-u16v.psf: $(FONTTOP)/ter-u16v.bdf $(FONTDIR)/makefont.lua $(LUABIN) $(FONTDIR)/ter-u16v.psf: $(FONTTOP)/ter-u16v.bdf ../sys/msdos/fonts/nh-u16v.bdf $(FONTDIR)/makefont.lua $(LUABIN)
$(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u16v.bdf $@ $(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u16v.bdf ../sys/msdos/fonts/nh-u16v.bdf $@
$(FONTDIR)/ter-u18b.psf: $(FONTTOP)/ter-u18b.bdf $(FONTDIR)/makefont.lua $(LUABIN) $(FONTDIR)/ter-u18b.psf: $(FONTTOP)/ter-u18b.bdf ../sys/msdos/fonts/nh-u18b.bdf $(FONTDIR)/makefont.lua $(LUABIN)
$(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u18b.bdf $@ $(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u18b.bdf ../sys/msdos/fonts/nh-u18b.bdf $@
$(FONTDIR)/ter-u20b.psf: $(FONTTOP)/ter-u20b.bdf $(FONTDIR)/makefont.lua $(LUABIN) $(FONTDIR)/ter-u20b.psf: $(FONTTOP)/ter-u20b.bdf ../sys/msdos/fonts/nh-u20b.bdf $(FONTDIR)/makefont.lua $(LUABIN)
$(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u20b.bdf $@ $(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u20b.bdf ../sys/msdos/fonts/nh-u20b.bdf $@
$(FONTDIR)/ter-u22b.psf: $(FONTTOP)/ter-u22b.bdf $(FONTDIR)/makefont.lua $(LUABIN) $(FONTDIR)/ter-u22b.psf: $(FONTTOP)/ter-u22b.bdf ../sys/msdos/fonts/nh-u22b.bdf $(FONTDIR)/makefont.lua $(LUABIN)
$(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u22b.bdf $@ $(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u22b.bdf ../sys/msdos/fonts/nh-u22b.bdf $@
$(FONTDIR)/ter-u24b.psf: $(FONTTOP)/ter-u24b.bdf $(FONTDIR)/makefont.lua $(LUABIN) $(FONTDIR)/ter-u24b.psf: $(FONTTOP)/ter-u24b.bdf ../sys/msdos/fonts/nh-u24b.bdf $(FONTDIR)/makefont.lua $(LUABIN)
$(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u24b.bdf $@ $(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u24b.bdf ../sys/msdos/fonts/nh-u24b.bdf $@
$(FONTDIR)/ter-u28b.psf: $(FONTTOP)/ter-u28b.bdf $(FONTDIR)/makefont.lua $(LUABIN) $(FONTDIR)/ter-u28b.psf: $(FONTTOP)/ter-u28b.bdf ../sys/msdos/fonts/nh-u28b.bdf $(FONTDIR)/makefont.lua $(LUABIN)
$(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u28b.bdf $@ $(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u28b.bdf ../sys/msdos/fonts/nh-u28b.bdf $@
$(FONTDIR)/ter-u32b.psf: $(FONTTOP)/ter-u32b.bdf $(FONTDIR)/makefont.lua $(LUABIN) $(FONTDIR)/ter-u32b.psf: $(FONTTOP)/ter-u32b.bdf ../sys/msdos/fonts/nh-u32b.bdf $(FONTDIR)/makefont.lua $(LUABIN)
$(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u32b.bdf $@ $(LUABIN) $(FONTDIR)/makefont.lua $(FONTTOP)/ter-u32b.bdf ../sys/msdos/fonts/nh-u32b.bdf $@
# #
.PHONY: dodata dospkg dosfonts .PHONY: dodata dospkg dosfonts
dosfonts: $(FONTTARGETS) dosfonts: $(FONTTARGETS)