The following flags and arguments are interpreted by :
num clk wid hi dep hbs hss hse ht vbs vss vse vt flags
------------------------------------------------------
| ^ |
| vse |
| (0,0) |
| *----------------------------------- |
| | ^ ^ | |
| | vbe ! | |
| | ! | |
| | ! | |
|<-hse |<-hbe ! |<-hbs | | |
| | ! | hss->| hse->| hbe->|
| | hi | | | |
| | ! | |
| | ! | |
| |<============ wid =========+=====>| |
| | ! | |
| | ! | |
| | ! | |
| | v | |
| ------------------------------------ |
| ^ |
| vbs |
| |
------------------------------------------------------
^
vss
- ------- -
^
vse
- ------- -
^
vbe
The mode definition file changed two times.
In NetBSD1.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 NetBSD1.1 and NetBSD1.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 NetBSD1.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.
/dev/grf1
,
/dev/grf2
and
/dev/grf4
and it will not work for
/dev/grf0
.