📄 modetable.c
字号:
/*
$Workfile: modetable.c $
$Revision: 1.34 $
$Date: Aug 23 2006 23:01:52 $
*/
//******************************************************************
//
// Copyright (C) 2002. GENESIS MICROCHIP INC.
// All rights reserved. No part of this program may be reproduced.
//
// Genesis Microchip Corp., 2150 Gold Street
// Alviso, CA 95002 USA
// Genesis Microchip Inc., 165 Commerce Valley Dr. West
// Thornhill, Ontario, Canada, L3T 7V8
//
//================================================================
//
// MODULE: modetable.c
//
// USAGE : This module contains the supported modes look up tables
//
//******************************************************************
//******************************************************************
// I N C L U D E F I L E S
//******************************************************************
#include "inc\all.h"
#ifdef PHOENIX_U
// The following defines are to specify the crop percent of the image. For
// instance if you want NTSC images cropped by 5%, enter 5.
#define NTSC_CROP 6 // 5%
#define PAL_CROP 7 // 5%
#define HD_CROP 5 // 5%
//PDR11956 -Make sure crop value produces an even number.
// Macro to calculate the new Widths and Heights based on a Crop Percent:
#define CROP_BASE(StdVal,CropPercent) \
(WORD)((((StdVal)*(100UL - (DWORD)(CropPercent)))/100UL) & (~1)) //PDR11956
// Macro to calculate the new Back Porches based on a Crop Percent:
#define PORCH_ADJ_BASE(StdPorch, StdVal, CropPercent) \
(WORD)((StdPorch + (StdVal - CROP_BASE(StdVal,CropPercent))/2) & (~1)) //PDR11956
// (WORD)((StdPorch + StdVal - CROP_BASE(StdVal,CropPercent)) & (~1)) //PDR11956
#define CROP_NTSC(StdVal) CROP_BASE((StdVal),NTSC_CROP)
#define PORCH_ADJ_NTSC(StdPorch, StdVal) PORCH_ADJ_BASE((StdPorch),(StdVal),NTSC_CROP)
#define CROP_PAL(StdVal) CROP_BASE((StdVal),PAL_CROP)
#define PORCH_ADJ_PAL(StdPorch, StdVal) PORCH_ADJ_BASE((StdPorch),(StdVal),PAL_CROP)
#define CROP_HD(StdVal) CROP_BASE((StdVal),HD_CROP)
#define PORCH_ADJ_HD(StdPorch, StdVal) PORCH_ADJ_BASE((StdPorch),(StdVal),HD_CROP)
#endif
//******************************************************************
// USAGE : Standard mode lookup table.
// DESCRIPTION : Standard supported modes:
// XGA
// 000 *** 1024 x 768 x 60 Hz
// 001 *** 1024 x 768 x 70 Hz
// 002 *** 1024 x 768 x 75 Hz
// 003 *** 1024 x 768 x 60 Hz MAC
// 004 *** 1024 x 768 x 72 Hz IBM
// 005 *** 1024 x 768 x 85 Hz
// 006 *** 1024 x 768 x 43 Hz (interlaced)
// SVGA
// 007 *** 800 x 600 x 56 Hz
// 008 *** 800 x 600 x 60 Hz
// 009 *** 800 x 600 x 72 Hz
// 010 *** 800 x 600 x 75 Hz
// 011 *** 800 x 600 x 85 Hz
// 012 *** 832 x 624 x 75 Hz MAC
//
// VGA
// 013 *** 640 x 480 x 60 Hz
// 014 *** 640 x 480 x 72 Hz
// 015 *** 640 x 480 x 75 Hz
// 016 *** 640 x 480 x 85 Hz
// 017 *** 640 x 480 x 66 Hz (MAC)
// Overlappad modes
// 018 *** 640 x 350 x 70 Hz
// 019 *** 720 x 350 x 70 Hz
// 020 *** 640 x 400 x 70 Hz
// 021 *** 720 x 400 x 70 Hz
// 022 *** 640 x 350 x 85 Hz
// 023 *** 720 x 350 x 85 Hz
// 024 *** 640 x 400 x 85 Hz
// 025 *** 720 x 400 x 85 Hz
//
// MAC, SUN, IBM
// 026 *** 1152 x 864 x 60 Hz
// 027 *** 1152 x 864 x 70 Hz
// 028 *** 1152 x 864 x 75 Hz
// 029 *** 1152 x 870 x 75 Hz (MAC 21)
// 030 *** 1152 x 900 x 66 Hz (SUN)
// 031 *** 1152 x 900 x 76 Hz
// 032 *** 1280 x 960 x 60 Hz
// 033 *** 1280 x 960 x 85 Hz
//SXGA
// 034 *** 1280 x 1024 x 60 Hz
// 035 *** 1280 x 1024 x 75 Hz
// 036 *** 1280 x 1024 x 85 Hz
// 037 *** 1280 x 768 x 60 Hz
//SubSample
// 038 *** 1600 x 1200 x 60 Hz
// 039 *** NTSC/480I/525I - 720 x 240 x 60I
// 040 *** NTSC 262p (some VCRs) x 60
// 041 *** PAL 525I - 720 x 240 x 50I
// 042 *** 576P/625P - 720 x 756 x 50P
// 043 *** (HDTV) 720P - 1280 x 720 x 60P
// 044 *** (HDTV) 1080I - 1920 x 1080 x 60I
// 045 *** (HDTV) 1080I - 1920 x 1080 x 50I
// 046 *** 480P/525P - 720 x 483 x 60P
// 047 *** 480P (16:9) - 960 x 483 x 60P
//******************************************************************
StandardModeType ROM StandardModeTable[] = {
///////////////////////////////////////////////////////////////////////
{ // *** 1024 x 768 x 60 Hz *** 0
483, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
806, 4, // StdVTotal, DeltaVTotal, (in line unit)
1344, // StdHTotal,
1024, 768, // StdWidth, StdHeight,
160, 29, // StdHBackPorch, StdVBackPorch,
136, 6, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL | gmd_NEG_HSYNC | gmd_NEG_VSYNC // ModeType
},
{ // *** 1024 x 768 x 70 Hz *** 1
564, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
806, 4, // StdVTotal, DeltaVTotal, (in line unit)
1328, // StdHTotal,
1024, 768, // StdWidth, StdHeight,
144, 29, // StdHBackPorch, StdVBackPorch,
136, 6, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL | gmd_NEG_HSYNC | gmd_NEG_VSYNC // ModeType
},
{ // *** 1024 x 768 x 75 Hz *** 2
600, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
800, 4, // StdVTotal, DeltaVTotal, (in line unit)
1312, // StdHTotal,
1024, 768, // StdWidth, StdHeight,
176, 28, // StdHBackPorch, StdVBackPorch,
96, 3, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 1024 x 768 x 60 Hz MAC *** 3
487, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
813, 4, // StdVTotal, DeltaVTotal, (in line unit)
1312, // StdHTotal,
1024, 768, // StdWidth, StdHeight,
160, 23, // StdHBackPorch, StdVBackPorch,
136, 3, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL | gmd_NEG_HSYNC | gmd_NEG_VSYNC // ModeType
},
{ // *** 1024 x 768 x 72 Hz IBM *** 4
575, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
798, 4, // StdVTotal, DeltaVTotal, (in line unit)
1304, // StdHTotal,
1024, 768, // StdWidth, StdHeight,
150, 18, // StdHBackPorch, StdVBackPorch,
100, 2, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 1024 x 768 x 85 Hz *** 5
686, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
808, 4, // StdVTotal, DeltaVTotal, (in line unit)
1376, // StdHTotal,
1024, 768, // StdWidth, StdHeight,
208, 36, // StdHBackPorch, StdVBackPorch,
96, 3, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 1024 x 768 x 43 Hz (interlaced *** 6
355, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
817, 4, // StdVTotal, DeltaVTotal, (in line unit)
1264, // StdHTotal,
1024, 384, // StdWidth, StdHeight,
56, 20, // StdHBackPorch, StdVBackPorch,
176, 4, // StdHSyncWidth, StdVSyncWidth,
gmd_INTERLACED // ModeType
},
///////////////////////////////////////////////////////////////////////
{ // *** 800 x 600 x 56 Hz *** 7
351, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
625, 4, // StdVTotal, DeltaVTotal, (in line unit)
1024, // StdHTotal,
800, 600, // StdWidth, StdHeight,
128, 22, // StdHBackPorch, StdVBackPorch,
72, 2, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 800 x 600 x 60 Hz *** 8
378, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
628, 4, // StdVTotal, DeltaVTotal, (in line unit)
1056, // StdHTotal,
800, 600, // StdWidth, StdHeight,
88, 23, // StdHBackPorch, StdVBackPorch,
128, 4, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 800 x 600 x 72 Hz *** 9
480, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
666, 4, // StdVTotal, DeltaVTotal, (in line unit)
1040, // StdHTotal,
800, 600, // StdWidth, StdHeight,
64, 23, // StdHBackPorch, StdVBackPorch,
120, 6, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 800 x 600 x 75 Hz *** 10
468, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
625, 4, // StdVTotal, DeltaVTotal, (in line unit)
1056, // StdHTotal,
800, 600, // StdWidth, StdHeight,
160, 21, // StdHBackPorch, StdVBackPorch,
80, 3, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 800 x 600 x 85 Hz *** 11
536, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
631, 4, // StdVTotal, DeltaVTotal, (in line unit)
1048, // StdHTotal,
800, 600, // StdWidth, StdHeight,
152, 27, // StdHBackPorch, StdVBackPorch,
64, 3, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 832 x 624 x 75 Hz MAC *** 12
497, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
660, 10, // StdVTotal, DeltaVTotal, (in line unit) 667 or 654
1120, // StdHTotal,
832, 624, // StdWidth, StdHeight,
160, 24, // StdHBackPorch, StdVBackPorch,
96, 3, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
///////////////////////////////////////////////////////////////////////
{ // *** 640 x 480 x 60 Hz *** 13
315, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
525, 4, // StdVTotal, DeltaVTotal, (in line unit)
800, // StdHTotal,
640, 480, // StdWidth, StdHeight,
48, 33, // StdHBackPorch, StdVBackPorch,
96, 2, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 640 x 480 x 72 Hz *** 14
378, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
520, 4, // StdVTotal, DeltaVTotal, (in line unit)
832, // StdHTotal,
640, 480, // StdWidth, StdHeight,
128, 28, // StdHBackPorch, StdVBackPorch,
40, 3, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 640 x 480 x 75 Hz *** 15
375, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
500, 4, // StdVTotal, DeltaVTotal, (in line unit)
840, // StdHTotal,
640, 480, // StdWidth, StdHeight,
120, 16, // StdHBackPorch, StdVBackPorch,
64, 3, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 640 x 480 x 85 Hz *** 16
432, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
509, 4, // StdVTotal, DeltaVTotal, (in line unit)
832, // StdHTotal,
640, 480, // StdWidth, StdHeight,
80, 25, // StdHBackPorch, StdVBackPorch,
56, 3, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
{ // *** 640 x 480 x 66 Hz (MAC) *** 17
351, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
525, 4, // StdVTotal, DeltaVTotal, (in line unit)
864, // StdHTotal,
640, 480, // StdWidth, StdHeight,
96, 39, // StdHBackPorch, StdVBackPorch,
64, 3, // StdHSyncWidth, StdVSyncWidth,
gmd_NORMAL // ModeType
},
///////////////////////////////////////////////////////////////////////
// Overlapped modes
// !!! WARNING: Do not change the order for this.
// It should come with order of 640x350, 720x350, 640x400, 720x400.
{ // *** 640 x 350 x 70 Hz *** 18
315, 10, // StdHFreq, DeltaHFreq, (in 100Hz unit)
449, 4, // StdVTotal, DeltaVTotal, (in line unit)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -