                         Wimppatch - Help File
                         Sat 30th January 1999
                       -------------------------

  Please note that this release of the patch can be considered a very
  beta release. If you do not want to try it then do not. If you try
  it and don't like it the source is there for you to poke around with.
  If you don't want to do that then don't use it. If there are any
  problems email me at ateirney@usa.net and I will see whether I can
  fix them. Please read all the documentation before using it.

  1.0 What does Wimp patch do ?

      Well in a really simplistic view it patches Wimp SWIs so that
      selected Wimp applications can be preemtively multitasked
      using the Wimp2 module.
      
  2.0 Disclaimer

      I, Andrew Teirney, take no responsibility for any loss of data,
      loss of life or any other negative result, resulting from the
      use of this program.

  3.0 How do I use this patch ?

      To install the patch all one needs to do is run the application
      this ensures that all the needed modules are loaded and the
      Risc OS version is greater than or equal to 3.10. If all that
      is fine Wimppatch is loaded into memory.

      When one receives this patch no applications are setup to be
      automatically preempted. For this to occur one has to edit the
      text file within !Wimppatch named Tasks, which tells the patch
      what applications to preempt. See the next section on how to
      setup this file.

  4.0 Wimppatch Include File Setup

      The Wimppatch Include File is pointed to by the system variable
      <Wimppatch$IncludeFile> this is automatically setup to point
      to the file named Tasks within the !Wimppatch appliation when
      one runs !Wimppatch.

      The format of each line is as follows:

        <taskname>[<tab>[<options>]]

      Where <taskname> is the taskname of the wimptask as shown in the
      Taskmanager, <tab> is an ASCII character code &09 and <options>
      are the options which are detailed below. The fields that are
      enclosed within [ and ] are optional. A blank line is perfectly
      legal, it is advised to not have any. The <taskname> field is
      case insensitive.

      If the first character of a line is a '*' then this means any
      taskname, the options following this entry are taken and applied
      to all tasks starting other that the tasks listed before it in
      the file. It is advised if one is to have a entry with '*' to
      have it on the last line otherwise all the entries below it are
      ignored.

      The options field can contain any of the four options which are
      explained below.
        
        -compatible
        The default messages code causes Wimp2 to que the wimp messages,
        this can cause problems with file editors etc. This option
        causes preemption to be halted until the messages are dealt
        with.
        
        Introduced in version 0.22 is a new default messages handling
        system, for the average user this will not affect them. What
        this new systems incorperates is a way to tell Wimppatch what
        wimp messages should be dealt with immediately such as the
        Data_Open messages (5) etc. These messages which will be sent
        to the application immediately are listed within the file
        <Wimppatch$Dir>.Messages . The file format is essentially a
        list of words with each word containing the a wimp messages
        value to be passed directly onto the application. This should
        hopefully allow programs which rely heavily on Wimp Messages
        to be preempted more successfully.
        
        -query
        This option is useful if you do not want a task to be
        preemtively multitasked all the time. What it does is on
        starting the task is brings up a crude message asking you,
        the user, whether or not you want to preempt the starting
        task. If this option is not present the task is automatically
        preempted without user intervention.
        
        Introduced in version 0.22 is a new message which incorperates
        the starting tasks taskname so that the user can see what task
        thay are beig asked about. Currently the max length taskname is
        34 characters. This can be easily increased but for now I think
        34 should be long enough
        
        -never
        This option is supplied for applications that are never to be
        patched. All entries containing this flag should be above the
        line containing '*' as the first character.
        
        -filter
        This option is supplied so that the various functions provided
        by external modules can exist. Such examples of this is the
        HGPatch module which intercepts the Hourglass_SWIs for the
        applications being preempted and only shows the hourglass when
        the pointer enters one of the tasks windows. It is switch off
        on exit.
        
        -maxslice <value>
        This option was added to enable the overriding of the default
        time slice that Wimp2 tasks receive on startup. This <value> is
        the maximum time in milli-seconds that the task may be running
        for one given length of time.
            
  5.0 * Commands
  
      The Wimppatch provides one * command which is Wimppatch_Info.
      
      *Wimppatch_Info
      This command displays a list of Wimppatch's internal information
      for you to view. It is handy to see which tasks are patched.
                        
  6.0 Source Code and Assembling it
  
      All the source code can be found in the file Source within
      the !Wimppatch Application. As the source code is included
      feel free to develop it further.
      
  7.0 Known Problems
  
      From testing I have found the module FileAccessLED written
      by Roger I Lynn causes several problems so it is advised to
      RMKill the module before the use of this patch. The reason as
      to why this module causes problems is unknown at the moment.

