                                !JFShared
                                =========

Why ?
=====
  The !JFShared directory contains resources for use with any of Justin
Fletcher's programs. These mainly include Basic libraries which are used in
many of his programs. The idea behind this is that like the C DeskLib, these
libraries provide a simple way to write a Wimp program. To paraphrase
Doggysoft's WimpExtension, it hopes to make you think it's a program to
rather than Oh, God. It's a Desktop program to
  (WimpExtension is not required, and although a nice module, almost all of
it's functionality is built into these libraries. Same goes for Interface)


Files :
-------
These are the files in the JFShared resource :
   BasicLib.AreaLib            For use with Fletcher family 6 user system
   BasicLib.ForceLib           Various Keystroke style facilities (unsupported)
   BasicLib.PBSLibrary         JF's Pin Board Server library
   BasicLib.TestLib            For testing of programs
   BasicLib.WimpLib            Main Wimp applications library (RO3)
   BasicLib.WimpLib2           Main Wimp applications library (RO2)
   BasicLib.HeapLib            Management of heap blocks in application space
   BasicLib.EconetLib          Simple Econet handling routines
   BasicLib.CGILibrary         A CGI Library
   Help.*                      StrongHelp manuals for the various libraries
   Skeleton.Message.*          Skeleton Wimp application using MessageTrans
   Skeleton.Squashed.*         Files required by BasCompress to compress the
                               applications
   !ShowError                  Application which will display the error and
                               line of errors in WimpLib based applications.
   IServices                   A module which needs to be placed in
                               System:Modules.Network - this is done
                               automatically by InstallJF.


Usage on RiscOS 2 and RO3.00
============================
The !Boot file should automatically select WimpLib or WimpLib2 depending on
the version of UtilityModule, however some applications may require editing
in their !RunImage file.

The line which will need editing is in PROCinitwimp. Find the line with
Wimp_Initialise on it (in PROCinitwimp) and change the 310 to 200.

MessageTrans applications will need the MsgTrans module loading on RO2 before
they will work.


System Variables
================
The libraries which are in common usage are pointed to by various system
variables. If a library, or other resource within the JFShared application,
needs to be accessed (other than those with pointers) they should be
referenced by JFShared:BasicLib.<library name> or what ever.

The actual variables are :
AreaLibrary$File       Controls the Fletcher 6 user system status files
PBServerLibrary$File   Interface to the PinboardServer protocol
ForceLibrary$File      ForceLib (of no use at present)
JFExtEdit$File         External Edit protocol interface library
JFEconetLibrary$File   Econet SWI interface library
TestLibrary$File       For testing purposes only
HeapLibrary$File       Heap management library
BasicLibrary$File      Pointer to WimpLib or WimpLib2
CGILibrary$File        CGI Library



History
-------
Version 1.00 : Unreleased program used internally.
Version 2.00 : Released to Arcade in form of !JFShared and !Install
Version 2.01 : 04 Mar 1995 - Release to Arcade
               Minor bug fixes to WimpLib and WimpLib2
Version 2.02 : 11 Mar 1995
               WimpLib 1.40 : Extra features for menus
               Fixed !Run file to stop running out of stack
Version 2.03 : 25 Mar 1995
               Added support for ForceLib in form of ForceLibrary$File
               ForceLib : Added PROCinitforce
Version 2.04 : 27 Mar 1995
               WimpLib 1.41 : Added FNsubstvars
Version 2.05 : 30 Mar 1995
               WimpLib 1.42 : Added support for status files
Version 2.06 : 02 Apr 1995
               WimpLib 1.43 : Added FNgstrans function
                              Reorganised structure into groups
                              Added REM help messages for most routines
                              Corrected mistake in CreateIconBarIcon which
                                did not fill the icon
Version 2.07 : 02 May 1995
               WimpLib 1.44 : Added FNsubstvarsp for prefixed vars
Version 2.08 : 04 Jun 1995
               WimpLib 1.45 : Many alterations to FNsubstvars to cope with
                                errors.
                              Almost everything can now take Message file
                                input.
Version 2.09 : 07 Jun 1995
               WimpLib 1.45 : Version for RO2 created correctly.
Version 2.10 : 08 Jun 1995
               Application  : Recognises RO2 and sets BasicLibrary$File
                                correctly.
Version 2.11 : 14 Jun 1995
               WimpLib 1.46 : Fixed bug in FNsubstvars which didn't claim
                                error handler as local.
Version 2.12 : 15 Jun 1995
               TestLib 2.00 : Version number given and data logging to
                                <Wimp$Scrap> added.
                              Renamed variable from <Test$Lib> to
                                <TestLibrary$File>.
               ExtEditLib 1.00 : Written in basic form.
Version 2.13 : 28 Jun 1995
               ExtEditLib 1.01 : Revised to be slightly easier to use.
Version 2.14 : 30 Jun 1995
               WimpLib 1.47 : Fixed bug in PROCreadhelp for menus
               WimpLib2 1.46: Fixed bug in PROCwinsetextent for bit 0 setting
               AreaLib 2.00 : Given version.
Version 2.15 : 04 Jul 1995
               ExtEditLib 1.02 : Editor support added
               ExtEditLib 1.03 : Many bug fixes for editor section
Version 2.16 : 18 Aug 1995
               WimpLib 1.49 : Bug fix for FNLongfilename
Version 2.17 : 25 Aug 1995
               WimpLib 1.50 : CreateIconBarIcon changed to not filling icons
                                to fix display problem when marbling.
Version 2.18 : 25 Aug 1995
               ShowError 1.00 : Moved within structure.
               Help structure added
               Help.WimpLib 1.00 : Copied from StongHelp
Version 2.19 : 26 Aug 1995
               WimpLib 1.51 : redrawicon modified to use ForceRedraw.
                              seticontext and seticonvalid check for same.
               WimpLib2 1.47 : Changes made in WimpLib transfered, pressicon
                               added.
               WimpLib 1.52 : PROCshowfree added to display free space
               Skeleton : Modified Template to cope with showfree.
               Skeleton : Set mask null polls bit
Version 2.20 : 28 Aug 1995
               HeapLib 1.00 : Written and incorporated into JFShared.
Version 2.21 : 29 Aug 1995
               HeapLib 1.01 : lock and unlock of blocks added.
Version 2.22 : 01 Sep 1995
               WimpLib 1.53 : windowtitle modified to update only if changed
                               and redraw only title bar (correctly, unlike
                               FormEd or TemplEd !)
               Help.HeapLib : Written.
               Help.WimpLib : Updated.
               Help.ExtEditLib : Written.
               ExtEditLib 1.04 : modifications to use client FNedit_saverq.
Version 2.23 : 11 Sep 1995
               HeapLib 1.02 : PROCheap_reduce added for not reloc blocks
               WimpLib 1.54 : FNfiletype modified, and FNbasetype added.
                              May mean modification required.
                              FNmenuuntick now allows end of menu.
                              Fix to FNwindowtask to not bother tasks.
                              FNfindtask added.
                              PROCstatusflag and FNstatusgetflag added.
               WimpLib2 1.48 : FNfiletype and FNbasetype modified.
                              FNmenuuntick changed.
                              Fix to FNwindowtask.
                              FNfindtask added.
                              FNtaskname returns Unknown.
                              PROCwindowtitle modified.
               Help.WimpLib : Updated
               Help.HeapLib : Updated
               Help.ExtEditLib : Updated

Version 2.24 : 23 Sep 1995
               !Boot : JFPatch files give error if JFPatch not known.
               WimpLib 1.55 : FNfiletype and FNbase type modified to not give
                              error if bad filename.
                              PROCeerror for External errors in non-wimp
                              programs.
               WimpLib2 1.49 : Ditto
               Help.WimpLib : Updated
               Help.HeapLib : Updated
               Help.ExtEditLib : Updated

Version 2.25 : 30 Oct 1995
               WimpLib2 1.50 : Modifications to FNcreateicon to bring in line
                               with WimpLib.

Version 2.26 : 15 Apr 1996
               WimpLib 1.56 : FNstring0 passed null will return null
               WimpLib2 1.51 : ditto
               InstallJF 1.02 : Now in a handy desktop application :-)
               Help.WimpLib : Updated
               Help.HeapLib : Updated
               Help.ExtEditLib : Updated

