VOGONS


BIOS font legal status

Topic actions

First post, by Sol_HSA

User metadata
Rank Member
Rank
Member

I've been trying to figure this one out, and I wonder if someone has any insight. The font is in use basically everywhere, so it's unlikely anyone would start suing random people, but anyway..

If anyone owns the copyright, it's probably IBM from 1981 or so, but the font itself may be (much) older than that.

One source I found (chromium OS sources through google code search) claims it's public domain..

I remember having one VGA which had a subtly different BIOS font, and the only reason that I can think of is that they were afraid of copyrights or some such.

Yet another possibility is that the font is actually part of some public standard.

Ideas?

http://iki.fi/sol - my schtuphh

Reply 1 of 47, by VileR

User metadata
Rank l33t
Rank
l33t

As far as I know, the Hercules card (1982) had a ROM character set identical to IBM's MDA, and Hercules was pretty big in the marketplace for a while. If the font was proprietary, they would've gotten their asses handed to them but that didn't happen.... IBM pursued an open architecture for everything on the PC except for the copyrighted system BIOS (which didn't include the character ROM on the display card).

As for VGA, that one was introduced with the PS/2 which actually had a proprietary architecture, but I'm pretty sure that this only applied to the MCA bus design.

I'm simply curious about where those character sets originated... it's possible that they could be traced back to older '70s IBM terminals or something.

Speaking of "subtle differences": the 8x8 font used by DOSBox in CGA mode is not identical to the original IBM CGA character set - it appears to be the one from EGA/VGA ;)

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 2 of 47, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

dosbox is font is a public domain font and not the ibm font, which is as far as I know still copyrighted

Water flows down the stream
How to ask questions the smart way!

Reply 3 of 47, by Zup

User metadata
Rank Oldbie
Rank
Oldbie

