чем можно создать ModeLine? (X video-mode)
Ключевые слова: X, video-mode, (найти похожие документы)
_ RU.UNIX (2:5077/15.22) ____________________________________________ RU.UNIX _
From : Alexey Mahotkin 2:5020/433 14 Dec 99 01:28:08
Subj : чем можно создать ModeLine?
_______________________________________________________________________________
Reply-To: alexm@hsys.msk.ru
>>>>> "G" == GrAndAGSoft <GrAndAGSoft@HoTMaiL.Com> writes:
G> Чем можно создать ModeLine в XF86Config для нестандартных режимов (типа
G> 960х720) и/или нестандатрных частот. Chipset RIVATNT.
Hе слушай Тоботраса, он пугает, думать и считать вовсе не надо. Есть
приблуда, называется modeline. Ищется на freshmeat.net и умеет ещё и
ModeLine'ы для frame-buffer'ов линуксовых.
Я пользуюсь рабоче-крестьянской тулзой, которую давно-давно постил Сергей
Оськин:
#
# xconfig.awk - awk script for calculating Xconfig parameters for
# XFree86, given the monitor specs and dot clock frequencies.
#
# Example Usage:
# awk -f xconfig.awk HR=1024 VR=768 DCF=110 < /dev/null (or ^D input)
#
# The variable names and meanings are given below.
#
BEGIN{
# Sensible defaults if not specified:
HR = 1024 # Horizontal Resolution
VR = 768 # Vertical Resolution
DCF = 110.0 # Dot Clock Frequency (MHz)
HFrontMIN = 0.50 # Horizontal Front Porch Minimum (us)
HsyncMIN = 1.20 # Horizontal Sync Pulse Width Minimum (us)
HBackMIN = 1.25 # Horizontal Back Porch Minimum (us)
HBlankMIN = 4.00 # Horizontal Blank Period Minimum (us)
HSFMAX = 64.0 # Max Horizontal Scan Frequency (kHz)
VFrontMIN = 0.0 # Vertical Front Porch Minimum
VsyncMIN = 45.0 # Vertical Sync Pulse Width Minimum
VBackMIN = 500.0 # Vertical Back Porch Minimum
VBlankMIN = 600.0 # Vertical Blank Period Minimum
VSFMAX = 90.0 # Max Vertical Scan Frequency (Hz)
verbose = 0
}
END{
# Horizontal Scan Lines:
Hfront = HFrontMIN * DCF + HR
if( Hfront%8 ) Hfront = 8 * (1 + int(Hfront/8) )
# if( (Hfront - HR) < HFrontMIN * DCF ) Hfront += 8
Hsync = HsyncMIN * DCF + Hfront
if( Hsync%8 ) Hsync = 8 * (1 + int(Hsync/8) )
Hblank = HBlankMIN * DCF
HFL = HR + Hblank
if( HFL%8 ) HFL = 8 * (1 + int(HFL/8) )
# Vertical:
Vtick = HFL / DCF # us
Vfront = VR + VfrontMIN / Vtick
Vsync = Vfront + VsyncMIN / Vtick
Vback = VBackMIN / Vtick
Vblank = VBlankMIN / Vtick
VFL = Vsync + Vback
if( VFL < VR + Vblank ) VFL = VR + Vblank
RR = 1000000 * DCF / (HFL * VFL)
HSF = 1000 * DCF / HFL
# Done: generate some output:
if( verbose ) {
printf "\n# Horizontal:\n"
printf "# Front Porch = %.2f us, Sync = %.2f, Back Porch = %.2f, ",
(Hfront - HR) / DCF, (Hsync - Hfront) / DCF, (HFL - Hsync) / DCF
printf "Blank = %.2f\n\n", (HFL - HR) / DCF
}
printf "# Refresh Rate: %.2f Hz, Horizontal Sync Frequency: %.2f kHz\n",
RR, HSF
printf " \"%dx%d\"\t%.2f\t%d %d %d %d %d %d %d %d\n", HR, VR, DCF, HR,
Hfront, Hsync, HFL, VR, Vfront, Vsync, VFL
if( HSF > HSFMAX )
printf("\nWarning: the Horizontal sync frequency may be too high for the
monitor!\n")
if( RR > VSFMAX )
printf("\nWarning: this refresh rate may be too high for the monitor!\n")
}
--
Пусть тени обходят тебя стороной // рецессивная святость
--- Gnus v5.7/XEmacs 20.4 - "Emerald"
* Origin: Snowvision (2:5020/433@fidonet)