Home » Archimedes archive » Archimedes World » AW-1991-11.adf » November91 » !AWNov91/Goodies/Exchange/!Exchange/Resources/InterDOC

!AWNov91/Goodies/Exchange/!Exchange/Resources/InterDOC

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 » Archimedes World » AW-1991-11.adf » November91
Filename: !AWNov91/Goodies/Exchange/!Exchange/Resources/InterDOC
Read OK:
File size: 624A bytes
Load address: 0000
Exec address: 0000
File contents
*********************  Interface 1.25 (c) Simon Huntington ******************* 


*********************************************************************************
*********************************************************************************
*********************************************************************************
*********************************************************************************
*                                                                               *
* Modification : You now pass the task handle in R2 when using Wimp_PollPointer *
*                                                                               *
* Shading is now done with the light from the top left as in Impression II      *
*                                                                               *
*********************************************************************************
*********************************************************************************
*********************************************************************************
*********************************************************************************

� Software Interrupt 1990


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

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)     
       Charron BBS         (0420 63115)
       Noah BBS            (0272 572322)
       MegaNet             (0924 223456)

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


A version of this document in Impression format can be obtained by sending a 
blank disc and return postage to me.  I will also stick on a modified Formed
to display Interface windows


All correspondence should be addressed to:

        SoftWare Interrupt
        40 Castle Ings Gardens
        New Farnley
        Leeds
        LS12 5EG


**************** 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 border-type {border-spec} | 
                        r on/off-type {,icon-number}* |
                        u on/off-type {,icon-number}* |
                        p text-string {,x} {,y} |
                        i text-string   
  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.

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 SWI Calls *********************************