Also, I guess that BIOS distributed with Bochs or qemu are freely available (but I haven't seen the license), so you could extract the font from there.

Also, there may be a number of BIOS released on public domain (from older hardware manufacturers).

I have traveled across the universe and through the years to find Her.
Sometimes going all the way is just a start...

I'm selling some stuff!

Reply 4 of 47, by VileR

User metadata
Rank l33t
Rank
l33t

The DOSBox charset seems identical to reliable IBM EGA/VGA dumps, but now that I've looked, it seems that the IBM fonts are not covered by copyright :)

Bochs sourced their character sets from a compilation of public domain fonts (fntcol16 by Yossi Gil, I often see it in various places). It contains actual VGA dumps, and includes some citations showing that plain bitmap fonts aren't copyrightable. [details here]

Guess that would answer the OP.

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 5 of 47, by emendelson

User metadata
Rank Oldbie
Rank
Oldbie

Agreed: as far as I understand it (and I've been writing about this for years) screen font designs can't be copyrighted, and the IBM MDA and VGA fonts are in common use in DOSEMU, the old Hercules cards, and in all Matrox, Tseng, S3, and Nvidia hardware and ATI's laptop video hardware. (ATI desktop cards use a different screen font.) Of course, I'm not a lawyer, and I don't expect the devs to change their policies because some guy with no authority writes something on a message board, I do think this is really the legal situation.

Reply 6 of 47, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

@villa. the 0.74 build ? or ykhwongs build ? as the latter changes the font to the ibm font

Water flows down the stream
How to ask questions the smart way!

Reply 7 of 47, by emendelson

User metadata
Rank Oldbie
Rank
Oldbie

If anyone's interested interested, the IBM screen fonts (for all standard code pages) are available here:

ftp://ftp.software.ibm.com/ps/products/dos/fi … os7.0/year2000/

Download one of the EXE files; extract the files in it; run DOSUPDAT.EXE to extract the EGA.CPI file which contains the font data.

Then you can use Matthias Paul's CPI utility to decompile the CPI file. The CPI utility is here:

http://www.columbia.edu/~em36/wpdos/MatthiasPaulCPI.zip

Reply 9 of 47, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

DOSBox's built-in fonts (8, 14, and 16 line) are bit-for-bit identical to the ones in the IBM VGA BIOS, although they may have come from another source. One slight difference is that the 16-line font always has the 9-dot wide alternate characters whether the display is 8-dots or 9-dots per character. In 640x400 text mode, the wide characters like M and W don't have gaps between them, but they do have gaps in 720x400 (machine=vgaonly). Ideally, the 8-dot wide patterns would be loaded and the wide alternates applied only for a 9-dot character display, that's what real video BIOSes do.

I don't know where the 16-line font in ykhwong's build comes from, but the slashed zero makes it easy to tell it's not the IBM font.

Reply 10 of 47, by VileR

User metadata
Rank l33t
Rank
l33t

To pass the time I've been working on a little project of creating .TTF versions of all those rom fonts, MDA through VGA, including the different width/height variants. Mostly just for the hell of it, though they might prove useful. (FON/bitmap fonts are easier, but they're kinda limited in support and usability... also, encodings are a major pain in the nards)

The aforementioned collections from Yossi Gil (FNTCOL1x) feature a few 8x19 charset dumps... does anyone know what's the story with 19-line fonts?

A character height of 19 pixels gives 25 rows in modes w/480 vertical pixels (as opposed to the VGA-standard 400), so I guess that's what they're meant for. Many ultra-modern cards lack a true 400-line mode, so I often see these fonts used in full-screen text mode, even as the default mode upon booting.

But were they ever present on IBM hardware? or any early VGA cards at all?

According to the info file these fonts were collected in 1993, and the source is "AST Premium Exec DOS 5.00", which does little to answer that.
Here's a screenshot (using codepage 437):

XtzqR.png

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 11 of 47, by leileilol

User metadata
Rank l33t++
Rank
l33t++
VileRancour wrote:

Mostly just for the hell of it, though they might prove useful.

They would, because "Perfect DOS VGA" is unstable to use and "Virtual Terminal Screen" is just weird

apsosig.png
long live PCem

Reply 12 of 47, by VileR

User metadata
Rank l33t
Rank
l33t

"Perfect DOS VGA" is pretty good I think, though you need to pick an encoding variant.
Some of the characters aren't that "perfect" though 😁 (cue "I can tell by some of the pixels" image macro)

Encoding is bound to be a problem. I could try making them unicode by mixing and matching chars from different codepages, but that's gonna be some real next-level punishment.

Aspect ratio is also a pain, MDA/Herc gets squashed to hell on square pixel displays... actually 8x19 is the only size that really looks "right" with square pixels (that's why I was getting all curious about that font up there).

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 13 of 47, by MestreLion

User metadata
Rank Newbie
Rank
Newbie

Sorry about the ubber necro, but I've ported DOS Rogue to Linux/Mac/BSD, so I'm really interested about VGA fonts, and this topic has many treasures and answers...

VileRancour wrote:

To pass the time I've been working on a little project of creating .TTF versions of all those rom fonts, MDA through VGA, including the different width/height variants. Mostly just for the hell of it, though they might prove useful.

They would surely be very valuable to me!

I'm currently using "Perfect DOS VGA", as this was the *only* TTF font I could find on the internet that strives (not sure if it achieves) pixel fidelity. But it required a *lot* of work (remapping CP437 glyphs to their proper Unicode code points, etc), so it would be awesome if I could compare it with your TTF fonts (and perhaps stop reinventing the wheel) 😀

Also, legal status of "Perfect DOS VGA 437" is debatable, so if you could license your TTF to me with GPL/BSD/MIT/CC I would gladly include it in my project, with full credit of course (the project will be released as GPLv3+)

leileilol wrote:

They would, because "Perfect DOS VGA" is unstable to use

Care to elaborate on that? What do you mean by "unstable to use"?

VileRancour wrote:

Some of the characters aren't that "perfect" though 😁 (cue "I can tell by some of the pixels" image macro)

Which ones? The discrepancies I've found so far, comparing with CP437.F16 extracted from IBM's 2K update emendelson suggested, were:
- 0x0E (U+266B, musical note dbl ), the left beam is 1px shorter
- 0x98 (U+00FF, small y with diaeresis ), the lower curve is 1px narrow

VileRancour wrote:

Encoding is bound to be a problem. I could try making them unicode by mixing and matching chars from different codepages, but that's gonna be some real next-level punishment.

That's what I did, for CP437 only: mapped each one of the 255 chars to their proper Unicode codepoints listed in https://en.wikipedia.org/wiki/Code_page_437 . Next-level punishment indeed 😀

VileRancour wrote:

8x19 is the only size that really looks "right" with square pixels

I'm interested in 8x16, just like what DOSBox uses for svga_s3. It does not simulate the 9th pixel colum, and IMHO it looks nice on square-pixel LCDs. Of course, I could just be too much used to DOSBox 😜

ripsaw8080 wrote:

DOSBox's built-in fonts (8, 14, and 16 line) are bit-for-bit identical to the ones in the IBM VGA BIOS, although they may have come from another source.

Humm, not really bit-for-bit identical. I've found at least 1 discrepancy when comparing with CP437.F16 from IBM:

- 0xE7 (U+03C4, greek small letter tau), DOSBox font is 1 px shorter

Is DOSBox font intended to be bit-to-bit identical to IBM's? If so, should I send a patch for 0xE7?

Reply 14 of 47, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author
MestreLion wrote:
ripsaw8080 wrote:

DOSBox's built-in fonts (8, 14, and 16 line) are bit-for-bit identical to the ones in the IBM VGA BIOS, although they may have come from another source.

Humm, not really bit-for-bit identical. I've found at least 1 discrepancy when comparing with CP437.F16 from IBM:

- 0xE7 (U+03C4, greek small letter tau), DOSBox font is 1 px shorter

If you read my comment carefully, the comparison is with the fonts in the IBM VGA BIOS, not what you compare with.

Anyway, DOS Rogue was first released in 1983, so wouldn't MDA and CGA fonts be more apropos? 😉

Reply 15 of 47, by MestreLion

User metadata
Rank Newbie
Rank
Newbie

After a closer look I could find a dozen more glyphs that are different betwwen DOSBox built-in font and the one in EGA.CPI from IBM's download, including 0, Ç, É, `, ²

So I wonder... are glyphs from IBM 2K package different than it's own original VGA BIOS? I thought the update was just to include the Euro sign, but perhaps they also changed other glyphs?

Reply 16 of 47, by MestreLion

User metadata
Rank Newbie
Rank
Newbie
ripsaw8080 wrote:

Anyway, DOS Rogue was first released in 1983, so wouldn't MDA and CGA fonts be more apropos? 😉

You're correct, a CGA font would be more faithful to how the game was *developed*. But Rogue lived a long life, when I played it as a kid it was already on a VGA PC, and I guess this was also the case for many players. And quite a few have only played it in DOSBox, which is svga_s3 (8x16) by default. Even the screenshots in Wikipedia's Rogue article is using VGA fonts! 😀

Not to mention Rogue in CGA looks awful 😜

But you're right, for the sake of completeness I should also include a CGA TTF font in the project... but I couldn't find any TTF comparable to "Perfect DOS VGA" (tho I admit I didnt search very hard for one...)

ripsaw8080 wrote:

If you read my comment carefully, the comparison is with the fonts in the IBM VGA BIOS, not what you compare with.

So what is the current status in DOSBox? The built-in font matches original IBM VGA ROM, and the IBM 2K update contains different glyphs? As Qbix said in this thread that "dosbox is font is a public domain font and not the ibm font", now I'm confused...

Reply 17 of 47, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I don't know where the internal fonts in DOSBox were sourced from, but Qbix may; and that source could have copied IBM.

Whether one finds the CGA font ugly or not is subjective. In case you aren't aware, Rogue will display in 40 or 80 columns depending on mode 1 or mode 3 being active when the game is started -- and I think the CGA font is better suited to 40 columns than the VGA font.

Reply 18 of 47, by MestreLion

User metadata
Rank Newbie
Rank
Newbie
ripsaw8080 wrote:

I don't know where the internal fonts in DOSBox were sourced from, but Qbix may; and that source could have copied IBM.

While testing fonts and codepages, I've just found a weird behavior, not sure if intentional or bug: If I start DosBox with `keyb=none` in my `.conf` file, I get a given font (let's call it "startup" font). After switching to a different codepage (say, using `keyb none 850` command on prompt) I'm unable to revert to the original font: `keyb none 437` reverts the codepage, but glyphs are not the same as when DosBox started! And that font *does* match the IBM 2K fonts (which also matches the Wikipedia code Page 437 article screenshot)

So does that mean Dosbox have 2 distinct fonts for CP437? Is it possible to revert to the "startup" ("builtin"?) font after loading a different codepage?

Reply 19 of 47, by MestreLion

User metadata
Rank Newbie
Rank
Newbie
ripsaw8080 wrote:

Whether one finds the CGA font ugly or not is subjective. In case you aren't aware, Rogue will display in 40 or 80 columns depending on mode 1 or mode 3 being active when the game is started -- and I think the CGA font is better suited to 40 columns than the VGA font.

True, this is subjective... I will gladly include a CGA True Type font in the project if I get one... do you know or have any?

As for being aware of the 40-column mode, yes, I am... actually, having ported the game from 83' 16-bit DOS to 2015 32/64-bit POSIX, I've *had* to be aware of that and all other platform-dependent things in Rogue, including the many assembly files, which I "translated" to C and documented as best as I could. I'm also trying to preserve all modes such as the DEMO mode and the "Software Pirate killed by the Copy Protection Mafia", as well as true underline for mode 7.