Fonts in the ROM of IBM's Display Adapters

I am interested to know what is contained in IBM's display adapter's
ROMs.  More specifically, IBM released 4 major display adapters that
were widely cloned, the MDA, the CGA, the EGA, and the VGA.  Each
adapter has its own cell sizes in its text modes:
MDA:  9x14
CGA:  8x8
EGA:  8x14
MCGA: 8x16
VGA:  9x16

The EGA supports the text modes of CGA and MDA, the MCGA supports EGA,
CGA, and MDA, the VGA supports MCGA, EGA, CGA, and MDA.  This means
that up to five fonts need to be stored in the VGA's BIOS ROM.

As for the first two cards, MDA and CGA, I have heard that they use
the same font.  This I cannot believe because CGA fonts look squashed
due to their text modes' cell size and the MDA was supposed to improve
on this with a larger cell size.  The (IBM) CGA has two fonts, a
single dot font (5x7) and a double dot font (7x7), selected by a dip
switch on the card.  I doubt the single dot font was ever seen after
the CGA card.

Also, the PC BIOS also had bitmap patterns of some characters, the
standard 128 ASCII characters in a 7x7 font size.  This is the double
dot font normally used in CGA text modes.  So, the 4KB of character
ROM in a CGA card contains 512 characters, 256 patterns each for the
single and double dot fonts.  I suppose the duplication in the BIOS of
the lower 128 double dot font ASCII patterns was to standardize the
display for non-IBM display adapters.

As for the later fonts, cards often like to shed a few.  But an IBM
VGA card should have fonts in its ROM for the 8x14, the 8x16, the 8x8,
and the 9x16 (the default) cell sizes, since the VGA BIOS lists all of
them.  Perhaps IBM used the same font for the 9x14 and 9x16 cell sizes
because they use the same mode?

So, how many unique fonts did IBM use for its early graphic adapters?
0
great_hierophant
8/7/2003 8:16:32 AM
comp.fonts 4610 articles. 0 followers. margulisd (51) is leader. Post Follow

2 Replies
1310 Views

Similar Articles

[PageSpeed] 28

great_hierophant@hotmail.com (Great Hierophant) wrote in message news:<9745d197.0308070016.49237366@posting.google.com>...
> I am interested to know what is contained in IBM's display adapter's
> ROMs.  More specifically, IBM released 4 major display adapters that
> were widely cloned, the MDA, the CGA, the EGA, and the VGA.  Each
> adapter has its own cell sizes in its text modes:
> MDA:  9x14
> CGA:  8x8
> EGA:  8x14
> MCGA: 8x16
> VGA:  9x16
> 
> The EGA supports the text modes of CGA and MDA, the MCGA supports EGA,
> CGA, and MDA, the VGA supports MCGA, EGA, CGA, and MDA.  This means
> that up to five fonts need to be stored in the VGA's BIOS ROM.
> 
> As for the first two cards, MDA and CGA, I have heard that they use
> the same font.  This I cannot believe because CGA fonts look squashed
> due to their text modes' cell size and the MDA was supposed to improve
> on this with a larger cell size.  The (IBM) CGA has two fonts, a
> single dot font (5x7) and a double dot font (7x7), selected by a dip
> switch on the card.  I doubt the single dot font was ever seen after
> the CGA card.
> 
> Also, the PC BIOS also had bitmap patterns of some characters, the
> standard 128 ASCII characters in a 7x7 font size.  This is the double
> dot font normally used in CGA text modes.  So, the 4KB of character
> ROM in a CGA card contains 512 characters, 256 patterns each for the
> single and double dot fonts.  I suppose the duplication in the BIOS of
> the lower 128 double dot font ASCII patterns was to standardize the
> display for non-IBM display adapters.

The MDA and CGA cards do not use the same font.  I have confirmed this
by looking at their character roms.  The MDA uses a 7x9 font, with
each character formed by 16 bytes.  The first 8 bytes specify the top
8 lines of the letter.  The second 8 bytes specify the bottom 6 lines,
with an unused byte and an identifier byte.  The first half of the
character is stored in the first 2KB of the ROM, the last half is
stored in the last 2KB of the ROM.  The letter "A", ASCII 41h, looks
like this:

208h,A08h MDA 7X9
00000000 00
00000000 00
00001000 08
00011100 1C
00110110 36
01100011 63
01100011 63
01111111 7F
01100011 63
01100011 63
01100011 63
00000000 00
00000000 00
00000000 00
00000000 00- undisplayed
01000001 41- unused

For the CGA character set, there are two character sets.  The first
set is located in the first 2KB of the ROM, the second set in the last
2KB of the ROM.  The first set is the double dot 7x7 font, the second
set the single dot 5x7 font.  Here is a sample of each:

