GRFCONFIG(8)

NAME
grfconfig - alter grf device screen mode definitions at run time

SYNOPSIS
grfconfig [-r] device [file]

DESCRIPTION
grfconfig is used to change or view the screen mode definition list contained in a grf device. You may alter the console screen definition as well as the definitions for the graphic screen. The console will automatically reinitialize itself to the new screen mode.

The following flags and arguments are interpreted by grfconfig:

-r  Print out a raw listing of the mode definitions instead of the pretty list normally shown.

device
    The grf device to manipulate. This argument is required.

file
    The file which contains the mode definitions. If this argument is not specified, grfconfig will print out of a list of the modes currently loaded into the grf device.

MODE DEFINITION FILE
The mode definitions are taken from a file which has lines of the format:

num clk wid hi dep hbs hss hse ht vbs vss vse vt flags

num The mode number or 'c' for the console mode.

clk The pixel clock in Hz.

wid The screen mode's width.

hi  The screen mode's height.

dep The bitdepth of the mode. Use 4 for a text console mode.

hbs hss hse ht
    The horizontal timing parameters for the mode in pixel values. All the values are relative to the end of the horizontal blank (beginning of the displayed area).

vbs vss vse vt
    The vertical timing parameters for the mode in line values. All the values are relative to the end of vertical blank (beginning of the displayed area).

flags
    By default every mode uses negative horizontal and vertical sync pulses, it is non-interlaced and does not use scandoubling.

    default
        Use the default flags: -hsync -vsync

    doublescan
        Doublescan mode

    interlace
        Interlace mode

    +hsync
        Positive horizontal sync pulses

    -hsync
        Negative horizontal sync pulses

    +vsync
        Positive vertical sync pulses

    -vsync
        Negative vertical sync pulses

    sync-on-green
        Composite sync on green

     ------------------------------------------------------
     |                           ^                        |
     |                          vse                       |
     |      (0,0)                                         |
     |        *-----------------------------------        |
     |        |                  ^        ^      |        |
     |        |                 vbe       !      |        |
     |        |                           !      |        |
     |        |                           !      |        |
     |<-hse   |<-hbe                      !      |<-hbs   |      |      |
     |        |                           !      |   hss->| hse->| hbe->|
     |        |                          hi      |        |      |      |
     |        |                           !      |        |
     |        |                           !      |        |
     |        |<============ wid =========+=====>|        |
     |        |                           !      |        |
     |        |                           !      |        |
     |        |                           !      |        |
     |        |                           v      |        |
     |        ------------------------------------        |
     |                           ^                        |
     |                          vbs                       |
     |                                                    |
     ------------------------------------------------------
                                 ^
                                vss
                            - ------- -
                                 ^
                                vse
                            - ------- -
                                 ^
                                vbe

SEE ALSO
console(4), grfcl(4), grfcv(4), grfcv3d(4), grfet(4), grfrh(4), grfrt(4), grful(4), iteconfig(8)

HISTORY
The grfconfig command first appeared in NetBSD 1.0.

The mode definition file changed two times.

In NetBSD 1.0 all horizontal values were videoclock cycle values instead of pixel values:

num clk wid hi dep hbs hss hse hbe ht vbs vss vse vbe vt
1 31000000 640 480 8 80 86 96 102 104 480 489 492 517 520 2 31000000 640 480 8 80 86 96 102 104 240 244 246 258 260 3 31000000 640 480 8 80 86 96 102 104 960 978 984 1034 1040

In NetBSD 1.1 and NetBSD 1.2:

num clk wid hi dep hbs hss hse hbe ht vbs vss vse vbe vt
1 31000000 640 480 8 640 688 768 816 832 480 489 492 517 520 2 31000000 640 480 8 640 688 768 816 832 240 244 246 258 260 3 31000000 640 480 8 640 688 768 816 832 960 978 984 1034 1040

the vertical values were used to select the interlace or doublescan mode. All vertical values were half the width for the interlace mode and twice the width for the doublescan mode.

Beginning with NetBSD 1.3:

num clk wid hi dep hbs hss hse ht vbs vss vse vt flags
1 31000000 640 480 8 640 688 768 832 480 489 492 520 default 2 31000000 640 480 8 640 688 768 832 480 489 492 520 interlace 3 31000000 640 480 8 640 688 768 832 480 489 492 520 doublescan 4 31000000 640 480 8 640 688 768 832 480 489 492 520 +hsync +vsync

hbe and vbe are computed in the grf drivers.

BUGS
grfconfig can not set the modes for /dev/grf1, /dev/grf2 and /dev/grf4 and it will not work for /dev/grf0.