  XFree86 Video Timings HOWTO
  Eric S. Raymond <esr@thyrsus.com>
  v3.2, 20 Febbraio 1998

  Come comporre una mode line per la vostra combinazione scheda
  video/monitor per XFree86.  La distribuzione XFree86 ora ha reso pi
  agevole la configurazione della maggior parte delle combinazioni stan
  dard; questo documento  utile principalmente se state ottimizzando
  una vostra mode line personale per un monitor ad alte prestazioni o
  per certo hardware poco comune.  Vi dar anche una mano sull'uso di
  xvidtune per adattare una modalit standard che non  proprio quella
  giusta per il vostro monitor. Traduzione di Angelo Nardoni, <anar
  doni@mclink.it>.

  1.  Avvertenze


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

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

  Siete pregati di inviare commenti, critiche e suggerimenti a
  esr@snark.thyrsus.com. Siete pregati di non inviare email implorando
  per una soluzione magica del problema con il vostro monitor speciale,
  perch cos facendo consumate solo il mio tempo e ne rimarrete
  frustrati -- tutto quello che so sull'argomento  qui dentro.


  2.  Introduzione


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

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

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

  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 gi una modalit che funziona abbastanza (in particolare, se
  una delle modalit VESA predefinite vi danno uno schermo stabile ma
  spostato a destra o a sinistra, o troppo piccolo, o troppo largo)
  potete andare direttamente alla sezione ``Risolvere Problemi con
  l'Immagine''.  Questa vi illuminer sulle possibilit di manipolare i
  valori di temporizzazione per ottenere effetti particolari.

  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 (vedere XFree86.man per i
  dettagli). Usate questa possibilit 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.


  3.  Come Funziona lo Schermo


  Sapere come funziona lo schermo  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 una serie di punti. 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.

  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 all'angolo in alto
  a sinistra, e il percorso viene ripetuto.

  C' una variazione di questo schema conosciuto come interlacciamento:
  qui solamente ogni linea pari  passata ogni mezzo quadro e quelle
  dispari sono riempite 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 anche se questo sta
  puntandoli. L'area visibile dello schermo  in questo modo ridotta.

  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 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.

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


  4.  Cose Basilari da Sapere sul vostro Schermo e 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 frequenza della vostra scheda video, o "dot clock"

    la larghezza di banda del vostro monitor.


  4.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.


  4.2.  La frequenza di clock della scheda video

  La pagina delle specifiche del manuale della vostra scheda video di
  solito vi dar il valore 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.  Anche se il
  vostro X vi blocca il monitor, stamper una riga di valori di clock ed
  altre informazioni sullo standard output. Se voi ridirigete queste ad
  un file, saranno salvate anche se dovete resettare per tornare alla
  console. (Recenti versioni del server X supportano una opzione
  -probeonly che stampa a schermo questi risultati ed esce senza neanche
  far partire X o cambiare il modo video.)

  Il vostro messaggio di partenza di X dovrebbe essere qualcosa di
  simile ad uno di questi 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; uno dei primi 86C911

  (--) S3: chipset driver: s3_generic
  (--) S3: videoram:  1024k
                      -----
           Quantit della 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 pilota 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 pilota in MHz
   |     |            +-- Quantit della RAM della scheda
   |     +-- Tipo di chip
   +-- Tipo di server

  Nota: fate questo con la vostra macchina scarica (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. Utenti SVr4:  il processo mousemgr pu creare
  fastidi molto facilmente.

  Per evitare l'inaccuratezza delle prove sui clock, dovreste appuntarvi
  le temporizzazioni del clock e metterle nel vostro Xconfig come valore
  della propriet 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 che X parta,
  ottenga le temporizzazioni sbagliate a causa del carico del sistema, e
  quindi non sia capace di trovare un clock uguale nel suo database di
  configurazione --- o ne trovi uno sbagliato!


  4.3.  La larghezza di banda video del monitor


  Se usate XFree86, il vostro server tester la scheda video e vi dir
  qual  il vostro massimo possibile dot clock.

  Altrimenti, il vostro massimo possibile dot clock 
  approssimativamente la larghezza di banda video del monitor. Ci sono
  molte possibilit, comunque --- alcuni monitor possono funzionare fino
  al 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).

  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 in
  approssimativi limiti massimi per il dot clock che potete usare):



               640x480                 25
               800x600                 36
               1024x768                65
               1024x768 interlacciato  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 attualmente
  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 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. Seguono
  questi esempi:



               Marca e modello                 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




  Anche i monitor di fascia bassa di solito non sono terribilmente
  legati alle loro risoluzioni date. 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, la vostra immagine dello schermo
  potrebbe non essere cos chiara come dovrebbe, ma assolutamente 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).


  4.4.  Cosa controllano


  La gamma delle frequenze di sincronizzazione del vostro monitor,
  insieme al dot-clock della scheda video, determinano la risoluzione
  che potete usare. Ma  compito del driver testare 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 di XFree86.


  5.  Interpretare le Specifiche di Base


  Questa sezione spiega cosa significano le specifiche precedenti, e
  alcune altre cose che dovete sapere. Per prima cosa, alcune
  definizioni. Accanto a ciascuna fra parentesi la sigla che useremo per
  fare calcoli:
     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 massimo 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 di punti-al-
        secondo che pu emettere.


     larghezza di banda video (VB)
        La pi alta frequenza che potete immettere nell'input del
        monitor e aspettarvi di vedere qualcosa ancora di sensato. Se la
        vostra scheda produce una trama di accensioni-spegnimenti
        alternati, la sua frequenza pi bassa  met del DCF, cos in
        teoria la larghezza di banda comincia ad avere senso a DCF/2.
        Per una videata tollerabilmente 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 altezza di quadro (HFL, VFL)
        La larghezza orizzontale del quadro (HFL)  il numero di impulsi
        del dot-clock che servono al pennello elettronico del vostro
        monitor per scandire una linea orizzontale, inclusi i bordi
        inattivi sinistro e destro.  L'altezza 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 ( 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 video del monitor, ma tipicamente un po' pi grande.
     Andremo in 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 tipici, 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.


  5.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 forme 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.


  5.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' solo un punto
  acceso sullo schermo, ma con una frequenza di refresh abbastanza alto
  la persistenza della vista dei vostri occhi vi permette di "vedere"
  l'intera immagine.

  Ecco alcuni disegni di aiuto:


       _______________________
      |                       |     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 vorrebbe rappresentare 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  il limite
  superiore della frequenza di clock e quindi  rappresentato da una
  linea verticale che affianca la regione possibile 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.




  6.  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, o 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 massimo
  di lunghezze di quadro che non potete superare.

  Nello scegliere i vostri parametri, ricordate: se mettete RR troppo
  basso, otterrete una schermata afflitta dallo sfarfallio.

  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, dovete 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, *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 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, avete un po' di
  spazio di manovra.


  7.  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. Non 
  probabilmente 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 800x600, questa sarebbe 800 x
  600 = 480,000, 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, arrotondato. Se avete pi memoria di quella
  strettamente richiesta, ne avrete extra per il panning di schermo
  virtuale.

  Comunque, se avete solo 512K, 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 SGCS X (ora chiamato 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.


  8.  Calcolare le Ampiezze di Quadro


  Attenzione: questo metodo fu 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).

  Adesso il 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; usano 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 possono non aver
  bisogno di questo, ma non lo sappiamo e tale correggere non far male.
  Cos arrotondiamo la figura della larghezza orizzontale di quadro a
  1176.

  Questa figura (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.

  A occhio e croce, si pu usare l'80% della larghezza orizzontale di
  quadro per la risoluzione orizzontale, la parte visibile della linea
  scandita orizzontalmente (questo permette, all'incirca, di avere il
  tempo per i bordi e il tempo di ritorno -- cio, il tempo necessario
  al pennello per muoversi dal lato destro dello schermo al lato
  sinistro della prossima linea). In questo esempio, sarebbe 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, sarebbe 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 diverso se questo vi permette di usare al meglio il vostro
  monitor. Per calcolare l'altezza e la larghezza del quadro dalla
  diagonale, moltiplicate poi 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 avete 944x708
  all'accensione, pi dell'800 per 600 che probabilmente vi aspettavate.
  Proprio mica male!

  Potreste aumentare la frequenza di refresh 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 il pennello elettronico del vostro monitor possa
  sincronizzarsi verticalmente fino a 76 Hz. (Il popolare NEC 4D, ad
  esempio, non pu. Arriva solo fino a 75 Hz di VSF). (Vedere
  ``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!


  9.  Magia Nera ed Impulsi di Sincronismo


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

  Gli impulsi di sincronismo attualmente 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 pu andare.

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


  9.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: ticks
                            |   ^       ^   |
                            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 posto 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. Se no, ecco dove inizia la vera magia nera...

  Dovete un po' sperimentare in questa parte. Ma il pi delle volte,
  possiamo sicuramente assumere 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 tra noi, non  un cattivo valore di partenza per sperimentare).

  Ora, usando la temporizzazione di 65Mhz come sopra, 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:

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

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

     piedistallo frontale (HFP)
        Questo  solo HGT1.

     periodo di sincronismo
        Questo  solo HSP.

     piedistallo secondario (HBP)
        Questo  solo HGT2.


  9.2.  Sincronismo Verticale:


  Tornando alla figura sopra, come piazziamo i 247 impulsi di clock come
  mostrato nel disegno?

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

  La prima cosa  aumentare 1176 a 1184, e diminuire 944 a 936.  Ora 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. Serenamente, 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. No problem.

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

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

  Disegnando il layout dell'impulso di sincronismo verticale  simile a:


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


  Facciamo partire l'impulso di sincronismo appena passata la fine degli
  impulsi di dati 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 di 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 costruttori preferiscono dare i loro parametri di quadro
  verticale come temporizzazioni piuttosto che larghezza di punti.
  Potete vedere i seguenti valori:


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

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

     piedistallo frontale (VFP)
        Questo  solo VGT.

     periodo di sincronismo
        Questo  solo VSP.

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


  10.  Mettere Tutto Assieme


  Il file Xconfig "Table of Video Modes" contiene righe di numeri,
  essendo ogni riga una completa specificazione per 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 si riferisce alla 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 indica in
  quale punto partir l'impulso di sincronismo orizzontale. Il terzo
  campo indica in 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 indica a quale linea partir l'impulso di
  sincronismo verticale. Il terzo campo indica a quale linea finir
  l'impulso verticale di sincronismo. Il quarto campo contiene il totale
  dell'altezza del quadro (VFL).

  Esempio:


            #Nome        clock  temporiz. orizz.   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 clock 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 valori orizzontali: 800 864 1024 1088

  Questa riga d'esempio ha il numero di punti accesi (800) seguito dal
  numero del punto 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 sul quale stavamo lavorando. Secondo quanto detto
  sopra, tutto quello che dobbiamo fare da adesso in poi  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  la fine; similmente, SV1  il punto di partenza
  dell'impulso di sincronismo verticale e SV2  la fine.


       #nome    clock   temporiz. orizz.    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.


  11.  Sovraccaricare il Monitor


  Non dovreste assolutamente superare le specifiche di scansione del
  monitor se questo  un tipo a frequenza fissa. Potete far fumare il
  vostro hardware! Si creano dei potenziali subdoli problemi superando
  le specifiche di un monitor multisincrono che dovreste sapere.

  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: considerate i pixel come una serie di prove dei
  segnali guida distribuite nello spazio e capirete perch.)

   eccedere la frequenza massima di sincronismo che  problematico.
  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
  avete necessariamente 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 emissioni ulteriori di radiazioni dallo schermo (inclusi i
  raggi X).

  Un altro punto da considerare sulla larghezza di banda  che
  l'impedenza 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.

  Cos state attenti l fuori...


  12.  Usare le Modalit Interlacciate


  (Questa sezione  largamente merito di David Kastrup
  <dak@pool.informatik.rwth-aachen.de>)

  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 i limiti
  decisivi del vostro monitor/scheda video dicono le bugie.

  Ad una frequenza fissa di refresh (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: usare 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 pi stabili
  posizioni di riga. Se le linee sono luminose e scure alternativamente,
  l'interlacciamento vi salter agli occhi.  Ho una applicazione che
  sceglie tali valori da menu (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, trovate 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.

  Costruire 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 supporter 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.
  Specificare la stessa modalit, solo senza il flag "Interlace", 
  quasi sempre al limite della capacit orizzontale del monitor (e per
  dirla tutta, un po' sotto al minimo della frequenza di scansione
  verticale), ma producendo cos uno schermo intollerabilmente
  sfarfallante.

  Regole basilari: se avete costruito 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 assai 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
  risoluzione pi alta) potrebbe portare a risultati superiori, ma non
  ci giurerei.


  13.  Domande e Risposte


  D. L'esempio che hai fatto non  un schermo di formato standard, 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 ogni esperimento su di essi.

  D. Tu hai appena nominato due risoluzioni standard. In Xconfig, ci
  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 sopra 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
     rimediare una scheda SVGA che abbia un uguale dot clock o DCF. Pi
     sono elevati, meglio !


  14.  Risolvere i Problemi con l'Immagine.


  OK, cos avete i vostri valori di configurazione X. Li mettete in
  Xconfig con l'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 difetti dell'immagine video e
  come correggerli.

  (Mettere a posto questi difetti minori  la specialit di xvidtune(1))

  Spostate l'immagine cambiando la temporizzazione dell'impulso di
  sincronismo.  La ingrandite o rimpicciolite 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, non 
  quasi mai un problema!


  14.1.  L'immagine  o 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.


  14.2.  L'immagine  spostata su o 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.



  14.3.  L'immagine  troppo larga sia orizzontalmente che verticalmente


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


  14.4.  L'immagine  troppo larga (o 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.


  14.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 aggiustata 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.


  15.  Tracciare le Capacit del Monitor


  Per tracciare un diagramma della modalit del monitor, vi serve il
  pacchetto gnuplot (un linguaggio 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.5 1998/02/21 02:23:11 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: "Viewsonic 21PS"
  -b <nn>                 larghezza 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 <esr@thyrsus.com>
  basato su un'analisi e codice di Martin Lottermoser
  <Martin.Lottermoser@mch.sni.de>

  Questo  modeplot $Revision: 1.5 $
  EOF
                  exit;;
          esac
          shift
  done

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

  # Numeri magici.  Sfortunatamente, il grafico  abbastanza sensibile a
  # modifiche in questi, 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 un sacco di 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 (moltiplicazione per 1.0 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 etichette negli assi
  set xlabel 'DCF (MHz)'
  set ylabel 'RR (Hz)' 6  # Put it right over the Y axis

  # Generera 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 modeplot e il pacchetto gnuplot funzionanti, 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 deve fare delle semplificazioni che possono non essere
  necessariamete corrette. Questo  il motivo per cui il diagramma che
  ne risulta  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 e 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




  Con HSF, F1, F2 e AR fissi, questa  un iperbole nel nostro diagramma.
  Disegnando due curve tali 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.  Fate 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.


  16.  Ringraziamenti


  Il padre originale di questo documento  stato Chin Fang
  <fangchin@leland.stanford.edu>.

  Eric S. Raymond <esr@snark.thyrsus.com> 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  <crosson@cam.nist.gov>.

  Il materiale delle modalit interlacciate  largamente di David
  Kastrup <dak@pool.informatik.rwth-aachen.de>

  Martin Lottermoser <Martin.Lottermoser@mch.sni.de> 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 in un caso.













