---
name: "restorefont"
section: "1vga"
platform: "linux"
package: "svgalib-bin"
version: "1:1.4.3-7"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/restorefont/1vga"
---

# restorefont(1vga)

save or restore the SVGA font for textmode.

## NAME

restorefont - save or restore the SVGA font for textmode.

## SYNOPSIS

**restorefont {-r\|-w}** *filename*

## DESCRIPTION

The font used by SVGA when in textmode is written to or restored from *filename* using the [**vga\_gettextfont**(3)](/vga_gettextfont/3.md) and  [**vga\_puttextfont**(3)](/vga_puttextfont/3.md) functions.

## FILE FORMAT

The VGA font file *filename* has the following format:

**Offset:**\
    **0 -   31**  Character 0\
     **...**          ...\
 **8164 - 8195**  Character 255

Each row of a character bitmap is stored as a byte (8 pixels). The space that is left from the 32-byte buffer for each character is ignored, e.g. a 16 line font uses only offsets 0 - 15 of each character.

Linux textmode screen resolutions:

**80x25**    16 line font  400 scanlines\
 **80x28**    14 line font  400 scanlines\
 **80x50**     8 line font  400 scanlines

The font sizes and resolutions of extended textmodes depend on the video card type and BIOS:

**132x25**   14 line font  350 scanlines (ugly)\
 **132x25**   16 line font  400 scanlines\
 **132x43**    8 line font  350 scanlines (use fix132x43 to fix/improve)\
 **132x50**    8 line font  400 scanlines\

Using a font that has less lines per character than the textmode works, but the characters are smaller. Using a font that is bigger than the textmode font results in the bottom part of characters being cut off.

The svgalib distribution contains sample fonts with 8, 14 and 16 line characters in the files *utils/font8*, *utils/font14*, and *utils/font16*.

The **convfont** (1) program can be used to convert fonts straightforwardly stored  character-after-character (i.e. each character only uses 8/14/whatever bytes), to the 32-byte per character format that **restorefont** requires.

The purpose of this program is usually to recover from a crashed console due to an svgalib, Xfree or other program bug. First save the state of the SVGA card when on a text console. After the crash restore this state. The [**savetextmode**(1)](/savetextmode/1.md) and [**textmode**(1)](/textmode/1.md) script makes this procedure very easy.

The national/fontpak packages, which include kernel patches, allow different textmode fonts to be used in different virtual consoles. These have been superseded by the kbd package (in the kernel since ages). See the [**setfont**(8)](/setfont/8.md) utility of the kbd package as a starting point.

Recent kernels support up to 2 fonts with 512 chars each. Recent versions of svgalib take this into account and extend the size of the datafile accordingly.

## OPTIONS

- **-w** *filename*

  write the font to the file *filename*.

- **-r** *filename*

  restore the font from the file *filename*.

## SEE ALSO

[**svgalib**(7)](/svgalib/7.md), [**vgagl**(7)](/vgagl/7.md), [**libvga.config**(5)](/libvga.config/5.md), [**setfont**(8)](/setfont/8.md), [**vga\_gettextfont**(3)](/vga_gettextfont/3.md), [**vga\_puttextfont**(3)](/vga_puttextfont/3.md), [**dumpreg**(1)](/dumpreg/1.md), **convfont**(1), **fix132x43**(1), [**restoretextmode**(1)](/restoretextmode/1.md), [**restorepalette**(1)](/restorepalette/1.md), **runx**(1), [**savetextmode**(1)](/savetextmode/1.md), **setmclk**(1), [**textmode**(1)](/textmode/1.md).

## AUTHOR

This manual page was edited by Michael Weller \<eowmob@exp-math.uni-essen.de\>. The exact source of the referenced utility as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer \<H.Hanemaayer@inter.nl.net\>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.
