Home » Archimedes archive » Acorn User » AU 1993-10.adf » !OmniDesk_OmniDesk » !OmniDesk/Resources/Interface?

!OmniDesk/Resources/Interface?

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1993-10.adf » !OmniDesk_OmniDesk
Filename: !OmniDesk/Resources/Interface?
Read OK:
File size: 5828 bytes
Load address: 0000
Exec address: 0000
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
Interface 2.00 
� Software Interrupt 1990

See notes at end for update info......

This manual and software is public domain.  It may be copied and distributed freely 
as long as:

       It is not separated from the documentation (except for commercial use)
       The module is not tampered with
       You do not claim that you have written the module
       Do not use any of the code contained in this module in your own code

If you wish to use this in a commercial product please contact me so that I can make 
sure you have the latest release, please send a disk.

In no circumstances shall the author be liable for any damage, loss of profits, time or 
data or any indirect or consequential loss rising out of the use of this software or 
inability to use this software.

Contacts:
       Arcade BBS          (081 654 2212)                   
       The World Of Cryton (0749 679794)     

       All mail on the above Bulletin Bords should be mailed to JICK

**************** Introduction ***********************************************
 
Interface is a small module that allows application programmers to implement a 
colourful and pleasant graphical user interface.  Interface provides many more 
functions that allows you to change the pointer shape easily and to interface with the 
!Help or !Spy application.

The Interface module provides functions to improve the friendliness and appearance 
of the application. The application should still operate as stated in  the Acorn 
guidelines in the Programmers Reference Manuals.

The module implements a number of SWIs which are described further in this 
manual, these SWI calls can be called from any language.  Most of the functions 
provided are specified in the icons validation string, and so no complex 
programming is needed to make the application look good.

This guide tells you how to fully implement the features of Interface.  It is split into 
the follow sections:

        The first section explains the validation strings options provided
        by Interface.
        The next section gives details of the SWI calls provided.
        The remaining section covers hints and tips on programming.






**************** Technical details ***********************************************

An indirected text icon can have a validation string which is used to pass further 
information to the WIMP, such as what border type the icon has and also what 
pointer, if any should be displayed whilst over this icon.  The syntax of a validation 
string is:

  validation string ::- command {;command}*
  command           ::- (b | z) border-type {border-spec} | 
                        r on/off-type {,icon-number}* |
                        u on/off-type {,icon-number}* |
                        p text-string {,x} {,y} |
                        i text-string |
                        k key-code
  border-spec       ::- {,button-slabbing-mask} {,slabbing-time} {,colour}*

The parameters above are described under the relevant validation command.
In simple terms, a validation string consists of a series of 'commands', each starting 
with a single letter and seperated from the following command by a semi-colon.  
{}* means zero or more of the thing inside the {}.  The following commands are 
available with the Interface module.

These commands are provided in addition to the standard Wimp validation strings.  
I suggest that you edit the !FormEd program to allow you to enter larger validation 
strings, otherwise when entering a help command you will only be allowed a 
maximum of 80 characters.

The (B)order command tells Interface which border to use when rendering an icon.  
The border types available at present are :

        border type 0, this is a single border used mainly for headings and action icons.
        The icon will slab inwards if the user clicks a button whilst the pointer is over 
        the icon providing it is not setup to ignore mouse clicks.

        border type 1, this is a double border and should be used to group together 
        icons that perform an operation.

        border type 2, this is a triple border and should be used on the default action         
        button.  The icon will slab inwards when the user clicks a button whilst the 
        pointer is over this icon providing it is not setup to ignore mouse clicks.

        border type 3, this is a wide inverted border and should be used on writable
        icons.  This border type is usually used in-conjunction with the writable
        pointer.
        
        border type 4, this is an inverted version of border type 0
        
        border type 5, this is a double wide border as used by acorn in ros 3
        
        border type 6, etched in border
        
        border type 7, similar to border type 0, thinner in mode 20

The second optional parameter is the button slabbing mask, this states whether the 
icon should be slabbed until the button is released.  The values contained in this 
parameter can be from 0 to 7.  The button slabbing mask can be calculated in the 
following way:

        Value   Button          Meaning
        1       Adjust  slab icon until adjust is released
        2       Menu    slab icon until menu is released
        4       Select  slab icon until select is released

The button slabbing mask can then be calculated by adding together the required 
button values.  

The button slabbing time is the minimum time that the icon will be slabbed for, the 
default time is for 15cs.  This value is a decimal number in centi-seconds.
The colours are specified in the following order:

        {,border colour1} {,border colour2} {,slabbing out colour} 
        {,slabbing in colour} {,inner channel colour}

These colours can be any valid WIMP colour in the range of 0 to 15, the default 
selection is 4, 0, 1, 14, 12.

The (R)adio command specified in the validation string is used to set the state of 
other radio button type icons.  The R command is followed by a decimal number in 
the range 0 to 2, the action that these perform is:

        Radio type              Operation
        0               this has the effect of switching off the specified icon(s).
        1               this has the effect of switching on the specified icon(s).      
        2               this has the effect of toggling the icons current state.

This command is then followed by the numbers of the icons you wish to alter, these 
should be separated by commas.  This command may be specified more than once in 
a validation string, for example to switch icons 1 & 2 off, 3 & 4 on and toggle the 
state of icons 5 & 6 you could use the following validation string

        R0,1,2;R1,3,4;R2,5,6

The (U)nselectable command in the validation string has the effect of shading the 
icon grey so that it cannot be selected by the user.  It is followed by a decimal 
number in the range 0 to 2, the action that these is described above in the radio 
command.

This command is then followed by the numbers of the icons you wish to alter, these 
should be separated by commas.  This command may be specified more than once in 
a validation string, for example to shade icons 1 & 2, un-shade 3 & 4 and toggle the 
state of icons 5 & 6 you could use the following validation string

        U0,1,2;U1,3,4;U2,5,6

The (P)ointer command is used to define a pointer to be displayed when the pointer 
is over that icon.  The first parameter is a sprite name to use for the pointer, this 
should be no longer than 12 characters and should be present in the WIMP sprite 
pool.  The optional parameters specify the x and y offsets to the active point in the 
sprite, these should be specified in pixels.

The (I)nformation command is used to define a message to be sent to the interactive 
help application when the pointer is over the icon.  If you wish to use a semi-colon 
then you must place two next to each other.  The maximum length of the help 
message is 235 characters.

The Interface module will change to the specified pointer when the mouse pointer is 
over the icon/workarea, if no pointer is specified then the pointer will default to 
shape one (the default arrow shape).  There are 5 pointer shapes designed in the 
sprite file in the !Interface directory, these are:

        ptr_write - this pointer should be used on writable icons, the suggested active
        point is at coordinates x = 4, y = 4.

        ptr_menu - this pointer is used where a menu can be activated by pressing the
        menu button over the icon.  This stops the user having to search all over the
        window to find where the menu is. The suggested active point is x = 6, y = 5.

        ptr_direct - this pointer is used where an object may be re-sized, the suggested
        active point is at x = 13, y = 7.

        ptr_hand - this pointer is used where and icon may be dragged.  It is usually set
        on the workarea, but it can be used on any icon (the save file icon looks great
        when using it), its suggested active point is at x = 12, y = 8.

        ptr_cross - this pointer is used as a crosshair, it is the same as the one used in the
        Draw application.  This icon gives the user a precise point when working with
        line drawings, its suggested active point is at x = 13, y = 7.

You may also design your own pointers, which should be loaded into the WIMP 
sprite pool.  There are a few points that you should note when designing pointers 
these are :

        Pointer sprite names should have the form ptr_XXXXX, although this is not
        compulsory it helps so that you do not get confused with pointers and normal
        sprites.

        Do not use logical colour 2 in the pointer sprites, as this is unavailable in very
        high resolution modes.

The pointers used should only be valid in your application, so you must not mask 
out the Pointer_Leaving_Window in your application.  You should claim 
Null_Reason_Code when passed to your application, otherwise the pointer will not 
change when the pointer is over the icon/workarea, see the examples for more.

You should support the !Help application to help new users using your application, 
this is why I implemented a feature in Interface to make this easier.  The following 
was for some reason not published in the Programmers Reference Manuals, but was 
in the pre-release disc version of the manuals.

For an application to use interactive help, two WIMP messages are employed.  One 
is used by the Help to request help, and the other is used by the application to return 
the help message.

To request help, the Help application sends a message of the following form:

block   +16     &502 - indicates request for help
                +20     mouse x co-ordinate
                +24     mouse y co-ordinate
                +28     mouse button state
                +32     window handle               (-1 if not over a window)
                +36     icon handle                 (-1 if not over an icon)

The WIMP system will pass this message automatically to the task in charge of the 
appropriate window/icon.  If the application receiving the message wishes to produce 
some help, it should respond with the following message:

block   +16     &503
                +20     help message terminated by 0

This message can be sent to the Help application by using Wimp_SendHelp, which 
is provided by the Interface module (SWI &81687).

The help text may  contain any printable character codes.  If the sequence |M is 
encountered then this will be treated as a line break and subsequent text will be 
printed on the next line in the window.  If the text is too long for one line then it will 
be split at a word boundary (space character).

The text should consist of  simple complete English sentences, each starting on a 
new line and ending with a full stop.  The sentences should usually be simple 
imperatives or information such as:

        Click SELECT to set the alarm.

        You are in Select mode.

        Click ADJUST to change to path edit mode.

        This is the icon for Edit.

In general you need not mention menu entries, except when specific ones interact 
with pointer operations.  As a general rule present information of interest to the 
beginner near the top, and expert tips or information lower down.

You must use the terminology defined.  For mouse operations you must use initial 
capitals (for example Click).  The mouse buttons must be in capitals (for example 
SELECT), as must key names (for example ESC, RETURN, SHIFT, CONTROL, A, B, F1, 
COPY).  miss out speedups and shortcuts - just provide enough to help a beginner 
without drowning them with information.

Provide interactive help thoroughly - include the icon bar, and the workarea of all 
your windows.  If no actions are possible in a window, just

        This window shows....

if better than nothing.

You should assume a user knows:

        what a MENU key is
        how to navigate menu trees and choose entries
        what the icon bar is
        how to move/size/toggle/close windows, and so on
        what 'dragging an icon' means
        what 'filling in a field' (writable icon) means

The keycode command should be placed in the icon that is activated by the 
keycode.  It should be a decimal integer specifying the key.  The up/down
arrows, tab etc.. are dealt with.


**************************** The SWI Calls *********************************

Wimp_BorderIcon (Interface_SlabButton) (SWI &81680)

R1 = pointer to block
R1 preserved

Interrupts are not defined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

The block contains the following on entry:

        R1+0    mouse x (screen coordinates - not window relative)
        R1+4    mouse y
        R1+8    buttons (depending on icon button type)
        R1+12   window handle
        R1+16   icon handle  

This call is used to update an icons border.  It is typically called as a result of a 
Mouse_Click event, if the icon has a border type of 0 or 2 then the icon will slab 
inwards.  The format of the validation string is described in the previous section.

The application should the perform the task and then force the icon to normal status 
by calling Wimp_BorderIcon (SWI &81680) with R1+8 set to 0.

The code to border icons and windows is outlined in the section Programming 
Interface. 

Note that the mouse coordinates specified in R1+0 and R1+4 are not used by the 
SWI and are only present to make the block compatible with a Mouse_Click event 
block.

Wimp_BorderWindow (SWI &81681)

None





Wimp_BorderWindow (Interface_Render3dWindow) (SWI &81681)

R1 = pointer to block
R1 preserved

Interrupts are not defined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

The block contains the following on entry:

        R1+0    window handle
        R1+4    visible area minimum x coordinate
        R1+8    visible area minimum y coordinate
        R1+12   visible area maximum x coordinate
        R1+16   visible area maximum y coordinate
        R1+20   scroll x offset relative to work area origin
        R1+24   scroll y offset relative to work area origin
        R1+28   current graphics window minimum x coordinate
        R1+32   current graphics window minimum y coordinate
        R1+36   current graphics window maximum x coordinate
        R1+40   current graphics window maximum y coordinate

This call is used to redraw the borders of icons in the window that are not up-to-date,  
this SWI is typically called during the redraw loop of a window.  The SWI will 
update the window, drawing borders around any icons which have the b command 
specified in the validation string and are within the specified graphics window.

The code to border icons and windows is outlined in the section Programming 
Interface. 

Wimp_BorderIcon (SWI &81680)

None 




Wimp_ClaimInterface (Interface_Initialise) (SWI &81682)

R0 = task handle
R0 preserved

Interrupts are not defined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

This SWI allows your application to use pointers via the Interface module.  This 
SWI should be called at the beginning of your program.  If you don't use 
Wimp_ClaimInterface then your pointers will not be displayed.

Wimp_ReleaseInterface (SWI &81683)

None




Wimp_ReleaseInterface (Interface_CloseDown) (SWI &81683)

R0 = task handle
R0 preserved

Interrupts are not defined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

This SWI stops your application from using pointers.  When this SWI is called 
Interface Manager will erase any workarea pointers assigned to your application and 
free the memory.  This should be called in your exit handler, also if an error occurs 
you should also call this SWI to stop other applications from gaining your pointers.

Wimp_ClaimInterface (SWI &81682)

None




Wimp_SetWorkareaPointer (Interface_SetWorkareaPointer) (SWI &81684)

R1 = pointer to block
R1 preserved

Interrupt status is undefined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

The block contains the following on entry:

        R1+0    window handle
        R1+4    minimum x coordinate of bounding box
        R1+8    minimum y coordinate of bounding box
        R1+12   maximum x coordinate of bounding box
        R1+16   maximum y coordinate of bounding box
        R1+20   24 bytes of pointer data

This specifies the pointer for an area of the window.
The bounding box coordinates are given relative to the window's work area origin.  
R1+4 to R1+16 can be set to -1 to specify the whole of the window's work area.
The pointer data at +20 to +44 contains the sprite name and any x, y offset, see 
validation strings for more information.

Wimp_RemoveWorkareaPointer (SWI &81685)
Wimp_PollPointer (SWI &81686)

None





Wimp_RemoveWorkareaPointer (Interface_RemoveWorkareaPointer) (SWI &81685)

R0 = task handle
R1 = pointer to block

R0 preserved
R1 preserved

Interrupt status is undefined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

The block contains the following on entry:

        R1+0    window handle
        R1+4    minimum x coordinate of bounding box
        R1+8    minimum y coordinate of bounding box
        R1+12   maximum x coordinate of bounding box
        R1+16   maximum y coordinate of bounding box

This call removes a previously installed pointer from the list of active pointer areas 
for the specified window.  When a window is deleted you should remove any 
pointers that were related to the window, otherwise these pointers may become 
active on any window which gains the same window handle in the future. 

The bounding box coordinates are given relative to the window's work area origin.  
R1+4 to R1+16 can be set to -1 to specify the whole of the window's work area.  
R1+4 to R1+16 may be set to 0 to remove all work area pointers assigned to the 
window.

Wimp_SetWorkareaPointer (SWI &81684)
Wimp_PollPointer (SWI &81686)

None





Wimp_PollPointer (Interface_Poll) (SWI &81686)

R0 = Wimp_Poll reason code
R2 = task handle

R0 preserved
R@ preserved

Interrupt status is undefined
Fast interrupts are enabled

Processor is in SVC mode

SWI not re-entrant

This call checks to see if the pointer is up-to-date.  If the pointer is not up-to-date it 
will change to the pointer specified in the icons validation string.  If the pointer is 
not over an icon then  the pointer will change according to the position on the 
window background.

Note that wimp_poll reason codes 0 and 4 should not be masked out, otherwise the 
pointer will be out-of-date and will not function correctly.

Wimp_SetWorkareaPointer (SWI &81684)
Wimp_RemoveWorkareaPointer (SWI &81685)

None





Wimp_SendInformation (Interface_SendHelp) (SWI &81687)

R1 = message block as returned from help application
R1 preserved

Interrupt status is undefined
Fast interrupts are enabled

Processor is in SVC mode

SWI not re-entrant

This call returns a help text message to the interactive help application.  It should be 
called when a message with the number &502 is received and the pointer is over an 
icon.  If there is a message in the icons validation string that the pointer is currently 
over then this will be sent to the help application.  It is up to the applications 
programmer to take care of the help message when the pointer is over the icon on the 
icon bar or is over the window workarea. 

None

None


Wimp_PreProcessKey (Interface_PreProcessKey) (SWI &81688)

R0 = event type
R1 = event block
R2 = task handle

R0 = updated to new event type
R1 = updated event block
R2 = 0 if event was not dealt intercepted

This call pre-processes the up, down, tab, shift-tab keys and any specified in a specific icons
validation string using the command k<keycode>.  The SWI will move icon, if neccessary or activate
a button.  This call sould be called after the wimp_poll command, it will match the key to an icon
and if neccessary modify your wimp poll block and event type.


Wimp_BorderPlotIcon (Interface_Plot3dIcon) (SWI &81689)

R0 = window state (either from wimp_update/redraw or from a wimp_getwindowstate)
R1 = icon block as for Wimp_PlotIcon

This call plots a border on a window like Wimp_PlotIcon.  The icon block passed in R1
should contain a block as described for Wimp_PlotIcon in the PRMs.

Wimp_BorderBoundingBox (Interface_BoundingBox) (SWI &8168A)

R1 = icon block as for Wimp_PlotIcon

R1 = updates icon block
          
          offset
          0         min x
          4         min y
          8         max x
          12        max y
          16        border width
          20        button slab state (1 = out, 0 = in)

This call returns information about the icon block passed to it.  If you wish to
get the size of an icons box use Wimp_GetIconState and then pass the icon block 
returned to this function.



Changes from version 1.32

this version has been fully re-written using the acorn aof assembler.
border type has changed to z to avoid conflicts with risc-os 3
Interface_Plot3dIcon has been changed so the first parameter is a window state block instead of a window handle
names has changed to interface_...., old names are still supported
better redraw code to correct problems with multi-sync modes where the icons were not alligned correctly.
Interface_BoundingBox now returns the state of the button 
new border types