208 CGA 7x7 (double dot)
00110000 30
01111000 78
11001100 CC
11001100 CC
11111100 FC
11001100 CC
11001100 CC
00000000 00

A08 CGA 5X7 (single dot)
00100000 20
01010000 50
10001000 88
10001000 88
11111000 F8
10001000 88
10001000 88
00000000 00

I think the double dot CGA font was more popular and widely used. 
Now, all I have to do is to find out about the EGA, MCGA, and VGA
fonts.

GH
0
great_hierophant
8/8/2003 12:22:45 AM
great_hierophant@hotmail.com (Great Hierophant) wrote in message news:<9745d197.0308071622.1599fefe@posting.google.com>...
> great_hierophant@hotmail.com (Great Hierophant) wrote in message news:<9745d197.0308070016.49237366@posting.google.com>...
> > I am interested to know what is contained in IBM's display adapter's
> > ROMs.  More specifically, IBM released 4 major display adapters that
> > were widely cloned, the MDA, the CGA, the EGA, and the VGA.  Each
> > adapter has its own cell sizes in its text modes:
> > MDA:  9x14
> > CGA:  8x8
> > EGA:  8x14
> > MCGA: 8x16
> > VGA:  9x16
> > 
> > The EGA supports the text modes of CGA and MDA, the MCGA supports EGA,
> > CGA, and MDA, the VGA supports MCGA, EGA, CGA, and MDA.  This means
> > that up to five fonts need to be stored in the VGA's BIOS ROM.
> > 
> > As for the first two cards, MDA and CGA, I have heard that they use
> > the same font.  This I cannot believe because CGA fonts look squashed
> > due to their text modes' cell size and the MDA was supposed to improve
> > on this with a larger cell size.  The (IBM) CGA has two fonts, a
> > single dot font (5x7) and a double dot font (7x7), selected by a dip
> > switch on the card.  I doubt the single dot font was ever seen after
> > the CGA card.
> > 
> > Also, the PC BIOS also had bitmap patterns of some characters, the
> > standard 128 ASCII characters in a 7x7 font size.  This is the double
> > dot font normally used in CGA text modes.  So, the 4KB of character
> > ROM in a CGA card contains 512 characters, 256 patterns each for the
> > single and double dot fonts.  I suppose the duplication in the BIOS of
> > the lower 128 double dot font ASCII patterns was to standardize the
> > display for non-IBM display adapters.
> 
> The MDA and CGA cards do not use the same font.  I have confirmed this
> by looking at their character roms.  The MDA uses a 7x9 font, with
> each character formed by 16 bytes.  The first 8 bytes specify the top
> 8 lines of the letter.  The second 8 bytes specify the bottom 6 lines,
> with an unused byte and an identifier byte.  The first half of the
> character is stored in the first 2KB of the ROM, the last half is
> stored in the last 2KB of the ROM.  The letter "A", ASCII 41h, looks
> like this:
> 
> 208h,A08h MDA 7X9
> 00000000 00
> 00000000 00
> 00001000 08
> 00011100 1C
> 00110110 36
> 01100011 63
> 01100011 63
> 01111111 7F
> 01100011 63
> 01100011 63
> 01100011 63
> 00000000 00
> 00000000 00
> 00000000 00
> 00000000 00- undisplayed
> 01000001 41- unused
> 
> For the CGA character set, there are two character sets.  The first
> set is located in the first 2KB of the ROM, the second set in the last
> 2KB of the ROM.  The first set is the double dot 7x7 font, the second
> set the single dot 5x7 font.  Here is a sample of each:
> 
> 208 CGA 7x7 (double dot)
> 00110000 30
> 01111000 78
> 11001100 CC
> 11001100 CC
> 11111100 FC
> 11001100 CC
> 11001100 CC
> 00000000 00
> 
> A08 CGA 5X7 (single dot)
> 00100000 20
> 01010000 50
> 10001000 88
> 10001000 88
> 11111000 F8
> 10001000 88
> 10001000 88
> 00000000 00
> 
> I think the double dot CGA font was more popular and widely used. 
> Now, all I have to do is to find out about the EGA, MCGA, and VGA
> fonts.
> 
> GH

Here is the skinny on the later fonts.  The EGA uses the same font as
the MDA.  The MCGA and VGA use the same new font, with letters in a
7x10 matrix.  These letters are extremely close to the MDA/EGA fonts,
usually with an extra line added to each letter.  (MDA/EGA usually
adds an extra two lines to each CGA letter.)  If the column width is 8
pixels, the letter will look normal.  If the width is 9 pixels, then
the extra pixel column will duplicate whatever is in the 8th pixel
column.

GH
0
great_hierophant
8/12/2003 1:11:57 AM
Reply: