8x19 Text Mode Font Origins
63 points
2 days ago
| 6 comments
| os2museum.com
| HN
masfuerte
7 hours ago
[-]
This article [1] has a little more information about the font. Supposedly it first appeared in "Intel's Hi-Flex BIOS".

The source for the font appears here [2] with an Intel copyright.

[1]: https://wiki.softhistory.org/wiki/PhoenixBIOS_4.0_Release_6....

[2]: https://github.com/tianocore/edk2-codereview/blob/0a5f23c06d...

reply
ronsor
1 hour ago
[-]
Important reminder that bitmap fonts are not copyrightable in the United States of America.
reply
masfuerte
1 hour ago
[-]
It's more complicated in the UK but font-related copyrights "only" last for 25 years, so 1990s fonts are well clear now.
reply
michalpleban
10 hours ago
[-]
Something I was wondering while reading the article: why? Why would you create a 8x19 font if you already have a 8x16 don't? The answer is: so that you can use a standard 640x480 VGA resolution instead of of 640x400 to display 25 lines of text.
reply
jefftk
8 hours ago
[-]
I'm still confused: why not stick with 8x16 and go from 25 to 30 lines of text? Is it that you need to support both 640x480 and 640x400?
reply
spogbiper
7 hours ago
[-]
There was a long legacy of using 80x25 and lots of software that would assume this layout. I think that comes from an even older legacy of dumb terminals such as the VT100 that used 80x24 plus one line for a status line. BTW 80 columns comes from an even older legacy of IBM punch cards having 80 columns. Basically, anything that wasn't 80x25 was going to break a lot of things
reply
f1shy
6 hours ago
[-]
And the 80 columns come (losely) from a still older standard in typography, of about 70 characters per line, found empirically as a good size for a line. Even today is good design practice in UI, Web and books to stick to 60 to 80 CPL.
reply
aardvark179
4 hours ago
[-]
The reason for it in terminals is much more directly linked to the IBM punched card format.
reply
michalpleban
7 hours ago
[-]
Because 80x25 uses 4kB of RAM (one byte for character + another byte for attributes) whereas 80x30 would grow beyond 4kB so you would need 8kB. Maybe not a big deal in a VGA card, but everything was standardized on 80x25 from the olden days of MDA/CGA which had little video memory, so a lot of software expected that.

Plus, making the characters shorter would make them also a bit less legible.

reply
f1shy
6 hours ago
[-]
And maybe cost also? Not sure, but back in the days maybe 4kB more would have a noticeable (albeit I do not think extrem) effect on final price.
reply
michalpleban
5 hours ago
[-]
Not in the days when these BIOSes were written, but in the early eighties, yes; the original IBM MDA card had only 4kB memory (enough for just one screen of text) because memory was expensive. So sticking to 80x25 was kind of important back then.
reply
p1necone
1 hour ago
[-]
> Is it that you need to support both 640x480 and 640x400

Probably.

A lot of software back then was rendering UIs with box drawing characters, doing complicated layout etc - it's probably much easier to retrofit existing software to output the exact same thing in a slightly higher resolution font than to make the display logic support different resolutions properly.

reply
JdeBP
5 hours ago
[-]
For the execution environment in which firmware SETUP ran, there were often hardwired assumptions, particularly in the parts of SETUP that provide full-screen TUIs with menus and entryfields and pop-up help boxes and whatnot, that the screen was 25 rows high.

Also remember that SETUP as a whole was often a mess of different ROM programs from different manufacturers. Far too many thought it their own ROM's business to clear the display and set text mode before they splashed their copyright strings, prompts, self-test, and hardware auto-detection information up.

Yes, they could have done things properly. The way to detect an existing screen size was there from the VGA onwards. And they could have left the display uncleared. And the whole preserve-my-graphical-splash-screen thing eventually did happen.

They did not.

reply
0points
4 hours ago
[-]
Because standard.

There was also small .com utils circulating that would change to a tiny font so you could have 40, 50 rows of text with tiny fonts, or maybe even more.

reply
fredoralive
9 hours ago
[-]
Of course that asks the question of why use the graphics mode for text, which I would suspect was simply to show the seemingly obligatory Energy Star logo, but these Intel boards don’t have it.
reply
martijnvds
8 hours ago
[-]
The Energy Star logo tended to be made up of custom characters in text mode.

https://www.youtube.com/watch?v=uAHGKanqO6s

reply
pwdisswordfishz
5 hours ago
[-]
Later versions used true bitmaps, though.

http://fileformats.archiveteam.org/wiki/Award_BIOS_logo

reply
michalpleban
9 hours ago
[-]
It's not a graphics mode. It is just a resolution from the graphics mode, repurposed for the text mode. The reason possibly being the 640x480 resolution is universally supported while 720x400 is not - for example my HDMI TV can still display 640x480.
reply
bananaboy
9 hours ago
[-]
This apparently was a text mode not a graphics mode. It would have been a tweaked text mode since the standard mode 3 text mode that you can set via int 10h is 720x400.

The energy star logo was also displayed in text modes - by using custom font glyphs!

reply
EvanAnderson
2 hours ago
[-]
Aside: Going down the "memory lane" of Intel motherboard codenames was fun. Tuscon II, Anchorage, Atlanta, Seattle, Maui, etc.

I really enjoyed Intel's desktop boards. They weren't particularly flashy, and there were certainly "duds" in there (early MU440EX revs not handling Pentium II CPUs properly, the whole RAMBUS debacle) but in general Intel made a solid (and not at all flashy) board.

With Intel's manufacturing competency you could be assured every board would be consistent. If there was a defect (I'm looking at you, MTH in the 820 chipset) every board would consistently have the same defect.

reply
phalanx104
2 hours ago
[-]
0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 1,1,1,1,1,0,0,0, 0,0,0,0,0,0,0,0, 0,1,1,0,1,1,0,0, 0,0,0,0,0,0,0,0, 0,1,1,0,0,1,1,0, 1,1,0,0,0,1,1,0, 0,1,1,0,0,1,1,0, 0,1,1,0,1,1,0,0, 0,1,1,0,0,1,1,0, 0,0,1,1,1,0,0,0, 0,1,1,0,0,1,1,0, 0,0,1,1,1,0,0,0, 0,1,1,0,0,1,1,0, 0,1,1,0,1,1,0,0, 0,1,1,0,0,1,1,0, 0,1,1,0,1,1,0,0, 0,1,1,0,0,1,1,0, 1,1,0,0,0,1,1,0, 0,1,1,0,0,1,1,0, 1,1,0,0,0,1,1,0, 0,1,1,0,1,1,1,0, 0,0,0,0,0,0,0,0, 1,1,1,1,1,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,
reply
wpollock
6 minutes ago
[-]
HN is family friendly. Please don't use such language!
reply
Aardwolf
7 hours ago
[-]
There are many aspect ratios of fixed width fonts (see https://int10h.org/oldschool-pc-fonts/fontlist/), from square to rectangular, and this one is more than twice as tall as wide

Is there any info or research on which width/height ratio of a fixed width font is the best for readability?

reply
duskwuff
3 hours ago
[-]
Don't forget that a lot of old PC graphics modes weren't 1:1. 640x200 was a thing, for example - the pixel ratio is 3.2:1, but it gets vertically stretched to a standard 4:3. An 8x8 font wouldn't look square in that graphics mode.
reply
ape4
7 hours ago
[-]
I am oddly happy that there's an OS/2 museum
reply