Linux XFree-to-Xinside mini-HOWTO
 (by Marco Melgazzi, s64912@athena.polito.it,
 version 1.1 / 1996 July)
 (Marco Melgazzi μᥤ륢ɥ쥹 1997 ǯ
1ߡmarco@techie.com ˤʤäƤޤ)

XFree86-XInside.euc
 Ϥ(hara@access.co.jp), 1997 Jan.27th



  XFree86 ⡼ɥ饤 XInside ΤΤѴˡ



  1.ȥ

  ο XFree86 Ⱦʤΰ XInside Ȥδ֤Ǥɤ
äƥǥ⡼ɤѴ뤫Ȥ䤬 comp.os.linux.x 
ƤƤޤ
  ϤʲɾǤȤäƤꡢɾǤޤ
ϡɥǥ˻ĤäƤޤ褹Τ
ΤǡϤäƤߤ褦ȷ迴ơ󡢻֤ä
ߤơ׻򤷤̡餯ͭʵ¨¤Ƥ뤳Ȥ
ޤ
  ѴˡˤĤƤεϤ˾ääƤޤޤ
ϤʸϤˤĤƤδդΥᥤ̡ޤ
ǡ衢ޤ¾ïξɬפȤ뤫⤷ʤȻ
ϤƤ򤢤ʤɤǤ뤳 mini-HOWTO ˽ľ
ȤˤΤǤ
  ޤǽˤĤҤ٤Ƥ
 XInside ΤƯƤΤǤϡ֤ޤפ
Linux Ѥɾǥ 1.2 ˥뤳ȤǤޤ
Ǥ˥Υߥ󥰤򤤤뤳ȤϴʤȤˤʤꤦ
뤷ͳ顢Ūˤʤݾڤ⤷ޤ󡣤⤷
ǤʤޤС빽ʤȤǤ⤷ʤΥ
塼ФᤤƤ⡢ϤˤĤƤбϤʤǤ礦
  ʤ̾鵤դ⤷ʤ褦ˡϱѸΥ
ƥ֥ԡǤϤʤΤǡ˴ְ㤤뤫⤷
ޤ󡣻ϤˤĤƼպᤷޤ餪ꤤǤ顢
ᥤܥåطǰդˤꤷʤǲ
¿ա


  2. ʤϤ줬ɬפä

  ϡʤ˥ǥ⡼ɤ򤤤뤿Υ桼ƥƥ(xvidtune
Τ褦)Ϳ/ޤϡʤ XFree ΤΤɾ
( AFAIK )˥ݡȤ桼ƥƥͿʤȤ
XInside ΥݥꥷԲĲǤȻϻפޤϡ
ˤΤ3֤餤⤫äƤޤޤ(äȰ
ĤΥեޥåȤ VESA 1024x768@70Hz ιܤӤޤ
(ƻϺۤȤŵѼԤǤ ;-) )Xinside Υץ
ʤ餳λ֤ΤۤΤäȤȤǡƱ褦ʸϤ
񤱤ϤʤΤˡ
   1.3 ɾǤɤƤޤ󤬡
ľƤƤ뤳Ȥ˴˾ƤޤΤˡľäƤС
 mini-HOWTO ̵ˤʤäƤޤ⤷ޤ󤬡
⤷ʤɤʤ顢ƤɤΤ褦ƯƤ뤫
λȤ߰ʾβؤǤ뤳ȤǤ礦


  3.  äƤߤ褦

  ʤʬΤޤޤĴ XFree86 ⡼ɤäƤơƱ
 XInside ƤߤȲꤷޤ礦
  ʲΥƥåפ˽äƤС줬ǤǤ礦
  桹ϼºݤȤƻΥǥեȤΥǥ⡼ɤѤơ
ѴˤϤʤ򤹤٤ޤ


  XFree86 Υȥ꡼ϤˤʤäƤޤ

  Modeline "blahblah" DOTCLK  A B C D  a b c d

 A-B  1-4 οϤɤ̣äƤޤ
ʤСΰ̣ 'The Hitchhiker's Guide to
X386/XFree86 Video Timing'(/usr/lib/X11/doc/VideoModes.doc)
Ĵ٤뤳ȤǤǤ礦ޤѴ򤹤뤿ˤϤ
ظˤΤɬפϤʤǤ

 /usr/lib/X11/XF86Config ˤΥ⡼ɥ饤ϰʲΤ褦
ʤäƤޤ

       Modeline "1168x876" 105  1168 1256 1544 1640  876 877 891 900
                            |     |    |    |    |    |   |   |   |
                         DOT_CLK  A    B    C    D    a   b   c   d

  XInside Ǥϡʤ Xtimings ե˥ȥ꡼դä
