XFree86 Video Timings HOWTO
 Eric S. Raymond <[email protected]>
 v4.1, 2 gennaio 2000

 Come comporre una "mode line" per la vostra combinazione scheda
 video/monitor su XFree86.  La distribuzione XFree86 ora ha reso pi�
 agevole la configurazione della maggior parte delle combinazioni stan�
 dard; questo documento � particolarmente utile se state ottimizzando
 una vostra "mode line" personale per un monitor ad alte prestazioni o
 per dell'hardware poco comune. Vi dar� anche una mano sull'uso di
 kvideogen per generare le "mode line", o xvidtune per adattare una
 modalit� standard che non � proprio quella adatta per il vostro moni�
 tor. Traduzione di Angelo Nardoni <[email protected]>

 1.  Avvertenze


 L'uso del presente materiale � UNICAMENTE A VOSTRO RISCHIO. �
 possibile danneggiare sia il monitor che voi stessi quando si
 sperimenta oltre le specifiche del produttore. Leggete
 ``Sovraccaricare il Vostro Monitor'' per precauzioni pi� dettagliate.
 Qualsiasi danno a voi o al vostro monitor dovuto al suo sovraccarico �
 un problema vostro.

 La pi� recente versione di questo HOWTO pu� essere trovata alla pagina
 web Linux Documentation Project <http://metalab.unc.edu/LDP>.

 Siete pregati di indirizzare commenti, critiche e suggerimenti per
 migliorie a [email protected]. Siete pregati di non inviare email
 chiedendo una soluzione magica al problema speciale con il vostro
 monitor, perch� cos� facendo consumate solo il mio tempo e frustrer�
 voi -- tutto quello che so sull'argomento � gi� qui dentro.


 2.  Introduzione


 Il server XFree86 permette agli utenti di configurare i loro
 sottosistemi video e quindi incoraggia ad un miglior uso dell'hardware
 esistente. Questo tutorial intende aiutarvi ad imparare a generare i
 vostri propri valori di temporizzazione per sfruttare al meglio la
 vostra scheda video e il vostro monitor.

 Presenteremo un metodo per ottenere qualcosa che funziona, quindi vi
 mostreremo come sperimentare partendo da una base comune per
 sviluppare delle specifiche ottimizzate alle vostre esigenze.

 Se gi� avete una modalit� che funziona discretamente (in particolare,
 se una delle modalit� VESA predefinite vi d� uno schermo stabile ma
 spostato troppo a sinistra o a destra, o troppo piccolo, o troppo
 largo) potete andare direttamente alla sezione ``Risolvere i Problemi
 con l'Immagine''.  Questa vi sveler� le possibilit� di manipolare i
 valori di temporizzazione per ottenere effetti particolari.

 Non pensiate di dover conoscere sin nei minimi particolari tutte le
 regolazioni delle "mode line" solo perch� il vostro X vi appare
 completamente sballato la prima volta dopo l'installazione; pu� essere
 che la maggior parte delle "mode line" fornite dalla distribuzione
 sono OK e voi siete capitati in una che non si adatta al vostro
 hardware. Invece, provate tutte le vostre "mode line" con CTRL-ALT-+.
 Se qualcuna di queste sembra OK, provate a renderle inattive
 commentandole tutte eccetto una 640x480 e controllando che quella
 funzioni. Se funziona rendete attive scommentandole un paio di altre
 "mode line", ad esempio una 800x600 e una 1024x768 ad una frequenza
 che il vostro monitor dovrebbe essere in grado di gestire.

 3.  Strumenti per il Calcolo Automatico


 Se avete un monitor relativamente nuovo (dal 1996 in poi) che supporti
 le specifiche PnP, potreste usare il programma read-edid per chiedere
 al monitor le proprie caratteristiche e calcolare una "mode line" per
 voi. Visitate <http://altern.org/vii/programs/linux/read-edid/>.

 Da XFree86 3.2 in poi, XFree86 fornisce un programma XF86Setup(1) che
 rende facile generare interattivamente una modalit� funzionante per il
 monitor, senza avere a che fare direttamente con i valori delle
 temporizzazioni video. Cos� il pi� delle volte non dovete calcolare
 una modalit� base per il monitor. Sfortunatamente, XF86Setup(1) ha
 alcune limitazioni; riconosce solo modalit� video standard fino a
 1280x1024. Se avete un monitor ad alte prestazioni capace di 1600x1200
 o pi� dovrete sempre calcolare la modalit� base da soli.

 C'� un'applicazione KDE chiamata KVideoGen
 <http://without.netpedia.net/kvideogen/> che genera le "mode line"
 dalle caratteristiche del monitor e della scheda video.  Ho provato a
 generare "mode line" con questa applicazione, ma non le ho provate.
 Notate che i suoi parametri di refresh orizzontale e verticale sono
 gli stessi delle frequenze di sincronismo HSF e VSF che descriviamo
 dopo.  L'impulso di sincronismo orizzontale sembra essere una
 larghezza di impulso di sincronia in microsecondi, HSP (con
 l'applicazione che d� per fissi il 'piedistallo frontale' HGT1 e il
 'piedistallo secondario' HGT2). Se non conoscete il valore
 dell'impulso di sincronia orizzontale � pi� sicuro usare quello di
 default.

 Versioni recenti di XFree86 offrono uno strumento chiamato xvidtune(1)
 che troverete probabilmente abbastanza utile per testare e
 perfezionare le modalit� video. Parte con uno spaventoso avviso sulle
 possibili conseguenze se si fanno errori usandolo.  Se prestate
 un'accurata attenzione a questo documento e imparate cosa c'� dietro
 quei simpatici numeri nei riquadri di xvidtune, saprete usare
 effettivamente e con confidenza xvidtune.

 Se avete xvidtune(1), potrete provare nuove modalit� al volo, senza
 modificare i vostri file di configurazione per X o resettare il server
 X.  Altrimenti, XFree86 vi permette di spostarvi con la tastiera fra
 differenti modalit� definite in Xconfig (vedi XFree86.man per
 dettagli). Usate questa capacit� per risparmiarvi problemi!  Quando
 volete provare una nuova modalit�, chiamatela in modo univoco e
 aggiungetela alla fine della vostra lista di combinazioni di tasti.
 Lasciate una modalit� che sapete che funziona bene come default per
 poter tornare l� se la modalit� che state provando non funziona.

 Verso la fine di questo documento, includeremo uno script 'modeplot'
 che potrete usare per produrre un grafico analogico delle possibili
 "mode line".  Ci� non � direttamente utile per generare "mode line",
 ma vi pu� aiutare per capire meglio le relazioni che le definiscono.


 4.  Come Funziona lo Schermo


 Sapere come funziona lo schermo video � fondamentale per capire quali
 valori mettere nei vari campi del file Xconfig.  Questi valori sono
 usati al pi� basso livello di controllo dello schermo dal server
 XFree86.

 Lo schermo genera un quadro con quello che considerate essere una
 serie di punti raster. I punti sono disposti da sinistra a destra per
 formare delle linee. Le linee sono disposte dall'alto in basso per
 formare il quadro. I punti emettono luce quando sono colpiti dal
 fascio elettronico dentro lo schermo.  Per far s� che il fascio
 colpisca ciascun punto per un uguale periodo di tempo, il fascio �
 diretto sullo schermo con un percorso costante, detto raster.

 Abbiamo detto "quello che considerate essere una serie di punti"
 perch� questi punti raster non corrispondono propriamente ai fosfori.
 I fosfori sono molto pi� piccoli dei punti raster -- lo devono essere,
 altrimenti lo schermo mostrerebbe gravi effetti-moir�. I punti raster
 sono in realt� campioni del segnale analogico, e si vedono come una
 griglia di punti solo perch� i picchi nel segnale sono molto regolari
 e spaziati con precisione.

 Il percorso parte in alto a sinistra sullo schermo, attraversa lo
 schermo verso destra con una linea diritta, e si ferma temporaneamente
 sul lato destro dello schermo. Poi il fascio � riportato indietro sul
 lato sinistro, ma sotto di una linea. La nuova linea va da sinistra a
 destra proprio come la prima.  Questo percorso � ripetuto fino a che
 l'ultima linea in fondo allo schermo � stata passata.  Allora il
 fascio viene portato dall'angolo in basso a destra (spazzando avanti e
 indietro un p� di volte) all'angolo in alto a sinistra, e il percorso
 viene ripetuto.

 C'� una variante di questo schema conosciuto come interlacciamento:
 qui solamente ogni linea pari � passata ogni mezzo quadro e quelle
 dispari sono tracciate durante il secondo mezzo quadro.

 Quando il fascio parte dall'angolo superiore sinistro dello schermo �
 detto inizio di quadro. Il quadro termina quando il fascio raggiunge
 l'angolo superiore sinistro di nuovo venendo dall'angolo inferiore
 destro dello schermo. Un quadro � composto da tutte le linee tracciate
 dal fascio dall'alto in basso dello schermo.

 Se il fascio degli elettroni funzionasse per tutto il tempo che
 attraversa il quadro, tutti i punti dello schermo sarebbero accesi.
 Non ci sarebbero bordi neri ai lati dello schermo. Ai lati dello
 schermo il quadro sarebbe distorto perch� � difficile controllare il
 fascio in quei punti. Per ridurre la distorsione, i punti vicino ai
 lati dello schermo non sono illuminati dal fascio (perch� sono spenti)
 anche se questo, se fossero accesi, li puntasse.  L'area visibile
 dello schermo � ridotta in questo modo.

 Un'altra cosa importante da capire � cosa succede del fascio quando
 nessuna cosa � disegnata nell'area visibile. Il tempo che il fascio
 avrebbe dovuto usare per illuminare i lati sinistro e destro dello
 schermo � invece usato per portare il fascio indietro da destra a
 sinistra e per muoverlo gi� alla linea successiva. Il tempo che il
 fascio avrebbe dovuto usare per illuminare i lati superiore ed
 inferiore dello schermo � usato per muovere il fascio dall'angolo in
 basso a destra all'angolo in alto a sinistra.

 La scheda video genera i segnali che permettono allo schermo di
 accendere il fascio (del colore voluto) ad ogni punto per generare un
 quadro. La scheda controlla anche quando lo schermo muove il fascio da
 destra a sinistra e gi� di una riga generando un segnale chiamato sync
 (per sincronismo) orizzontale.  C'� un impulso di sincronismo
 orizzontale alla fine di ogni linea. La scheda genera anche un impulso
 di sincronismo verticale che segnala allo schermo quando muovere il
 fascio dall'angolo sinistro in alto dello schermo. Un impulso di
 sincronismo verticale � generato quasi alla fine di ogni quadro.

 Lo schermo richiede che ci sia un breve lasso di tempo sia prima che
 dopo gli impulsi di sincronismo orizzontale e verticale cos� che si
 possa stabilizzare la posizione del fascio di elettroni. Se il fascio
 non pu� stabilizzarsi, il quadro non sar� nitido.


 Per maggiori informazioni, consultate TV and Monitor Deflection System
 <http://fribble.cie.rpi.edu/~repairfaq/REPAIR/F_deflfaq.html>.

 In una sezione pi� avanti, torneremo su queste nozioni basilari con
 definizioni, formule ed esempi per aiutarvi ad usarle.


 5.  Cose Basilari da Sapere sul Vostro Schermo e la Scheda Video


 Ci sono delle cose fondamentali da sapere prima di sperimentare con i
 valori di Xconfig.  Sono:


 �  le opzioni di frequenza di sincronismo orizzontale e verticale del
    vostro monitor

 �  la larghezza di banda del vostro monitor

 �  la frequenza della vostra scheda video, o "dot clock".


 5.1.  Le frequenze di sincronismo del monitor

 La frequenza di sincronismo orizzontale � semplicemente il numero di
 volte al secondo che il monitor pu� scrivere una linea di scansione
 orizzontale; � la pi� importante informazione sul vostro monitor. La
 frequenza di sincronismo verticale � il numero di volte al secondo
 alla quale il monitor pu� far attraversare il fascio verticalmente
 sullo schermo.

 Le frequenze di sincronismo di solito sono elencate nelle specifiche
 del manuale del monitor.  Il valore della frequenza di sincronismo
 verticale � tipicamente calibrato in Hz (cicli per secondo), quello
 orizzontale in KHz (kilocicli per secondo).  Le comuni gamme di valori
 sono fra 50 e 150Hz verticali, e fra 31 e 135KHz orizzontali.

 Se avete un monitor multifrequenza, queste frequenze saranno date come
 gamma di valori.  Alcuni monitor, specialmente quelli pi� scadenti,
 hanno svariate frequenze fisse.  Anche queste possono essere
 configurate, ma le vostre possibilit� saranno molto limitate dalle
 caratteristiche proprie del monitor. Scegliete il paio di frequenze
 pi� alte per la migliore risoluzione. E state attenti --- provare a
 mandare un monitor a frequenza fissa ad una velocit� di clock pi� alta
 di quella per la quale � stato costruito lo pu� facilmente
 danneggiare.

 Le prime versioni di questa guida erano piuttosto permissive
 sull'overclocking di monitor multifrequenza, spingendoli oltre la loro
 pi� alta frequenza verticale di sincronismo per ottenere migliori
 risultati. Da allora abbiamo pi� ragioni per essere cauti
 sull'argomento; le vedremo nel paragrafo ``Sovraccaricare il Monitor''
 pi� avanti.


 5.2.  La larghezza di banda video del monitor

 La larghezza di banda video del vostro monitor dovrebbe essere inclusa
 nelle pagine delle specifiche del manuale. Se non ci fosse, guardate
 la pi� alta risoluzione del monitor. Indicativamente, ecco come
 tradurla in larghezza di banda approssimativa (e quindi nei limiti
 superiori approssimati per il dot clock che potete usare):




         640x480                 25
         800x600                 36
         1024x768                65
         1024x768 interlaced     45
         1280x1024               110
         1600x1200               185




 Per inciso, non c'� nulla di magico in questa tabella; questi numeri
 sono solo i pi� bassi dot clock per una data risoluzione nel database
 standard delle Modalit� XFree86 (a parte l'ultimo, che ho interpolato
 io). La larghezza di banda del vostro monitor potrebbe essere pi� alta
 del minimo richiesto per la sua massima risoluzione, cos� non abbiate
 paura a provare un dot clock di pochi MHz pi� alto.

 Notate anche che la larghezza di banda � raramente un limite per i dot
 clock sotto i 65 MHz o gi� di l�. Con una scheda SVGA e la maggior
 parte dei monitor ad alta risoluzione, non potete andare troppo vicino
 ai limiti della larghezza di banda video del vostro monitor. Ecco
 alcuni esempi:



              Marca                           Larghezza di Banda Video
              ----------                      ---------------
              NEC 4D                          75Mhz
              Nano 907a                       50Mhz
              Nano 9080i                      60Mhz
              Mitsubishi HL6615               110Mhz
              Mitsubishi Diamond Scan         100Mhz
              IDEK MF-5117                    65Mhz
              IOCOMM Thinksync-17 CM-7126     136Mhz
              HP D1188A                       100Mhz
              Philips SC-17AS                 110Mhz
              Swan SW617                      85Mhz
              Viewsonic 21PS                  185Mhz
              PanaSync/Pro P21                220Mhz




 Anche i monitor di fascia bassa di solito non sono terribilmente
 legati alle loro date risoluzioni. Il NEC Multisync II � un buon
 esempio --- non pu� neanche raggiungere 800x600 per le sue specifiche.
 Pu� raggiungere solo 800x560. Per tali basse risoluzioni non vi
 servono alti dot clock o molta larghezza di banda; probabilmente il
 meglio che potete fare � 32Mhz o 36Mhz, entrambi non sono troppo
 lontani dalla larghezza di banda video del monitor di 30Mhz.

 A queste due frequenze video, l'immagine sul vostro schermo potrebbe
 non essere cos� chiara come dovrebbe, ma certamente di qualit�
 tollerabile.  Naturalmente sarebbe stato meglio se il NEC Multisync II
 avesse avuto una larghezza di banda video pi� alta, tipo 36Mhz. Ma
 questo non � critico per impieghi comuni come editare testi, in quanto
 le differenze non sono cos� grandi da causare forti distorsioni
 dell'immagine (i vostri occhi ve lo direbbero subito se cos� fosse).


 5.3.  La frequenza di clock della scheda video

 La pagina delle specifiche del manuale della vostra scheda video di
 solito vi dar� il valore massimo del dot clock della scheda (che
 sarebbe il numero totale dei pixel al secondo che pu� scrivere sullo
 schermo).
 Se non avete questa informazione, ve la dar� il server X. Le versioni
 recenti dei server X supportano tutte l'opzione --probeonly che rileva
 questa informazione ed esce senza neanche far partire X o senza
 cambiare la modalit� video.

 Se non avete -probeonly, non disperate. Anche se il vostro X vi blocca
 il monitor, scriver� una riga di valori di clock ed altre informazioni
 sul log di errori standard. Se voi ridirigete queste ad un file,
 saranno salvate anche se dovete resettare per tornare alla console.

 Il risultato del tentativo o il vostro messaggio di partenza di X
 dovrebbe essere qualcosa di simile ad uno dei seguenti esempi:

 Se usate XFree86:


 Xconfig: /usr/X11R6/lib/X11/Xconfig
 (**) stands for supplied, (--) stands for probed/default values
 (**) Mouse: type: MouseMan, device: /dev/ttyS1, baudrate: 9600
 Warning: The directory "/usr/andrew/X11fonts" does not exist.
          Entry deleted from font path.
 (**) FontPath set to "/usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/"
 (--) S3: card type: 386/486 localbus
 (--) S3: chipset:   924
                     ---
    Chipset - questo � l'esatto tipo di chip; una maschera precedente del 86C911

 (--) S3: chipset driver: s3_generic
 (--) S3: videoram:  1024k
                     -----
          Quantit� di RAM della scheda

 (**) S3: clocks:  25.00  28.00  40.00   3.00  50.00  77.00  36.00  45.00
 (**) S3: clocks:   0.00   0.00  79.00  31.00  94.00  65.00  75.00  71.00
                   ------------------------------------------------------
                                 Possibili frequenze in MHz

 (--) S3: Maximum allowed dot-clock: 110MHz
                                     ------
                               Larghezza di banda

 (**) S3: Mode "1024x768": mode clock =  79.000, clock used =  79.000
 (--) S3: Virtual resolution set to 1024x768
 (--) S3: Using a banksize of 64k, line width of 1024
 (--) S3: Pixmap cache:
 (--) S3: Using 2 128-pixel 4 64-pixel and 8 32-pixel slots
 (--) S3: Using 8 pages of 768x255 for font caching



 Se usate SGCS o X/Inside X:


 WGA: 86C911 (mem: 1024k clocks: 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71)
 ---  ------       -----         --------------------------------------------
  |     |            |                    Possibili frequenze in MHz
  |     |            +-- Quantit� di RAM della scheda
  |     +-- Tipo di chip
  +-- Tipo di Server



 Nota: fate questo senza processi in background sulla vostra macchina
 (del tutto se possibile). Poich� X � un'applicazione, le sue
 temporizzazioni possono collidere con l'attivit� del disco, rendendo i
 valori di cui sopra inaccurati. Fatelo svariate volte e osservate i
 valori che si stabilizzano; se non dovessero farlo, cominciate a
 fermare i processi finch� non lo fanno.  Il programma che gestisce il
 mouse, se ne avete uno, pu� in particolare rendere fasulla la lettura
 dei valori (cio� gpm per gli utenti Linux, mousemgr per gli utenti
 SVr4).

 Per evitare la inaccuratezza delle prove sui clock, dovreste
 appuntarvi le temporizzazioni del clock e metterle nel vostro Xconfig
 come valore delle propiet� dei Clocks --- questo evita il loop delle
 temporizzazioni e d� ad X una lista esatta dei valori di clock che pu�
 provare. Usando i dati dell'esempio precedente:


 wga
         Clocks  25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71



 Su sistemi con un carico molto variabile, questo vi potrebbe evitare
 misteriosi fallimenti di partenza di X. � possibile per X partire,
 ottenere le temporizzazioni sbagliate a causa del carico del sistema,
 e quindi non essere capace di trovare un clock uguale nel suo database
 di configurazione --- o trovare quello sbagliato!


 5.4.  Cosa controllano questi dati basilari


 La gamma di frequenze di sincronismo del vostro monitor, insieme con
 il dot clock della scheda video, determinano la risoluzione definitiva
 che potete usare.  Ma � compito del driver intercettare il potenziale
 del vostro hardware.  Avere una combinazione hardware di qualit� senza
 un device driver egualmente valido � come buttare i soldi. D'altra
 parte, con un device driver versatile insieme ad un hardware meno
 capace potete spingere un pochino le caratteristiche dell'hardware.
 Questa � la filosofia progettuale di XFree86.

 Dovreste far combaciare il dot clock che usate con la larghezza di
 banda video del monitor. Ci sono molte possibilit�, comunque ---
 alcuni monitor possono funzionare il 30% oltre la loro larghezza di
 banda nominale. Il rischio qui � eccedere la frequenza di
 sincronizzazione verticale massima del monitor; ne discuteremo in
 dettaglio pi� avanti.

 Sapere la larghezza di banda vi permetter� di fare scelte pi�
 intelligenti fra le possibili configurazioni. Ci� pu� cambiare la
 qualit� visiva dello schermo (specialmente la nitidezza nei dettagli).


 6.  Interpretare le Specifiche di Base


 Questa sezione spiega cosa significano le specifiche precedenti, e
 alcune altre cose che dovete sapere. Prima, alcune definizioni.
 Accanto a ciascuna definizione la sigla che useremo per fare calcoli,
 fra parentesi:


    frequenza di sincronismo orizzontale (HSF)
       Scansioni orizzontali al secondo (vedi sopra).


    frequenza di sincronismo verticale (VSF)
       Scansioni verticali al secondo (vedi sopra).  Principalmente
       importante come limite superiore della vostra frequenza di
       refresh.
    dot clock (DCF)
       Pi� formalmente, 'frequenza di clock'; la frequenza del quarzo o
       VCO della vostra scheda video --- il numero massimo dei punti-
       al-secondo che pu� emettere.


    larghezza di banda video (VB)
       La pi� alta frequenza che potete immettere nell'input del
       monitor e ancora aspettarvi di vedere qualcosa. Se la vostra
       scheda produce una trama di accensioni-spegnimenti alternati, la
       sua frequenza pi� bassa sar� met� del DCF, cos� in teoria la
       larghezza di banda comincia ad avere senso a DCF/2. Per una
       videata sufficientemente nitida di piccoli dettagli
       nell'immagine video, comunque, non la vorrete molto pi� bassa
       del vostro pi� alto DCF, e preferibilmente pi� alta.


    larghezza e lunghezza di quadro (HFL, VFL)
       La larghezza orizzontale del quadro (HFL) � il numero di impulsi
       del dot clock necessari al pennello elettronico del vostro
       monitor per scandire una linea orizzontale, inclusi i bordi
       inattivi sinistro e destro. La lunghezza di quadro verticale
       (VFL) � il numero di linee scandite nell'intera immagine inclusi
       i bordi inattivi superiore ed inferiore.


    frequenza di refresh dello schermo (RR)
       Il numero di volte al secondo che il vostro schermo viene
       ridisegnato (ci� � anche detta "frequenza di quadro"). Pi� sono
       alte le frequenze, meglio �, perch� riducono lo sfarfallio.
       60Hz va bene, lo standard VESA di 72Hz � meglio.  Calcolatelo
       come


                 RR = DCF / (HFL * VFL)




    Notate che il prodotto nel denominatore non � lo stesso della
    risoluzione visibile del monitor, ma tipicamente un po' pi� grande.
    Andremo nel dettaglio pi� avanti.

    Le frequenze che sono usualmente specificate per le modalit�
    interlacciate (come 87Hz interlacciati) sono frequenze di met�
    quadro: un intero schermo sembra avere all'incirca quella frequenza
    per gli schermi standard, ma ogni singola linea � ridisegnata solo
    met� delle volte.

    Per scopi di calcolo noi riconosciamo uno schermo interlacciato
    dalla sua frequenza a schermo intero (refresh), per esempio 43.5Hz.
    La qualit� di una modalit� interlacciata � migliore di quella di
    una modalit� non-interlacciata alla stessa frequenza per il quadro
    intero, ma sicuramente peggio di quella non-interlacciata
    corrispondente alla frequenza di met� quadro.


 6.1.  Sulla larghezza di banda


 Ai costruttori di monitor piace dichiarare ampie larghezze di banda
 perch� questo aumenta la nitidezza dell'intensit� e del cambio dei
 colori sullo schermo. Un'ampia larghezza di banda significa vedere
 dettagli pi� piccoli.


 Il vostro monitor usa segnali elettronici per presentare un'immagine
 ai vostri occhi. Tali segnali arrivano sempre in forma d'onda una
 volta che sono convertiti in forma analogica da digitale. Possono
 essere considerati come combinazioni di molte forma d'onda pi�
 semplici ognuna delle quali ha una frequenza fissa, molte di esse sono
 nella gamma dei Mhz, per esempio, 20Mhz, 40Mhz, o anche 70Mhz. La
 larghezza di banda del vostro monitor �, effettivamente, la pi� alta
 frequenza di segnale analogico che pu� sopportare senza distorsioni.

 Per i nostri scopi, la larghezza di banda video � principalmente
 importante come un approssimativo punto di partenza per il pi� alto
 dot clock che potete usare.


 6.2.  Frequenze di sincronismo e la frequenza di refresh


 Ogni linea di scansione orizzontale sul display � solo la porzione
 visibile della scansione del quadro. Ad ogni istante c'� un solo punto
 acceso sullo schermo, ma con una frequenza di refresh abbastanza alta
 la persistenza della vista dei vostri occhi vi permette di "vedere"
 l'intera immagine.

 Ecco alcuni disegni che possono aiutare:


      _______________________
     |                       |     La frequenza di sincronismo orizzontale
     |->->->->->->->->->->-> |     � il numero di volte al secondo
     |                      )|     al quale il pennello elettronico
     |<-----<-----<-----<--- |     del monitor pu� tracciare
     |                       |     un disegno tipo questo
     |                       |
     |                       |
     |                       |
     |_______________________|
      _______________________
     |        ^              |     La frequenza di sincronismo verticale
     |       ^ |             |     � il numero di volte al secondo
     |       | v             |     al quale il pennello elettronico
     |       ^ |             |     del monitor pu� tracciare
     |       | |             |     un disegno tipo questo
     |       ^ |             |
     |       | v             |
     |       ^ |             |
     |_______|_v_____________|



 Ricordate che la scansione � un disegno a zigzag molto stretto; cio�,
 il pennello va da sinistra a destra e contemporaneamente su e gi�.

 Ora possiamo vedere come il dot clock e la grandezza dello schermo si
 mettono in relazione con la frequenza di refresh. Per definizione, un
 hertz (Hz) � un ciclo al secondo. Cos�, se la vostra larghezza di
 quadro orizzontale � HFL e la vostra lunghezza di quadro verticale �
 VFL, allora per coprire l'intero schermo servono (HFL * VFL) impulsi.
 Dal momento che la vostra scheda emette DCF impulsi al secondo per
 definizione, allora ovviamente il pennello elettronico del vostro
 monitor pu� andare sullo schermo da sinistra a destra e dall'alto in
 basso e indietro DCF / (HFL * VFL) volte al secondo. Questa � la
 frequenza di refresh del vostro schermo, perch� � quante volte il
 vostro schermo pu� essere aggiornato (ovvero "rinfrescato") ogni
 secondo!


 Dovete capire questo concetto per ottenere una configurazione che medi
 la risoluzione con lo sfarfallio in un modo qualsiasi che rispetti i
 vostri bisogni.

 Per coloro che capiscono meglio i disegni del testo, eccone uno:


         RR                                      VB
          |   min HSF                     max HSF |
          |    |             R1        R2  |      |
 max VSF -+----|------------/----------/---|------+----- max VSF
          |    |:::::::::::/::::::::::/:::::\     |
          |    \::::::::::/::::::::::/:::::::\    |
          |     |::::::::/::::::::::/:::::::::|   |
          |     |:::::::/::::::::::/::::::::::\   |
          |     \::::::/::::::::::/::::::::::::\  |
          |      \::::/::::::::::/::::::::::::::| |
          |       |::/::::::::::/:::::::::::::::| |
          |        \/::::::::::/:::::::::::::::::\|
          |        /\:::::::::/:::::::::::::::::::|
          |       /  \:::::::/::::::::::::::::::::|\
          |      /    |:::::/:::::::::::::::::::::| |
          |     /     \::::/::::::::::::::::::::::| \
 min VSF -+----/-------\--/-----------------------|--\--- min VSF
          |   /         \/                        |   \
          +--/----------/\------------------------+----\- DCF
            R1        R2  \                       |     \
                           min HSF                |    max HSF
                                                  VB



 Questo � un diagramma di modalit� di un monitor generico. L'asse x del
 diagramma mostra la frequenza del clock (DCF), l'asse y rappresenta la
 frequenza di refresh (RR). La regione riempita del diagramma descrive
 le capacit� del monitor: ogni punto entro questa regione � una
 possibile modalit� video.

 Le linee etichettate 'R1' e 'R2' rappresentano una risoluzione fissa
 (tipo 640x480); vogliono mostrare come una risoluzione pu� essere
 realizzata da svariate differenti combinazioni di dot clock e
 frequenza di refresh. La linea R2 rappresenterebbe una risoluzione pi�
 alta di R1.

 Gli spazi in alto e in basso della regione valida sono semplici linee
 orizzontali che rappresentano i valori limite per la frequenza di
 sincronismo verticale.  La larghezza di banda video � un limite
 superiore della frequenza di clock e quindi � rappresentato da una
 linea verticale che affianca la regione delle possibilit� a destra.

 In ``Tracciare le Capacit� del Monitor'' troverete un programma che vi
 aiuter� a disegnare un diagramma tipo questo (ma molto pi� carino, con
 grafica X) per il vostro monitor. Quella sezione tratter� anche la
 parte interessante; la derivazione degli spazi attorno all'immagine
 risultante dai limiti sulla frequenza di sincronismo orizzontale.


 7.  Compromessi nel Configurare il Sistema


 Un altro modo di guardare alla formula che abbiamo derivato prima �


              DCF = RR * HFL * VFL


 Cio�, il vostro dot clock � fisso. Potete usare questi punti al sec�
 ondo per guadagnare sia frequenza di refresh, sia risoluzione orizzon�
 tale, sia risoluzione verticale. Se uno di questi aumenta, uno o
 entrambi gli altri deve diminuire.

 Notate, comunque, che la vostra frequenza di refresh non pu� essere
 pi� grande della massima frequenza verticale di sincronismo del
 monitor. Cos�, per ogni monitor ad un dato dot clock, c'� un prodotto
 minimo di lunghezze di quadro sotto il quale non potete andare.

 Nello scegliere i vostri parametri, ricordate: se mettete RR troppo
 basso, farete una smorfia per lo sfarfallio dello schermo.

 Probabilmente non vorrete spingere la frequenza di refresh sotto i
 60Hz.  Questa � la frequenza di sfarfallio delle luci al neon; se
 siete sensibili a queste, dovrete orientarvi verso i 72Hz, lo standard
 ergonomico VESA.

 Lo sfarfallio � molto affaticante per gli occhi, anche se gli occhi
 umani sono adattabili e la tolleranza della gente ad esso � assai
 varia. Se siete di fronte al vostro monitor ad un angolo di 90�, su
 sfondo scuro e un buon colore di contrasto, e un'intensit� da bassa a
 media, voi *potete* stare bene anche a 45Hz.

 Il test � questo: aprite un xterminal con puro sfondo bianco e testo
 nero usando xterm -bg white -fg black e allargatelo cos� da coprire
 tutta l'area visibile. Ora regolate la luminosit� del monitor a 3/4
 del suo massimo, e girate la faccia lontano dal monitor. Provate a
 sbirciare il monitor (usando le pi� sensibili cellule della visione
 periferica). Se non avvertite alcuno sfarfallio o pensate che quello
 che c'� � tollerabile, allora la frequenza di refresh va bene per voi.
 Altrimenti � meglio che configuriate una pi� alta frequenza di
 refresh, perch� quel semi-invisibile sfarfallio vi affaticher� gli
 occhi da morire e vi far� venire il mal di testa, anche se lo schermo
 sembra OK a prima vista.

 Per le modalit� interlacciate, l'ammontare dello sfarfallio dipende su
 pi� fattori tipo la attuale risoluzione verticale e il contenuto della
 videata.  Cos� sperimentate. Anche se non dovreste andare molto sotto
 agli 85Hz per met� quadro, comunque.

 Cos� diciamo che avete scelto una frequenza di refresh minimamente
 accettabile.  Nello scegliere il vostro HFL e VFL, avrete un po' di
 spazio di manovra.



 8.  Requisiti di Memoria

 La RAM disponibile per il buffer di quadro pu� limitare la risoluzione
 che potete ottenere su schermi a colori o in scala di grigi.
 Probabilmente non � cos� importante su schermi che hanno solo due
 colori, bianco e nero senza gradazioni di grigio.

 Per gli schermi a 256 colori, un byte di memoria video � richiesto per
 ogni punto visibile. Questo byte contiene l'informazione che determina
 quale mistura di rosso, verde e blu deve essere generata per quel
 punto. Per ottenere la quantit� di memoria richiesta, moltiplicate il
 numero di punti visibili per linea per il numero di linee visibili.
 Per uno schermo con una risoluzione di 1024x768, questa sarebbe 1024 x
 768 = 786432, che � il numero di punti visibili sullo schermo. Questo
 � anche, a un byte per punto, il numero di byte di memoria video che
 sono necessari sulla vostra scheda video.

 Cos�, la memoria video richiesta sar� tipicamente (HR * VR)/1024
 Kbytes di VRAM, arrotondati (sarebbero esattamente 768K nell'esempio
 precedente). Se avete pi� memoria di quella strettamente richiesta, ne
 avrete extra per il panning di schermo virtuale.

 Comunque, se avete solo 512K sulla vostra scheda video, allora non
 potete usare questa risoluzione. Anche se avete un buon monitor, ma
 non abbastanza video RAM, non potete avvantaggiarvi della potenzialit�
 del vostro monitor. D'altra parte, se la vostra SVGA ha un mega, ma il
 vostro monitor pu� visualizzare al massimo 800x600, allora l'alta
 risoluzione � per voi irraggiungibile (vedi ``Usare le Modalit�
 Interlacciate'' per un possibile rimedio).

 Non vi preoccupate se avete pi� memoria di quella richiesta; XFree86
 la user� per permettervi di scrollare l'area visibile (vedi il file di
 documentazione di Xconfig sul parametro dell'ampiezza dello schermo
 virtuale). Ricordate anche che una scheda con 512K byte di memoria non
 ha realmente 512,000 byte installati, ne ha 512 x 1024 = 524,288 byte.

 Se usate X/Inside con una scheda video S3, e volete campare con 16
 colori (4 bit per pixel), potete settare la profondit� a 4 in Xconfig
 ed effettivamente raddoppiare la risoluzione che pu� gestire la scheda
 video. Le schede S3, ad esempio, normalmente fanno 1024x768x256.
 Potete farle fare 1280x1024x16 con profondit� 4.


 9.  Calcolare le Ampiezze di Quadro


 Attenzione: questo metodo � stato sviluppato per monitor multisync.
 Probabilmente funzioner� lo stesso con monitor a frequenza fissa, ma
 non ci sono garanzie!

 Iniziate dividendo DCF per il vostro massimo HSF per ottenere la
 larghezza di quadro orizzontale.

 Per esempio: supponiamo che avete un Sigma Legend SVGA con un dot
 clock a 65MHz, ed il vostro monitor ha una frequenza di scansione
 orizzontale di 55KHz. La quantit� (DCF / HSF) � allora 1181 (65MHz =
 65000KHz; 65000/55 = 1181).

 Ecco il nostro primo assaggio di magia. Dovete arrotondare al pi�
 vicino multiplo di 8. Questo ha a che fare con il controller hardware
 VGA usato dalla SVGA e dalle schede S3; usa un registro a 8-bit,
 spostato a sinistra di 3 bit, per cui � in realt� una quantit� di
 11-bit. Altri tipi di schede tipo la ATI 8514/A pu� non aver bisogno
 di questo, ma non lo sappiamo e correggere non far� male. Cos�
 arrotondiamo la configurazione della larghezza orizzontale di quadro a
 1176.

 Questa configurazione (DCF / HSF arrotondato ad un multiplo di 8) � il
 minimo HFL che potete usare. Potete ottenere HFL pi� lunghi (e cos�,
 possibilmente, pi� punti orizzontali sullo schermo) settando l'impulso
 di sincronismo in modo da produrre un HSF pi� basso. Ma lo pagherete
 con una frequenza pi� bassa e sfarfallio pi� visibile.

 In genere, � disponibile l'80% della larghezza orizzontale di quadro
 per la risoluzione orizzontale, la parte visibile della linea scandita
 orizzontale (questo permette, all'incirca, di avere i bordi e il tempo
 per il pennello di tornare indietro -- cio�, il tempo necessario al
 pennello di muoversi dal lato destro dello schermo al lato sinistro
 della prossima linea).  In questo esempio, sarebbero 944 impulsi.

 Ora, per ottenere il normale rapporto della visualizzazione dello
 schermo di 4:3, settate la risoluzione verticale a 3/4 della
 risoluzione orizzontale che avete appena calcolato. Per il nostro
 esempio, sarebbero 708 impulsi. Per ottenere il vostro attuale VFL,
 moltiplicatelo per 1.05 per ottenere 743 impulsi.
 Il 4:3 non � una meraviglia della tecnica; nulla vi vieta di usare un
 rapporto a Sezione Aurea se questo vi permette di usare al meglio il
 vostro monitor. Questo rende conveniente calcolare l'altezza e la
 larghezza del quadro dalla diagonale, dovete solo moltiplicare la
 diagonale per 0.8 per ottenere la larghezza e per 0.6 per avere
 l'altezza.

 Cos�, HFL=1176 e VFL=743. Dividendo 65MHz per il prodotto dei due ci
 d� una bella e piena di salute frequenza di refresh di 74.4Hz.
 Eccellente! Meglio dello standard VESA! E avrete 944x708
 all'accensione, pi� dell'800 per 600 che probabilmente vi aspettavate.
 Proprio mica male!

 Potreste anche aumentare la frequenza di refresh fino a circa 76 Hz,
 sfruttando il fatto che i monitor spesso possono sincronizzarsi
 orizzontalmente a circa 2khz pi� delle specifiche, e in qualche modo
 abbassando lo VFL (che sarebbe, prendere meno del 75% di 944
 nell'esempio precedente). Ma prima di provare questa manovra di
 "sovraccarico", se lo fate, siate sicuri che i pennelli elettronici
 del vostro monitor possano sincronizzarsi verticalmente fino a 76 Hz.
 (Il popolare NEC 4D, ad esempio, non pu�. Arriva solo fino a 75 Hz
 VSF). (Vedi ``Sovraccaricare il Monitor'' per una discussione pi�
 generale su quest'argomento.)

 Fino a qui, il pi� � semplice aritmetica e fatti basilari sugli
 schermi raster.  Proprio poca magia nera!


 10.  Magia Nera e Impulsi di Sincronismo


 OK, ora avete calcolato i valori di HFL/VFL per il dot clock scelto,
 trovato la frequenza di refresh accettabile, e controllato di avere
 abbastanza VRAM.  Adesso facciamo la vera magia nera -- vi serve di
 sapere quando e dove piazzare gli impulsi di sincronismo.

 Gli impulsi di sincronismo effettivamente controllano le frequenze di
 scansione orizzontale e verticale del monitor. Gli HSF e VSF che avete
 tirato fuori dalla pagina delle specifiche del manuale sono nominali e
 approssimative frequenze massime di sincronismo. L'impulso di
 sincronismo nel segnale della scheda video dice al monitor quanto
 veloce deve andare.

 Ricordate le due figure precedenti? Solamente parte del tempo
 richiesto per tracciare (raster-scanning) un quadro � usata per
 mostrare l'immagine visibile (per esempio la vostra risoluzione).


 10.1.  Sincronismo orizzontale


 Secondo la precedente definizione, ci vogliono HFL impulsi per
 tracciare una linea di scansione orizzontale. Chiamiamo il numero di
 impulsi visibili (la risoluzione orizzontale dello schermo) HR.
 Quindi, ovviamente, HR < HFL per definizione.  Per praticit�,
 assumiamo che entrambi partano allo stesso istante come mostrato qui
 sotto:









   |___ __ __ __ __ __ __ __ __ __ __ __ __
   |_ _ _ _ _ _ _ _ _ _ _ _                |
   |_______________________|_______________|_____
   0                       ^               ^     unit�: impulsi
                           |   ^       ^   |
                           HR  |       |  HFL
                           |   |<----->|   |
                           |<->|  HSP  |<->|
                           HGT1         HGT2



 Ora, noi vorremmo piazzare un impulso di sincronismo di lunghezza HSP
 come mostrato sopra, ad esempio, fra la fine degli impulsi di clock
 per mostrare dati e la fine degli impulsi di clock per l'intero
 quadro. Perch� cos�? Perch� se possiamo ottenere ci�, allora
 l'immagine sullo schermo non si sposter� a destra o a sinistra.
 L'immagine sar� dove dovrebbe essere sullo schermo, coprendo
 all'incirca tutta l'area visibile del monitor.

 In pi�, vogliamo circa 30 impulsi di "tempo di guardia" ad entrambi i
 lati dell'impulso di sincronismo. Questo � rappresentato da HGT1 e
 HGT2. In una configurazione tipica HGT1 != HGT2, ma se state facendo
 una configurazione da zero, vorrete far partire le vostre
 sperimentazioni con loro uguali (cio�, con l'impulso di sincronismo
 centrato).

 Il sintomo di un impulso di sincronismo non centrato � che l'immagine
 appare a schermo con un bordo troppo largo e l'altro lato
 dell'immagine che si ripiega su se stessa, producendo un spesso bordo
 bianco e una striscia di "immagine fantasma" da quella parte. Un
 impulso verticale fuori misura pu� far girare il quadro come sui
 televisori quando non � regolato bene il sincronismo verticale
 (infatti, � lo stesso fenomeno in azione).

 Se siete fortunati, le larghezze degli impulsi di sincronismo del
 vostro monitor saranno documentate sulle pagine delle specifiche del
 manuale. Altrimenti, ecco dove inizia la vera magia nera...

 Dovete un po' provare, sbagliare e riprovare in questa parte. Ma il
 pi� delle volte, possiamo sicuramente supporre che un impulso di
 sincronismo � lungo dai 3.5 ai 4.0 microsecondi.

 Ancora per praticit�, diciamo che HSP � 3.8 microsecondi (che poi,
 detto fra noi, non � un cattivo valore di partenza quando si
 sperimenta).

 Ora, usando la temporizzazione di 65Mhz come in precedenza, sappiamo
 che HSP � equivalente a 247 impulsi di clock (= 65 * 10**6 * 3.8 *
 10^-6) [ricordate che M=10^6, micro=10^-6]

 Ad alcuni costruttori piace specificare i loro parametri di quadro
 orizzontale come tempi piuttosto che come larghezza di punti. Potreste
 vedere i seguenti valori:

    tempo attivo (HAT)
       Corrisponde a HR, ma in millisecondi.  HAT * DCF = HR.


    tempo di oscuramento (HBT)
       Corrisponde a (HFL - HR), ma in millisecondi.  HBT * DCF = (HFL
       - HR).


    piedistallo frontale (HFP)
       Questo � proprio HGT1.
    tempo di sincronismo
       Questo � proprio HSP.


    piedistallo secondario (HBP)
       Questo � proprio HGT2.



 10.2.  Sincronismo verticale


 Tornando alla figura precedente, come mettiamo i 247 impulsi di clock
 secondo quanto mostrato nel disegno?

 Usando il nostro esempio, HR � 944 e HFL � 1176. La differenza fra i
 due � 1176 - 944=232 < 247! Ovviamente dobbiamo mettere un po' le cose
 a posto qui.  Cosa possiamo fare?

 La prima cosa � aumentare 1176 a 1184, e diminuire 944 a 936.  Adesso
 la differenza = 1184-936= 248. Hmm, pi� vicino.

 Poi, invece di usare 3.8, usiamo 3.5 per calcolare HSP; quindi,
 abbiamo 65*3.5=227.  Sembra meglio. Ma 248 non � molto pi� grande di
 227. Normalmente servono 30 impulsi o gi� di l� fra HR e l'inizio di
 SP, e lo stesso fra la fine di SP e HFL. E DEVONO essere multipli di
 otto! Siamo bloccati?

 No. Facciamo cos�, 936 % 8 = 0, (936 + 32) % 8 = 0 anche. Ma 936 + 32
 = 968, 968 + 227 = 1195, 1195 + 32 = 1227. Hmm... questo non � male.
 Ma non � un multiplo di 8, cos� lo arrotondiamo a 1232.

 Ma ora abbiamo un problema potenziale, l'impulso di sincronismo non �
 pi� messo in mezzo fra h e H. Tranquillamente, usando la nostra
 calcolatrice troviamo che 1232 - 32 = 1200 � anche lui un multiplo di
 8 e (1232 - 32) - 968 = 232 che corrisponde ad usare un impulso di
 sincronismo di 3.57 microsecondi, ancora ragionevole.

 In pi�, 936/1232   0.76 o 76%, che non � lontano dall'80%, cos�
 dovrebbe essere tutto a posto.

 Inoltre, usando l'attuale lunghezza di quadro orizzontale, noi in
 pratica chiediamo al nostro monitor di sincronizzarsi a 52.7khz (=
 65Mhz/1232) che � nelle sue capacit�. Nessun problema.

 Usando le regole che abbiamo summenzionato, 936*75%=702, questa � la
 nostra nuova risoluzione verticale. 702 * 1.05 = 737, la nostra nuova
 altezza di quadro.

 La frequenza di refresh dello schermo = 65Mhz/(737*1232)=71.6 Hz.
 Questo � ancora eccellente.

 Disegnare il layout dell'impulso di sincronismo verticale � simile:


    |___ __ __ __ __ __ __ __ __ __ __ __ __
    |_ _ _ _ _ _ _ _ _ _ _ _                |
    |_______________________|_______________|_____
    0                      VR              VFL     unit�: impulsi
                            ^   ^       ^
                            |   |       |
                            |<->|<----->|
                             VGT    VSP



 Facciamo partire l'impulso di sincronismo appena passata la fine degli
 impulsi di dati video verticali. VGT � il tempo di guardia verticale
 richiesto per l'impulso. La maggior parte dei monitor funzionano bene
 con un VGT di 0 (nessun tempo di guardia) e noi useremo questo valore
 nel nostro esempio.  Pochi monitor abbisognano di due o tre impulsi di
 tempo di guardia, e di solito non fa male aggiungerli.

 Tornando all'esempio: dal momento che per definizione della lunghezza
 di quadro, un impulso verticale � il tempo per tracciare un intera
 riga ORIZZONTALE, nel nostro esempio, questa sar� 1232/65Mhz=18.95us.

 L'esperienza insegna che un impulso di sincronismo verticale dovrebbe
 rientrare nella gamma fra 50us e 300us. Come esempio usiamo 150us, che
 si traduce in 8 impulsi di clock verticale (150us/18.95us 8).

 Alcuni fabbricanti preferiscono dare i loro parametri di quadro
 verticale come temporizzazioni piuttosto che ampiezza di punti.
 Potrete vedere i seguenti valori:


    tempo attivo (VAT)
       Corrisponde a VR, ma in millisecondi.  VAT * VSF = VR.

    tempo di oscuramento (VBT)
       Corrisponde a (VFL - VR), ma in millisecondi.  VBT * VSF = (VFL
       - VR).

    piedistallo frontale (VFP)
       Questo � proprio VGT.

    sincronismo
       Questo � proprio VSP.

    piedistallo secondario (VBP)
       Questo � come un secondo tempo di guardia dopo l'impulso di
       sincronismo verticale. Spesso � zero.


 11.  Riassumendo


 Il file Xconfig "Table of Video Modes" contiene righe di numeri,
 essendo ogni riga una completa specificazione di una modalit� di
 operazione X-server. I campi sono raggruppati in quattro sezioni, la
 sezione del nome, la sezione della frequenza di clock, la sezione
 orizzontale, e la sezione verticale.

 La sezione del nome contiene un campo, il nome della modalit� video
 specificata nel resto della riga. Questo nome � riferito nella riga
 "Modes" della sezione Graphics Driver Setup nel file Xconfig. Il campo
 nome pu� essere omesso se il nome di una riga precedente � lo stesso.

 La sezione della frequenza di clock contiene solo il campo della
 frequenza (che noi abbiamo chiamato DCF) della riga modalit� video. Il
 valore di questo campo specifica quale dot clock � stato usato per
 generare i numeri delle sezioni seguenti.

 La sezione orizzontale consiste di quattro campi che specificano come
 ciascuna linea orizzontale deve essere generata. Il primo campo della
 sezione contiene il numero di punti per linea che saranno accesi per
 formare l'immagine (da noi chiamati HR). Il secondo campo (SH1) indica
 in quale punto partir� l'impulso di sincronismo orizzontale. Il terzo
 campo (SH2) indica a quale punto finir� l'impulso di sincronismo
 orizzontale. Il quarto campo specifica la larghezza totale del quadro
 (HFL).

 Anche la sezione verticale contiene quattro campi. Il primo campo
 contiene il numero di linee visibili che appariranno sullo schermo
 (VR). Il secondo campo (SV1) indica a quale linea partir� l'impulso di
 sincronismo verticale. Il terzo campo (SV2) specifica a quale linea
 finir� l'impulso verticale di sincronismo.  Il quarto campo contiene
 il totale dell'altezza del quadro (VFL).

 Esempio:


           #Nome Mod.    clock  temporiz. oriz.   temporiz. vert.

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




 (Nota: X11R5 non supporta i dot clocks frazionari.)

 Per Xconfig, tutti i numeri che abbiamo appena menzionato - il numero
 dei punti accesi sulla riga, il numero dei punti che separano i punti
 accesi dall'inizio dell'impulso di sincronismo, il numero dei punti
 che rappresentano la durata dell'impulso, e il numero di punti dopo la
 fine dell'impulso di sincronismo - sono sommati per produrre il numero
 di punti per riga. Il numero di punti orizzontali deve sempre essere
 divisibile per otto.

 Esempio di numeri orizzontali: 800 864 1024 1088

 Questa linea d'esempio ha il numero di punti accesi (800) seguito dal
 numero del punto da dove parte l'impulso di sincronismo (864), seguito
 dal numero del punto quando lo stesso impulso termina (1024), seguito
 dal numero dell'ultimo punto sulla riga (1088).

 Notate di nuovo che tutti i valori dei numeri orizzontali (800, 864,
 1024, e 1088) sono divisibili per otto! Ci� non � richiesto per i
 valori verticali.

 Il numero di righe dall'alto in basso formano il quadro. Il segnale di
 temporizzazione base per un quadro � la riga. Un certo numero di righe
 formeranno l'immagine. Dopo che l'ultima riga accesa � stata
 disegnata, ci sar� un ritardo di un certo numero di righe prima che
 sia generato l'impulso di sincronismo verticale. Quindi l'impulso di
 sincronismo durer� per un po' di righe, e finalmente saranno generate
 le ultime righe del quadro, cio� il ritardo necessario dopo l'impulso.
 I valori che specificano questa modalit� d'operazione sono immessi in
 una maniera simile al seguente esempio.

 Esempio di valori verticali: 600 603 609 630

 Questo esempio mostra che ci sono 600 righe visibili sullo schermo,
 che l'impulso di sincronismo verticale parte alla 603esima riga e
 termina alla 609esima, e che sono usate un totale di 630 righe.

 Notate che i valori verticali non devono essere divisibili per otto!

 Torniamo all'esempio dove stavamo lavorando. Secondo quanto detto
 prima, tutto quello che dobbiamo fare da adesso in poi � di scrivere i
 nostri risultati in Xconfig in questo modo:


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



 dove SH1 � il punto di partenza dell'impulso di sincronismo orizzon�
 tale e SH2 � l'ultimo; similmente, SV1 � il punto di partenza
 dell'impulso di sincronismo verticale e SV2 � l'ultimo.

 Per inserire questi, ricordate il discorso sulla magia nera e gli
 impulsi di sincronismo che � stato fatto precedentemente.  SH1 � il
 punto dove inizia l'impulso di sincronismo orizzontale; quindi, SH1 =
 HR + HGT1.  SH2 � l'estremo opposto; quindi,  SH2 = SH1 + HSP.
 Similarmente, SV1 = VR + VGT (ma VGT di solito � zero)  e SV2 = SV1 +
 VSP.



      #nome    clock   temporiz.  oriz.    temporiz. vert.    flag
      936x702  65      936 968 1200 1232   702 702 710 737




 Non � necessario alcun flag; questa non � una modalit� interlacciata.
 Ora siamo proprio a posto.


 12.  Sovraccaricare il Vostro Monitor


 Non dovreste assolutamente superare le specifiche di scansione del
 monitor se questo � un tipo a frequenza fissa. Potreste far fumare il
 vostro hardware!  Superare le specifiche di un monitor multisincrono
 crea dei subdoli problemi potenziali che dovreste evitare.

 Al contrario, avere un pixel-clock pi� alto della massima larghezza di
 banda del monitor � abbastanza innocuo. (Nota: il limite teorico delle
 capacit� � raggiunto quando il pixel-clock raggiunge il doppio della
 larghezza di banda del monitor. Questa � una applicazione diretta del
 Teorema di Nyquist: immaginate i pixel come una serie di prove dei
 segnali guida distribuita nello spazio e capirete perch�.)

 � problematico eccedere la frequenza massima di sincronismo. Alcuni
 monitor moderni possono avere dei circuiti di protezione che spengono
 il monitor a frequenze di scansione pericolose, ma non fateci
 affidamento. In particolare ci sono monitor multisinc pi� vecchi (come
 il Multisync II) che usano solo un trasformatore orizzontale. Questi
 monitor non hanno molta protezione contro il sovraccarico. Mentre
 avrete sicuramente un circuito di regolazione dell'alto voltaggio (che
 pu� essere assente nei monitor a frequenza fissa), questo non
 necessariamente coprir� ogni gamma di frequenza possibile, specie nei
 modelli pi� economici. Questo non solo implica un maggior carico sul
 circuito, ma causa anche un invecchiamento precoce dei fosfori dello
 schermo, ed ulteriori emissioni di radiazioni dallo schermo (inclusi i
 raggi X).

 Un altro punto da considerare sulla larghezza di banda � che
 l'impedenza in entrata del monitor � specificata solo per quella data
 gamma di frequenze, e usarne di pi� alte pu� probabilmente causare
 minori interferenze sullo schermo, e disturbi radio.

 Comunque, la problematica fondamentale in questione � lo slew rate (la
 pendenza dei segnali video) dei driver per l'output del video, e
 questo � di solito indipendente dalla frequenza dei pixel, ma (se il
 costruttore della vostra scheda video ci tiene a questi problemi) in
 relazione alla massima frequenza dei pixel della scheda.

 Quindi state attenti l� fuori...


 13.  Usare le Modalit� Interlacciate


 (Questa sezione � in gran parte merito di David Kastrup
 <[email protected]>)

 Ad un dato clock fisso, uno schermo interlacciato avr� molto meno
 sfarfallio di uno non-interlacciato, se il circuito verticale del
 vostro monitor lo supporta stabilmente. � principalmente a causa di
 ci� che furono inventate le modalit� interlacciate.

 Le modalit� interlacciate hanno una cattiva reputazione perch� sono
 inferiori alle loro compagne non-interlacciate alla stessa frequenza
 di scansione verticale, VSF (quello che di solito viene specificato
 nelle pubblicit�). Ma sono assolutamente superiori alla stessa
 frequenza di scansione orizzontale, ed � qui che di solito le
 caratteristiche decisive del vostro monitor/scheda video dicono le
 bugie.

 Ad una frequenza di refresh fissa (o mezzo quadro, o VSF) il display
 interlacciato sfarfaller� di pi�: un display interlacciato a 90Hz sar�
 inferiore ad un display non-interlacciato a 90Hz. Per� avr� bisogno di
 met� larghezza di banda video e met� frequenza di scansione
 orizzontale. Se lo comparate ad una modalit� non-interlacciata con lo
 stesso dot clock e le stesse frequenze di scansione, sar� enormemente
 superiore: 45Hz non-interlacciati sono intollerabili. Con 90Hz
 interlacciati, io ho lavorato per anni con il mio Multisync 3D (a
 1024x768) ed in modo molto soddisfacente.  Penso che vi servir� al
 massimo uno schermo a 70Hz non-interlacciati per lo stesso comfort.

 Dovete stare attenti ad alcuni punti, comunque: usate modalit�
 interlacciate solo ad alte risoluzioni, cos� che le righe accese
 alternate siano pi� vicine. Vorrete provare varie larghezze e
 posizioni dell'impulso di sincronismo per ottenere le posizioni di
 riga pi� stabili. Se le linee alternate sono chiare e scure,
 l'interlacciamento vi salter� agli occhi. Ho una applicazione che
 sceglie tali valori per uno sfondo (XCept, nessun'altra applicazione
 lo fa che io sappia, fortunatamente). Io passo a 800x600 usando XCept
 perch� altrimenti mi fanno proprio male gli occhi.

 Per lo stesso motivo, usate i font di minimo 100dpi, o altri font che
 abbiano le stanghette orizzontali spesse minimo due righe (per le alte
 risoluzioni, nient'altro avrebbe comunque senso).

 E naturalmente, non usate mai la modalit� interlacciata quando il
 vostro hardware ne supporterebbe una non-interlacciata con la stessa
 frequenza di refresh.

 Se, comunque, pensate che per qualche risoluzione state spingendo o il
 monitor o la scheda video al massimo delle loro capacit�, e ottenete
 sfarfallio o perdita di nitidezza (eccesso di larghezza di banda),
 potete provare la stessa risoluzione usando una modalit�
 interlacciata. Chiaramente ci� non serve a nulla se il VSF del monitor
 � gi� vicino ai suoi limiti.

 Scrivere modalit� interlacciate � facile: fatelo come se fossero non-
 interlacciate. Sono necessarie solo due considerazioni in pi�: vi
 servono un numero totale pari di righe verticali (l'ultima cifra nel
 mode line), e quando specificate il flag "Interlace", la frequenza
 verticale di quadro raddoppia. Il vostro monitor deve supportare una
 frequenza di 90Hz se la modalit� che avete specificato risulta di 45Hz
 senza il flag "Interlace".

 Come esempio, ecco la mia modeline per 1024x768 interlacciati: il mio
 Multisync 3D supporta fino a 90Hz verticali e 38kHz orizzontali.

      ModeLine "1024x768" 45 1024 1048 1208 1248 768 768 776 807 Interlace




 Entrambi i limiti sono abbastanza sfruttati con questa modalit�.
 Specificando la stessa modalit�, ma senza il flag "Interlace", si �
 ancora quasi al limite della capacit� orizzontale del monitor (e per
 dirla tutta, un po' sotto al minimo della frequenza di scansione
 verticale), ma ci� produce uno schermo intollerabilmente sfarfallante.

 Regole basilari di programmazione: se avete scritto una modalit� a
 meno della met� della capacit� verticale del monitor, rendete pari il
 numero totale delle linee ed aggiungete il flag "Interlace". La
 qualit� dell'immagine dovrebbe aumentare di molto nella maggioranza
 dei casi.

 Se avete una modalit� non-interlacciata che in qualche modo sfrutta al
 limite le specifiche del monitor dove la frequenza di scansione
 verticale giace a circa il 30% o pi� sotto al massimo del monitor,
 scrivere a mano una modalit� interlacciata (probabilmente con una pi�
 alta risoluzione) potrebbe portare a risultati superiori, ma non ci
 giurerei.



 14.  Domande e Risposte


 D. L'esempio che avete fatto � per un formato non standard dello
 schermo, lo posso usare?

 R. Perch� no? NON ci sono ragioni di usare 640x480, 800x600, o anche
 1024x768. I server XFree86 vi lasciano configurare il vostro hardware
 molto liberamente. Di solito ci vogliono due o tre prove prima di
 arrivare alla scelta giusta. La cosa importante da raggiungere � un
 alta frequenza di refresh con un'area visibile ragionevole. Non alta
 risoluzione al prezzo di sfarfallio scassa-occhi!

 D. � la sola risoluzione possibile quella data di 65Mhz dot clock e
 55Khz HSF?

 R. Assolutamente no! Siete incoraggiati a seguire la procedura
 generica e fare un po' di prova-e-sbaglia fino ad arrivare ad una
 configurazione che vi soddisfi. Sperimentare cos� pu� essere molto
 divertente. Molte configurazioni vi possono dare solo schermi
 sgangherati, ma in pratica i moderni monitor multi-sync non sono
 facilmente danneggiabili. Assicuratevi comunque che il vostro monitor
 possa supportare le frequenze di quadro che avete scelto prima di
 usarlo per periodi pi� lunghi.

 State attenti ai monitor a frequenza fissa! Questo genere di
 sperimentazioni li pu� velocemente danneggiare. Assicuratevi di usare
 frequenze di refresh valide per qualsiasi esperimento su di essi.

 D. Tu hai appena nominato due risoluzioni standard. In Xconfig, sono
 disponibili molte risoluzioni standard, mi puoi dire a che serve
 sperimentare con le temporizzazioni?

 R. Certamente! Prendi, ad esempio, lo "standard" 640x480 presente
 nell'attuale Xconfig. Usa 25Mhz di frequenza pilota, lunghezze di
 quadro di 800 e 525 => frequenza di refresh   59.5Hz. Non male. Ma
 28Mhz � una frequenza pilota comune a molte schede SVGA. Se noi la
 usiamo per pilotare 640x480, seguendo le procedure prima discusse,
 otterremmo lunghezze di quadro tipo 812 e 505. Ora la frequenza di
 refresh � aumentata a 68Hz, un miglioramento abbastanza significativo
 rispetto allo standard.

 D. Puoi riassumere quello che si � detto fino ad ora?

 R. In breve:


 1. per ogni frequenza pilota fissa, aumentare la risoluzione massima
    ci penalizza nell'abbassare la frequenza di refresh e producendo
    cos� pi� sfarfallio.

 2. se serve un'alta risoluzione e il tuo monitor la supporta, cerca di
    procurarti una scheda SVGA che abbia un uguale dot clock o DCF. Pi�
    sono elevati, meglio �!


 15.  Risolvere Problemi con l'Immagine


 OK, cos� avete i vostri valori di configurazione X. Li mettete in
 Xconfig con una etichetta di modalit� test. Fate partire X, con la
 combinazione di tasti andate nella nuova modalit�, ... e l'immagine
 non va bene. Che fate? Ecco una lista di comuni distorsioni
 dell'immagine e come risolverle.

 (Eliminare questi difetti minori � la specialit� di xvidtune(1).)

 Spostate l'immagine cambiando la temporizzazione dell'impulso di
 sincronismo.  La scalate cambiando la lunghezza del quadro (dovete
 cambiare l'impulso di sincronismo per mantenere la stessa posizione
 relativa, altrimenti cambiarne la grandezza sposter� l'immagine). Ecco
 alcune ricette pi� specifiche:

 Le posizioni orizzontali e verticali sono indipendenti. Cio�, spostare
 l'immagine orizzontalmente non incide sulla sua posizione verticale, o
 viceversa. Per� lo stesso non vale sempre per l'ingrandimento o
 rimpicciolimento. Mentre cambiare la larghezza non ha nulla a che
 vedere con l'altezza o viceversa, cambiare entrambe pu� avere dei
 limiti. In particolare, se l'immagine � troppo larga in entrambe le
 dimensioni voi probabilmente dovete andare a pi� alti dot clock per
 aggiustare le cose. Dal momento che questo alza la risoluzione, �
 spesso un problema!


 15.1.  L'immagine � troppo a destra o troppo a sinistra


 Per aggiustare questo, cambiate l'impulso di sincronismo orizzontale.
 Ovvero, aumentate o diminuite (a multipli di 8) i due numeri in mezzo
 nella sezione della temporizzazione orizzontale che definiscono i
 limiti di partenza e fine dell'impulso di sincronismo orizzontale.

 Se l'immagine � spostata a sinistra (bordo destro troppo largo, voi
 volete muovere l'immagine a destra) diminuite i valori. Se l'immagine
 � spostata a destra (bordo sinistro troppo largo, volete spostare
 l'immagine a sinistra) incrementate l'impulso di sincronismo.


 15.2.  L'immagine � troppo su o troppo gi�


 Per aggiustare questo, cambiate l'impulso di sincronismo verticale.
 Cio�, incrementate o diminuite i due valori mediani della sezione di
 temporizzazione verticale che definiscono i limiti di partenza e fine
 dell'impulso di sincronismo verticale.

 Se l'immagine � spostata su (bordo in basso troppo largo, volete
 spostare l'immagine in gi�) diminuite i valori. Se l'immagine �
 spostata in gi� (bordo in alto troppo largo, volete spostare
 l'immagine in su) incrementate i valori.


 15.3.  L'immagine � troppo larga sia orizzontalmente che verticalmente


 Passate ad una pi� alta velocit� di clock della scheda. Se avete pi�
 modalit� nel file di clock, forse � stata attivata per errore una
 modalit� a velocit� inferiore.


 15.4.  L'immagine � troppo larga (troppo stretta) orizzontalmente


 Per rimediare a questo, aumentate (diminuite) la lunghezza di quadro
 orizzontale.  Ovvero, cambiate il quarto valore nella prima sezione di
 temporizzazione. Per evitare di muovere l'immagine, cambiate anche
 l'impulso di sincronismo (secondo e terzo numero) della met�, per
 mantenerla nella stessa posizione relativa.


 15.5.  L'immagine � troppo alta (troppo bassa) verticalmente


 Per rimediare, aumentate (diminuite) la lunghezza del quadro. Cio�
 cambiate il quarto numero nella seconda sezione di temporizzazione.
 Per evitare di spostare l'immagine, cambiate anche l'impulso di
 sincronismo (il secondo e terzo numero) della met�, per mantenerla
 nella stessa posizione relativa.

 Qualsiasi altra distorsione che non pu� essere risolta dalla
 combinazione di queste tecniche � probabilmente sintomo di qualcosa di
 profondamente sbagliato, tipo un errore di calcolo o un dot clock pi�
 veloce di quello che pu� reggere il monitor.

 In ultimo, ricordate che aumentare la lunghezza del quadro diminuir�
 la frequenza di refresh, e viceversa.

 Occasionalmente potete aggiustare piccole distorsioni con i controlli
 del vostro monitor. Lo svantaggio � che se portate i controlli troppo
 lontano dallo zero (il settaggio di fabbrica) per risolvere i problemi
 di grafica, potreste ottenere un'immagine distorta in modo testo. �
 meglio avere una giusta "mode line".


 16.  Tracciare le Capacit� del Monitor


 Per tracciare un diagramma della modalit� del monitor, vi serve il
 pacchetto gnuplot (un linguaggio di disegno freeware per sistemi
 operativi UNIX-compatibili) e il tool modeplot, uno script di
 shell/gnuplot per tracciare il diagramma delle caratteristiche del
 vostro monitor, digitate come opzioni a linea di comando.

 Ecco una copia di modeplot:








 #!/bin/sh
 #
 # modeplot -- genera un grafico X mode delle modalit� disponibili con il
 #             proprio monitor
 #
 # Dare `modeplot -?' per vedere le opzioni di controllo.
 #
 # ($Id: video-modes.sgml,v 1.7 1999/01/18 13:24:58 esr Exp $)

 # Descrizione del monitor. Larghezza di banda in MHz, frequenze orizzontali
 # in kHz e frequenze verticali in Hz.
 TITLE="Viewsonic 21PS"
 BANDWIDTH=185
 MINHSF=31
 MAXHSF=85
 MINVSF=50
 MAXVSF=160
 ASPECT="4/3"
 vesa=72.5       # minima frequenza di refresh raccomandata da VESA

 while [ "$1" != "" ]
 do
         case $1 in
         -t) TITLE="$2"; shift;;
         -b) BANDWIDTH="$2"; shift;;
         -h) MINHSF="$2" MAXHSF="$3"; shift; shift;;
         -v) MINVSF="$2" MAXVSF="$3"; shift; shift;;
         -a) ASPECT="$2"; shift;;
         -g) GNUOPTS="$2"; shift;;
         -?) cat <<EOF
 modeplot control switches:

 -t "<description>"  nome del monitor           default: "Viewsonic21PS"
 -b <nn>                 largh.di banda in MHz      default: 185
 -h <min> <max>          min & max HSF (kHz)        default: 31 85
 -v <min> <max>          min & max VSF (Hz)         default: 50 160
 -a <aspect ratio>       aspect ratio               default: 4/3
 -g "<options>"      opzioni passate a gnuplot

 Le opzioni -b, -h e -v sono obbligatorie, -a, -t, -g opzionali. Potete usare
 -g per passare un tipo di device a gnuplot cos� che (per esempio) l'output di
 modeplot pu� essere rediretto ad una stampante. Vedi gnuplot(1) per dettagli.

 Il tool modeplot � stato creato da Eric S. Raymond <[email protected]> basato
 su analisi e codice di Martin Lottermoser <[email protected]>

 Questo � modeplot $Revision: 1.11 $
 EOF
                 exit;;
         esac
         shift
 done

 gnuplot $GNUOPTS <<EOF
 set title "$TITLE Mode Plot"

 # Numeri magici.  Sfortunatamente, il grafico � abbastanza sensibile a
 # modifiche, e potrebbe fallire nel rappresentare la realt� di alcuni
 # monitor.  Dobbiamo correggere questi valori per ottenere una
 # approssimazione del diagramma dei modi. Questi sono ricavati analizzando
 # molti valori nel database ModeDB.
 F1 = 1.30       # moltiplicatore per convertire la risoluzione orizzontale
                 # in larghezza di quadro
 F2 = 1.05       # moltiplicatore per convertire la risoluzione verticale
                 # in altezza di quadro

 # Definizione delle funzioni (moltiplicando per 1.0 si forza
 # l'aritmetica a numeri reali)
 ac = (1.0*$ASPECT)*F1/F2
 refresh(hsync, dcf) = ac * (hsync**2)/(1.0*dcf)
 dotclock(hsync, rr) = ac * (hsync**2)/(1.0*rr)
 resolution(hv, dcf) = dcf * (10**6)/(hv * F1 * F2)

 # Mette delle etichette sugli assi
 set xlabel 'DCF (MHz)'
 set ylabel 'RR (Hz)' 6  # La mette proprio sopra l'asse y

 # Genera il diagramma
 set grid
 set label "VB" at $BANDWIDTH+1, ($MAXVSF + $MINVSF) / 2 left
 set arrow from $BANDWIDTH, $MINVSF to $BANDWIDTH, $MAXVSF nohead
 set label "max VSF" at 1, $MAXVSF-1.5
 set arrow from 0, $MAXVSF to $BANDWIDTH, $MAXVSF nohead
 set label "min VSF" at 1, $MINVSF-1.5
 set arrow from 0, $MINVSF to $BANDWIDTH, $MINVSF nohead
 set label "min HSF" at dotclock($MINHSF, $MAXVSF+17), $MAXVSF + 17 right
 set label "max HSF" at dotclock($MAXHSF, $MAXVSF+17), $MAXVSF + 17 right
 set label "VESA $vesa" at 1, $vesa-1.5
 set arrow from 0, $vesa to $BANDWIDTH, $vesa nohead # style -1
 plot [dcf=0:1.1*$BANDWIDTH] [$MINVSF-10:$MAXVSF+20] \
   refresh($MINHSF, dcf) notitle with lines 1, \
   refresh($MAXHSF, dcf) notitle with lines 1, \
   resolution(640*480,   dcf) title "640x480  " with points 2, \
   resolution(800*600,   dcf) title "800x600  " with points 3, \
   resolution(1024*768,  dcf) title "1024x768 " with points 4, \
   resolution(1280*1024, dcf) title "1280x1024" with points 5, \
   resolution(1600*1280, dcf) title "1600x1200" with points 6

 pause 9999
 EOF



 Una volta che avete a posto modeplot e il package gnuplot, vi servono
 le seguenti caratteristiche del monitor:


 �  larghezza di banda video (VB)

 �  gamma delle frequenze di sincronismo orizzontale (HSF)

 �  gamma delle frequenze di sincronismo verticale (VSF)

 Il programma plot deve fare delle semplificazioni che non sono
 tecnicamente corrette. Questo � il motivo per cui il diagramma che ne
 risulta ne � solo una rozza descrizione. Queste semplificazioni sono:


 1. Tutte le risoluzioni hanno una singola frequenza fissa di aspetto
    AR = HR/VR.  Risoluzioni standard hanno AR = 4/3 o AR = 5/4. I
    programmi modeplot assumono 4/3 di default, ma si pu� non tenerne
    conto.

 2. Per le modalit� considerate, lunghezze e larghezze di quadro sono
    multipli fissi di risoluzioni orizzontali e verticali,
    rispettivamente:



              HFL = F1 * HR
              VFL = F2 * VR

 Come linea guida, prendete F1 = 1.30 and F2 = 1.05 (vedi ``''
 "Calcolare le grandezze di quadro").

 Ora prendete una particolare frequenza di sincronismo, HSF. Dato
 l'assunto prima presentato, ogni valore di clock DCF gi� determina la
 frequenza di refresh RR, per esempio per ogni valore di HSF c'� una
 funzione RR (DCF).  Questo pu� essere derivato come segue.

 La frequenza di refresh � uguale al clock diviso per il prodotto della
 grandezza del quadro:



              RR = DCF / (HFL * VFL)          (*)




 D'altra parte, la larghezza di quadro � uguale al clock diviso per la
 frequenza di sincronismo orizzontale:



              HFL = DCF / HSF                 (**)




 VFL pu� essere ridotto a HFL secondo i due assunti precedenti:



              VFL = F2 * VR
                  = F2 * (HR / AR)
                  = (F2/F1) * HFL / AR        (***)




 Inserendo (**) e (***) in (*) otteniamo:



              RR = DCF / ((F2/F1) * HFL**2 / AR)
                 = (F1/F2) * AR * DCF * (HSF/DCF)**2
                 = (F1/F2) * AR * HSF**2 / DCF




 Per un HSF fisso, F1, F2 e AR, questo � un iperbole nel nostro
 diagramma.  Disegnando due tali curve per le frequenze di sincronismo
 orizzontale minime e massime noi otteniamo i bordi rimanenti dell'area
 permessa.

 Le righe dritte che attraversano l'area possibile rappresentano
 risoluzioni particolari. Questo � basato su (*) e il secondo assunto:



              RR = DCF / (HFL * VFL) = DCF / (F1 * HR * F2 * VR)





 Disegnando tali linee per tutte le risoluzioni che ci interessano, si
 possono immediatamente leggere le possibili relazioni fra risoluzione,
 frequenza di clock e frequenza di refresh delle quali il monitor �
 capace.  Notate che queste linee non dipendono dalle propriet� del
 monitor, ma dipendono dal secondo assunto.

 Il tool modeplot vi offre un modo facile per farlo.  Date modeplot -?
 per vedere le sue opzioni di controllo. Una chiamata tipica � questa:



              modeplot -t "Swan SW617" -b 85 -v 50 90 -h 31 58




 L'opzione -b specifica la larghezza di banda video; -v e -h settano le
 gamme di frequenza di sincronismo orizzontale e verticale.

 Quando leggete l'output di modeplot, tenete sempre a mente che vi d�
 solo una descrizione approssimativa. Per esempio, non tiene conto dei
 limiti di un HFL risultante da una minima ampiezza richiesta
 dell'impulso di sincronismo, e pu� essere solo accurato quanto lo sono
 gli assunti. Non c'� niente di meglio quindi di un calcolo dettagliato
 (compresa un po' di magia nera) come viene presentato in ``Mettere
 Tutto Assieme''.  Comunque, vi dovrebbe dare un miglior feeling per
 quanto possibile e per quanti compromessi si debbano fare.


 17.  Ringraziamenti


 Il padre originale di questo documento � stato Chin Fang
 <[email protected]>.

 Eric S. Raymond <[email protected]> ha rielaborato, riorganizzato,
 e massicciamente riscritto l'originale di Chin Fang col proposito di
 capirlo.  In questo processo, ha immesso la maggior parte di un altro
 how-to di Bob Crosson <[email protected]>.

 Il materiale sulle modalit� interlacciate � largamente di David
 Kastrup <[email protected]>

 Nicholas Bodley <[email protected]> ha corretto e chiarito
 la sezione su come funziona lo schermo.

 Martin Lottermoser <[email protected]> ha contribuito
 all'idea di usare gnuplot per fare diagrammi di modalit� e ha fatto
 l'analisi matematica che c'� dietro modeplot. Il modeplot in
 distribuzione fu ridisegnato e generalizzato da ESR dal codice
 originale di Martin per un caso.