*command to allow changes in the slabbing colours.
00000000  49 6e 74 65 72 66 61 63  65 20 32 2e 30 30 20 0a  |Interface 2.00 .|
00000010  a9 20 53 6f 66 74 77 61  72 65 20 49 6e 74 65 72  |. Software Inter|
00000020  72 75 70 74 20 31 39 39  30 0a 0a 53 65 65 20 6e  |rupt 1990..See n|
00000030  6f 74 65 73 20 61 74 20  65 6e 64 20 66 6f 72 20  |otes at end for |
00000040  75 70 64 61 74 65 20 69  6e 66 6f 2e 2e 2e 2e 2e  |update info.....|
00000050  2e 0a 0a 54 68 69 73 20  6d 61 6e 75 61 6c 20 61  |...This manual a|
00000060  6e 64 20 73 6f 66 74 77  61 72 65 20 69 73 20 70  |nd software is p|
00000070  75 62 6c 69 63 20 64 6f  6d 61 69 6e 2e 20 20 49  |ublic domain.  I|
00000080  74 20 6d 61 79 20 62 65  20 63 6f 70 69 65 64 20  |t may be copied |
00000090  61 6e 64 20 64 69 73 74  72 69 62 75 74 65 64 20  |and distributed |
000000a0  66 72 65 65 6c 79 20 0a  61 73 20 6c 6f 6e 67 20  |freely .as long |
000000b0  61 73 3a 0a 0a 20 20 20  20 20 20 20 49 74 20 69  |as:..       It i|
000000c0  73 20 6e 6f 74 20 73 65  70 61 72 61 74 65 64 20  |s not separated |
000000d0  66 72 6f 6d 20 74 68 65  20 64 6f 63 75 6d 65 6e  |from the documen|
000000e0  74 61 74 69 6f 6e 20 28  65 78 63 65 70 74 20 66  |tation (except f|
000000f0  6f 72 20 63 6f 6d 6d 65  72 63 69 61 6c 20 75 73  |or commercial us|
00000100  65 29 0a 20 20 20 20 20  20 20 54 68 65 20 6d 6f  |e).       The mo|
00000110  64 75 6c 65 20 69 73 20  6e 6f 74 20 74 61 6d 70  |dule is not tamp|
00000120  65 72 65 64 20 77 69 74  68 0a 20 20 20 20 20 20  |ered with.      |
00000130  20 59 6f 75 20 64 6f 20  6e 6f 74 20 63 6c 61 69  | You do not clai|
00000140  6d 20 74 68 61 74 20 79  6f 75 20 68 61 76 65 20  |m that you have |
00000150  77 72 69 74 74 65 6e 20  74 68 65 20 6d 6f 64 75  |written the modu|
00000160  6c 65 0a 20 20 20 20 20  20 20 44 6f 20 6e 6f 74  |le.       Do not|
00000170  20 75 73 65 20 61 6e 79  20 6f 66 20 74 68 65 20  | use any of the |
00000180  63 6f 64 65 20 63 6f 6e  74 61 69 6e 65 64 20 69  |code contained i|
00000190  6e 20 74 68 69 73 20 6d  6f 64 75 6c 65 20 69 6e  |n this module in|
000001a0  20 79 6f 75 72 20 6f 77  6e 20 63 6f 64 65 0a 0a  | your own code..|
000001b0  49 66 20 79 6f 75 20 77  69 73 68 20 74 6f 20 75  |If you wish to u|
000001c0  73 65 20 74 68 69 73 20  69 6e 20 61 20 63 6f 6d  |se this in a com|
000001d0  6d 65 72 63 69 61 6c 20  70 72 6f 64 75 63 74 20  |mercial product |
000001e0  70 6c 65 61 73 65 20 63  6f 6e 74 61 63 74 20 6d  |please contact m|
000001f0  65 20 73 6f 20 74 68 61  74 20 49 20 63 61 6e 20  |e so that I can |
00000200  6d 61 6b 65 20 0a 73 75  72 65 20 79 6f 75 20 68  |make .sure you h|
00000210  61 76 65 20 74 68 65 20  6c 61 74 65 73 74 20 72  |ave the latest r|
00000220  65 6c 65 61 73 65 2c 20  70 6c 65 61 73 65 20 73  |elease, please s|
00000230  65 6e 64 20 61 20 64 69  73 6b 2e 0a 0a 49 6e 20  |end a disk...In |
00000240  6e 6f 20 63 69 72 63 75  6d 73 74 61 6e 63 65 73  |no circumstances|
00000250  20 73 68 61 6c 6c 20 74  68 65 20 61 75 74 68 6f  | shall the autho|
00000260  72 20 62 65 20 6c 69 61  62 6c 65 20 66 6f 72 20  |r be liable for |
00000270  61 6e 79 20 64 61 6d 61  67 65 2c 20 6c 6f 73 73  |any damage, loss|
00000280  20 6f 66 20 70 72 6f 66  69 74 73 2c 20 74 69 6d  | of profits, tim|
00000290  65 20 6f 72 20 0a 64 61  74 61 20 6f 72 20 61 6e  |e or .data or an|
000002a0  79 20 69 6e 64 69 72 65  63 74 20 6f 72 20 63 6f  |y indirect or co|
000002b0  6e 73 65 71 75 65 6e 74  69 61 6c 20 6c 6f 73 73  |nsequential loss|
000002c0  20 72 69 73 69 6e 67 20  6f 75 74 20 6f 66 20 74  | rising out of t|
000002d0  68 65 20 75 73 65 20 6f  66 20 74 68 69 73 20 73  |he use of this s|
000002e0  6f 66 74 77 61 72 65 20  6f 72 20 0a 69 6e 61 62  |oftware or .inab|
000002f0  69 6c 69 74 79 20 74 6f  20 75 73 65 20 74 68 69  |ility to use thi|
00000300  73 20 73 6f 66 74 77 61  72 65 2e 0a 0a 43 6f 6e  |s software...Con|
00000310  74 61 63 74 73 3a 0a 20  20 20 20 20 20 20 41 72  |tacts:.       Ar|
00000320  63 61 64 65 20 42 42 53  20 20 20 20 20 20 20 20  |cade BBS        |
00000330  20 20 28 30 38 31 20 36  35 34 20 32 32 31 32 29  |  (081 654 2212)|
00000340  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000350  20 20 20 0a 20 20 20 20  20 20 20 54 68 65 20 57  |   .       The W|
00000360  6f 72 6c 64 20 4f 66 20  43 72 79 74 6f 6e 20 28  |orld Of Cryton (|
00000370  30 37 34 39 20 36 37 39  37 39 34 29 20 20 20 20  |0749 679794)    |
00000380  20 0a 0a 20 20 20 20 20  20 20 41 6c 6c 20 6d 61  | ..       All ma|
00000390  69 6c 20 6f 6e 20 74 68  65 20 61 62 6f 76 65 20  |il on the above |
000003a0  42 75 6c 6c 65 74 69 6e  20 42 6f 72 64 73 20 73  |Bulletin Bords s|
000003b0  68 6f 75 6c 64 20 62 65  20 6d 61 69 6c 65 64 20  |hould be mailed |
000003c0  74 6f 20 4a 49 43 4b 0a  0a 2a 2a 2a 2a 2a 2a 2a  |to JICK..*******|
000003d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 20 49 6e 74 72 6f 64  |********* Introd|
000003e0  75 63 74 69 6f 6e 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |uction *********|
000003f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000410  2a 2a 2a 2a 2a 2a 0a 20  0a 49 6e 74 65 72 66 61  |******. .Interfa|
00000420  63 65 20 69 73 20 61 20  73 6d 61 6c 6c 20 6d 6f  |ce is a small mo|
00000430  64 75 6c 65 20 74 68 61  74 20 61 6c 6c 6f 77 73  |dule that allows|
00000440  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 70 72 6f  | application pro|
00000450  67 72 61 6d 6d 65 72 73  20 74 6f 20 69 6d 70 6c  |grammers to impl|
00000460  65 6d 65 6e 74 20 61 20  0a 63 6f 6c 6f 75 72 66  |ement a .colourf|
00000470  75 6c 20 61 6e 64 20 70  6c 65 61 73 61 6e 74 20  |ul and pleasant |
00000480  67 72 61 70 68 69 63 61  6c 20 75 73 65 72 20 69  |graphical user i|
00000490  6e 74 65 72 66 61 63 65  2e 20 20 49 6e 74 65 72  |nterface.  Inter|
000004a0  66 61 63 65 20 70 72 6f  76 69 64 65 73 20 6d 61  |face provides ma|
000004b0  6e 79 20 6d 6f 72 65 20  0a 66 75 6e 63 74 69 6f  |ny more .functio|
000004c0  6e 73 20 74 68 61 74 20  61 6c 6c 6f 77 73 20 79  |ns that allows y|
000004d0  6f 75 20 74 6f 20 63 68  61 6e 67 65 20 74 68 65  |ou to change the|
000004e0  20 70 6f 69 6e 74 65 72  20 73 68 61 70 65 20 65  | pointer shape e|
000004f0  61 73 69 6c 79 20 61 6e  64 20 74 6f 20 69 6e 74  |asily and to int|
00000500  65 72 66 61 63 65 20 77  69 74 68 20 74 68 65 20  |erface with the |
00000510  0a 21 48 65 6c 70 20 6f  72 20 21 53 70 79 20 61  |.!Help or !Spy a|
00000520  70 70 6c 69 63 61 74 69  6f 6e 2e 0a 0a 54 68 65  |pplication...The|
00000530  20 49 6e 74 65 72 66 61  63 65 20 6d 6f 64 75 6c  | Interface modul|
00000540  65 20 70 72 6f 76 69 64  65 73 20 66 75 6e 63 74  |e provides funct|
00000550  69 6f 6e 73 20 74 6f 20  69 6d 70 72 6f 76 65 20  |ions to improve |
00000560  74 68 65 20 66 72 69 65  6e 64 6c 69 6e 65 73 73  |the friendliness|
00000570  20 61 6e 64 20 61 70 70  65 61 72 61 6e 63 65 20  | and appearance |
00000580  0a 6f 66 20 74 68 65 20  61 70 70 6c 69 63 61 74  |.of the applicat|
00000590  69 6f 6e 2e 20 54 68 65  20 61 70 70 6c 69 63 61  |ion. The applica|
000005a0  74 69 6f 6e 20 73 68 6f  75 6c 64 20 73 74 69 6c  |tion should stil|
000005b0  6c 20 6f 70 65 72 61 74  65 20 61 73 20 73 74 61  |l operate as sta|
000005c0  74 65 64 20 69 6e 20 20  74 68 65 20 41 63 6f 72  |ted in  the Acor|
000005d0  6e 20 0a 67 75 69 64 65  6c 69 6e 65 73 20 69 6e  |n .guidelines in|
000005e0  20 74 68 65 20 50 72 6f  67 72 61 6d 6d 65 72 73  | the Programmers|
000005f0  20 52 65 66 65 72 65 6e  63 65 20 4d 61 6e 75 61  | Reference Manua|
00000600  6c 73 2e 0a 0a 54 68 65  20 6d 6f 64 75 6c 65 20  |ls...The module |
00000610  69 6d 70 6c 65 6d 65 6e  74 73 20 61 20 6e 75 6d  |implements a num|
00000620  62 65 72 20 6f 66 20 53  57 49 73 20 77 68 69 63  |ber of SWIs whic|
00000630  68 20 61 72 65 20 64 65  73 63 72 69 62 65 64 20  |h are described |
00000640  66 75 72 74 68 65 72 20  69 6e 20 74 68 69 73 20  |further in this |
00000650  0a 6d 61 6e 75 61 6c 2c  20 74 68 65 73 65 20 53  |.manual, these S|
00000660  57 49 20 63 61 6c 6c 73  20 63 61 6e 20 62 65 20  |WI calls can be |
00000670  63 61 6c 6c 65 64 20 66  72 6f 6d 20 61 6e 79 20  |called from any |
00000680  6c 61 6e 67 75 61 67 65  2e 20 20 4d 6f 73 74 20  |language.  Most |
00000690  6f 66 20 74 68 65 20 66  75 6e 63 74 69 6f 6e 73  |of the functions|
000006a0  20 0a 70 72 6f 76 69 64  65 64 20 61 72 65 20 73  | .provided are s|
000006b0  70 65 63 69 66 69 65 64  20 69 6e 20 74 68 65 20  |pecified in the |
000006c0  69 63 6f 6e 73 20 76 61  6c 69 64 61 74 69 6f 6e  |icons validation|
000006d0  20 73 74 72 69 6e 67 2c  20 61 6e 64 20 73 6f 20  | string, and so |
000006e0  6e 6f 20 63 6f 6d 70 6c  65 78 20 0a 70 72 6f 67  |no complex .prog|
000006f0  72 61 6d 6d 69 6e 67 20  69 73 20 6e 65 65 64 65  |ramming is neede|
00000700  64 20 74 6f 20 6d 61 6b  65 20 74 68 65 20 61 70  |d to make the ap|
00000710  70 6c 69 63 61 74 69 6f  6e 20 6c 6f 6f 6b 20 67  |plication look g|
00000720  6f 6f 64 2e 0a 0a 54 68  69 73 20 67 75 69 64 65  |ood...This guide|
00000730  20 74 65 6c 6c 73 20 79  6f 75 20 68 6f 77 20 74  | tells you how t|
00000740  6f 20 66 75 6c 6c 79 20  69 6d 70 6c 65 6d 65 6e  |o fully implemen|
00000750  74 20 74 68 65 20 66 65  61 74 75 72 65 73 20 6f  |t the features o|
00000760  66 20 49 6e 74 65 72 66  61 63 65 2e 20 20 49 74  |f Interface.  It|
00000770  20 69 73 20 73 70 6c 69  74 20 69 6e 74 6f 20 0a  | is split into .|
00000780  74 68 65 20 66 6f 6c 6c  6f 77 20 73 65 63 74 69  |the follow secti|
00000790  6f 6e 73 3a 0a 0a 20 20  20 20 20 20 20 20 54 68  |ons:..        Th|
000007a0  65 20 66 69 72 73 74 20  73 65 63 74 69 6f 6e 20  |e first section |
000007b0  65 78 70 6c 61 69 6e 73  20 74 68 65 20 76 61 6c  |explains the val|
000007c0  69 64 61 74 69 6f 6e 20  73 74 72 69 6e 67 73 20  |idation strings |
000007d0  6f 70 74 69 6f 6e 73 20  70 72 6f 76 69 64 65 64  |options provided|
000007e0  0a 20 20 20 20 20 20 20  20 62 79 20 49 6e 74 65  |.        by Inte|
000007f0  72 66 61 63 65 2e 0a 20  20 20 20 20 20 20 20 54  |rface..        T|
00000800  68 65 20 6e 65 78 74 20  73 65 63 74 69 6f 6e 20  |he next section |
00000810  67 69 76 65 73 20 64 65  74 61 69 6c 73 20 6f 66  |gives details of|
00000820  20 74 68 65 20 53 57 49  20 63 61 6c 6c 73 20 70  | the SWI calls p|
00000830  72 6f 76 69 64 65 64 2e  0a 20 20 20 20 20 20 20  |rovided..       |
00000840  20 54 68 65 20 72 65 6d  61 69 6e 69 6e 67 20 73  | The remaining s|
00000850  65 63 74 69 6f 6e 20 63  6f 76 65 72 73 20 68 69  |ection covers hi|
00000860  6e 74 73 20 61 6e 64 20  74 69 70 73 20 6f 6e 20  |nts and tips on |
00000870  70 72 6f 67 72 61 6d 6d  69 6e 67 2e 0a 0a 0a 0a  |programming.....|
00000880  0a 0a 0a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |...*************|
00000890  2a 2a 2a 20 54 65 63 68  6e 69 63 61 6c 20 64 65  |*** Technical de|
000008a0  74 61 69 6c 73 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |tails **********|
000008b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000008d0  2a 2a 2a 2a 2a 0a 0a 41  6e 20 69 6e 64 69 72 65  |*****..An indire|
000008e0  63 74 65 64 20 74 65 78  74 20 69 63 6f 6e 20 63  |cted text icon c|
000008f0  61 6e 20 68 61 76 65 20  61 20 76 61 6c 69 64 61  |an have a valida|
00000900  74 69 6f 6e 20 73 74 72  69 6e 67 20 77 68 69 63  |tion string whic|
00000910  68 20 69 73 20 75 73 65  64 20 74 6f 20 70 61 73  |h is used to pas|
00000920  73 20 66 75 72 74 68 65  72 20 0a 69 6e 66 6f 72  |s further .infor|
00000930  6d 61 74 69 6f 6e 20 74  6f 20 74 68 65 20 57 49  |mation to the WI|
00000940  4d 50 2c 20 73 75 63 68  20 61 73 20 77 68 61 74  |MP, such as what|
00000950  20 62 6f 72 64 65 72 20  74 79 70 65 20 74 68 65  | border type the|
00000960  20 69 63 6f 6e 20 68 61  73 20 61 6e 64 20 61 6c  | icon has and al|
00000970  73 6f 20 77 68 61 74 20  0a 70 6f 69 6e 74 65 72  |so what .pointer|
00000980  2c 20 69 66 20 61 6e 79  20 73 68 6f 75 6c 64 20  |, if any should |
00000990  62 65 20 64 69 73 70 6c  61 79 65 64 20 77 68 69  |be displayed whi|
000009a0  6c 73 74 20 6f 76 65 72  20 74 68 69 73 20 69 63  |lst over this ic|
000009b0  6f 6e 2e 20 20 54 68 65  20 73 79 6e 74 61 78 20  |on.  The syntax |
000009c0  6f 66 20 61 20 76 61 6c  69 64 61 74 69 6f 6e 20  |of a validation |
000009d0  0a 73 74 72 69 6e 67 20  69 73 3a 0a 0a 20 20 76  |.string is:..  v|
000009e0  61 6c 69 64 61 74 69 6f  6e 20 73 74 72 69 6e 67  |alidation string|
000009f0  20 3a 3a 2d 20 63 6f 6d  6d 61 6e 64 20 7b 3b 63  | ::- command {;c|
00000a00  6f 6d 6d 61 6e 64 7d 2a  0a 20 20 63 6f 6d 6d 61  |ommand}*.  comma|
00000a10  6e 64 20 20 20 20 20 20  20 20 20 20 20 3a 3a 2d  |nd           ::-|
00000a20  20 28 62 20 7c 20 7a 29  20 62 6f 72 64 65 72 2d  | (b | z) border-|
00000a30  74 79 70 65 20 7b 62 6f  72 64 65 72 2d 73 70 65  |type {border-spe|
00000a40  63 7d 20 7c 20 0a 20 20  20 20 20 20 20 20 20 20  |c} | .          |
00000a50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 72 20  |              r |
00000a60  6f 6e 2f 6f 66 66 2d 74  79 70 65 20 7b 2c 69 63  |on/off-type {,ic|
00000a70  6f 6e 2d 6e 75 6d 62 65  72 7d 2a 20 7c 0a 20 20  |on-number}* |.  |
00000a80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000a90  20 20 20 20 20 20 75 20  6f 6e 2f 6f 66 66 2d 74  |      u on/off-t|
00000aa0  79 70 65 20 7b 2c 69 63  6f 6e 2d 6e 75 6d 62 65  |ype {,icon-numbe|
00000ab0  72 7d 2a 20 7c 0a 20 20  20 20 20 20 20 20 20 20  |r}* |.          |
00000ac0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 70 20  |              p |
00000ad0  74 65 78 74 2d 73 74 72  69 6e 67 20 7b 2c 78 7d  |text-string {,x}|
00000ae0  20 7b 2c 79 7d 20 7c 0a  20 20 20 20 20 20 20 20  | {,y} |.        |
00000af0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000b00  69 20 74 65 78 74 2d 73  74 72 69 6e 67 20 7c 0a  |i text-string |.|
00000b10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000b20  20 20 20 20 20 20 20 20  6b 20 6b 65 79 2d 63 6f  |        k key-co|
00000b30  64 65 0a 20 20 62 6f 72  64 65 72 2d 73 70 65 63  |de.  border-spec|
00000b40  20 20 20 20 20 20 20 3a  3a 2d 20 7b 2c 62 75 74  |       ::- {,but|
00000b50  74 6f 6e 2d 73 6c 61 62  62 69 6e 67 2d 6d 61 73  |ton-slabbing-mas|
00000b60  6b 7d 20 7b 2c 73 6c 61  62 62 69 6e 67 2d 74 69  |k} {,slabbing-ti|
00000b70  6d 65 7d 20 7b 2c 63 6f  6c 6f 75 72 7d 2a 0a 0a  |me} {,colour}*..|
00000b80  54 68 65 20 70 61 72 61  6d 65 74 65 72 73 20 61  |The parameters a|
00000b90  62 6f 76 65 20 61 72 65  20 64 65 73 63 72 69 62  |bove are describ|
00000ba0  65 64 20 75 6e 64 65 72  20 74 68 65 20 72 65 6c  |ed under the rel|
00000bb0  65 76 61 6e 74 20 76 61  6c 69 64 61 74 69 6f 6e  |evant validation|
00000bc0  20 63 6f 6d 6d 61 6e 64  2e 0a 49 6e 20 73 69 6d  | command..In sim|
00000bd0  70 6c 65 20 74 65 72 6d  73 2c 20 61 20 76 61 6c  |ple terms, a val|
00000be0  69 64 61 74 69 6f 6e 20  73 74 72 69 6e 67 20 63  |idation string c|
00000bf0  6f 6e 73 69 73 74 73 20  6f 66 20 61 20 73 65 72  |onsists of a ser|
00000c00  69 65 73 20 6f 66 20 27  63 6f 6d 6d 61 6e 64 73  |ies of 'commands|
00000c10  27 2c 20 65 61 63 68 20  73 74 61 72 74 69 6e 67  |', each starting|
00000c20  20 0a 77 69 74 68 20 61  20 73 69 6e 67 6c 65 20  | .with a single |
00000c30  6c 65 74 74 65 72 20 61  6e 64 20 73 65 70 65 72  |letter and seper|
00000c40  61 74 65 64 20 66 72 6f  6d 20 74 68 65 20 66 6f  |ated from the fo|
00000c50  6c 6c 6f 77 69 6e 67 20  63 6f 6d 6d 61 6e 64 20  |llowing command |
00000c60  62 79 20 61 20 73 65 6d  69 2d 63 6f 6c 6f 6e 2e  |by a semi-colon.|
00000c70  20 20 0a 7b 7d 2a 20 6d  65 61 6e 73 20 7a 65 72  |  .{}* means zer|
00000c80  6f 20 6f 72 20 6d 6f 72  65 20 6f 66 20 74 68 65  |o or more of the|
00000c90  20 74 68 69 6e 67 20 69  6e 73 69 64 65 20 74 68  | thing inside th|
00000ca0  65 20 7b 7d 2e 20 20 54  68 65 20 66 6f 6c 6c 6f  |e {}.  The follo|
00000cb0  77 69 6e 67 20 63 6f 6d  6d 61 6e 64 73 20 61 72  |wing commands ar|
00000cc0  65 20 0a 61 76 61 69 6c  61 62 6c 65 20 77 69 74  |e .available wit|
00000cd0  68 20 74 68 65 20 49 6e  74 65 72 66 61 63 65 20  |h the Interface |
00000ce0  6d 6f 64 75 6c 65 2e 0a  0a 54 68 65 73 65 20 63  |module...These c|
00000cf0  6f 6d 6d 61 6e 64 73 20  61 72 65 20 70 72 6f 76  |ommands are prov|
00000d00  69 64 65 64 20 69 6e 20  61 64 64 69 74 69 6f 6e  |ided in addition|
00000d10  20 74 6f 20 74 68 65 20  73 74 61 6e 64 61 72 64  | to the standard|
00000d20  20 57 69 6d 70 20 76 61  6c 69 64 61 74 69 6f 6e  | Wimp validation|
00000d30  20 73 74 72 69 6e 67 73  2e 20 20 0a 49 20 73 75  | strings.  .I su|
00000d40  67 67 65 73 74 20 74 68  61 74 20 79 6f 75 20 65  |ggest that you e|
00000d50  64 69 74 20 74 68 65 20  21 46 6f 72 6d 45 64 20  |dit the !FormEd |
00000d60  70 72 6f 67 72 61 6d 20  74 6f 20 61 6c 6c 6f 77  |program to allow|
00000d70  20 79 6f 75 20 74 6f 20  65 6e 74 65 72 20 6c 61  | you to enter la|
00000d80  72 67 65 72 20 76 61 6c  69 64 61 74 69 6f 6e 20  |rger validation |
00000d90  0a 73 74 72 69 6e 67 73  2c 20 6f 74 68 65 72 77  |.strings, otherw|
00000da0  69 73 65 20 77 68 65 6e  20 65 6e 74 65 72 69 6e  |ise when enterin|
00000db0  67 20 61 20 68 65 6c 70  20 63 6f 6d 6d 61 6e 64  |g a help command|
00000dc0  20 79 6f 75 20 77 69 6c  6c 20 6f 6e 6c 79 20 62  | you will only b|
00000dd0  65 20 61 6c 6c 6f 77 65  64 20 61 20 0a 6d 61 78  |e allowed a .max|
00000de0  69 6d 75 6d 20 6f 66 20  38 30 20 63 68 61 72 61  |imum of 80 chara|
00000df0  63 74 65 72 73 2e 0a 0a  54 68 65 20 28 42 29 6f  |cters...The (B)o|
00000e00  72 64 65 72 20 63 6f 6d  6d 61 6e 64 20 74 65 6c  |rder command tel|
00000e10  6c 73 20 49 6e 74 65 72  66 61 63 65 20 77 68 69  |ls Interface whi|
00000e20  63 68 20 62 6f 72 64 65  72 20 74 6f 20 75 73 65  |ch border to use|
00000e30  20 77 68 65 6e 20 72 65  6e 64 65 72 69 6e 67 20  | when rendering |
00000e40  61 6e 20 69 63 6f 6e 2e  20 20 0a 54 68 65 20 62  |an icon.  .The b|
00000e50  6f 72 64 65 72 20 74 79  70 65 73 20 61 76 61 69  |order types avai|
00000e60  6c 61 62 6c 65 20 61 74  20 70 72 65 73 65 6e 74  |lable at present|
00000e70  20 61 72 65 20 3a 0a 0a  20 20 20 20 20 20 20 20  | are :..        |
00000e80  62 6f 72 64 65 72 20 74  79 70 65 20 30 2c 20 74  |border type 0, t|
00000e90  68 69 73 20 69 73 20 61  20 73 69 6e 67 6c 65 20  |his is a single |
00000ea0  62 6f 72 64 65 72 20 75  73 65 64 20 6d 61 69 6e  |border used main|
00000eb0  6c 79 20 66 6f 72 20 68  65 61 64 69 6e 67 73 20  |ly for headings |
00000ec0  61 6e 64 20 61 63 74 69  6f 6e 20 69 63 6f 6e 73  |and action icons|
00000ed0  2e 0a 20 20 20 20 20 20  20 20 54 68 65 20 69 63  |..        The ic|
00000ee0  6f 6e 20 77 69 6c 6c 20  73 6c 61 62 20 69 6e 77  |on will slab inw|
00000ef0  61 72 64 73 20 69 66 20  74 68 65 20 75 73 65 72  |ards if the user|
00000f00  20 63 6c 69 63 6b 73 20  61 20 62 75 74 74 6f 6e  | clicks a button|
00000f10  20 77 68 69 6c 73 74 20  74 68 65 20 70 6f 69 6e  | whilst the poin|
00000f20  74 65 72 20 69 73 20 6f  76 65 72 20 0a 20 20 20  |ter is over .   |
00000f30  20 20 20 20 20 74 68 65  20 69 63 6f 6e 20 70 72  |     the icon pr|
00000f40  6f 76 69 64 69 6e 67 20  69 74 20 69 73 20 6e 6f  |oviding it is no|
00000f50  74 20 73 65 74 75 70 20  74 6f 20 69 67 6e 6f 72  |t setup to ignor|
00000f60  65 20 6d 6f 75 73 65 20  63 6c 69 63 6b 73 2e 0a  |e mouse clicks..|
00000f70  0a 20 20 20 20 20 20 20  20 62 6f 72 64 65 72 20  |.        border |
00000f80  74 79 70 65 20 31 2c 20  74 68 69 73 20 69 73 20  |type 1, this is |
00000f90  61 20 64 6f 75 62 6c 65  20 62 6f 72 64 65 72 20  |a double border |
00000fa0  61 6e 64 20 73 68 6f 75  6c 64 20 62 65 20 75 73  |and should be us|
00000fb0  65 64 20 74 6f 20 67 72  6f 75 70 20 74 6f 67 65  |ed to group toge|
00000fc0  74 68 65 72 20 0a 20 20  20 20 20 20 20 20 69 63  |ther .        ic|
00000fd0  6f 6e 73 20 74 68 61 74  20 70 65 72 66 6f 72 6d  |ons that perform|
00000fe0  20 61 6e 20 6f 70 65 72  61 74 69 6f 6e 2e 0a 0a  | an operation...|
00000ff0  20 20 20 20 20 20 20 20  62 6f 72 64 65 72 20 74  |        border t|
00001000  79 70 65 20 32 2c 20 74  68 69 73 20 69 73 20 61  |ype 2, this is a|
00001010  20 74 72 69 70 6c 65 20  62 6f 72 64 65 72 20 61  | triple border a|
00001020  6e 64 20 73 68 6f 75 6c  64 20 62 65 20 75 73 65  |nd should be use|
00001030  64 20 6f 6e 20 74 68 65  20 64 65 66 61 75 6c 74  |d on the default|
00001040  20 61 63 74 69 6f 6e 20  20 20 20 20 20 20 20 20  | action         |
00001050  0a 20 20 20 20 20 20 20  20 62 75 74 74 6f 6e 2e  |.        button.|
00001060  20 20 54 68 65 20 69 63  6f 6e 20 77 69 6c 6c 20  |  The icon will |
00001070  73 6c 61 62 20 69 6e 77  61 72 64 73 20 77 68 65  |slab inwards whe|
00001080  6e 20 74 68 65 20 75 73  65 72 20 63 6c 69 63 6b  |n the user click|
00001090  73 20 61 20 62 75 74 74  6f 6e 20 77 68 69 6c 73  |s a button whils|
000010a0  74 20 74 68 65 20 0a 20  20 20 20 20 20 20 20 70  |t the .        p|
000010b0  6f 69 6e 74 65 72 20 69  73 20 6f 76 65 72 20 74  |ointer is over t|
000010c0  68 69 73 20 69 63 6f 6e  20 70 72 6f 76 69 64 69  |his icon providi|
000010d0  6e 67 20 69 74 20 69 73  20 6e 6f 74 20 73 65 74  |ng it is not set|
000010e0  75 70 20 74 6f 20 69 67  6e 6f 72 65 20 6d 6f 75  |up to ignore mou|
000010f0  73 65 20 63 6c 69 63 6b  73 2e 0a 0a 20 20 20 20  |se clicks...    |
00001100  20 20 20 20 62 6f 72 64  65 72 20 74 79 70 65 20  |    border type |
00001110  33 2c 20 74 68 69 73 20  69 73 20 61 20 77 69 64  |3, this is a wid|
00001120  65 20 69 6e 76 65 72 74  65 64 20 62 6f 72 64 65  |e inverted borde|
00001130  72 20 61 6e 64 20 73 68  6f 75 6c 64 20 62 65 20  |r and should be |
00001140  75 73 65 64 20 6f 6e 20  77 72 69 74 61 62 6c 65  |used on writable|
00001150  0a 20 20 20 20 20 20 20  20 69 63 6f 6e 73 2e 20  |.        icons. |
00001160  20 54 68 69 73 20 62 6f  72 64 65 72 20 74 79 70  | This border typ|
00001170  65 20 69 73 20 75 73 75  61 6c 6c 79 20 75 73 65  |e is usually use|
00001180  64 20 69 6e 2d 63 6f 6e  6a 75 6e 63 74 69 6f 6e  |d in-conjunction|
00001190  20 77 69 74 68 20 74 68  65 20 77 72 69 74 61 62  | with the writab|
000011a0  6c 65 0a 20 20 20 20 20  20 20 20 70 6f 69 6e 74  |le.        point|
000011b0  65 72 2e 0a 20 20 20 20  20 20 20 20 0a 20 20 20  |er..        .   |
000011c0  20 20 20 20 20 62 6f 72  64 65 72 20 74 79 70 65  |     border type|
000011d0  20 34 2c 20 74 68 69 73  20 69 73 20 61 6e 20 69  | 4, this is an i|
000011e0  6e 76 65 72 74 65 64 20  76 65 72 73 69 6f 6e 20  |nverted version |
000011f0  6f 66 20 62 6f 72 64 65  72 20 74 79 70 65 20 30  |of border type 0|
00001200  0a 20 20 20 20 20 20 20  20 0a 20 20 20 20 20 20  |.        .      |
00001210  20 20 62 6f 72 64 65 72  20 74 79 70 65 20 35 2c  |  border type 5,|
00001220  20 74 68 69 73 20 69 73  20 61 20 64 6f 75 62 6c  | this is a doubl|
00001230  65 20 77 69 64 65 20 62  6f 72 64 65 72 20 61 73  |e wide border as|
00001240  20 75 73 65 64 20 62 79  20 61 63 6f 72 6e 20 69  | used by acorn i|
00001250  6e 20 72 6f 73 20 33 0a  20 20 20 20 20 20 20 20  |n ros 3.        |
00001260  0a 20 20 20 20 20 20 20  20 62 6f 72 64 65 72 20  |.        border |
00001270  74 79 70 65 20 36 2c 20  65 74 63 68 65 64 20 69  |type 6, etched i|
00001280  6e 20 62 6f 72 64 65 72  0a 20 20 20 20 20 20 20  |n border.       |
00001290  20 0a 20 20 20 20 20 20  20 20 62 6f 72 64 65 72  | .        border|
000012a0  20 74 79 70 65 20 37 2c  20 73 69 6d 69 6c 61 72  | type 7, similar|
000012b0  20 74 6f 20 62 6f 72 64  65 72 20 74 79 70 65 20  | to border type |
000012c0  30 2c 20 74 68 69 6e 6e  65 72 20 69 6e 20 6d 6f  |0, thinner in mo|
000012d0  64 65 20 32 30 0a 0a 54  68 65 20 73 65 63 6f 6e  |de 20..The secon|
000012e0  64 20 6f 70 74 69 6f 6e  61 6c 20 70 61 72 61 6d  |d optional param|
000012f0  65 74 65 72 20 69 73 20  74 68 65 20 62 75 74 74  |eter is the butt|
00001300  6f 6e 20 73 6c 61 62 62  69 6e 67 20 6d 61 73 6b  |on slabbing mask|
00001310  2c 20 74 68 69 73 20 73  74 61 74 65 73 20 77 68  |, this states wh|
00001320  65 74 68 65 72 20 74 68  65 20 0a 69 63 6f 6e 20  |ether the .icon |
00001330  73 68 6f 75 6c 64 20 62  65 20 73 6c 61 62 62 65  |should be slabbe|
00001340  64 20 75 6e 74 69 6c 20  74 68 65 20 62 75 74 74  |d until the butt|
00001350  6f 6e 20 69 73 20 72 65  6c 65 61 73 65 64 2e 20  |on is released. |
00001360  20 54 68 65 20 76 61 6c  75 65 73 20 63 6f 6e 74  | The values cont|
00001370  61 69 6e 65 64 20 69 6e  20 74 68 69 73 20 0a 70  |ained in this .p|
00001380  61 72 61 6d 65 74 65 72  20 63 61 6e 20 62 65 20  |arameter can be |
00001390  66 72 6f 6d 20 30 20 74  6f 20 37 2e 20 20 54 68  |from 0 to 7.  Th|
000013a0  65 20 62 75 74 74 6f 6e  20 73 6c 61 62 62 69 6e  |e button slabbin|
000013b0  67 20 6d 61 73 6b 20 63  61 6e 20 62 65 20 63 61  |g mask can be ca|
000013c0  6c 63 75 6c 61 74 65 64  20 69 6e 20 74 68 65 20  |lculated in the |
000013d0  0a 66 6f 6c 6c 6f 77 69  6e 67 20 77 61 79 3a 0a  |.following way:.|
000013e0  0a 20 20 20 20 20 20 20  20 56 61 6c 75 65 20 20  |.        Value  |
000013f0  20 42 75 74 74 6f 6e 20  20 20 20 20 20 20 20 20  | Button         |
00001400  20 4d 65 61 6e 69 6e 67  0a 20 20 20 20 20 20 20  | Meaning.       |
00001410  20 31 20 20 20 20 20 20  20 41 64 6a 75 73 74 20  | 1       Adjust |
00001420  20 73 6c 61 62 20 69 63  6f 6e 20 75 6e 74 69 6c  | slab icon until|
00001430  20 61 64 6a 75 73 74 20  69 73 20 72 65 6c 65 61  | adjust is relea|
00001440  73 65 64 0a 20 20 20 20  20 20 20 20 32 20 20 20  |sed.        2   |
00001450  20 20 20 20 4d 65 6e 75  20 20 20 20 73 6c 61 62  |    Menu    slab|
00001460  20 69 63 6f 6e 20 75 6e  74 69 6c 20 6d 65 6e 75  | icon until menu|
00001470  20 69 73 20 72 65 6c 65  61 73 65 64 0a 20 20 20  | is released.   |
00001480  20 20 20 20 20 34 20 20  20 20 20 20 20 53 65 6c  |     4       Sel|
00001490  65 63 74 20 20 73 6c 61  62 20 69 63 6f 6e 20 75  |ect  slab icon u|
000014a0  6e 74 69 6c 20 73 65 6c  65 63 74 20 69 73 20 72  |ntil select is r|
000014b0  65 6c 65 61 73 65 64 0a  0a 54 68 65 20 62 75 74  |eleased..The but|
000014c0  74 6f 6e 20 73 6c 61 62  62 69 6e 67 20 6d 61 73  |ton slabbing mas|
000014d0  6b 20 63 61 6e 20 74 68  65 6e 20 62 65 20 63 61  |k can then be ca|
000014e0  6c 63 75 6c 61 74 65 64  20 62 79 20 61 64 64 69  |lculated by addi|
000014f0  6e 67 20 74 6f 67 65 74  68 65 72 20 74 68 65 20  |ng together the |
00001500  72 65 71 75 69 72 65 64  20 0a 62 75 74 74 6f 6e  |required .button|
00001510  20 76 61 6c 75 65 73 2e  20 20 0a 0a 54 68 65 20  | values.  ..The |
00001520  62 75 74 74 6f 6e 20 73  6c 61 62 62 69 6e 67 20  |button slabbing |
00001530  74 69 6d 65 20 69 73 20  74 68 65 20 6d 69 6e 69  |time is the mini|
00001540  6d 75 6d 20 74 69 6d 65  20 74 68 61 74 20 74 68  |mum time that th|
00001550  65 20 69 63 6f 6e 20 77  69 6c 6c 20 62 65 20 73  |e icon will be s|
00001560  6c 61 62 62 65 64 20 66  6f 72 2c 20 74 68 65 20  |labbed for, the |
00001570  0a 64 65 66 61 75 6c 74  20 74 69 6d 65 20 69 73  |.default time is|
00001580  20 66 6f 72 20 31 35 63  73 2e 20 20 54 68 69 73  | for 15cs.  This|
00001590  20 76 61 6c 75 65 20 69  73 20 61 20 64 65 63 69  | value is a deci|
000015a0  6d 61 6c 20 6e 75 6d 62  65 72 20 69 6e 20 63 65  |mal number in ce|
000015b0  6e 74 69 2d 73 65 63 6f  6e 64 73 2e 0a 54 68 65  |nti-seconds..The|
000015c0  20 63 6f 6c 6f 75 72 73  20 61 72 65 20 73 70 65  | colours are spe|
000015d0  63 69 66 69 65 64 20 69  6e 20 74 68 65 20 66 6f  |cified in the fo|
000015e0  6c 6c 6f 77 69 6e 67 20  6f 72 64 65 72 3a 0a 0a  |llowing order:..|
000015f0  20 20 20 20 20 20 20 20  7b 2c 62 6f 72 64 65 72  |        {,border|
00001600  20 63 6f 6c 6f 75 72 31  7d 20 7b 2c 62 6f 72 64  | colour1} {,bord|
00001610  65 72 20 63 6f 6c 6f 75  72 32 7d 20 7b 2c 73 6c  |er colour2} {,sl|
00001620  61 62 62 69 6e 67 20 6f  75 74 20 63 6f 6c 6f 75  |abbing out colou|
00001630  72 7d 20 0a 20 20 20 20  20 20 20 20 7b 2c 73 6c  |r} .        {,sl|
00001640  61 62 62 69 6e 67 20 69  6e 20 63 6f 6c 6f 75 72  |abbing in colour|
00001650  7d 20 7b 2c 69 6e 6e 65  72 20 63 68 61 6e 6e 65  |} {,inner channe|
00001660  6c 20 63 6f 6c 6f 75 72  7d 0a 0a 54 68 65 73 65  |l colour}..These|
00001670  20 63 6f 6c 6f 75 72 73  20 63 61 6e 20 62 65 20  | colours can be |
00001680  61 6e 79 20 76 61 6c 69  64 20 57 49 4d 50 20 63  |any valid WIMP c|
00001690  6f 6c 6f 75 72 20 69 6e  20 74 68 65 20 72 61 6e  |olour in the ran|
000016a0  67 65 20 6f 66 20 30 20  74 6f 20 31 35 2c 20 74  |ge of 0 to 15, t|
000016b0  68 65 20 64 65 66 61 75  6c 74 20 0a 73 65 6c 65  |he default .sele|
000016c0  63 74 69 6f 6e 20 69 73  20 34 2c 20 30 2c 20 31  |ction is 4, 0, 1|
000016d0  2c 20 31 34 2c 20 31 32  2e 0a 0a 54 68 65 20 28  |, 14, 12...The (|
000016e0  52 29 61 64 69 6f 20 63  6f 6d 6d 61 6e 64 20 73  |R)adio command s|
000016f0  70 65 63 69 66 69 65 64  20 69 6e 20 74 68 65 20  |pecified in the |
00001700  76 61 6c 69 64 61 74 69  6f 6e 20 73 74 72 69 6e  |validation strin|
00001710  67 20 69 73 20 75 73 65  64 20 74 6f 20 73 65 74  |g is used to set|
00001720  20 74 68 65 20 73 74 61  74 65 20 6f 66 20 0a 6f  | the state of .o|
00001730  74 68 65 72 20 72 61 64  69 6f 20 62 75 74 74 6f  |ther radio butto|
00001740  6e 20 74 79 70 65 20 69  63 6f 6e 73 2e 20 20 54  |n type icons.  T|
00001750  68 65 20 52 20 63 6f 6d  6d 61 6e 64 20 69 73 20  |he R command is |
00001760  66 6f 6c 6c 6f 77 65 64  20 62 79 20 61 20 64 65  |followed by a de|
00001770  63 69 6d 61 6c 20 6e 75  6d 62 65 72 20 69 6e 20  |cimal number in |
00001780  0a 74 68 65 20 72 61 6e  67 65 20 30 20 74 6f 20  |.the range 0 to |
00001790  32 2c 20 74 68 65 20 61  63 74 69 6f 6e 20 74 68  |2, the action th|
000017a0  61 74 20 74 68 65 73 65  20 70 65 72 66 6f 72 6d  |at these perform|
000017b0  20 69 73 3a 0a 0a 20 20  20 20 20 20 20 20 52 61  | is:..        Ra|
000017c0  64 69 6f 20 74 79 70 65  20 20 20 20 20 20 20 20  |dio type        |
000017d0  20 20 20 20 20 20 4f 70  65 72 61 74 69 6f 6e 0a  |      Operation.|
000017e0  20 20 20 20 20 20 20 20  30 20 20 20 20 20 20 20  |        0       |
000017f0  20 20 20 20 20 20 20 20  74 68 69 73 20 68 61 73  |        this has|
00001800  20 74 68 65 20 65 66 66  65 63 74 20 6f 66 20 73  | the effect of s|
00001810  77 69 74 63 68 69 6e 67  20 6f 66 66 20 74 68 65  |witching off the|
00001820  20 73 70 65 63 69 66 69  65 64 20 69 63 6f 6e 28  | specified icon(|
00001830  73 29 2e 0a 20 20 20 20  20 20 20 20 31 20 20 20  |s)..        1   |
00001840  20 20 20 20 20 20 20 20  20 20 20 20 74 68 69 73  |            this|
00001850  20 68 61 73 20 74 68 65  20 65 66 66 65 63 74 20  | has the effect |
00001860  6f 66 20 73 77 69 74 63  68 69 6e 67 20 6f 6e 20  |of switching on |
00001870  74 68 65 20 73 70 65 63  69 66 69 65 64 20 69 63  |the specified ic|
00001880  6f 6e 28 73 29 2e 20 20  20 20 20 20 0a 20 20 20  |on(s).      .   |
00001890  20 20 20 20 20 32 20 20  20 20 20 20 20 20 20 20  |     2          |
000018a0  20 20 20 20 20 74 68 69  73 20 68 61 73 20 74 68  |     this has th|
000018b0  65 20 65 66 66 65 63 74  20 6f 66 20 74 6f 67 67  |e effect of togg|
000018c0  6c 69 6e 67 20 74 68 65  20 69 63 6f 6e 73 20 63  |ling the icons c|
000018d0  75 72 72 65 6e 74 20 73  74 61 74 65 2e 0a 0a 54  |urrent state...T|
000018e0  68 69 73 20 63 6f 6d 6d  61 6e 64 20 69 73 20 74  |his command is t|
000018f0  68 65 6e 20 66 6f 6c 6c  6f 77 65 64 20 62 79 20  |hen followed by |
00001900  74 68 65 20 6e 75 6d 62  65 72 73 20 6f 66 20 74  |the numbers of t|
00001910  68 65 20 69 63 6f 6e 73  20 79 6f 75 20 77 69 73  |he icons you wis|
00001920  68 20 74 6f 20 61 6c 74  65 72 2c 20 74 68 65 73  |h to alter, thes|
00001930  65 20 0a 73 68 6f 75 6c  64 20 62 65 20 73 65 70  |e .should be sep|
00001940  61 72 61 74 65 64 20 62  79 20 63 6f 6d 6d 61 73  |arated by commas|
00001950  2e 20 20 54 68 69 73 20  63 6f 6d 6d 61 6e 64 20  |.  This command |
00001960  6d 61 79 20 62 65 20 73  70 65 63 69 66 69 65 64  |may be specified|
00001970  20 6d 6f 72 65 20 74 68  61 6e 20 6f 6e 63 65 20  | more than once |
00001980  69 6e 20 0a 61 20 76 61  6c 69 64 61 74 69 6f 6e  |in .a validation|
00001990  20 73 74 72 69 6e 67 2c  20 66 6f 72 20 65 78 61  | string, for exa|
000019a0  6d 70 6c 65 20 74 6f 20  73 77 69 74 63 68 20 69  |mple to switch i|
000019b0  63 6f 6e 73 20 31 20 26  20 32 20 6f 66 66 2c 20  |cons 1 & 2 off, |
000019c0  33 20 26 20 34 20 6f 6e  20 61 6e 64 20 74 6f 67  |3 & 4 on and tog|
000019d0  67 6c 65 20 74 68 65 20  0a 73 74 61 74 65 20 6f  |gle the .state o|
000019e0  66 20 69 63 6f 6e 73 20  35 20 26 20 36 20 79 6f  |f icons 5 & 6 yo|
000019f0  75 20 63 6f 75 6c 64 20  75 73 65 20 74 68 65 20  |u could use the |
00001a00  66 6f 6c 6c 6f 77 69 6e  67 20 76 61 6c 69 64 61  |following valida|
00001a10  74 69 6f 6e 20 73 74 72  69 6e 67 0a 0a 20 20 20  |tion string..   |
00001a20  20 20 20 20 20 52 30 2c  31 2c 32 3b 52 31 2c 33  |     R0,1,2;R1,3|
00001a30  2c 34 3b 52 32 2c 35 2c  36 0a 0a 54 68 65 20 28  |,4;R2,5,6..The (|
00001a40  55 29 6e 73 65 6c 65 63  74 61 62 6c 65 20 63 6f  |U)nselectable co|
00001a50  6d 6d 61 6e 64 20 69 6e  20 74 68 65 20 76 61 6c  |mmand in the val|
00001a60  69 64 61 74 69 6f 6e 20  73 74 72 69 6e 67 20 68  |idation string h|
00001a70  61 73 20 74 68 65 20 65  66 66 65 63 74 20 6f 66  |as the effect of|
00001a80  20 73 68 61 64 69 6e 67  20 74 68 65 20 0a 69 63  | shading the .ic|
00001a90  6f 6e 20 67 72 65 79 20  73 6f 20 74 68 61 74 20  |on grey so that |
00001aa0  69 74 20 63 61 6e 6e 6f  74 20 62 65 20 73 65 6c  |it cannot be sel|
00001ab0  65 63 74 65 64 20 62 79  20 74 68 65 20 75 73 65  |ected by the use|
00001ac0  72 2e 20 20 49 74 20 69  73 20 66 6f 6c 6c 6f 77  |r.  It is follow|
00001ad0  65 64 20 62 79 20 61 20  64 65 63 69 6d 61 6c 20  |ed by a decimal |
00001ae0  0a 6e 75 6d 62 65 72 20  69 6e 20 74 68 65 20 72  |.number in the r|
00001af0  61 6e 67 65 20 30 20 74  6f 20 32 2c 20 74 68 65  |ange 0 to 2, the|
00001b00  20 61 63 74 69 6f 6e 20  74 68 61 74 20 74 68 65  | action that the|
00001b10  73 65 20 69 73 20 64 65  73 63 72 69 62 65 64 20  |se is described |
00001b20  61 62 6f 76 65 20 69 6e  20 74 68 65 20 72 61 64  |above in the rad|
00001b30  69 6f 20 0a 63 6f 6d 6d  61 6e 64 2e 0a 0a 54 68  |io .command...Th|
00001b40  69 73 20 63 6f 6d 6d 61  6e 64 20 69 73 20 74 68  |is command is th|
00001b50  65 6e 20 66 6f 6c 6c 6f  77 65 64 20 62 79 20 74  |en followed by t|
00001b60  68 65 20 6e 75 6d 62 65  72 73 20 6f 66 20 74 68  |he numbers of th|
00001b70  65 20 69 63 6f 6e 73 20  79 6f 75 20 77 69 73 68  |e icons you wish|
00001b80  20 74 6f 20 61 6c 74 65  72 2c 20 74 68 65 73 65  | to alter, these|
00001b90  20 0a 73 68 6f 75 6c 64  20 62 65 20 73 65 70 61  | .should be sepa|
00001ba0  72 61 74 65 64 20 62 79  20 63 6f 6d 6d 61 73 2e  |rated by commas.|
00001bb0  20 20 54 68 69 73 20 63  6f 6d 6d 61 6e 64 20 6d  |  This command m|
00001bc0  61 79 20 62 65 20 73 70  65 63 69 66 69 65 64 20  |ay be specified |
00001bd0  6d 6f 72 65 20 74 68 61  6e 20 6f 6e 63 65 20 69  |more than once i|
00001be0  6e 20 0a 61 20 76 61 6c  69 64 61 74 69 6f 6e 20  |n .a validation |
00001bf0  73 74 72 69 6e 67 2c 20  66 6f 72 20 65 78 61 6d  |string, for exam|
00001c00  70 6c 65 20 74 6f 20 73  68 61 64 65 20 69 63 6f  |ple to shade ico|
00001c10  6e 73 20 31 20 26 20 32  2c 20 75 6e 2d 73 68 61  |ns 1 & 2, un-sha|
00001c20  64 65 20 33 20 26 20 34  20 61 6e 64 20 74 6f 67  |de 3 & 4 and tog|
00001c30  67 6c 65 20 74 68 65 20  0a 73 74 61 74 65 20 6f  |gle the .state o|
00001c40  66 20 69 63 6f 6e 73 20  35 20 26 20 36 20 79 6f  |f icons 5 & 6 yo|
00001c50  75 20 63 6f 75 6c 64 20  75 73 65 20 74 68 65 20  |u could use the |
00001c60  66 6f 6c 6c 6f 77 69 6e  67 20 76 61 6c 69 64 61  |following valida|
00001c70  74 69 6f 6e 20 73 74 72  69 6e 67 0a 0a 20 20 20  |tion string..   |
00001c80  20 20 20 20 20 55 30 2c  31 2c 32 3b 55 31 2c 33  |     U0,1,2;U1,3|
00001c90  2c 34 3b 55 32 2c 35 2c  36 0a 0a 54 68 65 20 28  |,4;U2,5,6..The (|
00001ca0  50 29 6f 69 6e 74 65 72  20 63 6f 6d 6d 61 6e 64  |P)ointer command|
00001cb0  20 69 73 20 75 73 65 64  20 74 6f 20 64 65 66 69  | is used to defi|
00001cc0  6e 65 20 61 20 70 6f 69  6e 74 65 72 20 74 6f 20  |ne a pointer to |
00001cd0  62 65 20 64 69 73 70 6c  61 79 65 64 20 77 68 65  |be displayed whe|
00001ce0  6e 20 74 68 65 20 70 6f  69 6e 74 65 72 20 0a 69  |n the pointer .i|
00001cf0  73 20 6f 76 65 72 20 74  68 61 74 20 69 63 6f 6e  |s over that icon|
00001d00  2e 20 20 54 68 65 20 66  69 72 73 74 20 70 61 72  |.  The first par|
00001d10  61 6d 65 74 65 72 20 69  73 20 61 20 73 70 72 69  |ameter is a spri|
00001d20  74 65 20 6e 61 6d 65 20  74 6f 20 75 73 65 20 66  |te name to use f|
00001d30  6f 72 20 74 68 65 20 70  6f 69 6e 74 65 72 2c 20  |or the pointer, |
00001d40  74 68 69 73 20 0a 73 68  6f 75 6c 64 20 62 65 20  |this .should be |
00001d50  6e 6f 20 6c 6f 6e 67 65  72 20 74 68 61 6e 20 31  |no longer than 1|
00001d60  32 20 63 68 61 72 61 63  74 65 72 73 20 61 6e 64  |2 characters and|
00001d70  20 73 68 6f 75 6c 64 20  62 65 20 70 72 65 73 65  | should be prese|
00001d80  6e 74 20 69 6e 20 74 68  65 20 57 49 4d 50 20 73  |nt in the WIMP s|
00001d90  70 72 69 74 65 20 0a 70  6f 6f 6c 2e 20 20 54 68  |prite .pool.  Th|
00001da0  65 20 6f 70 74 69 6f 6e  61 6c 20 70 61 72 61 6d  |e optional param|
00001db0  65 74 65 72 73 20 73 70  65 63 69 66 79 20 74 68  |eters specify th|
00001dc0  65 20 78 20 61 6e 64 20  79 20 6f 66 66 73 65 74  |e x and y offset|
00001dd0  73 20 74 6f 20 74 68 65  20 61 63 74 69 76 65 20  |s to the active |
00001de0  70 6f 69 6e 74 20 69 6e  20 74 68 65 20 0a 73 70  |point in the .sp|
00001df0  72 69 74 65 2c 20 74 68  65 73 65 20 73 68 6f 75  |rite, these shou|
00001e00  6c 64 20 62 65 20 73 70  65 63 69 66 69 65 64 20  |ld be specified |
00001e10  69 6e 20 70 69 78 65 6c  73 2e 0a 0a 54 68 65 20  |in pixels...The |
00001e20  28 49 29 6e 66 6f 72 6d  61 74 69 6f 6e 20 63 6f  |(I)nformation co|
00001e30  6d 6d 61 6e 64 20 69 73  20 75 73 65 64 20 74 6f  |mmand is used to|
00001e40  20 64 65 66 69 6e 65 20  61 20 6d 65 73 73 61 67  | define a messag|
00001e50  65 20 74 6f 20 62 65 20  73 65 6e 74 20 74 6f 20  |e to be sent to |
00001e60  74 68 65 20 69 6e 74 65  72 61 63 74 69 76 65 20  |the interactive |
00001e70  0a 68 65 6c 70 20 61 70  70 6c 69 63 61 74 69 6f  |.help applicatio|
00001e80  6e 20 77 68 65 6e 20 74  68 65 20 70 6f 69 6e 74  |n when the point|
00001e90  65 72 20 69 73 20 6f 76  65 72 20 74 68 65 20 69  |er is over the i|
00001ea0  63 6f 6e 2e 20 20 49 66  20 79 6f 75 20 77 69 73  |con.  If you wis|
00001eb0  68 20 74 6f 20 75 73 65  20 61 20 73 65 6d 69 2d  |h to use a semi-|
00001ec0  63 6f 6c 6f 6e 20 0a 74  68 65 6e 20 79 6f 75 20  |colon .then you |
00001ed0  6d 75 73 74 20 70 6c 61  63 65 20 74 77 6f 20 6e  |must place two n|
00001ee0  65 78 74 20 74 6f 20 65  61 63 68 20 6f 74 68 65  |ext to each othe|
00001ef0  72 2e 20 20 54 68 65 20  6d 61 78 69 6d 75 6d 20  |r.  The maximum |
00001f00  6c 65 6e 67 74 68 20 6f  66 20 74 68 65 20 68 65  |length of the he|
00001f10  6c 70 20 0a 6d 65 73 73  61 67 65 20 69 73 20 32  |lp .message is 2|
00001f20  33 35 20 63 68 61 72 61  63 74 65 72 73 2e 0a 0a  |35 characters...|
00001f30  54 68 65 20 49 6e 74 65  72 66 61 63 65 20 6d 6f  |The Interface mo|
00001f40  64 75 6c 65 20 77 69 6c  6c 20 63 68 61 6e 67 65  |dule will change|
00001f50  20 74 6f 20 74 68 65 20  73 70 65 63 69 66 69 65  | to the specifie|
00001f60  64 20 70 6f 69 6e 74 65  72 20 77 68 65 6e 20 74  |d pointer when t|
00001f70  68 65 20 6d 6f 75 73 65  20 70 6f 69 6e 74 65 72  |he mouse pointer|
00001f80  20 69 73 20 0a 6f 76 65  72 20 74 68 65 20 69 63  | is .over the ic|
00001f90  6f 6e 2f 77 6f 72 6b 61  72 65 61 2c 20 69 66 20  |on/workarea, if |
00001fa0  6e 6f 20 70 6f 69 6e 74  65 72 20 69 73 20 73 70  |no pointer is sp|
00001fb0  65 63 69 66 69 65 64 20  74 68 65 6e 20 74 68 65  |ecified then the|
00001fc0  20 70 6f 69 6e 74 65 72  20 77 69 6c 6c 20 64 65  | pointer will de|
00001fd0  66 61 75 6c 74 20 74 6f  20 0a 73 68 61 70 65 20  |fault to .shape |
00001fe0  6f 6e 65 20 28 74 68 65  20 64 65 66 61 75 6c 74  |one (the default|
00001ff0  20 61 72 72 6f 77 20 73  68 61 70 65 29 2e 20 20  | arrow shape).  |
00002000  54 68 65 72 65 20 61 72  65 20 35 20 70 6f 69 6e  |There are 5 poin|
00002010  74 65 72 20 73 68 61 70  65 73 20 64 65 73 69 67  |ter shapes desig|
00002020  6e 65 64 20 69 6e 20 74  68 65 20 0a 73 70 72 69  |ned in the .spri|
00002030  74 65 20 66 69 6c 65 20  69 6e 20 74 68 65 20 21  |te file in the !|
00002040  49 6e 74 65 72 66 61 63  65 20 64 69 72 65 63 74  |Interface direct|
00002050  6f 72 79 2c 20 74 68 65  73 65 20 61 72 65 3a 0a  |ory, these are:.|
00002060  0a 20 20 20 20 20 20 20  20 70 74 72 5f 77 72 69  |.        ptr_wri|
00002070  74 65 20 2d 20 74 68 69  73 20 70 6f 69 6e 74 65  |te - this pointe|
00002080  72 20 73 68 6f 75 6c 64  20 62 65 20 75 73 65 64  |r should be used|
00002090  20 6f 6e 20 77 72 69 74  61 62 6c 65 20 69 63 6f  | on writable ico|
000020a0  6e 73 2c 20 74 68 65 20  73 75 67 67 65 73 74 65  |ns, the suggeste|
000020b0  64 20 61 63 74 69 76 65  0a 20 20 20 20 20 20 20  |d active.       |
000020c0  20 70 6f 69 6e 74 20 69  73 20 61 74 20 63 6f 6f  | point is at coo|
000020d0  72 64 69 6e 61 74 65 73  20 78 20 3d 20 34 2c 20  |rdinates x = 4, |
000020e0  79 20 3d 20 34 2e 0a 0a  20 20 20 20 20 20 20 20  |y = 4...        |
000020f0  70 74 72 5f 6d 65 6e 75  20 2d 20 74 68 69 73 20  |ptr_menu - this |
00002100  70 6f 69 6e 74 65 72 20  69 73 20 75 73 65 64 20  |pointer is used |
00002110  77 68 65 72 65 20 61 20  6d 65 6e 75 20 63 61 6e  |where a menu can|
00002120  20 62 65 20 61 63 74 69  76 61 74 65 64 20 62 79  | be activated by|
00002130  20 70 72 65 73 73 69 6e  67 20 74 68 65 0a 20 20  | pressing the.  |
00002140  20 20 20 20 20 20 6d 65  6e 75 20 62 75 74 74 6f  |      menu butto|
00002150  6e 20 6f 76 65 72 20 74  68 65 20 69 63 6f 6e 2e  |n over the icon.|
00002160  20 20 54 68 69 73 20 73  74 6f 70 73 20 74 68 65  |  This stops the|
00002170  20 75 73 65 72 20 68 61  76 69 6e 67 20 74 6f 20  | user having to |
00002180  73 65 61 72 63 68 20 61  6c 6c 20 6f 76 65 72 20  |search all over |
00002190  74 68 65 0a 20 20 20 20  20 20 20 20 77 69 6e 64  |the.        wind|
000021a0  6f 77 20 74 6f 20 66 69  6e 64 20 77 68 65 72 65  |ow to find where|
000021b0  20 74 68 65 20 6d 65 6e  75 20 69 73 2e 20 54 68  | the menu is. Th|
000021c0  65 20 73 75 67 67 65 73  74 65 64 20 61 63 74 69  |e suggested acti|
000021d0  76 65 20 70 6f 69 6e 74  20 69 73 20 78 20 3d 20  |ve point is x = |
000021e0  36 2c 20 79 20 3d 20 35  2e 0a 0a 20 20 20 20 20  |6, y = 5...     |
000021f0  20 20 20 70 74 72 5f 64  69 72 65 63 74 20 2d 20  |   ptr_direct - |
00002200  74 68 69 73 20 70 6f 69  6e 74 65 72 20 69 73 20  |this pointer is |
00002210  75 73 65 64 20 77 68 65  72 65 20 61 6e 20 6f 62  |used where an ob|
00002220  6a 65 63 74 20 6d 61 79  20 62 65 20 72 65 2d 73  |ject may be re-s|
00002230  69 7a 65 64 2c 20 74 68  65 20 73 75 67 67 65 73  |ized, the sugges|
00002240  74 65 64 0a 20 20 20 20  20 20 20 20 61 63 74 69  |ted.        acti|
00002250  76 65 20 70 6f 69 6e 74  20 69 73 20 61 74 20 78  |ve point is at x|
00002260  20 3d 20 31 33 2c 20 79  20 3d 20 37 2e 0a 0a 20  | = 13, y = 7... |
00002270  20 20 20 20 20 20 20 70  74 72 5f 68 61 6e 64 20  |       ptr_hand |
00002280  2d 20 74 68 69 73 20 70  6f 69 6e 74 65 72 20 69  |- this pointer i|
00002290  73 20 75 73 65 64 20 77  68 65 72 65 20 61 6e 64  |s used where and|
000022a0  20 69 63 6f 6e 20 6d 61  79 20 62 65 20 64 72 61  | icon may be dra|
000022b0  67 67 65 64 2e 20 20 49  74 20 69 73 20 75 73 75  |gged.  It is usu|
000022c0  61 6c 6c 79 20 73 65 74  0a 20 20 20 20 20 20 20  |ally set.       |
000022d0  20 6f 6e 20 74 68 65 20  77 6f 72 6b 61 72 65 61  | on the workarea|
000022e0  2c 20 62 75 74 20 69 74  20 63 61 6e 20 62 65 20  |, but it can be |
000022f0  75 73 65 64 20 6f 6e 20  61 6e 79 20 69 63 6f 6e  |used on any icon|
00002300  20 28 74 68 65 20 73 61  76 65 20 66 69 6c 65 20  | (the save file |
00002310  69 63 6f 6e 20 6c 6f 6f  6b 73 20 67 72 65 61 74  |icon looks great|
00002320  0a 20 20 20 20 20 20 20  20 77 68 65 6e 20 75 73  |.        when us|
00002330  69 6e 67 20 69 74 29 2c  20 69 74 73 20 73 75 67  |ing it), its sug|
00002340  67 65 73 74 65 64 20 61  63 74 69 76 65 20 70 6f  |gested active po|
00002350  69 6e 74 20 69 73 20 61  74 20 78 20 3d 20 31 32  |int is at x = 12|
00002360  2c 20 79 20 3d 20 38 2e  0a 0a 20 20 20 20 20 20  |, y = 8...      |
00002370  20 20 70 74 72 5f 63 72  6f 73 73 20 2d 20 74 68  |  ptr_cross - th|
00002380  69 73 20 70 6f 69 6e 74  65 72 20 69 73 20 75 73  |is pointer is us|
00002390  65 64 20 61 73 20 61 20  63 72 6f 73 73 68 61 69  |ed as a crosshai|
000023a0  72 2c 20 69 74 20 69 73  20 74 68 65 20 73 61 6d  |r, it is the sam|
000023b0  65 20 61 73 20 74 68 65  20 6f 6e 65 20 75 73 65  |e as the one use|
000023c0  64 20 69 6e 20 74 68 65  0a 20 20 20 20 20 20 20  |d in the.       |
000023d0  20 44 72 61 77 20 61 70  70 6c 69 63 61 74 69 6f  | Draw applicatio|
000023e0  6e 2e 20 20 54 68 69 73  20 69 63 6f 6e 20 67 69  |n.  This icon gi|
000023f0  76 65 73 20 74 68 65 20  75 73 65 72 20 61 20 70  |ves the user a p|
00002400  72 65 63 69 73 65 20 70  6f 69 6e 74 20 77 68 65  |recise point whe|
00002410  6e 20 77 6f 72 6b 69 6e  67 20 77 69 74 68 0a 20  |n working with. |
00002420  20 20 20 20 20 20 20 6c  69 6e 65 20 64 72 61 77  |       line draw|
00002430  69 6e 67 73 2c 20 69 74  73 20 73 75 67 67 65 73  |ings, its sugges|
00002440  74 65 64 20 61 63 74 69  76 65 20 70 6f 69 6e 74  |ted active point|
00002450  20 69 73 20 61 74 20 78  20 3d 20 31 33 2c 20 79  | is at x = 13, y|
00002460  20 3d 20 37 2e 0a 0a 59  6f 75 20 6d 61 79 20 61  | = 7...You may a|
00002470  6c 73 6f 20 64 65 73 69  67 6e 20 79 6f 75 72 20  |lso design your |
00002480  6f 77 6e 20 70 6f 69 6e  74 65 72 73 2c 20 77 68  |own pointers, wh|
00002490  69 63 68 20 73 68 6f 75  6c 64 20 62 65 20 6c 6f  |ich should be lo|
000024a0  61 64 65 64 20 69 6e 74  6f 20 74 68 65 20 57 49  |aded into the WI|
000024b0  4d 50 20 0a 73 70 72 69  74 65 20 70 6f 6f 6c 2e  |MP .sprite pool.|
000024c0  20 20 54 68 65 72 65 20  61 72 65 20 61 20 66 65  |  There are a fe|
000024d0  77 20 70 6f 69 6e 74 73  20 74 68 61 74 20 79 6f  |w points that yo|
000024e0  75 20 73 68 6f 75 6c 64  20 6e 6f 74 65 20 77 68  |u should note wh|
000024f0  65 6e 20 64 65 73 69 67  6e 69 6e 67 20 70 6f 69  |en designing poi|
00002500  6e 74 65 72 73 20 0a 74  68 65 73 65 20 61 72 65  |nters .these are|
00002510  20 3a 0a 0a 20 20 20 20  20 20 20 20 50 6f 69 6e  | :..        Poin|
00002520  74 65 72 20 73 70 72 69  74 65 20 6e 61 6d 65 73  |ter sprite names|
00002530  20 73 68 6f 75 6c 64 20  68 61 76 65 20 74 68 65  | should have the|
00002540  20 66 6f 72 6d 20 70 74  72 5f 58 58 58 58 58 2c  | form ptr_XXXXX,|
00002550  20 61 6c 74 68 6f 75 67  68 20 74 68 69 73 20 69  | although this i|
00002560  73 20 6e 6f 74 0a 20 20  20 20 20 20 20 20 63 6f  |s not.        co|
00002570  6d 70 75 6c 73 6f 72 79  20 69 74 20 68 65 6c 70  |mpulsory it help|
00002580  73 20 73 6f 20 74 68 61  74 20 79 6f 75 20 64 6f  |s so that you do|
00002590  20 6e 6f 74 20 67 65 74  20 63 6f 6e 66 75 73 65  | not get confuse|
000025a0  64 20 77 69 74 68 20 70  6f 69 6e 74 65 72 73 20  |d with pointers |
000025b0  61 6e 64 20 6e 6f 72 6d  61 6c 0a 20 20 20 20 20  |and normal.     |
000025c0  20 20 20 73 70 72 69 74  65 73 2e 0a 0a 20 20 20  |   sprites...   |
000025d0  20 20 20 20 20 44 6f 20  6e 6f 74 20 75 73 65 20  |     Do not use |
000025e0  6c 6f 67 69 63 61 6c 20  63 6f 6c 6f 75 72 20 32  |logical colour 2|
000025f0  20 69 6e 20 74 68 65 20  70 6f 69 6e 74 65 72 20  | in the pointer |
00002600  73 70 72 69 74 65 73 2c  20 61 73 20 74 68 69 73  |sprites, as this|
00002610  20 69 73 20 75 6e 61 76  61 69 6c 61 62 6c 65 20  | is unavailable |
00002620  69 6e 20 76 65 72 79 0a  20 20 20 20 20 20 20 20  |in very.        |
00002630  68 69 67 68 20 72 65 73  6f 6c 75 74 69 6f 6e 20  |high resolution |
00002640  6d 6f 64 65 73 2e 0a 0a  54 68 65 20 70 6f 69 6e  |modes...The poin|
00002650  74 65 72 73 20 75 73 65  64 20 73 68 6f 75 6c 64  |ters used should|
00002660  20 6f 6e 6c 79 20 62 65  20 76 61 6c 69 64 20 69  | only be valid i|
00002670  6e 20 79 6f 75 72 20 61  70 70 6c 69 63 61 74 69  |n your applicati|
00002680  6f 6e 2c 20 73 6f 20 79  6f 75 20 6d 75 73 74 20  |on, so you must |
00002690  6e 6f 74 20 6d 61 73 6b  20 0a 6f 75 74 20 74 68  |not mask .out th|
000026a0  65 20 50 6f 69 6e 74 65  72 5f 4c 65 61 76 69 6e  |e Pointer_Leavin|
000026b0  67 5f 57 69 6e 64 6f 77  20 69 6e 20 79 6f 75 72  |g_Window in your|
000026c0  20 61 70 70 6c 69 63 61  74 69 6f 6e 2e 20 20 59  | application.  Y|
000026d0  6f 75 20 73 68 6f 75 6c  64 20 63 6c 61 69 6d 20  |ou should claim |
000026e0  0a 4e 75 6c 6c 5f 52 65  61 73 6f 6e 5f 43 6f 64  |.Null_Reason_Cod|
000026f0  65 20 77 68 65 6e 20 70  61 73 73 65 64 20 74 6f  |e when passed to|
00002700  20 79 6f 75 72 20 61 70  70 6c 69 63 61 74 69 6f  | your applicatio|
00002710  6e 2c 20 6f 74 68 65 72  77 69 73 65 20 74 68 65  |n, otherwise the|
00002720  20 70 6f 69 6e 74 65 72  20 77 69 6c 6c 20 6e 6f  | pointer will no|
00002730  74 20 0a 63 68 61 6e 67  65 20 77 68 65 6e 20 74  |t .change when t|
00002740  68 65 20 70 6f 69 6e 74  65 72 20 69 73 20 6f 76  |he pointer is ov|
00002750  65 72 20 74 68 65 20 69  63 6f 6e 2f 77 6f 72 6b  |er the icon/work|
00002760  61 72 65 61 2c 20 73 65  65 20 74 68 65 20 65 78  |area, see the ex|
00002770  61 6d 70 6c 65 73 20 66  6f 72 20 6d 6f 72 65 2e  |amples for more.|
00002780  0a 0a 59 6f 75 20 73 68  6f 75 6c 64 20 73 75 70  |..You should sup|
00002790  70 6f 72 74 20 74 68 65  20 21 48 65 6c 70 20 61  |port the !Help a|
000027a0  70 70 6c 69 63 61 74 69  6f 6e 20 74 6f 20 68 65  |pplication to he|
000027b0  6c 70 20 6e 65 77 20 75  73 65 72 73 20 75 73 69  |lp new users usi|
000027c0  6e 67 20 79 6f 75 72 20  61 70 70 6c 69 63 61 74  |ng your applicat|
000027d0  69 6f 6e 2c 20 0a 74 68  69 73 20 69 73 20 77 68  |ion, .this is wh|
000027e0  79 20 49 20 69 6d 70 6c  65 6d 65 6e 74 65 64 20  |y I implemented |
000027f0  61 20 66 65 61 74 75 72  65 20 69 6e 20 49 6e 74  |a feature in Int|
00002800  65 72 66 61 63 65 20 74  6f 20 6d 61 6b 65 20 74  |erface to make t|
00002810  68 69 73 20 65 61 73 69  65 72 2e 20 20 54 68 65  |his easier.  The|
00002820  20 66 6f 6c 6c 6f 77 69  6e 67 20 0a 77 61 73 20  | following .was |
00002830  66 6f 72 20 73 6f 6d 65  20 72 65 61 73 6f 6e 20  |for some reason |
00002840  6e 6f 74 20 70 75 62 6c  69 73 68 65 64 20 69 6e  |not published in|
00002850  20 74 68 65 20 50 72 6f  67 72 61 6d 6d 65 72 73  | the Programmers|
00002860  20 52 65 66 65 72 65 6e  63 65 20 4d 61 6e 75 61  | Reference Manua|
00002870  6c 73 2c 20 62 75 74 20  77 61 73 20 0a 69 6e 20  |ls, but was .in |
00002880  74 68 65 20 70 72 65 2d  72 65 6c 65 61 73 65 20  |the pre-release |
00002890  64 69 73 63 20 76 65 72  73 69 6f 6e 20 6f 66 20  |disc version of |
000028a0  74 68 65 20 6d 61 6e 75  61 6c 73 2e 0a 0a 46 6f  |the manuals...Fo|
000028b0  72 20 61 6e 20 61 70 70  6c 69 63 61 74 69 6f 6e  |r an application|
000028c0  20 74 6f 20 75 73 65 20  69 6e 74 65 72 61 63 74  | to use interact|
000028d0  69 76 65 20 68 65 6c 70  2c 20 74 77 6f 20 57 49  |ive help, two WI|
000028e0  4d 50 20 6d 65 73 73 61  67 65 73 20 61 72 65 20  |MP messages are |
000028f0  65 6d 70 6c 6f 79 65 64  2e 20 20 4f 6e 65 20 0a  |employed.  One .|
00002900  69 73 20 75 73 65 64 20  62 79 20 74 68 65 20 48  |is used by the H|
00002910  65 6c 70 20 74 6f 20 72  65 71 75 65 73 74 20 68  |elp to request h|
00002920  65 6c 70 2c 20 61 6e 64  20 74 68 65 20 6f 74 68  |elp, and the oth|
00002930  65 72 20 69 73 20 75 73  65 64 20 62 79 20 74 68  |er is used by th|
00002940  65 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 74 6f  |e application to|
00002950  20 72 65 74 75 72 6e 20  0a 74 68 65 20 68 65 6c  | return .the hel|
00002960  70 20 6d 65 73 73 61 67  65 2e 0a 0a 54 6f 20 72  |p message...To r|
00002970  65 71 75 65 73 74 20 68  65 6c 70 2c 20 74 68 65  |equest help, the|
00002980  20 48 65 6c 70 20 61 70  70 6c 69 63 61 74 69 6f  | Help applicatio|
00002990  6e 20 73 65 6e 64 73 20  61 20 6d 65 73 73 61 67  |n sends a messag|
000029a0  65 20 6f 66 20 74 68 65  20 66 6f 6c 6c 6f 77 69  |e of the followi|
000029b0  6e 67 20 66 6f 72 6d 3a  0a 0a 62 6c 6f 63 6b 20  |ng form:..block |
000029c0  20 20 2b 31 36 20 20 20  20 20 26 35 30 32 20 2d  |  +16     &502 -|
000029d0  20 69 6e 64 69 63 61 74  65 73 20 72 65 71 75 65  | indicates reque|
000029e0  73 74 20 66 6f 72 20 68  65 6c 70 0a 20 20 20 20  |st for help.    |
000029f0  20 20 20 20 20 20 20 20  20 20 20 20 2b 32 30 20  |            +20 |
00002a00  20 20 20 20 6d 6f 75 73  65 20 78 20 63 6f 2d 6f  |    mouse x co-o|
00002a10  72 64 69 6e 61 74 65 0a  20 20 20 20 20 20 20 20  |rdinate.        |
00002a20  20 20 20 20 20 20 20 20  2b 32 34 20 20 20 20 20  |        +24     |
00002a30  6d 6f 75 73 65 20 79 20  63 6f 2d 6f 72 64 69 6e  |mouse y co-ordin|
00002a40  61 74 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ate.            |
00002a50  20 20 20 20 2b 32 38 20  20 20 20 20 6d 6f 75 73  |    +28     mous|
00002a60  65 20 62 75 74 74 6f 6e  20 73 74 61 74 65 0a 20  |e button state. |
00002a70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2b  |               +|
00002a80  33 32 20 20 20 20 20 77  69 6e 64 6f 77 20 68 61  |32     window ha|
00002a90  6e 64 6c 65 20 20 20 20  20 20 20 20 20 20 20 20  |ndle            |
00002aa0  20 20 20 28 2d 31 20 69  66 20 6e 6f 74 20 6f 76  |   (-1 if not ov|
00002ab0  65 72 20 61 20 77 69 6e  64 6f 77 29 0a 20 20 20  |er a window).   |
00002ac0  20 20 20 20 20 20 20 20  20 20 20 20 20 2b 33 36  |             +36|
00002ad0  20 20 20 20 20 69 63 6f  6e 20 68 61 6e 64 6c 65  |     icon handle|
00002ae0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002af0  20 28 2d 31 20 69 66 20  6e 6f 74 20 6f 76 65 72  | (-1 if not over|
00002b00  20 61 6e 20 69 63 6f 6e  29 0a 0a 54 68 65 20 57  | an icon)..The W|
00002b10  49 4d 50 20 73 79 73 74  65 6d 20 77 69 6c 6c 20  |IMP system will |
00002b20  70 61 73 73 20 74 68 69  73 20 6d 65 73 73 61 67  |pass this messag|
00002b30  65 20 61 75 74 6f 6d 61  74 69 63 61 6c 6c 79 20  |e automatically |
00002b40  74 6f 20 74 68 65 20 74  61 73 6b 20 69 6e 20 63  |to the task in c|
00002b50  68 61 72 67 65 20 6f 66  20 74 68 65 20 0a 61 70  |harge of the .ap|
00002b60  70 72 6f 70 72 69 61 74  65 20 77 69 6e 64 6f 77  |propriate window|
00002b70  2f 69 63 6f 6e 2e 20 20  49 66 20 74 68 65 20 61  |/icon.  If the a|
00002b80  70 70 6c 69 63 61 74 69  6f 6e 20 72 65 63 65 69  |pplication recei|
00002b90  76 69 6e 67 20 74 68 65  20 6d 65 73 73 61 67 65  |ving the message|
00002ba0  20 77 69 73 68 65 73 20  74 6f 20 70 72 6f 64 75  | wishes to produ|
00002bb0  63 65 20 0a 73 6f 6d 65  20 68 65 6c 70 2c 20 69  |ce .some help, i|
00002bc0  74 20 73 68 6f 75 6c 64  20 72 65 73 70 6f 6e 64  |t should respond|
00002bd0  20 77 69 74 68 20 74 68  65 20 66 6f 6c 6c 6f 77  | with the follow|
00002be0  69 6e 67 20 6d 65 73 73  61 67 65 3a 0a 0a 62 6c  |ing message:..bl|
00002bf0  6f 63 6b 20 20 20 2b 31  36 20 20 20 20 20 26 35  |ock   +16     &5|
00002c00  30 33 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |03.             |
00002c10  20 20 20 2b 32 30 20 20  20 20 20 68 65 6c 70 20  |   +20     help |
00002c20  6d 65 73 73 61 67 65 20  74 65 72 6d 69 6e 61 74  |message terminat|
00002c30  65 64 20 62 79 20 30 0a  0a 54 68 69 73 20 6d 65  |ed by 0..This me|
00002c40  73 73 61 67 65 20 63 61  6e 20 62 65 20 73 65 6e  |ssage can be sen|
00002c50  74 20 74 6f 20 74 68 65  20 48 65 6c 70 20 61 70  |t to the Help ap|
00002c60  70 6c 69 63 61 74 69 6f  6e 20 62 79 20 75 73 69  |plication by usi|
00002c70  6e 67 20 57 69 6d 70 5f  53 65 6e 64 48 65 6c 70  |ng Wimp_SendHelp|
00002c80  2c 20 77 68 69 63 68 20  0a 69 73 20 70 72 6f 76  |, which .is prov|
00002c90  69 64 65 64 20 62 79 20  74 68 65 20 49 6e 74 65  |ided by the Inte|
00002ca0  72 66 61 63 65 20 6d 6f  64 75 6c 65 20 28 53 57  |rface module (SW|
00002cb0  49 20 26 38 31 36 38 37  29 2e 0a 0a 54 68 65 20  |I &81687)...The |
00002cc0  68 65 6c 70 20 74 65 78  74 20 6d 61 79 20 20 63  |help text may  c|
00002cd0  6f 6e 74 61 69 6e 20 61  6e 79 20 70 72 69 6e 74  |ontain any print|
00002ce0  61 62 6c 65 20 63 68 61  72 61 63 74 65 72 20 63  |able character c|
00002cf0  6f 64 65 73 2e 20 20 49  66 20 74 68 65 20 73 65  |odes.  If the se|
00002d00  71 75 65 6e 63 65 20 7c  4d 20 69 73 20 0a 65 6e  |quence |M is .en|
00002d10  63 6f 75 6e 74 65 72 65  64 20 74 68 65 6e 20 74  |countered then t|
00002d20  68 69 73 20 77 69 6c 6c  20 62 65 20 74 72 65 61  |his will be trea|
00002d30  74 65 64 20 61 73 20 61  20 6c 69 6e 65 20 62 72  |ted as a line br|
00002d40  65 61 6b 20 61 6e 64 20  73 75 62 73 65 71 75 65  |eak and subseque|
00002d50  6e 74 20 74 65 78 74 20  77 69 6c 6c 20 62 65 20  |nt text will be |
00002d60  0a 70 72 69 6e 74 65 64  20 6f 6e 20 74 68 65 20  |.printed on the |
00002d70  6e 65 78 74 20 6c 69 6e  65 20 69 6e 20 74 68 65  |next line in the|
00002d80  20 77 69 6e 64 6f 77 2e  20 20 49 66 20 74 68 65  | window.  If the|
00002d90  20 74 65 78 74 20 69 73  20 74 6f 6f 20 6c 6f 6e  | text is too lon|
00002da0  67 20 66 6f 72 20 6f 6e  65 20 6c 69 6e 65 20 74  |g for one line t|
00002db0  68 65 6e 20 69 74 20 77  69 6c 6c 20 0a 62 65 20  |hen it will .be |
00002dc0  73 70 6c 69 74 20 61 74  20 61 20 77 6f 72 64 20  |split at a word |
00002dd0  62 6f 75 6e 64 61 72 79  20 28 73 70 61 63 65 20  |boundary (space |
00002de0  63 68 61 72 61 63 74 65  72 29 2e 0a 0a 54 68 65  |character)...The|
00002df0  20 74 65 78 74 20 73 68  6f 75 6c 64 20 63 6f 6e  | text should con|
00002e00  73 69 73 74 20 6f 66 20  20 73 69 6d 70 6c 65 20  |sist of  simple |
00002e10  63 6f 6d 70 6c 65 74 65  20 45 6e 67 6c 69 73 68  |complete English|
00002e20  20 73 65 6e 74 65 6e 63  65 73 2c 20 65 61 63 68  | sentences, each|
00002e30  20 73 74 61 72 74 69 6e  67 20 6f 6e 20 61 20 0a  | starting on a .|
00002e40  6e 65 77 20 6c 69 6e 65  20 61 6e 64 20 65 6e 64  |new line and end|
00002e50  69 6e 67 20 77 69 74 68  20 61 20 66 75 6c 6c 20  |ing with a full |
00002e60  73 74 6f 70 2e 20 20 54  68 65 20 73 65 6e 74 65  |stop.  The sente|
00002e70  6e 63 65 73 20 73 68 6f  75 6c 64 20 75 73 75 61  |nces should usua|
00002e80  6c 6c 79 20 62 65 20 73  69 6d 70 6c 65 20 0a 69  |lly be simple .i|
00002e90  6d 70 65 72 61 74 69 76  65 73 20 6f 72 20 69 6e  |mperatives or in|
00002ea0  66 6f 72 6d 61 74 69 6f  6e 20 73 75 63 68 20 61  |formation such a|
00002eb0  73 3a 0a 0a 20 20 20 20  20 20 20 20 43 6c 69 63  |s:..        Clic|
00002ec0  6b 20 53 45 4c 45 43 54  20 74 6f 20 73 65 74 20  |k SELECT to set |
00002ed0  74 68 65 20 61 6c 61 72  6d 2e 0a 0a 20 20 20 20  |the alarm...    |
00002ee0  20 20 20 20 59 6f 75 20  61 72 65 20 69 6e 20 53  |    You are in S|
00002ef0  65 6c 65 63 74 20 6d 6f  64 65 2e 0a 0a 20 20 20  |elect mode...   |
00002f00  20 20 20 20 20 43 6c 69  63 6b 20 41 44 4a 55 53  |     Click ADJUS|
00002f10  54 20 74 6f 20 63 68 61  6e 67 65 20 74 6f 20 70  |T to change to p|
00002f20  61 74 68 20 65 64 69 74  20 6d 6f 64 65 2e 0a 0a  |ath edit mode...|
00002f30  20 20 20 20 20 20 20 20  54 68 69 73 20 69 73 20  |        This is |
00002f40  74 68 65 20 69 63 6f 6e  20 66 6f 72 20 45 64 69  |the icon for Edi|
00002f50  74 2e 0a 0a 49 6e 20 67  65 6e 65 72 61 6c 20 79  |t...In general y|
00002f60  6f 75 20 6e 65 65 64 20  6e 6f 74 20 6d 65 6e 74  |ou need not ment|
00002f70  69 6f 6e 20 6d 65 6e 75  20 65 6e 74 72 69 65 73  |ion menu entries|
00002f80  2c 20 65 78 63 65 70 74  20 77 68 65 6e 20 73 70  |, except when sp|
00002f90  65 63 69 66 69 63 20 6f  6e 65 73 20 69 6e 74 65  |ecific ones inte|
00002fa0  72 61 63 74 20 0a 77 69  74 68 20 70 6f 69 6e 74  |ract .with point|
00002fb0  65 72 20 6f 70 65 72 61  74 69 6f 6e 73 2e 20 20  |er operations.  |
00002fc0  41 73 20 61 20 67 65 6e  65 72 61 6c 20 72 75 6c  |As a general rul|
00002fd0  65 20 70 72 65 73 65 6e  74 20 69 6e 66 6f 72 6d  |e present inform|
00002fe0  61 74 69 6f 6e 20 6f 66  20 69 6e 74 65 72 65 73  |ation of interes|
00002ff0  74 20 74 6f 20 74 68 65  20 0a 62 65 67 69 6e 6e  |t to the .beginn|
00003000  65 72 20 6e 65 61 72 20  74 68 65 20 74 6f 70 2c  |er near the top,|
00003010  20 61 6e 64 20 65 78 70  65 72 74 20 74 69 70 73  | and expert tips|
00003020  20 6f 72 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  | or information |
00003030  6c 6f 77 65 72 20 64 6f  77 6e 2e 0a 0a 59 6f 75  |lower down...You|
00003040  20 6d 75 73 74 20 75 73  65 20 74 68 65 20 74 65  | must use the te|
00003050  72 6d 69 6e 6f 6c 6f 67  79 20 64 65 66 69 6e 65  |rminology define|
00003060  64 2e 20 20 46 6f 72 20  6d 6f 75 73 65 20 6f 70  |d.  For mouse op|
00003070  65 72 61 74 69 6f 6e 73  20 79 6f 75 20 6d 75 73  |erations you mus|
00003080  74 20 75 73 65 20 69 6e  69 74 69 61 6c 20 0a 63  |t use initial .c|
00003090  61 70 69 74 61 6c 73 20  28 66 6f 72 20 65 78 61  |apitals (for exa|
000030a0  6d 70 6c 65 20 43 6c 69  63 6b 29 2e 20 20 54 68  |mple Click).  Th|
000030b0  65 20 6d 6f 75 73 65 20  62 75 74 74 6f 6e 73 20  |e mouse buttons |
000030c0  6d 75 73 74 20 62 65 20  69 6e 20 63 61 70 69 74  |must be in capit|
000030d0  61 6c 73 20 28 66 6f 72  20 65 78 61 6d 70 6c 65  |als (for example|
000030e0  20 0a 53 45 4c 45 43 54  29 2c 20 61 73 20 6d 75  | .SELECT), as mu|
000030f0  73 74 20 6b 65 79 20 6e  61 6d 65 73 20 28 66 6f  |st key names (fo|
00003100  72 20 65 78 61 6d 70 6c  65 20 45 53 43 2c 20 52  |r example ESC, R|
00003110  45 54 55 52 4e 2c 20 53  48 49 46 54 2c 20 43 4f  |ETURN, SHIFT, CO|
00003120  4e 54 52 4f 4c 2c 20 41  2c 20 42 2c 20 46 31 2c  |NTROL, A, B, F1,|
00003130  20 0a 43 4f 50 59 29 2e  20 20 6d 69 73 73 20 6f  | .COPY).  miss o|
00003140  75 74 20 73 70 65 65 64  75 70 73 20 61 6e 64 20  |ut speedups and |
00003150  73 68 6f 72 74 63 75 74  73 20 2d 20 6a 75 73 74  |shortcuts - just|
00003160  20 70 72 6f 76 69 64 65  20 65 6e 6f 75 67 68 20  | provide enough |
00003170  74 6f 20 68 65 6c 70 20  61 20 62 65 67 69 6e 6e  |to help a beginn|
00003180  65 72 20 0a 77 69 74 68  6f 75 74 20 64 72 6f 77  |er .without drow|
00003190  6e 69 6e 67 20 74 68 65  6d 20 77 69 74 68 20 69  |ning them with i|
000031a0  6e 66 6f 72 6d 61 74 69  6f 6e 2e 0a 0a 50 72 6f  |nformation...Pro|
000031b0  76 69 64 65 20 69 6e 74  65 72 61 63 74 69 76 65  |vide interactive|
000031c0  20 68 65 6c 70 20 74 68  6f 72 6f 75 67 68 6c 79  | help thoroughly|
000031d0  20 2d 20 69 6e 63 6c 75  64 65 20 74 68 65 20 69  | - include the i|
000031e0  63 6f 6e 20 62 61 72 2c  20 61 6e 64 20 74 68 65  |con bar, and the|
000031f0  20 77 6f 72 6b 61 72 65  61 20 6f 66 20 61 6c 6c  | workarea of all|
00003200  20 0a 79 6f 75 72 20 77  69 6e 64 6f 77 73 2e 20  | .your windows. |
00003210  20 49 66 20 6e 6f 20 61  63 74 69 6f 6e 73 20 61  | If no actions a|
00003220  72 65 20 70 6f 73 73 69  62 6c 65 20 69 6e 20 61  |re possible in a|
00003230  20 77 69 6e 64 6f 77 2c  20 6a 75 73 74 0a 0a 20  | window, just.. |
00003240  20 20 20 20 20 20 20 54  68 69 73 20 77 69 6e 64  |       This wind|
00003250  6f 77 20 73 68 6f 77 73  2e 2e 2e 2e 0a 0a 69 66  |ow shows......if|
00003260  20 62 65 74 74 65 72 20  74 68 61 6e 20 6e 6f 74  | better than not|
00003270  68 69 6e 67 2e 0a 0a 59  6f 75 20 73 68 6f 75 6c  |hing...You shoul|
00003280  64 20 61 73 73 75 6d 65  20 61 20 75 73 65 72 20  |d assume a user |
00003290  6b 6e 6f 77 73 3a 0a 0a  20 20 20 20 20 20 20 20  |knows:..        |
000032a0  77 68 61 74 20 61 20 4d  45 4e 55 20 6b 65 79 20  |what a MENU key |
000032b0  69 73 0a 20 20 20 20 20  20 20 20 68 6f 77 20 74  |is.        how t|
000032c0  6f 20 6e 61 76 69 67 61  74 65 20 6d 65 6e 75 20  |o navigate menu |
000032d0  74 72 65 65 73 20 61 6e  64 20 63 68 6f 6f 73 65  |trees and choose|
000032e0  20 65 6e 74 72 69 65 73  0a 20 20 20 20 20 20 20  | entries.       |
000032f0  20 77 68 61 74 20 74 68  65 20 69 63 6f 6e 20 62  | what the icon b|
00003300  61 72 20 69 73 0a 20 20  20 20 20 20 20 20 68 6f  |ar is.        ho|
00003310  77 20 74 6f 20 6d 6f 76  65 2f 73 69 7a 65 2f 74  |w to move/size/t|
00003320  6f 67 67 6c 65 2f 63 6c  6f 73 65 20 77 69 6e 64  |oggle/close wind|
00003330  6f 77 73 2c 20 61 6e 64  20 73 6f 20 6f 6e 0a 20  |ows, and so on. |
00003340  20 20 20 20 20 20 20 77  68 61 74 20 27 64 72 61  |       what 'dra|
00003350  67 67 69 6e 67 20 61 6e  20 69 63 6f 6e 27 20 6d  |gging an icon' m|
00003360  65 61 6e 73 0a 20 20 20  20 20 20 20 20 77 68 61  |eans.        wha|
00003370  74 20 27 66 69 6c 6c 69  6e 67 20 69 6e 20 61 20  |t 'filling in a |
00003380  66 69 65 6c 64 27 20 28  77 72 69 74 61 62 6c 65  |field' (writable|
00003390  20 69 63 6f 6e 29 20 6d  65 61 6e 73 0a 0a 54 68  | icon) means..Th|
000033a0  65 20 6b 65 79 63 6f 64  65 20 63 6f 6d 6d 61 6e  |e keycode comman|
000033b0  64 20 73 68 6f 75 6c 64  20 62 65 20 70 6c 61 63  |d should be plac|
000033c0  65 64 20 69 6e 20 74 68  65 20 69 63 6f 6e 20 74  |ed in the icon t|
000033d0  68 61 74 20 69 73 20 61  63 74 69 76 61 74 65 64  |hat is activated|
000033e0  20 62 79 20 74 68 65 20  0a 6b 65 79 63 6f 64 65  | by the .keycode|
000033f0  2e 20 20 49 74 20 73 68  6f 75 6c 64 20 62 65 20  |.  It should be |
00003400  61 20 64 65 63 69 6d 61  6c 20 69 6e 74 65 67 65  |a decimal intege|
00003410  72 20 73 70 65 63 69 66  79 69 6e 67 20 74 68 65  |r specifying the|
00003420  20 6b 65 79 2e 20 20 54  68 65 20 75 70 2f 64 6f  | key.  The up/do|
00003430  77 6e 0a 61 72 72 6f 77  73 2c 20 74 61 62 20 65  |wn.arrows, tab e|
00003440  74 63 2e 2e 20 61 72 65  20 64 65 61 6c 74 20 77  |tc.. are dealt w|
00003450  69 74 68 2e 0a 0a 0a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |ith....*********|
00003460  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00003470  2a 2a 2a 20 54 68 65 20  53 57 49 20 43 61 6c 6c  |*** The SWI Call|
00003480  73 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |s **************|
00003490  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
000034a0  2a 2a 2a 0a 0a 57 69 6d  70 5f 42 6f 72 64 65 72  |***..Wimp_Border|
000034b0  49 63 6f 6e 20 28 49 6e  74 65 72 66 61 63 65 5f  |Icon (Interface_|
000034c0  53 6c 61 62 42 75 74 74  6f 6e 29 20 28 53 57 49  |SlabButton) (SWI|
000034d0  20 26 38 31 36 38 30 29  0a 0a 52 31 20 3d 20 70  | &81680)..R1 = p|
000034e0  6f 69 6e 74 65 72 20 74  6f 20 62 6c 6f 63 6b 0a  |ointer to block.|
000034f0  52 31 20 70 72 65 73 65  72 76 65 64 0a 0a 49 6e  |R1 preserved..In|
00003500  74 65 72 72 75 70 74 73  20 61 72 65 20 6e 6f 74  |terrupts are not|
00003510  20 64 65 66 69 6e 65 64  0a 46 61 73 74 20 69 6e  | defined.Fast in|
00003520  74 65 72 72 75 70 74 73  20 61 72 65 20 65 6e 61  |terrupts are ena|
00003530  62 6c 65 64 0a 0a 50 72  6f 63 65 73 73 6f 72 20  |bled..Processor |
00003540  69 73 20 69 6e 20 53 56  43 20 6d 6f 64 65 0a 0a  |is in SVC mode..|
00003550  53 57 49 20 69 73 20 6e  6f 74 20 72 65 2d 65 6e  |SWI is not re-en|
00003560  74 72 61 6e 74 0a 0a 54  68 65 20 62 6c 6f 63 6b  |trant..The block|
00003570  20 63 6f 6e 74 61 69 6e  73 20 74 68 65 20 66 6f  | contains the fo|
00003580  6c 6c 6f 77 69 6e 67 20  6f 6e 20 65 6e 74 72 79  |llowing on entry|
00003590  3a 0a 0a 20 20 20 20 20  20 20 20 52 31 2b 30 20  |:..        R1+0 |
000035a0  20 20 20 6d 6f 75 73 65  20 78 20 28 73 63 72 65  |   mouse x (scre|
000035b0  65 6e 20 63 6f 6f 72 64  69 6e 61 74 65 73 20 2d  |en coordinates -|
000035c0  20 6e 6f 74 20 77 69 6e  64 6f 77 20 72 65 6c 61  | not window rela|
000035d0  74 69 76 65 29 0a 20 20  20 20 20 20 20 20 52 31  |tive).        R1|
000035e0  2b 34 20 20 20 20 6d 6f  75 73 65 20 79 0a 20 20  |+4    mouse y.  |
000035f0  20 20 20 20 20 20 52 31  2b 38 20 20 20 20 62 75  |      R1+8    bu|
00003600  74 74 6f 6e 73 20 28 64  65 70 65 6e 64 69 6e 67  |ttons (depending|
00003610  20 6f 6e 20 69 63 6f 6e  20 62 75 74 74 6f 6e 20  | on icon button |
00003620  74 79 70 65 29 0a 20 20  20 20 20 20 20 20 52 31  |type).        R1|
00003630  2b 31 32 20 20 20 77 69  6e 64 6f 77 20 68 61 6e  |+12   window han|
00003640  64 6c 65 0a 20 20 20 20  20 20 20 20 52 31 2b 31  |dle.        R1+1|
00003650  36 20 20 20 69 63 6f 6e  20 68 61 6e 64 6c 65 20  |6   icon handle |
00003660  20 0a 0a 54 68 69 73 20  63 61 6c 6c 20 69 73 20  | ..This call is |
00003670  75 73 65 64 20 74 6f 20  75 70 64 61 74 65 20 61  |used to update a|
00003680  6e 20 69 63 6f 6e 73 20  62 6f 72 64 65 72 2e 20  |n icons border. |
00003690  20 49 74 20 69 73 20 74  79 70 69 63 61 6c 6c 79  | It is typically|
000036a0  20 63 61 6c 6c 65 64 20  61 73 20 61 20 72 65 73  | called as a res|
000036b0  75 6c 74 20 6f 66 20 61  20 0a 4d 6f 75 73 65 5f  |ult of a .Mouse_|
000036c0  43 6c 69 63 6b 20 65 76  65 6e 74 2c 20 69 66 20  |Click event, if |
000036d0  74 68 65 20 69 63 6f 6e  20 68 61 73 20 61 20 62  |the icon has a b|
000036e0  6f 72 64 65 72 20 74 79  70 65 20 6f 66 20 30 20  |order type of 0 |
000036f0  6f 72 20 32 20 74 68 65  6e 20 74 68 65 20 69 63  |or 2 then the ic|
00003700  6f 6e 20 77 69 6c 6c 20  73 6c 61 62 20 0a 69 6e  |on will slab .in|
00003710  77 61 72 64 73 2e 20 20  54 68 65 20 66 6f 72 6d  |wards.  The form|
00003720  61 74 20 6f 66 20 74 68  65 20 76 61 6c 69 64 61  |at of the valida|
00003730  74 69 6f 6e 20 73 74 72  69 6e 67 20 69 73 20 64  |tion string is d|
00003740  65 73 63 72 69 62 65 64  20 69 6e 20 74 68 65 20  |escribed in the |
00003750  70 72 65 76 69 6f 75 73  20 73 65 63 74 69 6f 6e  |previous section|
00003760  2e 0a 0a 54 68 65 20 61  70 70 6c 69 63 61 74 69  |...The applicati|
00003770  6f 6e 20 73 68 6f 75 6c  64 20 74 68 65 20 70 65  |on should the pe|
00003780  72 66 6f 72 6d 20 74 68  65 20 74 61 73 6b 20 61  |rform the task a|
00003790  6e 64 20 74 68 65 6e 20  66 6f 72 63 65 20 74 68  |nd then force th|
000037a0  65 20 69 63 6f 6e 20 74  6f 20 6e 6f 72 6d 61 6c  |e icon to normal|
000037b0  20 73 74 61 74 75 73 20  0a 62 79 20 63 61 6c 6c  | status .by call|
000037c0  69 6e 67 20 57 69 6d 70  5f 42 6f 72 64 65 72 49  |ing Wimp_BorderI|
000037d0  63 6f 6e 20 28 53 57 49  20 26 38 31 36 38 30 29  |con (SWI &81680)|
000037e0  20 77 69 74 68 20 52 31  2b 38 20 73 65 74 20 74  | with R1+8 set t|
000037f0  6f 20 30 2e 0a 0a 54 68  65 20 63 6f 64 65 20 74  |o 0...The code t|
00003800  6f 20 62 6f 72 64 65 72  20 69 63 6f 6e 73 20 61  |o border icons a|
00003810  6e 64 20 77 69 6e 64 6f  77 73 20 69 73 20 6f 75  |nd windows is ou|
00003820  74 6c 69 6e 65 64 20 69  6e 20 74 68 65 20 73 65  |tlined in the se|
00003830  63 74 69 6f 6e 20 50 72  6f 67 72 61 6d 6d 69 6e  |ction Programmin|
00003840  67 20 0a 49 6e 74 65 72  66 61 63 65 2e 20 0a 0a  |g .Interface. ..|
00003850  4e 6f 74 65 20 74 68 61  74 20 74 68 65 20 6d 6f  |Note that the mo|
00003860  75 73 65 20 63 6f 6f 72  64 69 6e 61 74 65 73 20  |use coordinates |
00003870  73 70 65 63 69 66 69 65  64 20 69 6e 20 52 31 2b  |specified in R1+|
00003880  30 20 61 6e 64 20 52 31  2b 34 20 61 72 65 20 6e  |0 and R1+4 are n|
00003890  6f 74 20 75 73 65 64 20  62 79 20 74 68 65 20 0a  |ot used by the .|
000038a0  53 57 49 20 61 6e 64 20  61 72 65 20 6f 6e 6c 79  |SWI and are only|
000038b0  20 70 72 65 73 65 6e 74  20 74 6f 20 6d 61 6b 65  | present to make|
000038c0  20 74 68 65 20 62 6c 6f  63 6b 20 63 6f 6d 70 61  | the block compa|
000038d0  74 69 62 6c 65 20 77 69  74 68 20 61 20 4d 6f 75  |tible with a Mou|
000038e0  73 65 5f 43 6c 69 63 6b  20 65 76 65 6e 74 20 0a  |se_Click event .|
000038f0  62 6c 6f 63 6b 2e 0a 0a  57 69 6d 70 5f 42 6f 72  |block...Wimp_Bor|
00003900  64 65 72 57 69 6e 64 6f  77 20 28 53 57 49 20 26  |derWindow (SWI &|
00003910  38 31 36 38 31 29 0a 0a  4e 6f 6e 65 0a 0a 0a 0a  |81681)..None....|
00003920  0a 0a 57 69 6d 70 5f 42  6f 72 64 65 72 57 69 6e  |..Wimp_BorderWin|
00003930  64 6f 77 20 28 49 6e 74  65 72 66 61 63 65 5f 52  |dow (Interface_R|
00003940  65 6e 64 65 72 33 64 57  69 6e 64 6f 77 29 20 28  |ender3dWindow) (|
00003950  53 57 49 20 26 38 31 36  38 31 29 0a 0a 52 31 20  |SWI &81681)..R1 |
00003960  3d 20 70 6f 69 6e 74 65  72 20 74 6f 20 62 6c 6f  |= pointer to blo|
00003970  63 6b 0a 52 31 20 70 72  65 73 65 72 76 65 64 0a  |ck.R1 preserved.|
00003980  0a 49 6e 74 65 72 72 75  70 74 73 20 61 72 65 20  |.Interrupts are |
00003990  6e 6f 74 20 64 65 66 69  6e 65 64 0a 46 61 73 74  |not defined.Fast|
000039a0  20 69 6e 74 65 72 72 75  70 74 73 20 61 72 65 20  | interrupts are |
000039b0  65 6e 61 62 6c 65 64 0a  0a 50 72 6f 63 65 73 73  |enabled..Process|
000039c0  6f 72 20 69 73 20 69 6e  20 53 56 43 20 6d 6f 64  |or is in SVC mod|
000039d0  65 0a 0a 53 57 49 20 69  73 20 6e 6f 74 20 72 65  |e..SWI is not re|
000039e0  2d 65 6e 74 72 61 6e 74  0a 0a 54 68 65 20 62 6c  |-entrant..The bl|
000039f0  6f 63 6b 20 63 6f 6e 74  61 69 6e 73 20 74 68 65  |ock contains the|
00003a00  20 66 6f 6c 6c 6f 77 69  6e 67 20 6f 6e 20 65 6e  | following on en|
00003a10  74 72 79 3a 0a 0a 20 20  20 20 20 20 20 20 52 31  |try:..        R1|
00003a20  2b 30 20 20 20 20 77 69  6e 64 6f 77 20 68 61 6e  |+0    window han|
00003a30  64 6c 65 0a 20 20 20 20  20 20 20 20 52 31 2b 34  |dle.        R1+4|
00003a40  20 20 20 20 76 69 73 69  62 6c 65 20 61 72 65 61  |    visible area|
00003a50  20 6d 69 6e 69 6d 75 6d  20 78 20 63 6f 6f 72 64  | minimum x coord|
00003a60  69 6e 61 74 65 0a 20 20  20 20 20 20 20 20 52 31  |inate.        R1|
00003a70  2b 38 20 20 20 20 76 69  73 69 62 6c 65 20 61 72  |+8    visible ar|
00003a80  65 61 20 6d 69 6e 69 6d  75 6d 20 79 20 63 6f 6f  |ea minimum y coo|
00003a90  72 64 69 6e 61 74 65 0a  20 20 20 20 20 20 20 20  |rdinate.        |
00003aa0  52 31 2b 31 32 20 20 20  76 69 73 69 62 6c 65 20  |R1+12   visible |
00003ab0  61 72 65 61 20 6d 61 78  69 6d 75 6d 20 78 20 63  |area maximum x c|
00003ac0  6f 6f 72 64 69 6e 61 74  65 0a 20 20 20 20 20 20  |oordinate.      |
00003ad0  20 20 52 31 2b 31 36 20  20 20 76 69 73 69 62 6c  |  R1+16   visibl|
00003ae0  65 20 61 72 65 61 20 6d  61 78 69 6d 75 6d 20 79  |e area maximum y|
00003af0  20 63 6f 6f 72 64 69 6e  61 74 65 0a 20 20 20 20  | coordinate.    |
00003b00  20 20 20 20 52 31 2b 32  30 20 20 20 73 63 72 6f  |    R1+20   scro|
00003b10  6c 6c 20 78 20 6f 66 66  73 65 74 20 72 65 6c 61  |ll x offset rela|
00003b20  74 69 76 65 20 74 6f 20  77 6f 72 6b 20 61 72 65  |tive to work are|
00003b30  61 20 6f 72 69 67 69 6e  0a 20 20 20 20 20 20 20  |a origin.       |
00003b40  20 52 31 2b 32 34 20 20  20 73 63 72 6f 6c 6c 20  | R1+24   scroll |
00003b50  79 20 6f 66 66 73 65 74  20 72 65 6c 61 74 69 76  |y offset relativ|
00003b60  65 20 74 6f 20 77 6f 72  6b 20 61 72 65 61 20 6f  |e to work area o|
00003b70  72 69 67 69 6e 0a 20 20  20 20 20 20 20 20 52 31  |rigin.        R1|
00003b80  2b 32 38 20 20 20 63 75  72 72 65 6e 74 20 67 72  |+28   current gr|
00003b90  61 70 68 69 63 73 20 77  69 6e 64 6f 77 20 6d 69  |aphics window mi|
00003ba0  6e 69 6d 75 6d 20 78 20  63 6f 6f 72 64 69 6e 61  |nimum x coordina|
00003bb0  74 65 0a 20 20 20 20 20  20 20 20 52 31 2b 33 32  |te.        R1+32|
00003bc0  20 20 20 63 75 72 72 65  6e 74 20 67 72 61 70 68  |   current graph|
00003bd0  69 63 73 20 77 69 6e 64  6f 77 20 6d 69 6e 69 6d  |ics window minim|
00003be0  75 6d 20 79 20 63 6f 6f  72 64 69 6e 61 74 65 0a  |um y coordinate.|
00003bf0  20 20 20 20 20 20 20 20  52 31 2b 33 36 20 20 20  |        R1+36   |
00003c00  63 75 72 72 65 6e 74 20  67 72 61 70 68 69 63 73  |current graphics|
00003c10  20 77 69 6e 64 6f 77 20  6d 61 78 69 6d 75 6d 20  | window maximum |
00003c20  78 20 63 6f 6f 72 64 69  6e 61 74 65 0a 20 20 20  |x coordinate.   |
00003c30  20 20 20 20 20 52 31 2b  34 30 20 20 20 63 75 72  |     R1+40   cur|
00003c40  72 65 6e 74 20 67 72 61  70 68 69 63 73 20 77 69  |rent graphics wi|
00003c50  6e 64 6f 77 20 6d 61 78  69 6d 75 6d 20 79 20 63  |ndow maximum y c|
00003c60  6f 6f 72 64 69 6e 61 74  65 0a 0a 54 68 69 73 20  |oordinate..This |
00003c70  63 61 6c 6c 20 69 73 20  75 73 65 64 20 74 6f 20  |call is used to |
00003c80  72 65 64 72 61 77 20 74  68 65 20 62 6f 72 64 65  |redraw the borde|
00003c90  72 73 20 6f 66 20 69 63  6f 6e 73 20 69 6e 20 74  |rs of icons in t|
00003ca0  68 65 20 77 69 6e 64 6f  77 20 74 68 61 74 20 61  |he window that a|
00003cb0  72 65 20 6e 6f 74 20 75  70 2d 74 6f 2d 64 61 74  |re not up-to-dat|
00003cc0  65 2c 20 20 0a 74 68 69  73 20 53 57 49 20 69 73  |e,  .this SWI is|
00003cd0  20 74 79 70 69 63 61 6c  6c 79 20 63 61 6c 6c 65  | typically calle|
00003ce0  64 20 64 75 72 69 6e 67  20 74 68 65 20 72 65 64  |d during the red|
00003cf0  72 61 77 20 6c 6f 6f 70  20 6f 66 20 61 20 77 69  |raw loop of a wi|
00003d00  6e 64 6f 77 2e 20 20 54  68 65 20 53 57 49 20 77  |ndow.  The SWI w|
00003d10  69 6c 6c 20 0a 75 70 64  61 74 65 20 74 68 65 20  |ill .update the |
00003d20  77 69 6e 64 6f 77 2c 20  64 72 61 77 69 6e 67 20  |window, drawing |
00003d30  62 6f 72 64 65 72 73 20  61 72 6f 75 6e 64 20 61  |borders around a|
00003d40  6e 79 20 69 63 6f 6e 73  20 77 68 69 63 68 20 68  |ny icons which h|
00003d50  61 76 65 20 74 68 65 20  62 20 63 6f 6d 6d 61 6e  |ave the b comman|
00003d60  64 20 0a 73 70 65 63 69  66 69 65 64 20 69 6e 20  |d .specified in |
00003d70  74 68 65 20 76 61 6c 69  64 61 74 69 6f 6e 20 73  |the validation s|
00003d80  74 72 69 6e 67 20 61 6e  64 20 61 72 65 20 77 69  |tring and are wi|
00003d90  74 68 69 6e 20 74 68 65  20 73 70 65 63 69 66 69  |thin the specifi|
00003da0  65 64 20 67 72 61 70 68  69 63 73 20 77 69 6e 64  |ed graphics wind|
00003db0  6f 77 2e 0a 0a 54 68 65  20 63 6f 64 65 20 74 6f  |ow...The code to|
00003dc0  20 62 6f 72 64 65 72 20  69 63 6f 6e 73 20 61 6e  | border icons an|
00003dd0  64 20 77 69 6e 64 6f 77  73 20 69 73 20 6f 75 74  |d windows is out|
00003de0  6c 69 6e 65 64 20 69 6e  20 74 68 65 20 73 65 63  |lined in the sec|
00003df0  74 69 6f 6e 20 50 72 6f  67 72 61 6d 6d 69 6e 67  |tion Programming|
00003e00  20 0a 49 6e 74 65 72 66  61 63 65 2e 20 0a 0a 57  | .Interface. ..W|
00003e10  69 6d 70 5f 42 6f 72 64  65 72 49 63 6f 6e 20 28  |imp_BorderIcon (|
00003e20  53 57 49 20 26 38 31 36  38 30 29 0a 0a 4e 6f 6e  |SWI &81680)..Non|
00003e30  65 20 0a 0a 0a 0a 0a 57  69 6d 70 5f 43 6c 61 69  |e .....Wimp_Clai|
00003e40  6d 49 6e 74 65 72 66 61  63 65 20 28 49 6e 74 65  |mInterface (Inte|
00003e50  72 66 61 63 65 5f 49 6e  69 74 69 61 6c 69 73 65  |rface_Initialise|
00003e60  29 20 28 53 57 49 20 26  38 31 36 38 32 29 0a 0a  |) (SWI &81682)..|
00003e70  52 30 20 3d 20 74 61 73  6b 20 68 61 6e 64 6c 65  |R0 = task handle|
00003e80  0a 52 30 20 70 72 65 73  65 72 76 65 64 0a 0a 49  |.R0 preserved..I|
00003e90  6e 74 65 72 72 75 70 74  73 20 61 72 65 20 6e 6f  |nterrupts are no|
00003ea0  74 20 64 65 66 69 6e 65  64 0a 46 61 73 74 20 69  |t defined.Fast i|
00003eb0  6e 74 65 72 72 75 70 74  73 20 61 72 65 20 65 6e  |nterrupts are en|
00003ec0  61 62 6c 65 64 0a 0a 50  72 6f 63 65 73 73 6f 72  |abled..Processor|
00003ed0  20 69 73 20 69 6e 20 53  56 43 20 6d 6f 64 65 0a  | is in SVC mode.|
00003ee0  0a 53 57 49 20 69 73 20  6e 6f 74 20 72 65 2d 65  |.SWI is not re-e|
00003ef0  6e 74 72 61 6e 74 0a 0a  54 68 69 73 20 53 57 49  |ntrant..This SWI|
00003f00  20 61 6c 6c 6f 77 73 20  79 6f 75 72 20 61 70 70  | allows your app|
00003f10  6c 69 63 61 74 69 6f 6e  20 74 6f 20 75 73 65 20  |lication to use |
00003f20  70 6f 69 6e 74 65 72 73  20 76 69 61 20 74 68 65  |pointers via the|
00003f30  20 49 6e 74 65 72 66 61  63 65 20 6d 6f 64 75 6c  | Interface modul|
00003f40  65 2e 20 20 54 68 69 73  20 0a 53 57 49 20 73 68  |e.  This .SWI sh|
00003f50  6f 75 6c 64 20 62 65 20  63 61 6c 6c 65 64 20 61  |ould be called a|
00003f60  74 20 74 68 65 20 62 65  67 69 6e 6e 69 6e 67 20  |t the beginning |
00003f70  6f 66 20 79 6f 75 72 20  70 72 6f 67 72 61 6d 2e  |of your program.|
00003f80  20 20 49 66 20 79 6f 75  20 64 6f 6e 27 74 20 75  |  If you don't u|
00003f90  73 65 20 0a 57 69 6d 70  5f 43 6c 61 69 6d 49 6e  |se .Wimp_ClaimIn|
00003fa0  74 65 72 66 61 63 65 20  74 68 65 6e 20 79 6f 75  |terface then you|
00003fb0  72 20 70 6f 69 6e 74 65  72 73 20 77 69 6c 6c 20  |r pointers will |
00003fc0  6e 6f 74 20 62 65 20 64  69 73 70 6c 61 79 65 64  |not be displayed|
00003fd0  2e 0a 0a 57 69 6d 70 5f  52 65 6c 65 61 73 65 49  |...Wimp_ReleaseI|
00003fe0  6e 74 65 72 66 61 63 65  20 28 53 57 49 20 26 38  |nterface (SWI &8|
00003ff0  31 36 38 33 29 0a 0a 4e  6f 6e 65 0a 0a 0a 0a 0a  |1683)..None.....|
00004000  57 69 6d 70 5f 52 65 6c  65 61 73 65 49 6e 74 65  |Wimp_ReleaseInte|
00004010  72 66 61 63 65 20 28 49  6e 74 65 72 66 61 63 65  |rface (Interface|
00004020  5f 43 6c 6f 73 65 44 6f  77 6e 29 20 28 53 57 49  |_CloseDown) (SWI|
00004030  20 26 38 31 36 38 33 29  0a 0a 52 30 20 3d 20 74  | &81683)..R0 = t|
00004040  61 73 6b 20 68 61 6e 64  6c 65 0a 52 30 20 70 72  |ask handle.R0 pr|
00004050  65 73 65 72 76 65 64 0a  0a 49 6e 74 65 72 72 75  |eserved..Interru|
00004060  70 74 73 20 61 72 65 20  6e 6f 74 20 64 65 66 69  |pts are not defi|
00004070  6e 65 64 0a 46 61 73 74  20 69 6e 74 65 72 72 75  |ned.Fast interru|
00004080  70 74 73 20 61 72 65 20  65 6e 61 62 6c 65 64 0a  |pts are enabled.|
00004090  0a 50 72 6f 63 65 73 73  6f 72 20 69 73 20 69 6e  |.Processor is in|
000040a0  20 53 56 43 20 6d 6f 64  65 0a 0a 53 57 49 20 69  | SVC mode..SWI i|
000040b0  73 20 6e 6f 74 20 72 65  2d 65 6e 74 72 61 6e 74  |s not re-entrant|
000040c0  0a 0a 54 68 69 73 20 53  57 49 20 73 74 6f 70 73  |..This SWI stops|
000040d0  20 79 6f 75 72 20 61 70  70 6c 69 63 61 74 69 6f  | your applicatio|
000040e0  6e 20 66 72 6f 6d 20 75  73 69 6e 67 20 70 6f 69  |n from using poi|
000040f0  6e 74 65 72 73 2e 20 20  57 68 65 6e 20 74 68 69  |nters.  When thi|
00004100  73 20 53 57 49 20 69 73  20 63 61 6c 6c 65 64 20  |s SWI is called |
00004110  0a 49 6e 74 65 72 66 61  63 65 20 4d 61 6e 61 67  |.Interface Manag|
00004120  65 72 20 77 69 6c 6c 20  65 72 61 73 65 20 61 6e  |er will erase an|
00004130  79 20 77 6f 72 6b 61 72  65 61 20 70 6f 69 6e 74  |y workarea point|
00004140  65 72 73 20 61 73 73 69  67 6e 65 64 20 74 6f 20  |ers assigned to |
00004150  79 6f 75 72 20 61 70 70  6c 69 63 61 74 69 6f 6e  |your application|
00004160  20 61 6e 64 20 0a 66 72  65 65 20 74 68 65 20 6d  | and .free the m|
00004170  65 6d 6f 72 79 2e 20 20  54 68 69 73 20 73 68 6f  |emory.  This sho|
00004180  75 6c 64 20 62 65 20 63  61 6c 6c 65 64 20 69 6e  |uld be called in|
00004190  20 79 6f 75 72 20 65 78  69 74 20 68 61 6e 64 6c  | your exit handl|
000041a0  65 72 2c 20 61 6c 73 6f  20 69 66 20 61 6e 20 65  |er, also if an e|
000041b0  72 72 6f 72 20 6f 63 63  75 72 73 20 0a 79 6f 75  |rror occurs .you|
000041c0  20 73 68 6f 75 6c 64 20  61 6c 73 6f 20 63 61 6c  | should also cal|
000041d0  6c 20 74 68 69 73 20 53  57 49 20 74 6f 20 73 74  |l this SWI to st|
000041e0  6f 70 20 6f 74 68 65 72  20 61 70 70 6c 69 63 61  |op other applica|
000041f0  74 69 6f 6e 73 20 66 72  6f 6d 20 67 61 69 6e 69  |tions from gaini|
00004200  6e 67 20 79 6f 75 72 20  70 6f 69 6e 74 65 72 73  |ng your pointers|
00004210  2e 0a 0a 57 69 6d 70 5f  43 6c 61 69 6d 49 6e 74  |...Wimp_ClaimInt|
00004220  65 72 66 61 63 65 20 28  53 57 49 20 26 38 31 36  |erface (SWI &816|
00004230  38 32 29 0a 0a 4e 6f 6e  65 0a 0a 0a 0a 0a 57 69  |82)..None.....Wi|
00004240  6d 70 5f 53 65 74 57 6f  72 6b 61 72 65 61 50 6f  |mp_SetWorkareaPo|
00004250  69 6e 74 65 72 20 28 49  6e 74 65 72 66 61 63 65  |inter (Interface|
00004260  5f 53 65 74 57 6f 72 6b  61 72 65 61 50 6f 69 6e  |_SetWorkareaPoin|
00004270  74 65 72 29 20 28 53 57  49 20 26 38 31 36 38 34  |ter) (SWI &81684|
00004280  29 0a 0a 52 31 20 3d 20  70 6f 69 6e 74 65 72 20  |)..R1 = pointer |
00004290  74 6f 20 62 6c 6f 63 6b  0a 52 31 20 70 72 65 73  |to block.R1 pres|
000042a0  65 72 76 65 64 0a 0a 49  6e 74 65 72 72 75 70 74  |erved..Interrupt|
000042b0  20 73 74 61 74 75 73 20  69 73 20 75 6e 64 65 66  | status is undef|
000042c0  69 6e 65 64 0a 46 61 73  74 20 69 6e 74 65 72 72  |ined.Fast interr|
000042d0  75 70 74 73 20 61 72 65  20 65 6e 61 62 6c 65 64  |upts are enabled|
000042e0  0a 0a 50 72 6f 63 65 73  73 6f 72 20 69 73 20 69  |..Processor is i|
000042f0  6e 20 53 56 43 20 6d 6f  64 65 0a 0a 53 57 49 20  |n SVC mode..SWI |
00004300  69 73 20 6e 6f 74 20 72  65 2d 65 6e 74 72 61 6e  |is not re-entran|
00004310  74 0a 0a 54 68 65 20 62  6c 6f 63 6b 20 63 6f 6e  |t..The block con|
00004320  74 61 69 6e 73 20 74 68  65 20 66 6f 6c 6c 6f 77  |tains the follow|
00004330  69 6e 67 20 6f 6e 20 65  6e 74 72 79 3a 0a 0a 20  |ing on entry:.. |
00004340  20 20 20 20 20 20 20 52  31 2b 30 20 20 20 20 77  |       R1+0    w|
00004350  69 6e 64 6f 77 20 68 61  6e 64 6c 65 0a 20 20 20  |indow handle.   |
00004360  20 20 20 20 20 52 31 2b  34 20 20 20 20 6d 69 6e  |     R1+4    min|
00004370  69 6d 75 6d 20 78 20 63  6f 6f 72 64 69 6e 61 74  |imum x coordinat|
00004380  65 20 6f 66 20 62 6f 75  6e 64 69 6e 67 20 62 6f  |e of bounding bo|
00004390  78 0a 20 20 20 20 20 20  20 20 52 31 2b 38 20 20  |x.        R1+8  |
000043a0  20 20 6d 69 6e 69 6d 75  6d 20 79 20 63 6f 6f 72  |  minimum y coor|
000043b0  64 69 6e 61 74 65 20 6f  66 20 62 6f 75 6e 64 69  |dinate of boundi|
000043c0  6e 67 20 62 6f 78 0a 20  20 20 20 20 20 20 20 52  |ng box.        R|
000043d0  31 2b 31 32 20 20 20 6d  61 78 69 6d 75 6d 20 78  |1+12   maximum x|
000043e0  20 63 6f 6f 72 64 69 6e  61 74 65 20 6f 66 20 62  | coordinate of b|
000043f0  6f 75 6e 64 69 6e 67 20  62 6f 78 0a 20 20 20 20  |ounding box.    |
00004400  20 20 20 20 52 31 2b 31  36 20 20 20 6d 61 78 69  |    R1+16   maxi|
00004410  6d 75 6d 20 79 20 63 6f  6f 72 64 69 6e 61 74 65  |mum y coordinate|
00004420  20 6f 66 20 62 6f 75 6e  64 69 6e 67 20 62 6f 78  | of bounding box|
00004430  0a 20 20 20 20 20 20 20  20 52 31 2b 32 30 20 20  |.        R1+20  |
00004440  20 32 34 20 62 79 74 65  73 20 6f 66 20 70 6f 69  | 24 bytes of poi|
00004450  6e 74 65 72 20 64 61 74  61 0a 0a 54 68 69 73 20  |nter data..This |
00004460  73 70 65 63 69 66 69 65  73 20 74 68 65 20 70 6f  |specifies the po|
00004470  69 6e 74 65 72 20 66 6f  72 20 61 6e 20 61 72 65  |inter for an are|
00004480  61 20 6f 66 20 74 68 65  20 77 69 6e 64 6f 77 2e  |a of the window.|
00004490  0a 54 68 65 20 62 6f 75  6e 64 69 6e 67 20 62 6f  |.The bounding bo|
000044a0  78 20 63 6f 6f 72 64 69  6e 61 74 65 73 20 61 72  |x coordinates ar|
000044b0  65 20 67 69 76 65 6e 20  72 65 6c 61 74 69 76 65  |e given relative|
000044c0  20 74 6f 20 74 68 65 20  77 69 6e 64 6f 77 27 73  | to the window's|
000044d0  20 77 6f 72 6b 20 61 72  65 61 20 6f 72 69 67 69  | work area origi|
000044e0  6e 2e 20 20 0a 52 31 2b  34 20 74 6f 20 52 31 2b  |n.  .R1+4 to R1+|
000044f0  31 36 20 63 61 6e 20 62  65 20 73 65 74 20 74 6f  |16 can be set to|
00004500  20 2d 31 20 74 6f 20 73  70 65 63 69 66 79 20 74  | -1 to specify t|
00004510  68 65 20 77 68 6f 6c 65  20 6f 66 20 74 68 65 20  |he whole of the |
00004520  77 69 6e 64 6f 77 27 73  20 77 6f 72 6b 20 61 72  |window's work ar|
00004530  65 61 2e 0a 54 68 65 20  70 6f 69 6e 74 65 72 20  |ea..The pointer |
00004540  64 61 74 61 20 61 74 20  2b 32 30 20 74 6f 20 2b  |data at +20 to +|
00004550  34 34 20 63 6f 6e 74 61  69 6e 73 20 74 68 65 20  |44 contains the |
00004560  73 70 72 69 74 65 20 6e  61 6d 65 20 61 6e 64 20  |sprite name and |
00004570  61 6e 79 20 78 2c 20 79  20 6f 66 66 73 65 74 2c  |any x, y offset,|
00004580  20 73 65 65 20 0a 76 61  6c 69 64 61 74 69 6f 6e  | see .validation|
00004590  20 73 74 72 69 6e 67 73  20 66 6f 72 20 6d 6f 72  | strings for mor|
000045a0  65 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 2e 0a 0a  |e information...|
000045b0  57 69 6d 70 5f 52 65 6d  6f 76 65 57 6f 72 6b 61  |Wimp_RemoveWorka|
000045c0  72 65 61 50 6f 69 6e 74  65 72 20 28 53 57 49 20  |reaPointer (SWI |
000045d0  26 38 31 36 38 35 29 0a  57 69 6d 70 5f 50 6f 6c  |&81685).Wimp_Pol|
000045e0  6c 50 6f 69 6e 74 65 72  20 28 53 57 49 20 26 38  |lPointer (SWI &8|
000045f0  31 36 38 36 29 0a 0a 4e  6f 6e 65 0a 0a 0a 0a 0a  |1686)..None.....|
00004600  0a 57 69 6d 70 5f 52 65  6d 6f 76 65 57 6f 72 6b  |.Wimp_RemoveWork|
00004610  61 72 65 61 50 6f 69 6e  74 65 72 20 28 49 6e 74  |areaPointer (Int|
00004620  65 72 66 61 63 65 5f 52  65 6d 6f 76 65 57 6f 72  |erface_RemoveWor|
00004630  6b 61 72 65 61 50 6f 69  6e 74 65 72 29 20 28 53  |kareaPointer) (S|
00004640  57 49 20 26 38 31 36 38  35 29 0a 0a 52 30 20 3d  |WI &81685)..R0 =|
00004650  20 74 61 73 6b 20 68 61  6e 64 6c 65 0a 52 31 20  | task handle.R1 |
00004660  3d 20 70 6f 69 6e 74 65  72 20 74 6f 20 62 6c 6f  |= pointer to blo|
00004670  63 6b 0a 0a 52 30 20 70  72 65 73 65 72 76 65 64  |ck..R0 preserved|
00004680  0a 52 31 20 70 72 65 73  65 72 76 65 64 0a 0a 49  |.R1 preserved..I|
00004690  6e 74 65 72 72 75 70 74  20 73 74 61 74 75 73 20  |nterrupt status |
000046a0  69 73 20 75 6e 64 65 66  69 6e 65 64 0a 46 61 73  |is undefined.Fas|
000046b0  74 20 69 6e 74 65 72 72  75 70 74 73 20 61 72 65  |t interrupts are|
000046c0  20 65 6e 61 62 6c 65 64  0a 0a 50 72 6f 63 65 73  | enabled..Proces|
000046d0  73 6f 72 20 69 73 20 69  6e 20 53 56 43 20 6d 6f  |sor is in SVC mo|
000046e0  64 65 0a 0a 53 57 49 20  69 73 20 6e 6f 74 20 72  |de..SWI is not r|
000046f0  65 2d 65 6e 74 72 61 6e  74 0a 0a 54 68 65 20 62  |e-entrant..The b|
00004700  6c 6f 63 6b 20 63 6f 6e  74 61 69 6e 73 20 74 68  |lock contains th|
00004710  65 20 66 6f 6c 6c 6f 77  69 6e 67 20 6f 6e 20 65  |e following on e|
00004720  6e 74 72 79 3a 0a 0a 20  20 20 20 20 20 20 20 52  |ntry:..        R|
00004730  31 2b 30 20 20 20 20 77  69 6e 64 6f 77 20 68 61  |1+0    window ha|
00004740  6e 64 6c 65 0a 20 20 20  20 20 20 20 20 52 31 2b  |ndle.        R1+|
00004750  34 20 20 20 20 6d 69 6e  69 6d 75 6d 20 78 20 63  |4    minimum x c|
00004760  6f 6f 72 64 69 6e 61 74  65 20 6f 66 20 62 6f 75  |oordinate of bou|
00004770  6e 64 69 6e 67 20 62 6f  78 0a 20 20 20 20 20 20  |nding box.      |
00004780  20 20 52 31 2b 38 20 20  20 20 6d 69 6e 69 6d 75  |  R1+8    minimu|
00004790  6d 20 79 20 63 6f 6f 72  64 69 6e 61 74 65 20 6f  |m y coordinate o|
000047a0  66 20 62 6f 75 6e 64 69  6e 67 20 62 6f 78 0a 20  |f bounding box. |
000047b0  20 20 20 20 20 20 20 52  31 2b 31 32 20 20 20 6d  |       R1+12   m|
000047c0  61 78 69 6d 75 6d 20 78  20 63 6f 6f 72 64 69 6e  |aximum x coordin|
000047d0  61 74 65 20 6f 66 20 62  6f 75 6e 64 69 6e 67 20  |ate of bounding |
000047e0  62 6f 78 0a 20 20 20 20  20 20 20 20 52 31 2b 31  |box.        R1+1|
000047f0  36 20 20 20 6d 61 78 69  6d 75 6d 20 79 20 63 6f  |6   maximum y co|
00004800  6f 72 64 69 6e 61 74 65  20 6f 66 20 62 6f 75 6e  |ordinate of boun|
00004810  64 69 6e 67 20 62 6f 78  0a 0a 54 68 69 73 20 63  |ding box..This c|
00004820  61 6c 6c 20 72 65 6d 6f  76 65 73 20 61 20 70 72  |all removes a pr|
00004830  65 76 69 6f 75 73 6c 79  20 69 6e 73 74 61 6c 6c  |eviously install|
00004840  65 64 20 70 6f 69 6e 74  65 72 20 66 72 6f 6d 20  |ed pointer from |
00004850  74 68 65 20 6c 69 73 74  20 6f 66 20 61 63 74 69  |the list of acti|
00004860  76 65 20 70 6f 69 6e 74  65 72 20 61 72 65 61 73  |ve pointer areas|
00004870  20 0a 66 6f 72 20 74 68  65 20 73 70 65 63 69 66  | .for the specif|
00004880  69 65 64 20 77 69 6e 64  6f 77 2e 20 20 57 68 65  |ied window.  Whe|
00004890  6e 20 61 20 77 69 6e 64  6f 77 20 69 73 20 64 65  |n a window is de|
000048a0  6c 65 74 65 64 20 79 6f  75 20 73 68 6f 75 6c 64  |leted you should|
000048b0  20 72 65 6d 6f 76 65 20  61 6e 79 20 0a 70 6f 69  | remove any .poi|
000048c0  6e 74 65 72 73 20 74 68  61 74 20 77 65 72 65 20  |nters that were |
000048d0  72 65 6c 61 74 65 64 20  74 6f 20 74 68 65 20 77  |related to the w|
000048e0  69 6e 64 6f 77 2c 20 6f  74 68 65 72 77 69 73 65  |indow, otherwise|
000048f0  20 74 68 65 73 65 20 70  6f 69 6e 74 65 72 73 20  | these pointers |
00004900  6d 61 79 20 62 65 63 6f  6d 65 20 0a 61 63 74 69  |may become .acti|
00004910  76 65 20 6f 6e 20 61 6e  79 20 77 69 6e 64 6f 77  |ve on any window|
00004920  20 77 68 69 63 68 20 67  61 69 6e 73 20 74 68 65  | which gains the|
00004930  20 73 61 6d 65 20 77 69  6e 64 6f 77 20 68 61 6e  | same window han|
00004940  64 6c 65 20 69 6e 20 74  68 65 20 66 75 74 75 72  |dle in the futur|
00004950  65 2e 20 0a 0a 54 68 65  20 62 6f 75 6e 64 69 6e  |e. ..The boundin|
00004960  67 20 62 6f 78 20 63 6f  6f 72 64 69 6e 61 74 65  |g box coordinate|
00004970  73 20 61 72 65 20 67 69  76 65 6e 20 72 65 6c 61  |s are given rela|
00004980  74 69 76 65 20 74 6f 20  74 68 65 20 77 69 6e 64  |tive to the wind|
00004990  6f 77 27 73 20 77 6f 72  6b 20 61 72 65 61 20 6f  |ow's work area o|
000049a0  72 69 67 69 6e 2e 20 20  0a 52 31 2b 34 20 74 6f  |rigin.  .R1+4 to|
000049b0  20 52 31 2b 31 36 20 63  61 6e 20 62 65 20 73 65  | R1+16 can be se|
000049c0  74 20 74 6f 20 2d 31 20  74 6f 20 73 70 65 63 69  |t to -1 to speci|
000049d0  66 79 20 74 68 65 20 77  68 6f 6c 65 20 6f 66 20  |fy the whole of |
000049e0  74 68 65 20 77 69 6e 64  6f 77 27 73 20 77 6f 72  |the window's wor|
000049f0  6b 20 61 72 65 61 2e 20  20 0a 52 31 2b 34 20 74  |k area.  .R1+4 t|
00004a00  6f 20 52 31 2b 31 36 20  6d 61 79 20 62 65 20 73  |o R1+16 may be s|
00004a10  65 74 20 74 6f 20 30 20  74 6f 20 72 65 6d 6f 76  |et to 0 to remov|
00004a20  65 20 61 6c 6c 20 77 6f  72 6b 20 61 72 65 61 20  |e all work area |
00004a30  70 6f 69 6e 74 65 72 73  20 61 73 73 69 67 6e 65  |pointers assigne|
00004a40  64 20 74 6f 20 74 68 65  20 0a 77 69 6e 64 6f 77  |d to the .window|
00004a50  2e 0a 0a 57 69 6d 70 5f  53 65 74 57 6f 72 6b 61  |...Wimp_SetWorka|
00004a60  72 65 61 50 6f 69 6e 74  65 72 20 28 53 57 49 20  |reaPointer (SWI |
00004a70  26 38 31 36 38 34 29 0a  57 69 6d 70 5f 50 6f 6c  |&81684).Wimp_Pol|
00004a80  6c 50 6f 69 6e 74 65 72  20 28 53 57 49 20 26 38  |lPointer (SWI &8|
00004a90  31 36 38 36 29 0a 0a 4e  6f 6e 65 0a 0a 0a 0a 0a  |1686)..None.....|
00004aa0  0a 57 69 6d 70 5f 50 6f  6c 6c 50 6f 69 6e 74 65  |.Wimp_PollPointe|
00004ab0  72 20 28 49 6e 74 65 72  66 61 63 65 5f 50 6f 6c  |r (Interface_Pol|
00004ac0  6c 29 20 28 53 57 49 20  26 38 31 36 38 36 29 0a  |l) (SWI &81686).|
00004ad0  0a 52 30 20 3d 20 57 69  6d 70 5f 50 6f 6c 6c 20  |.R0 = Wimp_Poll |
00004ae0  72 65 61 73 6f 6e 20 63  6f 64 65 0a 52 32 20 3d  |reason code.R2 =|
00004af0  20 74 61 73 6b 20 68 61  6e 64 6c 65 0a 0a 52 30  | task handle..R0|
00004b00  20 70 72 65 73 65 72 76  65 64 0a 52 40 20 70 72  | preserved.R@ pr|
00004b10  65 73 65 72 76 65 64 0a  0a 49 6e 74 65 72 72 75  |eserved..Interru|
00004b20  70 74 20 73 74 61 74 75  73 20 69 73 20 75 6e 64  |pt status is und|
00004b30  65 66 69 6e 65 64 0a 46  61 73 74 20 69 6e 74 65  |efined.Fast inte|
00004b40  72 72 75 70 74 73 20 61  72 65 20 65 6e 61 62 6c  |rrupts are enabl|
00004b50  65 64 0a 0a 50 72 6f 63  65 73 73 6f 72 20 69 73  |ed..Processor is|
00004b60  20 69 6e 20 53 56 43 20  6d 6f 64 65 0a 0a 53 57  | in SVC mode..SW|
00004b70  49 20 6e 6f 74 20 72 65  2d 65 6e 74 72 61 6e 74  |I not re-entrant|
00004b80  0a 0a 54 68 69 73 20 63  61 6c 6c 20 63 68 65 63  |..This call chec|
00004b90  6b 73 20 74 6f 20 73 65  65 20 69 66 20 74 68 65  |ks to see if the|
00004ba0  20 70 6f 69 6e 74 65 72  20 69 73 20 75 70 2d 74  | pointer is up-t|
00004bb0  6f 2d 64 61 74 65 2e 20  20 49 66 20 74 68 65 20  |o-date.  If the |
00004bc0  70 6f 69 6e 74 65 72 20  69 73 20 6e 6f 74 20 75  |pointer is not u|
00004bd0  70 2d 74 6f 2d 64 61 74  65 20 69 74 20 0a 77 69  |p-to-date it .wi|
00004be0  6c 6c 20 63 68 61 6e 67  65 20 74 6f 20 74 68 65  |ll change to the|
00004bf0  20 70 6f 69 6e 74 65 72  20 73 70 65 63 69 66 69  | pointer specifi|
00004c00  65 64 20 69 6e 20 74 68  65 20 69 63 6f 6e 73 20  |ed in the icons |
00004c10  76 61 6c 69 64 61 74 69  6f 6e 20 73 74 72 69 6e  |validation strin|
00004c20  67 2e 20 20 49 66 20 74  68 65 20 70 6f 69 6e 74  |g.  If the point|
00004c30  65 72 20 69 73 20 0a 6e  6f 74 20 6f 76 65 72 20  |er is .not over |
00004c40  61 6e 20 69 63 6f 6e 20  74 68 65 6e 20 20 74 68  |an icon then  th|
00004c50  65 20 70 6f 69 6e 74 65  72 20 77 69 6c 6c 20 63  |e pointer will c|
00004c60  68 61 6e 67 65 20 61 63  63 6f 72 64 69 6e 67 20  |hange according |
00004c70  74 6f 20 74 68 65 20 70  6f 73 69 74 69 6f 6e 20  |to the position |
00004c80  6f 6e 20 74 68 65 20 0a  77 69 6e 64 6f 77 20 62  |on the .window b|
00004c90  61 63 6b 67 72 6f 75 6e  64 2e 0a 0a 4e 6f 74 65  |ackground...Note|
00004ca0  20 74 68 61 74 20 77 69  6d 70 5f 70 6f 6c 6c 20  | that wimp_poll |
00004cb0  72 65 61 73 6f 6e 20 63  6f 64 65 73 20 30 20 61  |reason codes 0 a|
00004cc0  6e 64 20 34 20 73 68 6f  75 6c 64 20 6e 6f 74 20  |nd 4 should not |
00004cd0  62 65 20 6d 61 73 6b 65  64 20 6f 75 74 2c 20 6f  |be masked out, o|
00004ce0  74 68 65 72 77 69 73 65  20 74 68 65 20 0a 70 6f  |therwise the .po|
00004cf0  69 6e 74 65 72 20 77 69  6c 6c 20 62 65 20 6f 75  |inter will be ou|
00004d00  74 2d 6f 66 2d 64 61 74  65 20 61 6e 64 20 77 69  |t-of-date and wi|
00004d10  6c 6c 20 6e 6f 74 20 66  75 6e 63 74 69 6f 6e 20  |ll not function |
00004d20  63 6f 72 72 65 63 74 6c  79 2e 0a 0a 57 69 6d 70  |correctly...Wimp|
00004d30  5f 53 65 74 57 6f 72 6b  61 72 65 61 50 6f 69 6e  |_SetWorkareaPoin|
00004d40  74 65 72 20 28 53 57 49  20 26 38 31 36 38 34 29  |ter (SWI &81684)|
00004d50  0a 57 69 6d 70 5f 52 65  6d 6f 76 65 57 6f 72 6b  |.Wimp_RemoveWork|
00004d60  61 72 65 61 50 6f 69 6e  74 65 72 20 28 53 57 49  |areaPointer (SWI|
00004d70  20 26 38 31 36 38 35 29  0a 0a 4e 6f 6e 65 0a 0a  | &81685)..None..|
00004d80  0a 0a 0a 0a 57 69 6d 70  5f 53 65 6e 64 49 6e 66  |....Wimp_SendInf|
00004d90  6f 72 6d 61 74 69 6f 6e  20 28 49 6e 74 65 72 66  |ormation (Interf|
00004da0  61 63 65 5f 53 65 6e 64  48 65 6c 70 29 20 28 53  |ace_SendHelp) (S|
00004db0  57 49 20 26 38 31 36 38  37 29 0a 0a 52 31 20 3d  |WI &81687)..R1 =|
00004dc0  20 6d 65 73 73 61 67 65  20 62 6c 6f 63 6b 20 61  | message block a|
00004dd0  73 20 72 65 74 75 72 6e  65 64 20 66 72 6f 6d 20  |s returned from |
00004de0  68 65 6c 70 20 61 70 70  6c 69 63 61 74 69 6f 6e  |help application|
00004df0  0a 52 31 20 70 72 65 73  65 72 76 65 64 0a 0a 49  |.R1 preserved..I|
00004e00  6e 74 65 72 72 75 70 74  20 73 74 61 74 75 73 20  |nterrupt status |
00004e10  69 73 20 75 6e 64 65 66  69 6e 65 64 0a 46 61 73  |is undefined.Fas|
00004e20  74 20 69 6e 74 65 72 72  75 70 74 73 20 61 72 65  |t interrupts are|
00004e30  20 65 6e 61 62 6c 65 64  0a 0a 50 72 6f 63 65 73  | enabled..Proces|
00004e40  73 6f 72 20 69 73 20 69  6e 20 53 56 43 20 6d 6f  |sor is in SVC mo|
00004e50  64 65 0a 0a 53 57 49 20  6e 6f 74 20 72 65 2d 65  |de..SWI not re-e|
00004e60  6e 74 72 61 6e 74 0a 0a  54 68 69 73 20 63 61 6c  |ntrant..This cal|
00004e70  6c 20 72 65 74 75 72 6e  73 20 61 20 68 65 6c 70  |l returns a help|
00004e80  20 74 65 78 74 20 6d 65  73 73 61 67 65 20 74 6f  | text message to|
00004e90  20 74 68 65 20 69 6e 74  65 72 61 63 74 69 76 65  | the interactive|
00004ea0  20 68 65 6c 70 20 61 70  70 6c 69 63 61 74 69 6f  | help applicatio|
00004eb0  6e 2e 20 20 49 74 20 73  68 6f 75 6c 64 20 62 65  |n.  It should be|
00004ec0  20 0a 63 61 6c 6c 65 64  20 77 68 65 6e 20 61 20  | .called when a |
00004ed0  6d 65 73 73 61 67 65 20  77 69 74 68 20 74 68 65  |message with the|
00004ee0  20 6e 75 6d 62 65 72 20  26 35 30 32 20 69 73 20  | number &502 is |
00004ef0  72 65 63 65 69 76 65 64  20 61 6e 64 20 74 68 65  |received and the|
00004f00  20 70 6f 69 6e 74 65 72  20 69 73 20 6f 76 65 72  | pointer is over|
00004f10  20 61 6e 20 0a 69 63 6f  6e 2e 20 20 49 66 20 74  | an .icon.  If t|
00004f20  68 65 72 65 20 69 73 20  61 20 6d 65 73 73 61 67  |here is a messag|
00004f30  65 20 69 6e 20 74 68 65  20 69 63 6f 6e 73 20 76  |e in the icons v|
00004f40  61 6c 69 64 61 74 69 6f  6e 20 73 74 72 69 6e 67  |alidation string|
00004f50  20 74 68 61 74 20 74 68  65 20 70 6f 69 6e 74 65  | that the pointe|
00004f60  72 20 69 73 20 63 75 72  72 65 6e 74 6c 79 20 0a  |r is currently .|
00004f70  6f 76 65 72 20 74 68 65  6e 20 74 68 69 73 20 77  |over then this w|
00004f80  69 6c 6c 20 62 65 20 73  65 6e 74 20 74 6f 20 74  |ill be sent to t|
00004f90  68 65 20 68 65 6c 70 20  61 70 70 6c 69 63 61 74  |he help applicat|
00004fa0  69 6f 6e 2e 20 20 49 74  20 69 73 20 75 70 20 74  |ion.  It is up t|
00004fb0  6f 20 74 68 65 20 61 70  70 6c 69 63 61 74 69 6f  |o the applicatio|
00004fc0  6e 73 20 0a 70 72 6f 67  72 61 6d 6d 65 72 20 74  |ns .programmer t|
00004fd0  6f 20 74 61 6b 65 20 63  61 72 65 20 6f 66 20 74  |o take care of t|
00004fe0  68 65 20 68 65 6c 70 20  6d 65 73 73 61 67 65 20  |he help message |
00004ff0  77 68 65 6e 20 74 68 65  20 70 6f 69 6e 74 65 72  |when the pointer|
00005000  20 69 73 20 6f 76 65 72  20 74 68 65 20 69 63 6f  | is over the ico|
00005010  6e 20 6f 6e 20 74 68 65  20 0a 69 63 6f 6e 20 62  |n on the .icon b|
00005020  61 72 20 6f 72 20 69 73  20 6f 76 65 72 20 74 68  |ar or is over th|
00005030  65 20 77 69 6e 64 6f 77  20 77 6f 72 6b 61 72 65  |e window workare|
00005040  61 2e 20 0a 0a 4e 6f 6e  65 0a 0a 4e 6f 6e 65 0a  |a. ..None..None.|
00005050  0a 0a 57 69 6d 70 5f 50  72 65 50 72 6f 63 65 73  |..Wimp_PreProces|
00005060  73 4b 65 79 20 28 49 6e  74 65 72 66 61 63 65 5f  |sKey (Interface_|
00005070  50 72 65 50 72 6f 63 65  73 73 4b 65 79 29 20 28  |PreProcessKey) (|
00005080  53 57 49 20 26 38 31 36  38 38 29 0a 0a 52 30 20  |SWI &81688)..R0 |
00005090  3d 20 65 76 65 6e 74 20  74 79 70 65 0a 52 31 20  |= event type.R1 |
000050a0  3d 20 65 76 65 6e 74 20  62 6c 6f 63 6b 0a 52 32  |= event block.R2|
000050b0  20 3d 20 74 61 73 6b 20  68 61 6e 64 6c 65 0a 0a  | = task handle..|
000050c0  52 30 20 3d 20 75 70 64  61 74 65 64 20 74 6f 20  |R0 = updated to |
000050d0  6e 65 77 20 65 76 65 6e  74 20 74 79 70 65 0a 52  |new event type.R|
000050e0  31 20 3d 20 75 70 64 61  74 65 64 20 65 76 65 6e  |1 = updated even|
000050f0  74 20 62 6c 6f 63 6b 0a  52 32 20 3d 20 30 20 69  |t block.R2 = 0 i|
00005100  66 20 65 76 65 6e 74 20  77 61 73 20 6e 6f 74 20  |f event was not |
00005110  64 65 61 6c 74 20 69 6e  74 65 72 63 65 70 74 65  |dealt intercepte|
00005120  64 0a 0a 54 68 69 73 20  63 61 6c 6c 20 70 72 65  |d..This call pre|
00005130  2d 70 72 6f 63 65 73 73  65 73 20 74 68 65 20 75  |-processes the u|
00005140  70 2c 20 64 6f 77 6e 2c  20 74 61 62 2c 20 73 68  |p, down, tab, sh|
00005150  69 66 74 2d 74 61 62 20  6b 65 79 73 20 61 6e 64  |ift-tab keys and|
00005160  20 61 6e 79 20 73 70 65  63 69 66 69 65 64 20 69  | any specified i|
00005170  6e 20 61 20 73 70 65 63  69 66 69 63 20 69 63 6f  |n a specific ico|
00005180  6e 73 0a 76 61 6c 69 64  61 74 69 6f 6e 20 73 74  |ns.validation st|
00005190  72 69 6e 67 20 75 73 69  6e 67 20 74 68 65 20 63  |ring using the c|
000051a0  6f 6d 6d 61 6e 64 20 6b  3c 6b 65 79 63 6f 64 65  |ommand k<keycode|
000051b0  3e 2e 20 20 54 68 65 20  53 57 49 20 77 69 6c 6c  |>.  The SWI will|
000051c0  20 6d 6f 76 65 20 69 63  6f 6e 2c 20 69 66 20 6e  | move icon, if n|
000051d0  65 63 63 65 73 73 61 72  79 20 6f 72 20 61 63 74  |eccessary or act|
000051e0  69 76 61 74 65 0a 61 20  62 75 74 74 6f 6e 2e 20  |ivate.a button. |
000051f0  20 54 68 69 73 20 63 61  6c 6c 20 73 6f 75 6c 64  | This call sould|
00005200  20 62 65 20 63 61 6c 6c  65 64 20 61 66 74 65 72  | be called after|
00005210  20 74 68 65 20 77 69 6d  70 5f 70 6f 6c 6c 20 63  | the wimp_poll c|
00005220  6f 6d 6d 61 6e 64 2c 20  69 74 20 77 69 6c 6c 20  |ommand, it will |
00005230  6d 61 74 63 68 20 74 68  65 20 6b 65 79 20 74 6f  |match the key to|
00005240  20 61 6e 20 69 63 6f 6e  0a 61 6e 64 20 69 66 20  | an icon.and if |
00005250  6e 65 63 63 65 73 73 61  72 79 20 6d 6f 64 69 66  |neccessary modif|
00005260  79 20 79 6f 75 72 20 77  69 6d 70 20 70 6f 6c 6c  |y your wimp poll|
00005270  20 62 6c 6f 63 6b 20 61  6e 64 20 65 76 65 6e 74  | block and event|
00005280  20 74 79 70 65 2e 0a 0a  0a 57 69 6d 70 5f 42 6f  | type....Wimp_Bo|
00005290  72 64 65 72 50 6c 6f 74  49 63 6f 6e 20 28 49 6e  |rderPlotIcon (In|
000052a0  74 65 72 66 61 63 65 5f  50 6c 6f 74 33 64 49 63  |terface_Plot3dIc|
000052b0  6f 6e 29 20 28 53 57 49  20 26 38 31 36 38 39 29  |on) (SWI &81689)|
000052c0  0a 0a 52 30 20 3d 20 77  69 6e 64 6f 77 20 73 74  |..R0 = window st|
000052d0  61 74 65 20 28 65 69 74  68 65 72 20 66 72 6f 6d  |ate (either from|
000052e0  20 77 69 6d 70 5f 75 70  64 61 74 65 2f 72 65 64  | wimp_update/red|
000052f0  72 61 77 20 6f 72 20 66  72 6f 6d 20 61 20 77 69  |raw or from a wi|
00005300  6d 70 5f 67 65 74 77 69  6e 64 6f 77 73 74 61 74  |mp_getwindowstat|
00005310  65 29 0a 52 31 20 3d 20  69 63 6f 6e 20 62 6c 6f  |e).R1 = icon blo|
00005320  63 6b 20 61 73 20 66 6f  72 20 57 69 6d 70 5f 50  |ck as for Wimp_P|
00005330  6c 6f 74 49 63 6f 6e 0a  0a 54 68 69 73 20 63 61  |lotIcon..This ca|
00005340  6c 6c 20 70 6c 6f 74 73  20 61 20 62 6f 72 64 65  |ll plots a borde|
00005350  72 20 6f 6e 20 61 20 77  69 6e 64 6f 77 20 6c 69  |r on a window li|
00005360  6b 65 20 57 69 6d 70 5f  50 6c 6f 74 49 63 6f 6e  |ke Wimp_PlotIcon|
00005370  2e 20 20 54 68 65 20 69  63 6f 6e 20 62 6c 6f 63  |.  The icon bloc|
00005380  6b 20 70 61 73 73 65 64  20 69 6e 20 52 31 0a 73  |k passed in R1.s|
00005390  68 6f 75 6c 64 20 63 6f  6e 74 61 69 6e 20 61 20  |hould contain a |
000053a0  62 6c 6f 63 6b 20 61 73  20 64 65 73 63 72 69 62  |block as describ|
000053b0  65 64 20 66 6f 72 20 57  69 6d 70 5f 50 6c 6f 74  |ed for Wimp_Plot|
000053c0  49 63 6f 6e 20 69 6e 20  74 68 65 20 50 52 4d 73  |Icon in the PRMs|
000053d0  2e 0a 0a 57 69 6d 70 5f  42 6f 72 64 65 72 42 6f  |...Wimp_BorderBo|
000053e0  75 6e 64 69 6e 67 42 6f  78 20 28 49 6e 74 65 72  |undingBox (Inter|
000053f0  66 61 63 65 5f 42 6f 75  6e 64 69 6e 67 42 6f 78  |face_BoundingBox|
00005400  29 20 28 53 57 49 20 26  38 31 36 38 41 29 0a 0a  |) (SWI &8168A)..|
00005410  52 31 20 3d 20 69 63 6f  6e 20 62 6c 6f 63 6b 20  |R1 = icon block |
00005420  61 73 20 66 6f 72 20 57  69 6d 70 5f 50 6c 6f 74  |as for Wimp_Plot|
00005430  49 63 6f 6e 0a 0a 52 31  20 3d 20 75 70 64 61 74  |Icon..R1 = updat|
00005440  65 73 20 69 63 6f 6e 20  62 6c 6f 63 6b 0a 20 20  |es icon block.  |
00005450  20 20 20 20 20 20 20 20  0a 20 20 20 20 20 20 20  |        .       |
00005460  20 20 20 6f 66 66 73 65  74 0a 20 20 20 20 20 20  |   offset.      |
00005470  20 20 20 20 30 20 20 20  20 20 20 20 20 20 6d 69  |    0         mi|
00005480  6e 20 78 0a 20 20 20 20  20 20 20 20 20 20 34 20  |n x.          4 |
00005490  20 20 20 20 20 20 20 20  6d 69 6e 20 79 0a 20 20  |        min y.  |
000054a0  20 20 20 20 20 20 20 20  38 20 20 20 20 20 20 20  |        8       |
000054b0  20 20 6d 61 78 20 78 0a  20 20 20 20 20 20 20 20  |  max x.        |
000054c0  20 20 31 32 20 20 20 20  20 20 20 20 6d 61 78 20  |  12        max |
000054d0  79 0a 20 20 20 20 20 20  20 20 20 20 31 36 20 20  |y.          16  |
000054e0  20 20 20 20 20 20 62 6f  72 64 65 72 20 77 69 64  |      border wid|
000054f0  74 68 0a 20 20 20 20 20  20 20 20 20 20 32 30 20  |th.          20 |
00005500  20 20 20 20 20 20 20 62  75 74 74 6f 6e 20 73 6c  |       button sl|
00005510  61 62 20 73 74 61 74 65  20 28 31 20 3d 20 6f 75  |ab state (1 = ou|
00005520  74 2c 20 30 20 3d 20 69  6e 29 0a 0a 54 68 69 73  |t, 0 = in)..This|
00005530  20 63 61 6c 6c 20 72 65  74 75 72 6e 73 20 69 6e  | call returns in|
00005540  66 6f 72 6d 61 74 69 6f  6e 20 61 62 6f 75 74 20  |formation about |
00005550  74 68 65 20 69 63 6f 6e  20 62 6c 6f 63 6b 20 70  |the icon block p|
00005560  61 73 73 65 64 20 74 6f  20 69 74 2e 20 20 49 66  |assed to it.  If|
00005570  20 79 6f 75 20 77 69 73  68 20 74 6f 0a 67 65 74  | you wish to.get|
00005580  20 74 68 65 20 73 69 7a  65 20 6f 66 20 61 6e 20  | the size of an |
00005590  69 63 6f 6e 73 20 62 6f  78 20 75 73 65 20 57 69  |icons box use Wi|
000055a0  6d 70 5f 47 65 74 49 63  6f 6e 53 74 61 74 65 20  |mp_GetIconState |
000055b0  61 6e 64 20 74 68 65 6e  20 70 61 73 73 20 74 68  |and then pass th|
000055c0  65 20 69 63 6f 6e 20 62  6c 6f 63 6b 20 0a 72 65  |e icon block .re|
000055d0  74 75 72 6e 65 64 20 74  6f 20 74 68 69 73 20 66  |turned to this f|
000055e0  75 6e 63 74 69 6f 6e 2e  0a 0a 0a 0a 43 68 61 6e  |unction.....Chan|
000055f0  67 65 73 20 66 72 6f 6d  20 76 65 72 73 69 6f 6e  |ges from version|
00005600  20 31 2e 33 32 0a 0a 74  68 69 73 20 76 65 72 73  | 1.32..this vers|
00005610  69 6f 6e 20 68 61 73 20  62 65 65 6e 20 66 75 6c  |ion has been ful|
00005620  6c 79 20 72 65 2d 77 72  69 74 74 65 6e 20 75 73  |ly re-written us|
00005630  69 6e 67 20 74 68 65 20  61 63 6f 72 6e 20 61 6f  |ing the acorn ao|
00005640  66 20 61 73 73 65 6d 62  6c 65 72 2e 0a 62 6f 72  |f assembler..bor|
00005650  64 65 72 20 74 79 70 65  20 68 61 73 20 63 68 61  |der type has cha|
00005660  6e 67 65 64 20 74 6f 20  7a 20 74 6f 20 61 76 6f  |nged to z to avo|
00005670  69 64 20 63 6f 6e 66 6c  69 63 74 73 20 77 69 74  |id conflicts wit|
00005680  68 20 72 69 73 63 2d 6f  73 20 33 0a 49 6e 74 65  |h risc-os 3.Inte|
00005690  72 66 61 63 65 5f 50 6c  6f 74 33 64 49 63 6f 6e  |rface_Plot3dIcon|
000056a0  20 68 61 73 20 62 65 65  6e 20 63 68 61 6e 67 65  | has been change|
000056b0  64 20 73 6f 20 74 68 65  20 66 69 72 73 74 20 70  |d so the first p|
000056c0  61 72 61 6d 65 74 65 72  20 69 73 20 61 20 77 69  |arameter is a wi|
000056d0  6e 64 6f 77 20 73 74 61  74 65 20 62 6c 6f 63 6b  |ndow state block|
000056e0  20 69 6e 73 74 65 61 64  20 6f 66 20 61 20 77 69  | instead of a wi|
000056f0  6e 64 6f 77 20 68 61 6e  64 6c 65 0a 6e 61 6d 65  |ndow handle.name|
00005700  73 20 68 61 73 20 63 68  61 6e 67 65 64 20 74 6f  |s has changed to|
00005710  20 69 6e 74 65 72 66 61  63 65 5f 2e 2e 2e 2e 2c  | interface_....,|
00005720  20 6f 6c 64 20 6e 61 6d  65 73 20 61 72 65 20 73  | old names are s|
00005730  74 69 6c 6c 20 73 75 70  70 6f 72 74 65 64 0a 62  |till supported.b|
00005740  65 74 74 65 72 20 72 65  64 72 61 77 20 63 6f 64  |etter redraw cod|
00005750  65 20 74 6f 20 63 6f 72  72 65 63 74 20 70 72 6f  |e to correct pro|
00005760  62 6c 65 6d 73 20 77 69  74 68 20 6d 75 6c 74 69  |blems with multi|
00005770  2d 73 79 6e 63 20 6d 6f  64 65 73 20 77 68 65 72  |-sync modes wher|
00005780  65 20 74 68 65 20 69 63  6f 6e 73 20 77 65 72 65  |e the icons were|
00005790  20 6e 6f 74 20 61 6c 6c  69 67 6e 65 64 20 63 6f  | not alligned co|
000057a0  72 72 65 63 74 6c 79 2e  0a 49 6e 74 65 72 66 61  |rrectly..Interfa|
000057b0  63 65 5f 42 6f 75 6e 64  69 6e 67 42 6f 78 20 6e  |ce_BoundingBox n|
000057c0  6f 77 20 72 65 74 75 72  6e 73 20 74 68 65 20 73  |ow returns the s|
000057d0  74 61 74 65 20 6f 66 20  74 68 65 20 62 75 74 74  |tate of the butt|
000057e0  6f 6e 20 0a 6e 65 77 20  62 6f 72 64 65 72 20 74  |on .new border t|
000057f0  79 70 65 73 0a 0a 2a 63  6f 6d 6d 61 6e 64 20 74  |ypes..*command t|
00005800  6f 20 61 6c 6c 6f 77 20  63 68 61 6e 67 65 73 20  |o allow changes |
00005810  69 6e 20 74 68 65 20 73  6c 61 62 62 69 6e 67 20  |in the slabbing |
00005820  63 6f 6c 6f 75 72 73 2e                           |colours.|
00005828