ʤФޤ󡣤Υե etc/ ˤƤ٤Ǥ
(ʲǤϡʤ Xaccel ǥ쥯ȥΰ־ˤΤȲ
ޤ /usr/X11/lib/X11/AcceleratedX Τ褦ˤʤäƤ
ϤǤ)

  !    Somewhere in the file, put here the name you want
  ! ΥեΤɤʤι̾򤳤˽

  [PREADJUSTED_TIMING]
      PreadjustedTimingName = "1168x876 @ 72Hz";

  !
  !    These four are obvious
  !
  !     4 Ĥ

      HorPixel          = 1168;         // pixels
      VerPixel          = 876;          // lines
      PixelWidthRatio   = 4;
      PixelHeightRatio  = 3;

  !
  !   hsync: DOT_CLK / D * 1000 [KHz]
  !
  !   hsync = 105 / 1640 * 1000 = 64.024 KHz
  !
  !   vsync: ( 1 / (( D / DOT_CLK ) * d) ) * 1,000,000 [Hz]
  !
  !   vsync: ( 1 / (( 1640 / 105 ) * 900) ) * 1,000,000
  !           ( 1 / 14057.1428571 ) * 1,000,000 = 71.138 Hz
  !

      HorFrequency      = 64.180;        // kHz
      VerFrequency      = 71.138;        // Hz

  !   Obvious
  !   餫

      ScanType          = NONINTERLACED;

  !
  !   Put here the +/-hsync +/-vsync XFree86 options
  !

  !   ˡ+/-hsync +/-vsinc XFree86 ץ򤪤

      HorSyncPolarity   = POSITIVE;
      VerSyncPolarity   = POSITIVE;

  !   Shouldn't change
  !   Ѥ٤ǤϤʤ

      CharacterWidth    = 8;             // pixels

  !   DOT_CLK here

      PixelClock        = 105.000;       // MHz
  !
  !
  !   horizontal timings section: [usec]
  !
      HorTotalTime  = D / DOT_CLK                  = 15.619;
      HorAddrTime   = A / DOT_CLK                  = 11.124;
      HorBlankStart = A / DOT_CLK                  = 11.124;
      HorBlankTime  = HorTotalTime - HorBlankStart =  4.495;
      HorSyncStart  = B / DOT_CLK                  = 11.962;
      HorSyncTime   = C / DOT_CLK - HorSyncStart   =  2.743;

   !
   !  vertical timings section:    [msec]
   !

      VerTotalTime  = ( HorTotalTime * d ) / 1000  = 14.057;
      VerAddrTime   = ( HorTotalTime * a ) / 1000  = 13.682;
      VerBlankStart = ( HorTotalTime * a ) / 1000  = 13.682;
      VerBlankTime  = VerTotalTime - VerBlankStart =  0.375;
      VerSyncStart  = ( HorTotalTime * b ) / 1000  = 13.698;
      VerSyncTime   = ( HorTotalTime * ( c - b ) ) / 1000
                                                   = 0.219
   ! Finished !
   ! ޤ !


  ơʤϤοä⡼ɤŬڤʾΰʲ˼
Ƥե֤ʤФޤ


  4.  줳ꤹ

  ʲǼƤ excerpts Ǥϡ-> εѹΤɽ
Ƥޤ
 ʤΥեˤεޤʤ褦ˡ

  ˥ȥ꡼(Τ monitors/mfreq/mfreq64.vda)

           [ESTABLISHED_TIMINGS]
               "640x480 @ 60Hz",
               "640x480 @ 72Hz",
               "640x480 @ 75Hz",
               "800x600 @ 56Hz",
               "800x600 @ 60Hz",
               "800x600 @ 72Hz",
               "800x600 @ 75Hz",
               "1024x768 Interlaced",
               "1024x768 @ 60Hz",
               "1024x768 @ 70Hz",
               "1024x768 @ 75Hz",
           "1152x900 Interlaced",
               "1152x900 @ 60Hz",
               "1152x900 @ 67Hz",
       ->      "1168x876 @ 72Hz",
               "1280x1024 Interlaced",
               "1280x1024 @ 60Hz",
           "1600x1200 Interlaced";


  ܡɾե(ξ boards/s3/764-2.xqa Ǥ
ɤۤȤ Hercules ܡɤѰդƤ
Τˡ Terminator 64/Dram ϤǤʤΤԻ׵ĤǤ)

  [VISUAL]
      BitsPerPixel   = 8;
      MemoryModel    = Packed;
      ColorModel     = Indexed;
      BitsRGB        = 6;
      NumberOfColors = 256;

      [RESOLUTIONS]
      640x480,
      800x600,
      1024x768,
  ->  1168x876,
      1152x900,
      1280x1024

      [DESKTOPS]
      640x480,
      800x600,
      1024x768,
      1152x900,
  ->  1168x876,
      1280x1024,
      1600x1200


 ⤷ɥåȥåʬ㤤ʤ(Υܡɤξϰäɤ)
