I remember using a wysiwyg print program called Fontasy for CGI graphics in DOS because of a lack of standardized graphics fonts. Companies were selling "font packs" for other type fonts. Prior to Win 3.1 releasing TrueType fonts it seems everybody was shipping proprietary fonts with their programs and I don't recall any way to copy or steal them.

How & where did DOS store graphics fonts that were used by word processors and custom print programs? (Excludes the custom fonts stored in dot matrix printer memory)

  • 1
    I remember that program! One of the key things, if I remember correctly, was the Hercules Graphics Card. With the HGC, programs could do whatever they wanted with a (for the time) high resolution display, including fonts of any size/type. As noted by others, the best you could do within DOS text mode is the standard character size of a given display. That could let you create a foreign language font but it wouldn't help for extra large or small fonts. – manassehkatz Feb 4 at 15:48
up vote 35 down vote accepted

Fonts for text rendered to the screen or paper in a graphics mode would simply be data shipped with the application. If this was perceived to be non-copy-able, it is likely because it was not (obviously) in a standard font format, and perhaps intentionally obfuscated.

It is also worth noting that VGA cards permitted relocating the text mode character generator tables to RAM, at which point you could upload a fully custom character set or copy the ROM table out to RAM and make only small modifications rather than having to start from scratch. However this would be limited to a smaller range of sizes and to fixed width characters, unlike true WYSIWYG rendering of arbitrary size and proportional spacing fonts as you might find in a "Desktop Publishing" program as distinct from the "Word Processing" software of the day.

The ultimate answer to where did DOS store them, is that for anything unique, DOS didn't - applications or their chosen libraries did, each in its own way.

  • 2
    I recall having to "search" for a ROM based font table in order to make a copy of one. The EGA/VGA BIOS included calls to set number of text lines on a screen to 25, 43, or 50 (in some cases 40, but I don't think many cards supported 40). For the fonts that are uploaded into RAM, I still have a "thin" font used for 50 line mode, and an APL font for 25 line mode. These still work in MSDOS on a virtual PC. – rcgldr Feb 4 at 22:49

DOS knows nothing about graphics fonts (mostly: it supports different display fonts which can be loaded using CHCP to change the display's code page, and some other minor details.) It was up to each program to come up with their own method of sending text and images to the printer, generally with the help of a printer driver that contained font metrics for each supported typeface, size and style to help with formatting.

Every program had their own methods for using fonts. Some relied on the fonts in the printer, some had bitmap fonts for each size and DPI combination, and others used scalable fonts (vector, outline, or some other form); many programs used some or all of these methods (Windows still supports all three of these methods too, so DOS programs were not alone with this.) These "soft fonts" were tightly bound to the program, so the format was generally whatever best fit the program: font sharing between programs was not important, nor was it particularly encouraged.

Because there was no standardized format for fonts, there was little need to support standardized locations either. Some programs will have a separate directory for fonts, while others will put the fonts in the same directory as the main program. Programs which supported PostScript or PCL 5 might have an option to specify where additional fonts are located.

TL;DR: Every program was different, and even if you did copy a font from one program to another, it likely wouldn't work because they didn't use the same format (except possibly for PostScript fonts.)

DOS itself did not manage them. Development environments used to ship with libraries that could support graphics modes, some with built-in font support. Some had vector fonts, some just blitted a dot matrix, favorably 8 pixels wide so one byte could encode one monochrome character scan line. The operating system contributed little to nothing. A popular example was the BGI.

Font packs were included with the compiler, additional fonts could be purchased. Applications either had to ship the CHR files along with the executable, or embed them as resources.

Fontasy also used a vendor-defined format, their files had the FY file extension for regular fonts, FYB files for bold variants, and FYI files for italics.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.