Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 7ce9f5a38ba3a7d20482e74d18086033 > files > 175

howto-text-it-2006-5mdv2010.0.noarch.rpm

  XFree86 Video Timings HOWTO
  Eric S. Raymond <esr@thyrsus.com>
  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 <anardoni@mclink.it>
  ______________________________________________________________________

  Indice Generale


  1. Avvertenze
  2. Introduzione
  3. Strumenti per il Calcolo Automatico
  4. Come Funziona lo Schermo
  5. Cose Basilari da Sapere sul Vostro Schermo e la Scheda Video
     5.1 Le frequenze di sincronismo del monitor
     5.2 La larghezza di banda video del monitor
     5.3 La frequenza di clock della scheda video
     5.4 Cosa controllano questi dati basilari

  6. Interpretare le Specifiche di Base
     6.1 Sulla larghezza di banda
     6.2 Frequenze di sincronismo e la frequenza di refresh

  7. Compromessi nel Configurare il Sistema
  8. Requisiti di Memoria
  9. Calcolare le Ampiezze di Quadro
  10. Magia Nera e Impulsi di Sincronismo
     10.1 Sincronismo orizzontale
     10.2 Sincronismo verticale

  11. Riassumendo
  12. Sovraccaricare il Vostro Monitor
  13. Usare le Modalità Interlacciate
  14. Domande e Risposte
  15. Risolvere Problemi con l'Immagine
     15.1 L'immagine è troppo a destra o troppo a sinistra
     15.2 L'immagine è troppo su o troppo giù
     15.3 L'immagine è troppo larga sia orizzontalmente che verticalmente
     15.4 L'immagine è troppo larga (troppo stretta) orizzontalmente
     15.5 L'immagine è troppo alta (troppo bassa) verticalmente

  16. Tracciare le Capacità del Monitor
  17. Ringraziamenti


  ______________________________________________________________________

  11..  AAvvvveerrtteennzzee


  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 esr@snark.thyrsus.com. Siete pregati di _n_o_n 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.


  22..  IInnttrroodduuzziioonnee


  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.


  33..  SSttrruummeennttii ppeerr iill CCaallccoolloo AAuuttoommaattiiccoo


  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 XXFF8866SSeettuupp(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, XXFF8866SSeettuupp(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 xxvviiddttuunnee(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 xxvviiddttuunnee(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 _f_i_n_e 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.


  44..  CCoommee FFuunnzziioonnaa lloo SScchheerrmmoo


  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.


  55..  CCoossee BBaassiillaarrii ddaa SSaappeerree ssuull VVoossttrroo SScchheerrmmoo ee llaa SScchheeddaa VViiddeeoo


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



  55..11..  LLee ffrreeqquueennzzee ddii ssiinnccrroonniissmmoo ddeell mmoonniittoorr

  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.


  55..22..  LLaa llaarrgghheezzzzaa ddii bbaannddaa vviiddeeoo ddeell mmoonniittoorr

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


  55..33..  LLaa ffrreeqquueennzzaa ddii cclloocckk ddeellllaa sscchheeddaa vviiddeeoo

  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!


  55..44..  CCoossaa ccoonnttrroollllaannoo qquueessttii ddaattii bbaassiillaarrii


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


  66..  IInntteerrpprreettaarree llee SSppeecciiffiicchhee ddii BBaassee


  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:


     ffrreeqquueennzzaa ddii ssiinnccrroonniissmmoo oorriizzzzoonnttaallee ((HHSSFF))
        Scansioni orizzontali al secondo (vedi sopra).


     ffrreeqquueennzzaa ddii ssiinnccrroonniissmmoo vveerrttiiccaallee ((VVSSFF))
        Scansioni verticali al secondo (vedi sopra).  Principalmente
        importante come limite superiore della vostra frequenza di
        refresh.


     ddoott cclloocckk ((DDCCFF))
        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.


     llaarrgghheezzzzaa ddii bbaannddaa vviiddeeoo ((VVBB))
        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.

     llaarrgghheezzzzaa ee lluunngghheezzzzaa ddii qquuaaddrroo ((HHFFLL,, VVFFLL))
        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, _i_n_c_l_u_s_i _i _b_o_r_d_i
        _i_n_a_t_t_i_v_i _s_i_n_i_s_t_r_o _e _d_e_s_t_r_o. La lunghezza di quadro verticale
        (VFL) è il numero di linee scandite nell'_i_n_t_e_r_a immagine inclusi
        i bordi inattivi superiore ed inferiore.


     ffrreeqquueennzzaa ddii rreeffrreesshh ddeelllloo sscchheerrmmoo ((RRRR))
        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 _n_o_n è 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.


  66..11..  SSuullllaa llaarrgghheezzzzaa ddii bbaannddaa


  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.


  66..22..  FFrreeqquueennzzee ddii ssiinnccrroonniissmmoo ee llaa ffrreeqquueennzzaa ddii rreeffrreesshh



  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 _"_r_i_n_f_r_e_s_c_a_t_o_") 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.


  77..  CCoommpprroommeessssii nneell CCoonnffiigguurraarree iill SSiisstteemmaa


  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.



  88..  RReeqquuiissiittii ddii MMeemmoorriiaa

  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.


  99..  CCaallccoollaarree llee AAmmppiieezzzzee ddii QQuuaaddrroo


  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 _s_i_c_u_r_i 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!


  1100..  MMaaggiiaa NNeerraa ee IImmppuullssii ddii SSiinnccrroonniissmmoo


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


  1100..11..  SSiinnccrroonniissmmoo oorriizzzzoonnttaallee


  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:

     tteemmppoo aattttiivvoo ((HHAATT))
        Corrisponde a HR, ma in millisecondi.  HAT * DCF = HR.


     tteemmppoo ddii oossccuurraammeennttoo ((HHBBTT))
        Corrisponde a (HFL - HR), ma in millisecondi.  HBT * DCF = (HFL
        - HR).


     ppiieeddiissttaalllloo ffrroonnttaallee ((HHFFPP))
        Questo è proprio HGT1.


     tteemmppoo ddii ssiinnccrroonniissmmoo
        Questo è proprio HSP.


     ppiieeddiissttaalllloo sseeccoonnddaarriioo ((HHBBPP))
        Questo è proprio HGT2.



  1100..22..  SSiinnccrroonniissmmoo vveerrttiiccaallee


  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:


     tteemmppoo aattttiivvoo ((VVAATT))
        Corrisponde a VR, ma in millisecondi.  VAT * VSF = VR.

     tteemmppoo ddii oossccuurraammeennttoo ((VVBBTT))
        Corrisponde a (VFL - VR), ma in millisecondi.  VBT * VSF = (VFL
        - VR).

     ppiieeddiissttaalllloo ffrroonnttaallee ((VVFFPP))
        Questo è proprio VGT.

     ssiinnccrroonniissmmoo
        Questo è proprio VSP.

     ppiieeddiissttaalllloo sseeccoonnddaarriioo ((VVBBPP))
        Questo è come un secondo tempo di guardia dopo l'impulso di
        sincronismo verticale. Spesso è zero.


  1111..  RRiiaassssuummeennddoo


  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.


  1122..  SSoovvrraaccccaarriiccaarree iill VVoossttrroo MMoonniittoorr


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


  1133..  UUssaarree llee MMooddaalliittàà IInntteerrllaacccciiaattee


  (Questa sezione è in gran parte 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 le
  caratteristiche decisive del vostro monitor/scheda video dicono le
  bugie.

  Ad una _f_r_e_q_u_e_n_z_a _d_i _r_e_f_r_e_s_h 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 _s_a_l_t_e_r_à 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.



  1144..  DDoommaannddee ee RRiissppoossttee


  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 _q_u_a_l_s_i_a_s_i 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 è!


  1155..  RRiissoollvveerree PPrroobblleemmii ccoonn ll''IImmmmaaggiinnee


  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 xxvviiddttuunnee(1).)

  _S_p_o_s_t_a_t_e l'immagine cambiando la temporizzazione dell'impulso di
  sincronismo.  La _s_c_a_l_a_t_e 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!


  1155..11..  LL''iimmmmaaggiinnee èè ttrrooppppoo aa ddeessttrraa oo ttrrooppppoo aa ssiinniissttrraa


  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.


  1155..22..  LL''iimmmmaaggiinnee èè ttrrooppppoo ssuu oo ttrrooppppoo ggiiùù


  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.



  1155..33..  LL''iimmmmaaggiinnee èè ttrrooppppoo llaarrggaa ssiiaa oorriizzzzoonnttaallmmeennttee cchhee vveerrttiiccaallmmeennttee


  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.


  1155..44..  LL''iimmmmaaggiinnee èè ttrrooppppoo llaarrggaa ((ttrrooppppoo ssttrreettttaa)) oorriizzzzoonnttaallmmeennttee


  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.


  1155..55..  LL''iimmmmaaggiinnee èè ttrrooppppoo aallttaa ((ttrrooppppoo bbaassssaa)) vveerrttiiccaallmmeennttee


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


  1166..  TTrraacccciiaarree llee CCaappaacciittàà ddeell MMoonniittoorr


  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 <esr@thyrsus.com> basato
  su analisi e codice di Martin Lottermoser <Martin.Lottermoser@mch.sni.de>

  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.


  1177..  RRiinnggrraazziiaammeennttii


  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 sulle modalità interlacciate è largamente di David
  Kastrup <dak@pool.informatik.rwth-aachen.de>

  Nicholas Bodley <nbodley@alumni.princeton.edu> ha corretto e chiarito
  la sezione su come funziona lo schermo.

  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 per un caso.