Re:Fonts extracted from BIOSes and VGA ROMs
by theandrewbailey on Wednesday May 13, 2020 @11:19AM
(#23167703)
Over the past few weeks, I've been setting all my command prompts and terminal emulators to old-school fonts. I've settled on PxPlus IBM VGA8[0] with color #FFB000 (monochrome amber) on black. If font antialiasing blurs things, I use Nouveau IBM[1].
Re:Fonts extracted from BIOSes and VGA ROMs
by stragies on Wednesday May 13, 2020 @06:21AM
(#23165385)
From the nice article this little hint about a (possible) problem with Qemu:
"qemu seabios 8x8 and 8x14 are exact matches to IBM's VGA and XGA fonts. These files are in fntcol16.zip from simtel. VGA-ROM.F08 and VGA-ROM.F14. qemu source comment claims this is public domain. I doubt IBM would release a font to public domain. Does this mean, qemu relied on claims by package creator and now they use a illegal copy?"
Re:Fonts extracted from BIOSes and VGA ROMs
by dhosek on Wednesday May 13, 2020 @06:40PM
(#23172676)
I used to sketch 8x8 bitmap fonts on graph paper using circles four to a square when I was in junior high. I spent a lot of time trying different combinations.
Re:Fonts extracted from BIOSes and VGA ROMs
by tenebrisalietum on Wednesday May 13, 2020 @09:48AM
(#23166840)
That font has some unique characteristics (such as the lopsided S and 8). It's not like the Signetics based font from Apple I/II which is very basic, for example.
Also if you look at all the ways letters and numbers have been drawn in C-64, NES, Genesis, and SNES games; there's lots of room for creativity and design even in an 8x8 space.
Re:Fonts extracted from BIOSes and VGA ROMs
by reaperducer on Wednesday May 13, 2020 @12:23PM
(#23168526)
FWIW, the reason all of the vertical elements in the C-64 font are two pixels wide is to compensate for raster blur on televisions that were common at the time.
If you made a vertical line only one pixel wide, on many televisions like the Panasonic I used it would be nearly impossible to see.
And while color monitors of the day were an improvement, they still weren't what we would consider acceptable today. I eventually upgraded to a Commodore CM-141, and single pixel vertical lines still weren't great.
Re:Fonts extracted from BIOSes and VGA ROMs
by NoSorryCannot on Wednesday May 13, 2020 @11:34AM
(#23167895)
While not public domain and not relevant to the specific issue at hand, IBM Plex is a font released by IBM as open source and under a very permissive license.
Re:Fonts extracted from BIOSes and VGA ROMs
by rbanffy on Wednesday May 13, 2020 @08:01AM
(#23165945)
Thank you. I'm partial for that certain modern sans-serif look, as you may have guessed.
BTW, that IBM bundles Arial with their mainframes is outrageous. If you are paying more than a million dollars for a machine, you should be getting proper Helvetica.
Re:Fonts extracted from BIOSes and VGA ROMs
by willis936 on Wednesday May 13, 2020 @08:29AM
(#23166173)
Honestly, I would find it extremely limiting if someone was able to copyright 1664 bits of information. Bitmap 8x8 fonts are absolutely trivial. In one afternoon anyone could make every human readable variation.
Re:Fonts extracted from BIOSes and VGA ROMs
by willis936 on Wednesday May 13, 2020 @11:14AM
(#23167656)
Thinking on it: 1664 bits is 26 * 8 * 8, which is a little low. ASCII uses indices 32 to 127 for visible characters, so this would be 95 * 8 * 8, or 6080 bits. It's still a trivially small amount of information and there are very few ways to make unique English fonts out of it, so I still don't think it should be possible to copyright it.
Looking at the actual IBM_VGA_8x8.bin file: the file size is 1024 bytes (8192 bits). I calculated the entropy of the data to be only 638 bits of information.
MATLAB code:
fid = fopen('IBM_PC_BIOS_1981-04-24_HALF_8x8.bin','r');
ibmVga = fread(fid);
fclose(fid);
p = histogram(double(ibmVga),255);
E = -sum(log2(p.Values(p.Values > 0)).*log2(p.Values(p.Values > 0)));
Re:Fonts extracted from BIOSes and VGA ROMs
by willis936 on Friday May 15, 2020 @03:21PM
(#23196253)
So I went on a bit of a rabbit hole on this one. The above code is wrong. I have since fixed it. It's the same idea with some added terms to normalize for data size.
Word size matters when calculating entropy. Calculating entropy on this file using 2 to 64 bits nets a minimum information of 860 bits using a 64 bit word size. Moving past a 64 bit word size requires rethinking some things. MATLAB doesn't have great support for data sizes greater than 64 bits (and I'm certain the performance impact would be great).
words = double(unique(X))';
binEdges = [words-0.5; words+0.5];
binEdges = unique(binEdges(:));
P = histcounts(X, binEdges) / M;
P(P == 0) = [];
M = numel(X);
H = -sum(P .* log(P) ./ log(max([nBits, 2]))) / nBits * log2(max([nBits, 2]));
E = H * M * nBits;
Re:Fonts extracted from BIOSes and VGA ROMs
by willis936 on Friday May 15, 2020 @03:18PM
(#23196219)
This is meaningless. Information is information. Specifying a size has virtually no information. The number "638" stored in uint16 has two bits of information using any word size between 8 and 15 bits.
Re:Fonts extracted from BIOSes and VGA ROMs
by dTal on Thursday May 14, 2020 @08:15AM
(#23178524)
128 bits a reasonable bound for "nontrivial information" (information you'd never arrive at by guessing). 1664 bits is enough to write a short poem.
However I don't think a 1664 bits is an accurate count. You must subtract the information provided by knowing it represents the alphabet, which constrains the number of possibilities to only a few choices per letter - say 2 or 3 bits at most. So a 64-character alphabet is right on the edge of "reasonably nontrivial", due entirely down to the combinatorial complexity of choosing which glyph to use in each case. A single glyph should not be copyrightable.
Re:Fonts extracted from BIOSes and VGA ROMs
by EvanAnderson on Wednesday May 13, 2020 @07:34AM
(#23165793)
Names of things can be protected by trademark, not by copyright.
re: copyright-ability of fonts. That's a muddy area. The visual representation of the font cannot be copyrighted. I can make a font that looks like yours with no copyright concern. If I copy the code that creates the visual representation (i.e. the binary definition of the font) that may be a concern. That could be considered program code (particularly for vector fonts, but I could see an attorney trying to argue that for bitmaps, similar to assets for a game), which is protected by copyright.
Re:Fonts extracted from BIOSes and VGA ROMs
by cardiffspaceman on Wednesday May 13, 2020 @01:52PM
(#23169577)
It is my understanding that typeface hint systems such as those in Adobe Type 1 and TrueType are "programs" for the purposes of copyright law. But I'm not a lawyer, and I would be interested to hear expert opinions. It used to be my interest to deal with typeface hints.
Re:Fonts extracted from BIOSes and VGA ROMs
by Sharlin on Wednesday May 13, 2020 @11:09AM
(#23167596)
Incidentally, the font images ([1]) should be usable as Dwarf Fortress tilesets [2] with very little work (just change the background color from black to transparent).
Re:Fonts extracted from BIOSes and VGA ROMs
by UI_at_80x24 on Wednesday May 13, 2020 @09:40AM
(#23166779)
My first computer was a Commodore64. My only real complaint at the time was how the "!" was displayed. It was a straight line with a square dot. It felt incomplete somehow and IIRC looked too much like another character (can't remember which one, maybe "i"??).
Then I got my first VGA output with a 386.
The exclamation mark was now curvy and sexy!
Thick at the top, curving down to a point, finished with a round dot.
I thought everything was right in the world.
I miss that font.
I've tried reusing bitmapped fonts that give me my desired output but I find it just doesn't work in enough places that it's too annoying. Maybe it messes up curses output, or UTF-8 incompatibilities?
Re:Fonts extracted from BIOSes and VGA ROMs
by Someone on Wednesday May 13, 2020 @11:18AM
(#23167688)
You have to give Commodore (or whoever designed that font) some slack.
VGA (in typically used character modes) had more bits per character, and its fonts didn’t have to be designed to be legible when displayed on a television set (screen not designed for text display, and signal converted to antenna signal and back)
Re:Fonts extracted from BIOSes and VGA ROMs
by UI_at_80x24 on Wednesday May 13, 2020 @11:30AM
(#23167840)
I guess I was wrong about the dot. But I also remember the taper on the exclamation mark being finer and less blocky. Obviously I remember through rose coloured glasses. Wolfenstien3D didn't look as bad as modern screenshots show either! =)
I don't doubt the C64 designers did the best with what they could; but I was absolutely impressed with how good the "!" looked on that VGA screen.
Re:Fonts extracted from BIOSes and VGA ROMs
by sjwright on Wednesday May 13, 2020 @09:12AM
(#23166544)
If you've spent a decade looking at VGA screens, its font will be intensely legible to you, regardless how objectively terrible they definitely are. Our ability to read is pattern recognition, and if your brain's neural network is well trained for the VGA text font, it makes sense that you might love them.
Heck—if you spent years reading your terminal upside down, you'd get very good at that too. Eventually you might get nostalgic for it.
Re:Fonts extracted from BIOSes and VGA ROMs
by perl4ever on Thursday May 14, 2020 @07:33PM
(#23187020)
VGA monospaced text always looked kind of exotic to me, because I started out looking mainly at the Amiga's Topaz font. Before that, the TRS-80 font, which also seems to have been quite different. And after that, the Macintosh's Monaco and Courier. I always hated Windows Courier New and much prefer Consolas. My favorite is, or was, Computer Modern Typewriter.
Re:Fonts extracted from BIOSes and VGA ROMs
by JonathonW on Wednesday May 13, 2020 @12:59PM
(#23168969)
Isn't this missing the 9x16 font that was the actual VGA text mode default? That variant allowed a few characters to be slightly wider and cleaner (noticeable on W, M, and X).
Re:Fonts extracted from BIOSes and VGA ROMs
by blickentwapft on Wednesday May 13, 2020 @09:16AM
(#23166569)
Sadly I just sold an old z80 sign making device from long ago and it had about 10 add on rom font cartridges. Would have been good to give them to this guy.
Re:Fonts extracted from BIOSes and VGA ROMs
by richard_todd on Wednesday May 13, 2020 @12:55PM
(#23168921)
I assume if you want good results actually using these today, you need to be careful to select a VGA font that was originally on square pixels. Is there an easy way to tell which those are?
Re:Fonts extracted from BIOSes and VGA ROMs
by thewebcount on Wednesday May 13, 2020 @04:04PM
(#23171192)
This is really cool! When I was in college in the early 90s I used an IBM AIX machine in terminal mode, and it had what seemed at the time to be a really crystal clear serif font. I suspect that it was antialiased, but am not sure. I would really love to find that font somewhere. If anyone knows what it was, I'd love to learn more about it.
Re:Fonts extracted from BIOSes and VGA ROMs
by acqq on Wednesday May 13, 2020 @05:57PM
(#23172311)
I remember looking/using at the different non-PC terminals decades ago, produced by different companies, which had significantly nicer fonts than any PC fonts I watched later.
Of course, it's not only the font, but the whole technology (analog devices have analog responses etc). But some looked really nice.
Re:Fonts extracted from BIOSes and VGA ROMs
by jedberg on Wednesday May 13, 2020 @03:06PM
(#23170501)
I have a similar collection of fonts that I use in presentations. I like to use the old school VGA fonts for emphasis on chunks of code.
It draws the eye and usually I get at least one person commenting on the nostalgia factor of the font, which means they will remember that part of the presentation.
[0] https://int10h.org/oldschool-pc-fonts/fontlist/#ibmvgamcga
[1] https://www.dafont.com/nouveau-ibm.font
"qemu seabios 8x8 and 8x14 are exact matches to IBM's VGA and XGA fonts. These files are in fntcol16.zip from simtel. VGA-ROM.F08 and VGA-ROM.F14. qemu source comment claims this is public domain. I doubt IBM would release a font to public domain. Does this mean, qemu relied on claims by package creator and now they use a illegal copy?"
https://www.crowdspring.com/blog/font-law-licensing/
> Generally, copyright law in the U.S. does not protect typefaces.
> Fonts may be protected as long as the font qualifies as computer software or a program (and in fact, most fonts are programs or software).
> Bitmapped fonts are considered to be computerized representations of a typeface (and are not protected by copyright law).
> On the other hand, scalable fonts (because they are incorporated as part of a program or software) are protected by copyright.
[0]: https://www.amazon.co.uk/Arcade-Game-Typography-Pixel-Type/d...
Also if you look at all the ways letters and numbers have been drawn in C-64, NES, Genesis, and SNES games; there's lots of room for creativity and design even in an 8x8 space.
If you made a vertical line only one pixel wide, on many televisions like the Panasonic I used it would be nearly impossible to see.
And while color monitors of the day were an improvement, they still weren't what we would consider acceptable today. I eventually upgraded to a Commodore CM-141, and single pixel vertical lines still weren't great.
[1] https://en.wikipedia.org/wiki/Broadway_(typeface)
It's also quite nice.
In any case, the IBM PC fonts are horrendous. They should have gone with the sans-serif they used in their mainframe terminals.
Are you talking about AFP fonts[1]? In that case Sonoran Sans Serif[2]? Then you should probably be happy with Arial[3]. Fun story[4].
Or are you talking about a 3270 font? Then you should have a look at 3270font[5]
[1] https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pag...
[2] https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=c...
[3] https://en.wikipedia.org/wiki/Arial
[4] http://idsgn.org/posts/sonoran-the-hidden-truths/
[5] https://github.com/rbanffy/3270font
...and then I saw the username i was responding to. I'll post anyway if you do not want to toot your own horn. Nice work!
BTW, that IBM bundles Arial with their mainframes is outrageous. If you are paying more than a million dollars for a machine, you should be getting proper Helvetica.
Looking at the actual IBM_VGA_8x8.bin file: the file size is 1024 bytes (8192 bits). I calculated the entropy of the data to be only 638 bits of information.
MATLAB code:
Word size matters when calculating entropy. Calculating entropy on this file using 2 to 64 bits nets a minimum information of 860 bits using a 64 bit word size. Moving past a 64 bit word size requires rethinking some things. MATLAB doesn't have great support for data sizes greater than 64 bits (and I'm certain the performance impact would be great).
However I don't think a 1664 bits is an accurate count. You must subtract the information provided by knowing it represents the alphabet, which constrains the number of possibilities to only a few choices per letter - say 2 or 3 bits at most. So a 64-character alphabet is right on the edge of "reasonably nontrivial", due entirely down to the combinatorial complexity of choosing which glyph to use in each case. A single glyph should not be copyrightable.
re: copyright-ability of fonts. That's a muddy area. The visual representation of the font cannot be copyrighted. I can make a font that looks like yours with no copyright concern. If I copy the code that creates the visual representation (i.e. the binary definition of the font) that may be a concern. That could be considered program code (particularly for vector fonts, but I could see an attorney trying to argue that for bitmaps, similar to assets for a game), which is protected by copyright.
[1] https://github.com/spacerace/romfont/tree/master/font-images
[2] http://dwarffortresswiki.org/index.php/DF2014:Tilesets
Are there pictures of the fonts? I didn’t see any.
Then I got my first VGA output with a 386.
The exclamation mark was now curvy and sexy! Thick at the top, curving down to a point, finished with a round dot. I thought everything was right in the world.
I miss that font.
I've tried reusing bitmapped fonts that give me my desired output but I find it just doesn't work in enough places that it's too annoying. Maybe it messes up curses output, or UTF-8 incompatibilities?
VGA (in typically used character modes) had more bits per character, and its fonts didn’t have to be designed to be legible when displayed on a television set (screen not designed for text display, and signal converted to antenna signal and back)
Also, are you sure about that “round dot”? https://github.com/spacerace/romfont/blob/master/font-images... doesn’t show it, and any non-squareness would require a width of at least 3 pixels (more likely 4) to draw.
I don't doubt the C64 designers did the best with what they could; but I was absolutely impressed with how good the "!" looked on that VGA screen.
Then you must have missed the atrocity that was the Commodore's @ symbol.
None of the early computers did a good job with it. I remember the Tandy machines were particularly bad.
Heck—if you spent years reading your terminal upside down, you'd get very good at that too. Eventually you might get nostalgic for it.
https://wiki.osdev.org/VGA_Fonts
http://reboot.pro/topic/19076-grub4dos-menu-font-type/
I've made upscaled versions for high-density displays and a truetype version, with contributed postscript: http://sciops.net/downloads/vga/
http://pelulamu.net/unscii/
If the Fontstruct thing is better or easier, the author might benefit from a pointer to it.
Also it was mentioned that the https://int10h.org site has its own article on the method they used, but I can't find the link now.
https://github.com/Swordfish90/cool-retro-term
Sorry for the music in this video, but cool-retro-term really is a thing of beauty:
https://www.youtube.com/watch?v=jWx7REAQ2MY
Also iirc the authors went to some lengths to accurately simulate the effects of phosphor—which is also a topic in game emulation (in the spirit of https://pics.me.me/what-indie-developers-think-what-retro-ga...).
like real vector fonts, like those found in old arcade games like Omega Race
https://www.arcade-museum.com/game_detail.php?game_id=8920
it would look like this:
https://www.arcade-museum.com/images/118/1181242142159.png
Of course, it's not only the font, but the whole technology (analog devices have analog responses etc). But some looked really nice.
Is there any resource with non-PC terminal fonts?
It draws the eye and usually I get at least one person commenting on the nostalgia factor of the font, which means they will remember that part of the presentation.