Short:        switches PAL to NTSC on interlace screens to reduce flicker
Architecture: m68k-amigaos

    PatchLace v1.0  © Martin W. Scott, 1992
    ---------------------------------------
    [Released 7/92]


    Requirements
    ------------
    Workbench 2.04
    ESC ('Fatter') Agnus (the 1-meg chipram Agnus)


    When you won't need PatchLace
    -----------------------------
    You have a flicker-fixer
    You have a VGA or A2024 monitor


    Overview
    --------
    As a poor Amiga owner, I can't afford a multiscan monitor or flicker
    fixer, so when a program uses an interlaced screen, it's a real pain on
    the eyes. Ways to reduce flicker are:

        - Fiddle around with the palette (if you get the chance);

        - Wear shades (hmm...feel a bit stupid doing that);

        - If you're machine is PAL, switch it to NTSC mode.

    The latter one reduces flicker since frames are updated 30    
    frames/second rather than 25 frames/second. Now with the ECS Agnus    
    (8372A/B) installed, you can switch between PAL and NTSC, and there are
    programs to do this (by Nico Francois, for example). The trouble is
    that non-interlaced screens get put into NTSC, you lose the bottom of  
    some screens, and the top border looks garbled.

    This program patches the OpenScreen routines to kick in NTSC mode when
    the following criteria are met:

        - An interlaced screen is wanted;

        - PAL mode has NOT been specifically requested;

        - The screen height is no greater than the Workbench overscan
	  prefs allow, or a 'standard' screen is asked for, implying caller
	  will use what it gets.

    These conditions could be tightened to look at things like overscan tags.
    If there's enough interest, I'll change it.


    Starting PatchLace
    ------------------
    Easiest is to plonk the PatchLace program to your WBStartup drawer, and
    forget about it. You can also start it from CLI, by a command such as

        > Run >NIL: PatchLace

    in your user-startup. The patches are applied safely (in the Commodore-
    approved manner) and can be removed by sending PatchLace a CONTROL_C
    break signal. How this is done depends on hou you started PatchLace. If
    it was from the Workbench, you'll have to use a program such as Xoper
    or TaskX to send a break signal. If it was started from the CLI, you
    can use the 'Break' command, in conjunction with the 'Status' command
    to determine which process number it has. For example:

        > Status
          Process  1: Loaded as command: status
          Process  2: Loaded as command: patchlace

        > Break 2 C ; send CONTROL_C signal

    The patches can be toggled on and off by sending a CONTROL_D signal by
    a similar procedure. When a signal is sent, PatchLace flashes the
    screen if you are turning OFF the patch.
    
    A stack size of 2000 bytes seems sufficient (from Workbench startup
    anyway). Well, that's about it. Don't expect the miraculous
    disappearance of flicker, but there is a significant improvement. And
    if you don't already use it, check out LacePointer by Nico Francois -
    it makes the pointer prettier on interlaced screens.


    Compatability List
    ------------------
    This is not at all meant to be all-encompassing, just an indication of
    what you can expect.

    The following work as you'd expect:

        Display (Commodore picture viewer);
        Mostra 1.04;
        PhotonPaint;
        PicBase 0.36;
        SunClock 1.0;
        AHextrix 1.0;
        Hex 1.01;
        Vertex;
	DirWork 1.62;

    And the following don't switch into NTSC mode:

        DeluxePaint III;

    Feel free to inform me of programs which should appear on either list.


    Finally...
    ----------
    I wrote this for my own use, specifically for a few programs that use
    interlaced screens (PicBase, SunClock etc.). However, other users
    (mainly PAL users) may have a use for it. Note that it won't work with
    some programs (such as DPaint) which check to see what displaymode
    you're using and ask for a screen to fit -- in such instances, you may
    use programs that GLOBALLY alter the displaymode. 

    Another small problem I've found is that Spliner, the screen-blanking
    program by Sebastiano Vigna, allows you to select the displaymode, but
    doesn't request exactly what you ask. Instead it checks which mode
    you're in, and only asks for the one you specified if it is different.
    Here's an example of what I mean:

        You are running a PAL system;
        You want to blank with a PAL interlaced screen;
        Spliner sees you're in PAL already, so just asks for interlace;
        PatchLace assumes the caller doesn't care which, and adds NTSC;
        You get the wrong screen.

    At least, I assume that's what's happening -- my code may be wrong.
    This isn't a major problem generally (or is it?) but when it comes to
    screen blanking, I can do without the PAL-to-NTSC monitor jump. Other
    display blankers, such as ASwarmIII, request what YOU request.

    One last thing. Programs such as this should perhaps be written as
    commodities. This one isn't, since I don't (at present) use any
    commodities, and so don't want that library wasting space in my system.
    However, if this is something you'd like to see, let me know.


    Distribution
    ------------
    PatchLace is freely redistributable; it must be distributed with this
    document intact, and it may not be sold for profit. Permission must be
    obtained from me to distribute this program on a magazine-disk (since
    that is a form of profit-making).


    Contact
    -------
    I'd be very grateful for bug-reports, comments or suggestions.  As
    always, contributions are not obligatory, but would be happily
    accepted.  I can be reached by postal mail at:

        Martin W. Scott,
        23, Drum Brae North,
        Edinburgh,
        EH4 8AT
        United Kingdom (the one that keeps getting Conservative
                        governments it didn't elect democratically).

    or by e-mail, mws@castle.ed.ac.uk                  

    Source is available on request (by email or reply-paid envelope with
    disk).

    Enjoy!

        Martin.