12. 종합

Xconfig 화일내에는 비디오 모드에 관한 수치들이 나열되어 있습니다. 각 라인은 X 서버의 동작모드 하나를 나타냅니다. 하나의 라인은 이름 섹션, 클럭주파수 섹션, 수평 섹션, 수직 섹션의 4 부분으로 구성됩니다.

이름 섹션은 그 비디오 모드의 이름 필드 하나로 되어 있습니다. 뒤이어 나오는 수치들이 만드는 비디오 모드의 이름이 되는 것입니다. 이 이름은 Xconfig 화일의 그래픽 드라이버 설정 부분의 "Modes" 줄에서 사용되게 됩니다. 만일 바로 앞줄의 이름이 현재 줄의 이름과 동일하다면 현재 줄의 이름 필드를 생략해도 좋습니다.

도트 클럭 섹션은 그 비디오 모드 라인의 도트 클럭(우리가 DCF 라 부른 것) 필드 하나로 되어있습니다. 이 숫자는 연이어 나오는 섹션의 숫자들을 생성하는데 쓰이는 도트클럭입니다.

수평 섹션은 4개의 필드로 구성되며 디스플레이의 수평 라인이 어떻게 생성되어야 하는지를 정합니다. 이 섹션의 첫번째 필드는 화면을 구성하는데 필요한 라인당 수평 도트의 수(우리가 HR 이라 부른 것)를 나타냅니다. 두번째 필드(SH1)는 몇번째 도트에서 수평 동기 펄스가 시작되는지를 나타냅니다. 세번째 필드(SH2)는 몇번째 도트에서 수평 동기 펄스가 끝나는지를 나타냅니다. 네번째 필드는 수평 프레임 길이 전체(HFL)를 나타냅니다.

수직 섹션 역시 4개의 필드로 구성됩니다. 첫번째 필드는 화면을 구성하는데 필요한 수평라인의 수(VR)를 나타냅니다. 두번째 필드(SV1)는 몇번째 라인에서 수직 동기펄스가 시작되는지를 나타냅니다. 세번째 필드(SV2)는 몇번째 라인에서 수직 동기펄스가 끝나는지를 나타냅니다. 네번쩨 필드는 수직 프레임 길이 전체(VFL)를 나타냅니다.

예 :

                   #Modename    clock  horizontal timing  vertical timing

                   "752x564"     40    752 784  944 1088  564 567 569 611
                                 44.5  752 792  976 1240  564 567 570 600

(주의 : X11R5 에서는 소수점 표기된 도트클럭은 허용되지 않습니다)

위에서 방금 언급한(라인당 화면을 만드는 도트의 수, 화면의 도트와 동기펄스의 시작을 구분짓는 도트넘버, 펄스의 지속시간을 의미하는 도트넘버, 동기펄스가 끝난 후의 도트의 수) 수치들이 Xconfig 파일 속에 써넣어져서 한 라인의 도트들을 생성해냅니다. 수평 도트들의 숫자는 반드시 8 로 나누어 떨어져야 합니다.

수평 숫자들의 예 : 800 864 1024 1088

윗줄의 예에는 가시영역의 도트수(800), 동기펄스가 몇번째 도트에서 시작되는지(864), 동기 펄스가 몇번째 도트에서 끝나는지(1024), 수평 라인이 몇번째 도트에서 끝나는지(1088)가 적혀있습니다.

수평 숫자들(800, 864, 1024, 1088)이 모두 8 로 나누어진다는 점에 다시한번 주의하십시요! 수직 숫자들은 8 로 나뉘어질 필요는 없습니다.

화면의 첫 줄부터 마지막 줄까지의 라인의 수가 프레임을 구성합니다. 한 프레임에 대한 타이밍 신호은 라인단위입니다. 다수개의 라인이 이미지를 그려내는 것입니다. 화면에 마지막 라인이 디스플레이된 후, 몇 라인 정도의 딜레이가 있고, 다음으로 수직 동기 펄스가 몇 라인정도 지속되고, 최후로 프레임의 마지막 라인까지의 시간이 소요됩니다. 다음 예와 같이 수치들이 나열됩니다.

수직 숫자들의 예 : 600 603 609 630

이 예에서는 가시화면에 600 개의 라인이 있고 그다음 수직 동기펄스가 603 째 라인에서 시작해서 609 번째 라인에서 끝나며 총 630 개의 라인이 있음을 나타내고 있습니다.

수직 숫자들은 8 로 나뉘어질 필요가 없음에 유의하십시요!

이제 우리의 예로 돌아갑시다. 위의 내용대로 우리가 얻어낸 결과를 다음과 같은 형식으로 Xconfig 에 적어넣어야 합니다.

       <name>  DCF HR  SH1 SH2 HFL VR  SV1 SV2 VFL

SH1 은 수평 동기펄스의 시작틱이고 SH2 는 수평동기 펄스가 끝나는 틱입니다; 마찬가지로, SV1 은 수직 동기 펄스의 시작틱이고 SV2 는 수직 동기 펄스가 끝나는 틱입니다.

위와 같은 형식으로 써넣기 위해 우리가 부려봤던 마술과 동기펄스를 기억해 봅시다. SH1 은 수평 동기 펄스의 리딩 엣지(leading edge, 한 펄스에서 마루에서 산으로 올라가는 부분)에서 시작됩니다. 따라서 SH1 = HR + HGT1 입니다. SH2 는 트레일링 엣지(trailing edge, 한 펄스에서 산에서 마루로 떨어지는 부분)입니다. 따라서 SH2 = SH1 + HSP 입니다. 이와 유사하게 SV1 = VR + VGT 이고(단, VGT 는 보통 0 입니다) SV2 = SV1 + VSP 입니다.

       #name    clock   horizontal timing   vertical timing    flag
       936x702  65      936 968 1200 1232   702 702 710 737

특별한 flag 는 필요없습니다. 이것은 넌인터레이스드 모드니까요. 이제 정말 끝난 것입니다.