ȥ꡼ 16bpp  32bpp sections ֤ȤǤޤ


 /etc/Xaccel.ini ϰʲΤ褦ˤʤäƤǤ礦

       --------------------------------------------------------------
           Board   = "s3/764-2.xqa";
           Monitor = "mfreq/mfreq64.vda";
           Depth   = 8;
       ->  Desktop = 1168x876;

           [RESOLUTIONS]
       ->      1168x876,
               1024x768;


  ºݤ XInside ⡼ɥȥ꡼ etc/Xtimings ˤޤ

  --------------------------------------------------------------
  [PREADJUSTED_TIMING]
      PreadjustedTimingName = "1168x876 @ 72Hz";

      HorPixel          = 1168;          // pixels
      VerPixel          = 876;           // lines
      PixelWidthRatio   = 4;
      PixelHeightRatio  = 3;
      HorFrequency      = 64.024;        // kHz
      VerFrequency      = 71.138;        // Hz
      ScanType          = NONINTERLACED;
      HorSyncPolarity   = POSITIVE;
      VerSyncPolarity   = POSITIVE;
      CharacterWidth    = 8;             // pixels
      PixelClock        = 105.000;       // MHz
      HorTotalTime      = 15.619;        // (usec) =  205 chars
      HorAddrTime       = 11.124;        // (usec) =  146 chars
      HorBlankStart     = 11.124;        // (usec) =  146 chars
      HorBlankTime      =  4.495;        // (usec) =   59 chars
      HorSyncStart      = 11.962;        // (usec) =  157 chars
      HorSyncTime       =  2.743;        // (usec) =   36 chars
      VerTotalTime      = 14.057;        // (msec) =  900 lines
      VerAddrTime       = 13.682;        // (msec) =  876 lines
      VerBlankStart     = 13.682;        // (msec) =  876 lines
      VerBlankTime      =  0.375;        // (msec) =   24 lines
      VerSyncStart      = 13.698;        // (msec) =  877 lines
      VerSyncTime       =  0.219;        // (msec) =   14 lines


  Xinside ФäƤ֡ѥ᡼̵ vgaset ץ
餻ơʤѴå뤳ȤǤޤǡXFree
λΤ褦ʥ饤ϤƤǤ礦⤷ƤޤԤä
СΥ饤ϤʤκǽΥ饤Ǥ礦(
 b  c С Xinside Ǥξǧ뤳ȤǤ
ޤǤǤɤ c=b+1 λǤ)


  5. Ǹˡ


 Ǥ ϤʸϤʤΩĤȤ
ԤƤޤ䤬 Xinside 㤦ɤ狼ޤ
Xinside ϤʤʤɤΥƥ®٤ XFree ٤
˿񤤤ۤɤǤ( xterm ɥ xteddy ưƤߤ
СθäƤ뤳Ȥ狼Ǥ礦)Ϥγʧ
⤬ޤʤΤǤ
 󡢤⤷ Xinside ï mini-HOWTO 餫Υݡ
ͤȹͤʤ顢 1.3 ǥФƥȤ
ƤƤⲿʤǤ :)


  6.  Υץư

 ξʥץȤϻŻΤۤȤɤưƤޤ
 ScanType 2Ĥ Polarity Υ饤˽ʬ˵ĤƤ
ΥץȤϤ򥻥åȤʤ⤷ʤޤˤʤ
ΤľʤΤʤ顢ʤΥ˥ȯ
礹Ǥ礦
 ϡ֥֥륹ץեå Xinside ǰ̣äƤ뤫
