The following tables define the various parameters you need to configure or build a given mode for TV specifications.
Any combination of horizontal and vertical definitions can be used, even if it doesn't make sense :-)
If some of the data seems too technical, that's because it is. I will later give some application examples for Linux to illustrate. For other software, you need to find on that software a parameter with a name similar to what I give.
HDE - Horizontal Display End
SHB - Start Horizontal Blanking
SHR - Start Horizontal Retrace
EHR - End Horizontal Retrace
EHB - End Horizontal Blanking
HT - Horizontal Total
VDE - Vertical Display End
SVB - Start Vertical Blank
VRS - Vertical Retrace Start
VRE - Vertical Retrace End
EVB - End Vertical Blank
VT - Vertical Total
Horizontal resolution:
- All values are in pixels, except as noted;
- 40 column text modes are 320 pixels, 8x8 character cell;
- 80 column text modes have 640 pixels (8x8 character cell);
- 132 column text modes are 1188 pixels wide (9x8 character cells);
- SHB, SHR, EHR and EHB can be changed, provided the pixel differences between them remain constant. At minimum only SHR and EHR need to be changed in order to center the screen horizontally, however, the same restrictions apply;
- Under no circumstance should SHR be able to be less than HDE;
- A value greater than HT means it will be wrapped back to 0, so the actual value the one given less HT.
- 'Standard' means only standard VGA clocks are used, 'Wide' uses a proprietary 7Mhz dot clock and 'Portrait' refers to portrait video mode formats, such as 768x1024.
- Horizontal polarity is negative.
Columns | PAL | NTSC | Dot Clock (Mhz) | ||||||||||
HDE | SHB | SHR | EHR | EHB | HT | HDE | SHB | SHR | EHR | EHB | HT | ||
320 Standard | 320 | 504 | 528 | 584 | 656 | 808 | 320 | 472 | 520 | 576 | 632 | 800 | 12.587 |
320 Wide | 320 | 336 | 376 | 408 | 432 | 456 | 320 | 328 | 368 | 400 | 424 | 448 | 7.0805 |
400 Standard | 400 | 504 | 528 | 584 | 656 | 808 | 400 | 472 | 520 | 576 | 632 | 800 | 12.587 |
400 Wide | 376 | 376 | 400 | 432 | 464 | 456 | 368 | 368 | 392 | 424 | 536 | 448 | 7.0805 |
512 | 512 | 616 | 656 | 720 | 792 | 904 | 512 | 600 | 656 | 720 | 776 | 896 | 14.161 |
640 | 640 | 672 | 720 | 784 | 848 | 904 | 640 | 656 | 720 | 784 | 832 | 896 | 14.161 |
720 | 720 | 672 | 760 | 824 | 848 | 904 | 720 | 656 | 752 | 816 | 832 | 896 | 14.161 |
768 Portrait | 768 | 1144 | 1192 | 1328 | 1488 | 1808 | 768 | 1128 | 1176 | 1312 | 1472 | 1792 | 28.322 |
800 | 776 | 760 | 800 | 864 | 1072 | 904 | 776 | 752 | 800 | 864 | 1072 | 896 | 14.161 |
960 | 960 | 1272 | 1320 | 1456 | 1616 | 1808 | 960 | 1272 | 1304 | 1440 | 1600 | 1792 | 28.322 |
1024 | 1024 | 1272 | 1296 | 1432 | 1616 | 1808 | 1024 | 1256 | 1288 | 1424 | 1600 | 1792 | 28.322 |
1024 16:9 | 1024 | (1056) | (1100) | (1196) | (1224) | 1264 | 1024 | (1056) | (1100) | (1196) | (1216) | 1248 | 19.750 |
1188 | 1188 | 1260 | 1314 | 1431 | 1575 | 1611 | 1188 | 1242 | 1296 | 1413 | 1557 | 1593 | 25.175 |
1152 | 1152 | 1328 | 1360 | 1496 | 672 | 1808 | 1152 | 1312 | 1352 | 1488 | 1656 | 1792 | 28.322 |
1280 | 1280 | 1376 | 1424 | 1560 | 1720 | 1808 | 1280 | 1368 | 1416 | 1552 | 1712 | 1792 | 28.322 |
1600 | 1568 | 1544 | 1592 | 1728 | 0 | 1808 | 1552 | 1528 | 1576 | 1712 | 1776 | 1792 | 28.322 |
Vertical resolution:
- All values are in lines;
- For certain chipsets, interlaced mode is set as if the screen was not interlaced. This is called Frame Mode;
- SVB, VRS, VRE and EVB can be changed, provided the line differences between them remain constant. At minimum only VRS and VRE need to be changed in order to center the screen vertically, however, the same restrictions apply;
- Should the screen appear in black and white, try increasing or decreasing the VRE value by 1 (only);
- Under no circumstance should VRS be able to be less than VDE;
- Offset is CRTC register 13h and any extended bits available. Default value is as set by BIOS, except as noted. In addition, certain chipsets require this value to reflect the difference between 2 (instead of 1) adjacent lines, in interlaced mode. Because it is chipset dependent, I won't cover it here. You'll have to experiment. Wrong configuration will appear either as a crunched or an expanded screen;
- Values in brackets need verification;
- Vertical polarity is negative.
Lines | PAL | NTSC | Interlaced | Offset | ||||||||||
VDE | SVB | VRS | VRE | EVB | VT | VDE | SVB | VRS | VRE | EVB | VT | |||
350 | 175 | 231 | 234 | 238 | 256 | 313 | 175 | 204 | 207 | 211 | 225 | 263 | Yes | |
192/384/768 | 192 | 239 | 242 | 246 | 264 | 313 | 192 | 215 | 218 | 222 | 236 | 263 | No/Yes/Yes | x1/x1/x2 |
384/768 Frame | 384 | 478 | 484 | 492 | 528 | 625 | 384 | 430 | 436 | 444 | 472 | 525 | Yes | x1/x2 |
200/400 | 200 | 243 | 246 | 250 | 268 | 313 | 200 | 219 | 222 | 226 | 240 | 263 | No/Yes | |
400 Frame | 400 | 486 | 492 | 500 | 536 | 625 | 400 | 438 | 444 | 452 | 480 | 525 | Yes | |
216/432/864 | 216 | 250 | 253 | 257 | 275 | 313 | 216 | 228 | 231 | 235 | 249 | 263 | No/Yes/Yes | x1/x1/x2 |
240/480/960 | 240 | 263 | 266 | 270 | 288 | 313 | 240 | 239 | 242 | 246 | 260 | 263 | No/Yes/Yes | x1/x1/x2 |
480/960 Frame | 480 | 526 | 532 | 540 | 576 | 625 | 480 | 478 | 484 | 492 | 520 | 525 | Yes | x1/x2 |
256/512/1024 | 256 | 271 | 274 | 278 | 296 | 313 | 249 | 247 | 250 | 254 | 7 | 263 | No/Yes/Yes | x1/x1/x2 |
512/1024 Frame | 512 | 542 | 548 | 556 | 592 | 625 | 498 | 494 | 500 | 508 | 14 | 525 | Yes | x1/x2 |
540/1080 | 270 | 279 | 282 | 286 | 304 | 313 | 249 | 247 | 250 | 254 | 7 | 263 | Yes | x1/x2 |
288/576/1152 | 288 | 288 | 291 | 295 | 2 | 313 | 260 | 258 | 261 | 265 | 18 | 263 | No/Yes/Yes | x1/x1/x2 |
300/600/1200 | 295 | 293 | 296 | 300 | 7 | 313 | 260 | 258 | 261 | 265 | 18 | 263 | No/Yes/Yes | x1/x2 |
600 Frame | 590 | 586 | 592 | 600 | 13 | 625 | 520 | 516 | 522 | 5 | 36 | 525 | Yes |