Wimp_BorderIcon (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 n 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 (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 (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 (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 (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 (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 (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_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


************************* Programming Hints & Tips **************************

This section gives hints and tips on how to program your application to make the 
most of Interface Manager.  In the examples q% is used as a block of memory, 
action% is the reason code returned by SWI "Wimp_Poll" and task_handle% is the 
task handle.

The following code should be used to claim Interface so that the pointers may be 
used.

        SYS "Wimp_Initialise", 200, &4b534154,"Interface" TO , task_handle%
        SYS "Wimp_ClaimInterface", task_handle%        : REM claim interface


The following code should be used when a redraw event is returned from 
Wimp_Poll.

        SYS "Wimp_RedrawWindow",, q% TO flag%           : REM  get area to redraw
        WHILE flag%                                     : REM  redraw = TRUE
                SYS "Wimp_BorderWindow",, q%            : REM  border all icons
                SYS "Wimp_GetRectangle",, q% TO flag%   : REM  get next rectangle
        ENDWHILE                                        : REM  see if anymore


The following code should be used when a mouse_click event is returned from 
Wimp_Poll.

        SYS "Wimp_BorderIcon",, q%                      : REM  highlight icon
        ....                                            : REM  insert your code
        ....                                            : REM  here
        q%!8 = 0                                        : REM  set button state to
                                                        : REM  0 (switch off)
        SYS "Wimp_BorderIcon",, q%                      : REM  switch off


The following code should be used to to install a on the workarea.  Note this pointer 
will take up the whole of the window workarea.

        q%!0 = window_handle%                           : REM window to install pointer  
        q%!4 = -1                                       : REM whole workarea = - 1
        q%!8 = -1                                       : REM whole workarea = - 1
        q%!12 = -1                                      : REM whole workarea = - 1
        q%!16 = -1                                      : REM whole workarea = - 1
        $(q%+20) ="ptr_hand,5,5" + CHR$0                : REM ptr & point (no spaces)
        SYS "Wimp_SetWorkareaPointer",, q%              : REM set the pointer


The following code should be used to to remove all pointers from a window.  This 
should be called when you delete a window.

        q%!0 = window_handle%                           : REM window to clear
        q%!4 = 0                                        : REM all pointers = 0
        q%!8 = 0                                        : REM all pointers = 0
        q%!12 = 0                                       : REM all pointers = 0
        q%!16 = 0                                       : REM all pointers = 0
        SYS "Wimp_ReleaseWorkareaPointer", task_handle%, q%     
                                                        : REM release the pointers

The following code should be used to to send help to the help application.  This 
should be called when you receive a message with an identifier of &502.

        CASE q%!16 OF                                           : REM check message
                WHEN &502 : SYS "Wimp_SendInformation",, q%     : REM message help              
                                                                : REM request, so
                                                                : REM send help



The following code should be placed directly after your SYS "Wimp_Poll" to switch 
pointer.

        SYS "Wimp_PollPointer", action%,, task_handle%  : REM call swi with reason code



The following code should be used to to release Interface.

        SYS "Wimp_ReleaseInterface", task_handle%       : REM release Interface


 

00000000  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00000010  2a 2a 2a 2a 2a 20 20 49  6e 74 65 72 66 61 63 65  |*****  Interface|
00000020  20 31 2e 32 35 20 28 63  29 20 53 69 6d 6f 6e 20  | 1.25 (c) Simon |
00000030  48 75 6e 74 69 6e 67 74  6f 6e 20 2a 2a 2a 2a 2a  |Huntington *****|
00000040  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 20 0a  |************** .|
00000050  0a 0a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..**************|
00000060  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000000a0  2a 2a 2a 0a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |***.************|
000000b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000000f0  2a 2a 2a 2a 2a 0a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |*****.**********|
00000100  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000140  2a 2a 2a 2a 2a 2a 2a 0a  2a 2a 2a 2a 2a 2a 2a 2a  |*******.********|
00000150  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000190  2a 2a 2a 2a 2a 2a 2a 2a  2a 0a 2a 20 20 20 20 20  |*********.*     |
000001a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000001e0  20 20 20 20 20 20 20 20  20 20 2a 0a 2a 20 4d 6f  |          *.* Mo|
000001f0  64 69 66 69 63 61 74 69  6f 6e 20 3a 20 59 6f 75  |dification : You|
00000200  20 6e 6f 77 20 70 61 73  73 20 74 68 65 20 74 61  | now pass the ta|
00000210  73 6b 20 68 61 6e 64 6c  65 20 69 6e 20 52 32 20  |sk handle in R2 |
00000220  77 68 65 6e 20 75 73 69  6e 67 20 57 69 6d 70 5f  |when using Wimp_|
00000230  50 6f 6c 6c 50 6f 69 6e  74 65 72 20 2a 0a 2a 20  |PollPointer *.* |
00000240  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000280  20 20 20 20 20 20 20 20  20 20 20 20 20 20 2a 0a  |              *.|
00000290  2a 20 53 68 61 64 69 6e  67 20 69 73 20 6e 6f 77  |* Shading is now|
000002a0  20 64 6f 6e 65 20 77 69  74 68 20 74 68 65 20 6c  | done with the l|
000002b0  69 67 68 74 20 66 72 6f  6d 20 74 68 65 20 74 6f  |ight from the to|
000002c0  70 20 6c 65 66 74 20 61  73 20 69 6e 20 49 6d 70  |p left as in Imp|
000002d0  72 65 73 73 69 6f 6e 20  49 49 20 20 20 20 20 20  |ression II      |
000002e0  2a 0a 2a 20 20 20 20 20  20 20 20 20 20 20 20 20  |*.*             |
000002f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000330  20 20 2a 0a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |  *.************|
00000340  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000380  2a 2a 2a 2a 2a 0a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |*****.**********|
00000390  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000003d0  2a 2a 2a 2a 2a 2a 2a 0a  2a 2a 2a 2a 2a 2a 2a 2a  |*******.********|
000003e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000420  2a 2a 2a 2a 2a 2a 2a 2a  2a 0a 2a 2a 2a 2a 2a 2a  |*********.******|
00000430  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000470  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0a 0a a9 20 53  |***********... S|
00000480  6f 66 74 77 61 72 65 20  49 6e 74 65 72 72 75 70  |oftware Interrup|
00000490  74 20 31 39 39 30 0a 0a  0a 54 68 69 73 20 6d 61  |t 1990...This ma|
000004a0  6e 75 61 6c 20 61 6e 64  20 73 6f 66 74 77 61 72  |nual and softwar|
000004b0  65 20 69 73 20 70 75 62  6c 69 63 20 64 6f 6d 61  |e is public doma|
000004c0  69 6e 2e 20 20 49 74 20  6d 61 79 20 62 65 20 63  |in.  It may be c|
000004d0  6f 70 69 65 64 20 61 6e  64 20 64 69 73 74 72 69  |opied and distri|
000004e0  62 75 74 65 64 20 66 72  65 65 6c 79 20 0a 61 73  |buted freely .as|
000004f0  20 6c 6f 6e 67 20 61 73  3a 0a 0a 20 20 20 20 20  | long as:..     |
00000500  20 20 49 74 20 69 73 20  6e 6f 74 20 73 65 70 61  |  It is not sepa|
00000510  72 61 74 65 64 20 66 72  6f 6d 20 74 68 65 20 64  |rated from the d|
00000520  6f 63 75 6d 65 6e 74 61  74 69 6f 6e 20 28 65 78  |ocumentation (ex|
00000530  63 65 70 74 20 66 6f 72  20 63 6f 6d 6d 65 72 63  |cept for commerc|
00000540  69 61 6c 20 75 73 65 29  0a 20 20 20 20 20 20 20  |ial use).       |
00000550  54 68 65 20 6d 6f 64 75  6c 65 20 69 73 20 6e 6f  |The module is no|
00000560  74 20 74 61 6d 70 65 72  65 64 20 77 69 74 68 0a  |t tampered with.|
00000570  20 20 20 20 20 20 20 59  6f 75 20 64 6f 20 6e 6f  |       You do no|
00000580  74 20 63 6c 61 69 6d 20  74 68 61 74 20 79 6f 75  |t claim that you|
00000590  20 68 61 76 65 20 77 72  69 74 74 65 6e 20 74 68  | have written th|
000005a0  65 20 6d 6f 64 75 6c 65  0a 0a 49 66 20 79 6f 75  |e module..If you|
000005b0  20 77 69 73 68 20 74 6f  20 75 73 65 20 74 68 69  | wish to use thi|
000005c0  73 20 69 6e 20 61 20 63  6f 6d 6d 65 72 63 69 61  |s in a commercia|
000005d0  6c 20 70 72 6f 64 75 63  74 20 70 6c 65 61 73 65  |l product please|
000005e0  20 63 6f 6e 74 61 63 74  20 6d 65 20 73 6f 20 74  | contact me so t|
000005f0  68 61 74 20 49 20 63 61  6e 20 6d 61 6b 65 20 0a  |hat I can make .|
00000600  73 75 72 65 20 79 6f 75  20 68 61 76 65 20 74 68  |sure you have th|
00000610  65 20 6c 61 74 65 73 74  20 72 65 6c 65 61 73 65  |e latest release|
00000620  2c 20 70 6c 65 61 73 65  20 73 65 6e 64 20 61 20  |, please send a |
00000630  64 69 73 6b 2e 0a 0a 49  6e 20 6e 6f 20 63 69 72  |disk...In no cir|
00000640  63 75 6d 73 74 61 6e 63  65 73 20 73 68 61 6c 6c  |cumstances shall|
00000650  20 74 68 65 20 61 75 74  68 6f 72 20 62 65 20 6c  | the author be l|
00000660  69 61 62 6c 65 20 66 6f  72 20 61 6e 79 20 64 61  |iable for any da|
00000670  6d 61 67 65 2c 20 6c 6f  73 73 20 6f 66 20 70 72  |mage, loss of pr|
00000680  6f 66 69 74 73 2c 20 74  69 6d 65 20 6f 72 20 0a  |ofits, time or .|
00000690  64 61 74 61 20 6f 72 20  61 6e 79 20 69 6e 64 69  |data or any indi|
000006a0  72 65 63 74 20 6f 72 20  63 6f 6e 73 65 71 75 65  |rect or conseque|
000006b0  6e 74 69 61 6c 20 6c 6f  73 73 20 72 69 73 69 6e  |ntial loss risin|
000006c0  67 20 6f 75 74 20 6f 66  20 74 68 65 20 75 73 65  |g out of the use|
000006d0  20 6f 66 20 74 68 69 73  20 73 6f 66 74 77 61 72  | of this softwar|
000006e0  65 20 6f 72 20 0a 69 6e  61 62 69 6c 69 74 79 20  |e or .inability |
000006f0  74 6f 20 75 73 65 20 74  68 69 73 20 73 6f 66 74  |to use this soft|
00000700  77 61 72 65 2e 0a 0a 43  6f 6e 74 61 63 74 73 3a  |ware...Contacts:|
00000710  0a 20 20 20 20 20 20 20  41 72 63 61 64 65 20 42  |.       Arcade B|
00000720  42 53 20 20 20 20 20 20  20 20 20 20 28 30 38 31  |BS          (081|
00000730  20 36 35 34 20 32 32 31  32 29 20 20 20 20 20 20  | 654 2212)      |
00000740  20 20 20 20 20 20 20 20  20 20 20 20 20 0a 20 20  |             .  |
00000750  20 20 20 20 20 54 68 65  20 57 6f 72 6c 64 20 4f  |     The World O|
00000760  66 20 43 72 79 74 6f 6e  20 28 30 37 34 39 20 36  |f Cryton (0749 6|
00000770  37 39 37 39 34 29 20 20  20 20 20 0a 20 20 20 20  |79794)     .    |
00000780  20 20 20 43 68 61 72 72  6f 6e 20 42 42 53 20 20  |   Charron BBS  |
00000790  20 20 20 20 20 20 20 28  30 34 32 30 20 36 33 31  |       (0420 631|
000007a0  31 35 29 0a 20 20 20 20  20 20 20 4e 6f 61 68 20  |15).       Noah |
000007b0  42 42 53 20 20 20 20 20  20 20 20 20 20 20 20 28  |BBS            (|
000007c0  30 32 37 32 20 35 37 32  33 32 32 29 0a 20 20 20  |0272 572322).   |
000007d0  20 20 20 20 4d 65 67 61  4e 65 74 20 20 20 20 20  |    MegaNet     |
000007e0  20 20 20 20 20 20 20 20  28 30 39 32 34 20 32 32  |        (0924 22|
000007f0  33 34 35 36 29 0a 0a 20  20 20 20 20 20 20 41 6c  |3456)..       Al|
00000800  6c 20 6d 61 69 6c 20 6f  6e 20 74 68 65 20 61 62  |l mail on the ab|
00000810  6f 76 65 20 42 75 6c 6c  65 74 69 6e 20 42 6f 72  |ove Bulletin Bor|
00000820  64 73 20 73 68 6f 75 6c  64 20 62 65 20 6d 61 69  |ds should be mai|
00000830  6c 65 64 20 74 6f 20 4a  49 43 4b 0a 0a 0a 41 20  |led to JICK...A |
00000840  76 65 72 73 69 6f 6e 20  6f 66 20 74 68 69 73 20  |version of this |
00000850  64 6f 63 75 6d 65 6e 74  20 69 6e 20 49 6d 70 72  |document in Impr|
00000860  65 73 73 69 6f 6e 20 66  6f 72 6d 61 74 20 63 61  |ession format ca|
00000870  6e 20 62 65 20 6f 62 74  61 69 6e 65 64 20 62 79  |n be obtained by|
00000880  20 73 65 6e 64 69 6e 67  20 61 20 0a 62 6c 61 6e  | sending a .blan|
00000890  6b 20 64 69 73 63 20 61  6e 64 20 72 65 74 75 72  |k disc and retur|
000008a0  6e 20 70 6f 73 74 61 67  65 20 74 6f 20 6d 65 2e  |n postage to me.|
000008b0  20 20 49 20 77 69 6c 6c  20 61 6c 73 6f 20 73 74  |  I will also st|
000008c0  69 63 6b 20 6f 6e 20 61  20 6d 6f 64 69 66 69 65  |ick on a modifie|
000008d0  64 20 46 6f 72 6d 65 64  0a 74 6f 20 64 69 73 70  |d Formed.to disp|
000008e0  6c 61 79 20 49 6e 74 65  72 66 61 63 65 20 77 69  |lay Interface wi|
000008f0  6e 64 6f 77 73 0a 0a 0a  41 6c 6c 20 63 6f 72 72  |ndows...All corr|
00000900  65 73 70 6f 6e 64 65 6e  63 65 20 73 68 6f 75 6c  |espondence shoul|
00000910  64 20 62 65 20 61 64 64  72 65 73 73 65 64 20 74  |d be addressed t|
00000920  6f 3a 0a 0a 20 20 20 20  20 20 20 20 53 6f 66 74  |o:..        Soft|
00000930  57 61 72 65 20 49 6e 74  65 72 72 75 70 74 0a 20  |Ware Interrupt. |
00000940  20 20 20 20 20 20 20 34  30 20 43 61 73 74 6c 65  |       40 Castle|
00000950  20 49 6e 67 73 20 47 61  72 64 65 6e 73 0a 20 20  | Ings Gardens.  |
00000960  20 20 20 20 20 20 4e 65  77 20 46 61 72 6e 6c 65  |      New Farnle|
00000970  79 0a 20 20 20 20 20 20  20 20 4c 65 65 64 73 0a  |y.        Leeds.|
00000980  20 20 20 20 20 20 20 20  4c 53 31 32 20 35 45 47  |        LS12 5EG|
00000990  0a 0a 0a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |...*************|
000009a0  2a 2a 2a 20 49 6e 74 72  6f 64 75 63 74 69 6f 6e  |*** Introduction|
000009b0  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
000009c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000009e0  0a 20 0a 49 6e 74 65 72  66 61 63 65 20 69 73 20  |. .Interface is |
000009f0  61 20 73 6d 61 6c 6c 20  6d 6f 64 75 6c 65 20 74  |a small module t|
00000a00  68 61 74 20 61 6c 6c 6f  77 73 20 61 70 70 6c 69  |hat allows appli|
00000a10  63 61 74 69 6f 6e 20 70  72 6f 67 72 61 6d 6d 65  |cation programme|
00000a20  72 73 20 74 6f 20 69 6d  70 6c 65 6d 65 6e 74 20  |rs to implement |
00000a30  61 20 0a 63 6f 6c 6f 75  72 66 75 6c 20 61 6e 64  |a .colourful and|
00000a40  20 70 6c 65 61 73 61 6e  74 20 67 72 61 70 68 69  | pleasant graphi|
00000a50  63 61 6c 20 75 73 65 72  20 69 6e 74 65 72 66 61  |cal user interfa|
00000a60  63 65 2e 20 20 49 6e 74  65 72 66 61 63 65 20 70  |ce.  Interface p|
00000a70  72 6f 76 69 64 65 73 20  6d 61 6e 79 20 6d 6f 72  |rovides many mor|
00000a80  65 20 0a 66 75 6e 63 74  69 6f 6e 73 20 74 68 61  |e .functions tha|
00000a90  74 20 61 6c 6c 6f 77 73  20 79 6f 75 20 74 6f 20  |t allows you to |
00000aa0  63 68 61 6e 67 65 20 74  68 65 20 70 6f 69 6e 74  |change the point|
00000ab0  65 72 20 73 68 61 70 65  20 65 61 73 69 6c 79 20  |er shape easily |
00000ac0  61 6e 64 20 74 6f 20 69  6e 74 65 72 66 61 63 65  |and to interface|
00000ad0  20 77 69 74 68 20 74 68  65 20 0a 21 48 65 6c 70  | with the .!Help|
00000ae0  20 6f 72 20 21 53 70 79  20 61 70 70 6c 69 63 61  | or !Spy applica|
00000af0  74 69 6f 6e 2e 0a 0a 54  68 65 20 49 6e 74 65 72  |tion...The Inter|
00000b00  66 61 63 65 20 6d 6f 64  75 6c 65 20 70 72 6f 76  |face module prov|
00000b10  69 64 65 73 20 66 75 6e  63 74 69 6f 6e 73 20 74  |ides functions t|
00000b20  6f 20 69 6d 70 72 6f 76  65 20 74 68 65 20 66 72  |o improve the fr|
00000b30  69 65 6e 64 6c 69 6e 65  73 73 20 61 6e 64 20 61  |iendliness and a|
00000b40  70 70 65 61 72 61 6e 63  65 20 0a 6f 66 20 74 68  |ppearance .of th|
00000b50  65 20 61 70 70 6c 69 63  61 74 69 6f 6e 2e 20 54  |e application. T|
00000b60  68 65 20 61 70 70 6c 69  63 61 74 69 6f 6e 20 73  |he application s|
00000b70  68 6f 75 6c 64 20 73 74  69 6c 6c 20 6f 70 65 72  |hould still oper|
00000b80  61 74 65 20 61 73 20 73  74 61 74 65 64 20 69 6e  |ate as stated in|
00000b90  20 20 74 68 65 20 41 63  6f 72 6e 20 0a 67 75 69  |  the Acorn .gui|
00000ba0  64 65 6c 69 6e 65 73 20  69 6e 20 74 68 65 20 50  |delines in the P|
00000bb0  72 6f 67 72 61 6d 6d 65  72 73 20 52 65 66 65 72  |rogrammers Refer|
00000bc0  65 6e 63 65 20 4d 61 6e  75 61 6c 73 2e 0a 0a 54  |ence Manuals...T|
00000bd0  68 65 20 6d 6f 64 75 6c  65 20 69 6d 70 6c 65 6d  |he module implem|
00000be0  65 6e 74 73 20 61 20 6e  75 6d 62 65 72 20 6f 66  |ents a number of|
00000bf0  20 53 57 49 73 20 77 68  69 63 68 20 61 72 65 20  | SWIs which are |
00000c00  64 65 73 63 72 69 62 65  64 20 66 75 72 74 68 65  |described furthe|
00000c10  72 20 69 6e 20 74 68 69  73 20 0a 6d 61 6e 75 61  |r in this .manua|
00000c20  6c 2c 20 74 68 65 73 65  20 53 57 49 20 63 61 6c  |l, these SWI cal|
00000c30  6c 73 20 63 61 6e 20 62  65 20 63 61 6c 6c 65 64  |ls can be called|
00000c40  20 66 72 6f 6d 20 61 6e  79 20 6c 61 6e 67 75 61  | from any langua|
00000c50  67 65 2e 20 20 4d 6f 73  74 20 6f 66 20 74 68 65  |ge.  Most of the|
00000c60  20 66 75 6e 63 74 69 6f  6e 73 20 0a 70 72 6f 76  | functions .prov|
00000c70  69 64 65 64 20 61 72 65  20 73 70 65 63 69 66 69  |ided are specifi|
00000c80  65 64 20 69 6e 20 74 68  65 20 69 63 6f 6e 73 20  |ed in the icons |
00000c90  76 61 6c 69 64 61 74 69  6f 6e 20 73 74 72 69 6e  |validation strin|
00000ca0  67 2c 20 61 6e 64 20 73  6f 20 6e 6f 20 63 6f 6d  |g, and so no com|
00000cb0  70 6c 65 78 20 0a 70 72  6f 67 72 61 6d 6d 69 6e  |plex .programmin|
00000cc0  67 20 69 73 20 6e 65 65  64 65 64 20 74 6f 20 6d  |g is needed to m|
00000cd0  61 6b 65 20 74 68 65 20  61 70 70 6c 69 63 61 74  |ake the applicat|
00000ce0  69 6f 6e 20 6c 6f 6f 6b  20 67 6f 6f 64 2e 0a 0a  |ion look good...|
00000cf0  54 68 69 73 20 67 75 69  64 65 20 74 65 6c 6c 73  |This guide tells|
00000d00  20 79 6f 75 20 68 6f 77  20 74 6f 20 66 75 6c 6c  | you how to full|
00000d10  79 20 69 6d 70 6c 65 6d  65 6e 74 20 74 68 65 20  |y implement the |
00000d20  66 65 61 74 75 72 65 73  20 6f 66 20 49 6e 74 65  |features of Inte|
00000d30  72 66 61 63 65 2e 20 20  49 74 20 69 73 20 73 70  |rface.  It is sp|
00000d40  6c 69 74 20 69 6e 74 6f  20 0a 74 68 65 20 66 6f  |lit into .the fo|
00000d50  6c 6c 6f 77 20 73 65 63  74 69 6f 6e 73 3a 0a 0a  |llow sections:..|
00000d60  20 20 20 20 20 20 20 20  54 68 65 20 66 69 72 73  |        The firs|
00000d70  74 20 73 65 63 74 69 6f  6e 20 65 78 70 6c 61 69  |t section explai|
00000d80  6e 73 20 74 68 65 20 76  61 6c 69 64 61 74 69 6f  |ns the validatio|
00000d90  6e 20 73 74 72 69 6e 67  73 20 6f 70 74 69 6f 6e  |n strings option|
00000da0  73 20 70 72 6f 76 69 64  65 64 0a 20 20 20 20 20  |s provided.     |
00000db0  20 20 20 62 79 20 49 6e  74 65 72 66 61 63 65 2e  |   by Interface.|
00000dc0  0a 20 20 20 20 20 20 20  20 54 68 65 20 6e 65 78  |.        The nex|
00000dd0  74 20 73 65 63 74 69 6f  6e 20 67 69 76 65 73 20  |t section gives |
00000de0  64 65 74 61 69 6c 73 20  6f 66 20 74 68 65 20 53  |details of the S|
00000df0  57 49 20 63 61 6c 6c 73  20 70 72 6f 76 69 64 65  |WI calls provide|
00000e00  64 2e 0a 20 20 20 20 20  20 20 20 54 68 65 20 72  |d..        The r|
00000e10  65 6d 61 69 6e 69 6e 67  20 73 65 63 74 69 6f 6e  |emaining section|
00000e20  20 63 6f 76 65 72 73 20  68 69 6e 74 73 20 61 6e  | covers hints an|
00000e30  64 20 74 69 70 73 20 6f  6e 20 70 72 6f 67 72 61  |d tips on progra|
00000e40  6d 6d 69 6e 67 2e 0a 0a  0a 0a 0a 0a 0a 2a 2a 2a  |mming........***|
00000e50  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 20 54 65  |************* Te|
00000e60  63 68 6e 69 63 61 6c 20  64 65 74 61 69 6c 73 20  |chnical details |
00000e70  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000e90  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0a  |***************.|
00000ea0  0a 41 6e 20 69 6e 64 69  72 65 63 74 65 64 20 74  |.An indirected t|
00000eb0  65 78 74 20 69 63 6f 6e  20 63 61 6e 20 68 61 76  |ext icon can hav|
00000ec0  65 20 61 20 76 61 6c 69  64 61 74 69 6f 6e 20 73  |e a validation s|
00000ed0  74 72 69 6e 67 20 77 68  69 63 68 20 69 73 20 75  |tring which is u|
00000ee0  73 65 64 20 74 6f 20 70  61 73 73 20 66 75 72 74  |sed to pass furt|
00000ef0  68 65 72 20 0a 69 6e 66  6f 72 6d 61 74 69 6f 6e  |her .information|
00000f00  20 74 6f 20 74 68 65 20  57 49 4d 50 2c 20 73 75  | to the WIMP, su|
00000f10  63 68 20 61 73 20 77 68  61 74 20 62 6f 72 64 65  |ch as what borde|
00000f20  72 20 74 79 70 65 20 74  68 65 20 69 63 6f 6e 20  |r type the icon |
00000f30  68 61 73 20 61 6e 64 20  61 6c 73 6f 20 77 68 61  |has and also wha|
00000f40  74 20 0a 70 6f 69 6e 74  65 72 2c 20 69 66 20 61  |t .pointer, if a|
00000f50  6e 79 20 73 68 6f 75 6c  64 20 62 65 20 64 69 73  |ny should be dis|
00000f60  70 6c 61 79 65 64 20 77  68 69 6c 73 74 20 6f 76  |played whilst ov|
00000f70  65 72 20 74 68 69 73 20  69 63 6f 6e 2e 20 20 54  |er this icon.  T|
00000f80  68 65 20 73 79 6e 74 61  78 20 6f 66 20 61 20 76  |he syntax of a v|
00000f90  61 6c 69 64 61 74 69 6f  6e 20 0a 73 74 72 69 6e  |alidation .strin|
00000fa0  67 20 69 73 3a 0a 0a 20  20 76 61 6c 69 64 61 74  |g is:..  validat|
00000fb0  69 6f 6e 20 73 74 72 69  6e 67 20 3a 3a 2d 20 63  |ion string ::- c|
00000fc0  6f 6d 6d 61 6e 64 20 7b  3b 63 6f 6d 6d 61 6e 64  |ommand {;command|
00000fd0  7d 2a 0a 20 20 63 6f 6d  6d 61 6e 64 20 20 20 20  |}*.  command    |
00000fe0  20 20 20 20 20 20 20 3a  3a 2d 20 62 20 62 6f 72  |       ::- b bor|
00000ff0  64 65 72 2d 74 79 70 65  20 7b 62 6f 72 64 65 72  |der-type {border|
00001000  2d 73 70 65 63 7d 20 7c  20 0a 20 20 20 20 20 20  |-spec} | .      |
00001010  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001020  20 20 72 20 6f 6e 2f 6f  66 66 2d 74 79 70 65 20  |  r on/off-type |
00001030  7b 2c 69 63 6f 6e 2d 6e  75 6d 62 65 72 7d 2a 20  |{,icon-number}* |
00001040  7c 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||.              |
00001050  20 20 20 20 20 20 20 20  20 20 75 20 6f 6e 2f 6f  |          u on/o|
00001060  66 66 2d 74 79 70 65 20  7b 2c 69 63 6f 6e 2d 6e  |ff-type {,icon-n|
00001070  75 6d 62 65 72 7d 2a 20  7c 0a 20 20 20 20 20 20  |umber}* |.      |
00001080  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001090  20 20 70 20 74 65 78 74  2d 73 74 72 69 6e 67 20  |  p text-string |
000010a0  7b 2c 78 7d 20 7b 2c 79  7d 20 7c 0a 20 20 20 20  |{,x} {,y} |.    |
000010b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000010c0  20 20 20 20 69 20 74 65  78 74 2d 73 74 72 69 6e  |    i text-strin|
000010d0  67 20 20 20 0a 20 20 62  6f 72 64 65 72 2d 73 70  |g   .  border-sp|
000010e0  65 63 20 20 20 20 20 20  20 3a 3a 2d 20 7b 2c 62  |ec       ::- {,b|
000010f0  75 74 74 6f 6e 2d 73 6c  61 62 62 69 6e 67 2d 6d  |utton-slabbing-m|
00001100  61 73 6b 7d 20 7b 2c 73  6c 61 62 62 69 6e 67 2d  |ask} {,slabbing-|
00001110  74 69 6d 65 7d 20 7b 2c  63 6f 6c 6f 75 72 7d 2a  |time} {,colour}*|
00001120  0a 0a 54 68 65 20 70 61  72 61 6d 65 74 65 72 73  |..The parameters|
00001130  20 61 62 6f 76 65 20 61  72 65 20 64 65 73 63 72  | above are descr|
00001140  69 62 65 64 20 75 6e 64  65 72 20 74 68 65 20 72  |ibed under the r|
00001150  65 6c 65 76 61 6e 74 20  76 61 6c 69 64 61 74 69  |elevant validati|
00001160  6f 6e 20 63 6f 6d 6d 61  6e 64 2e 0a 49 6e 20 73  |on command..In s|
00001170  69 6d 70 6c 65 20 74 65  72 6d 73 2c 20 61 20 76  |imple terms, a v|
00001180  61 6c 69 64 61 74 69 6f  6e 20 73 74 72 69 6e 67  |alidation string|
00001190  20 63 6f 6e 73 69 73 74  73 20 6f 66 20 61 20 73  | consists of a s|
000011a0  65 72 69 65 73 20 6f 66  20 27 63 6f 6d 6d 61 6e  |eries of 'comman|
000011b0  64 73 27 2c 20 65 61 63  68 20 73 74 61 72 74 69  |ds', each starti|
000011c0  6e 67 20 0a 77 69 74 68  20 61 20 73 69 6e 67 6c  |ng .with a singl|
000011d0  65 20 6c 65 74 74 65 72  20 61 6e 64 20 73 65 70  |e letter and sep|
000011e0  65 72 61 74 65 64 20 66  72 6f 6d 20 74 68 65 20  |erated from the |
000011f0  66 6f 6c 6c 6f 77 69 6e  67 20 63 6f 6d 6d 61 6e  |following comman|
00001200  64 20 62 79 20 61 20 73  65 6d 69 2d 63 6f 6c 6f  |d by a semi-colo|
00001210  6e 2e 20 20 0a 7b 7d 2a  20 6d 65 61 6e 73 20 7a  |n.  .{}* means z|
00001220  65 72 6f 20 6f 72 20 6d  6f 72 65 20 6f 66 20 74  |ero or more of t|
00001230  68 65 20 74 68 69 6e 67  20 69 6e 73 69 64 65 20  |he thing inside |
00001240  74 68 65 20 7b 7d 2e 20  20 54 68 65 20 66 6f 6c  |the {}.  The fol|
00001250  6c 6f 77 69 6e 67 20 63  6f 6d 6d 61 6e 64 73 20  |lowing commands |
00001260  61 72 65 20 0a 61 76 61  69 6c 61 62 6c 65 20 77  |are .available w|
00001270  69 74 68 20 74 68 65 20  49 6e 74 65 72 66 61 63  |ith the Interfac|
00001280  65 20 6d 6f 64 75 6c 65  2e 0a 0a 54 68 65 73 65  |e module...These|
00001290  20 63 6f 6d 6d 61 6e 64  73 20 61 72 65 20 70 72  | commands are pr|
000012a0  6f 76 69 64 65 64 20 69  6e 20 61 64 64 69 74 69  |ovided in additi|
000012b0  6f 6e 20 74 6f 20 74 68  65 20 73 74 61 6e 64 61  |on to the standa|
000012c0  72 64 20 57 69 6d 70 20  76 61 6c 69 64 61 74 69  |rd Wimp validati|
000012d0  6f 6e 20 73 74 72 69 6e  67 73 2e 20 20 0a 49 20  |on strings.  .I |
000012e0  73 75 67 67 65 73 74 20  74 68 61 74 20 79 6f 75  |suggest that you|
000012f0  20 65 64 69 74 20 74 68  65 20 21 46 6f 72 6d 45  | edit the !FormE|
00001300  64 20 70 72 6f 67 72 61  6d 20 74 6f 20 61 6c 6c  |d program to all|
00001310  6f 77 20 79 6f 75 20 74  6f 20 65 6e 74 65 72 20  |ow you to enter |
00001320  6c 61 72 67 65 72 20 76  61 6c 69 64 61 74 69 6f  |larger validatio|
00001330  6e 20 0a 73 74 72 69 6e  67 73 2c 20 6f 74 68 65  |n .strings, othe|
00001340  72 77 69 73 65 20 77 68  65 6e 20 65 6e 74 65 72  |rwise when enter|
00001350  69 6e 67 20 61 20 68 65  6c 70 20 63 6f 6d 6d 61  |ing a help comma|
00001360  6e 64 20 79 6f 75 20 77  69 6c 6c 20 6f 6e 6c 79  |nd you will only|
00001370  20 62 65 20 61 6c 6c 6f  77 65 64 20 61 20 0a 6d  | be allowed a .m|
00001380  61 78 69 6d 75 6d 20 6f  66 20 38 30 20 63 68 61  |aximum of 80 cha|
00001390  72 61 63 74 65 72 73 2e  0a 0a 54 68 65 20 28 42  |racters...The (B|
000013a0  29 6f 72 64 65 72 20 63  6f 6d 6d 61 6e 64 20 74  |)order command t|
000013b0  65 6c 6c 73 20 49 6e 74  65 72 66 61 63 65 20 77  |ells Interface w|
000013c0  68 69 63 68 20 62 6f 72  64 65 72 20 74 6f 20 75  |hich border to u|
000013d0  73 65 20 77 68 65 6e 20  72 65 6e 64 65 72 69 6e  |se when renderin|
000013e0  67 20 61 6e 20 69 63 6f  6e 2e 20 20 0a 54 68 65  |g an icon.  .The|
000013f0  20 62 6f 72 64 65 72 20  74 79 70 65 73 20 61 76  | border types av|
00001400  61 69 6c 61 62 6c 65 20  61 74 20 70 72 65 73 65  |ailable at prese|
00001410  6e 74 20 61 72 65 20 3a  0a 0a 20 20 20 20 20 20  |nt are :..      |
00001420  20 20 62 6f 72 64 65 72  20 74 79 70 65 20 30 2c  |  border type 0,|
00001430  20 74 68 69 73 20 69 73  20 61 20 73 69 6e 67 6c  | this is a singl|
00001440  65 20 62 6f 72 64 65 72  20 75 73 65 64 20 6d 61  |e border used ma|
00001450  69 6e 6c 79 20 66 6f 72  20 68 65 61 64 69 6e 67  |inly for heading|
00001460  73 20 61 6e 64 20 61 63  74 69 6f 6e 20 69 63 6f  |s and action ico|
00001470  6e 73 2e 0a 20 20 20 20  20 20 20 20 54 68 65 20  |ns..        The |
00001480  69 63 6f 6e 20 77 69 6c  6c 20 73 6c 61 62 20 69  |icon will slab i|
00001490  6e 77 61 72 64 73 20 69  66 20 74 68 65 20 75 73  |nwards if the us|
000014a0  65 72 20 63 6c 69 63 6b  73 20 61 20 62 75 74 74  |er clicks a butt|
000014b0  6f 6e 20 77 68 69 6c 73  74 20 74 68 65 20 70 6f  |on whilst the po|
000014c0  69 6e 74 65 72 20 69 73  20 6f 76 65 72 20 0a 20  |inter is over . |
000014d0  20 20 20 20 20 20 20 74  68 65 20 69 63 6f 6e 20  |       the icon |
000014e0  70 72 6f 76 69 64 69 6e  67 20 69 74 20 69 73 20  |providing it is |
000014f0  6e 6f 74 20 73 65 74 75  70 20 74 6f 20 69 67 6e  |not setup to ign|
00001500  6f 72 65 20 6d 6f 75 73  65 20 63 6c 69 63 6b 73  |ore mouse clicks|
00001510  2e 0a 0a 20 20 20 20 20  20 20 20 62 6f 72 64 65  |...        borde|
00001520  72 20 74 79 70 65 20 31  2c 20 74 68 69 73 20 69  |r type 1, this i|
00001530  73 20 61 20 64 6f 75 62  6c 65 20 62 6f 72 64 65  |s a double borde|
00001540  72 20 61 6e 64 20 73 68  6f 75 6c 64 20 62 65 20  |r and should be |
00001550  75 73 65 64 20 74 6f 20  67 72 6f 75 70 20 74 6f  |used to group to|
00001560  67 65 74 68 65 72 20 0a  20 20 20 20 20 20 20 20  |gether .        |
00001570  69 63 6f 6e 73 20 74 68  61 74 20 70 65 72 66 6f  |icons that perfo|
00001580  72 6d 20 61 6e 20 6f 70  65 72 61 74 69 6f 6e 2e  |rm an operation.|
00001590  0a 0a 20 20 20 20 20 20  20 20 62 6f 72 64 65 72  |..        border|
000015a0  20 74 79 70 65 20 32 2c  20 74 68 69 73 20 69 73  | type 2, this is|
000015b0  20 61 20 74 72 69 70 6c  65 20 62 6f 72 64 65 72  | a triple border|
000015c0  20 61 6e 64 20 73 68 6f  75 6c 64 20 62 65 20 75  | and should be u|
000015d0  73 65 64 20 6f 6e 20 74  68 65 20 64 65 66 61 75  |sed on the defau|
000015e0  6c 74 20 61 63 74 69 6f  6e 20 20 20 20 20 20 20  |lt action       |
000015f0  20 20 0a 20 20 20 20 20  20 20 20 62 75 74 74 6f  |  .        butto|
00001600  6e 2e 20 20 54 68 65 20  69 63 6f 6e 20 77 69 6c  |n.  The icon wil|
00001610  6c 20 73 6c 61 62 20 69  6e 77 61 72 64 73 20 77  |l slab inwards w|
00001620  68 65 6e 20 74 68 65 20  75 73 65 72 20 63 6c 69  |hen the user cli|
00001630  63 6b 73 20 61 20 62 75  74 74 6f 6e 20 77 68 69  |cks a button whi|
00001640  6c 73 74 20 74 68 65 20  0a 20 20 20 20 20 20 20  |lst the .       |
00001650  20 70 6f 69 6e 74 65 72  20 69 73 20 6f 76 65 72  | pointer is over|
00001660  20 74 68 69 73 20 69 63  6f 6e 20 70 72 6f 76 69  | this icon provi|
00001670  64 69 6e 67 20 69 74 20  69 73 20 6e 6f 74 20 73  |ding it is not s|
00001680  65 74 75 70 20 74 6f 20  69 67 6e 6f 72 65 20 6d  |etup to ignore m|
00001690  6f 75 73 65 20 63 6c 69  63 6b 73 2e 0a 0a 20 20  |ouse clicks...  |
000016a0  20 20 20 20 20 20 62 6f  72 64 65 72 20 74 79 70  |      border typ|
000016b0  65 20 33 2c 20 74 68 69  73 20 69 73 20 61 20 77  |e 3, this is a w|
000016c0  69 64 65 20 69 6e 76 65  72 74 65 64 20 62 6f 72  |ide inverted bor|
000016d0  64 65 72 20 61 6e 64 20  73 68 6f 75 6c 64 20 62  |der and should b|
000016e0  65 20 75 73 65 64 20 6f  6e 20 77 72 69 74 61 62  |e used on writab|
000016f0  6c 65 0a 20 20 20 20 20  20 20 20 69 63 6f 6e 73  |le.        icons|
00001700  2e 20 20 54 68 69 73 20  62 6f 72 64 65 72 20 74  |.  This border t|
00001710  79 70 65 20 69 73 20 75  73 75 61 6c 6c 79 20 75  |ype is usually u|
00001720  73 65 64 20 69 6e 2d 63  6f 6e 6a 75 6e 63 74 69  |sed in-conjuncti|
00001730  6f 6e 20 77 69 74 68 20  74 68 65 20 77 72 69 74  |on with the writ|
00001740  61 62 6c 65 0a 20 20 20  20 20 20 20 20 70 6f 69  |able.        poi|
00001750  6e 74 65 72 2e 0a 0a 54  68 65 20 73 65 63 6f 6e  |nter...The secon|
00001760  64 20 6f 70 74 69 6f 6e  61 6c 20 70 61 72 61 6d  |d optional param|
00001770  65 74 65 72 20 69 73 20  74 68 65 20 62 75 74 74  |eter is the butt|
00001780  6f 6e 20 73 6c 61 62 62  69 6e 67 20 6d 61 73 6b  |on slabbing mask|
00001790  2c 20 74 68 69 73 20 73  74 61 74 65 73 20 77 68  |, this states wh|
000017a0  65 74 68 65 72 20 74 68  65 20 0a 69 63 6f 6e 20  |ether the .icon |
000017b0  73 68 6f 75 6c 64 20 62  65 20 73 6c 61 62 62 65  |should be slabbe|
000017c0  64 20 75 6e 74 69 6c 20  74 68 65 20 62 75 74 74  |d until the butt|
000017d0  6f 6e 20 69 73 20 72 65  6c 65 61 73 65 64 2e 20  |on is released. |
000017e0  20 54 68 65 20 76 61 6c  75 65 73 20 63 6f 6e 74  | The values cont|
000017f0  61 69 6e 65 64 20 69 6e  20 74 68 69 73 20 0a 70  |ained in this .p|
00001800  61 72 61 6d 65 74 65 72  20 63 61 6e 20 62 65 20  |arameter can be |
00001810  66 72 6f 6d 20 30 20 74  6f 20 37 2e 20 20 54 68  |from 0 to 7.  Th|
00001820  65 20 62 75 74 74 6f 6e  20 73 6c 61 62 62 69 6e  |e button slabbin|
00001830  67 20 6d 61 73 6b 20 63  61 6e 20 62 65 20 63 61  |g mask can be ca|
00001840  6c 63 75 6c 61 74 65 64  20 69 6e 20 74 68 65 20  |lculated in the |
00001850  0a 66 6f 6c 6c 6f 77 69  6e 67 20 77 61 79 3a 0a  |.following way:.|
00001860  0a 20 20 20 20 20 20 20  20 56 61 6c 75 65 20 20  |.        Value  |
00001870  20 42 75 74 74 6f 6e 20  20 20 20 20 20 20 20 20  | Button         |
00001880  20 4d 65 61 6e 69 6e 67  0a 20 20 20 20 20 20 20  | Meaning.       |
00001890  20 31 20 20 20 20 20 20  20 41 64 6a 75 73 74 20  | 1       Adjust |
000018a0  20 73 6c 61 62 20 69 63  6f 6e 20 75 6e 74 69 6c  | slab icon until|
000018b0  20 61 64 6a 75 73 74 20  69 73 20 72 65 6c 65 61  | adjust is relea|
000018c0  73 65 64 0a 20 20 20 20  20 20 20 20 32 20 20 20  |sed.        2   |
000018d0  20 20 20 20 4d 65 6e 75  20 20 20 20 73 6c 61 62  |    Menu    slab|
000018e0  20 69 63 6f 6e 20 75 6e  74 69 6c 20 6d 65 6e 75  | icon until menu|
000018f0  20 69 73 20 72 65 6c 65  61 73 65 64 0a 20 20 20  | is released.   |
00001900  20 20 20 20 20 34 20 20  20 20 20 20 20 53 65 6c  |     4       Sel|
00001910  65 63 74 20 20 73 6c 61  62 20 69 63 6f 6e 20 75  |ect  slab icon u|
00001920  6e 74 69 6c 20 73 65 6c  65 63 74 20 69 73 20 72  |ntil select is r|
00001930  65 6c 65 61 73 65 64 0a  0a 54 68 65 20 62 75 74  |eleased..The but|
00001940  74 6f 6e 20 73 6c 61 62  62 69 6e 67 20 6d 61 73  |ton slabbing mas|
00001950  6b 20 63 61 6e 20 74 68  65 6e 20 62 65 20 63 61  |k can then be ca|
00001960  6c 63 75 6c 61 74 65 64  20 62 79 20 61 64 64 69  |lculated by addi|
00001970  6e 67 20 74 6f 67 65 74  68 65 72 20 74 68 65 20  |ng together the |
00001980  72 65 71 75 69 72 65 64  20 0a 62 75 74 74 6f 6e  |required .button|
00001990  20 76 61 6c 75 65 73 2e  20 20 0a 0a 54 68 65 20  | values.  ..The |
000019a0  62 75 74 74 6f 6e 20 73  6c 61 62 62 69 6e 67 20  |button slabbing |
000019b0  74 69 6d 65 20 69 73 20  74 68 65 20 6d 69 6e 69  |time is the mini|
000019c0  6d 75 6d 20 74 69 6d 65  20 74 68 61 74 20 74 68  |mum time that th|
000019d0  65 20 69 63 6f 6e 20 77  69 6c 6c 20 62 65 20 73  |e icon will be s|
000019e0  6c 61 62 62 65 64 20 66  6f 72 2c 20 74 68 65 20  |labbed for, the |
000019f0  0a 64 65 66 61 75 6c 74  20 74 69 6d 65 20 69 73  |.default time is|
00001a00  20 66 6f 72 20 31 35 63  73 2e 20 20 54 68 69 73  | for 15cs.  This|
00001a10  20 76 61 6c 75 65 20 69  73 20 61 20 64 65 63 69  | value is a deci|
00001a20  6d 61 6c 20 6e 75 6d 62  65 72 20 69 6e 20 63 65  |mal number in ce|
00001a30  6e 74 69 2d 73 65 63 6f  6e 64 73 2e 0a 54 68 65  |nti-seconds..The|
00001a40  20 63 6f 6c 6f 75 72 73  20 61 72 65 20 73 70 65  | colours are spe|
00001a50  63 69 66 69 65 64 20 69  6e 20 74 68 65 20 66 6f  |cified in the fo|
00001a60  6c 6c 6f 77 69 6e 67 20  6f 72 64 65 72 3a 0a 0a  |llowing order:..|
00001a70  20 20 20 20 20 20 20 20  7b 2c 62 6f 72 64 65 72  |        {,border|
00001a80  20 63 6f 6c 6f 75 72 31  7d 20 7b 2c 62 6f 72 64  | colour1} {,bord|
00001a90  65 72 20 63 6f 6c 6f 75  72 32 7d 20 7b 2c 73 6c  |er colour2} {,sl|
00001aa0  61 62 62 69 6e 67 20 6f  75 74 20 63 6f 6c 6f 75  |abbing out colou|
00001ab0  72 7d 20 0a 20 20 20 20  20 20 20 20 7b 2c 73 6c  |r} .        {,sl|
00001ac0  61 62 62 69 6e 67 20 69  6e 20 63 6f 6c 6f 75 72  |abbing in colour|
00001ad0  7d 20 7b 2c 69 6e 6e 65  72 20 63 68 61 6e 6e 65  |} {,inner channe|
00001ae0  6c 20 63 6f 6c 6f 75 72  7d 0a 0a 54 68 65 73 65  |l colour}..These|
00001af0  20 63 6f 6c 6f 75 72 73  20 63 61 6e 20 62 65 20  | colours can be |
00001b00  61 6e 79 20 76 61 6c 69  64 20 57 49 4d 50 20 63  |any valid WIMP c|
00001b10  6f 6c 6f 75 72 20 69 6e  20 74 68 65 20 72 61 6e  |olour in the ran|
00001b20  67 65 20 6f 66 20 30 20  74 6f 20 31 35 2c 20 74  |ge of 0 to 15, t|
00001b30  68 65 20 64 65 66 61 75  6c 74 20 0a 73 65 6c 65  |he default .sele|
00001b40  63 74 69 6f 6e 20 69 73  20 34 2c 20 30 2c 20 31  |ction is 4, 0, 1|
00001b50  2c 20 31 34 2c 20 31 32  2e 0a 0a 54 68 65 20 28  |, 14, 12...The (|
00001b60  52 29 61 64 69 6f 20 63  6f 6d 6d 61 6e 64 20 73  |R)adio command s|
00001b70  70 65 63 69 66 69 65 64  20 69 6e 20 74 68 65 20  |pecified in the |
00001b80  76 61 6c 69 64 61 74 69  6f 6e 20 73 74 72 69 6e  |validation strin|
00001b90  67 20 69 73 20 75 73 65  64 20 74 6f 20 73 65 74  |g is used to set|
00001ba0  20 74 68 65 20 73 74 61  74 65 20 6f 66 20 0a 6f  | the state of .o|
00001bb0  74 68 65 72 20 72 61 64  69 6f 20 62 75 74 74 6f  |ther radio butto|
00001bc0  6e 20 74 79 70 65 20 69  63 6f 6e 73 2e 20 20 54  |n type icons.  T|
00001bd0  68 65 20 52 20 63 6f 6d  6d 61 6e 64 20 69 73 20  |he R command is |
00001be0  66 6f 6c 6c 6f 77 65 64  20 62 79 20 61 20 64 65  |followed by a de|
00001bf0  63 69 6d 61 6c 20 6e 75  6d 62 65 72 20 69 6e 20  |cimal number in |
00001c00  0a 74 68 65 20 72 61 6e  67 65 20 30 20 74 6f 20  |.the range 0 to |
00001c10  32 2c 20 74 68 65 20 61  63 74 69 6f 6e 20 74 68  |2, the action th|
00001c20  61 74 20 74 68 65 73 65  20 70 65 72 66 6f 72 6d  |at these perform|
00001c30  20 69 73 3a 0a 0a 20 20  20 20 20 20 20 20 52 61  | is:..        Ra|
00001c40  64 69 6f 20 74 79 70 65  20 20 20 20 20 20 20 20  |dio type        |
00001c50  20 20 20 20 20 20 4f 70  65 72 61 74 69 6f 6e 0a  |      Operation.|
00001c60  20 20 20 20 20 20 20 20  30 20 20 20 20 20 20 20  |        0       |
00001c70  20 20 20 20 20 20 20 20  74 68 69 73 20 68 61 73  |        this has|
00001c80  20 74 68 65 20 65 66 66  65 63 74 20 6f 66 20 73  | the effect of s|
00001c90  77 69 74 63 68 69 6e 67  20 6f 66 66 20 74 68 65  |witching off the|
00001ca0  20 73 70 65 63 69 66 69  65 64 20 69 63 6f 6e 28  | specified icon(|
00001cb0  73 29 2e 0a 20 20 20 20  20 20 20 20 31 20 20 20  |s)..        1   |
00001cc0  20 20 20 20 20 20 20 20  20 20 20 20 74 68 69 73  |            this|
00001cd0  20 68 61 73 20 74 68 65  20 65 66 66 65 63 74 20  | has the effect |
00001ce0  6f 66 20 73 77 69 74 63  68 69 6e 67 20 6f 6e 20  |of switching on |
00001cf0  74 68 65 20 73 70 65 63  69 66 69 65 64 20 69 63  |the specified ic|
00001d00  6f 6e 28 73 29 2e 20 20  20 20 20 20 0a 20 20 20  |on(s).      .   |
00001d10  20 20 20 20 20 32 20 20  20 20 20 20 20 20 20 20  |     2          |
00001d20  20 20 20 20 20 74 68 69  73 20 68 61 73 20 74 68  |     this has th|
00001d30  65 20 65 66 66 65 63 74  20 6f 66 20 74 6f 67 67  |e effect of togg|
00001d40  6c 69 6e 67 20 74 68 65  20 69 63 6f 6e 73 20 63  |ling the icons c|
00001d50  75 72 72 65 6e 74 20 73  74 61 74 65 2e 0a 0a 54  |urrent state...T|
00001d60  68 69 73 20 63 6f 6d 6d  61 6e 64 20 69 73 20 74  |his command is t|
00001d70  68 65 6e 20 66 6f 6c 6c  6f 77 65 64 20 62 79 20  |hen followed by |
00001d80  74 68 65 20 6e 75 6d 62  65 72 73 20 6f 66 20 74  |the numbers of t|
00001d90  68 65 20 69 63 6f 6e 73  20 79 6f 75 20 77 69 73  |he icons you wis|
00001da0  68 20 74 6f 20 61 6c 74  65 72 2c 20 74 68 65 73  |h to alter, thes|
00001db0  65 20 0a 73 68 6f 75 6c  64 20 62 65 20 73 65 70  |e .should be sep|
00001dc0  61 72 61 74 65 64 20 62  79 20 63 6f 6d 6d 61 73  |arated by commas|
00001dd0  2e 20 20 54 68 69 73 20  63 6f 6d 6d 61 6e 64 20  |.  This command |
00001de0  6d 61 79 20 62 65 20 73  70 65 63 69 66 69 65 64  |may be specified|
00001df0  20 6d 6f 72 65 20 74 68  61 6e 20 6f 6e 63 65 20  | more than once |
00001e00  69 6e 20 0a 61 20 76 61  6c 69 64 61 74 69 6f 6e  |in .a validation|
00001e10  20 73 74 72 69 6e 67 2c  20 66 6f 72 20 65 78 61  | string, for exa|
00001e20  6d 70 6c 65 20 74 6f 20  73 77 69 74 63 68 20 69  |mple to switch i|
00001e30  63 6f 6e 73 20 31 20 26  20 32 20 6f 66 66 2c 20  |cons 1 & 2 off, |
00001e40  33 20 26 20 34 20 6f 6e  20 61 6e 64 20 74 6f 67  |3 & 4 on and tog|
00001e50  67 6c 65 20 74 68 65 20  0a 73 74 61 74 65 20 6f  |gle the .state o|
00001e60  66 20 69 63 6f 6e 73 20  35 20 26 20 36 20 79 6f  |f icons 5 & 6 yo|
00001e70  75 20 63 6f 75 6c 64 20  75 73 65 20 74 68 65 20  |u could use the |
00001e80  66 6f 6c 6c 6f 77 69 6e  67 20 76 61 6c 69 64 61  |following valida|
00001e90  74 69 6f 6e 20 73 74 72  69 6e 67 0a 0a 20 20 20  |tion string..   |
00001ea0  20 20 20 20 20 52 30 2c  31 2c 32 3b 52 31 2c 33  |     R0,1,2;R1,3|
00001eb0  2c 34 3b 52 32 2c 35 2c  36 0a 0a 54 68 65 20 28  |,4;R2,5,6..The (|
00001ec0  55 29 6e 73 65 6c 65 63  74 61 62 6c 65 20 63 6f  |U)nselectable co|
00001ed0  6d 6d 61 6e 64 20 69 6e  20 74 68 65 20 76 61 6c  |mmand in the val|
00001ee0  69 64 61 74 69 6f 6e 20  73 74 72 69 6e 67 20 68  |idation string h|
00001ef0  61 73 20 74 68 65 20 65  66 66 65 63 74 20 6f 66  |as the effect of|
00001f00  20 73 68 61 64 69 6e 67  20 74 68 65 20 0a 69 63  | shading the .ic|
00001f10  6f 6e 20 67 72 65 79 20  73 6f 20 74 68 61 74 20  |on grey so that |
00001f20  69 74 20 63 61 6e 6e 6f  74 20 62 65 20 73 65 6c  |it cannot be sel|
00001f30  65 63 74 65 64 20 62 79  20 74 68 65 20 75 73 65  |ected by the use|
00001f40  72 2e 20 20 49 74 20 69  73 20 66 6f 6c 6c 6f 77  |r.  It is follow|
00001f50  65 64 20 62 79 20 61 20  64 65 63 69 6d 61 6c 20  |ed by a decimal |
00001f60  0a 6e 75 6d 62 65 72 20  69 6e 20 74 68 65 20 72  |.number in the r|
00001f70  61 6e 67 65 20 30 20 74  6f 20 32 2c 20 74 68 65  |ange 0 to 2, the|
00001f80  20 61 63 74 69 6f 6e 20  74 68 61 74 20 74 68 65  | action that the|
00001f90  73 65 20 69 73 20 64 65  73 63 72 69 62 65 64 20  |se is described |
00001fa0  61 62 6f 76 65 20 69 6e  20 74 68 65 20 72 61 64  |above in the rad|
00001fb0  69 6f 20 0a 63 6f 6d 6d  61 6e 64 2e 0a 0a 54 68  |io .command...Th|
00001fc0  69 73 20 63 6f 6d 6d 61  6e 64 20 69 73 20 74 68  |is command is th|
00001fd0  65 6e 20 66 6f 6c 6c 6f  77 65 64 20 62 79 20 74  |en followed by t|
00001fe0  68 65 20 6e 75 6d 62 65  72 73 20 6f 66 20 74 68  |he numbers of th|
00001ff0  65 20 69 63 6f 6e 73 20  79 6f 75 20 77 69 73 68  |e icons you wish|
00002000  20 74 6f 20 61 6c 74 65  72 2c 20 74 68 65 73 65  | to alter, these|
00002010  20 0a 73 68 6f 75 6c 64  20 62 65 20 73 65 70 61  | .should be sepa|
00002020  72 61 74 65 64 20 62 79  20 63 6f 6d 6d 61 73 2e  |rated by commas.|
00002030  20 20 54 68 69 73 20 63  6f 6d 6d 61 6e 64 20 6d  |  This command m|
00002040  61 79 20 62 65 20 73 70  65 63 69 66 69 65 64 20  |ay be specified |
00002050  6d 6f 72 65 20 74 68 61  6e 20 6f 6e 63 65 20 69  |more than once i|
00002060  6e 20 0a 61 20 76 61 6c  69 64 61 74 69 6f 6e 20  |n .a validation |
00002070  73 74 72 69 6e 67 2c 20  66 6f 72 20 65 78 61 6d  |string, for exam|
00002080  70 6c 65 20 74 6f 20 73  68 61 64 65 20 69 63 6f  |ple to shade ico|
00002090  6e 73 20 31 20 26 20 32  2c 20 75 6e 2d 73 68 61  |ns 1 & 2, un-sha|
000020a0  64 65 20 33 20 26 20 34  20 61 6e 64 20 74 6f 67  |de 3 & 4 and tog|
000020b0  67 6c 65 20 74 68 65 20  0a 73 74 61 74 65 20 6f  |gle the .state o|
000020c0  66 20 69 63 6f 6e 73 20  35 20 26 20 36 20 79 6f  |f icons 5 & 6 yo|
000020d0  75 20 63 6f 75 6c 64 20  75 73 65 20 74 68 65 20  |u could use the |
000020e0  66 6f 6c 6c 6f 77 69 6e  67 20 76 61 6c 69 64 61  |following valida|
000020f0  74 69 6f 6e 20 73 74 72  69 6e 67 0a 0a 20 20 20  |tion string..   |
00002100  20 20 20 20 20 55 30 2c  31 2c 32 3b 55 31 2c 33  |     U0,1,2;U1,3|
00002110  2c 34 3b 55 32 2c 35 2c  36 0a 0a 54 68 65 20 28  |,4;U2,5,6..The (|
00002120  50 29 6f 69 6e 74 65 72  20 63 6f 6d 6d 61 6e 64  |P)ointer command|
00002130  20 69 73 20 75 73 65 64  20 74 6f 20 64 65 66 69  | is used to defi|
00002140  6e 65 20 61 20 70 6f 69  6e 74 65 72 20 74 6f 20  |ne a pointer to |
00002150  62 65 20 64 69 73 70 6c  61 79 65 64 20 77 68 65  |be displayed whe|
00002160  6e 20 74 68 65 20 70 6f  69 6e 74 65 72 20 0a 69  |n the pointer .i|
00002170  73 20 6f 76 65 72 20 74  68 61 74 20 69 63 6f 6e  |s over that icon|
00002180  2e 20 20 54 68 65 20 66  69 72 73 74 20 70 61 72  |.  The first par|
00002190  61 6d 65 74 65 72 20 69  73 20 61 20 73 70 72 69  |ameter is a spri|
000021a0  74 65 20 6e 61 6d 65 20  74 6f 20 75 73 65 20 66  |te name to use f|
000021b0  6f 72 20 74 68 65 20 70  6f 69 6e 74 65 72 2c 20  |or the pointer, |
000021c0  74 68 69 73 20 0a 73 68  6f 75 6c 64 20 62 65 20  |this .should be |
000021d0  6e 6f 20 6c 6f 6e 67 65  72 20 74 68 61 6e 20 31  |no longer than 1|
000021e0  32 20 63 68 61 72 61 63  74 65 72 73 20 61 6e 64  |2 characters and|
000021f0  20 73 68 6f 75 6c 64 20  62 65 20 70 72 65 73 65  | should be prese|
00002200  6e 74 20 69 6e 20 74 68  65 20 57 49 4d 50 20 73  |nt in the WIMP s|
00002210  70 72 69 74 65 20 0a 70  6f 6f 6c 2e 20 20 54 68  |prite .pool.  Th|
00002220  65 20 6f 70 74 69 6f 6e  61 6c 20 70 61 72 61 6d  |e optional param|
00002230  65 74 65 72 73 20 73 70  65 63 69 66 79 20 74 68  |eters specify th|
00002240  65 20 78 20 61 6e 64 20  79 20 6f 66 66 73 65 74  |e x and y offset|
00002250  73 20 74 6f 20 74 68 65  20 61 63 74 69 76 65 20  |s to the active |
00002260  70 6f 69 6e 74 20 69 6e  20 74 68 65 20 0a 73 70  |point in the .sp|
00002270  72 69 74 65 2c 20 74 68  65 73 65 20 73 68 6f 75  |rite, these shou|
00002280  6c 64 20 62 65 20 73 70  65 63 69 66 69 65 64 20  |ld be specified |
00002290  69 6e 20 70 69 78 65 6c  73 2e 0a 0a 54 68 65 20  |in pixels...The |
000022a0  28 49 29 6e 66 6f 72 6d  61 74 69 6f 6e 20 63 6f  |(I)nformation co|
000022b0  6d 6d 61 6e 64 20 69 73  20 75 73 65 64 20 74 6f  |mmand is used to|
000022c0  20 64 65 66 69 6e 65 20  61 20 6d 65 73 73 61 67  | define a messag|
000022d0  65 20 74 6f 20 62 65 20  73 65 6e 74 20 74 6f 20  |e to be sent to |
000022e0  74 68 65 20 69 6e 74 65  72 61 63 74 69 76 65 20  |the interactive |
000022f0  0a 68 65 6c 70 20 61 70  70 6c 69 63 61 74 69 6f  |.help applicatio|
00002300  6e 20 77 68 65 6e 20 74  68 65 20 70 6f 69 6e 74  |n when the point|
00002310  65 72 20 69 73 20 6f 76  65 72 20 74 68 65 20 69  |er is over the i|
00002320  63 6f 6e 2e 20 20 49 66  20 79 6f 75 20 77 69 73  |con.  If you wis|
00002330  68 20 74 6f 20 75 73 65  20 61 20 73 65 6d 69 2d  |h to use a semi-|
00002340  63 6f 6c 6f 6e 20 0a 74  68 65 6e 20 79 6f 75 20  |colon .then you |
00002350  6d 75 73 74 20 70 6c 61  63 65 20 74 77 6f 20 6e  |must place two n|
00002360  65 78 74 20 74 6f 20 65  61 63 68 20 6f 74 68 65  |ext to each othe|
00002370  72 2e 20 20 54 68 65 20  6d 61 78 69 6d 75 6d 20  |r.  The maximum |
00002380  6c 65 6e 67 74 68 20 6f  66 20 74 68 65 20 68 65  |length of the he|
00002390  6c 70 20 0a 6d 65 73 73  61 67 65 20 69 73 20 32  |lp .message is 2|
000023a0  33 35 20 63 68 61 72 61  63 74 65 72 73 2e 0a 0a  |35 characters...|
000023b0  54 68 65 20 49 6e 74 65  72 66 61 63 65 20 6d 6f  |The Interface mo|
000023c0  64 75 6c 65 20 77 69 6c  6c 20 63 68 61 6e 67 65  |dule will change|
000023d0  20 74 6f 20 74 68 65 20  73 70 65 63 69 66 69 65  | to the specifie|
000023e0  64 20 70 6f 69 6e 74 65  72 20 77 68 65 6e 20 74  |d pointer when t|
000023f0  68 65 20 6d 6f 75 73 65  20 70 6f 69 6e 74 65 72  |he mouse pointer|
00002400  20 69 73 20 0a 6f 76 65  72 20 74 68 65 20 69 63  | is .over the ic|
00002410  6f 6e 2f 77 6f 72 6b 61  72 65 61 2c 20 69 66 20  |on/workarea, if |
00002420  6e 6f 20 70 6f 69 6e 74  65 72 20 69 73 20 73 70  |no pointer is sp|
00002430  65 63 69 66 69 65 64 20  74 68 65 6e 20 74 68 65  |ecified then the|
00002440  20 70 6f 69 6e 74 65 72  20 77 69 6c 6c 20 64 65  | pointer will de|
00002450  66 61 75 6c 74 20 74 6f  20 0a 73 68 61 70 65 20  |fault to .shape |
00002460  6f 6e 65 20 28 74 68 65  20 64 65 66 61 75 6c 74  |one (the default|
00002470  20 61 72 72 6f 77 20 73  68 61 70 65 29 2e 20 20  | arrow shape).  |
00002480  54 68 65 72 65 20 61 72  65 20 35 20 70 6f 69 6e  |There are 5 poin|
00002490  74 65 72 20 73 68 61 70  65 73 20 64 65 73 69 67  |ter shapes desig|
000024a0  6e 65 64 20 69 6e 20 74  68 65 20 0a 73 70 72 69  |ned in the .spri|
000024b0  74 65 20 66 69 6c 65 20  69 6e 20 74 68 65 20 21  |te file in the !|
000024c0  49 6e 74 65 72 66 61 63  65 20 64 69 72 65 63 74  |Interface direct|
000024d0  6f 72 79 2c 20 74 68 65  73 65 20 61 72 65 3a 0a  |ory, these are:.|
000024e0  0a 20 20 20 20 20 20 20  20 70 74 72 5f 77 72 69  |.        ptr_wri|
000024f0  74 65 20 2d 20 74 68 69  73 20 70 6f 69 6e 74 65  |te - this pointe|
00002500  72 20 73 68 6f 75 6c 64  20 62 65 20 75 73 65 64  |r should be used|
00002510  20 6f 6e 20 77 72 69 74  61 62 6c 65 20 69 63 6f  | on writable ico|
00002520  6e 73 2c 20 74 68 65 20  73 75 67 67 65 73 74 65  |ns, the suggeste|
00002530  64 20 61 63 74 69 76 65  0a 20 20 20 20 20 20 20  |d active.       |
00002540  20 70 6f 69 6e 74 20 69  73 20 61 74 20 63 6f 6f  | point is at coo|
00002550  72 64 69 6e 61 74 65 73  20 78 20 3d 20 34 2c 20  |rdinates x = 4, |
00002560  79 20 3d 20 34 2e 0a 0a  20 20 20 20 20 20 20 20  |y = 4...        |
00002570  70 74 72 5f 6d 65 6e 75  20 2d 20 74 68 69 73 20  |ptr_menu - this |
00002580  70 6f 69 6e 74 65 72 20  69 73 20 75 73 65 64 20  |pointer is used |
00002590  77 68 65 72 65 20 61 20  6d 65 6e 75 20 63 61 6e  |where a menu can|
000025a0  20 62 65 20 61 63 74 69  76 61 74 65 64 20 62 79  | be activated by|
000025b0  20 70 72 65 73 73 69 6e  67 20 74 68 65 0a 20 20  | pressing the.  |
000025c0  20 20 20 20 20 20 6d 65  6e 75 20 62 75 74 74 6f  |      menu butto|
000025d0  6e 20 6f 76 65 72 20 74  68 65 20 69 63 6f 6e 2e  |n over the icon.|
000025e0  20 20 54 68 69 73 20 73  74 6f 70 73 20 74 68 65  |  This stops the|
000025f0  20 75 73 65 72 20 68 61  76 69 6e 67 20 74 6f 20  | user having to |
00002600  73 65 61 72 63 68 20 61  6c 6c 20 6f 76 65 72 20  |search all over |
00002610  74 68 65 0a 20 20 20 20  20 20 20 20 77 69 6e 64  |the.        wind|
00002620  6f 77 20 74 6f 20 66 69  6e 64 20 77 68 65 72 65  |ow to find where|
00002630  20 74 68 65 20 6d 65 6e  75 20 69 73 2e 20 54 68  | the menu is. Th|
00002640  65 20 73 75 67 67 65 73  74 65 64 20 61 63 74 69  |e suggested acti|
00002650  76 65 20 70 6f 69 6e 74  20 69 73 20 78 20 3d 20  |ve point is x = |
00002660  36 2c 20 79 20 3d 20 35  2e 0a 0a 20 20 20 20 20  |6, y = 5...     |
00002670  20 20 20 70 74 72 5f 64  69 72 65 63 74 20 2d 20  |   ptr_direct - |
00002680  74 68 69 73 20 70 6f 69  6e 74 65 72 20 69 73 20  |this pointer is |
00002690  75 73 65 64 20 77 68 65  72 65 20 61 6e 20 6f 62  |used where an ob|
000026a0  6a 65 63 74 20 6d 61 79  20 62 65 20 72 65 2d 73  |ject may be re-s|
000026b0  69 7a 65 64 2c 20 74 68  65 20 73 75 67 67 65 73  |ized, the sugges|
000026c0  74 65 64 0a 20 20 20 20  20 20 20 20 61 63 74 69  |ted.        acti|
000026d0  76 65 20 70 6f 69 6e 74  20 69 73 20 61 74 20 78  |ve point is at x|
000026e0  20 3d 20 31 33 2c 20 79  20 3d 20 37 2e 0a 0a 20  | = 13, y = 7... |
000026f0  20 20 20 20 20 20 20 70  74 72 5f 68 61 6e 64 20  |       ptr_hand |
00002700  2d 20 74 68 69 73 20 70  6f 69 6e 74 65 72 20 69  |- this pointer i|
00002710  73 20 75 73 65 64 20 77  68 65 72 65 20 61 6e 64  |s used where and|
00002720  20 69 63 6f 6e 20 6d 61  79 20 62 65 20 64 72 61  | icon may be dra|
00002730  67 67 65 64 2e 20 20 49  74 20 69 73 20 75 73 75  |gged.  It is usu|
00002740  61 6c 6c 79 20 73 65 74  0a 20 20 20 20 20 20 20  |ally set.       |
00002750  20 6f 6e 20 74 68 65 20  77 6f 72 6b 61 72 65 61  | on the workarea|
00002760  2c 20 62 75 74 20 69 74  20 63 61 6e 20 62 65 20  |, but it can be |
00002770  75 73 65 64 20 6f 6e 20  61 6e 79 20 69 63 6f 6e  |used on any icon|
00002780  20 28 74 68 65 20 73 61  76 65 20 66 69 6c 65 20  | (the save file |
00002790  69 63 6f 6e 20 6c 6f 6f  6b 73 20 67 72 65 61 74  |icon looks great|
000027a0  0a 20 20 20 20 20 20 20  20 77 68 65 6e 20 75 73  |.        when us|
000027b0  69 6e 67 20 69 74 29 2c  20 69 74 73 20 73 75 67  |ing it), its sug|
000027c0  67 65 73 74 65 64 20 61  63 74 69 76 65 20 70 6f  |gested active po|
000027d0  69 6e 74 20 69 73 20 61  74 20 78 20 3d 20 31 32  |int is at x = 12|
000027e0  2c 20 79 20 3d 20 38 2e  0a 0a 20 20 20 20 20 20  |, y = 8...      |
000027f0  20 20 70 74 72 5f 63 72  6f 73 73 20 2d 20 74 68  |  ptr_cross - th|
00002800  69 73 20 70 6f 69 6e 74  65 72 20 69 73 20 75 73  |is pointer is us|
00002810  65 64 20 61 73 20 61 20  63 72 6f 73 73 68 61 69  |ed as a crosshai|
00002820  72 2c 20 69 74 20 69 73  20 74 68 65 20 73 61 6d  |r, it is the sam|
00002830  65 20 61 73 20 74 68 65  20 6f 6e 65 20 75 73 65  |e as the one use|
00002840  64 20 69 6e 20 74 68 65  0a 20 20 20 20 20 20 20  |d in the.       |
00002850  20 44 72 61 77 20 61 70  70 6c 69 63 61 74 69 6f  | Draw applicatio|
00002860  6e 2e 20 20 54 68 69 73  20 69 63 6f 6e 20 67 69  |n.  This icon gi|
00002870  76 65 73 20 74 68 65 20  75 73 65 72 20 61 20 70  |ves the user a p|
00002880  72 65 63 69 73 65 20 70  6f 69 6e 74 20 77 68 65  |recise point whe|
00002890  6e 20 77 6f 72 6b 69 6e  67 20 77 69 74 68 0a 20  |n working with. |
000028a0  20 20 20 20 20 20 20 6c  69 6e 65 20 64 72 61 77  |       line draw|
000028b0  69 6e 67 73 2c 20 69 74  73 20 73 75 67 67 65 73  |ings, its sugges|
000028c0  74 65 64 20 61 63 74 69  76 65 20 70 6f 69 6e 74  |ted active point|
000028d0  20 69 73 20 61 74 20 78  20 3d 20 31 33 2c 20 79  | is at x = 13, y|
000028e0  20 3d 20 37 2e 0a 0a 59  6f 75 20 6d 61 79 20 61  | = 7...You may a|
000028f0  6c 73 6f 20 64 65 73 69  67 6e 20 79 6f 75 72 20  |lso design your |
00002900  6f 77 6e 20 70 6f 69 6e  74 65 72 73 2c 20 77 68  |own pointers, wh|
00002910  69 63 68 20 73 68 6f 75  6c 64 20 62 65 20 6c 6f  |ich should be lo|
00002920  61 64 65 64 20 69 6e 74  6f 20 74 68 65 20 57 49  |aded into the WI|
00002930  4d 50 20 0a 73 70 72 69  74 65 20 70 6f 6f 6c 2e  |MP .sprite pool.|
00002940  20 20 54 68 65 72 65 20  61 72 65 20 61 20 66 65  |  There are a fe|
00002950  77 20 70 6f 69 6e 74 73  20 74 68 61 74 20 79 6f  |w points that yo|
00002960  75 20 73 68 6f 75 6c 64  20 6e 6f 74 65 20 77 68  |u should note wh|
00002970  65 6e 20 64 65 73 69 67  6e 69 6e 67 20 70 6f 69  |en designing poi|
00002980  6e 74 65 72 73 20 0a 74  68 65 73 65 20 61 72 65  |nters .these are|
00002990  20 3a 0a 0a 20 20 20 20  20 20 20 20 50 6f 69 6e  | :..        Poin|
000029a0  74 65 72 20 73 70 72 69  74 65 20 6e 61 6d 65 73  |ter sprite names|
000029b0  20 73 68 6f 75 6c 64 20  68 61 76 65 20 74 68 65  | should have the|
000029c0  20 66 6f 72 6d 20 70 74  72 5f 58 58 58 58 58 2c  | form ptr_XXXXX,|
000029d0  20 61 6c 74 68 6f 75 67  68 20 74 68 69 73 20 69  | although this i|
000029e0  73 20 6e 6f 74 0a 20 20  20 20 20 20 20 20 63 6f  |s not.        co|
000029f0  6d 70 75 6c 73 6f 72 79  20 69 74 20 68 65 6c 70  |mpulsory it help|
00002a00  73 20 73 6f 20 74 68 61  74 20 79 6f 75 20 64 6f  |s so that you do|
00002a10  20 6e 6f 74 20 67 65 74  20 63 6f 6e 66 75 73 65  | not get confuse|
00002a20  64 20 77 69 74 68 20 70  6f 69 6e 74 65 72 73 20  |d with pointers |
00002a30  61 6e 64 20 6e 6f 72 6d  61 6c 0a 20 20 20 20 20  |and normal.     |
00002a40  20 20 20 73 70 72 69 74  65 73 2e 0a 0a 20 20 20  |   sprites...   |
00002a50  20 20 20 20 20 44 6f 20  6e 6f 74 20 75 73 65 20  |     Do not use |
00002a60  6c 6f 67 69 63 61 6c 20  63 6f 6c 6f 75 72 20 32  |logical colour 2|
00002a70  20 69 6e 20 74 68 65 20  70 6f 69 6e 74 65 72 20  | in the pointer |
00002a80  73 70 72 69 74 65 73 2c  20 61 73 20 74 68 69 73  |sprites, as this|
00002a90  20 69 73 20 75 6e 61 76  61 69 6c 61 62 6c 65 20  | is unavailable |
00002aa0  69 6e 20 76 65 72 79 0a  20 20 20 20 20 20 20 20  |in very.        |
00002ab0  68 69 67 68 20 72 65 73  6f 6c 75 74 69 6f 6e 20  |high resolution |
00002ac0  6d 6f 64 65 73 2e 0a 0a  54 68 65 20 70 6f 69 6e  |modes...The poin|
00002ad0  74 65 72 73 20 75 73 65  64 20 73 68 6f 75 6c 64  |ters used should|
00002ae0  20 6f 6e 6c 79 20 62 65  20 76 61 6c 69 64 20 69  | only be valid i|
00002af0  6e 20 79 6f 75 72 20 61  70 70 6c 69 63 61 74 69  |n your applicati|
00002b00  6f 6e 2c 20 73 6f 20 79  6f 75 20 6d 75 73 74 20  |on, so you must |
00002b10  6e 6f 74 20 6d 61 73 6b  20 0a 6f 75 74 20 74 68  |not mask .out th|
00002b20  65 20 50 6f 69 6e 74 65  72 5f 4c 65 61 76 69 6e  |e Pointer_Leavin|
00002b30  67 5f 57 69 6e 64 6f 77  20 69 6e 20 79 6f 75 72  |g_Window in your|
00002b40  20 61 70 70 6c 69 63 61  74 69 6f 6e 2e 20 20 59  | application.  Y|
00002b50  6f 75 20 73 68 6f 75 6c  64 20 63 6c 61 69 6d 20  |ou should claim |
00002b60  0a 4e 75 6c 6c 5f 52 65  61 73 6f 6e 5f 43 6f 64  |.Null_Reason_Cod|
00002b70  65 20 77 68 65 6e 20 70  61 73 73 65 64 20 74 6f  |e when passed to|
00002b80  20 79 6f 75 72 20 61 70  70 6c 69 63 61 74 69 6f  | your applicatio|
00002b90  6e 2c 20 6f 74 68 65 72  77 69 73 65 20 74 68 65  |n, otherwise the|
00002ba0  20 70 6f 69 6e 74 65 72  20 77 69 6c 6c 20 6e 6f  | pointer will no|
00002bb0  74 20 0a 63 68 61 6e 67  65 20 77 68 65 6e 20 74  |t .change when t|
00002bc0  68 65 20 70 6f 69 6e 74  65 72 20 69 73 20 6f 76  |he pointer is ov|
00002bd0  65 72 20 74 68 65 20 69  63 6f 6e 2f 77 6f 72 6b  |er the icon/work|
00002be0  61 72 65 61 2c 20 73 65  65 20 74 68 65 20 65 78  |area, see the ex|
00002bf0  61 6d 70 6c 65 73 20 66  6f 72 20 6d 6f 72 65 2e  |amples for more.|
00002c00  0a 0a 59 6f 75 20 73 68  6f 75 6c 64 20 73 75 70  |..You should sup|
00002c10  70 6f 72 74 20 74 68 65  20 21 48 65 6c 70 20 61  |port the !Help a|
00002c20  70 70 6c 69 63 61 74 69  6f 6e 20 74 6f 20 68 65  |pplication to he|
00002c30  6c 70 20 6e 65 77 20 75  73 65 72 73 20 75 73 69  |lp new users usi|
00002c40  6e 67 20 79 6f 75 72 20  61 70 70 6c 69 63 61 74  |ng your applicat|
00002c50  69 6f 6e 2c 20 0a 74 68  69 73 20 69 73 20 77 68  |ion, .this is wh|
00002c60  79 20 49 20 69 6d 70 6c  65 6d 65 6e 74 65 64 20  |y I implemented |
00002c70  61 20 66 65 61 74 75 72  65 20 69 6e 20 49 6e 74  |a feature in Int|
00002c80  65 72 66 61 63 65 20 74  6f 20 6d 61 6b 65 20 74  |erface to make t|
00002c90  68 69 73 20 65 61 73 69  65 72 2e 20 20 54 68 65  |his easier.  The|
00002ca0  20 66 6f 6c 6c 6f 77 69  6e 67 20 0a 77 61 73 20  | following .was |
00002cb0  66 6f 72 20 73 6f 6d 65  20 72 65 61 73 6f 6e 20  |for some reason |
00002cc0  6e 6f 74 20 70 75 62 6c  69 73 68 65 64 20 69 6e  |not published in|
00002cd0  20 74 68 65 20 50 72 6f  67 72 61 6d 6d 65 72 73  | the Programmers|
00002ce0  20 52 65 66 65 72 65 6e  63 65 20 4d 61 6e 75 61  | Reference Manua|
00002cf0  6c 73 2c 20 62 75 74 20  77 61 73 20 0a 69 6e 20  |ls, but was .in |
00002d00  74 68 65 20 70 72 65 2d  72 65 6c 65 61 73 65 20  |the pre-release |
00002d10  64 69 73 63 20 76 65 72  73 69 6f 6e 20 6f 66 20  |disc version of |
00002d20  74 68 65 20 6d 61 6e 75  61 6c 73 2e 0a 0a 46 6f  |the manuals...Fo|
00002d30  72 20 61 6e 20 61 70 70  6c 69 63 61 74 69 6f 6e  |r an application|
00002d40  20 74 6f 20 75 73 65 20  69 6e 74 65 72 61 63 74  | to use interact|
00002d50  69 76 65 20 68 65 6c 70  2c 20 74 77 6f 20 57 49  |ive help, two WI|
00002d60  4d 50 20 6d 65 73 73 61  67 65 73 20 61 72 65 20  |MP messages are |
00002d70  65 6d 70 6c 6f 79 65 64  2e 20 20 4f 6e 65 20 0a  |employed.  One .|
00002d80  69 73 20 75 73 65 64 20  62 79 20 74 68 65 20 48  |is used by the H|
00002d90  65 6c 70 20 74 6f 20 72  65 71 75 65 73 74 20 68  |elp to request h|
00002da0  65 6c 70 2c 20 61 6e 64  20 74 68 65 20 6f 74 68  |elp, and the oth|
00002db0  65 72 20 69 73 20 75 73  65 64 20 62 79 20 74 68  |er is used by th|
00002dc0  65 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 74 6f  |e application to|
00002dd0  20 72 65 74 75 72 6e 20  0a 74 68 65 20 68 65 6c  | return .the hel|
00002de0  70 20 6d 65 73 73 61 67  65 2e 0a 0a 54 6f 20 72  |p message...To r|
00002df0  65 71 75 65 73 74 20 68  65 6c 70 2c 20 74 68 65  |equest help, the|
00002e00  20 48 65 6c 70 20 61 70  70 6c 69 63 61 74 69 6f  | Help applicatio|
00002e10  6e 20 73 65 6e 64 73 20  61 20 6d 65 73 73 61 67  |n sends a messag|
00002e20  65 20 6f 66 20 74 68 65  20 66 6f 6c 6c 6f 77 69  |e of the followi|
00002e30  6e 67 20 66 6f 72 6d 3a  0a 0a 62 6c 6f 63 6b 20  |ng form:..block |
00002e40  20 20 2b 31 36 20 20 20  20 20 26 35 30 32 20 2d  |  +16     &502 -|
00002e50  20 69 6e 64 69 63 61 74  65 73 20 72 65 71 75 65  | indicates reque|
00002e60  73 74 20 66 6f 72 20 68  65 6c 70 0a 20 20 20 20  |st for help.    |
00002e70  20 20 20 20 20 20 20 20  20 20 20 20 2b 32 30 20  |            +20 |
00002e80  20 20 20 20 6d 6f 75 73  65 20 78 20 63 6f 2d 6f  |    mouse x co-o|
00002e90  72 64 69 6e 61 74 65 0a  20 20 20 20 20 20 20 20  |rdinate.        |
00002ea0  20 20 20 20 20 20 20 20  2b 32 34 20 20 20 20 20  |        +24     |
00002eb0  6d 6f 75 73 65 20 79 20  63 6f 2d 6f 72 64 69 6e  |mouse y co-ordin|
00002ec0  61 74 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ate.            |
00002ed0  20 20 20 20 2b 32 38 20  20 20 20 20 6d 6f 75 73  |    +28     mous|
00002ee0  65 20 62 75 74 74 6f 6e  20 73 74 61 74 65 0a 20  |e button state. |
00002ef0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2b  |               +|
00002f00  33 32 20 20 20 20 20 77  69 6e 64 6f 77 20 68 61  |32     window ha|
00002f10  6e 64 6c 65 20 20 20 20  20 20 20 20 20 20 20 20  |ndle            |
00002f20  20 20 20 28 2d 31 20 69  66 20 6e 6f 74 20 6f 76  |   (-1 if not ov|
00002f30  65 72 20 61 20 77 69 6e  64 6f 77 29 0a 20 20 20  |er a window).   |
00002f40  20 20 20 20 20 20 20 20  20 20 20 20 20 2b 33 36  |             +36|
00002f50  20 20 20 20 20 69 63 6f  6e 20 68 61 6e 64 6c 65  |     icon handle|
00002f60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002f70  20 28 2d 31 20 69 66 20  6e 6f 74 20 6f 76 65 72  | (-1 if not over|
00002f80  20 61 6e 20 69 63 6f 6e  29 0a 0a 54 68 65 20 57  | an icon)..The W|
00002f90  49 4d 50 20 73 79 73 74  65 6d 20 77 69 6c 6c 20  |IMP system will |
00002fa0  70 61 73 73 20 74 68 69  73 20 6d 65 73 73 61 67  |pass this messag|
00002fb0  65 20 61 75 74 6f 6d 61  74 69 63 61 6c 6c 79 20  |e automatically |
00002fc0  74 6f 20 74 68 65 20 74  61 73 6b 20 69 6e 20 63  |to the task in c|
00002fd0  68 61 72 67 65 20 6f 66  20 74 68 65 20 0a 61 70  |harge of the .ap|
00002fe0  70 72 6f 70 72 69 61 74  65 20 77 69 6e 64 6f 77  |propriate window|
00002ff0  2f 69 63 6f 6e 2e 20 20  49 66 20 74 68 65 20 61  |/icon.  If the a|
00003000  70 70 6c 69 63 61 74 69  6f 6e 20 72 65 63 65 69  |pplication recei|
00003010  76 69 6e 67 20 74 68 65  20 6d 65 73 73 61 67 65  |ving the message|
00003020  20 77 69 73 68 65 73 20  74 6f 20 70 72 6f 64 75  | wishes to produ|
00003030  63 65 20 0a 73 6f 6d 65  20 68 65 6c 70 2c 20 69  |ce .some help, i|
00003040  74 20 73 68 6f 75 6c 64  20 72 65 73 70 6f 6e 64  |t should respond|
00003050  20 77 69 74 68 20 74 68  65 20 66 6f 6c 6c 6f 77  | with the follow|
00003060  69 6e 67 20 6d 65 73 73  61 67 65 3a 0a 0a 62 6c  |ing message:..bl|
00003070  6f 63 6b 20 20 20 2b 31  36 20 20 20 20 20 26 35  |ock   +16     &5|
00003080  30 33 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |03.             |
00003090  20 20 20 2b 32 30 20 20  20 20 20 68 65 6c 70 20  |   +20     help |
000030a0  6d 65 73 73 61 67 65 20  74 65 72 6d 69 6e 61 74  |message terminat|
000030b0  65 64 20 62 79 20 30 0a  0a 54 68 69 73 20 6d 65  |ed by 0..This me|
000030c0  73 73 61 67 65 20 63 61  6e 20 62 65 20 73 65 6e  |ssage can be sen|
000030d0  74 20 74 6f 20 74 68 65  20 48 65 6c 70 20 61 70  |t to the Help ap|
000030e0  70 6c 69 63 61 74 69 6f  6e 20 62 79 20 75 73 69  |plication by usi|
000030f0  6e 67 20 57 69 6d 70 5f  53 65 6e 64 48 65 6c 70  |ng Wimp_SendHelp|
00003100  2c 20 77 68 69 63 68 20  0a 69 73 20 70 72 6f 76  |, which .is prov|
00003110  69 64 65 64 20 62 79 20  74 68 65 20 49 6e 74 65  |ided by the Inte|
00003120  72 66 61 63 65 20 6d 6f  64 75 6c 65 20 28 53 57  |rface module (SW|
00003130  49 20 26 38 31 36 38 37  29 2e 0a 0a 54 68 65 20  |I &81687)...The |
00003140  68 65 6c 70 20 74 65 78  74 20 6d 61 79 20 20 63  |help text may  c|
00003150  6f 6e 74 61 69 6e 20 61  6e 79 20 70 72 69 6e 74  |ontain any print|
00003160  61 62 6c 65 20 63 68 61  72 61 63 74 65 72 20 63  |able character c|
00003170  6f 64 65 73 2e 20 20 49  66 20 74 68 65 20 73 65  |odes.  If the se|
00003180  71 75 65 6e 63 65 20 7c  4d 20 69 73 20 0a 65 6e  |quence |M is .en|
00003190  63 6f 75 6e 74 65 72 65  64 20 74 68 65 6e 20 74  |countered then t|
000031a0  68 69 73 20 77 69 6c 6c  20 62 65 20 74 72 65 61  |his will be trea|
000031b0  74 65 64 20 61 73 20 61  20 6c 69 6e 65 20 62 72  |ted as a line br|
000031c0  65 61 6b 20 61 6e 64 20  73 75 62 73 65 71 75 65  |eak and subseque|
000031d0  6e 74 20 74 65 78 74 20  77 69 6c 6c 20 62 65 20  |nt text will be |
000031e0  0a 70 72 69 6e 74 65 64  20 6f 6e 20 74 68 65 20  |.printed on the |
000031f0  6e 65 78 74 20 6c 69 6e  65 20 69 6e 20 74 68 65  |next line in the|
00003200  20 77 69 6e 64 6f 77 2e  20 20 49 66 20 74 68 65  | window.  If the|
00003210  20 74 65 78 74 20 69 73  20 74 6f 6f 20 6c 6f 6e  | text is too lon|
00003220  67 20 66 6f 72 20 6f 6e  65 20 6c 69 6e 65 20 74  |g for one line t|
00003230  68 65 6e 20 69 74 20 77  69 6c 6c 20 0a 62 65 20  |hen it will .be |
00003240  73 70 6c 69 74 20 61 74  20 61 20 77 6f 72 64 20  |split at a word |
00003250  62 6f 75 6e 64 61 72 79  20 28 73 70 61 63 65 20  |boundary (space |
00003260  63 68 61 72 61 63 74 65  72 29 2e 0a 0a 54 68 65  |character)...The|
00003270  20 74 65 78 74 20 73 68  6f 75 6c 64 20 63 6f 6e  | text should con|
00003280  73 69 73 74 20 6f 66 20  20 73 69 6d 70 6c 65 20  |sist of  simple |
00003290  63 6f 6d 70 6c 65 74 65  20 45 6e 67 6c 69 73 68  |complete English|
000032a0  20 73 65 6e 74 65 6e 63  65 73 2c 20 65 61 63 68  | sentences, each|
000032b0  20 73 74 61 72 74 69 6e  67 20 6f 6e 20 61 20 0a  | starting on a .|
000032c0  6e 65 77 20 6c 69 6e 65  20 61 6e 64 20 65 6e 64  |new line and end|
000032d0  69 6e 67 20 77 69 74 68  20 61 20 66 75 6c 6c 20  |ing with a full |
000032e0  73 74 6f 70 2e 20 20 54  68 65 20 73 65 6e 74 65  |stop.  The sente|
000032f0  6e 63 65 73 20 73 68 6f  75 6c 64 20 75 73 75 61  |nces should usua|
00003300  6c 6c 79 20 62 65 20 73  69 6d 70 6c 65 20 0a 69  |lly be simple .i|
00003310  6d 70 65 72 61 74 69 76  65 73 20 6f 72 20 69 6e  |mperatives or in|
00003320  66 6f 72 6d 61 74 69 6f  6e 20 73 75 63 68 20 61  |formation such a|
00003330  73 3a 0a 0a 20 20 20 20  20 20 20 20 43 6c 69 63  |s:..        Clic|
00003340  6b 20 53 45 4c 45 43 54  20 74 6f 20 73 65 74 20  |k SELECT to set |
00003350  74 68 65 20 61 6c 61 72  6d 2e 0a 0a 20 20 20 20  |the alarm...    |
00003360  20 20 20 20 59 6f 75 20  61 72 65 20 69 6e 20 53  |    You are in S|
00003370  65 6c 65 63 74 20 6d 6f  64 65 2e 0a 0a 20 20 20  |elect mode...   |
00003380  20 20 20 20 20 43 6c 69  63 6b 20 41 44 4a 55 53  |     Click ADJUS|
00003390  54 20 74 6f 20 63 68 61  6e 67 65 20 74 6f 20 70  |T to change to p|
000033a0  61 74 68 20 65 64 69 74  20 6d 6f 64 65 2e 0a 0a  |ath edit mode...|
000033b0  20 20 20 20 20 20 20 20  54 68 69 73 20 69 73 20  |        This is |
000033c0  74 68 65 20 69 63 6f 6e  20 66 6f 72 20 45 64 69  |the icon for Edi|
000033d0  74 2e 0a 0a 49 6e 20 67  65 6e 65 72 61 6c 20 79  |t...In general y|
000033e0  6f 75 20 6e 65 65 64 20  6e 6f 74 20 6d 65 6e 74  |ou need not ment|
000033f0  69 6f 6e 20 6d 65 6e 75  20 65 6e 74 72 69 65 73  |ion menu entries|
00003400  2c 20 65 78 63 65 70 74  20 77 68 65 6e 20 73 70  |, except when sp|
00003410  65 63 69 66 69 63 20 6f  6e 65 73 20 69 6e 74 65  |ecific ones inte|
00003420  72 61 63 74 20 0a 77 69  74 68 20 70 6f 69 6e 74  |ract .with point|
00003430  65 72 20 6f 70 65 72 61  74 69 6f 6e 73 2e 20 20  |er operations.  |
00003440  41 73 20 61 20 67 65 6e  65 72 61 6c 20 72 75 6c  |As a general rul|
00003450  65 20 70 72 65 73 65 6e  74 20 69 6e 66 6f 72 6d  |e present inform|
00003460  61 74 69 6f 6e 20 6f 66  20 69 6e 74 65 72 65 73  |ation of interes|
00003470  74 20 74 6f 20 74 68 65  20 0a 62 65 67 69 6e 6e  |t to the .beginn|
00003480  65 72 20 6e 65 61 72 20  74 68 65 20 74 6f 70 2c  |er near the top,|
00003490  20 61 6e 64 20 65 78 70  65 72 74 20 74 69 70 73  | and expert tips|
000034a0  20 6f 72 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  | or information |
000034b0  6c 6f 77 65 72 20 64 6f  77 6e 2e 0a 0a 59 6f 75  |lower down...You|
000034c0  20 6d 75 73 74 20 75 73  65 20 74 68 65 20 74 65  | must use the te|
000034d0  72 6d 69 6e 6f 6c 6f 67  79 20 64 65 66 69 6e 65  |rminology define|
000034e0  64 2e 20 20 46 6f 72 20  6d 6f 75 73 65 20 6f 70  |d.  For mouse op|
000034f0  65 72 61 74 69 6f 6e 73  20 79 6f 75 20 6d 75 73  |erations you mus|
00003500  74 20 75 73 65 20 69 6e  69 74 69 61 6c 20 0a 63  |t use initial .c|
00003510  61 70 69 74 61 6c 73 20  28 66 6f 72 20 65 78 61  |apitals (for exa|
00003520  6d 70 6c 65 20 43 6c 69  63 6b 29 2e 20 20 54 68  |mple Click).  Th|
00003530  65 20 6d 6f 75 73 65 20  62 75 74 74 6f 6e 73 20  |e mouse buttons |
00003540  6d 75 73 74 20 62 65 20  69 6e 20 63 61 70 69 74  |must be in capit|
00003550  61 6c 73 20 28 66 6f 72  20 65 78 61 6d 70 6c 65  |als (for example|
00003560  20 0a 53 45 4c 45 43 54  29 2c 20 61 73 20 6d 75  | .SELECT), as mu|
00003570  73 74 20 6b 65 79 20 6e  61 6d 65 73 20 28 66 6f  |st key names (fo|
00003580  72 20 65 78 61 6d 70 6c  65 20 45 53 43 2c 20 52  |r example ESC, R|
00003590  45 54 55 52 4e 2c 20 53  48 49 46 54 2c 20 43 4f  |ETURN, SHIFT, CO|
000035a0  4e 54 52 4f 4c 2c 20 41  2c 20 42 2c 20 46 31 2c  |NTROL, A, B, F1,|
000035b0  20 0a 43 4f 50 59 29 2e  20 20 6d 69 73 73 20 6f  | .COPY).  miss o|
000035c0  75 74 20 73 70 65 65 64  75 70 73 20 61 6e 64 20  |ut speedups and |
000035d0  73 68 6f 72 74 63 75 74  73 20 2d 20 6a 75 73 74  |shortcuts - just|
000035e0  20 70 72 6f 76 69 64 65  20 65 6e 6f 75 67 68 20  | provide enough |
000035f0  74 6f 20 68 65 6c 70 20  61 20 62 65 67 69 6e 6e  |to help a beginn|
00003600  65 72 20 0a 77 69 74 68  6f 75 74 20 64 72 6f 77  |er .without drow|
00003610  6e 69 6e 67 20 74 68 65  6d 20 77 69 74 68 20 69  |ning them with i|
00003620  6e 66 6f 72 6d 61 74 69  6f 6e 2e 0a 0a 50 72 6f  |nformation...Pro|
00003630  76 69 64 65 20 69 6e 74  65 72 61 63 74 69 76 65  |vide interactive|
00003640  20 68 65 6c 70 20 74 68  6f 72 6f 75 67 68 6c 79  | help thoroughly|
00003650  20 2d 20 69 6e 63 6c 75  64 65 20 74 68 65 20 69  | - include the i|
00003660  63 6f 6e 20 62 61 72 2c  20 61 6e 64 20 74 68 65  |con bar, and the|
00003670  20 77 6f 72 6b 61 72 65  61 20 6f 66 20 61 6c 6c  | workarea of all|
00003680  20 0a 79 6f 75 72 20 77  69 6e 64 6f 77 73 2e 20  | .your windows. |
00003690  20 49 66 20 6e 6f 20 61  63 74 69 6f 6e 73 20 61  | If no actions a|
000036a0  72 65 20 70 6f 73 73 69  62 6c 65 20 69 6e 20 61  |re possible in a|
000036b0  20 77 69 6e 64 6f 77 2c  20 6a 75 73 74 0a 0a 20  | window, just.. |
000036c0  20 20 20 20 20 20 20 54  68 69 73 20 77 69 6e 64  |       This wind|
000036d0  6f 77 20 73 68 6f 77 73  2e 2e 2e 2e 0a 0a 69 66  |ow shows......if|
000036e0  20 62 65 74 74 65 72 20  74 68 61 6e 20 6e 6f 74  | better than not|
000036f0  68 69 6e 67 2e 0a 0a 59  6f 75 20 73 68 6f 75 6c  |hing...You shoul|
00003700  64 20 61 73 73 75 6d 65  20 61 20 75 73 65 72 20  |d assume a user |
00003710  6b 6e 6f 77 73 3a 0a 0a  20 20 20 20 20 20 20 20  |knows:..        |
00003720  77 68 61 74 20 61 20 4d  45 4e 55 20 6b 65 79 20  |what a MENU key |
00003730  69 73 0a 20 20 20 20 20  20 20 20 68 6f 77 20 74  |is.        how t|
00003740  6f 20 6e 61 76 69 67 61  74 65 20 6d 65 6e 75 20  |o navigate menu |
00003750  74 72 65 65 73 20 61 6e  64 20 63 68 6f 6f 73 65  |trees and choose|
00003760  20 65 6e 74 72 69 65 73  0a 20 20 20 20 20 20 20  | entries.       |
00003770  20 77 68 61 74 20 74 68  65 20 69 63 6f 6e 20 62  | what the icon b|
00003780  61 72 20 69 73 0a 20 20  20 20 20 20 20 20 68 6f  |ar is.        ho|
00003790  77 20 74 6f 20 6d 6f 76  65 2f 73 69 7a 65 2f 74  |w to move/size/t|
000037a0  6f 67 67 6c 65 2f 63 6c  6f 73 65 20 77 69 6e 64  |oggle/close wind|
000037b0  6f 77 73 2c 20 61 6e 64  20 73 6f 20 6f 6e 0a 20  |ows, and so on. |
000037c0  20 20 20 20 20 20 20 77  68 61 74 20 27 64 72 61  |       what 'dra|
000037d0  67 67 69 6e 67 20 61 6e  20 69 63 6f 6e 27 20 6d  |gging an icon' m|
000037e0  65 61 6e 73 0a 20 20 20  20 20 20 20 20 77 68 61  |eans.        wha|
000037f0  74 20 27 66 69 6c 6c 69  6e 67 20 69 6e 20 61 20  |t 'filling in a |
00003800  66 69 65 6c 64 27 20 28  77 72 69 74 61 62 6c 65  |field' (writable|
00003810  20 69 63 6f 6e 29 20 6d  65 61 6e 73 0a 0a 0a 0a  | icon) means....|
00003820  0a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.***************|
00003830  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 20 54 68  |************* Th|
00003840  65 20 53 57 49 20 43 61  6c 6c 73 20 2a 2a 2a 2a  |e SWI Calls ****|
00003850  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00003860  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0a 0a 57  |*************..W|
00003870  69 6d 70 5f 42 6f 72 64  65 72 49 63 6f 6e 20 28  |imp_BorderIcon (|
00003880  53 57 49 20 26 38 31 36  38 30 29 0a 0a 52 31 20  |SWI &81680)..R1 |
00003890  3d 20 70 6f 69 6e 74 65  72 20 74 6f 20 62 6c 6f  |= pointer to blo|
000038a0  63 6b 0a 52 31 20 70 72  65 73 65 72 76 65 64 0a  |ck.R1 preserved.|
000038b0  0a 49 6e 74 65 72 72 75  70 74 73 20 61 72 65 20  |.Interrupts are |
000038c0  6e 6f 74 20 64 65 66 69  6e 65 64 0a 46 61 73 74  |not defined.Fast|
000038d0  20 69 6e 74 65 72 72 75  70 74 73 20 61 72 65 20  | interrupts are |
000038e0  65 6e 61 62 6c 65 64 0a  0a 50 72 6f 63 65 73 73  |enabled..Process|
000038f0  6f 72 20 69 73 20 69 6e  20 53 56 43 20 6d 6f 64  |or is in SVC mod|
00003900  65 0a 0a 53 57 49 20 69  73 20 6e 6f 74 20 72 65  |e..SWI is not re|
00003910  2d 65 6e 74 72 61 6e 74  0a 0a 54 68 65 20 62 6c  |-entrant..The bl|
00003920  6f 63 6b 20 63 6f 6e 74  61 69 6e 73 20 74 68 65  |ock contains the|
00003930  20 66 6f 6c 6c 6f 77 69  6e 67 20 6f 6e 20 65 6e  | following on en|
00003940  74 72 79 3a 0a 0a 20 20  20 20 20 20 20 20 52 31  |try:..        R1|
00003950  2b 30 20 20 20 20 6d 6f  75 73 65 20 78 20 28 73  |+0    mouse x (s|
00003960  63 72 65 65 6e 20 63 6f  6f 72 64 69 6e 61 74 65  |creen coordinate|
00003970  73 20 2d 20 6e 6f 74 20  77 69 6e 64 6f 77 20 72  |s - not window r|
00003980  65 6c 61 74 69 76 65 29  0a 20 20 20 20 20 20 20  |elative).       |
00003990  20 52 31 2b 34 20 20 20  20 6d 6f 75 73 65 20 79  | R1+4    mouse y|
000039a0  0a 20 20 20 20 20 20 20  20 52 31 2b 38 20 20 20  |.        R1+8   |
000039b0  20 62 75 74 74 6f 6e 73  20 28 64 65 70 65 6e 64  | buttons (depend|
000039c0  69 6e 67 20 6f 6e 20 69  63 6f 6e 20 62 75 74 74  |ing on icon butt|
000039d0  6f 6e 20 74 79 70 65 29  0a 20 20 20 20 20 20 20  |on type).       |
000039e0  20 52 31 2b 31 32 20 20  20 77 69 6e 64 6f 77 20  | R1+12   window |
000039f0  68 61 6e 64 6c 65 0a 20  20 20 20 20 20 20 20 52  |handle.        R|
00003a00  31 2b 31 36 20 20 20 69  63 6f 6e 20 68 61 6e 64  |1+16   icon hand|
00003a10  6c 65 20 20 0a 0a 54 68  69 73 20 63 61 6c 6c 20  |le  ..This call |
00003a20  69 73 20 75 73 65 64 20  74 6f 20 75 70 64 61 74  |is used to updat|
00003a30  65 20 61 6e 20 69 63 6f  6e 73 20 62 6f 72 64 65  |e an icons borde|
00003a40  72 2e 20 20 49 74 20 69  73 20 74 79 70 69 63 61  |r.  It is typica|
00003a50  6c 6c 79 20 63 61 6c 6c  65 64 20 61 73 20 61 20  |lly called as a |
00003a60  72 65 73 75 6c 74 20 6f  66 20 61 20 0a 4d 6f 75  |result of a .Mou|
00003a70  73 65 5f 43 6c 69 63 6b  20 65 76 65 6e 74 2c 20  |se_Click event, |
00003a80  69 66 20 74 68 65 20 69  63 6f 6e 20 68 61 73 20  |if the icon has |
00003a90  61 20 62 6f 72 64 65 72  20 74 79 70 65 20 6f 66  |a border type of|
00003aa0  20 30 20 6f 72 20 32 20  74 68 65 6e 20 74 68 65  | 0 or 2 then the|
00003ab0  20 69 63 6f 6e 20 77 69  6c 6c 20 73 6c 61 62 20  | icon will slab |
00003ac0  0a 69 6e 77 61 72 64 73  2e 20 20 54 68 65 20 66  |.inwards.  The f|
00003ad0  6f 72 6d 61 74 20 6f 66  20 74 68 65 20 76 61 6c  |ormat of the val|
00003ae0  69 64 61 74 69 6f 6e 20  73 74 72 69 6e 67 20 69  |idation string i|
00003af0  73 20 64 65 73 63 72 69  62 65 64 20 6e 20 74 68  |s described n th|
00003b00  65 20 70 72 65 76 69 6f  75 73 20 73 65 63 74 69  |e previous secti|
00003b10  6f 6e 2e 0a 0a 54 68 65  20 61 70 70 6c 69 63 61  |on...The applica|
00003b20  74 69 6f 6e 20 73 68 6f  75 6c 64 20 74 68 65 20  |tion should the |
00003b30  70 65 72 66 6f 72 6d 20  74 68 65 20 74 61 73 6b  |perform the task|
00003b40  20 61 6e 64 20 74 68 65  6e 20 66 6f 72 63 65 20  | and then force |
00003b50  74 68 65 20 69 63 6f 6e  20 74 6f 20 6e 6f 72 6d  |the icon to norm|
00003b60  61 6c 20 73 74 61 74 75  73 20 0a 62 79 20 63 61  |al status .by ca|
00003b70  6c 6c 69 6e 67 20 57 69  6d 70 5f 42 6f 72 64 65  |lling Wimp_Borde|
00003b80  72 49 63 6f 6e 20 28 53  57 49 20 26 38 31 36 38  |rIcon (SWI &8168|
00003b90  30 29 20 77 69 74 68 20  52 31 2b 38 20 73 65 74  |0) with R1+8 set|
00003ba0  20 74 6f 20 30 2e 0a 0a  54 68 65 20 63 6f 64 65  | to 0...The code|
00003bb0  20 74 6f 20 62 6f 72 64  65 72 20 69 63 6f 6e 73  | to border icons|
00003bc0  20 61 6e 64 20 77 69 6e  64 6f 77 73 20 69 73 20  | and windows is |
00003bd0  6f 75 74 6c 69 6e 65 64  20 69 6e 20 74 68 65 20  |outlined in the |
00003be0  73 65 63 74 69 6f 6e 20  50 72 6f 67 72 61 6d 6d  |section Programm|
00003bf0  69 6e 67 20 0a 49 6e 74  65 72 66 61 63 65 2e 20  |ing .Interface. |
00003c00  0a 0a 4e 6f 74 65 20 74  68 61 74 20 74 68 65 20  |..Note that the |
00003c10  6d 6f 75 73 65 20 63 6f  6f 72 64 69 6e 61 74 65  |mouse coordinate|
00003c20  73 20 73 70 65 63 69 66  69 65 64 20 69 6e 20 52  |s specified in R|
00003c30  31 2b 30 20 61 6e 64 20  52 31 2b 34 20 61 72 65  |1+0 and R1+4 are|
00003c40  20 6e 6f 74 20 75 73 65  64 20 62 79 20 74 68 65  | not used by the|
00003c50  20 0a 53 57 49 20 61 6e  64 20 61 72 65 20 6f 6e  | .SWI and are on|
00003c60  6c 79 20 70 72 65 73 65  6e 74 20 74 6f 20 6d 61  |ly present to ma|
00003c70  6b 65 20 74 68 65 20 62  6c 6f 63 6b 20 63 6f 6d  |ke the block com|
00003c80  70 61 74 69 62 6c 65 20  77 69 74 68 20 61 20 4d  |patible with a M|
00003c90  6f 75 73 65 5f 43 6c 69  63 6b 20 65 76 65 6e 74  |ouse_Click event|
00003ca0  20 0a 62 6c 6f 63 6b 2e  0a 0a 57 69 6d 70 5f 42  | .block...Wimp_B|
00003cb0  6f 72 64 65 72 57 69 6e  64 6f 77 20 28 53 57 49  |orderWindow (SWI|
00003cc0  20 26 38 31 36 38 31 29  0a 0a 4e 6f 6e 65 0a 0a  | &81681)..None..|
00003cd0  0a 0a 0a 0a 57 69 6d 70  5f 42 6f 72 64 65 72 57  |....Wimp_BorderW|
00003ce0  69 6e 64 6f 77 20 28 53  57 49 20 26 38 31 36 38  |indow (SWI &8168|
00003cf0  31 29 0a 0a 52 31 20 3d  20 70 6f 69 6e 74 65 72  |1)..R1 = pointer|
00003d00  20 74 6f 20 62 6c 6f 63  6b 0a 52 31 20 70 72 65  | to block.R1 pre|
00003d10  73 65 72 76 65 64 0a 0a  49 6e 74 65 72 72 75 70  |served..Interrup|
00003d20  74 73 20 61 72 65 20 6e  6f 74 20 64 65 66 69 6e  |ts are not defin|
00003d30  65 64 0a 46 61 73 74 20  69 6e 74 65 72 72 75 70  |ed.Fast interrup|
00003d40  74 73 20 61 72 65 20 65  6e 61 62 6c 65 64 0a 0a  |ts are enabled..|
00003d50  50 72 6f 63 65 73 73 6f  72 20 69 73 20 69 6e 20  |Processor is in |
00003d60  53 56 43 20 6d 6f 64 65  0a 0a 53 57 49 20 69 73  |SVC mode..SWI is|
00003d70  20 6e 6f 74 20 72 65 2d  65 6e 74 72 61 6e 74 0a  | not re-entrant.|
00003d80  0a 54 68 65 20 62 6c 6f  63 6b 20 63 6f 6e 74 61  |.The block conta|
00003d90  69 6e 73 20 74 68 65 20  66 6f 6c 6c 6f 77 69 6e  |ins the followin|
00003da0  67 20 6f 6e 20 65 6e 74  72 79 3a 0a 0a 20 20 20  |g on entry:..   |
00003db0  20 20 20 20 20 52 31 2b  30 20 20 20 20 77 69 6e  |     R1+0    win|
00003dc0  64 6f 77 20 68 61 6e 64  6c 65 0a 20 20 20 20 20  |dow handle.     |
00003dd0  20 20 20 52 31 2b 34 20  20 20 20 76 69 73 69 62  |   R1+4    visib|
00003de0  6c 65 20 61 72 65 61 20  6d 69 6e 69 6d 75 6d 20  |le area minimum |
00003df0  78 20 63 6f 6f 72 64 69  6e 61 74 65 0a 20 20 20  |x coordinate.   |
00003e00  20 20 20 20 20 52 31 2b  38 20 20 20 20 76 69 73  |     R1+8    vis|
00003e10  69 62 6c 65 20 61 72 65  61 20 6d 69 6e 69 6d 75  |ible area minimu|
00003e20  6d 20 79 20 63 6f 6f 72  64 69 6e 61 74 65 0a 20  |m y coordinate. |
00003e30  20 20 20 20 20 20 20 52  31 2b 31 32 20 20 20 76  |       R1+12   v|
00003e40  69 73 69 62 6c 65 20 61  72 65 61 20 6d 61 78 69  |isible area maxi|
00003e50  6d 75 6d 20 78 20 63 6f  6f 72 64 69 6e 61 74 65  |mum x coordinate|
00003e60  0a 20 20 20 20 20 20 20  20 52 31 2b 31 36 20 20  |.        R1+16  |
00003e70  20 76 69 73 69 62 6c 65  20 61 72 65 61 20 6d 61  | visible area ma|
00003e80  78 69 6d 75 6d 20 79 20  63 6f 6f 72 64 69 6e 61  |ximum y coordina|
00003e90  74 65 0a 20 20 20 20 20  20 20 20 52 31 2b 32 30  |te.        R1+20|
00003ea0  20 20 20 73 63 72 6f 6c  6c 20 78 20 6f 66 66 73  |   scroll x offs|
00003eb0  65 74 20 72 65 6c 61 74  69 76 65 20 74 6f 20 77  |et relative to w|
00003ec0  6f 72 6b 20 61 72 65 61  20 6f 72 69 67 69 6e 0a  |ork area origin.|
00003ed0  20 20 20 20 20 20 20 20  52 31 2b 32 34 20 20 20  |        R1+24   |
00003ee0  73 63 72 6f 6c 6c 20 79  20 6f 66 66 73 65 74 20  |scroll y offset |
00003ef0  72 65 6c 61 74 69 76 65  20 74 6f 20 77 6f 72 6b  |relative to work|
00003f00  20 61 72 65 61 20 6f 72  69 67 69 6e 0a 20 20 20  | area origin.   |
00003f10  20 20 20 20 20 52 31 2b  32 38 20 20 20 63 75 72  |     R1+28   cur|
00003f20  72 65 6e 74 20 67 72 61  70 68 69 63 73 20 77 69  |rent graphics wi|
00003f30  6e 64 6f 77 20 6d 69 6e  69 6d 75 6d 20 78 20 63  |ndow minimum x c|
00003f40  6f 6f 72 64 69 6e 61 74  65 0a 20 20 20 20 20 20  |oordinate.      |
00003f50  20 20 52 31 2b 33 32 20  20 20 63 75 72 72 65 6e  |  R1+32   curren|
00003f60  74 20 67 72 61 70 68 69  63 73 20 77 69 6e 64 6f  |t graphics windo|
00003f70  77 20 6d 69 6e 69 6d 75  6d 20 79 20 63 6f 6f 72  |w minimum y coor|
00003f80  64 69 6e 61 74 65 0a 20  20 20 20 20 20 20 20 52  |dinate.        R|
00003f90  31 2b 33 36 20 20 20 63  75 72 72 65 6e 74 20 67  |1+36   current g|
00003fa0  72 61 70 68 69 63 73 20  77 69 6e 64 6f 77 20 6d  |raphics window m|
00003fb0  61 78 69 6d 75 6d 20 78  20 63 6f 6f 72 64 69 6e  |aximum x coordin|
00003fc0  61 74 65 0a 20 20 20 20  20 20 20 20 52 31 2b 34  |ate.        R1+4|
00003fd0  30 20 20 20 63 75 72 72  65 6e 74 20 67 72 61 70  |0   current grap|
00003fe0  68 69 63 73 20 77 69 6e  64 6f 77 20 6d 61 78 69  |hics window maxi|
00003ff0  6d 75 6d 20 79 20 63 6f  6f 72 64 69 6e 61 74 65  |mum y coordinate|
00004000  0a 0a 54 68 69 73 20 63  61 6c 6c 20 69 73 20 75  |..This call is u|
00004010  73 65 64 20 74 6f 20 72  65 64 72 61 77 20 74 68  |sed to redraw th|
00004020  65 20 62 6f 72 64 65 72  73 20 6f 66 20 69 63 6f  |e borders of ico|
00004030  6e 73 20 69 6e 20 74 68  65 20 77 69 6e 64 6f 77  |ns in the window|
00004040  20 74 68 61 74 20 61 72  65 20 6e 6f 74 20 75 70  | that are not up|
00004050  2d 74 6f 2d 64 61 74 65  2c 20 20 0a 74 68 69 73  |-to-date,  .this|
00004060  20 53 57 49 20 69 73 20  74 79 70 69 63 61 6c 6c  | SWI is typicall|
00004070  79 20 63 61 6c 6c 65 64  20 64 75 72 69 6e 67 20  |y called during |
00004080  74 68 65 20 72 65 64 72  61 77 20 6c 6f 6f 70 20  |the redraw loop |
00004090  6f 66 20 61 20 77 69 6e  64 6f 77 2e 20 20 54 68  |of a window.  Th|
000040a0  65 20 53 57 49 20 77 69  6c 6c 20 0a 75 70 64 61  |e SWI will .upda|
000040b0  74 65 20 74 68 65 20 77  69 6e 64 6f 77 2c 20 64  |te the window, d|
000040c0  72 61 77 69 6e 67 20 62  6f 72 64 65 72 73 20 61  |rawing borders a|
000040d0  72 6f 75 6e 64 20 61 6e  79 20 69 63 6f 6e 73 20  |round any icons |
000040e0  77 68 69 63 68 20 68 61  76 65 20 74 68 65 20 62  |which have the b|
000040f0  20 63 6f 6d 6d 61 6e 64  20 0a 73 70 65 63 69 66  | command .specif|
00004100  69 65 64 20 69 6e 20 74  68 65 20 76 61 6c 69 64  |ied in the valid|
00004110  61 74 69 6f 6e 20 73 74  72 69 6e 67 20 61 6e 64  |ation string and|
00004120  20 61 72 65 20 77 69 74  68 69 6e 20 74 68 65 20  | are within the |
00004130  73 70 65 63 69 66 69 65  64 20 67 72 61 70 68 69  |specified graphi|
00004140  63 73 20 77 69 6e 64 6f  77 2e 0a 0a 54 68 65 20  |cs window...The |
00004150  63 6f 64 65 20 74 6f 20  62 6f 72 64 65 72 20 69  |code to border i|
00004160  63 6f 6e 73 20 61 6e 64  20 77 69 6e 64 6f 77 73  |cons and windows|
00004170  20 69 73 20 6f 75 74 6c  69 6e 65 64 20 69 6e 20  | is outlined in |
00004180  74 68 65 20 73 65 63 74  69 6f 6e 20 50 72 6f 67  |the section Prog|
00004190  72 61 6d 6d 69 6e 67 20  0a 49 6e 74 65 72 66 61  |ramming .Interfa|
000041a0  63 65 2e 20 0a 0a 57 69  6d 70 5f 42 6f 72 64 65  |ce. ..Wimp_Borde|
000041b0  72 49 63 6f 6e 20 28 53  57 49 20 26 38 31 36 38  |rIcon (SWI &8168|
000041c0  30 29 0a 0a 4e 6f 6e 65  20 0a 0a 0a 0a 0a 57 69  |0)..None .....Wi|
000041d0  6d 70 5f 43 6c 61 69 6d  49 6e 74 65 72 66 61 63  |mp_ClaimInterfac|
000041e0  65 20 28 53 57 49 20 26  38 31 36 38 32 29 0a 0a  |e (SWI &81682)..|
000041f0  52 30 20 3d 20 74 61 73  6b 20 68 61 6e 64 6c 65  |R0 = task handle|
00004200  0a 52 30 20 70 72 65 73  65 72 76 65 64 0a 0a 49  |.R0 preserved..I|
00004210  6e 74 65 72 72 75 70 74  73 20 61 72 65 20 6e 6f  |nterrupts are no|
00004220  74 20 64 65 66 69 6e 65  64 0a 46 61 73 74 20 69  |t defined.Fast i|
00004230  6e 74 65 72 72 75 70 74  73 20 61 72 65 20 65 6e  |nterrupts are en|
00004240  61 62 6c 65 64 0a 0a 50  72 6f 63 65 73 73 6f 72  |abled..Processor|
00004250  20 69 73 20 69 6e 20 53  56 43 20 6d 6f 64 65 0a  | is in SVC mode.|
00004260  0a 53 57 49 20 69 73 20  6e 6f 74 20 72 65 2d 65  |.SWI is not re-e|
00004270  6e 74 72 61 6e 74 0a 0a  54 68 69 73 20 53 57 49  |ntrant..This SWI|
00004280  20 61 6c 6c 6f 77 73 20  79 6f 75 72 20 61 70 70  | allows your app|
00004290  6c 69 63 61 74 69 6f 6e  20 74 6f 20 75 73 65 20  |lication to use |
000042a0  70 6f 69 6e 74 65 72 73  20 76 69 61 20 74 68 65  |pointers via the|
000042b0  20 49 6e 74 65 72 66 61  63 65 20 6d 6f 64 75 6c  | Interface modul|
000042c0  65 2e 20 20 54 68 69 73  20 0a 53 57 49 20 73 68  |e.  This .SWI sh|
000042d0  6f 75 6c 64 20 62 65 20  63 61 6c 6c 65 64 20 61  |ould be called a|
000042e0  74 20 74 68 65 20 62 65  67 69 6e 6e 69 6e 67 20  |t the beginning |
000042f0  6f 66 20 79 6f 75 72 20  70 72 6f 67 72 61 6d 2e  |of your program.|
00004300  20 20 49 66 20 79 6f 75  20 64 6f 6e 27 74 20 75  |  If you don't u|
00004310  73 65 20 0a 57 69 6d 70  5f 43 6c 61 69 6d 49 6e  |se .Wimp_ClaimIn|
00004320  74 65 72 66 61 63 65 20  74 68 65 6e 20 79 6f 75  |terface then you|
00004330  72 20 70 6f 69 6e 74 65  72 73 20 77 69 6c 6c 20  |r pointers will |
00004340  6e 6f 74 20 62 65 20 64  69 73 70 6c 61 79 65 64  |not be displayed|
00004350  2e 0a 0a 57 69 6d 70 5f  52 65 6c 65 61 73 65 49  |...Wimp_ReleaseI|
00004360  6e 74 65 72 66 61 63 65  20 28 53 57 49 20 26 38  |nterface (SWI &8|
00004370  31 36 38 33 29 0a 0a 4e  6f 6e 65 0a 0a 0a 0a 0a  |1683)..None.....|
00004380  57 69 6d 70 5f 52 65 6c  65 61 73 65 49 6e 74 65  |Wimp_ReleaseInte|
00004390  72 66 61 63 65 20 28 53  57 49 20 26 38 31 36 38  |rface (SWI &8168|
000043a0  33 29 0a 0a 52 30 20 3d  20 74 61 73 6b 20 68 61  |3)..R0 = task ha|
000043b0  6e 64 6c 65 0a 52 30 20  70 72 65 73 65 72 76 65  |ndle.R0 preserve|
000043c0  64 0a 0a 49 6e 74 65 72  72 75 70 74 73 20 61 72  |d..Interrupts ar|
000043d0  65 20 6e 6f 74 20 64 65  66 69 6e 65 64 0a 46 61  |e not defined.Fa|
000043e0  73 74 20 69 6e 74 65 72  72 75 70 74 73 20 61 72  |st interrupts ar|
000043f0  65 20 65 6e 61 62 6c 65  64 0a 0a 50 72 6f 63 65  |e enabled..Proce|
00004400  73 73 6f 72 20 69 73 20  69 6e 20 53 56 43 20 6d  |ssor is in SVC m|
00004410  6f 64 65 0a 0a 53 57 49  20 69 73 20 6e 6f 74 20  |ode..SWI is not |
00004420  72 65 2d 65 6e 74 72 61  6e 74 0a 0a 54 68 69 73  |re-entrant..This|
00004430  20 53 57 49 20 73 74 6f  70 73 20 79 6f 75 72 20  | SWI stops your |
00004440  61 70 70 6c 69 63 61 74  69 6f 6e 20 66 72 6f 6d  |application from|
00004450  20 75 73 69 6e 67 20 70  6f 69 6e 74 65 72 73 2e  | using pointers.|
00004460  20 20 57 68 65 6e 20 74  68 69 73 20 53 57 49 20  |  When this SWI |
00004470  69 73 20 63 61 6c 6c 65  64 20 0a 49 6e 74 65 72  |is called .Inter|
00004480  66 61 63 65 20 4d 61 6e  61 67 65 72 20 77 69 6c  |face Manager wil|
00004490  6c 20 65 72 61 73 65 20  61 6e 79 20 77 6f 72 6b  |l erase any work|
000044a0  61 72 65 61 20 70 6f 69  6e 74 65 72 73 20 61 73  |area pointers as|
000044b0  73 69 67 6e 65 64 20 74  6f 20 79 6f 75 72 20 61  |signed to your a|
000044c0  70 70 6c 69 63 61 74 69  6f 6e 20 61 6e 64 20 0a  |pplication and .|
000044d0  66 72 65 65 20 74 68 65  20 6d 65 6d 6f 72 79 2e  |free the memory.|
000044e0  20 20 54 68 69 73 20 73  68 6f 75 6c 64 20 62 65  |  This should be|
000044f0  20 63 61 6c 6c 65 64 20  69 6e 20 79 6f 75 72 20  | called in your |
00004500  65 78 69 74 20 68 61 6e  64 6c 65 72 2c 20 61 6c  |exit handler, al|
00004510  73 6f 20 69 66 20 61 6e  20 65 72 72 6f 72 20 6f  |so if an error o|
00004520  63 63 75 72 73 20 0a 79  6f 75 20 73 68 6f 75 6c  |ccurs .you shoul|
00004530  64 20 61 6c 73 6f 20 63  61 6c 6c 20 74 68 69 73  |d also call this|
00004540  20 53 57 49 20 74 6f 20  73 74 6f 70 20 6f 74 68  | SWI to stop oth|
00004550  65 72 20 61 70 70 6c 69  63 61 74 69 6f 6e 73 20  |er applications |
00004560  66 72 6f 6d 20 67 61 69  6e 69 6e 67 20 79 6f 75  |from gaining you|
00004570  72 20 70 6f 69 6e 74 65  72 73 2e 0a 0a 57 69 6d  |r pointers...Wim|
00004580  70 5f 43 6c 61 69 6d 49  6e 74 65 72 66 61 63 65  |p_ClaimInterface|
00004590  20 28 53 57 49 20 26 38  31 36 38 32 29 0a 0a 4e  | (SWI &81682)..N|
000045a0  6f 6e 65 0a 0a 0a 0a 0a  57 69 6d 70 5f 53 65 74  |one.....Wimp_Set|
000045b0  57 6f 72 6b 61 72 65 61  50 6f 69 6e 74 65 72 20  |WorkareaPointer |
000045c0  28 53 57 49 20 26 38 31  36 38 34 29 0a 0a 52 31  |(SWI &81684)..R1|
000045d0  20 3d 20 70 6f 69 6e 74  65 72 20 74 6f 20 62 6c  | = pointer to bl|
000045e0  6f 63 6b 0a 52 31 20 70  72 65 73 65 72 76 65 64  |ock.R1 preserved|
000045f0  0a 0a 49 6e 74 65 72 72  75 70 74 20 73 74 61 74  |..Interrupt stat|
00004600  75 73 20 69 73 20 75 6e  64 65 66 69 6e 65 64 0a  |us is undefined.|
00004610  46 61 73 74 20 69 6e 74  65 72 72 75 70 74 73 20  |Fast interrupts |
00004620  61 72 65 20 65 6e 61 62  6c 65 64 0a 0a 50 72 6f  |are enabled..Pro|
00004630  63 65 73 73 6f 72 20 69  73 20 69 6e 20 53 56 43  |cessor is in SVC|
00004640  20 6d 6f 64 65 0a 0a 53  57 49 20 69 73 20 6e 6f  | mode..SWI is no|
00004650  74 20 72 65 2d 65 6e 74  72 61 6e 74 0a 0a 54 68  |t re-entrant..Th|
00004660  65 20 62 6c 6f 63 6b 20  63 6f 6e 74 61 69 6e 73  |e block contains|
00004670  20 74 68 65 20 66 6f 6c  6c 6f 77 69 6e 67 20 6f  | the following o|
00004680  6e 20 65 6e 74 72 79 3a  0a 0a 20 20 20 20 20 20  |n entry:..      |
00004690  20 20 52 31 2b 30 20 20  20 20 77 69 6e 64 6f 77  |  R1+0    window|
000046a0  20 68 61 6e 64 6c 65 0a  20 20 20 20 20 20 20 20  | handle.        |
000046b0  52 31 2b 34 20 20 20 20  6d 69 6e 69 6d 75 6d 20  |R1+4    minimum |
000046c0  78 20 63 6f 6f 72 64 69  6e 61 74 65 20 6f 66 20  |x coordinate of |
000046d0  62 6f 75 6e 64 69 6e 67  20 62 6f 78 0a 20 20 20  |bounding box.   |
000046e0  20 20 20 20 20 52 31 2b  38 20 20 20 20 6d 69 6e  |     R1+8    min|
000046f0  69 6d 75 6d 20 79 20 63  6f 6f 72 64 69 6e 61 74  |imum y coordinat|
00004700  65 20 6f 66 20 62 6f 75  6e 64 69 6e 67 20 62 6f  |e of bounding bo|
00004710  78 0a 20 20 20 20 20 20  20 20 52 31 2b 31 32 20  |x.        R1+12 |
00004720  20 20 6d 61 78 69 6d 75  6d 20 78 20 63 6f 6f 72  |  maximum x coor|
00004730  64 69 6e 61 74 65 20 6f  66 20 62 6f 75 6e 64 69  |dinate of boundi|
00004740  6e 67 20 62 6f 78 0a 20  20 20 20 20 20 20 20 52  |ng box.        R|
00004750  31 2b 31 36 20 20 20 6d  61 78 69 6d 75 6d 20 79  |1+16   maximum y|
00004760  20 63 6f 6f 72 64 69 6e  61 74 65 20 6f 66 20 62  | coordinate of b|
00004770  6f 75 6e 64 69 6e 67 20  62 6f 78 0a 20 20 20 20  |ounding box.    |
00004780  20 20 20 20 52 31 2b 32  30 20 20 20 32 34 20 62  |    R1+20   24 b|
00004790  79 74 65 73 20 6f 66 20  70 6f 69 6e 74 65 72 20  |ytes of pointer |
000047a0  64 61 74 61 0a 0a 54 68  69 73 20 73 70 65 63 69  |data..This speci|
000047b0  66 69 65 73 20 74 68 65  20 70 6f 69 6e 74 65 72  |fies the pointer|
000047c0  20 66 6f 72 20 61 6e 20  61 72 65 61 20 6f 66 20  | for an area of |
000047d0  74 68 65 20 77 69 6e 64  6f 77 2e 0a 54 68 65 20  |the window..The |
000047e0  62 6f 75 6e 64 69 6e 67  20 62 6f 78 20 63 6f 6f  |bounding box coo|
000047f0  72 64 69 6e 61 74 65 73  20 61 72 65 20 67 69 76  |rdinates are giv|
00004800  65 6e 20 72 65 6c 61 74  69 76 65 20 74 6f 20 74  |en relative to t|
00004810  68 65 20 77 69 6e 64 6f  77 27 73 20 77 6f 72 6b  |he window's work|
00004820  20 61 72 65 61 20 6f 72  69 67 69 6e 2e 20 20 0a  | area origin.  .|
00004830  52 31 2b 34 20 74 6f 20  52 31 2b 31 36 20 63 61  |R1+4 to R1+16 ca|
00004840  6e 20 62 65 20 73 65 74  20 74 6f 20 2d 31 20 74  |n be set to -1 t|
00004850  6f 20 73 70 65 63 69 66  79 20 74 68 65 20 77 68  |o specify the wh|
00004860  6f 6c 65 20 6f 66 20 74  68 65 20 77 69 6e 64 6f  |ole of the windo|
00004870  77 27 73 20 77 6f 72 6b  20 61 72 65 61 2e 0a 54  |w's work area..T|
00004880  68 65 20 70 6f 69 6e 74  65 72 20 64 61 74 61 20  |he pointer data |
00004890  61 74 20 2b 32 30 20 74  6f 20 2b 34 34 20 63 6f  |at +20 to +44 co|
000048a0  6e 74 61 69 6e 73 20 74  68 65 20 73 70 72 69 74  |ntains the sprit|
000048b0  65 20 6e 61 6d 65 20 61  6e 64 20 61 6e 79 20 78  |e name and any x|
000048c0  2c 20 79 20 6f 66 66 73  65 74 2c 20 73 65 65 20  |, y offset, see |
000048d0  0a 76 61 6c 69 64 61 74  69 6f 6e 20 73 74 72 69  |.validation stri|
000048e0  6e 67 73 20 66 6f 72 20  6d 6f 72 65 20 69 6e 66  |ngs for more inf|
000048f0  6f 72 6d 61 74 69 6f 6e  2e 0a 0a 57 69 6d 70 5f  |ormation...Wimp_|
00004900  52 65 6d 6f 76 65 57 6f  72 6b 61 72 65 61 50 6f  |RemoveWorkareaPo|
00004910  69 6e 74 65 72 20 28 53  57 49 20 26 38 31 36 38  |inter (SWI &8168|
00004920  35 29 0a 57 69 6d 70 5f  50 6f 6c 6c 50 6f 69 6e  |5).Wimp_PollPoin|
00004930  74 65 72 20 28 53 57 49  20 26 38 31 36 38 36 29  |ter (SWI &81686)|
00004940  0a 0a 4e 6f 6e 65 0a 0a  0a 0a 0a 0a 57 69 6d 70  |..None......Wimp|
00004950  5f 52 65 6d 6f 76 65 57  6f 72 6b 61 72 65 61 50  |_RemoveWorkareaP|
00004960  6f 69 6e 74 65 72 20 28  53 57 49 20 26 38 31 36  |ointer (SWI &816|
00004970  38 35 29 0a 0a 52 30 20  3d 20 74 61 73 6b 20 68  |85)..R0 = task h|
00004980  61 6e 64 6c 65 0a 52 31  20 3d 20 70 6f 69 6e 74  |andle.R1 = point|
00004990  65 72 20 74 6f 20 62 6c  6f 63 6b 0a 0a 52 30 20  |er to block..R0 |
000049a0  70 72 65 73 65 72 76 65  64 0a 52 31 20 70 72 65  |preserved.R1 pre|
000049b0  73 65 72 76 65 64 0a 0a  49 6e 74 65 72 72 75 70  |served..Interrup|
000049c0  74 20 73 74 61 74 75 73  20 69 73 20 75 6e 64 65  |t status is unde|
000049d0  66 69 6e 65 64 0a 46 61  73 74 20 69 6e 74 65 72  |fined.Fast inter|
000049e0  72 75 70 74 73 20 61 72  65 20 65 6e 61 62 6c 65  |rupts are enable|
000049f0  64 0a 0a 50 72 6f 63 65  73 73 6f 72 20 69 73 20  |d..Processor is |
00004a00  69 6e 20 53 56 43 20 6d  6f 64 65 0a 0a 53 57 49  |in SVC mode..SWI|
00004a10  20 69 73 20 6e 6f 74 20  72 65 2d 65 6e 74 72 61  | is not re-entra|
00004a20  6e 74 0a 0a 54 68 65 20  62 6c 6f 63 6b 20 63 6f  |nt..The block co|
00004a30  6e 74 61 69 6e 73 20 74  68 65 20 66 6f 6c 6c 6f  |ntains the follo|
00004a40  77 69 6e 67 20 6f 6e 20  65 6e 74 72 79 3a 0a 0a  |wing on entry:..|
00004a50  20 20 20 20 20 20 20 20  52 31 2b 30 20 20 20 20  |        R1+0    |
00004a60  77 69 6e 64 6f 77 20 68  61 6e 64 6c 65 0a 20 20  |window handle.  |
00004a70  20 20 20 20 20 20 52 31  2b 34 20 20 20 20 6d 69  |      R1+4    mi|
00004a80  6e 69 6d 75 6d 20 78 20  63 6f 6f 72 64 69 6e 61  |nimum x coordina|
00004a90  74 65 20 6f 66 20 62 6f  75 6e 64 69 6e 67 20 62  |te of bounding b|
00004aa0  6f 78 0a 20 20 20 20 20  20 20 20 52 31 2b 38 20  |ox.        R1+8 |
00004ab0  20 20 20 6d 69 6e 69 6d  75 6d 20 79 20 63 6f 6f  |   minimum y coo|
00004ac0  72 64 69 6e 61 74 65 20  6f 66 20 62 6f 75 6e 64  |rdinate of bound|
00004ad0  69 6e 67 20 62 6f 78 0a  20 20 20 20 20 20 20 20  |ing box.        |
00004ae0  52 31 2b 31 32 20 20 20  6d 61 78 69 6d 75 6d 20  |R1+12   maximum |
00004af0  78 20 63 6f 6f 72 64 69  6e 61 74 65 20 6f 66 20  |x coordinate of |
00004b00  62 6f 75 6e 64 69 6e 67  20 62 6f 78 0a 20 20 20  |bounding box.   |
00004b10  20 20 20 20 20 52 31 2b  31 36 20 20 20 6d 61 78  |     R1+16   max|
00004b20  69 6d 75 6d 20 79 20 63  6f 6f 72 64 69 6e 61 74  |imum y coordinat|
00004b30  65 20 6f 66 20 62 6f 75  6e 64 69 6e 67 20 62 6f  |e of bounding bo|
00004b40  78 0a 0a 54 68 69 73 20  63 61 6c 6c 20 72 65 6d  |x..This call rem|
00004b50  6f 76 65 73 20 61 20 70  72 65 76 69 6f 75 73 6c  |oves a previousl|
00004b60  79 20 69 6e 73 74 61 6c  6c 65 64 20 70 6f 69 6e  |y installed poin|
00004b70  74 65 72 20 66 72 6f 6d  20 74 68 65 20 6c 69 73  |ter from the lis|
00004b80  74 20 6f 66 20 61 63 74  69 76 65 20 70 6f 69 6e  |t of active poin|
00004b90  74 65 72 20 61 72 65 61  73 20 0a 66 6f 72 20 74  |ter areas .for t|
00004ba0  68 65 20 73 70 65 63 69  66 69 65 64 20 77 69 6e  |he specified win|
00004bb0  64 6f 77 2e 20 20 57 68  65 6e 20 61 20 77 69 6e  |dow.  When a win|
00004bc0  64 6f 77 20 69 73 20 64  65 6c 65 74 65 64 20 79  |dow is deleted y|
00004bd0  6f 75 20 73 68 6f 75 6c  64 20 72 65 6d 6f 76 65  |ou should remove|
00004be0  20 61 6e 79 20 0a 70 6f  69 6e 74 65 72 73 20 74  | any .pointers t|
00004bf0  68 61 74 20 77 65 72 65  20 72 65 6c 61 74 65 64  |hat were related|
00004c00  20 74 6f 20 74 68 65 20  77 69 6e 64 6f 77 2c 20  | to the window, |
00004c10  6f 74 68 65 72 77 69 73  65 20 74 68 65 73 65 20  |otherwise these |
00004c20  70 6f 69 6e 74 65 72 73  20 6d 61 79 20 62 65 63  |pointers may bec|
00004c30  6f 6d 65 20 0a 61 63 74  69 76 65 20 6f 6e 20 61  |ome .active on a|
00004c40  6e 79 20 77 69 6e 64 6f  77 20 77 68 69 63 68 20  |ny window which |
00004c50  67 61 69 6e 73 20 74 68  65 20 73 61 6d 65 20 77  |gains the same w|
00004c60  69 6e 64 6f 77 20 68 61  6e 64 6c 65 20 69 6e 20  |indow handle in |
00004c70  74 68 65 20 66 75 74 75  72 65 2e 20 0a 0a 54 68  |the future. ..Th|
00004c80  65 20 62 6f 75 6e 64 69  6e 67 20 62 6f 78 20 63  |e bounding box c|
00004c90  6f 6f 72 64 69 6e 61 74  65 73 20 61 72 65 20 67  |oordinates are g|
00004ca0  69 76 65 6e 20 72 65 6c  61 74 69 76 65 20 74 6f  |iven relative to|
00004cb0  20 74 68 65 20 77 69 6e  64 6f 77 27 73 20 77 6f  | the window's wo|
00004cc0  72 6b 20 61 72 65 61 20  6f 72 69 67 69 6e 2e 20  |rk area origin. |
00004cd0  20 0a 52 31 2b 34 20 74  6f 20 52 31 2b 31 36 20  | .R1+4 to R1+16 |
00004ce0  63 61 6e 20 62 65 20 73  65 74 20 74 6f 20 2d 31  |can be set to -1|
00004cf0  20 74 6f 20 73 70 65 63  69 66 79 20 74 68 65 20  | to specify the |
00004d00  77 68 6f 6c 65 20 6f 66  20 74 68 65 20 77 69 6e  |whole of the win|
00004d10  64 6f 77 27 73 20 77 6f  72 6b 20 61 72 65 61 2e  |dow's work area.|
00004d20  20 20 0a 52 31 2b 34 20  74 6f 20 52 31 2b 31 36  |  .R1+4 to R1+16|
00004d30  20 6d 61 79 20 62 65 20  73 65 74 20 74 6f 20 30  | may be set to 0|
00004d40  20 74 6f 20 72 65 6d 6f  76 65 20 61 6c 6c 20 77  | to remove all w|
00004d50  6f 72 6b 20 61 72 65 61  20 70 6f 69 6e 74 65 72  |ork area pointer|
00004d60  73 20 61 73 73 69 67 6e  65 64 20 74 6f 20 74 68  |s assigned to th|
00004d70  65 20 0a 77 69 6e 64 6f  77 2e 0a 0a 57 69 6d 70  |e .window...Wimp|
00004d80  5f 53 65 74 57 6f 72 6b  61 72 65 61 50 6f 69 6e  |_SetWorkareaPoin|
00004d90  74 65 72 20 28 53 57 49  20 26 38 31 36 38 34 29  |ter (SWI &81684)|
00004da0  0a 57 69 6d 70 5f 50 6f  6c 6c 50 6f 69 6e 74 65  |.Wimp_PollPointe|
00004db0  72 20 28 53 57 49 20 26  38 31 36 38 36 29 0a 0a  |r (SWI &81686)..|
00004dc0  4e 6f 6e 65 0a 0a 0a 0a  0a 0a 57 69 6d 70 5f 50  |None......Wimp_P|
00004dd0  6f 6c 6c 50 6f 69 6e 74  65 72 20 28 53 57 49 20  |ollPointer (SWI |
00004de0  26 38 31 36 38 36 29 0a  0a 52 30 20 3d 20 57 69  |&81686)..R0 = Wi|
00004df0  6d 70 5f 50 6f 6c 6c 20  72 65 61 73 6f 6e 20 63  |mp_Poll reason c|
00004e00  6f 64 65 0a 52 32 20 3d  20 74 61 73 6b 20 68 61  |ode.R2 = task ha|
00004e10  6e 64 6c 65 0a 0a 52 30  20 70 72 65 73 65 72 76  |ndle..R0 preserv|
00004e20  65 64 0a 52 40 20 70 72  65 73 65 72 76 65 64 0a  |ed.R@ preserved.|
00004e30  0a 49 6e 74 65 72 72 75  70 74 20 73 74 61 74 75  |.Interrupt statu|
00004e40  73 20 69 73 20 75 6e 64  65 66 69 6e 65 64 0a 46  |s is undefined.F|
00004e50  61 73 74 20 69 6e 74 65  72 72 75 70 74 73 20 61  |ast interrupts a|
00004e60  72 65 20 65 6e 61 62 6c  65 64 0a 0a 50 72 6f 63  |re enabled..Proc|
00004e70  65 73 73 6f 72 20 69 73  20 69 6e 20 53 56 43 20  |essor is in SVC |
00004e80  6d 6f 64 65 0a 0a 53 57  49 20 6e 6f 74 20 72 65  |mode..SWI not re|
00004e90  2d 65 6e 74 72 61 6e 74  0a 0a 54 68 69 73 20 63  |-entrant..This c|
00004ea0  61 6c 6c 20 63 68 65 63  6b 73 20 74 6f 20 73 65  |all checks to se|
00004eb0  65 20 69 66 20 74 68 65  20 70 6f 69 6e 74 65 72  |e if the pointer|
00004ec0  20 69 73 20 75 70 2d 74  6f 2d 64 61 74 65 2e 20  | is up-to-date. |
00004ed0  20 49 66 20 74 68 65 20  70 6f 69 6e 74 65 72 20  | If the pointer |
00004ee0  69 73 20 6e 6f 74 20 75  70 2d 74 6f 2d 64 61 74  |is not up-to-dat|
00004ef0  65 20 69 74 20 0a 77 69  6c 6c 20 63 68 61 6e 67  |e it .will chang|
00004f00  65 20 74 6f 20 74 68 65  20 70 6f 69 6e 74 65 72  |e to the pointer|
00004f10  20 73 70 65 63 69 66 69  65 64 20 69 6e 20 74 68  | specified in th|
00004f20  65 20 69 63 6f 6e 73 20  76 61 6c 69 64 61 74 69  |e icons validati|
00004f30  6f 6e 20 73 74 72 69 6e  67 2e 20 20 49 66 20 74  |on string.  If t|
00004f40  68 65 20 70 6f 69 6e 74  65 72 20 69 73 20 0a 6e  |he pointer is .n|
00004f50  6f 74 20 6f 76 65 72 20  61 6e 20 69 63 6f 6e 20  |ot over an icon |
00004f60  74 68 65 6e 20 20 74 68  65 20 70 6f 69 6e 74 65  |then  the pointe|
00004f70  72 20 77 69 6c 6c 20 63  68 61 6e 67 65 20 61 63  |r will change ac|
00004f80  63 6f 72 64 69 6e 67 20  74 6f 20 74 68 65 20 70  |cording to the p|
00004f90  6f 73 69 74 69 6f 6e 20  6f 6e 20 74 68 65 20 0a  |osition on the .|
00004fa0  77 69 6e 64 6f 77 20 62  61 63 6b 67 72 6f 75 6e  |window backgroun|
00004fb0  64 2e 0a 0a 4e 6f 74 65  20 74 68 61 74 20 77 69  |d...Note that wi|
00004fc0  6d 70 5f 70 6f 6c 6c 20  72 65 61 73 6f 6e 20 63  |mp_poll reason c|
00004fd0  6f 64 65 73 20 30 20 61  6e 64 20 34 20 73 68 6f  |odes 0 and 4 sho|
00004fe0  75 6c 64 20 6e 6f 74 20  62 65 20 6d 61 73 6b 65  |uld not be maske|
00004ff0  64 20 6f 75 74 2c 20 6f  74 68 65 72 77 69 73 65  |d out, otherwise|
00005000  20 74 68 65 20 0a 70 6f  69 6e 74 65 72 20 77 69  | the .pointer wi|
00005010  6c 6c 20 62 65 20 6f 75  74 2d 6f 66 2d 64 61 74  |ll be out-of-dat|
00005020  65 20 61 6e 64 20 77 69  6c 6c 20 6e 6f 74 20 66  |e and will not f|
00005030  75 6e 63 74 69 6f 6e 20  63 6f 72 72 65 63 74 6c  |unction correctl|
00005040  79 2e 0a 0a 57 69 6d 70  5f 53 65 74 57 6f 72 6b  |y...Wimp_SetWork|
00005050  61 72 65 61 50 6f 69 6e  74 65 72 20 28 53 57 49  |areaPointer (SWI|
00005060  20 26 38 31 36 38 34 29  0a 57 69 6d 70 5f 52 65  | &81684).Wimp_Re|
00005070  6d 6f 76 65 57 6f 72 6b  61 72 65 61 50 6f 69 6e  |moveWorkareaPoin|
00005080  74 65 72 20 28 53 57 49  20 26 38 31 36 38 35 29  |ter (SWI &81685)|
00005090  0a 0a 4e 6f 6e 65 0a 0a  0a 0a 0a 0a 57 69 6d 70  |..None......Wimp|
000050a0  5f 53 65 6e 64 48 65 6c  70 20 28 53 57 49 20 26  |_SendHelp (SWI &|
000050b0  38 31 36 38 37 29 0a 0a  52 31 20 3d 20 6d 65 73  |81687)..R1 = mes|
000050c0  73 61 67 65 20 62 6c 6f  63 6b 20 61 73 20 72 65  |sage block as re|
000050d0  74 75 72 6e 65 64 20 66  72 6f 6d 20 68 65 6c 70  |turned from help|
000050e0  20 61 70 70 6c 69 63 61  74 69 6f 6e 0a 52 31 20  | application.R1 |
000050f0  70 72 65 73 65 72 76 65  64 0a 0a 49 6e 74 65 72  |preserved..Inter|
00005100  72 75 70 74 20 73 74 61  74 75 73 20 69 73 20 75  |rupt status is u|
00005110  6e 64 65 66 69 6e 65 64  0a 46 61 73 74 20 69 6e  |ndefined.Fast in|
00005120  74 65 72 72 75 70 74 73  20 61 72 65 20 65 6e 61  |terrupts are ena|
00005130  62 6c 65 64 0a 0a 50 72  6f 63 65 73 73 6f 72 20  |bled..Processor |
00005140  69 73 20 69 6e 20 53 56  43 20 6d 6f 64 65 0a 0a  |is in SVC mode..|
00005150  53 57 49 20 6e 6f 74 20  72 65 2d 65 6e 74 72 61  |SWI not re-entra|
00005160  6e 74 0a 0a 54 68 69 73  20 63 61 6c 6c 20 72 65  |nt..This call re|
00005170  74 75 72 6e 73 20 61 20  68 65 6c 70 20 74 65 78  |turns a help tex|
00005180  74 20 6d 65 73 73 61 67  65 20 74 6f 20 74 68 65  |t message to the|
00005190  20 69 6e 74 65 72 61 63  74 69 76 65 20 68 65 6c  | interactive hel|
000051a0  70 20 61 70 70 6c 69 63  61 74 69 6f 6e 2e 20 20  |p application.  |
000051b0  49 74 20 73 68 6f 75 6c  64 20 62 65 20 0a 63 61  |It should be .ca|
000051c0  6c 6c 65 64 20 77 68 65  6e 20 61 20 6d 65 73 73  |lled when a mess|
000051d0  61 67 65 20 77 69 74 68  20 74 68 65 20 6e 75 6d  |age with the num|
000051e0  62 65 72 20 26 35 30 32  20 69 73 20 72 65 63 65  |ber &502 is rece|
000051f0  69 76 65 64 20 61 6e 64  20 74 68 65 20 70 6f 69  |ived and the poi|
00005200  6e 74 65 72 20 69 73 20  6f 76 65 72 20 61 6e 20  |nter is over an |
00005210  0a 69 63 6f 6e 2e 20 20  49 66 20 74 68 65 72 65  |.icon.  If there|
00005220  20 69 73 20 61 20 6d 65  73 73 61 67 65 20 69 6e  | is a message in|
00005230  20 74 68 65 20 69 63 6f  6e 73 20 76 61 6c 69 64  | the icons valid|
00005240  61 74 69 6f 6e 20 73 74  72 69 6e 67 20 74 68 61  |ation string tha|
00005250  74 20 74 68 65 20 70 6f  69 6e 74 65 72 20 69 73  |t the pointer is|
00005260  20 63 75 72 72 65 6e 74  6c 79 20 0a 6f 76 65 72  | currently .over|
00005270  20 74 68 65 6e 20 74 68  69 73 20 77 69 6c 6c 20  | then this will |
00005280  62 65 20 73 65 6e 74 20  74 6f 20 74 68 65 20 68  |be sent to the h|
00005290  65 6c 70 20 61 70 70 6c  69 63 61 74 69 6f 6e 2e  |elp application.|
000052a0  20 20 49 74 20 69 73 20  75 70 20 74 6f 20 74 68  |  It is up to th|
000052b0  65 20 61 70 70 6c 69 63  61 74 69 6f 6e 73 20 0a  |e applications .|
000052c0  70 72 6f 67 72 61 6d 6d  65 72 20 74 6f 20 74 61  |programmer to ta|
000052d0  6b 65 20 63 61 72 65 20  6f 66 20 74 68 65 20 68  |ke care of the h|
000052e0  65 6c 70 20 6d 65 73 73  61 67 65 20 77 68 65 6e  |elp message when|
000052f0  20 74 68 65 20 70 6f 69  6e 74 65 72 20 69 73 20  | the pointer is |
00005300  6f 76 65 72 20 74 68 65  20 69 63 6f 6e 20 6f 6e  |over the icon on|
00005310  20 74 68 65 20 0a 69 63  6f 6e 20 62 61 72 20 6f  | the .icon bar o|
00005320  72 20 69 73 20 6f 76 65  72 20 74 68 65 20 77 69  |r is over the wi|
00005330  6e 64 6f 77 20 77 6f 72  6b 61 72 65 61 2e 20 0a  |ndow workarea. .|
00005340  0a 4e 6f 6e 65 0a 0a 4e  6f 6e 65 0a 0a 0a 2a 2a  |.None..None...**|
00005350  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00005360  2a 2a 2a 2a 2a 2a 2a 20  50 72 6f 67 72 61 6d 6d  |******* Programm|
00005370  69 6e 67 20 48 69 6e 74  73 20 26 20 54 69 70 73  |ing Hints & Tips|
00005380  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
00005390  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0a 0a 54 68 69  |***********..Thi|
000053a0  73 20 73 65 63 74 69 6f  6e 20 67 69 76 65 73 20  |s section gives |
000053b0  68 69 6e 74 73 20 61 6e  64 20 74 69 70 73 20 6f  |hints and tips o|
000053c0  6e 20 68 6f 77 20 74 6f  20 70 72 6f 67 72 61 6d  |n how to program|
000053d0  20 79 6f 75 72 20 61 70  70 6c 69 63 61 74 69 6f  | your applicatio|
000053e0  6e 20 74 6f 20 6d 61 6b  65 20 74 68 65 20 0a 6d  |n to make the .m|
000053f0  6f 73 74 20 6f 66 20 49  6e 74 65 72 66 61 63 65  |ost of Interface|
00005400  20 4d 61 6e 61 67 65 72  2e 20 20 49 6e 20 74 68  | Manager.  In th|
00005410  65 20 65 78 61 6d 70 6c  65 73 20 71 25 20 69 73  |e examples q% is|
00005420  20 75 73 65 64 20 61 73  20 61 20 62 6c 6f 63 6b  | used as a block|
00005430  20 6f 66 20 6d 65 6d 6f  72 79 2c 20 0a 61 63 74  | of memory, .act|
00005440  69 6f 6e 25 20 69 73 20  74 68 65 20 72 65 61 73  |ion% is the reas|
00005450  6f 6e 20 63 6f 64 65 20  72 65 74 75 72 6e 65 64  |on code returned|
00005460  20 62 79 20 53 57 49 20  22 57 69 6d 70 5f 50 6f  | by SWI "Wimp_Po|
00005470  6c 6c 22 20 61 6e 64 20  74 61 73 6b 5f 68 61 6e  |ll" and task_han|
00005480  64 6c 65 25 20 69 73 20  74 68 65 20 0a 74 61 73  |dle% is the .tas|
00005490  6b 20 68 61 6e 64 6c 65  2e 0a 0a 54 68 65 20 66  |k handle...The f|
000054a0  6f 6c 6c 6f 77 69 6e 67  20 63 6f 64 65 20 73 68  |ollowing code sh|
000054b0  6f 75 6c 64 20 62 65 20  75 73 65 64 20 74 6f 20  |ould be used to |
000054c0  63 6c 61 69 6d 20 49 6e  74 65 72 66 61 63 65 20  |claim Interface |
000054d0  73 6f 20 74 68 61 74 20  74 68 65 20 70 6f 69 6e  |so that the poin|
000054e0  74 65 72 73 20 6d 61 79  20 62 65 20 0a 75 73 65  |ters may be .use|
000054f0  64 2e 0a 0a 20 20 20 20  20 20 20 20 53 59 53 20  |d...        SYS |
00005500  22 57 69 6d 70 5f 49 6e  69 74 69 61 6c 69 73 65  |"Wimp_Initialise|
00005510  22 2c 20 32 30 30 2c 20  26 34 62 35 33 34 31 35  |", 200, &4b53415|
00005520  34 2c 22 49 6e 74 65 72  66 61 63 65 22 20 54 4f  |4,"Interface" TO|
00005530  20 2c 20 74 61 73 6b 5f  68 61 6e 64 6c 65 25 0a  | , task_handle%.|
00005540  20 20 20 20 20 20 20 20  53 59 53 20 22 57 69 6d  |        SYS "Wim|
00005550  70 5f 43 6c 61 69 6d 49  6e 74 65 72 66 61 63 65  |p_ClaimInterface|
00005560  22 2c 20 74 61 73 6b 5f  68 61 6e 64 6c 65 25 20  |", task_handle% |
00005570  20 20 20 20 20 20 20 3a  20 52 45 4d 20 63 6c 61  |       : REM cla|
00005580  69 6d 20 69 6e 74 65 72  66 61 63 65 0a 0a 0a 54  |im interface...T|
00005590  68 65 20 66 6f 6c 6c 6f  77 69 6e 67 20 63 6f 64  |he following cod|
000055a0  65 20 73 68 6f 75 6c 64  20 62 65 20 75 73 65 64  |e should be used|
000055b0  20 77 68 65 6e 20 61 20  72 65 64 72 61 77 20 65  | when a redraw e|
000055c0  76 65 6e 74 20 69 73 20  72 65 74 75 72 6e 65 64  |vent is returned|
000055d0  20 66 72 6f 6d 20 0a 57  69 6d 70 5f 50 6f 6c 6c  | from .Wimp_Poll|
000055e0  2e 0a 0a 20 20 20 20 20  20 20 20 53 59 53 20 22  |...        SYS "|
000055f0  57 69 6d 70 5f 52 65 64  72 61 77 57 69 6e 64 6f  |Wimp_RedrawWindo|
00005600  77 22 2c 2c 20 71 25 20  54 4f 20 66 6c 61 67 25  |w",, q% TO flag%|
00005610  20 20 20 20 20 20 20 20  20 20 20 3a 20 52 45 4d  |           : REM|
00005620  20 20 67 65 74 20 61 72  65 61 20 74 6f 20 72 65  |  get area to re|
00005630  64 72 61 77 0a 20 20 20  20 20 20 20 20 57 48 49  |draw.        WHI|
00005640  4c 45 20 66 6c 61 67 25  20 20 20 20 20 20 20 20  |LE flag%        |
00005650  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005660  20 20 20 20 20 20 20 20  20 20 20 20 20 3a 20 52  |             : R|
00005670  45 4d 20 20 72 65 64 72  61 77 20 3d 20 54 52 55  |EM  redraw = TRU|
00005680  45 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |E.              |
00005690  20 20 53 59 53 20 22 57  69 6d 70 5f 42 6f 72 64  |  SYS "Wimp_Bord|
000056a0  65 72 57 69 6e 64 6f 77  22 2c 2c 20 71 25 20 20  |erWindow",, q%  |
000056b0  20 20 20 20 20 20 20 20  20 20 3a 20 52 45 4d 20  |          : REM |
000056c0  20 62 6f 72 64 65 72 20  61 6c 6c 20 69 63 6f 6e  | border all icon|
000056d0  73 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |s.              |
000056e0  20 20 53 59 53 20 22 57  69 6d 70 5f 47 65 74 52  |  SYS "Wimp_GetR|
000056f0  65 63 74 61 6e 67 6c 65  22 2c 2c 20 71 25 20 54  |ectangle",, q% T|
00005700  4f 20 66 6c 61 67 25 20  20 20 3a 20 52 45 4d 20  |O flag%   : REM |
00005710  20 67 65 74 20 6e 65 78  74 20 72 65 63 74 61 6e  | get next rectan|
00005720  67 6c 65 0a 20 20 20 20  20 20 20 20 45 4e 44 57  |gle.        ENDW|
00005730  48 49 4c 45 20 20 20 20  20 20 20 20 20 20 20 20  |HILE            |
00005740  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005750  20 20 20 20 20 20 20 20  20 20 20 20 3a 20 52 45  |            : RE|
00005760  4d 20 20 73 65 65 20 69  66 20 61 6e 79 6d 6f 72  |M  see if anymor|
00005770  65 0a 0a 0a 54 68 65 20  66 6f 6c 6c 6f 77 69 6e  |e...The followin|
00005780  67 20 63 6f 64 65 20 73  68 6f 75 6c 64 20 62 65  |g code should be|
00005790  20 75 73 65 64 20 77 68  65 6e 20 61 20 6d 6f 75  | used when a mou|
000057a0  73 65 5f 63 6c 69 63 6b  20 65 76 65 6e 74 20 69  |se_click event i|
000057b0  73 20 72 65 74 75 72 6e  65 64 20 66 72 6f 6d 20  |s returned from |
000057c0  0a 57 69 6d 70 5f 50 6f  6c 6c 2e 0a 0a 20 20 20  |.Wimp_Poll...   |
000057d0  20 20 20 20 20 53 59 53  20 22 57 69 6d 70 5f 42  |     SYS "Wimp_B|
000057e0  6f 72 64 65 72 49 63 6f  6e 22 2c 2c 20 71 25 20  |orderIcon",, q% |
000057f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005800  20 20 20 20 20 3a 20 52  45 4d 20 20 68 69 67 68  |     : REM  high|
00005810  6c 69 67 68 74 20 69 63  6f 6e 0a 20 20 20 20 20  |light icon.     |
00005820  20 20 20 2e 2e 2e 2e 20  20 20 20 20 20 20 20 20  |   ....         |
00005830  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005850  20 20 20 3a 20 52 45 4d  20 20 69 6e 73 65 72 74  |   : REM  insert|
00005860  20 79 6f 75 72 20 63 6f  64 65 0a 20 20 20 20 20  | your code.     |
00005870  20 20 20 2e 2e 2e 2e 20  20 20 20 20 20 20 20 20  |   ....         |
00005880  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000058a0  20 20 20 3a 20 52 45 4d  20 20 68 65 72 65 0a 20  |   : REM  here. |
000058b0  20 20 20 20 20 20 20 71  25 21 38 20 3d 20 30 20  |       q%!8 = 0 |
000058c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000058e0  20 20 20 20 20 20 20 3a  20 52 45 4d 20 20 73 65  |       : REM  se|
000058f0  74 20 62 75 74 74 6f 6e  20 73 74 61 74 65 20 74  |t button state t|
00005900  6f 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |o.              |
00005910  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005930  20 20 20 20 20 20 20 20  20 20 3a 20 52 45 4d 20  |          : REM |
00005940  20 30 20 28 73 77 69 74  63 68 20 6f 66 66 29 0a  | 0 (switch off).|
00005950  20 20 20 20 20 20 20 20  53 59 53 20 22 57 69 6d  |        SYS "Wim|
00005960  70 5f 42 6f 72 64 65 72  49 63 6f 6e 22 2c 2c 20  |p_BorderIcon",, |
00005970  71 25 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |q%              |
00005980  20 20 20 20 20 20 20 20  3a 20 52 45 4d 20 20 73  |        : REM  s|
00005990  77 69 74 63 68 20 6f 66  66 0a 0a 0a 54 68 65 20  |witch off...The |
000059a0  66 6f 6c 6c 6f 77 69 6e  67 20 63 6f 64 65 20 73  |following code s|
000059b0  68 6f 75 6c 64 20 62 65  20 75 73 65 64 20 74 6f  |hould be used to|
000059c0  20 74 6f 20 69 6e 73 74  61 6c 6c 20 61 20 6f 6e  | to install a on|
000059d0  20 74 68 65 20 77 6f 72  6b 61 72 65 61 2e 20 20  | the workarea.  |
000059e0  4e 6f 74 65 20 74 68 69  73 20 70 6f 69 6e 74 65  |Note this pointe|
000059f0  72 20 0a 77 69 6c 6c 20  74 61 6b 65 20 75 70 20  |r .will take up |
00005a00  74 68 65 20 77 68 6f 6c  65 20 6f 66 20 74 68 65  |the whole of the|
00005a10  20 77 69 6e 64 6f 77 20  77 6f 72 6b 61 72 65 61  | window workarea|
00005a20  2e 0a 0a 20 20 20 20 20  20 20 20 71 25 21 30 20  |...        q%!0 |
00005a30  3d 20 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |= window_handle%|
00005a40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005a50  20 20 20 20 20 20 20 20  20 20 20 3a 20 52 45 4d  |           : REM|
00005a60  20 77 69 6e 64 6f 77 20  74 6f 20 69 6e 73 74 61  | window to insta|
00005a70  6c 6c 20 70 6f 69 6e 74  65 72 20 20 0a 20 20 20  |ll pointer  .   |
00005a80  20 20 20 20 20 71 25 21  34 20 3d 20 2d 31 20 20  |     q%!4 = -1  |
00005a90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005ab0  20 20 20 20 20 3a 20 52  45 4d 20 77 68 6f 6c 65  |     : REM whole|
00005ac0  20 77 6f 72 6b 61 72 65  61 20 3d 20 2d 20 31 0a  | workarea = - 1.|
00005ad0  20 20 20 20 20 20 20 20  71 25 21 38 20 3d 20 2d  |        q%!8 = -|
00005ae0  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |1               |
00005af0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005b00  20 20 20 20 20 20 20 20  3a 20 52 45 4d 20 77 68  |        : REM wh|
00005b10  6f 6c 65 20 77 6f 72 6b  61 72 65 61 20 3d 20 2d  |ole workarea = -|
00005b20  20 31 0a 20 20 20 20 20  20 20 20 71 25 21 31 32  | 1.        q%!12|
00005b30  20 3d 20 2d 31 20 20 20  20 20 20 20 20 20 20 20  | = -1           |
00005b40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005b50  20 20 20 20 20 20 20 20  20 20 20 3a 20 52 45 4d  |           : REM|
00005b60  20 77 68 6f 6c 65 20 77  6f 72 6b 61 72 65 61 20  | whole workarea |
00005b70  3d 20 2d 20 31 0a 20 20  20 20 20 20 20 20 71 25  |= - 1.        q%|
00005b80  21 31 36 20 3d 20 2d 31  20 20 20 20 20 20 20 20  |!16 = -1        |
00005b90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005ba0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3a 20  |              : |
00005bb0  52 45 4d 20 77 68 6f 6c  65 20 77 6f 72 6b 61 72  |REM whole workar|
00005bc0  65 61 20 3d 20 2d 20 31  0a 20 20 20 20 20 20 20  |ea = - 1.       |
00005bd0  20 24 28 71 25 2b 32 30  29 20 3d 22 70 74 72 5f  | $(q%+20) ="ptr_|
00005be0  68 61 6e 64 2c 35 2c 35  22 20 2b 20 43 48 52 24  |hand,5,5" + CHR$|
00005bf0  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0               |
00005c00  20 3a 20 52 45 4d 20 70  74 72 20 26 20 70 6f 69  | : REM ptr & poi|
00005c10  6e 74 20 28 6e 6f 20 73  70 61 63 65 73 29 0a 20  |nt (no spaces). |
00005c20  20 20 20 20 20 20 20 53  59 53 20 22 57 69 6d 70  |       SYS "Wimp|
00005c30  5f 53 65 74 57 6f 72 6b  61 72 65 61 50 6f 69 6e  |_SetWorkareaPoin|
00005c40  74 65 72 22 2c 2c 20 71  25 20 20 20 20 20 20 20  |ter",, q%       |
00005c50  20 20 20 20 20 20 20 3a  20 52 45 4d 20 73 65 74  |       : REM set|
00005c60  20 74 68 65 20 70 6f 69  6e 74 65 72 0a 0a 0a 54  | the pointer...T|
00005c70  68 65 20 66 6f 6c 6c 6f  77 69 6e 67 20 63 6f 64  |he following cod|
00005c80  65 20 73 68 6f 75 6c 64  20 62 65 20 75 73 65 64  |e should be used|
00005c90  20 74 6f 20 74 6f 20 72  65 6d 6f 76 65 20 61 6c  | to to remove al|
00005ca0  6c 20 70 6f 69 6e 74 65  72 73 20 66 72 6f 6d 20  |l pointers from |
00005cb0  61 20 77 69 6e 64 6f 77  2e 20 20 54 68 69 73 20  |a window.  This |
00005cc0  0a 73 68 6f 75 6c 64 20  62 65 20 63 61 6c 6c 65  |.should be calle|
00005cd0  64 20 77 68 65 6e 20 79  6f 75 20 64 65 6c 65 74  |d when you delet|
00005ce0  65 20 61 20 77 69 6e 64  6f 77 2e 0a 0a 20 20 20  |e a window...   |
00005cf0  20 20 20 20 20 71 25 21  30 20 3d 20 77 69 6e 64  |     q%!0 = wind|
00005d00  6f 77 5f 68 61 6e 64 6c  65 25 20 20 20 20 20 20  |ow_handle%      |
00005d10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005d20  20 20 20 20 20 3a 20 52  45 4d 20 77 69 6e 64 6f  |     : REM windo|
00005d30  77 20 74 6f 20 63 6c 65  61 72 0a 20 20 20 20 20  |w to clear.     |
00005d40  20 20 20 71 25 21 34 20  3d 20 30 20 20 20 20 20  |   q%!4 = 0     |
00005d50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005d70  20 20 20 3a 20 52 45 4d  20 61 6c 6c 20 70 6f 69  |   : REM all poi|
00005d80  6e 74 65 72 73 20 3d 20  30 0a 20 20 20 20 20 20  |nters = 0.      |
00005d90  20 20 71 25 21 38 20 3d  20 30 20 20 20 20 20 20  |  q%!8 = 0      |
00005da0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005dc0  20 20 3a 20 52 45 4d 20  61 6c 6c 20 70 6f 69 6e  |  : REM all poin|
00005dd0  74 65 72 73 20 3d 20 30  0a 20 20 20 20 20 20 20  |ters = 0.       |
00005de0  20 71 25 21 31 32 20 3d  20 30 20 20 20 20 20 20  | q%!12 = 0      |
00005df0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005e10  20 3a 20 52 45 4d 20 61  6c 6c 20 70 6f 69 6e 74  | : REM all point|
00005e20  65 72 73 20 3d 20 30 0a  20 20 20 20 20 20 20 20  |ers = 0.        |
00005e30  71 25 21 31 36 20 3d 20  30 20 20 20 20 20 20 20  |q%!16 = 0       |
00005e40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005e60  3a 20 52 45 4d 20 61 6c  6c 20 70 6f 69 6e 74 65  |: REM all pointe|
00005e70  72 73 20 3d 20 30 0a 20  20 20 20 20 20 20 20 53  |rs = 0.        S|
00005e80  59 53 20 22 57 69 6d 70  5f 52 65 6c 65 61 73 65  |YS "Wimp_Release|
00005e90  57 6f 72 6b 61 72 65 61  50 6f 69 6e 74 65 72 22  |WorkareaPointer"|
00005ea0  2c 20 74 61 73 6b 5f 68  61 6e 64 6c 65 25 2c 20  |, task_handle%, |
00005eb0  71 25 20 20 20 20 20 0a  20 20 20 20 20 20 20 20  |q%     .        |
00005ec0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005ef0  3a 20 52 45 4d 20 72 65  6c 65 61 73 65 20 74 68  |: REM release th|
00005f00  65 20 70 6f 69 6e 74 65  72 73 0a 0a 54 68 65 20  |e pointers..The |
00005f10  66 6f 6c 6c 6f 77 69 6e  67 20 63 6f 64 65 20 73  |following code s|
00005f20  68 6f 75 6c 64 20 62 65  20 75 73 65 64 20 74 6f  |hould be used to|
00005f30  20 74 6f 20 73 65 6e 64  20 68 65 6c 70 20 74 6f  | to send help to|
00005f40  20 74 68 65 20 68 65 6c  70 20 61 70 70 6c 69 63  | the help applic|
00005f50  61 74 69 6f 6e 2e 20 20  54 68 69 73 20 0a 73 68  |ation.  This .sh|
00005f60  6f 75 6c 64 20 62 65 20  63 61 6c 6c 65 64 20 77  |ould be called w|
00005f70  68 65 6e 20 79 6f 75 20  72 65 63 65 69 76 65 20  |hen you receive |
00005f80  61 20 6d 65 73 73 61 67  65 20 77 69 74 68 20 61  |a message with a|
00005f90  6e 20 69 64 65 6e 74 69  66 69 65 72 20 6f 66 20  |n identifier of |
00005fa0  26 35 30 32 2e 0a 0a 20  20 20 20 20 20 20 20 43  |&502...        C|
00005fb0  41 53 45 20 71 25 21 31  36 20 4f 46 20 20 20 20  |ASE q%!16 OF    |
00005fc0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005fe0  20 20 20 20 20 20 20 3a  20 52 45 4d 20 63 68 65  |       : REM che|
00005ff0  63 6b 20 6d 65 73 73 61  67 65 0a 20 20 20 20 20  |ck message.     |
00006000  20 20 20 20 20 20 20 20  20 20 20 57 48 45 4e 20  |           WHEN |
00006010  26 35 30 32 20 3a 20 53  59 53 20 22 57 69 6d 70  |&502 : SYS "Wimp|
00006020  5f 53 65 6e 64 49 6e 66  6f 72 6d 61 74 69 6f 6e  |_SendInformation|
00006030  22 2c 2c 20 71 25 20 20  20 20 20 3a 20 52 45 4d  |",, q%     : REM|
00006040  20 6d 65 73 73 61 67 65  20 68 65 6c 70 20 20 20  | message help   |
00006050  20 20 20 20 20 20 20 20  20 20 20 0a 20 20 20 20  |           .    |
00006060  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00006090  20 20 20 20 20 20 20 20  20 20 20 20 3a 20 52 45  |            : RE|
000060a0  4d 20 72 65 71 75 65 73  74 2c 20 73 6f 0a 20 20  |M request, so.  |
000060b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000060e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3a 20  |              : |
000060f0  52 45 4d 20 73 65 6e 64  20 68 65 6c 70 0a 0a 0a  |REM send help...|
00006100  0a 54 68 65 20 66 6f 6c  6c 6f 77 69 6e 67 20 63  |.The following c|
00006110  6f 64 65 20 73 68 6f 75  6c 64 20 62 65 20 70 6c  |ode should be pl|
00006120  61 63 65 64 20 64 69 72  65 63 74 6c 79 20 61 66  |aced directly af|
00006130  74 65 72 20 79 6f 75 72  20 53 59 53 20 22 57 69  |ter your SYS "Wi|
00006140  6d 70 5f 50 6f 6c 6c 22  20 74 6f 20 73 77 69 74  |mp_Poll" to swit|
00006150  63 68 20 0a 70 6f 69 6e  74 65 72 2e 0a 0a 20 20  |ch .pointer...  |
00006160  20 20 20 20 20 20 53 59  53 20 22 57 69 6d 70 5f  |      SYS "Wimp_|
00006170  50 6f 6c 6c 50 6f 69 6e  74 65 72 22 2c 20 61 63  |PollPointer", ac|
00006180  74 69 6f 6e 25 2c 2c 20  74 61 73 6b 5f 68 61 6e  |tion%,, task_han|
00006190  64 6c 65 25 20 20 3a 20  52 45 4d 20 63 61 6c 6c  |dle%  : REM call|
000061a0  20 73 77 69 20 77 69 74  68 20 72 65 61 73 6f 6e  | swi with reason|
000061b0  20 63 6f 64 65 0a 0a 0a  0a 54 68 65 20 66 6f 6c  | code....The fol|
000061c0  6c 6f 77 69 6e 67 20 63  6f 64 65 20 73 68 6f 75  |lowing code shou|
000061d0  6c 64 20 62 65 20 75 73  65 64 20 74 6f 20 74 6f  |ld be used to to|
000061e0  20 72 65 6c 65 61 73 65  20 49 6e 74 65 72 66 61  | release Interfa|
000061f0  63 65 2e 0a 0a 20 20 20  20 20 20 20 20 53 59 53  |ce...        SYS|
00006200  20 22 57 69 6d 70 5f 52  65 6c 65 61 73 65 49 6e  | "Wimp_ReleaseIn|
00006210  74 65 72 66 61 63 65 22  2c 20 74 61 73 6b 5f 68  |terface", task_h|
00006220  61 6e 64 6c 65 25 20 20  20 20 20 20 20 3a 20 52  |andle%       : R|
00006230  45 4d 20 72 65 6c 65 61  73 65 20 49 6e 74 65 72  |EM release Inter|
00006240  66 61 63 65 0a 0a 0a 20  0a 0a                    |face... ..|
0000624a