ΤʤȤդƲ⤷ʤ٤Υ֥
Ѵʤ顢դǤեå졼ȤŤ
ʤäƤޤᡢñ˥˥ƤޤǤ礦(ºݡ
 400x300@72Hz  400x300@144Hz ˤʤäƤޤޤ)

       #!/bin/sh
       ###################################################################
       # XF2XInside
       #
       # This script converts modelines from XF86Config format to XInside
       # format as needed for the etc/Xtiming file.
       #
       # This is a quick hack, so don't expect much error checking (not to
       # speak of anything like user friendlyness).
       #
       # If you call it without arguments it should tell you what to do.
       #
       #                               ( July 1996, hcz@tazlwurm.bb.bawue.de)
       #
       # Btw: New modes created as described in the HOWTO work, but don't
       # show up in Xsetup's menu. Anybody who knows why?
       #
       ####################################################################
       # ΥץȤ etc/Xtiming եˤĤơɬפ˱
       #XF86Config եޥåȤ XInside եޥåȤ
       #⡼ɥ饤ѴΤǤ
       #
       # ϤäĤŻʤΤǡΥ顼åԤʤ
       #(桼եɥͥߤʤȤʤǤ)
       #
       # ϤʤǡȤäƤС򤷤ƤΤ
       #狼Ǥ礦
       #
       # Ȥǡ⡼ɤ HOWTO λŻ˽񤫤Ƥ褦
       #ޤXsetup Υ˥塼ˤɽޤïΤ
       #ΤäƤޤ
       #
       ###################################################################
       #----------------------------------------------- Here we go:
       # Change this if your modeline file lives somewhere else:
       #----------------------------------------------- Ԥ
       # ʤΥ⡼ɥ饤ե뤬ɤ¾ξˤʤ
       # ؤƤ
       XF=/usr/X11/lib/X11/XF86Config
       if [ $# -ne 1 ] ; then
         echo "usage: ${0##*/} <mode>"
         echo " example: ${0##*/} 1024x764"
 echo -e " function: converts $XF modeline entry into\n Xinside Format (stdout
)"         exit 1
       fi
       egrep -i "^[\t ]*modeline.+\"$1\""  /usr/X11/lib/X11/XF86Config |
       gawk '
       NF < 11  { print "! invalid Modeline:\n! " $0 "\n!"; next }
       {
         print "//", $0  ":"
         name = $2
         DOT_CLK = $3;
         A = $4;
         B = $5;
         C = $6;
         D = $7;
         a = $8;
         b = $9;
         c = $10;
         d = $11;
         VerFrequency =  1000000 / ((D / DOT_CLK) * d)
         print "[PREADJUSTED_TIMING]"
         printf "  PreadjustedTimingName = \"%dx%d @ %.0dHz\";\n", A, a, VerFrequency
         print "  HorPixel\t\t= " A ";"
         print "  VerPixel\t\t= " a ";"
         print "  PixelWidthRatio\t= 4;\n  PixelHeightRatio\t= 3;"
         print "  HorFrequency\t\t= " DOT_CLK / D * 1000 ";\t// kHz"
         print "  VerFrequency\t\t= " VerFrequency  ";\t// Hz"
         print "  ScanType\t\t= NONINTERLACED;\t\t// *CHECK*"
         print "  HorSyncPolarity\t= NEGATIVE;\t\t\t// *CHECK*"
         print "  VerSyncPolarity\t= NEGATIVE;\t\t\t// *CHECK*"
         print "  CharacterWidth\t= 8;"
         print "  PixelClock\t\t= " DOT_CLK ";"
         HorTotalTime = D / DOT_CLK
         print "  HorTotalTime\t\t= " HorTotalTime ";"
         print "  HorAddrTime \t\t= " A / DOT_CLK ";"
         print "  HorBlankStart\t\t= " A / DOT_CLK ";"
         print "  HorBlankTime\t\t= " D / DOT_CLK - A / DOT_CLK ";"
         print "  HorSyncStart\t\t= " B / DOT_CLK ";"
         print "  HorSyncTime\t\t= " C / DOT_CLK - B / DOT_CLK ";"
         VerTotalTime  = ( HorTotalTime * d ) / 1000
         print "  VerTotalTime\t\t= " VerTotalTime ";"
         print "  VerAddrTime\t\t= " ( HorTotalTime * a ) / 1000 ";"
         VerBlankStart = ( HorTotalTime * a ) / 1000
    print "  VerBlankStart\t\t= " VerBlankStart ";"
    print "  VerBlankTime\t\t= " VerTotalTime - VerBlankStart ";"
    print "  VerSyncStart\t\t= " ( HorTotalTime * b ) / 1000 ";"
    print "  VerSyncTime\t\t= " ( HorTotalTime * ( c - b ) ) / 1000
    print ""
  }'


  7.  

  Heike Claudia Zimmerer hcz@tazlwurm.bb.bawue.de ̷
ŦŻΤۤȤɤưƤ륹ץȤäƤ줿
Ȥ򴶼դޤ


  8. ԡ饤/ˡΧط

  Marco Melgazzi (s64912@athena.polito.it) (1996)ͭ
-- GPL(Gnu Public License)ŬѡGPL Υԡˤϰʲν
ϢäƤFree Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA.
 ƾɸϤνͭԤΤΤǤʸϤξΤͭ
ĤƤϲݾڤ⤤ޤ

ʲʸ
  (c)opyright 1996 by Marco Melgazzi (s64912@athena.polito.it) - the GPL
  (Gnu Public License) applies. To obtain a copy of the GPL write to the
  Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  USA.
  Trademarks are owned by their owners. There is no warranty on the
  accuracy and/or the usefulness of the information given in this
  document.

( Marco Melgazzi Υᥤ륢ɥ쥹ϸߡmarco@techie.com
ˤʤäƤޤ)

