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].
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?"
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.
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.
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.
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.
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.
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.
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)));
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;
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.
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.
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.
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.
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).
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?
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)
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.
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.
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.
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).
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.
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?
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.
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.
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