Version 2.27 : 17 Apr 1996
               Application updated to use version number of library.
               Skeleton : checks the version number

Version 2.28 : 23 May 1996
               WimpLib2 1.52 : Various fixes and changes - works now !
               EconetLib 1.00 : Added (very rudimentary)
               Help.* : Updated
               Help.EconetLib : Added

Version 2.29 : 05 Jun 1996
               CGILibrary 1.00 : Incorporated into JFShared
               WimpLib 1.56  : Added PROCdragsave
               WimpLib2 1.53 : ditto
               Help.* : Updated
               Help.CGILibrary : Added

Version 2.30 : 08 Aug 1996
               TestLib 2.01 : Bug in creating log file fixed
               SocketLib 1.00 : Written and added.
               WimpLib 1.58 : Added PROCresizewinto, M option for menus
               WimpLib2 1.54 : Ditto
               Help.* : Updated
               Help.SocketLib : Added

Version 2.31 : 10 Aug 1996
               SocketLib 1.01 : Fixed memory release bug
               SocketLib 1.02 : Fixed many bugs - Thanks to Dave Thomas

Version 2.32 : 21 Aug 1996
               WimpLib 1.59 : Fixed menu heights at Daves request
                              resizewinto code fixed so that it works !
               WimpLib2 1.55 : Ditto

Version 2.33 : 23 Aug 1996
               WimpLib 1.60 : Added support for keystrokes on menus in
                              createmenu, decodemenu and the menu help.
               WimpLib2 1.56 : Ditto
               Help.WimpLib : Updated
               WimpLib 1.61 : Changed PROCseticontext to just update icon,
                              not force a redraw (undo of 2.19!) use Needs
                              Help if things don't redraw properly.
               WimpLib2 1.57 : Ditto

Version 2.34 : 31 Aug 1996
               WimpLib 1.62 : Thoughtlessness in FNmsgtoken meant that
                              I couldn't pass filenames as parameters - fixed
               WimpLib2 1.58 : Ditto
               Help.WimpLib : Updated.

Version 2.35 : 27 Sep 1996
               SocketLib 1.03 : Modified service routines to use my IServices
                                module.
               WimpLib 1.63 : Resized iconbar icon to the size used by the
                              network icon
               WimpLib2 1.59 : Ditto
               Help.WimpLib : Updated

Version 2.36 : 30 Sep 1996
               WimpLib 1.64 : Added facility to create iconbar icons with
                              priorities.
               WimpLib2 1.60 : Removed priority comments and added code to
                               emulate extended positions.

Version 2.37 : 15 Oct 1996
               HeapLib 1.03 : Fixed Heap_Garbage so that it actually works;
                              previously it had been attempting to move locked
                              blocks.

Version 2.38 : 17 Oct 1996
               IServices 1.04 : Placed in the JFShared directory.
               Released in two forms - the standard and aol releases.
               AOL is simply the standard version with a prettier install
               program.
               WimpLib 1.65 : Fixed bug in MsgToken from v1.61
               WimpLib2 1.61 : Ditto
               