From: korni@moon.wupper.de (Lars Kornwinkel)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Ms-Dos font reprogramming.
Hello !
omard@blue.seas.upenn.edu wrote:
>I would like to change the fonts that the computer uses for dos.
At first you have to get access to the fontdata which is stored in the
videoram.
To do so you have to change regs in the sequencer controller and the
graphics controller.
Sequencer (port : 3C4H)
0100h (PortW[3C4h]:=$100)
0402h etc.
0704h
0300h
Grafics Ctrl (port : 3CEh)
0204h
0005h
0406h
You can now acces the font tables at segment A000h.
There are 8 different font tables available (4 on EGA), with these
offsets:
1. 0000h
2. 4000h
3. 8000h
4. C000h
5. 2000h
6. 6000h
7. A000h
8. E000h
Each table has a size of 32*256 byte, that's 32 byte/char and 256
chars.
Each byte of these table equals one line (a bit = one pixel)
The first byte of each table is the top line of char #0 of this table,
the 12th byte = line 12 of char #0
the 33th byte = top line of char #1 etc.
Every char consists of 32 lines no matter how many lines are displayd.
You can also display 2 of the 8 fonts at the same time.
To choose ehich font should by your first and which your second one
you have to do this
Sequencer (3C3h) Register 3
7 6 5 4 3 2 1 0 (bits of register)
B3 B2 B1 (bits use for font 1)
B3 B2 B1 (bits use for font 1)
B1 first bit of desired value (0-7)
B2 etc.
To wrtite with the first font you have to choose foreground colors
slmaller then 8 (that's because the highest bit of color is used to
select fonts).
Color>=8 second font
Before you can write text to the videoram you have to reset the
sequencer and graphx-ctrl to their old values (you cannot access the
font tables and the videoram at the same time)
Sequencer (port : 3C4H)
0100h
0302h
0304h
0300h
Grafics Ctrl (port : 3CEh)
0004h
1005h
0E06h
Hope that helps.
Lars
__________________________
(_) )
/ Lars Kornwinkel /
( (
\ korni@moon.wupper.de \
)________________________)