home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 9 / FreshFishVol9-CD2.bin / bbs / util / mpatch-37.4.lha / MPatch / MPatch.DOC < prev    next >
Text File  |  1994-04-09  |  12KB  |  255 lines

  1. MPATCH - The Monitor Patch Utility, V37.4
  2. =========================================
  3.  
  4. WHY MPATCH?
  5. -----------
  6. Some time ago, I upgraded my old A2000 with the latest Denise revision
  7. since I do a lot of writing and DTP on my AMIGA, and that 50 Hz PAL
  8. display started to hurt my eyes. The MULTISCAN mode was better, but
  9. my C1960 monitor seemed to have problems sync'ing on the 60 Hz signal:
  10. the picture was always stretched vertically, so I had to switch to
  11. MANUAL and adjust the vertical size manually. However, the PAL mode
  12. was then squeezed vertically, resulting in a very odd aspect ratio; so
  13. I had to switch from MANUAL to AUTO and back every time a program
  14. came up with a PAL screen.
  15. The EURO72 mode introduced with V38 was a bit better but its 640 x 400
  16. screen tended to become quite crowded once I had one or two CLI windows 
  17. and the SE window open on it. Also some older software, like the famous
  18. PowerPacker, would always open a 60 Hz Productivity screen - so it had
  19. to be Multiscan (and switching manually) again.
  20.  
  21. Then, one day, I scanned my C include files in search of some struct
  22. definition, and came across the monitor.h file, spotted the word
  23. VSYNCTRUE somewhere, and the rest was history. I had already toyed with
  24. various sync settings on a graphics card, and so I knew that some
  25. monitors (like the C1960) use the polarity of the sync signals to
  26. determine the aspect of the video signals they receive. I just had no
  27. idea that the ECS chipset supports positive sync signals as well.
  28.  
  29. All I had to do is to find out where the BeamCon0 values are stored,
  30. and then write this small program. As I tested it, I found some
  31. other goodies to include, and so MPATCH grew ...
  32.  
  33.  
  34.  
  35. USAGE
  36. -----
  37.  
  38. MPATCH can only be run from the CLI or Shell.
  39.  
  40. MPATCH <monitor-name> [HSYNCTRUE][VSYNCTRUE][SYNCTRUE][LOLDIS]
  41.          [HSYNCDELAY <delay>][VSYNCDELAY <delay>]
  42.                
  43. <monitor-name> is the name of the monitor to be patched, e.g.
  44.    "multiscan.monitor". Note that the ".monitor" extension *MUST*
  45.    be given. Upper/lowercase is also important. V38 (2.1) monitor 
  46.    names are all in lower case; the new modes introduced with V39
  47.    (3.0), however, are mixed case. You must type "DoublePAL" or 
  48.    "DoubleNTSC" in order that these names be recognized.
  49.  
  50. HSYNCTRUE - changes the horizontal sync signal's polarity to positive,
  51.    or "true" (1) logical level. By default, all monitors have their syncs
  52.    set to negative, or "false" (0) logical level.
  53.  
  54. VSYNCTRUE - changes the vertical sync signal's polarity to positive,
  55.    or "true" (1) logical level. By default, all monitors have their syncs
  56.    set to negative, or "false" (0) logical level.
  57.    
  58. SYNCTRUE - this is just a shortcut for HSYNCTRUE VSYNCTRUE; so if you
  59.    specify SYNCTRUE, both syncs are switched to "true" (see above for
  60.    details)
  61.    
  62. LOLDIS - means "LOng LIne DISable". By default, every second scanline
  63.    is a "long line" due to DMA timing restrictions. (The exact length
  64.    of a PAL video scanline would be 227.5 DMA cycles per line. Since
  65.    0.5 cycles are impossible, every second scanline is displayed with
  66.    a length of 228 cycles, hence the name "long line")
  67.    This flag is set by default for all nonstandard modes.
  68.    It should be set for the NTSC mode on PAL AMIGAs as well, at least
  69.    if you are using "BBlank" or a similar utility that enables border
  70.    blanking; otherwise the right border might look a bit wobbly.
  71.  
  72. The following options can only be used with VGA/Multiscan modes, and will
  73. be ignored if used with the PAL or NTSC modes.
  74.  
  75. HSYNCDELAY <value> - Modifies the position of the horizontal sync pulse in
  76.    the horizontal blanking period.
  77.    Negative values will move the display to the right, positive values  
  78.    will move it to the left. Although any value may be given, only values
  79.    between -6 and +8 are reasonable. However, specifying a value beyond
  80.    this range can do no harm, but will set the values to their allowable
  81.    minimum or maximum respectively.
  82.    
  83. VSYNCDELAY <value> - Modifies the position of the sync pulse in the
  84.    vertical blanking period.
  85.    <value> is in scanlines. Positive values move the display "up", while
  86.    negative values move it "down". Any value may be given, but any value
  87.    beyond the limits of the specified monitor will be ignored and the
  88.    timings will be set to their allowable minimum or maximum respectively.
  89.  
  90. The MPATCH command will most likely find a place in your startup-sequence
  91. or user-startup file. It must be inserted after the monitor definitions
  92. have been added to the system's database; I recommend putting it somewhere
  93. at the top of your user-startup file.
  94.  
  95.  
  96.  
  97. HOW TO FIND THE CORRECT SETTINGS FOR YOUR MONITOR
  98. -------------------------------------------------
  99.  
  100. Before you start patching around, you should select your "default" display
  101. mode and adjust the monitor's controls so that it fills most of the screen
  102. and is centered horizontally and vertically. If you own a monitor that has
  103. a ADD/NOR switch (might also be labeled differently on your monitor, so 
  104. consult your manual), set it to ADD (or whatever it is labeled). Such 
  105. switches are found on the C1960 and some older VGA/SVGA multiscans.
  106. If your monitor supports PAL or NTSC display, use one of these modes to
  107. adjust the picture position, since it is not possible to adjust the position
  108. of any video mode with MPATCH.
  109. DO NOT TOUCH any of the monitor's controls afterwards - you won't need to 
  110. anyway. (Close the small trapdoor if the monitor has one!)
  111.  
  112. Now, open a shell window and invoke the Overscan Preferences editor. Select
  113. the monitor you wish to patch. Click on the "Set Text Overscan" gadget.
  114. Note to which direction the display is offset. Note whether it appears
  115. vertically stretched or squeezed. Click "Cancel" (or press <ESCAPE>), and
  116. activate your shell window. Now type: "mpatch <monitor_name>", where
  117. <monitor_name> is the name of the monitor you selected in the Overscan
  118. editor. Add one or more switches following the guidelines below:
  119.  
  120. * If a mode appears stretched vertically (on my C1960, the MultiScan mode
  121.    used to behave this way), try the SYNCTRUE switch.
  122.  
  123. * If a mode appears squeezed vertically, try the VSYNCTRUE switch.
  124.  
  125. * If a mode appears to be too far to the right, try the HSYNCDELAY option
  126.    with a positive value. The effect of HSYNCDELAY is cumulative, so if you
  127.    specify HSYNCDELAY 2, find the picture is still too far to the right,
  128.    you must not type HSYNCDELAY 4, but HSYNCDELAY 2, since the old setting
  129.    is still in effect. Typing HSYNCDELAY 4 would result in a total delay
  130.    of 6! You may of course specify a negative value if you specified a
  131.    value too large.
  132.    Generally, monitors with a scan rate below 31.5 kHz tend to be too far
  133.    to the right, such as the super72 or Double... modes
  134.  
  135. * If a mode appears to be too far to the left, try the HSYNCDELAY option
  136.    with a negative value.
  137.    
  138. * If the right border appears to be somewhat instable, try the LOLDIS
  139.    switch.
  140.  
  141. Press <ENTER> and go back to the Overscan editor. Click "Set Text Overscan"
  142. again. The display should now be somewhat different. If you are satisfied,
  143. note all the switches you set and add a line at the top(!) of your
  144. "S:user-startup" file. If you wish to patch your workbench screen's monitor
  145. as well, you *MUST* insert the MPATCH command before any text is printed
  146. to the console window, or the changes will not affect the workbench screen.
  147.  
  148. Repeat the above steps for all monitors you wish to patch.
  149.  
  150. On my system, I have the following lines at the top of my "S:User-Startup"
  151.  
  152. mpatch multiscan.monitor synctrue hsyncdelay -1
  153. mpatch euro72.monitor hsyncdelay -1
  154. mpatch super72.monitor vsynctrue hsyncdelay 8
  155. mpatch DoublePAL.monitor synctrue hsyncdelay 4
  156. mpatch DoubleNTSC.monitor synctrue hsyncdelay 4
  157.  
  158. With these settings, all modes(!) are perfectly centered on the screen, and
  159. the Super72 display fills the whole screen and has the correct aspect ratio.
  160.  
  161.  
  162.  
  163. TECHNICAL DETAILS
  164. -----------------
  165.  
  166. A) SYNC POLARITY
  167. ----------------
  168.  
  169. Some monitors, especially the C1960 and most VGA Multiscans, use the
  170. polarity of the sync signals to determine the aspect of the picture they
  171. are displaying. The term "polarity", although frequently used in this
  172. co