How many light bulbs does it take to change a penguin?

User Tools

Site Tools


Perfect Text Mode in VGA

Ever wondered why VGA text mode had at times, ugly looking text mode graphics? Most all VGA boards by default displayed text at a glyph size of 9×16 pixels, while remaining compatible with the earlier font size of EGA graphics at 8×14 pixels. While this added clarity to text by creating a higher resolution display, it was a compromise to keep compatibility with older hardware.

When designers took to increase the resolution of the VGA as compared to the earlier EGA standard, they had to come up with a new higher definition text mode as well. To do this, they increased the font height from 14 to 16 pixels to match the new higher resolution of the display while keeping the amount of rows and columns of text the same for compatibility. They needed to add a ninth column to increase the width, but this was impossible without breaking compatibility. So instead they decided to increase the width by adding a column that contained no font data in ROM, so in essence it was blank. In some cases, it did make sense to separate text with space to make it more readable, however it also made some text mode graphical applications, and especially ANSI art look weird. Here's an example of what a wall of 50% gradient characters looks like in VGA:

To correct for this, you can run a utility called Text Mode. It is a great freeware utility, which allows for programming your VGA adapter to display a wide variety of text modes.

To switch your VGA to run in 8×14 pixel mode, run TM as follows:

tm -f 14,2

To return back to normal VGA text mode, run TM as follows:

tm -f 16,3

For a list of all supported parameters, run

tm -?

With 8×14 text mode, we can see the improvement:

What's great about the utility, is that it's not a TSR - it doesn't use any memory on the computer as it only switches a couple of registers around and then closes. You can leave it in your AUTOEXEC.BAT file to always switch to this text mode when your computer starts. and still be able to enjoy nice quality text with no compromises.

This utility can also be handy to display ANSI art correctly, or with use with BBS's. You can also use it to switch to a nicer 40×25 column text, that mimics the original CGA adapter.


Text Mode by Jason Hood <>.
Version 1.02 (15 February, 2000). Freeware.

Usage: TM.EXE <cols>[x<rows>] -m[<mode>] ,<lines>
                       -c[<cols>] -r[<rows>] -f[<height|file>]
                       -p[<page>] -s[<attr>] -b[<border>] -d

cols  can be one of 40, 80 or 90
rows  ranges from 12 to 80
-m    uses BIOS to set a mode (in hexadecimal)
lines sets the scan lines to use: 1 to 4 = 200, 350, 400 or 480
-f    sets the font height (6 to 16) or loads a font from file
-p    will select a page (1 to, at most, 8)
-s    will save screen contents or clear screen to attr
-b    will set the border/frame/overscan color
-d    displays current columns, rows and font height
-w    will write all fonts or a particular height to file

Missing values will display the current value, unless -q is added.
Errorlevel is set to the last used (not the last displayed).


File Name Size Description Text Mode by Jason Hood v1.02 (15 February, 2000) 14KB This handy utility will allow you to customize your text mode by reprogramming the VGA board on your computer
guides/text_mode.txt · Last modified: 2020-08-28 23:13 by omolini