Wimp_Extend Information 

   This file details the SWI Wimp_Extend. This SWI allows various features
of the wimp to be extended or replaced without having to softload a new
wimp.

   This mechanism cannot be guaranteed in future releases and as such must
not be made public. It is available in Wimps with version numbers 3.22 and
3.23# (# is a lower case letter).

Entry to the SWI has R0 as a reason code (currently 1 to 5).
    
Entry:
======
  R0= 1

Exit:
  R0= wimp workspace address

Entry:
======
  R0=2

Exit:
  R0= Jumptable of form 
        B xxxx
        B xxxx
  where xxxx are internal wimp functions that return with MOV PC,lr. Thus
to call such a function, a code fragment similar to the following is required:

        MOV     lr,PC
        LDR     R0,jumptable
        ADD     PC,R0,function_number (#4*fn or register)
     <  NOP  >  depends on any other code required
return_label

Note that R12 may be required for some functions to be called.
Currently the available functions are: getspriteaddress, pushfontstring
callaswi, ExitWimp and ExitWimp2.


Entry:
======
   R0= 3
   R1= SWI callback

Exit:
   R0= previous SWI callback

The given callback is called whenever Wimp_XXXX is called

On entry to the callback R12 points to the wimp workspace and R11 is the SWI
number (eg. SWI &400ff => R11=63) The callback should exit by calling callaswi
or ExitWimp eg.

callback
        LDR     R14,wimp_jumptable
        TEQ     R11,#63                 ; is this SWI 400FF ?
        .....                           ; code to handle custom SWI
        ADDEQ   PC,R14,#12              ; our swi so call ExitWimp
        ADD     PC,R14,#8               ; not our swi so pass on

Entry:
======
   R0=4

Exit:
   R0= spritename pointer
   R1= list_at pointer

For use with getspriteaddress

Entry:
======
    R0=5
    R1= tiling callback

Exit:
    R0 = previous tiling callback

This callback is called in place of the wimp's window backdrop tiling mechanism

eg.

        Push    "lr"
        .... do something (current graphics viewport set up by wimp)
        Pull    "PC"
