Home » Archimedes archive » Acorn Computing » 1994 09 subscription disc.adf » 9409s » Accounts/!Account/Resources/Interface/InterDocs

Accounts/!Account/Resources/Interface/InterDocs

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

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

Tape/disk: Home » Archimedes archive » Acorn Computing » 1994 09 subscription disc.adf » 9409s
Filename: Accounts/!Account/Resources/Interface/InterDocs
Read OK:
File size: 59AF bytes
Load address: 0000
Exec address: 0000
Duplicates

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

File contents
interface manager vsn 2.00
----------------------------------------------
(c) 1990-1992, software interrupt developments
	simon huntington
	all rights reserved
	copyright belongs to software interrupt at all times.

you are free to use interface in any commercial products free of charge.  if
you feel the need to send any money to me (thanks in advance).

--------------------------------------------------------------------------------

changes from version 1.32

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

*command to allow changes in the slabbing colours.

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

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

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

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

Contacts:
       Arcade BBS          (081 654 2212)                   

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

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

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

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

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

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






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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        Click SELECT to set the alarm.

        You are in Select mode.

        Click ADJUST to change to path edit mode.

        This is the icon for Edit.

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

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

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

        This window shows....

if better than nothing.

You should assume a user knows:

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

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


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

Wimp_BorderIcon (Interface_SlabButton) (SWI &81680)

R1 = pointer to block
R1 preserved

Interrupts are not defined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

The block contains the following on entry:

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

This call is used to update an icons border.  It is typically called as a result of a 
Mouse_Click event, if the icon has a border type of 0 or 2 then the icon will slab 
inwards.  The format of the validation string is described 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 (Interface_Render3dWindow) (SWI &81681)

R1 = pointer to block
R1 preserved

Interrupts are not defined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

The block contains the following on entry:

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

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

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

Wimp_BorderIcon (SWI &81680)

None 




Wimp_ClaimInterface (Interface_Initialise) (SWI &81682)

R0 = task handle
R0 preserved

Interrupts are not defined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

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

Wimp_ReleaseInterface (SWI &81683)

None




Wimp_ReleaseInterface (Interface_CloseDown) (SWI &81683)

R0 = task handle
R0 preserved

Interrupts are not defined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

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

Wimp_ClaimInterface (SWI &81682)

None




Wimp_SetWorkareaPointer (Interface_SetWorkareaPointer) (SWI &81684)

R1 = pointer to block
R1 preserved

Interrupt status is undefined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

The block contains the following on entry:

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

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

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

None





Wimp_RemoveWorkareaPointer (Interface_RemoveWorkareaPointer) (SWI &81685)

R0 = task handle
R1 = pointer to block

R0 preserved
R1 preserved

Interrupt status is undefined
Fast interrupts are enabled

Processor is in SVC mode

SWI is not re-entrant

The block contains the following on entry:

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

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

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

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

None





Wimp_PollPointer (Interface_Poll) (SWI &81686)

R0 = Wimp_Poll reason code
R2 = task handle

R0 preserved
R@ preserved

Interrupt status is undefined
Fast interrupts are enabled

Processor is in SVC mode

SWI not re-entrant

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

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

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

None





Wimp_SendInformation (Interface_SendHelp) (SWI &81687)

R1 = message block as returned from help application
R1 preserved

Interrupt status is undefined
Fast interrupts are enabled

Processor is in SVC mode

SWI not re-entrant

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

None

None


Wimp_PreProcessKey (Interface_PreProcessKey) (SWI &81688)

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

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

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


Wimp_BorderPlotIcon (Interface_Plot3dIcon) (SWI &81689)

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

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

Wimp_BorderBoundingBox (Interface_BoundingBox) (SWI &8168A)

R1 = icon block as for Wimp_PlotIcon

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

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



00000000  69 6e 74 65 72 66 61 63  65 20 6d 61 6e 61 67 65  |interface manage|
00000010  72 20 76 73 6e 20 32 2e  30 30 0a 2d 2d 2d 2d 2d  |r vsn 2.00.-----|
00000020  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000040  2d 2d 2d 2d 2d 2d 2d 2d  2d 0a 28 63 29 20 31 39  |---------.(c) 19|
00000050  39 30 2d 31 39 39 32 2c  20 73 6f 66 74 77 61 72  |90-1992, softwar|
00000060  65 20 69 6e 74 65 72 72  75 70 74 20 64 65 76 65  |e interrupt deve|
00000070  6c 6f 70 6d 65 6e 74 73  0a 09 73 69 6d 6f 6e 20  |lopments..simon |
00000080  68 75 6e 74 69 6e 67 74  6f 6e 0a 09 61 6c 6c 20  |huntington..all |
00000090  72 69 67 68 74 73 20 72  65 73 65 72 76 65 64 0a  |rights reserved.|
000000a0  09 63 6f 70 79 72 69 67  68 74 20 62 65 6c 6f 6e  |.copyright belon|
000000b0  67 73 20 74 6f 20 73 6f  66 74 77 61 72 65 20 69  |gs to software i|
000000c0  6e 74 65 72 72 75 70 74  20 61 74 20 61 6c 6c 20  |nterrupt at all |
000000d0  74 69 6d 65 73 2e 0a 0a  79 6f 75 20 61 72 65 20  |times...you are |
000000e0  66 72 65 65 20 74 6f 20  75 73 65 20 69 6e 74 65  |free to use inte|
000000f0  72 66 61 63 65 20 69 6e  20 61 6e 79 20 63 6f 6d  |rface in any com|
00000100  6d 65 72 63 69 61 6c 20  70 72 6f 64 75 63 74 73  |mercial products|
00000110  20 66 72 65 65 20 6f 66  20 63 68 61 72 67 65 2e  | free of charge.|
00000120  20 20 69 66 0a 79 6f 75  20 66 65 65 6c 20 74 68  |  if.you feel th|
00000130  65 20 6e 65 65 64 20 74  6f 20 73 65 6e 64 20 61  |e need to send a|
00000140  6e 79 20 6d 6f 6e 65 79  20 74 6f 20 6d 65 20 28  |ny money to me (|
00000150  74 68 61 6e 6b 73 20 69  6e 20 61 64 76 61 6e 63  |thanks in advanc|
00000160  65 29 2e 0a 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |e)...-----------|
00000170  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000001b0  2d 2d 2d 2d 2d 0a 0a 63  68 61 6e 67 65 73 20 66  |-----..changes f|
000001c0  72 6f 6d 20 76 65 72 73  69 6f 6e 20 31 2e 33 32  |rom version 1.32|
000001d0  0a 0a 74 68 69 73 20 76  65 72 73 69 6f 6e 20 68  |..this version h|
000001e0  61 73 20 62 65 65 6e 20  66 75 6c 6c 79 20 72 65  |as been fully re|
000001f0  2d 77 72 69 74 74 65 6e  20 75 73 69 6e 67 20 74  |-written using t|
00000200  68 65 20 61 63 6f 72 6e  20 61 6f 66 20 61 73 73  |he acorn aof ass|
00000210  65 6d 62 6c 65 72 2e 0a  62 6f 72 64 65 72 20 74  |embler..border t|
00000220  79 70 65 20 68 61 73 20  63 68 61 6e 67 65 64 20  |ype has changed |
00000230  74 6f 20 7a 20 74 6f 20  61 76 6f 69 64 20 63 6f  |to z to avoid co|
00000240  6e 66 6c 69 63 74 73 20  77 69 74 68 20 72 69 73  |nflicts with ris|
00000250  63 2d 6f 73 20 33 0a 49  6e 74 65 72 66 61 63 65  |c-os 3.Interface|
00000260  5f 50 6c 6f 74 33 64 49  63 6f 6e 20 68 61 73 20  |_Plot3dIcon has |
00000270  62 65 65 6e 20 63 68 61  6e 67 65 64 20 73 6f 20  |been changed so |
00000280  74 68 65 20 66 69 72 73  74 20 70 61 72 61 6d 65  |the first parame|
00000290  74 65 72 20 69 73 20 61  20 77 69 6e 64 6f 77 20  |ter is a window |
000002a0  73 74 61 74 65 20 62 6c  6f 63 6b 20 69 6e 73 74  |state block inst|
000002b0  65 61 64 20 6f 66 20 61  20 77 69 6e 64 6f 77 20  |ead of a window |
000002c0  68 61 6e 64 6c 65 0a 6e  61 6d 65 73 20 68 61 73  |handle.names has|
000002d0  20 63 68 61 6e 67 65 64  20 74 6f 20 69 6e 74 65  | changed to inte|
000002e0  72 66 61 63 65 5f 2e 2e  2e 2e 2c 20 6f 6c 64 20  |rface_...., old |
000002f0  6e 61 6d 65 73 20 61 72  65 20 73 74 69 6c 6c 20  |names are still |
00000300  73 75 70 70 6f 72 74 65  64 0a 62 65 74 74 65 72  |supported.better|
00000310  20 72 65 64 72 61 77 20  63 6f 64 65 20 74 6f 20  | redraw code to |
00000320  63 6f 72 72 65 63 74 20  70 72 6f 62 6c 65 6d 73  |correct problems|
00000330  20 77 69 74 68 20 6d 75  6c 74 69 2d 73 79 6e 63  | with multi-sync|
00000340  20 6d 6f 64 65 73 20 77  68 65 72 65 20 74 68 65  | modes where the|
00000350  20 69 63 6f 6e 73 20 77  65 72 65 20 6e 6f 74 20  | icons were not |
00000360  61 6c 6c 69 67 6e 65 64  20 63 6f 72 72 65 63 74  |alligned correct|
00000370  6c 79 2e 0a 49 6e 74 65  72 66 61 63 65 5f 42 6f  |ly..Interface_Bo|
00000380  75 6e 64 69 6e 67 42 6f  78 20 6e 6f 77 20 72 65  |undingBox now re|
00000390  74 75 72 6e 73 20 74 68  65 20 73 74 61 74 65 20  |turns the state |
000003a0  6f 66 20 74 68 65 20 62  75 74 74 6f 6e 20 0a 6e  |of the button .n|
000003b0  65 77 20 62 6f 72 64 65  72 20 74 79 70 65 73 0a  |ew border types.|
000003c0  0a 2a 63 6f 6d 6d 61 6e  64 20 74 6f 20 61 6c 6c  |.*command to all|
000003d0  6f 77 20 63 68 61 6e 67  65 73 20 69 6e 20 74 68  |ow changes in th|
000003e0  65 20 73 6c 61 62 62 69  6e 67 20 63 6f 6c 6f 75  |e slabbing colou|
000003f0  72 73 2e 0a 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |rs...-----------|
00000400  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000440  2d 2d 2d 2d 2d 0a 54 68  69 73 20 6d 61 6e 75 61  |-----.This manua|
00000450  6c 20 61 6e 64 20 73 6f  66 74 77 61 72 65 20 69  |l and software i|
00000460  73 20 70 75 62 6c 69 63  20 64 6f 6d 61 69 6e 2e  |s public domain.|
00000470  20 20 49 74 20 6d 61 79  20 62 65 20 63 6f 70 69  |  It may be copi|
00000480  65 64 20 61 6e 64 20 64  69 73 74 72 69 62 75 74  |ed and distribut|
00000490  65 64 20 66 72 65 65 6c  79 0a 61 73 20 6c 6f 6e  |ed freely.as lon|
000004a0  67 20 61 73 3a 0a 0a 20  20 20 20 20 20 20 49 74  |g as:..       It|
000004b0  20 69 73 20 6e 6f 74 20  73 65 70 61 72 61 74 65  | is not separate|
000004c0  64 20 66 72 6f 6d 20 74  68 65 20 64 6f 63 75 6d  |d from the docum|
000004d0  65 6e 74 61 74 69 6f 6e  20 28 65 78 63 65 70 74  |entation (except|
000004e0  20 66 6f 72 20 63 6f 6d  6d 65 72 63 69 61 6c 20  | for commercial |
000004f0  75 73 65 29 0a 20 20 20  20 20 20 20 54 68 65 20  |use).       The |
00000500  6d 6f 64 75 6c 65 20 69  73 20 6e 6f 74 20 74 61  |module is not ta|
00000510  6d 70 65 72 65 64 20 77  69 74 68 0a 20 20 20 20  |mpered with.    |
00000520  20 20 20 59 6f 75 20 64  6f 20 6e 6f 74 20 63 6c  |   You do not cl|
00000530  61 69 6d 20 74 68 61 74  20 79 6f 75 20 68 61 76  |aim that you hav|
00000540  65 20 77 72 69 74 74 65  6e 20 74 68 65 20 6d 6f  |e written the mo|
00000550  64 75 6c 65 0a 20 20 20  20 20 20 20 44 6f 20 6e  |dule.       Do n|
00000560  6f 74 20 75 73 65 20 61  6e 79 20 6f 66 20 74 68  |ot use any of th|
00000570  65 20 63 6f 64 65 20 63  6f 6e 74 61 69 6e 65 64  |e code contained|
00000580  20 69 6e 20 74 68 69 73  20 6d 6f 64 75 6c 65 20  | in this module |
00000590  69 6e 20 79 6f 75 72 20  6f 77 6e 20 63 6f 64 65  |in your own code|
000005a0  0a 0a 49 66 20 79 6f 75  20 77 69 73 68 20 74 6f  |..If you wish to|
000005b0  20 75 73 65 20 74 68 69  73 20 69 6e 20 61 20 63  | use this in a c|
000005c0  6f 6d 6d 65 72 63 69 61  6c 20 70 72 6f 64 75 63  |ommercial produc|
000005d0  74 20 70 6c 65 61 73 65  20 63 6f 6e 74 61 63 74  |t please contact|
000005e0  20 6d 65 20 73 6f 20 74  68 61 74 20 49 20 63 61  | me so that I ca|
000005f0  6e 20 6d 61 6b 65 20 0a  73 75 72 65 20 79 6f 75  |n make .sure you|
00000600  20 68 61 76 65 20 74 68  65 20 6c 61 74 65 73 74  | have the latest|
00000610  20 72 65 6c 65 61 73 65  2c 20 70 6c 65 61 73 65  | release, please|
00000620  20 73 65 6e 64 20 61 20  64 69 73 6b 2e 0a 0a 49  | send a disk...I|
00000630  6e 20 6e 6f 20 63 69 72  63 75 6d 73 74 61 6e 63  |n no circumstanc|
00000640  65 73 20 73 68 61 6c 6c  20 74 68 65 20 61 75 74  |es shall the aut|
00000650  68 6f 72 20 62 65 20 6c  69 61 62 6c 65 20 66 6f  |hor be liable fo|
00000660  72 20 61 6e 79 20 64 61  6d 61 67 65 2c 20 6c 6f  |r any damage, lo|
00000670  73 73 20 6f 66 20 70 72  6f 66 69 74 73 2c 20 74  |ss of profits, t|
00000680  69 6d 65 20 6f 72 20 0a  64 61 74 61 20 6f 72 20  |ime or .data or |
00000690  61 6e 79 20 69 6e 64 69  72 65 63 74 20 6f 72 20  |any indirect or |
000006a0  63 6f 6e 73 65 71 75 65  6e 74 69 61 6c 20 6c 6f  |consequential lo|
000006b0  73 73 20 72 69 73 69 6e  67 20 6f 75 74 20 6f 66  |ss rising out of|
000006c0  20 74 68 65 20 75 73 65  20 6f 66 20 74 68 69 73  | the use of this|
000006d0  20 73 6f 66 74 77 61 72  65 20 6f 72 20 0a 69 6e  | software or .in|
000006e0  61 62 69 6c 69 74 79 20  74 6f 20 75 73 65 20 74  |ability to use t|
000006f0  68 69 73 20 73 6f 66 74  77 61 72 65 2e 0a 0a 43  |his software...C|
00000700  6f 6e 74 61 63 74 73 3a  0a 20 20 20 20 20 20 20  |ontacts:.       |
00000710  41 72 63 61 64 65 20 42  42 53 20 20 20 20 20 20  |Arcade BBS      |
00000720  20 20 20 20 28 30 38 31  20 36 35 34 20 32 32 31  |    (081 654 221|
00000730  32 29 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |2)              |
00000740  20 20 20 20 20 0a 0a 20  20 20 20 20 20 20 41 6c  |     ..       Al|
00000750  6c 20 6d 61 69 6c 20 6f  6e 20 74 68 65 20 61 62  |l mail on the ab|
00000760  6f 76 65 20 42 75 6c 6c  65 74 69 6e 20 42 6f 72  |ove Bulletin Bor|
00000770  64 73 20 73 68 6f 75 6c  64 20 62 65 20 6d 61 69  |ds should be mai|
00000780  6c 65 64 20 74 6f 20 4a  49 43 4b 0a 0a 2a 2a 2a  |led to JICK..***|
00000790  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 20 49 6e  |************* In|
000007a0  74 72 6f 64 75 63 74 69  6f 6e 20 2a 2a 2a 2a 2a  |troduction *****|
000007b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000007d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0a 20 0a 49 6e 74  |**********. .Int|
000007e0  65 72 66 61 63 65 20 69  73 20 61 20 73 6d 61 6c  |erface is a smal|
000007f0  6c 20 6d 6f 64 75 6c 65  20 74 68 61 74 20 61 6c  |l module that al|
00000800  6c 6f 77 73 20 61 70 70  6c 69 63 61 74 69 6f 6e  |lows application|
00000810  20 70 72 6f 67 72 61 6d  6d 65 72 73 20 74 6f 20  | programmers to |
00000820  69 6d 70 6c 65 6d 65 6e  74 20 61 20 0a 63 6f 6c  |implement a .col|
00000830  6f 75 72 66 75 6c 20 61  6e 64 20 70 6c 65 61 73  |ourful and pleas|
00000840  61 6e 74 20 67 72 61 70  68 69 63 61 6c 20 75 73  |ant graphical us|
00000850  65 72 20 69 6e 74 65 72  66 61 63 65 2e 20 20 49  |er interface.  I|
00000860  6e 74 65 72 66 61 63 65  20 70 72 6f 76 69 64 65  |nterface provide|
00000870  73 20 6d 61 6e 79 20 6d  6f 72 65 20 0a 66 75 6e  |s many more .fun|
00000880  63 74 69 6f 6e 73 20 74  68 61 74 20 61 6c 6c 6f  |ctions that allo|
00000890  77 73 20 79 6f 75 20 74  6f 20 63 68 61 6e 67 65  |ws you to change|
000008a0  20 74 68 65 20 70 6f 69  6e 74 65 72 20 73 68 61  | the pointer sha|
000008b0  70 65 20 65 61 73 69 6c  79 20 61 6e 64 20 74 6f  |pe easily and to|
000008c0  20 69 6e 74 65 72 66 61  63 65 20 77 69 74 68 20  | interface with |
000008d0  74 68 65 20 0a 21 48 65  6c 70 20 6f 72 20 21 53  |the .!Help or !S|
000008e0  70 79 20 61 70 70 6c 69  63 61 74 69 6f 6e 2e 0a  |py application..|
000008f0  0a 54 68 65 20 49 6e 74  65 72 66 61 63 65 20 6d  |.The Interface m|
00000900  6f 64 75 6c 65 20 70 72  6f 76 69 64 65 73 20 66  |odule provides f|
00000910  75 6e 63 74 69 6f 6e 73  20 74 6f 20 69 6d 70 72  |unctions to impr|
00000920  6f 76 65 20 74 68 65 20  66 72 69 65 6e 64 6c 69  |ove the friendli|
00000930  6e 65 73 73 20 61 6e 64  20 61 70 70 65 61 72 61  |ness and appeara|
00000940  6e 63 65 20 0a 6f 66 20  74 68 65 20 61 70 70 6c  |nce .of the appl|
00000950  69 63 61 74 69 6f 6e 2e  20 54 68 65 20 61 70 70  |ication. The app|
00000960  6c 69 63 61 74 69 6f 6e  20 73 68 6f 75 6c 64 20  |lication should |
00000970  73 74 69 6c 6c 20 6f 70  65 72 61 74 65 20 61 73  |still operate as|
00000980  20 73 74 61 74 65 64 20  69 6e 20 20 74 68 65 20  | stated in  the |
00000990  41 63 6f 72 6e 20 0a 67  75 69 64 65 6c 69 6e 65  |Acorn .guideline|
000009a0  73 20 69 6e 20 74 68 65  20 50 72 6f 67 72 61 6d  |s in the Program|
000009b0  6d 65 72 73 20 52 65 66  65 72 65 6e 63 65 20 4d  |mers Reference M|
000009c0  61 6e 75 61 6c 73 2e 0a  0a 54 68 65 20 6d 6f 64  |anuals...The mod|
000009d0  75 6c 65 20 69 6d 70 6c  65 6d 65 6e 74 73 20 61  |ule implements a|
000009e0  20 6e 75 6d 62 65 72 20  6f 66 20 53 57 49 73 20  | number of SWIs |
000009f0  77 68 69 63 68 20 61 72  65 20 64 65 73 63 72 69  |which are descri|
00000a00  62 65 64 20 66 75 72 74  68 65 72 20 69 6e 20 74  |bed further in t|
00000a10  68 69 73 20 0a 6d 61 6e  75 61 6c 2c 20 74 68 65  |his .manual, the|
00000a20  73 65 20 53 57 49 20 63  61 6c 6c 73 20 63 61 6e  |se SWI calls can|
00000a30  20 62 65 20 63 61 6c 6c  65 64 20 66 72 6f 6d 20  | be called from |
00000a40  61 6e 79 20 6c 61 6e 67  75 61 67 65 2e 20 20 4d  |any language.  M|
00000a50  6f 73 74 20 6f 66 20 74  68 65 20 66 75 6e 63 74  |ost of the funct|
00000a60  69 6f 6e 73 20 0a 70 72  6f 76 69 64 65 64 20 61  |ions .provided a|
00000a70  72 65 20 73 70 65 63 69  66 69 65 64 20 69 6e 20  |re specified in |
00000a80  74 68 65 20 69 63 6f 6e  73 20 76 61 6c 69 64 61  |the icons valida|
00000a90  74 69 6f 6e 20 73 74 72  69 6e 67 2c 20 61 6e 64  |tion string, and|
00000aa0  20 73 6f 20 6e 6f 20 63  6f 6d 70 6c 65 78 20 0a  | so no complex .|
00000ab0  70 72 6f 67 72 61 6d 6d  69 6e 67 20 69 73 20 6e  |programming is n|
00000ac0  65 65 64 65 64 20 74 6f  20 6d 61 6b 65 20 74 68  |eeded to make th|
00000ad0  65 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 6c 6f  |e application lo|
00000ae0  6f 6b 20 67 6f 6f 64 2e  0a 0a 54 68 69 73 20 67  |ok good...This g|
00000af0  75 69 64 65 20 74 65 6c  6c 73 20 79 6f 75 20 68  |uide tells you h|
00000b00  6f 77 20 74 6f 20 66 75  6c 6c 79 20 69 6d 70 6c  |ow to fully impl|
00000b10  65 6d 65 6e 74 20 74 68  65 20 66 65 61 74 75 72  |ement the featur|
00000b20  65 73 20 6f 66 20 49 6e  74 65 72 66 61 63 65 2e  |es of Interface.|
00000b30  20 20 49 74 20 69 73 20  73 70 6c 69 74 20 69 6e  |  It is split in|
00000b40  74 6f 20 0a 74 68 65 20  66 6f 6c 6c 6f 77 20 73  |to .the follow s|
00000b50  65 63 74 69 6f 6e 73 3a  0a 0a 20 20 20 20 20 20  |ections:..      |
00000b60  20 20 54 68 65 20 66 69  72 73 74 20 73 65 63 74  |  The first sect|
00000b70  69 6f 6e 20 65 78 70 6c  61 69 6e 73 20 74 68 65  |ion explains the|
00000b80  20 76 61 6c 69 64 61 74  69 6f 6e 20 73 74 72 69  | validation stri|
00000b90  6e 67 73 20 6f 70 74 69  6f 6e 73 20 70 72 6f 76  |ngs options prov|
00000ba0  69 64 65 64 0a 20 20 20  20 20 20 20 20 62 79 20  |ided.        by |
00000bb0  49 6e 74 65 72 66 61 63  65 2e 0a 20 20 20 20 20  |Interface..     |
00000bc0  20 20 20 54 68 65 20 6e  65 78 74 20 73 65 63 74  |   The next sect|
00000bd0  69 6f 6e 20 67 69 76 65  73 20 64 65 74 61 69 6c  |ion gives detail|
00000be0  73 20 6f 66 20 74 68 65  20 53 57 49 20 63 61 6c  |s of the SWI cal|
00000bf0  6c 73 20 70 72 6f 76 69  64 65 64 2e 0a 20 20 20  |ls provided..   |
00000c00  20 20 20 20 20 54 68 65  20 72 65 6d 61 69 6e 69  |     The remaini|
00000c10  6e 67 20 73 65 63 74 69  6f 6e 20 63 6f 76 65 72  |ng section cover|
00000c20  73 20 68 69 6e 74 73 20  61 6e 64 20 74 69 70 73  |s hints and tips|
00000c30  20 6f 6e 20 70 72 6f 67  72 61 6d 6d 69 6e 67 2e  | on programming.|
00000c40  0a 0a 0a 0a 0a 0a 0a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.......*********|
00000c50  2a 2a 2a 2a 2a 2a 2a 20  54 65 63 68 6e 69 63 61  |******* Technica|
00000c60  6c 20 64 65 74 61 69 6c  73 20 2a 2a 2a 2a 2a 2a  |l details ******|
00000c70  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000c90  2a 2a 2a 2a 2a 2a 2a 2a  2a 0a 0a 41 6e 20 69 6e  |*********..An in|
00000ca0  64 69 72 65 63 74 65 64  20 74 65 78 74 20 69 63  |directed text ic|
00000cb0  6f 6e 20 63 61 6e 20 68  61 76 65 20 61 20 76 61  |on can have a va|
00000cc0  6c 69 64 61 74 69 6f 6e  20 73 74 72 69 6e 67 20  |lidation string |
00000cd0  77 68 69 63 68 20 69 73  20 75 73 65 64 20 74 6f  |which is used to|
00000ce0  20 70 61 73 73 20 66 75  72 74 68 65 72 20 0a 69  | pass further .i|
00000cf0  6e 66 6f 72 6d 61 74 69  6f 6e 20 74 6f 20 74 68  |nformation to th|
00000d00  65 20 57 49 4d 50 2c 20  73 75 63 68 20 61 73 20  |e WIMP, such as |
00000d10  77 68 61 74 20 62 6f 72  64 65 72 20 74 79 70 65  |what border type|
00000d20  20 74 68 65 20 69 63 6f  6e 20 68 61 73 20 61 6e  | the icon has an|
00000d30  64 20 61 6c 73 6f 20 77  68 61 74 20 0a 70 6f 69  |d also what .poi|
00000d40  6e 74 65 72 2c 20 69 66  20 61 6e 79 20 73 68 6f  |nter, if any sho|
00000d50  75 6c 64 20 62 65 20 64  69 73 70 6c 61 79 65 64  |uld be displayed|
00000d60  20 77 68 69 6c 73 74 20  6f 76 65 72 20 74 68 69  | whilst over thi|
00000d70  73 20 69 63 6f 6e 2e 20  20 54 68 65 20 73 79 6e  |s icon.  The syn|
00000d80  74 61 78 20 6f 66 20 61  20 76 61 6c 69 64 61 74  |tax of a validat|
00000d90  69 6f 6e 20 0a 73 74 72  69 6e 67 20 69 73 3a 0a  |ion .string is:.|
00000da0  0a 20 20 76 61 6c 69 64  61 74 69 6f 6e 20 73 74  |.  validation st|
00000db0  72 69 6e 67 20 3a 3a 2d  20 63 6f 6d 6d 61 6e 64  |ring ::- command|
00000dc0  20 7b 3b 63 6f 6d 6d 61  6e 64 7d 2a 0a 20 20 63  | {;command}*.  c|
00000dd0  6f 6d 6d 61 6e 64 20 20  20 20 20 20 20 20 20 20  |ommand          |
00000de0  20 3a 3a 2d 20 28 62 20  7c 20 7a 29 20 62 6f 72  | ::- (b | z) bor|
00000df0  64 65 72 2d 74 79 70 65  20 7b 62 6f 72 64 65 72  |der-type {border|
00000e00  2d 73 70 65 63 7d 20 7c  20 0a 20 20 20 20 20 20  |-spec} | .      |
00000e10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000e20  20 20 72 20 6f 6e 2f 6f  66 66 2d 74 79 70 65 20  |  r on/off-type |
00000e30  7b 2c 69 63 6f 6e 2d 6e  75 6d 62 65 72 7d 2a 20  |{,icon-number}* |
00000e40  7c 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||.              |
00000e50  20 20 20 20 20 20 20 20  20 20 75 20 6f 6e 2f 6f  |          u on/o|
00000e60  66 66 2d 74 79 70 65 20  7b 2c 69 63 6f 6e 2d 6e  |ff-type {,icon-n|
00000e70  75 6d 62 65 72 7d 2a 20  7c 0a 20 20 20 20 20 20  |umber}* |.      |
00000e80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000e90  20 20 70 20 74 65 78 74  2d 73 74 72 69 6e 67 20  |  p text-string |
00000ea0  7b 2c 78 7d 20 7b 2c 79  7d 20 7c 0a 20 20 20 20  |{,x} {,y} |.    |
00000eb0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000ec0  20 20 20 20 69 20 74 65  78 74 2d 73 74 72 69 6e  |    i text-strin|
00000ed0  67 20 7c 0a 20 20 20 20  20 20 20 20 20 20 20 20  |g |.            |
00000ee0  20 20 20 20 20 20 20 20  20 20 20 20 6b 20 6b 65  |            k ke|
00000ef0  79 2d 63 6f 64 65 0a 20  20 62 6f 72 64 65 72 2d  |y-code.  border-|
00000f00  73 70 65 63 20 20 20 20  20 20 20 3a 3a 2d 20 7b  |spec       ::- {|
00000f10  2c 62 75 74 74 6f 6e 2d  73 6c 61 62 62 69 6e 67  |,button-slabbing|
00000f20  2d 6d 61 73 6b 7d 20 7b  2c 73 6c 61 62 62 69 6e  |-mask} {,slabbin|
00000f30  67 2d 74 69 6d 65 7d 20  7b 2c 63 6f 6c 6f 75 72  |g-time} {,colour|
00000f40  7d 2a 0a 0a 54 68 65 20  70 61 72 61 6d 65 74 65  |}*..The paramete|
00000f50  72 73 20 61 62 6f 76 65  20 61 72 65 20 64 65 73  |rs above are des|
00000f60  63 72 69 62 65 64 20 75  6e 64 65 72 20 74 68 65  |cribed under the|
00000f70  20 72 65 6c 65 76 61 6e  74 20 76 61 6c 69 64 61  | relevant valida|
00000f80  74 69 6f 6e 20 63 6f 6d  6d 61 6e 64 2e 0a 49 6e  |tion command..In|
00000f90  20 73 69 6d 70 6c 65 20  74 65 72 6d 73 2c 20 61  | simple terms, a|
00000fa0  20 76 61 6c 69 64 61 74  69 6f 6e 20 73 74 72 69  | validation stri|
00000fb0  6e 67 20 63 6f 6e 73 69  73 74 73 20 6f 66 20 61  |ng consists of a|
00000fc0  20 73 65 72 69 65 73 20  6f 66 20 27 63 6f 6d 6d  | series of 'comm|
00000fd0  61 6e 64 73 27 2c 20 65  61 63 68 20 73 74 61 72  |ands', each star|
00000fe0  74 69 6e 67 20 0a 77 69  74 68 20 61 20 73 69 6e  |ting .with a sin|
00000ff0  67 6c 65 20 6c 65 74 74  65 72 20 61 6e 64 20 73  |gle letter and s|
00001000  65 70 65 72 61 74 65 64  20 66 72 6f 6d 20 74 68  |eperated from th|
00001010  65 20 66 6f 6c 6c 6f 77  69 6e 67 20 63 6f 6d 6d  |e following comm|
00001020  61 6e 64 20 62 79 20 61  20 73 65 6d 69 2d 63 6f  |and by a semi-co|
00001030  6c 6f 6e 2e 20 20 0a 7b  7d 2a 20 6d 65 61 6e 73  |lon.  .{}* means|
00001040  20 7a 65 72 6f 20 6f 72  20 6d 6f 72 65 20 6f 66  | zero or more of|
00001050  20 74 68 65 20 74 68 69  6e 67 20 69 6e 73 69 64  | the thing insid|
00001060  65 20 74 68 65 20 7b 7d  2e 20 20 54 68 65 20 66  |e the {}.  The f|
00001070  6f 6c 6c 6f 77 69 6e 67  20 63 6f 6d 6d 61 6e 64  |ollowing command|
00001080  73 20 61 72 65 20 0a 61  76 61 69 6c 61 62 6c 65  |s are .available|
00001090  20 77 69 74 68 20 74 68  65 20 49 6e 74 65 72 66  | with the Interf|
000010a0  61 63 65 20 6d 6f 64 75  6c 65 2e 0a 0a 54 68 65  |ace module...The|
000010b0  73 65 20 63 6f 6d 6d 61  6e 64 73 20 61 72 65 20  |se commands are |
000010c0  70 72 6f 76 69 64 65 64  20 69 6e 20 61 64 64 69  |provided in addi|
000010d0  74 69 6f 6e 20 74 6f 20  74 68 65 20 73 74 61 6e  |tion to the stan|
000010e0  64 61 72 64 20 57 69 6d  70 20 76 61 6c 69 64 61  |dard Wimp valida|
000010f0  74 69 6f 6e 20 73 74 72  69 6e 67 73 2e 20 20 0a  |tion strings.  .|
00001100  49 20 73 75 67 67 65 73  74 20 74 68 61 74 20 79  |I suggest that y|
00001110  6f 75 20 65 64 69 74 20  74 68 65 20 21 46 6f 72  |ou edit the !For|
00001120  6d 45 64 20 70 72 6f 67  72 61 6d 20 74 6f 20 61  |mEd program to a|
00001130  6c 6c 6f 77 20 79 6f 75  20 74 6f 20 65 6e 74 65  |llow you to ente|
00001140  72 20 6c 61 72 67 65 72  20 76 61 6c 69 64 61 74  |r larger validat|
00001150  69 6f 6e 20 0a 73 74 72  69 6e 67 73 2c 20 6f 74  |ion .strings, ot|
00001160  68 65 72 77 69 73 65 20  77 68 65 6e 20 65 6e 74  |herwise when ent|
00001170  65 72 69 6e 67 20 61 20  68 65 6c 70 20 63 6f 6d  |ering a help com|
00001180  6d 61 6e 64 20 79 6f 75  20 77 69 6c 6c 20 6f 6e  |mand you will on|
00001190  6c 79 20 62 65 20 61 6c  6c 6f 77 65 64 20 61 20  |ly be allowed a |
000011a0  0a 6d 61 78 69 6d 75 6d  20 6f 66 20 38 30 20 63  |.maximum of 80 c|
000011b0  68 61 72 61 63 74 65 72  73 2e 0a 0a 54 68 65 20  |haracters...The |
000011c0  28 42 29 6f 72 64 65 72  20 63 6f 6d 6d 61 6e 64  |(B)order command|
000011d0  20 74 65 6c 6c 73 20 49  6e 74 65 72 66 61 63 65  | tells Interface|
000011e0  20 77 68 69 63 68 20 62  6f 72 64 65 72 20 74 6f  | which border to|
000011f0  20 75 73 65 20 77 68 65  6e 20 72 65 6e 64 65 72  | use when render|
00001200  69 6e 67 20 61 6e 20 69  63 6f 6e 2e 20 20 0a 54  |ing an icon.  .T|
00001210  68 65 20 62 6f 72 64 65  72 20 74 79 70 65 73 20  |he border types |
00001220  61 76 61 69 6c 61 62 6c  65 20 61 74 20 70 72 65  |available at pre|
00001230  73 65 6e 74 20 61 72 65  20 3a 0a 0a 20 20 20 20  |sent are :..    |
00001240  20 20 20 20 62 6f 72 64  65 72 20 74 79 70 65 20  |    border type |
00001250  30 2c 20 74 68 69 73 20  69 73 20 61 20 73 69 6e  |0, this is a sin|
00001260  67 6c 65 20 62 6f 72 64  65 72 20 75 73 65 64 20  |gle border used |
00001270  6d 61 69 6e 6c 79 20 66  6f 72 20 68 65 61 64 69  |mainly for headi|
00001280  6e 67 73 20 61 6e 64 20  61 63 74 69 6f 6e 20 69  |ngs and action i|
00001290  63 6f 6e 73 2e 0a 20 20  20 20 20 20 20 20 54 68  |cons..        Th|
000012a0  65 20 69 63 6f 6e 20 77  69 6c 6c 20 73 6c 61 62  |e icon will slab|
000012b0  20 69 6e 77 61 72 64 73  20 69 66 20 74 68 65 20  | inwards if the |
000012c0  75 73 65 72 20 63 6c 69  63 6b 73 20 61 20 62 75  |user clicks a bu|
000012d0  74 74 6f 6e 20 77 68 69  6c 73 74 20 74 68 65 20  |tton whilst the |
000012e0  70 6f 69 6e 74 65 72 20  69 73 20 6f 76 65 72 20  |pointer is over |
000012f0  0a 20 20 20 20 20 20 20  20 74 68 65 20 69 63 6f  |.        the ico|
00001300  6e 20 70 72 6f 76 69 64  69 6e 67 20 69 74 20 69  |n providing it i|
00001310  73 20 6e 6f 74 20 73 65  74 75 70 20 74 6f 20 69  |s not setup to i|
00001320  67 6e 6f 72 65 20 6d 6f  75 73 65 20 63 6c 69 63  |gnore mouse clic|
00001330  6b 73 2e 0a 0a 20 20 20  20 20 20 20 20 62 6f 72  |ks...        bor|
00001340  64 65 72 20 74 79 70 65  20 31 2c 20 74 68 69 73  |der type 1, this|
00001350  20 69 73 20 61 20 64 6f  75 62 6c 65 20 62 6f 72  | is a double bor|
00001360  64 65 72 20 61 6e 64 20  73 68 6f 75 6c 64 20 62  |der and should b|
00001370  65 20 75 73 65 64 20 74  6f 20 67 72 6f 75 70 20  |e used to group |
00001380  74 6f 67 65 74 68 65 72  20 0a 20 20 20 20 20 20  |together .      |
00001390  20 20 69 63 6f 6e 73 20  74 68 61 74 20 70 65 72  |  icons that per|
000013a0  66 6f 72 6d 20 61 6e 20  6f 70 65 72 61 74 69 6f  |form an operatio|
000013b0  6e 2e 0a 0a 20 20 20 20  20 20 20 20 62 6f 72 64  |n...        bord|
000013c0  65 72 20 74 79 70 65 20  32 2c 20 74 68 69 73 20  |er type 2, this |
000013d0  69 73 20 61 20 74 72 69  70 6c 65 20 62 6f 72 64  |is a triple bord|
000013e0  65 72 20 61 6e 64 20 73  68 6f 75 6c 64 20 62 65  |er and should be|
000013f0  20 75 73 65 64 20 6f 6e  20 74 68 65 20 64 65 66  | used on the def|
00001400  61 75 6c 74 20 61 63 74  69 6f 6e 20 20 20 20 20  |ault action     |
00001410  20 20 20 20 0a 20 20 20  20 20 20 20 20 62 75 74  |    .        but|
00001420  74 6f 6e 2e 20 20 54 68  65 20 69 63 6f 6e 20 77  |ton.  The icon w|
00001430  69 6c 6c 20 73 6c 61 62  20 69 6e 77 61 72 64 73  |ill slab inwards|
00001440  20 77 68 65 6e 20 74 68  65 20 75 73 65 72 20 63  | when the user c|
00001450  6c 69 63 6b 73 20 61 20  62 75 74 74 6f 6e 20 77  |licks a button w|
00001460  68 69 6c 73 74 20 74 68  65 20 0a 20 20 20 20 20  |hilst the .     |
00001470  20 20 20 70 6f 69 6e 74  65 72 20 69 73 20 6f 76  |   pointer is ov|
00001480  65 72 20 74 68 69 73 20  69 63 6f 6e 20 70 72 6f  |er this icon pro|
00001490  76 69 64 69 6e 67 20 69  74 20 69 73 20 6e 6f 74  |viding it is not|
000014a0  20 73 65 74 75 70 20 74  6f 20 69 67 6e 6f 72 65  | setup to ignore|
000014b0  20 6d 6f 75 73 65 20 63  6c 69 63 6b 73 2e 0a 0a  | mouse clicks...|
000014c0  20 20 20 20 20 20 20 20  62 6f 72 64 65 72 20 74  |        border t|
000014d0  79 70 65 20 33 2c 20 74  68 69 73 20 69 73 20 61  |ype 3, this is a|
000014e0  20 77 69 64 65 20 69 6e  76 65 72 74 65 64 20 62  | wide inverted b|
000014f0  6f 72 64 65 72 20 61 6e  64 20 73 68 6f 75 6c 64  |order and should|
00001500  20 62 65 20 75 73 65 64  20 6f 6e 20 77 72 69 74  | be used on writ|
00001510  61 62 6c 65 0a 20 20 20  20 20 20 20 20 69 63 6f  |able.        ico|
00001520  6e 73 2e 20 20 54 68 69  73 20 62 6f 72 64 65 72  |ns.  This border|
00001530  20 74 79 70 65 20 69 73  20 75 73 75 61 6c 6c 79  | type is usually|
00001540  20 75 73 65 64 20 69 6e  2d 63 6f 6e 6a 75 6e 63  | used in-conjunc|
00001550  74 69 6f 6e 20 77 69 74  68 20 74 68 65 20 77 72  |tion with the wr|
00001560  69 74 61 62 6c 65 0a 20  20 20 20 20 20 20 20 70  |itable.        p|
00001570  6f 69 6e 74 65 72 2e 0a  20 20 20 20 20 20 20 20  |ointer..        |
00001580  0a 20 20 20 20 20 20 20  20 62 6f 72 64 65 72 20  |.        border |
00001590  74 79 70 65 20 34 2c 20  74 68 69 73 20 69 73 20  |type 4, this is |
000015a0  61 6e 20 69 6e 76 65 72  74 65 64 20 76 65 72 73  |an inverted vers|
000015b0  69 6f 6e 20 6f 66 20 62  6f 72 64 65 72 20 74 79  |ion of border ty|
000015c0  70 65 20 30 0a 20 20 20  20 20 20 20 20 0a 20 20  |pe 0.        .  |
000015d0  20 20 20 20 20 20 62 6f  72 64 65 72 20 74 79 70  |      border typ|
000015e0  65 20 35 2c 20 74 68 69  73 20 69 73 20 61 20 64  |e 5, this is a d|
000015f0  6f 75 62 6c 65 20 77 69  64 65 20 62 6f 72 64 65  |ouble wide borde|
00001600  72 20 61 73 20 75 73 65  64 20 62 79 20 61 63 6f  |r as used by aco|
00001610  72 6e 20 69 6e 20 72 6f  73 20 33 0a 20 20 20 20  |rn in ros 3.    |
00001620  20 20 20 20 0a 20 20 20  20 20 20 20 20 62 6f 72  |    .        bor|
00001630  64 65 72 20 74 79 70 65  20 36 2c 20 65 74 63 68  |der type 6, etch|
00001640  65 64 20 69 6e 20 62 6f  72 64 65 72 0a 20 20 20  |ed in border.   |
00001650  20 20 20 20 20 0a 20 20  20 20 20 20 20 20 62 6f  |     .        bo|
00001660  72 64 65 72 20 74 79 70  65 20 37 2c 20 73 69 6d  |rder type 7, sim|
00001670  69 6c 61 72 20 74 6f 20  62 6f 72 64 65 72 20 74  |ilar to border t|
00001680  79 70 65 20 30 2c 20 74  68 69 6e 6e 65 72 20 69  |ype 0, thinner i|
00001690  6e 20 6d 6f 64 65 20 32  30 0a 0a 54 68 65 20 73  |n mode 20..The s|
000016a0  65 63 6f 6e 64 20 6f 70  74 69 6f 6e 61 6c 20 70  |econd optional p|
000016b0  61 72 61 6d 65 74 65 72  20 69 73 20 74 68 65 20  |arameter is the |
000016c0  62 75 74 74 6f 6e 20 73  6c 61 62 62 69 6e 67 20  |button slabbing |
000016d0  6d 61 73 6b 2c 20 74 68  69 73 20 73 74 61 74 65  |mask, this state|
000016e0  73 20 77 68 65 74 68 65  72 20 74 68 65 20 0a 69  |s whether the .i|
000016f0  63 6f 6e 20 73 68 6f 75  6c 64 20 62 65 20 73 6c  |con should be sl|
00001700  61 62 62 65 64 20 75 6e  74 69 6c 20 74 68 65 20  |abbed until the |
00001710  62 75 74 74 6f 6e 20 69  73 20 72 65 6c 65 61 73  |button is releas|
00001720  65 64 2e 20 20 54 68 65  20 76 61 6c 75 65 73 20  |ed.  The values |
00001730  63 6f 6e 74 61 69 6e 65  64 20 69 6e 20 74 68 69  |contained in thi|
00001740  73 20 0a 70 61 72 61 6d  65 74 65 72 20 63 61 6e  |s .parameter can|
00001750  20 62 65 20 66 72 6f 6d  20 30 20 74 6f 20 37 2e  | be from 0 to 7.|
00001760  20 20 54 68 65 20 62 75  74 74 6f 6e 20 73 6c 61  |  The button sla|
00001770  62 62 69 6e 67 20 6d 61  73 6b 20 63 61 6e 20 62  |bbing mask can b|
00001780  65 20 63 61 6c 63 75 6c  61 74 65 64 20 69 6e 20  |e calculated in |
00001790  74 68 65 20 0a 66 6f 6c  6c 6f 77 69 6e 67 20 77  |the .following w|
000017a0  61 79 3a 0a 0a 20 20 20  20 20 20 20 20 56 61 6c  |ay:..        Val|
000017b0  75 65 20 20 20 42 75 74  74 6f 6e 20 20 20 20 20  |ue   Button     |
000017c0  20 20 20 20 20 4d 65 61  6e 69 6e 67 0a 20 20 20  |     Meaning.   |
000017d0  20 20 20 20 20 31 20 20  20 20 20 20 20 41 64 6a  |     1       Adj|
000017e0  75 73 74 20 20 73 6c 61  62 20 69 63 6f 6e 20 75  |ust  slab icon u|
000017f0  6e 74 69 6c 20 61 64 6a  75 73 74 20 69 73 20 72  |ntil adjust is r|
00001800  65 6c 65 61 73 65 64 0a  20 20 20 20 20 20 20 20  |eleased.        |
00001810  32 20 20 20 20 20 20 20  4d 65 6e 75 20 20 20 20  |2       Menu    |
00001820  73 6c 61 62 20 69 63 6f  6e 20 75 6e 74 69 6c 20  |slab icon until |
00001830  6d 65 6e 75 20 69 73 20  72 65 6c 65 61 73 65 64  |menu is released|
00001840  0a 20 20 20 20 20 20 20  20 34 20 20 20 20 20 20  |.        4      |
00001850  20 53 65 6c 65 63 74 20  20 73 6c 61 62 20 69 63  | Select  slab ic|
00001860  6f 6e 20 75 6e 74 69 6c  20 73 65 6c 65 63 74 20  |on until select |
00001870  69 73 20 72 65 6c 65 61  73 65 64 0a 0a 54 68 65  |is released..The|
00001880  20 62 75 74 74 6f 6e 20  73 6c 61 62 62 69 6e 67  | button slabbing|
00001890  20 6d 61 73 6b 20 63 61  6e 20 74 68 65 6e 20 62  | mask can then b|
000018a0  65 20 63 61 6c 63 75 6c  61 74 65 64 20 62 79 20  |e calculated by |
000018b0  61 64 64 69 6e 67 20 74  6f 67 65 74 68 65 72 20  |adding together |
000018c0  74 68 65 20 72 65 71 75  69 72 65 64 20 0a 62 75  |the required .bu|
000018d0  74 74 6f 6e 20 76 61 6c  75 65 73 2e 20 20 0a 0a  |tton values.  ..|
000018e0  54 68 65 20 62 75 74 74  6f 6e 20 73 6c 61 62 62  |The button slabb|
000018f0  69 6e 67 20 74 69 6d 65  20 69 73 20 74 68 65 20  |ing time is the |
00001900  6d 69 6e 69 6d 75 6d 20  74 69 6d 65 20 74 68 61  |minimum time tha|
00001910  74 20 74 68 65 20 69 63  6f 6e 20 77 69 6c 6c 20  |t the icon will |
00001920  62 65 20 73 6c 61 62 62  65 64 20 66 6f 72 2c 20  |be slabbed for, |
00001930  74 68 65 20 0a 64 65 66  61 75 6c 74 20 74 69 6d  |the .default tim|
00001940  65 20 69 73 20 66 6f 72  20 31 35 63 73 2e 20 20  |e is for 15cs.  |
00001950  54 68 69 73 20 76 61 6c  75 65 20 69 73 20 61 20  |This value is a |
00001960  64 65 63 69 6d 61 6c 20  6e 75 6d 62 65 72 20 69  |decimal number i|
00001970  6e 20 63 65 6e 74 69 2d  73 65 63 6f 6e 64 73 2e  |n centi-seconds.|
00001980  0a 54 68 65 20 63 6f 6c  6f 75 72 73 20 61 72 65  |.The colours are|
00001990  20 73 70 65 63 69 66 69  65 64 20 69 6e 20 74 68  | specified in th|
000019a0  65 20 66 6f 6c 6c 6f 77  69 6e 67 20 6f 72 64 65  |e following orde|
000019b0  72 3a 0a 0a 20 20 20 20  20 20 20 20 7b 2c 62 6f  |r:..        {,bo|
000019c0  72 64 65 72 20 63 6f 6c  6f 75 72 31 7d 20 7b 2c  |rder colour1} {,|
000019d0  62 6f 72 64 65 72 20 63  6f 6c 6f 75 72 32 7d 20  |border colour2} |
000019e0  7b 2c 73 6c 61 62 62 69  6e 67 20 6f 75 74 20 63  |{,slabbing out c|
000019f0  6f 6c 6f 75 72 7d 20 0a  20 20 20 20 20 20 20 20  |olour} .        |
00001a00  7b 2c 73 6c 61 62 62 69  6e 67 20 69 6e 20 63 6f  |{,slabbing in co|
00001a10  6c 6f 75 72 7d 20 7b 2c  69 6e 6e 65 72 20 63 68  |lour} {,inner ch|
00001a20  61 6e 6e 65 6c 20 63 6f  6c 6f 75 72 7d 0a 0a 54  |annel colour}..T|
00001a30  68 65 73 65 20 63 6f 6c  6f 75 72 73 20 63 61 6e  |hese colours can|
00001a40  20 62 65 20 61 6e 79 20  76 61 6c 69 64 20 57 49  | be any valid WI|
00001a50  4d 50 20 63 6f 6c 6f 75  72 20 69 6e 20 74 68 65  |MP colour in the|
00001a60  20 72 61 6e 67 65 20 6f  66 20 30 20 74 6f 20 31  | range of 0 to 1|
00001a70  35 2c 20 74 68 65 20 64  65 66 61 75 6c 74 20 0a  |5, the default .|
00001a80  73 65 6c 65 63 74 69 6f  6e 20 69 73 20 34 2c 20  |selection is 4, |
00001a90  30 2c 20 31 2c 20 31 34  2c 20 31 32 2e 0a 0a 54  |0, 1, 14, 12...T|
00001aa0  68 65 20 28 52 29 61 64  69 6f 20 63 6f 6d 6d 61  |he (R)adio comma|
00001ab0  6e 64 20 73 70 65 63 69  66 69 65 64 20 69 6e 20  |nd specified in |
00001ac0  74 68 65 20 76 61 6c 69  64 61 74 69 6f 6e 20 73  |the validation s|
00001ad0  74 72 69 6e 67 20 69 73  20 75 73 65 64 20 74 6f  |tring is used to|
00001ae0  20 73 65 74 20 74 68 65  20 73 74 61 74 65 20 6f  | set the state o|
00001af0  66 20 0a 6f 74 68 65 72  20 72 61 64 69 6f 20 62  |f .other radio b|
00001b00  75 74 74 6f 6e 20 74 79  70 65 20 69 63 6f 6e 73  |utton type icons|
00001b10  2e 20 20 54 68 65 20 52  20 63 6f 6d 6d 61 6e 64  |.  The R command|
00001b20  20 69 73 20 66 6f 6c 6c  6f 77 65 64 20 62 79 20  | is followed by |
00001b30  61 20 64 65 63 69 6d 61  6c 20 6e 75 6d 62 65 72  |a decimal number|
00001b40  20 69 6e 20 0a 74 68 65  20 72 61 6e 67 65 20 30  | in .the range 0|
00001b50  20 74 6f 20 32 2c 20 74  68 65 20 61 63 74 69 6f  | to 2, the actio|
00001b60  6e 20 74 68 61 74 20 74  68 65 73 65 20 70 65 72  |n that these per|
00001b70  66 6f 72 6d 20 69 73 3a  0a 0a 20 20 20 20 20 20  |form is:..      |
00001b80  20 20 52 61 64 69 6f 20  74 79 70 65 20 20 20 20  |  Radio type    |
00001b90  20 20 20 20 20 20 20 20  20 20 4f 70 65 72 61 74  |          Operat|
00001ba0  69 6f 6e 0a 20 20 20 20  20 20 20 20 30 20 20 20  |ion.        0   |
00001bb0  20 20 20 20 20 20 20 20  20 20 20 20 74 68 69 73  |            this|
00001bc0  20 68 61 73 20 74 68 65  20 65 66 66 65 63 74 20  | has the effect |
00001bd0  6f 66 20 73 77 69 74 63  68 69 6e 67 20 6f 66 66  |of switching off|
00001be0  20 74 68 65 20 73 70 65  63 69 66 69 65 64 20 69  | the specified i|
00001bf0  63 6f 6e 28 73 29 2e 0a  20 20 20 20 20 20 20 20  |con(s)..        |
00001c00  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |1               |
00001c10  74 68 69 73 20 68 61 73  20 74 68 65 20 65 66 66  |this has the eff|
00001c20  65 63 74 20 6f 66 20 73  77 69 74 63 68 69 6e 67  |ect of switching|
00001c30  20 6f 6e 20 74 68 65 20  73 70 65 63 69 66 69 65  | on the specifie|
00001c40  64 20 69 63 6f 6e 28 73  29 2e 20 20 20 20 20 20  |d icon(s).      |
00001c50  0a 20 20 20 20 20 20 20  20 32 20 20 20 20 20 20  |.        2      |
00001c60  20 20 20 20 20 20 20 20  20 74 68 69 73 20 68 61  |         this ha|
00001c70  73 20 74 68 65 20 65 66  66 65 63 74 20 6f 66 20  |s the effect of |
00001c80  74 6f 67 67 6c 69 6e 67  20 74 68 65 20 69 63 6f  |toggling the ico|
00001c90  6e 73 20 63 75 72 72 65  6e 74 20 73 74 61 74 65  |ns current state|
00001ca0  2e 0a 0a 54 68 69 73 20  63 6f 6d 6d 61 6e 64 20  |...This command |
00001cb0  69 73 20 74 68 65 6e 20  66 6f 6c 6c 6f 77 65 64  |is then followed|
00001cc0  20 62 79 20 74 68 65 20  6e 75 6d 62 65 72 73 20  | by the numbers |
00001cd0  6f 66 20 74 68 65 20 69  63 6f 6e 73 20 79 6f 75  |of the icons you|
00001ce0  20 77 69 73 68 20 74 6f  20 61 6c 74 65 72 2c 20  | wish to alter, |
00001cf0  74 68 65 73 65 20 0a 73  68 6f 75 6c 64 20 62 65  |these .should be|
00001d00  20 73 65 70 61 72 61 74  65 64 20 62 79 20 63 6f  | separated by co|
00001d10  6d 6d 61 73 2e 20 20 54  68 69 73 20 63 6f 6d 6d  |mmas.  This comm|
00001d20  61 6e 64 20 6d 61 79 20  62 65 20 73 70 65 63 69  |and may be speci|
00001d30  66 69 65 64 20 6d 6f 72  65 20 74 68 61 6e 20 6f  |fied more than o|
00001d40  6e 63 65 20 69 6e 20 0a  61 20 76 61 6c 69 64 61  |nce in .a valida|
00001d50  74 69 6f 6e 20 73 74 72  69 6e 67 2c 20 66 6f 72  |tion string, for|
00001d60  20 65 78 61 6d 70 6c 65  20 74 6f 20 73 77 69 74  | example to swit|
00001d70  63 68 20 69 63 6f 6e 73  20 31 20 26 20 32 20 6f  |ch icons 1 & 2 o|
00001d80  66 66 2c 20 33 20 26 20  34 20 6f 6e 20 61 6e 64  |ff, 3 & 4 on and|
00001d90  20 74 6f 67 67 6c 65 20  74 68 65 20 0a 73 74 61  | toggle the .sta|
00001da0  74 65 20 6f 66 20 69 63  6f 6e 73 20 35 20 26 20  |te of icons 5 & |
00001db0  36 20 79 6f 75 20 63 6f  75 6c 64 20 75 73 65 20  |6 you could use |
00001dc0  74 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 20 76 61  |the following va|
00001dd0  6c 69 64 61 74 69 6f 6e  20 73 74 72 69 6e 67 0a  |lidation string.|
00001de0  0a 20 20 20 20 20 20 20  20 52 30 2c 31 2c 32 3b  |.        R0,1,2;|
00001df0  52 31 2c 33 2c 34 3b 52  32 2c 35 2c 36 0a 0a 54  |R1,3,4;R2,5,6..T|
00001e00  68 65 20 28 55 29 6e 73  65 6c 65 63 74 61 62 6c  |he (U)nselectabl|
00001e10  65 20 63 6f 6d 6d 61 6e  64 20 69 6e 20 74 68 65  |e command in the|
00001e20  20 76 61 6c 69 64 61 74  69 6f 6e 20 73 74 72 69  | validation stri|
00001e30  6e 67 20 68 61 73 20 74  68 65 20 65 66 66 65 63  |ng has the effec|
00001e40  74 20 6f 66 20 73 68 61  64 69 6e 67 20 74 68 65  |t of shading the|
00001e50  20 0a 69 63 6f 6e 20 67  72 65 79 20 73 6f 20 74  | .icon grey so t|
00001e60  68 61 74 20 69 74 20 63  61 6e 6e 6f 74 20 62 65  |hat it cannot be|
00001e70  20 73 65 6c 65 63 74 65  64 20 62 79 20 74 68 65  | selected by the|
00001e80  20 75 73 65 72 2e 20 20  49 74 20 69 73 20 66 6f  | user.  It is fo|
00001e90  6c 6c 6f 77 65 64 20 62  79 20 61 20 64 65 63 69  |llowed by a deci|
00001ea0  6d 61 6c 20 0a 6e 75 6d  62 65 72 20 69 6e 20 74  |mal .number in t|
00001eb0  68 65 20 72 61 6e 67 65  20 30 20 74 6f 20 32 2c  |he range 0 to 2,|
00001ec0  20 74 68 65 20 61 63 74  69 6f 6e 20 74 68 61 74  | the action that|
00001ed0  20 74 68 65 73 65 20 69  73 20 64 65 73 63 72 69  | these is descri|
00001ee0  62 65 64 20 61 62 6f 76  65 20 69 6e 20 74 68 65  |bed above in the|
00001ef0  20 72 61 64 69 6f 20 0a  63 6f 6d 6d 61 6e 64 2e  | radio .command.|
00001f00  0a 0a 54 68 69 73 20 63  6f 6d 6d 61 6e 64 20 69  |..This command i|
00001f10  73 20 74 68 65 6e 20 66  6f 6c 6c 6f 77 65 64 20  |s then followed |
00001f20  62 79 20 74 68 65 20 6e  75 6d 62 65 72 73 20 6f  |by the numbers o|
00001f30  66 20 74 68 65 20 69 63  6f 6e 73 20 79 6f 75 20  |f the icons you |
00001f40  77 69 73 68 20 74 6f 20  61 6c 74 65 72 2c 20 74  |wish to alter, t|
00001f50  68 65 73 65 20 0a 73 68  6f 75 6c 64 20 62 65 20  |hese .should be |
00001f60  73 65 70 61 72 61 74 65  64 20 62 79 20 63 6f 6d  |separated by com|
00001f70  6d 61 73 2e 20 20 54 68  69 73 20 63 6f 6d 6d 61  |mas.  This comma|
00001f80  6e 64 20 6d 61 79 20 62  65 20 73 70 65 63 69 66  |nd may be specif|
00001f90  69 65 64 20 6d 6f 72 65  20 74 68 61 6e 20 6f 6e  |ied more than on|
00001fa0  63 65 20 69 6e 20 0a 61  20 76 61 6c 69 64 61 74  |ce in .a validat|
00001fb0  69 6f 6e 20 73 74 72 69  6e 67 2c 20 66 6f 72 20  |ion string, for |
00001fc0  65 78 61 6d 70 6c 65 20  74 6f 20 73 68 61 64 65  |example to shade|
00001fd0  20 69 63 6f 6e 73 20 31  20 26 20 32 2c 20 75 6e  | icons 1 & 2, un|
00001fe0  2d 73 68 61 64 65 20 33  20 26 20 34 20 61 6e 64  |-shade 3 & 4 and|
00001ff0  20 74 6f 67 67 6c 65 20  74 68 65 20 0a 73 74 61  | toggle the .sta|
00002000  74 65 20 6f 66 20 69 63  6f 6e 73 20 35 20 26 20  |te of icons 5 & |
00002010  36 20 79 6f 75 20 63 6f  75 6c 64 20 75 73 65 20  |6 you could use |
00002020  74 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 20 76 61  |the following va|
00002030  6c 69 64 61 74 69 6f 6e  20 73 74 72 69 6e 67 0a  |lidation string.|
00002040  0a 20 20 20 20 20 20 20  20 55 30 2c 31 2c 32 3b  |.        U0,1,2;|
00002050  55 31 2c 33 2c 34 3b 55  32 2c 35 2c 36 0a 0a 54  |U1,3,4;U2,5,6..T|
00002060  68 65 20 28 50 29 6f 69  6e 74 65 72 20 63 6f 6d  |he (P)ointer com|
00002070  6d 61 6e 64 20 69 73 20  75 73 65 64 20 74 6f 20  |mand is used to |
00002080  64 65 66 69 6e 65 20 61  20 70 6f 69 6e 74 65 72  |define a pointer|
00002090  20 74 6f 20 62 65 20 64  69 73 70 6c 61 79 65 64  | to be displayed|
000020a0  20 77 68 65 6e 20 74 68  65 20 70 6f 69 6e 74 65  | when the pointe|
000020b0  72 20 0a 69 73 20 6f 76  65 72 20 74 68 61 74 20  |r .is over that |
000020c0  69 63 6f 6e 2e 20 20 54  68 65 20 66 69 72 73 74  |icon.  The first|
000020d0  20 70 61 72 61 6d 65 74  65 72 20 69 73 20 61 20  | parameter is a |
000020e0  73 70 72 69 74 65 20 6e  61 6d 65 20 74 6f 20 75  |sprite name to u|
000020f0  73 65 20 66 6f 72 20 74  68 65 20 70 6f 69 6e 74  |se for the point|
00002100  65 72 2c 20 74 68 69 73  20 0a 73 68 6f 75 6c 64  |er, this .should|
00002110  20 62 65 20 6e 6f 20 6c  6f 6e 67 65 72 20 74 68  | be no longer th|
00002120  61 6e 20 31 32 20 63 68  61 72 61 63 74 65 72 73  |an 12 characters|
00002130  20 61 6e 64 20 73 68 6f  75 6c 64 20 62 65 20 70  | and should be p|
00002140  72 65 73 65 6e 74 20 69  6e 20 74 68 65 20 57 49  |resent in the WI|
00002150  4d 50 20 73 70 72 69 74  65 20 0a 70 6f 6f 6c 2e  |MP sprite .pool.|
00002160  20 20 54 68 65 20 6f 70  74 69 6f 6e 61 6c 20 70  |  The optional p|
00002170  61 72 61 6d 65 74 65 72  73 20 73 70 65 63 69 66  |arameters specif|
00002180  79 20 74 68 65 20 78 20  61 6e 64 20 79 20 6f 66  |y the x and y of|
00002190  66 73 65 74 73 20 74 6f  20 74 68 65 20 61 63 74  |fsets to the act|
000021a0  69 76 65 20 70 6f 69 6e  74 20 69 6e 20 74 68 65  |ive point in the|
000021b0  20 0a 73 70 72 69 74 65  2c 20 74 68 65 73 65 20  | .sprite, these |
000021c0  73 68 6f 75 6c 64 20 62  65 20 73 70 65 63 69 66  |should be specif|
000021d0  69 65 64 20 69 6e 20 70  69 78 65 6c 73 2e 0a 0a  |ied in pixels...|
000021e0  54 68 65 20 28 49 29 6e  66 6f 72 6d 61 74 69 6f  |The (I)nformatio|
000021f0  6e 20 63 6f 6d 6d 61 6e  64 20 69 73 20 75 73 65  |n command is use|
00002200  64 20 74 6f 20 64 65 66  69 6e 65 20 61 20 6d 65  |d to define a me|
00002210  73 73 61 67 65 20 74 6f  20 62 65 20 73 65 6e 74  |ssage to be sent|
00002220  20 74 6f 20 74 68 65 20  69 6e 74 65 72 61 63 74  | to the interact|
00002230  69 76 65 20 0a 68 65 6c  70 20 61 70 70 6c 69 63  |ive .help applic|
00002240  61 74 69 6f 6e 20 77 68  65 6e 20 74 68 65 20 70  |ation when the p|
00002250  6f 69 6e 74 65 72 20 69  73 20 6f 76 65 72 20 74  |ointer is over t|
00002260  68 65 20 69 63 6f 6e 2e  20 20 49 66 20 79 6f 75  |he icon.  If you|
00002270  20 77 69 73 68 20 74 6f  20 75 73 65 20 61 20 73  | wish to use a s|
00002280  65 6d 69 2d 63 6f 6c 6f  6e 20 0a 74 68 65 6e 20  |emi-colon .then |
00002290  79 6f 75 20 6d 75 73 74  20 70 6c 61 63 65 20 74  |you must place t|
000022a0  77 6f 20 6e 65 78 74 20  74 6f 20 65 61 63 68 20  |wo next to each |
000022b0  6f 74 68 65 72 2e 20 20  54 68 65 20 6d 61 78 69  |other.  The maxi|
000022c0  6d 75 6d 20 6c 65 6e 67  74 68 20 6f 66 20 74 68  |mum length of th|
000022d0  65 20 68 65 6c 70 20 0a  6d 65 73 73 61 67 65 20  |e help .message |
000022e0  69 73 20 32 33 35 20 63  68 61 72 61 63 74 65 72  |is 235 character|
000022f0  73 2e 0a 0a 54 68 65 20  49 6e 74 65 72 66 61 63  |s...The Interfac|
00002300  65 20 6d 6f 64 75 6c 65  20 77 69 6c 6c 20 63 68  |e module will ch|
00002310  61 6e 67 65 20 74 6f 20  74 68 65 20 73 70 65 63  |ange to the spec|
00002320  69 66 69 65 64 20 70 6f  69 6e 74 65 72 20 77 68  |ified pointer wh|
00002330  65 6e 20 74 68 65 20 6d  6f 75 73 65 20 70 6f 69  |en the mouse poi|
00002340  6e 74 65 72 20 69 73 20  0a 6f 76 65 72 20 74 68  |nter is .over th|
00002350  65 20 69 63 6f 6e 2f 77  6f 72 6b 61 72 65 61 2c  |e icon/workarea,|
00002360  20 69 66 20 6e 6f 20 70  6f 69 6e 74 65 72 20 69  | if no pointer i|
00002370  73 20 73 70 65 63 69 66  69 65 64 20 74 68 65 6e  |s specified then|
00002380  20 74 68 65 20 70 6f 69  6e 74 65 72 20 77 69 6c  | the pointer wil|
00002390  6c 20 64 65 66 61 75 6c  74 20 74 6f 20 0a 73 68  |l default to .sh|
000023a0  61 70 65 20 6f 6e 65 20  28 74 68 65 20 64 65 66  |ape one (the def|
000023b0  61 75 6c 74 20 61 72 72  6f 77 20 73 68 61 70 65  |ault arrow shape|
000023c0  29 2e 20 20 54 68 65 72  65 20 61 72 65 20 35 20  |).  There are 5 |
000023d0  70 6f 69 6e 74 65 72 20  73 68 61 70 65 73 20 64  |pointer shapes d|
000023e0  65 73 69 67 6e 65 64 20  69 6e 20 74 68 65 20 0a  |esigned in the .|
000023f0  73 70 72 69 74 65 20 66  69 6c 65 20 69 6e 20 74  |sprite file in t|
00002400  68 65 20 21 49 6e 74 65  72 66 61 63 65 20 64 69  |he !Interface di|
00002410  72 65 63 74 6f 72 79 2c  20 74 68 65 73 65 20 61  |rectory, these a|
00002420  72 65 3a 0a 0a 20 20 20  20 20 20 20 20 70 74 72  |re:..        ptr|
00002430  5f 77 72 69 74 65 20 2d  20 74 68 69 73 20 70 6f  |_write - this po|
00002440  69 6e 74 65 72 20 73 68  6f 75 6c 64 20 62 65 20  |inter should be |
00002450  75 73 65 64 20 6f 6e 20  77 72 69 74 61 62 6c 65  |used on writable|
00002460  20 69 63 6f 6e 73 2c 20  74 68 65 20 73 75 67 67  | icons, the sugg|
00002470  65 73 74 65 64 20 61 63  74 69 76 65 0a 20 20 20  |ested active.   |
00002480  20 20 20 20 20 70 6f 69  6e 74 20 69 73 20 61 74  |     point is at|
00002490  20 63 6f 6f 72 64 69 6e  61 74 65 73 20 78 20 3d  | coordinates x =|
000024a0  20 34 2c 20 79 20 3d 20  34 2e 0a 0a 20 20 20 20  | 4, y = 4...    |
000024b0  20 20 20 20 70 74 72 5f  6d 65 6e 75 20 2d 20 74  |    ptr_menu - t|
000024c0  68 69 73 20 70 6f 69 6e  74 65 72 20 69 73 20 75  |his pointer is u|
000024d0  73 65 64 20 77 68 65 72  65 20 61 20 6d 65 6e 75  |sed where a menu|
000024e0  20 63 61 6e 20 62 65 20  61 63 74 69 76 61 74 65  | can be activate|
000024f0  64 20 62 79 20 70 72 65  73 73 69 6e 67 20 74 68  |d by pressing th|
00002500  65 0a 20 20 20 20 20 20  20 20 6d 65 6e 75 20 62  |e.        menu b|
00002510  75 74 74 6f 6e 20 6f 76  65 72 20 74 68 65 20 69  |utton over the i|
00002520  63 6f 6e 2e 20 20 54 68  69 73 20 73 74 6f 70 73  |con.  This stops|
00002530  20 74 68 65 20 75 73 65  72 20 68 61 76 69 6e 67  | the user having|
00002540  20 74 6f 20 73 65 61 72  63 68 20 61 6c 6c 20 6f  | to search all o|
00002550  76 65 72 20 74 68 65 0a  20 20 20 20 20 20 20 20  |ver the.        |
00002560  77 69 6e 64 6f 77 20 74  6f 20 66 69 6e 64 20 77  |window to find w|
00002570  68 65 72 65 20 74 68 65  20 6d 65 6e 75 20 69 73  |here the menu is|
00002580  2e 20 54 68 65 20 73 75  67 67 65 73 74 65 64 20  |. The suggested |
00002590  61 63 74 69 76 65 20 70  6f 69 6e 74 20 69 73 20  |active point is |
000025a0  78 20 3d 20 36 2c 20 79  20 3d 20 35 2e 0a 0a 20  |x = 6, y = 5... |
000025b0  20 20 20 20 20 20 20 70  74 72 5f 64 69 72 65 63  |       ptr_direc|
000025c0  74 20 2d 20 74 68 69 73  20 70 6f 69 6e 74 65 72  |t - this pointer|
000025d0  20 69 73 20 75 73 65 64  20 77 68 65 72 65 20 61  | is used where a|
000025e0  6e 20 6f 62 6a 65 63 74  20 6d 61 79 20 62 65 20  |n object may be |
000025f0  72 65 2d 73 69 7a 65 64  2c 20 74 68 65 20 73 75  |re-sized, the su|
00002600  67 67 65 73 74 65 64 0a  20 20 20 20 20 20 20 20  |ggested.        |
00002610  61 63 74 69 76 65 20 70  6f 69 6e 74 20 69 73 20  |active point is |
00002620  61 74 20 78 20 3d 20 31  33 2c 20 79 20 3d 20 37  |at x = 13, y = 7|
00002630  2e 0a 0a 20 20 20 20 20  20 20 20 70 74 72 5f 68  |...        ptr_h|
00002640  61 6e 64 20 2d 20 74 68  69 73 20 70 6f 69 6e 74  |and - this point|
00002650  65 72 20 69 73 20 75 73  65 64 20 77 68 65 72 65  |er is used where|
00002660  20 61 6e 64 20 69 63 6f  6e 20 6d 61 79 20 62 65  | and icon may be|
00002670  20 64 72 61 67 67 65 64  2e 20 20 49 74 20 69 73  | dragged.  It is|
00002680  20 75 73 75 61 6c 6c 79  20 73 65 74 0a 20 20 20  | usually set.   |
00002690  20 20 20 20 20 6f 6e 20  74 68 65 20 77 6f 72 6b  |     on the work|
000026a0  61 72 65 61 2c 20 62 75  74 20 69 74 20 63 61 6e  |area, but it can|
000026b0  20 62 65 20 75 73 65 64  20 6f 6e 20 61 6e 79 20  | be used on any |
000026c0  69 63 6f 6e 20 28 74 68  65 20 73 61 76 65 20 66  |icon (the save f|
000026d0  69 6c 65 20 69 63 6f 6e  20 6c 6f 6f 6b 73 20 67  |ile icon looks g|
000026e0  72 65 61 74 0a 20 20 20  20 20 20 20 20 77 68 65  |reat.        whe|
000026f0  6e 20 75 73 69 6e 67 20  69 74 29 2c 20 69 74 73  |n using it), its|
00002700  20 73 75 67 67 65 73 74  65 64 20 61 63 74 69 76  | suggested activ|
00002710  65 20 70 6f 69 6e 74 20  69 73 20 61 74 20 78 20  |e point is at x |
00002720  3d 20 31 32 2c 20 79 20  3d 20 38 2e 0a 0a 20 20  |= 12, y = 8...  |
00002730  20 20 20 20 20 20 70 74  72 5f 63 72 6f 73 73 20  |      ptr_cross |
00002740  2d 20 74 68 69 73 20 70  6f 69 6e 74 65 72 20 69  |- this pointer i|
00002750  73 20 75 73 65 64 20 61  73 20 61 20 63 72 6f 73  |s used as a cros|
00002760  73 68 61 69 72 2c 20 69  74 20 69 73 20 74 68 65  |shair, it is the|
00002770  20 73 61 6d 65 20 61 73  20 74 68 65 20 6f 6e 65  | same as the one|
00002780  20 75 73 65 64 20 69 6e  20 74 68 65 0a 20 20 20  | used in the.   |
00002790  20 20 20 20 20 44 72 61  77 20 61 70 70 6c 69 63  |     Draw applic|
000027a0  61 74 69 6f 6e 2e 20 20  54 68 69 73 20 69 63 6f  |ation.  This ico|
000027b0  6e 20 67 69 76 65 73 20  74 68 65 20 75 73 65 72  |n gives the user|
000027c0  20 61 20 70 72 65 63 69  73 65 20 70 6f 69 6e 74  | a precise point|
000027d0  20 77 68 65 6e 20 77 6f  72 6b 69 6e 67 20 77 69  | when working wi|
000027e0  74 68 0a 20 20 20 20 20  20 20 20 6c 69 6e 65 20  |th.        line |
000027f0  64 72 61 77 69 6e 67 73  2c 20 69 74 73 20 73 75  |drawings, its su|
00002800  67 67 65 73 74 65 64 20  61 63 74 69 76 65 20 70  |ggested active p|
00002810  6f 69 6e 74 20 69 73 20  61 74 20 78 20 3d 20 31  |oint is at x = 1|
00002820  33 2c 20 79 20 3d 20 37  2e 0a 0a 59 6f 75 20 6d  |3, y = 7...You m|
00002830  61 79 20 61 6c 73 6f 20  64 65 73 69 67 6e 20 79  |ay also design y|
00002840  6f 75 72 20 6f 77 6e 20  70 6f 69 6e 74 65 72 73  |our own pointers|
00002850  2c 20 77 68 69 63 68 20  73 68 6f 75 6c 64 20 62  |, which should b|
00002860  65 20 6c 6f 61 64 65 64  20 69 6e 74 6f 20 74 68  |e loaded into th|
00002870  65 20 57 49 4d 50 20 0a  73 70 72 69 74 65 20 70  |e WIMP .sprite p|
00002880  6f 6f 6c 2e 20 20 54 68  65 72 65 20 61 72 65 20  |ool.  There are |
00002890  61 20 66 65 77 20 70 6f  69 6e 74 73 20 74 68 61  |a few points tha|
000028a0  74 20 79 6f 75 20 73 68  6f 75 6c 64 20 6e 6f 74  |t you should not|
000028b0  65 20 77 68 65 6e 20 64  65 73 69 67 6e 69 6e 67  |e when designing|
000028c0  20 70 6f 69 6e 74 65 72  73 20 0a 74 68 65 73 65  | pointers .these|
000028d0  20 61 72 65 20 3a 0a 0a  20 20 20 20 20 20 20 20  | are :..        |
000028e0  50 6f 69 6e 74 65 72 20  73 70 72 69 74 65 20 6e  |Pointer sprite n|
000028f0  61 6d 65 73 20 73 68 6f  75 6c 64 20 68 61 76 65  |ames should have|
00002900  20 74 68 65 20 66 6f 72  6d 20 70 74 72 5f 58 58  | the form ptr_XX|
00002910  58 58 58 2c 20 61 6c 74  68 6f 75 67 68 20 74 68  |XXX, although th|
00002920  69 73 20 69 73 20 6e 6f  74 0a 20 20 20 20 20 20  |is is not.      |
00002930  20 20 63 6f 6d 70 75 6c  73 6f 72 79 20 69 74 20  |  compulsory it |
00002940  68 65 6c 70 73 20 73 6f  20 74 68 61 74 20 79 6f  |helps so that yo|
00002950  75 20 64 6f 20 6e 6f 74  20 67 65 74 20 63 6f 6e  |u do not get con|
00002960  66 75 73 65 64 20 77 69  74 68 20 70 6f 69 6e 74  |fused with point|
00002970  65 72 73 20 61 6e 64 20  6e 6f 72 6d 61 6c 0a 20  |ers and normal. |
00002980  20 20 20 20 20 20 20 73  70 72 69 74 65 73 2e 0a  |       sprites..|
00002990  0a 20 20 20 20 20 20 20  20 44 6f 20 6e 6f 74 20  |.        Do not |
000029a0  75 73 65 20 6c 6f 67 69  63 61 6c 20 63 6f 6c 6f  |use logical colo|
000029b0  75 72 20 32 20 69 6e 20  74 68 65 20 70 6f 69 6e  |ur 2 in the poin|
000029c0  74 65 72 20 73 70 72 69  74 65 73 2c 20 61 73 20  |ter sprites, as |
000029d0  74 68 69 73 20 69 73 20  75 6e 61 76 61 69 6c 61  |this is unavaila|
000029e0  62 6c 65 20 69 6e 20 76  65 72 79 0a 20 20 20 20  |ble in very.    |
000029f0  20 20 20 20 68 69 67 68  20 72 65 73 6f 6c 75 74  |    high resolut|
00002a00  69 6f 6e 20 6d 6f 64 65  73 2e 0a 0a 54 68 65 20  |ion modes...The |
00002a10  70 6f 69 6e 74 65 72 73  20 75 73 65 64 20 73 68  |pointers used sh|
00002a20  6f 75 6c 64 20 6f 6e 6c  79 20 62 65 20 76 61 6c  |ould only be val|
00002a30  69 64 20 69 6e 20 79 6f  75 72 20 61 70 70 6c 69  |id in your appli|
00002a40  63 61 74 69 6f 6e 2c 20  73 6f 20 79 6f 75 20 6d  |cation, so you m|
00002a50  75 73 74 20 6e 6f 74 20  6d 61 73 6b 20 0a 6f 75  |ust not mask .ou|
00002a60  74 20 74 68 65 20 50 6f  69 6e 74 65 72 5f 4c 65  |t the Pointer_Le|
00002a70  61 76 69 6e 67 5f 57 69  6e 64 6f 77 20 69 6e 20  |aving_Window in |
00002a80  79 6f 75 72 20 61 70 70  6c 69 63 61 74 69 6f 6e  |your application|
00002a90  2e 20 20 59 6f 75 20 73  68 6f 75 6c 64 20 63 6c  |.  You should cl|
00002aa0  61 69 6d 20 0a 4e 75 6c  6c 5f 52 65 61 73 6f 6e  |aim .Null_Reason|
00002ab0  5f 43 6f 64 65 20 77 68  65 6e 20 70 61 73 73 65  |_Code when passe|
00002ac0  64 20 74 6f 20 79 6f 75  72 20 61 70 70 6c 69 63  |d to your applic|
00002ad0  61 74 69 6f 6e 2c 20 6f  74 68 65 72 77 69 73 65  |ation, otherwise|
00002ae0  20 74 68 65 20 70 6f 69  6e 74 65 72 20 77 69 6c  | the pointer wil|
00002af0  6c 20 6e 6f 74 20 0a 63  68 61 6e 67 65 20 77 68  |l not .change wh|
00002b00  65 6e 20 74 68 65 20 70  6f 69 6e 74 65 72 20 69  |en the pointer i|
00002b10  73 20 6f 76 65 72 20 74  68 65 20 69 63 6f 6e 2f  |s over the icon/|
00002b20  77 6f 72 6b 61 72 65 61  2c 20 73 65 65 20 74 68  |workarea, see th|
00002b30  65 20 65 78 61 6d 70 6c  65 73 20 66 6f 72 20 6d  |e examples for m|
00002b40  6f 72 65 2e 0a 0a 59 6f  75 20 73 68 6f 75 6c 64  |ore...You should|
00002b50  20 73 75 70 70 6f 72 74  20 74 68 65 20 21 48 65  | support the !He|
00002b60  6c 70 20 61 70 70 6c 69  63 61 74 69 6f 6e 20 74  |lp application t|
00002b70  6f 20 68 65 6c 70 20 6e  65 77 20 75 73 65 72 73  |o help new users|
00002b80  20 75 73 69 6e 67 20 79  6f 75 72 20 61 70 70 6c  | using your appl|
00002b90  69 63 61 74 69 6f 6e 2c  20 0a 74 68 69 73 20 69  |ication, .this i|
00002ba0  73 20 77 68 79 20 49 20  69 6d 70 6c 65 6d 65 6e  |s why I implemen|
00002bb0  74 65 64 20 61 20 66 65  61 74 75 72 65 20 69 6e  |ted a feature in|
00002bc0  20 49 6e 74 65 72 66 61  63 65 20 74 6f 20 6d 61  | Interface to ma|
00002bd0  6b 65 20 74 68 69 73 20  65 61 73 69 65 72 2e 20  |ke this easier. |
00002be0  20 54 68 65 20 66 6f 6c  6c 6f 77 69 6e 67 20 0a  | The following .|
00002bf0  77 61 73 20 66 6f 72 20  73 6f 6d 65 20 72 65 61  |was for some rea|
00002c00  73 6f 6e 20 6e 6f 74 20  70 75 62 6c 69 73 68 65  |son not publishe|
00002c10  64 20 69 6e 20 74 68 65  20 50 72 6f 67 72 61 6d  |d in the Program|
00002c20  6d 65 72 73 20 52 65 66  65 72 65 6e 63 65 20 4d  |mers Reference M|
00002c30  61 6e 75 61 6c 73 2c 20  62 75 74 20 77 61 73 20  |anuals, but was |
00002c40  0a 69 6e 20 74 68 65 20  70 72 65 2d 72 65 6c 65  |.in the pre-rele|
00002c50  61 73 65 20 64 69 73 63  20 76 65 72 73 69 6f 6e  |ase disc version|
00002c60  20 6f 66 20 74 68 65 20  6d 61 6e 75 61 6c 73 2e  | of the manuals.|
00002c70  0a 0a 46 6f 72 20 61 6e  20 61 70 70 6c 69 63 61  |..For an applica|
00002c80  74 69 6f 6e 20 74 6f 20  75 73 65 20 69 6e 74 65  |tion to use inte|
00002c90  72 61 63 74 69 76 65 20  68 65 6c 70 2c 20 74 77  |ractive help, tw|
00002ca0  6f 20 57 49 4d 50 20 6d  65 73 73 61 67 65 73 20  |o WIMP messages |
00002cb0  61 72 65 20 65 6d 70 6c  6f 79 65 64 2e 20 20 4f  |are employed.  O|
00002cc0  6e 65 20 0a 69 73 20 75  73 65 64 20 62 79 20 74  |ne .is used by t|
00002cd0  68 65 20 48 65 6c 70 20  74 6f 20 72 65 71 75 65  |he Help to reque|
00002ce0  73 74 20 68 65 6c 70 2c  20 61 6e 64 20 74 68 65  |st help, and the|
00002cf0  20 6f 74 68 65 72 20 69  73 20 75 73 65 64 20 62  | other is used b|
00002d00  79 20 74 68 65 20 61 70  70 6c 69 63 61 74 69 6f  |y the applicatio|
00002d10  6e 20 74 6f 20 72 65 74  75 72 6e 20 0a 74 68 65  |n to return .the|
00002d20  20 68 65 6c 70 20 6d 65  73 73 61 67 65 2e 0a 0a  | help message...|
00002d30  54 6f 20 72 65 71 75 65  73 74 20 68 65 6c 70 2c  |To request help,|
00002d40  20 74 68 65 20 48 65 6c  70 20 61 70 70 6c 69 63  | the Help applic|
00002d50  61 74 69 6f 6e 20 73 65  6e 64 73 20 61 20 6d 65  |ation sends a me|
00002d60  73 73 61 67 65 20 6f 66  20 74 68 65 20 66 6f 6c  |ssage of the fol|
00002d70  6c 6f 77 69 6e 67 20 66  6f 72 6d 3a 0a 0a 62 6c  |lowing form:..bl|
00002d80  6f 63 6b 20 20 20 2b 31  36 20 20 20 20 20 26 35  |ock   +16     &5|
00002d90  30 32 20 2d 20 69 6e 64  69 63 61 74 65 73 20 72  |02 - indicates r|
00002da0  65 71 75 65 73 74 20 66  6f 72 20 68 65 6c 70 0a  |equest for help.|
00002db0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002dc0  2b 32 30 20 20 20 20 20  6d 6f 75 73 65 20 78 20  |+20     mouse x |
00002dd0  63 6f 2d 6f 72 64 69 6e  61 74 65 0a 20 20 20 20  |co-ordinate.    |
00002de0  20 20 20 20 20 20 20 20  20 20 20 20 2b 32 34 20  |            +24 |
00002df0  20 20 20 20 6d 6f 75 73  65 20 79 20 63 6f 2d 6f  |    mouse y co-o|
00002e00  72 64 69 6e 61 74 65 0a  20 20 20 20 20 20 20 20  |rdinate.        |
00002e10  20 20 20 20 20 20 20 20  2b 32 38 20 20 20 20 20  |        +28     |
00002e20  6d 6f 75 73 65 20 62 75  74 74 6f 6e 20 73 74 61  |mouse button sta|
00002e30  74 65 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |te.             |
00002e40  20 20 20 2b 33 32 20 20  20 20 20 77 69 6e 64 6f  |   +32     windo|
00002e50  77 20 68 61 6e 64 6c 65  20 20 20 20 20 20 20 20  |w handle        |
00002e60  20 20 20 20 20 20 20 28  2d 31 20 69 66 20 6e 6f  |       (-1 if no|
00002e70  74 20 6f 76 65 72 20 61  20 77 69 6e 64 6f 77 29  |t over a window)|
00002e80  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00002e90  20 2b 33 36 20 20 20 20  20 69 63 6f 6e 20 68 61  | +36     icon ha|
00002ea0  6e 64 6c 65 20 20 20 20  20 20 20 20 20 20 20 20  |ndle            |
00002eb0  20 20 20 20 20 28 2d 31  20 69 66 20 6e 6f 74 20  |     (-1 if not |
00002ec0  6f 76 65 72 20 61 6e 20  69 63 6f 6e 29 0a 0a 54  |over an icon)..T|
00002ed0  68 65 20 57 49 4d 50 20  73 79 73 74 65 6d 20 77  |he WIMP system w|
00002ee0  69 6c 6c 20 70 61 73 73  20 74 68 69 73 20 6d 65  |ill pass this me|
00002ef0  73 73 61 67 65 20 61 75  74 6f 6d 61 74 69 63 61  |ssage automatica|
00002f00  6c 6c 79 20 74 6f 20 74  68 65 20 74 61 73 6b 20  |lly to the task |
00002f10  69 6e 20 63 68 61 72 67  65 20 6f 66 20 74 68 65  |in charge of the|
00002f20  20 0a 61 70 70 72 6f 70  72 69 61 74 65 20 77 69  | .appropriate wi|
00002f30  6e 64 6f 77 2f 69 63 6f  6e 2e 20 20 49 66 20 74  |ndow/icon.  If t|
00002f40  68 65 20 61 70 70 6c 69  63 61 74 69 6f 6e 20 72  |he application r|
00002f50  65 63 65 69 76 69 6e 67  20 74 68 65 20 6d 65 73  |eceiving the mes|
00002f60  73 61 67 65 20 77 69 73  68 65 73 20 74 6f 20 70  |sage wishes to p|
00002f70  72 6f 64 75 63 65 20 0a  73 6f 6d 65 20 68 65 6c  |roduce .some hel|
00002f80  70 2c 20 69 74 20 73 68  6f 75 6c 64 20 72 65 73  |p, it should res|
00002f90  70 6f 6e 64 20 77 69 74  68 20 74 68 65 20 66 6f  |pond with the fo|
00002fa0  6c 6c 6f 77 69 6e 67 20  6d 65 73 73 61 67 65 3a  |llowing message:|
00002fb0  0a 0a 62 6c 6f 63 6b 20  20 20 2b 31 36 20 20 20  |..block   +16   |
00002fc0  20 20 26 35 30 33 0a 20  20 20 20 20 20 20 20 20  |  &503.         |
00002fd0  20 20 20 20 20 20 20 2b  32 30 20 20 20 20 20 68  |       +20     h|
00002fe0  65 6c 70 20 6d 65 73 73  61 67 65 20 74 65 72 6d  |elp message term|
00002ff0  69 6e 61 74 65 64 20 62  79 20 30 0a 0a 54 68 69  |inated by 0..Thi|
00003000  73 20 6d 65 73 73 61 67  65 20 63 61 6e 20 62 65  |s message can be|
00003010  20 73 65 6e 74 20 74 6f  20 74 68 65 20 48 65 6c  | sent to the Hel|
00003020  70 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 62 79  |p application by|
00003030  20 75 73 69 6e 67 20 57  69 6d 70 5f 53 65 6e 64  | using Wimp_Send|
00003040  48 65 6c 70 2c 20 77 68  69 63 68 20 0a 69 73 20  |Help, which .is |
00003050  70 72 6f 76 69 64 65 64  20 62 79 20 74 68 65 20  |provided by the |
00003060  49 6e 74 65 72 66 61 63  65 20 6d 6f 64 75 6c 65  |Interface module|
00003070  20 28 53 57 49 20 26 38  31 36 38 37 29 2e 0a 0a  | (SWI &81687)...|
00003080  54 68 65 20 68 65 6c 70  20 74 65 78 74 20 6d 61  |The help text ma|
00003090  79 20 20 63 6f 6e 74 61  69 6e 20 61 6e 79 20 70  |y  contain any p|
000030a0  72 69 6e 74 61 62 6c 65  20 63 68 61 72 61 63 74  |rintable charact|
000030b0  65 72 20 63 6f 64 65 73  2e 20 20 49 66 20 74 68  |er codes.  If th|
000030c0  65 20 73 65 71 75 65 6e  63 65 20 7c 4d 20 69 73  |e sequence |M is|
000030d0  20 0a 65 6e 63 6f 75 6e  74 65 72 65 64 20 74 68  | .encountered th|
000030e0  65 6e 20 74 68 69 73 20  77 69 6c 6c 20 62 65 20  |en this will be |
000030f0  74 72 65 61 74 65 64 20  61 73 20 61 20 6c 69 6e  |treated as a lin|
00003100  65 20 62 72 65 61 6b 20  61 6e 64 20 73 75 62 73  |e break and subs|
00003110  65 71 75 65 6e 74 20 74  65 78 74 20 77 69 6c 6c  |equent text will|
00003120  20 62 65 20 0a 70 72 69  6e 74 65 64 20 6f 6e 20  | be .printed on |
00003130  74 68 65 20 6e 65 78 74  20 6c 69 6e 65 20 69 6e  |the next line in|
00003140  20 74 68 65 20 77 69 6e  64 6f 77 2e 20 20 49 66  | the window.  If|
00003150  20 74 68 65 20 74 65 78  74 20 69 73 20 74 6f 6f  | the text is too|
00003160  20 6c 6f 6e 67 20 66 6f  72 20 6f 6e 65 20 6c 69  | long for one li|
00003170  6e 65 20 74 68 65 6e 20  69 74 20 77 69 6c 6c 20  |ne then it will |
00003180  0a 62 65 20 73 70 6c 69  74 20 61 74 20 61 20 77  |.be split at a w|
00003190  6f 72 64 20 62 6f 75 6e  64 61 72 79 20 28 73 70  |ord boundary (sp|
000031a0  61 63 65 20 63 68 61 72  61 63 74 65 72 29 2e 0a  |ace character)..|
000031b0  0a 54 68 65 20 74 65 78  74 20 73 68 6f 75 6c 64  |.The text should|
000031c0  20 63 6f 6e 73 69 73 74  20 6f 66 20 20 73 69 6d  | consist of  sim|
000031d0  70 6c 65 20 63 6f 6d 70  6c 65 74 65 20 45 6e 67  |ple complete Eng|
000031e0  6c 69 73 68 20 73 65 6e  74 65 6e 63 65 73 2c 20  |lish sentences, |
000031f0  65 61 63 68 20 73 74 61  72 74 69 6e 67 20 6f 6e  |each starting on|
00003200  20 61 20 0a 6e 65 77 20  6c 69 6e 65 20 61 6e 64  | a .new line and|
00003210  20 65 6e 64 69 6e 67 20  77 69 74 68 20 61 20 66  | ending with a f|
00003220  75 6c 6c 20 73 74 6f 70  2e 20 20 54 68 65 20 73  |ull stop.  The s|
00003230  65 6e 74 65 6e 63 65 73  20 73 68 6f 75 6c 64 20  |entences should |
00003240  75 73 75 61 6c 6c 79 20  62 65 20 73 69 6d 70 6c  |usually be simpl|
00003250  65 20 0a 69 6d 70 65 72  61 74 69 76 65 73 20 6f  |e .imperatives o|
00003260  72 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 20 73 75  |r information su|
00003270  63 68 20 61 73 3a 0a 0a  20 20 20 20 20 20 20 20  |ch as:..        |
00003280  43 6c 69 63 6b 20 53 45  4c 45 43 54 20 74 6f 20  |Click SELECT to |
00003290  73 65 74 20 74 68 65 20  61 6c 61 72 6d 2e 0a 0a  |set the alarm...|
000032a0  20 20 20 20 20 20 20 20  59 6f 75 20 61 72 65 20  |        You are |
000032b0  69 6e 20 53 65 6c 65 63  74 20 6d 6f 64 65 2e 0a  |in Select mode..|
000032c0  0a 20 20 20 20 20 20 20  20 43 6c 69 63 6b 20 41  |.        Click A|
000032d0  44 4a 55 53 54 20 74 6f  20 63 68 61 6e 67 65 20  |DJUST to change |
000032e0  74 6f 20 70 61 74 68 20  65 64 69 74 20 6d 6f 64  |to path edit mod|
000032f0  65 2e 0a 0a 20 20 20 20  20 20 20 20 54 68 69 73  |e...        This|
00003300  20 69 73 20 74 68 65 20  69 63 6f 6e 20 66 6f 72  | is the icon for|
00003310  20 45 64 69 74 2e 0a 0a  49 6e 20 67 65 6e 65 72  | Edit...In gener|
00003320  61 6c 20 79 6f 75 20 6e  65 65 64 20 6e 6f 74 20  |al you need not |
00003330  6d 65 6e 74 69 6f 6e 20  6d 65 6e 75 20 65 6e 74  |mention menu ent|
00003340  72 69 65 73 2c 20 65 78  63 65 70 74 20 77 68 65  |ries, except whe|
00003350  6e 20 73 70 65 63 69 66  69 63 20 6f 6e 65 73 20  |n specific ones |
00003360  69 6e 74 65 72 61 63 74  20 0a 77 69 74 68 20 70  |interact .with p|
00003370  6f 69 6e 74 65 72 20 6f  70 65 72 61 74 69 6f 6e  |ointer operation|
00003380  73 2e 20 20 41 73 20 61  20 67 65 6e 65 72 61 6c  |s.  As a general|
00003390  20 72 75 6c 65 20 70 72  65 73 65 6e 74 20 69 6e  | rule present in|
000033a0  66 6f 72 6d 61 74 69 6f  6e 20 6f 66 20 69 6e 74  |formation of int|
000033b0  65 72 65 73 74 20 74 6f  20 74 68 65 20 0a 62 65  |erest to the .be|
000033c0  67 69 6e 6e 65 72 20 6e  65 61 72 20 74 68 65 20  |ginner near the |
000033d0  74 6f 70 2c 20 61 6e 64  20 65 78 70 65 72 74 20  |top, and expert |
000033e0  74 69 70 73 20 6f 72 20  69 6e 66 6f 72 6d 61 74  |tips or informat|
000033f0  69 6f 6e 20 6c 6f 77 65  72 20 64 6f 77 6e 2e 0a  |ion lower down..|
00003400  0a 59 6f 75 20 6d 75 73  74 20 75 73 65 20 74 68  |.You must use th|
00003410  65 20 74 65 72 6d 69 6e  6f 6c 6f 67 79 20 64 65  |e terminology de|
00003420  66 69 6e 65 64 2e 20 20  46 6f 72 20 6d 6f 75 73  |fined.  For mous|
00003430  65 20 6f 70 65 72 61 74  69 6f 6e 73 20 79 6f 75  |e operations you|
00003440  20 6d 75 73 74 20 75 73  65 20 69 6e 69 74 69 61  | must use initia|
00003450  6c 20 0a 63 61 70 69 74  61 6c 73 20 28 66 6f 72  |l .capitals (for|
00003460  20 65 78 61 6d 70 6c 65  20 43 6c 69 63 6b 29 2e  | example Click).|
00003470  20 20 54 68 65 20 6d 6f  75 73 65 20 62 75 74 74  |  The mouse butt|
00003480  6f 6e 73 20 6d 75 73 74  20 62 65 20 69 6e 20 63  |ons must be in c|
00003490  61 70 69 74 61 6c 73 20  28 66 6f 72 20 65 78 61  |apitals (for exa|
000034a0  6d 70 6c 65 20 0a 53 45  4c 45 43 54 29 2c 20 61  |mple .SELECT), a|
000034b0  73 20 6d 75 73 74 20 6b  65 79 20 6e 61 6d 65 73  |s must key names|
000034c0  20 28 66 6f 72 20 65 78  61 6d 70 6c 65 20 45 53  | (for example ES|
000034d0  43 2c 20 52 45 54 55 52  4e 2c 20 53 48 49 46 54  |C, RETURN, SHIFT|
000034e0  2c 20 43 4f 4e 54 52 4f  4c 2c 20 41 2c 20 42 2c  |, CONTROL, A, B,|
000034f0  20 46 31 2c 20 0a 43 4f  50 59 29 2e 20 20 6d 69  | F1, .COPY).  mi|
00003500  73 73 20 6f 75 74 20 73  70 65 65 64 75 70 73 20  |ss out speedups |
00003510  61 6e 64 20 73 68 6f 72  74 63 75 74 73 20 2d 20  |and shortcuts - |
00003520  6a 75 73 74 20 70 72 6f  76 69 64 65 20 65 6e 6f  |just provide eno|
00003530  75 67 68 20 74 6f 20 68  65 6c 70 20 61 20 62 65  |ugh to help a be|
00003540  67 69 6e 6e 65 72 20 0a  77 69 74 68 6f 75 74 20  |ginner .without |
00003550  64 72 6f 77 6e 69 6e 67  20 74 68 65 6d 20 77 69  |drowning them wi|
00003560  74 68 20 69 6e 66 6f 72  6d 61 74 69 6f 6e 2e 0a  |th information..|
00003570  0a 50 72 6f 76 69 64 65  20 69 6e 74 65 72 61 63  |.Provide interac|
00003580  74 69 76 65 20 68 65 6c  70 20 74 68 6f 72 6f 75  |tive help thorou|
00003590  67 68 6c 79 20 2d 20 69  6e 63 6c 75 64 65 20 74  |ghly - include t|
000035a0  68 65 20 69 63 6f 6e 20  62 61 72 2c 20 61 6e 64  |he icon bar, and|
000035b0  20 74 68 65 20 77 6f 72  6b 61 72 65 61 20 6f 66  | the workarea of|
000035c0  20 61 6c 6c 20 0a 79 6f  75 72 20 77 69 6e 64 6f  | all .your windo|
000035d0  77 73 2e 20 20 49 66 20  6e 6f 20 61 63 74 69 6f  |ws.  If no actio|
000035e0  6e 73 20 61 72 65 20 70  6f 73 73 69 62 6c 65 20  |ns are possible |
000035f0  69 6e 20 61 20 77 69 6e  64 6f 77 2c 20 6a 75 73  |in a window, jus|
00003600  74 0a 0a 20 20 20 20 20  20 20 20 54 68 69 73 20  |t..        This |
00003610  77 69 6e 64 6f 77 20 73  68 6f 77 73 2e 2e 2e 2e  |window shows....|
00003620  0a 0a 69 66 20 62 65 74  74 65 72 20 74 68 61 6e  |..if better than|
00003630  20 6e 6f 74 68 69 6e 67  2e 0a 0a 59 6f 75 20 73  | nothing...You s|
00003640  68 6f 75 6c 64 20 61 73  73 75 6d 65 20 61 20 75  |hould assume a u|
00003650  73 65 72 20 6b 6e 6f 77  73 3a 0a 0a 20 20 20 20  |ser knows:..    |
00003660  20 20 20 20 77 68 61 74  20 61 20 4d 45 4e 55 20  |    what a MENU |
00003670  6b 65 79 20 69 73 0a 20  20 20 20 20 20 20 20 68  |key is.        h|
00003680  6f 77 20 74 6f 20 6e 61  76 69 67 61 74 65 20 6d  |ow to navigate m|
00003690  65 6e 75 20 74 72 65 65  73 20 61 6e 64 20 63 68  |enu trees and ch|
000036a0  6f 6f 73 65 20 65 6e 74  72 69 65 73 0a 20 20 20  |oose entries.   |
000036b0  20 20 20 20 20 77 68 61  74 20 74 68 65 20 69 63  |     what the ic|
000036c0  6f 6e 20 62 61 72 20 69  73 0a 20 20 20 20 20 20  |on bar is.      |
000036d0  20 20 68 6f 77 20 74 6f  20 6d 6f 76 65 2f 73 69  |  how to move/si|
000036e0  7a 65 2f 74 6f 67 67 6c  65 2f 63 6c 6f 73 65 20  |ze/toggle/close |
000036f0  77 69 6e 64 6f 77 73 2c  20 61 6e 64 20 73 6f 20  |windows, and so |
00003700  6f 6e 0a 20 20 20 20 20  20 20 20 77 68 61 74 20  |on.        what |
00003710  27 64 72 61 67 67 69 6e  67 20 61 6e 20 69 63 6f  |'dragging an ico|
00003720  6e 27 20 6d 65 61 6e 73  0a 20 20 20 20 20 20 20  |n' means.       |
00003730  20 77 68 61 74 20 27 66  69 6c 6c 69 6e 67 20 69  | what 'filling i|
00003740  6e 20 61 20 66 69 65 6c  64 27 20 28 77 72 69 74  |n a field' (writ|
00003750  61 62 6c 65 20 69 63 6f  6e 29 20 6d 65 61 6e 73  |able icon) means|
00003760  0a 0a 54 68 65 20 6b 65  79 63 6f 64 65 20 63 6f  |..The keycode co|
00003770  6d 6d 61 6e 64 20 73 68  6f 75 6c 64 20 62 65 20  |mmand should be |
00003780  70 6c 61 63 65 64 20 69  6e 20 74 68 65 20 69 63  |placed in the ic|
00003790  6f 6e 20 74 68 61 74 20  69 73 20 61 63 74 69 76  |on that is activ|
000037a0  61 74 65 64 20 62 79 20  74 68 65 20 0a 6b 65 79  |ated by the .key|
000037b0  63 6f 64 65 2e 20 20 49  74 20 73 68 6f 75 6c 64  |code.  It should|
000037c0  20 62 65 20 61 20 64 65  63 69 6d 61 6c 20 69 6e  | be a decimal in|
000037d0  74 65 67 65 72 20 73 70  65 63 69 66 79 69 6e 67  |teger specifying|
000037e0  20 74 68 65 20 6b 65 79  2e 20 20 54 68 65 20 75  | the key.  The u|
000037f0  70 2f 64 6f 77 6e 0a 61  72 72 6f 77 73 2c 20 74  |p/down.arrows, t|
00003800  61 62 20 65 74 63 2e 2e  20 61 72 65 20 64 65 61  |ab etc.. are dea|
00003810  6c 74 20 77 69 74 68 2e  0a 0a 0a 2a 2a 2a 2a 2a  |lt with....*****|
00003820  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00003830  2a 2a 2a 2a 2a 2a 2a 20  54 68 65 20 53 57 49 20  |******* The SWI |
00003840  43 61 6c 6c 73 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |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 0a  0a 57 69 6d 70 5f 42 6f  |*******..Wimp_Bo|
00003870  72 64 65 72 49 63 6f 6e  20 28 49 6e 74 65 72 66  |rderIcon (Interf|
00003880  61 63 65 5f 53 6c 61 62  42 75 74 74 6f 6e 29 20  |ace_SlabButton) |
00003890  28 53 57 49 20 26 38 31  36 38 30 29 0a 0a 52 31  |(SWI &81680)..R1|
000038a0  20 3d 20 70 6f 69 6e 74  65 72 20 74 6f 20 62 6c  | = pointer to bl|
000038b0  6f 63 6b 0a 52 31 20 70  72 65 73 65 72 76 65 64  |ock.R1 preserved|
000038c0  0a 0a 49 6e 74 65 72 72  75 70 74 73 20 61 72 65  |..Interrupts are|
000038d0  20 6e 6f 74 20 64 65 66  69 6e 65 64 0a 46 61 73  | not defined.Fas|
000038e0  74 20 69 6e 74 65 72 72  75 70 74 73 20 61 72 65  |t interrupts are|
000038f0  20 65 6e 61 62 6c 65 64  0a 0a 50 72 6f 63 65 73  | enabled..Proces|
00003900  73 6f 72 20 69 73 20 69  6e 20 53 56 43 20 6d 6f  |sor is in SVC mo|
00003910  64 65 0a 0a 53 57 49 20  69 73 20 6e 6f 74 20 72  |de..SWI is not r|
00003920  65 2d 65 6e 74 72 61 6e  74 0a 0a 54 68 65 20 62  |e-entrant..The b|
00003930  6c 6f 63 6b 20 63 6f 6e  74 61 69 6e 73 20 74 68  |lock contains th|
00003940  65 20 66 6f 6c 6c 6f 77  69 6e 67 20 6f 6e 20 65  |e following on e|
00003950  6e 74 72 79 3a 0a 0a 20  20 20 20 20 20 20 20 52  |ntry:..        R|
00003960  31 2b 30 20 20 20 20 6d  6f 75 73 65 20 78 20 28  |1+0    mouse x (|
00003970  73 63 72 65 65 6e 20 63  6f 6f 72 64 69 6e 61 74  |screen coordinat|
00003980  65 73 20 2d 20 6e 6f 74  20 77 69 6e 64 6f 77 20  |es - not window |
00003990  72 65 6c 61 74 69 76 65  29 0a 20 20 20 20 20 20  |relative).      |
000039a0  20 20 52 31 2b 34 20 20  20 20 6d 6f 75 73 65 20  |  R1+4    mouse |
000039b0  79 0a 20 20 20 20 20 20  20 20 52 31 2b 38 20 20  |y.        R1+8  |
000039c0  20 20 62 75 74 74 6f 6e  73 20 28 64 65 70 65 6e  |  buttons (depen|
000039d0  64 69 6e 67 20 6f 6e 20  69 63 6f 6e 20 62 75 74  |ding on icon but|
000039e0  74 6f 6e 20 74 79 70 65  29 0a 20 20 20 20 20 20  |ton type).      |
000039f0  20 20 52 31 2b 31 32 20  20 20 77 69 6e 64 6f 77  |  R1+12   window|
00003a00  20 68 61 6e 64 6c 65 0a  20 20 20 20 20 20 20 20  | handle.        |
00003a10  52 31 2b 31 36 20 20 20  69 63 6f 6e 20 68 61 6e  |R1+16   icon han|
00003a20  64 6c 65 20 20 0a 0a 54  68 69 73 20 63 61 6c 6c  |dle  ..This call|
00003a30  20 69 73 20 75 73 65 64  20 74 6f 20 75 70 64 61  | is used to upda|
00003a40  74 65 20 61 6e 20 69 63  6f 6e 73 20 62 6f 72 64  |te an icons bord|
00003a50  65 72 2e 20 20 49 74 20  69 73 20 74 79 70 69 63  |er.  It is typic|
00003a60  61 6c 6c 79 20 63 61 6c  6c 65 64 20 61 73 20 61  |ally called as a|
00003a70  20 72 65 73 75 6c 74 20  6f 66 20 61 20 0a 4d 6f  | result of a .Mo|
00003a80  75 73 65 5f 43 6c 69 63  6b 20 65 76 65 6e 74 2c  |use_Click event,|
00003a90  20 69 66 20 74 68 65 20  69 63 6f 6e 20 68 61 73  | if the icon has|
00003aa0  20 61 20 62 6f 72 64 65  72 20 74 79 70 65 20 6f  | a border type o|
00003ab0  66 20 30 20 6f 72 20 32  20 74 68 65 6e 20 74 68  |f 0 or 2 then th|
00003ac0  65 20 69 63 6f 6e 20 77  69 6c 6c 20 73 6c 61 62  |e icon will slab|
00003ad0  20 0a 69 6e 77 61 72 64  73 2e 20 20 54 68 65 20  | .inwards.  The |
00003ae0  66 6f 72 6d 61 74 20 6f  66 20 74 68 65 20 76 61  |format of the va|
00003af0  6c 69 64 61 74 69 6f 6e  20 73 74 72 69 6e 67 20  |lidation string |
00003b00  69 73 20 64 65 73 63 72  69 62 65 64 20 6e 20 74  |is described n t|
00003b10  68 65 20 70 72 65 76 69  6f 75 73 20 73 65 63 74  |he previous sect|
00003b20  69 6f 6e 2e 0a 0a 54 68  65 20 61 70 70 6c 69 63  |ion...The applic|
00003b30  61 74 69 6f 6e 20 73 68  6f 75 6c 64 20 74 68 65  |ation should the|
00003b40  20 70 65 72 66 6f 72 6d  20 74 68 65 20 74 61 73  | perform the tas|
00003b50  6b 20 61 6e 64 20 74 68  65 6e 20 66 6f 72 63 65  |k and then force|
00003b60  20 74 68 65 20 69 63 6f  6e 20 74 6f 20 6e 6f 72  | the icon to nor|
00003b70  6d 61 6c 20 73 74 61 74  75 73 20 0a 62 79 20 63  |mal status .by c|
00003b80  61 6c 6c 69 6e 67 20 57  69 6d 70 5f 42 6f 72 64  |alling Wimp_Bord|
00003b90  65 72 49 63 6f 6e 20 28  53 57 49 20 26 38 31 36  |erIcon (SWI &816|
00003ba0  38 30 29 20 77 69 74 68  20 52 31 2b 38 20 73 65  |80) with R1+8 se|
00003bb0  74 20 74 6f 20 30 2e 0a  0a 54 68 65 20 63 6f 64  |t to 0...The cod|
00003bc0  65 20 74 6f 20 62 6f 72  64 65 72 20 69 63 6f 6e  |e to border icon|
00003bd0  73 20 61 6e 64 20 77 69  6e 64 6f 77 73 20 69 73  |s and windows is|
00003be0  20 6f 75 74 6c 69 6e 65  64 20 69 6e 20 74 68 65  | outlined in the|
00003bf0  20 73 65 63 74 69 6f 6e  20 50 72 6f 67 72 61 6d  | section Program|
00003c00  6d 69 6e 67 20 0a 49 6e  74 65 72 66 61 63 65 2e  |ming .Interface.|
00003c10  20 0a 0a 4e 6f 74 65 20  74 68 61 74 20 74 68 65  | ..Note that the|
00003c20  20 6d 6f 75 73 65 20 63  6f 6f 72 64 69 6e 61 74  | mouse coordinat|
00003c30  65 73 20 73 70 65 63 69  66 69 65 64 20 69 6e 20  |es specified in |
00003c40  52 31 2b 30 20 61 6e 64  20 52 31 2b 34 20 61 72  |R1+0 and R1+4 ar|
00003c50  65 20 6e 6f 74 20 75 73  65 64 20 62 79 20 74 68  |e not used by th|
00003c60  65 20 0a 53 57 49 20 61  6e 64 20 61 72 65 20 6f  |e .SWI and are o|
00003c70  6e 6c 79 20 70 72 65 73  65 6e 74 20 74 6f 20 6d  |nly present to m|
00003c80  61 6b 65 20 74 68 65 20  62 6c 6f 63 6b 20 63 6f  |ake the block co|
00003c90  6d 70 61 74 69 62 6c 65  20 77 69 74 68 20 61 20  |mpatible with a |
00003ca0  4d 6f 75 73 65 5f 43 6c  69 63 6b 20 65 76 65 6e  |Mouse_Click even|
00003cb0  74 20 0a 62 6c 6f 63 6b  2e 0a 0a 57 69 6d 70 5f  |t .block...Wimp_|
00003cc0  42 6f 72 64 65 72 57 69  6e 64 6f 77 20 28 53 57  |BorderWindow (SW|
00003cd0  49 20 26 38 31 36 38 31  29 0a 0a 4e 6f 6e 65 0a  |I &81681)..None.|
00003ce0  0a 0a 0a 0a 0a 57 69 6d  70 5f 42 6f 72 64 65 72  |.....Wimp_Border|
00003cf0  57 69 6e 64 6f 77 20 28  49 6e 74 65 72 66 61 63  |Window (Interfac|
00003d00  65 5f 52 65 6e 64 65 72  33 64 57 69 6e 64 6f 77  |e_Render3dWindow|
00003d10  29 20 28 53 57 49 20 26  38 31 36 38 31 29 0a 0a  |) (SWI &81681)..|
00003d20  52 31 20 3d 20 70 6f 69  6e 74 65 72 20 74 6f 20  |R1 = pointer to |
00003d30  62 6c 6f 63 6b 0a 52 31  20 70 72 65 73 65 72 76  |block.R1 preserv|
00003d40  65 64 0a 0a 49 6e 74 65  72 72 75 70 74 73 20 61  |ed..Interrupts a|
00003d50  72 65 20 6e 6f 74 20 64  65 66 69 6e 65 64 0a 46  |re not defined.F|
00003d60  61 73 74 20 69 6e 74 65  72 72 75 70 74 73 20 61  |ast interrupts a|
00003d70  72 65 20 65 6e 61 62 6c  65 64 0a 0a 50 72 6f 63  |re enabled..Proc|
00003d80  65 73 73 6f 72 20 69 73  20 69 6e 20 53 56 43 20  |essor is in SVC |
00003d90  6d 6f 64 65 0a 0a 53 57  49 20 69 73 20 6e 6f 74  |mode..SWI is not|
00003da0  20 72 65 2d 65 6e 74 72  61 6e 74 0a 0a 54 68 65  | re-entrant..The|
00003db0  20 62 6c 6f 63 6b 20 63  6f 6e 74 61 69 6e 73 20  | block contains |
00003dc0  74 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 20 6f 6e  |the following on|
00003dd0  20 65 6e 74 72 79 3a 0a  0a 20 20 20 20 20 20 20  | entry:..       |
00003de0  20 52 31 2b 30 20 20 20  20 77 69 6e 64 6f 77 20  | R1+0    window |
00003df0  68 61 6e 64 6c 65 0a 20  20 20 20 20 20 20 20 52  |handle.        R|
00003e00  31 2b 34 20 20 20 20 76  69 73 69 62 6c 65 20 61  |1+4    visible a|
00003e10  72 65 61 20 6d 69 6e 69  6d 75 6d 20 78 20 63 6f  |rea minimum x co|
00003e20  6f 72 64 69 6e 61 74 65  0a 20 20 20 20 20 20 20  |ordinate.       |
00003e30  20 52 31 2b 38 20 20 20  20 76 69 73 69 62 6c 65  | R1+8    visible|
00003e40  20 61 72 65 61 20 6d 69  6e 69 6d 75 6d 20 79 20  | area minimum y |
00003e50  63 6f 6f 72 64 69 6e 61  74 65 0a 20 20 20 20 20  |coordinate.     |
00003e60  20 20 20 52 31 2b 31 32  20 20 20 76 69 73 69 62  |   R1+12   visib|
00003e70  6c 65 20 61 72 65 61 20  6d 61 78 69 6d 75 6d 20  |le area maximum |
00003e80  78 20 63 6f 6f 72 64 69  6e 61 74 65 0a 20 20 20  |x coordinate.   |
00003e90  20 20 20 20 20 52 31 2b  31 36 20 20 20 76 69 73  |     R1+16   vis|
00003ea0  69 62 6c 65 20 61 72 65  61 20 6d 61 78 69 6d 75  |ible area maximu|
00003eb0  6d 20 79 20 63 6f 6f 72  64 69 6e 61 74 65 0a 20  |m y coordinate. |
00003ec0  20 20 20 20 20 20 20 52  31 2b 32 30 20 20 20 73  |       R1+20   s|
00003ed0  63 72 6f 6c 6c 20 78 20  6f 66 66 73 65 74 20 72  |croll x offset r|
00003ee0  65 6c 61 74 69 76 65 20  74 6f 20 77 6f 72 6b 20  |elative to work |
00003ef0  61 72 65 61 20 6f 72 69  67 69 6e 0a 20 20 20 20  |area origin.    |
00003f00  20 20 20 20 52 31 2b 32  34 20 20 20 73 63 72 6f  |    R1+24   scro|
00003f10  6c 6c 20 79 20 6f 66 66  73 65 74 20 72 65 6c 61  |ll y offset rela|
00003f20  74 69 76 65 20 74 6f 20  77 6f 72 6b 20 61 72 65  |tive to work are|
00003f30  61 20 6f 72 69 67 69 6e  0a 20 20 20 20 20 20 20  |a origin.       |
00003f40  20 52 31 2b 32 38 20 20  20 63 75 72 72 65 6e 74  | R1+28   current|
00003f50  20 67 72 61 70 68 69 63  73 20 77 69 6e 64 6f 77  | graphics window|
00003f60  20 6d 69 6e 69 6d 75 6d  20 78 20 63 6f 6f 72 64  | minimum x coord|
00003f70  69 6e 61 74 65 0a 20 20  20 20 20 20 20 20 52 31  |inate.        R1|
00003f80  2b 33 32 20 20 20 63 75  72 72 65 6e 74 20 67 72  |+32   current gr|
00003f90  61 70 68 69 63 73 20 77  69 6e 64 6f 77 20 6d 69  |aphics window mi|
00003fa0  6e 69 6d 75 6d 20 79 20  63 6f 6f 72 64 69 6e 61  |nimum y coordina|
00003fb0  74 65 0a 20 20 20 20 20  20 20 20 52 31 2b 33 36  |te.        R1+36|
00003fc0  20 20 20 63 75 72 72 65  6e 74 20 67 72 61 70 68  |   current graph|
00003fd0  69 63 73 20 77 69 6e 64  6f 77 20 6d 61 78 69 6d  |ics window maxim|
00003fe0  75 6d 20 78 20 63 6f 6f  72 64 69 6e 61 74 65 0a  |um x coordinate.|
00003ff0  20 20 20 20 20 20 20 20  52 31 2b 34 30 20 20 20  |        R1+40   |
00004000  63 75 72 72 65 6e 74 20  67 72 61 70 68 69 63 73  |current graphics|
00004010  20 77 69 6e 64 6f 77 20  6d 61 78 69 6d 75 6d 20  | window maximum |
00004020  79 20 63 6f 6f 72 64 69  6e 61 74 65 0a 0a 54 68  |y coordinate..Th|
00004030  69 73 20 63 61 6c 6c 20  69 73 20 75 73 65 64 20  |is call is used |
00004040  74 6f 20 72 65 64 72 61  77 20 74 68 65 20 62 6f  |to redraw the bo|
00004050  72 64 65 72 73 20 6f 66  20 69 63 6f 6e 73 20 69  |rders of icons i|
00004060  6e 20 74 68 65 20 77 69  6e 64 6f 77 20 74 68 61  |n the window tha|
00004070  74 20 61 72 65 20 6e 6f  74 20 75 70 2d 74 6f 2d  |t are not up-to-|
00004080  64 61 74 65 2c 20 20 0a  74 68 69 73 20 53 57 49  |date,  .this SWI|
00004090  20 69 73 20 74 79 70 69  63 61 6c 6c 79 20 63 61  | is typically ca|
000040a0  6c 6c 65 64 20 64 75 72  69 6e 67 20 74 68 65 20  |lled during the |
000040b0  72 65 64 72 61 77 20 6c  6f 6f 70 20 6f 66 20 61  |redraw loop of a|
000040c0  20 77 69 6e 64 6f 77 2e  20 20 54 68 65 20 53 57  | window.  The SW|
000040d0  49 20 77 69 6c 6c 20 0a  75 70 64 61 74 65 20 74  |I will .update t|
000040e0  68 65 20 77 69 6e 64 6f  77 2c 20 64 72 61 77 69  |he window, drawi|
000040f0  6e 67 20 62 6f 72 64 65  72 73 20 61 72 6f 75 6e  |ng borders aroun|
00004100  64 20 61 6e 79 20 69 63  6f 6e 73 20 77 68 69 63  |d any icons whic|
00004110  68 20 68 61 76 65 20 74  68 65 20 62 20 63 6f 6d  |h have the b com|
00004120  6d 61 6e 64 20 0a 73 70  65 63 69 66 69 65 64 20  |mand .specified |
00004130  69 6e 20 74 68 65 20 76  61 6c 69 64 61 74 69 6f  |in the validatio|
00004140  6e 20 73 74 72 69 6e 67  20 61 6e 64 20 61 72 65  |n string and are|
00004150  20 77 69 74 68 69 6e 20  74 68 65 20 73 70 65 63  | within the spec|
00004160  69 66 69 65 64 20 67 72  61 70 68 69 63 73 20 77  |ified graphics w|
00004170  69 6e 64 6f 77 2e 0a 0a  54 68 65 20 63 6f 64 65  |indow...The code|
00004180  20 74 6f 20 62 6f 72 64  65 72 20 69 63 6f 6e 73  | to border icons|
00004190  20 61 6e 64 20 77 69 6e  64 6f 77 73 20 69 73 20  | and windows is |
000041a0  6f 75 74 6c 69 6e 65 64  20 69 6e 20 74 68 65 20  |outlined in the |
000041b0  73 65 63 74 69 6f 6e 20  50 72 6f 67 72 61 6d 6d  |section Programm|
000041c0  69 6e 67 20 0a 49 6e 74  65 72 66 61 63 65 2e 20  |ing .Interface. |
000041d0  0a 0a 57 69 6d 70 5f 42  6f 72 64 65 72 49 63 6f  |..Wimp_BorderIco|
000041e0  6e 20 28 53 57 49 20 26  38 31 36 38 30 29 0a 0a  |n (SWI &81680)..|
000041f0  4e 6f 6e 65 20 0a 0a 0a  0a 0a 57 69 6d 70 5f 43  |None .....Wimp_C|
00004200  6c 61 69 6d 49 6e 74 65  72 66 61 63 65 20 28 49  |laimInterface (I|
00004210  6e 74 65 72 66 61 63 65  5f 49 6e 69 74 69 61 6c  |nterface_Initial|
00004220  69 73 65 29 20 28 53 57  49 20 26 38 31 36 38 32  |ise) (SWI &81682|
00004230  29 0a 0a 52 30 20 3d 20  74 61 73 6b 20 68 61 6e  |)..R0 = task han|
00004240  64 6c 65 0a 52 30 20 70  72 65 73 65 72 76 65 64  |dle.R0 preserved|
00004250  0a 0a 49 6e 74 65 72 72  75 70 74 73 20 61 72 65  |..Interrupts are|
00004260  20 6e 6f 74 20 64 65 66  69 6e 65 64 0a 46 61 73  | not defined.Fas|
00004270  74 20 69 6e 74 65 72 72  75 70 74 73 20 61 72 65  |t interrupts are|
00004280  20 65 6e 61 62 6c 65 64  0a 0a 50 72 6f 63 65 73  | enabled..Proces|
00004290  73 6f 72 20 69 73 20 69  6e 20 53 56 43 20 6d 6f  |sor is in SVC mo|
000042a0  64 65 0a 0a 53 57 49 20  69 73 20 6e 6f 74 20 72  |de..SWI is not r|
000042b0  65 2d 65 6e 74 72 61 6e  74 0a 0a 54 68 69 73 20  |e-entrant..This |
000042c0  53 57 49 20 61 6c 6c 6f  77 73 20 79 6f 75 72 20  |SWI allows your |
000042d0  61 70 70 6c 69 63 61 74  69 6f 6e 20 74 6f 20 75  |application to u|
000042e0  73 65 20 70 6f 69 6e 74  65 72 73 20 76 69 61 20  |se pointers via |
000042f0  74 68 65 20 49 6e 74 65  72 66 61 63 65 20 6d 6f  |the Interface mo|
00004300  64 75 6c 65 2e 20 20 54  68 69 73 20 0a 53 57 49  |dule.  This .SWI|
00004310  20 73 68 6f 75 6c 64 20  62 65 20 63 61 6c 6c 65  | should be calle|
00004320  64 20 61 74 20 74 68 65  20 62 65 67 69 6e 6e 69  |d at the beginni|
00004330  6e 67 20 6f 66 20 79 6f  75 72 20 70 72 6f 67 72  |ng of your progr|
00004340  61 6d 2e 20 20 49 66 20  79 6f 75 20 64 6f 6e 27  |am.  If you don'|
00004350  74 20 75 73 65 20 0a 57  69 6d 70 5f 43 6c 61 69  |t use .Wimp_Clai|
00004360  6d 49 6e 74 65 72 66 61  63 65 20 74 68 65 6e 20  |mInterface then |
00004370  79 6f 75 72 20 70 6f 69  6e 74 65 72 73 20 77 69  |your pointers wi|
00004380  6c 6c 20 6e 6f 74 20 62  65 20 64 69 73 70 6c 61  |ll not be displa|
00004390  79 65 64 2e 0a 0a 57 69  6d 70 5f 52 65 6c 65 61  |yed...Wimp_Relea|
000043a0  73 65 49 6e 74 65 72 66  61 63 65 20 28 53 57 49  |seInterface (SWI|
000043b0  20 26 38 31 36 38 33 29  0a 0a 4e 6f 6e 65 0a 0a  | &81683)..None..|
000043c0  0a 0a 0a 57 69 6d 70 5f  52 65 6c 65 61 73 65 49  |...Wimp_ReleaseI|
000043d0  6e 74 65 72 66 61 63 65  20 28 49 6e 74 65 72 66  |nterface (Interf|
000043e0  61 63 65 5f 43 6c 6f 73  65 44 6f 77 6e 29 20 28  |ace_CloseDown) (|
000043f0  53 57 49 20 26 38 31 36  38 33 29 0a 0a 52 30 20  |SWI &81683)..R0 |
00004400  3d 20 74 61 73 6b 20 68  61 6e 64 6c 65 0a 52 30  |= task handle.R0|
00004410  20 70 72 65 73 65 72 76  65 64 0a 0a 49 6e 74 65  | preserved..Inte|
00004420  72 72 75 70 74 73 20 61  72 65 20 6e 6f 74 20 64  |rrupts are not d|
00004430  65 66 69 6e 65 64 0a 46  61 73 74 20 69 6e 74 65  |efined.Fast inte|
00004440  72 72 75 70 74 73 20 61  72 65 20 65 6e 61 62 6c  |rrupts are enabl|
00004450  65 64 0a 0a 50 72 6f 63  65 73 73 6f 72 20 69 73  |ed..Processor is|
00004460  20 69 6e 20 53 56 43 20  6d 6f 64 65 0a 0a 53 57  | in SVC mode..SW|
00004470  49 20 69 73 20 6e 6f 74  20 72 65 2d 65 6e 74 72  |I is not re-entr|
00004480  61 6e 74 0a 0a 54 68 69  73 20 53 57 49 20 73 74  |ant..This SWI st|
00004490  6f 70 73 20 79 6f 75 72  20 61 70 70 6c 69 63 61  |ops your applica|
000044a0  74 69 6f 6e 20 66 72 6f  6d 20 75 73 69 6e 67 20  |tion from using |
000044b0  70 6f 69 6e 74 65 72 73  2e 20 20 57 68 65 6e 20  |pointers.  When |
000044c0  74 68 69 73 20 53 57 49  20 69 73 20 63 61 6c 6c  |this SWI is call|
000044d0  65 64 20 0a 49 6e 74 65  72 66 61 63 65 20 4d 61  |ed .Interface Ma|
000044e0  6e 61 67 65 72 20 77 69  6c 6c 20 65 72 61 73 65  |nager will erase|
000044f0  20 61 6e 79 20 77 6f 72  6b 61 72 65 61 20 70 6f  | any workarea po|
00004500  69 6e 74 65 72 73 20 61  73 73 69 67 6e 65 64 20  |inters assigned |
00004510  74 6f 20 79 6f 75 72 20  61 70 70 6c 69 63 61 74  |to your applicat|
00004520  69 6f 6e 20 61 6e 64 20  0a 66 72 65 65 20 74 68  |ion and .free th|
00004530  65 20 6d 65 6d 6f 72 79  2e 20 20 54 68 69 73 20  |e memory.  This |
00004540  73 68 6f 75 6c 64 20 62  65 20 63 61 6c 6c 65 64  |should be called|
00004550  20 69 6e 20 79 6f 75 72  20 65 78 69 74 20 68 61  | in your exit ha|
00004560  6e 64 6c 65 72 2c 20 61  6c 73 6f 20 69 66 20 61  |ndler, also if a|
00004570  6e 20 65 72 72 6f 72 20  6f 63 63 75 72 73 20 0a  |n error occurs .|
00004580  79 6f 75 20 73 68 6f 75  6c 64 20 61 6c 73 6f 20  |you should also |
00004590  63 61 6c 6c 20 74 68 69  73 20 53 57 49 20 74 6f  |call this SWI to|
000045a0  20 73 74 6f 70 20 6f 74  68 65 72 20 61 70 70 6c  | stop other appl|
000045b0  69 63 61 74 69 6f 6e 73  20 66 72 6f 6d 20 67 61  |ications from ga|
000045c0  69 6e 69 6e 67 20 79 6f  75 72 20 70 6f 69 6e 74  |ining your point|
000045d0  65 72 73 2e 0a 0a 57 69  6d 70 5f 43 6c 61 69 6d  |ers...Wimp_Claim|
000045e0  49 6e 74 65 72 66 61 63  65 20 28 53 57 49 20 26  |Interface (SWI &|
000045f0  38 31 36 38 32 29 0a 0a  4e 6f 6e 65 0a 0a 0a 0a  |81682)..None....|
00004600  0a 57 69 6d 70 5f 53 65  74 57 6f 72 6b 61 72 65  |.Wimp_SetWorkare|
00004610  61 50 6f 69 6e 74 65 72  20 28 49 6e 74 65 72 66  |aPointer (Interf|
00004620  61 63 65 5f 53 65 74 57  6f 72 6b 61 72 65 61 50  |ace_SetWorkareaP|
00004630  6f 69 6e 74 65 72 29 20  28 53 57 49 20 26 38 31  |ointer) (SWI &81|
00004640  36 38 34 29 0a 0a 52 31  20 3d 20 70 6f 69 6e 74  |684)..R1 = point|
00004650  65 72 20 74 6f 20 62 6c  6f 63 6b 0a 52 31 20 70  |er to block.R1 p|
00004660  72 65 73 65 72 76 65 64  0a 0a 49 6e 74 65 72 72  |reserved..Interr|
00004670  75 70 74 20 73 74 61 74  75 73 20 69 73 20 75 6e  |upt status is un|
00004680  64 65 66 69 6e 65 64 0a  46 61 73 74 20 69 6e 74  |defined.Fast int|
00004690  65 72 72 75 70 74 73 20  61 72 65 20 65 6e 61 62  |errupts are enab|
000046a0  6c 65 64 0a 0a 50 72 6f  63 65 73 73 6f 72 20 69  |led..Processor i|
000046b0  73 20 69 6e 20 53 56 43  20 6d 6f 64 65 0a 0a 53  |s in SVC mode..S|
000046c0  57 49 20 69 73 20 6e 6f  74 20 72 65 2d 65 6e 74  |WI is not re-ent|
000046d0  72 61 6e 74 0a 0a 54 68  65 20 62 6c 6f 63 6b 20  |rant..The block |
000046e0  63 6f 6e 74 61 69 6e 73  20 74 68 65 20 66 6f 6c  |contains the fol|
000046f0  6c 6f 77 69 6e 67 20 6f  6e 20 65 6e 74 72 79 3a  |lowing on entry:|
00004700  0a 0a 20 20 20 20 20 20  20 20 52 31 2b 30 20 20  |..        R1+0  |
00004710  20 20 77 69 6e 64 6f 77  20 68 61 6e 64 6c 65 0a  |  window handle.|
00004720  20 20 20 20 20 20 20 20  52 31 2b 34 20 20 20 20  |        R1+4    |
00004730  6d 69 6e 69 6d 75 6d 20  78 20 63 6f 6f 72 64 69  |minimum x coordi|
00004740  6e 61 74 65 20 6f 66 20  62 6f 75 6e 64 69 6e 67  |nate of bounding|
00004750  20 62 6f 78 0a 20 20 20  20 20 20 20 20 52 31 2b  | box.        R1+|
00004760  38 20 20 20 20 6d 69 6e  69 6d 75 6d 20 79 20 63  |8    minimum y c|
00004770  6f 6f 72 64 69 6e 61 74  65 20 6f 66 20 62 6f 75  |oordinate of bou|
00004780  6e 64 69 6e 67 20 62 6f  78 0a 20 20 20 20 20 20  |nding box.      |
00004790  20 20 52 31 2b 31 32 20  20 20 6d 61 78 69 6d 75  |  R1+12   maximu|
000047a0  6d 20 78 20 63 6f 6f 72  64 69 6e 61 74 65 20 6f  |m x coordinate o|
000047b0  66 20 62 6f 75 6e 64 69  6e 67 20 62 6f 78 0a 20  |f bounding box. |
000047c0  20 20 20 20 20 20 20 52  31 2b 31 36 20 20 20 6d  |       R1+16   m|
000047d0  61 78 69 6d 75 6d 20 79  20 63 6f 6f 72 64 69 6e  |aximum y coordin|
000047e0  61 74 65 20 6f 66 20 62  6f 75 6e 64 69 6e 67 20  |ate of bounding |
000047f0  62 6f 78 0a 20 20 20 20  20 20 20 20 52 31 2b 32  |box.        R1+2|
00004800  30 20 20 20 32 34 20 62  79 74 65 73 20 6f 66 20  |0   24 bytes of |
00004810  70 6f 69 6e 74 65 72 20  64 61 74 61 0a 0a 54 68  |pointer data..Th|
00004820  69 73 20 73 70 65 63 69  66 69 65 73 20 74 68 65  |is specifies the|
00004830  20 70 6f 69 6e 74 65 72  20 66 6f 72 20 61 6e 20  | pointer for an |
00004840  61 72 65 61 20 6f 66 20  74 68 65 20 77 69 6e 64  |area of the wind|
00004850  6f 77 2e 0a 54 68 65 20  62 6f 75 6e 64 69 6e 67  |ow..The bounding|
00004860  20 62 6f 78 20 63 6f 6f  72 64 69 6e 61 74 65 73  | box coordinates|
00004870  20 61 72 65 20 67 69 76  65 6e 20 72 65 6c 61 74  | are given relat|
00004880  69 76 65 20 74 6f 20 74  68 65 20 77 69 6e 64 6f  |ive to the windo|
00004890  77 27 73 20 77 6f 72 6b  20 61 72 65 61 20 6f 72  |w's work area or|
000048a0  69 67 69 6e 2e 20 20 0a  52 31 2b 34 20 74 6f 20  |igin.  .R1+4 to |
000048b0  52 31 2b 31 36 20 63 61  6e 20 62 65 20 73 65 74  |R1+16 can be set|
000048c0  20 74 6f 20 2d 31 20 74  6f 20 73 70 65 63 69 66  | to -1 to specif|
000048d0  79 20 74 68 65 20 77 68  6f 6c 65 20 6f 66 20 74  |y the whole of t|
000048e0  68 65 20 77 69 6e 64 6f  77 27 73 20 77 6f 72 6b  |he window's work|
000048f0  20 61 72 65 61 2e 0a 54  68 65 20 70 6f 69 6e 74  | area..The point|
00004900  65 72 20 64 61 74 61 20  61 74 20 2b 32 30 20 74  |er data at +20 t|
00004910  6f 20 2b 34 34 20 63 6f  6e 74 61 69 6e 73 20 74  |o +44 contains t|
00004920  68 65 20 73 70 72 69 74  65 20 6e 61 6d 65 20 61  |he sprite name a|
00004930  6e 64 20 61 6e 79 20 78  2c 20 79 20 6f 66 66 73  |nd any x, y offs|
00004940  65 74 2c 20 73 65 65 20  0a 76 61 6c 69 64 61 74  |et, see .validat|
00004950  69 6f 6e 20 73 74 72 69  6e 67 73 20 66 6f 72 20  |ion strings for |
00004960  6d 6f 72 65 20 69 6e 66  6f 72 6d 61 74 69 6f 6e  |more information|
00004970  2e 0a 0a 57 69 6d 70 5f  52 65 6d 6f 76 65 57 6f  |...Wimp_RemoveWo|
00004980  72 6b 61 72 65 61 50 6f  69 6e 74 65 72 20 28 53  |rkareaPointer (S|
00004990  57 49 20 26 38 31 36 38  35 29 0a 57 69 6d 70 5f  |WI &81685).Wimp_|
000049a0  50 6f 6c 6c 50 6f 69 6e  74 65 72 20 28 53 57 49  |PollPointer (SWI|
000049b0  20 26 38 31 36 38 36 29  0a 0a 4e 6f 6e 65 0a 0a  | &81686)..None..|
000049c0  0a 0a 0a 0a 57 69 6d 70  5f 52 65 6d 6f 76 65 57  |....Wimp_RemoveW|
000049d0  6f 72 6b 61 72 65 61 50  6f 69 6e 74 65 72 20 28  |orkareaPointer (|
000049e0  49 6e 74 65 72 66 61 63  65 5f 52 65 6d 6f 76 65  |Interface_Remove|
000049f0  57 6f 72 6b 61 72 65 61  50 6f 69 6e 74 65 72 29  |WorkareaPointer)|
00004a00  20 28 53 57 49 20 26 38  31 36 38 35 29 0a 0a 52  | (SWI &81685)..R|
00004a10  30 20 3d 20 74 61 73 6b  20 68 61 6e 64 6c 65 0a  |0 = task handle.|
00004a20  52 31 20 3d 20 70 6f 69  6e 74 65 72 20 74 6f 20  |R1 = pointer to |
00004a30  62 6c 6f 63 6b 0a 0a 52  30 20 70 72 65 73 65 72  |block..R0 preser|
00004a40  76 65 64 0a 52 31 20 70  72 65 73 65 72 76 65 64  |ved.R1 preserved|
00004a50  0a 0a 49 6e 74 65 72 72  75 70 74 20 73 74 61 74  |..Interrupt stat|
00004a60  75 73 20 69 73 20 75 6e  64 65 66 69 6e 65 64 0a  |us is undefined.|
00004a70  46 61 73 74 20 69 6e 74  65 72 72 75 70 74 73 20  |Fast interrupts |
00004a80  61 72 65 20 65 6e 61 62  6c 65 64 0a 0a 50 72 6f  |are enabled..Pro|
00004a90  63 65 73 73 6f 72 20 69  73 20 69 6e 20 53 56 43  |cessor is in SVC|
00004aa0  20 6d 6f 64 65 0a 0a 53  57 49 20 69 73 20 6e 6f  | mode..SWI is no|
00004ab0  74 20 72 65 2d 65 6e 74  72 61 6e 74 0a 0a 54 68  |t re-entrant..Th|
00004ac0  65 20 62 6c 6f 63 6b 20  63 6f 6e 74 61 69 6e 73  |e block contains|
00004ad0  20 74 68 65 20 66 6f 6c  6c 6f 77 69 6e 67 20 6f  | the following o|
00004ae0  6e 20 65 6e 74 72 79 3a  0a 0a 20 20 20 20 20 20  |n entry:..      |
00004af0  20 20 52 31 2b 30 20 20  20 20 77 69 6e 64 6f 77  |  R1+0    window|
00004b00  20 68 61 6e 64 6c 65 0a  20 20 20 20 20 20 20 20  | handle.        |
00004b10  52 31 2b 34 20 20 20 20  6d 69 6e 69 6d 75 6d 20  |R1+4    minimum |
00004b20  78 20 63 6f 6f 72 64 69  6e 61 74 65 20 6f 66 20  |x coordinate of |
00004b30  62 6f 75 6e 64 69 6e 67  20 62 6f 78 0a 20 20 20  |bounding box.   |
00004b40  20 20 20 20 20 52 31 2b  38 20 20 20 20 6d 69 6e  |     R1+8    min|
00004b50  69 6d 75 6d 20 79 20 63  6f 6f 72 64 69 6e 61 74  |imum y coordinat|
00004b60  65 20 6f 66 20 62 6f 75  6e 64 69 6e 67 20 62 6f  |e of bounding bo|
00004b70  78 0a 20 20 20 20 20 20  20 20 52 31 2b 31 32 20  |x.        R1+12 |
00004b80  20 20 6d 61 78 69 6d 75  6d 20 78 20 63 6f 6f 72  |  maximum x coor|
00004b90  64 69 6e 61 74 65 20 6f  66 20 62 6f 75 6e 64 69  |dinate of boundi|
00004ba0  6e 67 20 62 6f 78 0a 20  20 20 20 20 20 20 20 52  |ng box.        R|
00004bb0  31 2b 31 36 20 20 20 6d  61 78 69 6d 75 6d 20 79  |1+16   maximum y|
00004bc0  20 63 6f 6f 72 64 69 6e  61 74 65 20 6f 66 20 62  | coordinate of b|
00004bd0  6f 75 6e 64 69 6e 67 20  62 6f 78 0a 0a 54 68 69  |ounding box..Thi|
00004be0  73 20 63 61 6c 6c 20 72  65 6d 6f 76 65 73 20 61  |s call removes a|
00004bf0  20 70 72 65 76 69 6f 75  73 6c 79 20 69 6e 73 74  | previously inst|
00004c00  61 6c 6c 65 64 20 70 6f  69 6e 74 65 72 20 66 72  |alled pointer fr|
00004c10  6f 6d 20 74 68 65 20 6c  69 73 74 20 6f 66 20 61  |om the list of a|
00004c20  63 74 69 76 65 20 70 6f  69 6e 74 65 72 20 61 72  |ctive pointer ar|
00004c30  65 61 73 20 0a 66 6f 72  20 74 68 65 20 73 70 65  |eas .for the spe|
00004c40  63 69 66 69 65 64 20 77  69 6e 64 6f 77 2e 20 20  |cified window.  |
00004c50  57 68 65 6e 20 61 20 77  69 6e 64 6f 77 20 69 73  |When a window is|
00004c60  20 64 65 6c 65 74 65 64  20 79 6f 75 20 73 68 6f  | deleted you sho|
00004c70  75 6c 64 20 72 65 6d 6f  76 65 20 61 6e 79 20 0a  |uld remove any .|
00004c80  70 6f 69 6e 74 65 72 73  20 74 68 61 74 20 77 65  |pointers that we|
00004c90  72 65 20 72 65 6c 61 74  65 64 20 74 6f 20 74 68  |re related to th|
00004ca0  65 20 77 69 6e 64 6f 77  2c 20 6f 74 68 65 72 77  |e window, otherw|
00004cb0  69 73 65 20 74 68 65 73  65 20 70 6f 69 6e 74 65  |ise these pointe|
00004cc0  72 73 20 6d 61 79 20 62  65 63 6f 6d 65 20 0a 61  |rs may become .a|
00004cd0  63 74 69 76 65 20 6f 6e  20 61 6e 79 20 77 69 6e  |ctive on any win|
00004ce0  64 6f 77 20 77 68 69 63  68 20 67 61 69 6e 73 20  |dow which gains |
00004cf0  74 68 65 20 73 61 6d 65  20 77 69 6e 64 6f 77 20  |the same window |
00004d00  68 61 6e 64 6c 65 20 69  6e 20 74 68 65 20 66 75  |handle in the fu|
00004d10  74 75 72 65 2e 20 0a 0a  54 68 65 20 62 6f 75 6e  |ture. ..The boun|
00004d20  64 69 6e 67 20 62 6f 78  20 63 6f 6f 72 64 69 6e  |ding box coordin|
00004d30  61 74 65 73 20 61 72 65  20 67 69 76 65 6e 20 72  |ates are given r|
00004d40  65 6c 61 74 69 76 65 20  74 6f 20 74 68 65 20 77  |elative to the w|
00004d50  69 6e 64 6f 77 27 73 20  77 6f 72 6b 20 61 72 65  |indow's work are|
00004d60  61 20 6f 72 69 67 69 6e  2e 20 20 0a 52 31 2b 34  |a origin.  .R1+4|
00004d70  20 74 6f 20 52 31 2b 31  36 20 63 61 6e 20 62 65  | to R1+16 can be|
00004d80  20 73 65 74 20 74 6f 20  2d 31 20 74 6f 20 73 70  | set to -1 to sp|
00004d90  65 63 69 66 79 20 74 68  65 20 77 68 6f 6c 65 20  |ecify the whole |
00004da0  6f 66 20 74 68 65 20 77  69 6e 64 6f 77 27 73 20  |of the window's |
00004db0  77 6f 72 6b 20 61 72 65  61 2e 20 20 0a 52 31 2b  |work area.  .R1+|
00004dc0  34 20 74 6f 20 52 31 2b  31 36 20 6d 61 79 20 62  |4 to R1+16 may b|
00004dd0  65 20 73 65 74 20 74 6f  20 30 20 74 6f 20 72 65  |e set to 0 to re|
00004de0  6d 6f 76 65 20 61 6c 6c  20 77 6f 72 6b 20 61 72  |move all work ar|
00004df0  65 61 20 70 6f 69 6e 74  65 72 73 20 61 73 73 69  |ea pointers assi|
00004e00  67 6e 65 64 20 74 6f 20  74 68 65 20 0a 77 69 6e  |gned to the .win|
00004e10  64 6f 77 2e 0a 0a 57 69  6d 70 5f 53 65 74 57 6f  |dow...Wimp_SetWo|
00004e20  72 6b 61 72 65 61 50 6f  69 6e 74 65 72 20 28 53  |rkareaPointer (S|
00004e30  57 49 20 26 38 31 36 38  34 29 0a 57 69 6d 70 5f  |WI &81684).Wimp_|
00004e40  50 6f 6c 6c 50 6f 69 6e  74 65 72 20 28 53 57 49  |PollPointer (SWI|
00004e50  20 26 38 31 36 38 36 29  0a 0a 4e 6f 6e 65 0a 0a  | &81686)..None..|
00004e60  0a 0a 0a 0a 57 69 6d 70  5f 50 6f 6c 6c 50 6f 69  |....Wimp_PollPoi|
00004e70  6e 74 65 72 20 28 49 6e  74 65 72 66 61 63 65 5f  |nter (Interface_|
00004e80  50 6f 6c 6c 29 20 28 53  57 49 20 26 38 31 36 38  |Poll) (SWI &8168|
00004e90  36 29 0a 0a 52 30 20 3d  20 57 69 6d 70 5f 50 6f  |6)..R0 = Wimp_Po|
00004ea0  6c 6c 20 72 65 61 73 6f  6e 20 63 6f 64 65 0a 52  |ll reason code.R|
00004eb0  32 20 3d 20 74 61 73 6b  20 68 61 6e 64 6c 65 0a  |2 = task handle.|
00004ec0  0a 52 30 20 70 72 65 73  65 72 76 65 64 0a 52 40  |.R0 preserved.R@|
00004ed0  20 70 72 65 73 65 72 76  65 64 0a 0a 49 6e 74 65  | preserved..Inte|
00004ee0  72 72 75 70 74 20 73 74  61 74 75 73 20 69 73 20  |rrupt status is |
00004ef0  75 6e 64 65 66 69 6e 65  64 0a 46 61 73 74 20 69  |undefined.Fast i|
00004f00  6e 74 65 72 72 75 70 74  73 20 61 72 65 20 65 6e  |nterrupts are en|
00004f10  61 62 6c 65 64 0a 0a 50  72 6f 63 65 73 73 6f 72  |abled..Processor|
00004f20  20 69 73 20 69 6e 20 53  56 43 20 6d 6f 64 65 0a  | is in SVC mode.|
00004f30  0a 53 57 49 20 6e 6f 74  20 72 65 2d 65 6e 74 72  |.SWI not re-entr|
00004f40  61 6e 74 0a 0a 54 68 69  73 20 63 61 6c 6c 20 63  |ant..This call c|
00004f50  68 65 63 6b 73 20 74 6f  20 73 65 65 20 69 66 20  |hecks to see if |
00004f60  74 68 65 20 70 6f 69 6e  74 65 72 20 69 73 20 75  |the pointer is u|
00004f70  70 2d 74 6f 2d 64 61 74  65 2e 20 20 49 66 20 74  |p-to-date.  If t|
00004f80  68 65 20 70 6f 69 6e 74  65 72 20 69 73 20 6e 6f  |he pointer is no|
00004f90  74 20 75 70 2d 74 6f 2d  64 61 74 65 20 69 74 20  |t up-to-date it |
00004fa0  0a 77 69 6c 6c 20 63 68  61 6e 67 65 20 74 6f 20  |.will change to |
00004fb0  74 68 65 20 70 6f 69 6e  74 65 72 20 73 70 65 63  |the pointer spec|
00004fc0  69 66 69 65 64 20 69 6e  20 74 68 65 20 69 63 6f  |ified in the ico|
00004fd0  6e 73 20 76 61 6c 69 64  61 74 69 6f 6e 20 73 74  |ns validation st|
00004fe0  72 69 6e 67 2e 20 20 49  66 20 74 68 65 20 70 6f  |ring.  If the po|
00004ff0  69 6e 74 65 72 20 69 73  20 0a 6e 6f 74 20 6f 76  |inter is .not ov|
00005000  65 72 20 61 6e 20 69 63  6f 6e 20 74 68 65 6e 20  |er an icon then |
00005010  20 74 68 65 20 70 6f 69  6e 74 65 72 20 77 69 6c  | the pointer wil|
00005020  6c 20 63 68 61 6e 67 65  20 61 63 63 6f 72 64 69  |l change accordi|
00005030  6e 67 20 74 6f 20 74 68  65 20 70 6f 73 69 74 69  |ng to the positi|
00005040  6f 6e 20 6f 6e 20 74 68  65 20 0a 77 69 6e 64 6f  |on on the .windo|
00005050  77 20 62 61 63 6b 67 72  6f 75 6e 64 2e 0a 0a 4e  |w background...N|
00005060  6f 74 65 20 74 68 61 74  20 77 69 6d 70 5f 70 6f  |ote that wimp_po|
00005070  6c 6c 20 72 65 61 73 6f  6e 20 63 6f 64 65 73 20  |ll reason codes |
00005080  30 20 61 6e 64 20 34 20  73 68 6f 75 6c 64 20 6e  |0 and 4 should n|
00005090  6f 74 20 62 65 20 6d 61  73 6b 65 64 20 6f 75 74  |ot be masked out|
000050a0  2c 20 6f 74 68 65 72 77  69 73 65 20 74 68 65 20  |, otherwise the |
000050b0  0a 70 6f 69 6e 74 65 72  20 77 69 6c 6c 20 62 65  |.pointer will be|
000050c0  20 6f 75 74 2d 6f 66 2d  64 61 74 65 20 61 6e 64  | out-of-date and|
000050d0  20 77 69 6c 6c 20 6e 6f  74 20 66 75 6e 63 74 69  | will not functi|
000050e0  6f 6e 20 63 6f 72 72 65  63 74 6c 79 2e 0a 0a 57  |on correctly...W|
000050f0  69 6d 70 5f 53 65 74 57  6f 72 6b 61 72 65 61 50  |imp_SetWorkareaP|
00005100  6f 69 6e 74 65 72 20 28  53 57 49 20 26 38 31 36  |ointer (SWI &816|
00005110  38 34 29 0a 57 69 6d 70  5f 52 65 6d 6f 76 65 57  |84).Wimp_RemoveW|
00005120  6f 72 6b 61 72 65 61 50  6f 69 6e 74 65 72 20 28  |orkareaPointer (|
00005130  53 57 49 20 26 38 31 36  38 35 29 0a 0a 4e 6f 6e  |SWI &81685)..Non|
00005140  65 0a 0a 0a 0a 0a 0a 57  69 6d 70 5f 53 65 6e 64  |e......Wimp_Send|
00005150  49 6e 66 6f 72 6d 61 74  69 6f 6e 20 28 49 6e 74  |Information (Int|
00005160  65 72 66 61 63 65 5f 53  65 6e 64 48 65 6c 70 29  |erface_SendHelp)|
00005170  20 28 53 57 49 20 26 38  31 36 38 37 29 0a 0a 52  | (SWI &81687)..R|
00005180  31 20 3d 20 6d 65 73 73  61 67 65 20 62 6c 6f 63  |1 = message bloc|
00005190  6b 20 61 73 20 72 65 74  75 72 6e 65 64 20 66 72  |k as returned fr|
000051a0  6f 6d 20 68 65 6c 70 20  61 70 70 6c 69 63 61 74  |om help applicat|
000051b0  69 6f 6e 0a 52 31 20 70  72 65 73 65 72 76 65 64  |ion.R1 preserved|
000051c0  0a 0a 49 6e 74 65 72 72  75 70 74 20 73 74 61 74  |..Interrupt stat|
000051d0  75 73 20 69 73 20 75 6e  64 65 66 69 6e 65 64 0a  |us is undefined.|
000051e0  46 61 73 74 20 69 6e 74  65 72 72 75 70 74 73 20  |Fast interrupts |
000051f0  61 72 65 20 65 6e 61 62  6c 65 64 0a 0a 50 72 6f  |are enabled..Pro|
00005200  63 65 73 73 6f 72 20 69  73 20 69 6e 20 53 56 43  |cessor is in SVC|
00005210  20 6d 6f 64 65 0a 0a 53  57 49 20 6e 6f 74 20 72  | mode..SWI not r|
00005220  65 2d 65 6e 74 72 61 6e  74 0a 0a 54 68 69 73 20  |e-entrant..This |
00005230  63 61 6c 6c 20 72 65 74  75 72 6e 73 20 61 20 68  |call returns a h|
00005240  65 6c 70 20 74 65 78 74  20 6d 65 73 73 61 67 65  |elp text message|
00005250  20 74 6f 20 74 68 65 20  69 6e 74 65 72 61 63 74  | to the interact|
00005260  69 76 65 20 68 65 6c 70  20 61 70 70 6c 69 63 61  |ive help applica|
00005270  74 69 6f 6e 2e 20 20 49  74 20 73 68 6f 75 6c 64  |tion.  It should|
00005280  20 62 65 20 0a 63 61 6c  6c 65 64 20 77 68 65 6e  | be .called when|
00005290  20 61 20 6d 65 73 73 61  67 65 20 77 69 74 68 20  | a message with |
000052a0  74 68 65 20 6e 75 6d 62  65 72 20 26 35 30 32 20  |the number &502 |
000052b0  69 73 20 72 65 63 65 69  76 65 64 20 61 6e 64 20  |is received and |
000052c0  74 68 65 20 70 6f 69 6e  74 65 72 20 69 73 20 6f  |the pointer is o|
000052d0  76 65 72 20 61 6e 20 0a  69 63 6f 6e 2e 20 20 49  |ver an .icon.  I|
000052e0  66 20 74 68 65 72 65 20  69 73 20 61 20 6d 65 73  |f there is a mes|
000052f0  73 61 67 65 20 69 6e 20  74 68 65 20 69 63 6f 6e  |sage in the icon|
00005300  73 20 76 61 6c 69 64 61  74 69 6f 6e 20 73 74 72  |s validation str|
00005310  69 6e 67 20 74 68 61 74  20 74 68 65 20 70 6f 69  |ing that the poi|
00005320  6e 74 65 72 20 69 73 20  63 75 72 72 65 6e 74 6c  |nter is currentl|
00005330  79 20 0a 6f 76 65 72 20  74 68 65 6e 20 74 68 69  |y .over then thi|
00005340  73 20 77 69 6c 6c 20 62  65 20 73 65 6e 74 20 74  |s will be sent t|
00005350  6f 20 74 68 65 20 68 65  6c 70 20 61 70 70 6c 69  |o the help appli|
00005360  63 61 74 69 6f 6e 2e 20  20 49 74 20 69 73 20 75  |cation.  It is u|
00005370  70 20 74 6f 20 74 68 65  20 61 70 70 6c 69 63 61  |p to the applica|
00005380  74 69 6f 6e 73 20 0a 70  72 6f 67 72 61 6d 6d 65  |tions .programme|
00005390  72 20 74 6f 20 74 61 6b  65 20 63 61 72 65 20 6f  |r to take care o|
000053a0  66 20 74 68 65 20 68 65  6c 70 20 6d 65 73 73 61  |f the help messa|
000053b0  67 65 20 77 68 65 6e 20  74 68 65 20 70 6f 69 6e  |ge when the poin|
000053c0  74 65 72 20 69 73 20 6f  76 65 72 20 74 68 65 20  |ter is over the |
000053d0  69 63 6f 6e 20 6f 6e 20  74 68 65 20 0a 69 63 6f  |icon on the .ico|
000053e0  6e 20 62 61 72 20 6f 72  20 69 73 20 6f 76 65 72  |n bar or is over|
000053f0  20 74 68 65 20 77 69 6e  64 6f 77 20 77 6f 72 6b  | the window work|
00005400  61 72 65 61 2e 20 0a 0a  4e 6f 6e 65 0a 0a 4e 6f  |area. ..None..No|
00005410  6e 65 0a 0a 0a 57 69 6d  70 5f 50 72 65 50 72 6f  |ne...Wimp_PrePro|
00005420  63 65 73 73 4b 65 79 20  28 49 6e 74 65 72 66 61  |cessKey (Interfa|
00005430  63 65 5f 50 72 65 50 72  6f 63 65 73 73 4b 65 79  |ce_PreProcessKey|
00005440  29 20 28 53 57 49 20 26  38 31 36 38 38 29 0a 0a  |) (SWI &81688)..|
00005450  52 30 20 3d 20 65 76 65  6e 74 20 74 79 70 65 0a  |R0 = event type.|
00005460  52 31 20 3d 20 65 76 65  6e 74 20 62 6c 6f 63 6b  |R1 = event block|
00005470  0a 52 32 20 3d 20 74 61  73 6b 20 68 61 6e 64 6c  |.R2 = task handl|
00005480  65 0a 0a 52 30 20 3d 20  75 70 64 61 74 65 64 20  |e..R0 = updated |
00005490  74 6f 20 6e 65 77 20 65  76 65 6e 74 20 74 79 70  |to new event typ|
000054a0  65 0a 52 31 20 3d 20 75  70 64 61 74 65 64 20 65  |e.R1 = updated e|
000054b0  76 65 6e 74 20 62 6c 6f  63 6b 0a 52 32 20 3d 20  |vent block.R2 = |
000054c0  30 20 69 66 20 65 76 65  6e 74 20 77 61 73 20 6e  |0 if event was n|
000054d0  6f 74 20 64 65 61 6c 74  20 69 6e 74 65 72 63 65  |ot dealt interce|
000054e0  70 74 65 64 0a 0a 54 68  69 73 20 63 61 6c 6c 20  |pted..This call |
000054f0  70 72 65 2d 70 72 6f 63  65 73 73 65 73 20 74 68  |pre-processes th|
00005500  65 20 75 70 2c 20 64 6f  77 6e 2c 20 74 61 62 2c  |e up, down, tab,|
00005510  20 73 68 69 66 74 2d 74  61 62 20 6b 65 79 73 20  | shift-tab keys |
00005520  61 6e 64 20 61 6e 79 20  73 70 65 63 69 66 69 65  |and any specifie|
00005530  64 20 69 6e 20 61 20 73  70 65 63 69 66 69 63 20  |d in a specific |
00005540  69 63 6f 6e 73 0a 76 61  6c 69 64 61 74 69 6f 6e  |icons.validation|
00005550  20 73 74 72 69 6e 67 20  75 73 69 6e 67 20 74 68  | string using th|
00005560  65 20 63 6f 6d 6d 61 6e  64 20 6b 3c 6b 65 79 63  |e command k<keyc|
00005570  6f 64 65 3e 2e 20 20 54  68 65 20 53 57 49 20 77  |ode>.  The SWI w|
00005580  69 6c 6c 20 6d 6f 76 65  20 69 63 6f 6e 2c 20 69  |ill move icon, i|
00005590  66 20 6e 65 63 63 65 73  73 61 72 79 20 6f 72 20  |f neccessary or |
000055a0  61 63 74 69 76 61 74 65  0a 61 20 62 75 74 74 6f  |activate.a butto|
000055b0  6e 2e 20 20 54 68 69 73  20 63 61 6c 6c 20 73 6f  |n.  This call so|
000055c0  75 6c 64 20 62 65 20 63  61 6c 6c 65 64 20 61 66  |uld be called af|
000055d0  74 65 72 20 74 68 65 20  77 69 6d 70 5f 70 6f 6c  |ter the wimp_pol|
000055e0  6c 20 63 6f 6d 6d 61 6e  64 2c 20 69 74 20 77 69  |l command, it wi|
000055f0  6c 6c 20 6d 61 74 63 68  20 74 68 65 20 6b 65 79  |ll match the key|
00005600  20 74 6f 20 61 6e 20 69  63 6f 6e 0a 61 6e 64 20  | to an icon.and |
00005610  69 66 20 6e 65 63 63 65  73 73 61 72 79 20 6d 6f  |if neccessary mo|
00005620  64 69 66 79 20 79 6f 75  72 20 77 69 6d 70 20 70  |dify your wimp p|
00005630  6f 6c 6c 20 62 6c 6f 63  6b 20 61 6e 64 20 65 76  |oll block and ev|
00005640  65 6e 74 20 74 79 70 65  2e 0a 0a 0a 57 69 6d 70  |ent type....Wimp|
00005650  5f 42 6f 72 64 65 72 50  6c 6f 74 49 63 6f 6e 20  |_BorderPlotIcon |
00005660  28 49 6e 74 65 72 66 61  63 65 5f 50 6c 6f 74 33  |(Interface_Plot3|
00005670  64 49 63 6f 6e 29 20 28  53 57 49 20 26 38 31 36  |dIcon) (SWI &816|
00005680  38 39 29 0a 0a 52 30 20  3d 20 77 69 6e 64 6f 77  |89)..R0 = window|
00005690  20 73 74 61 74 65 20 28  65 69 74 68 65 72 20 66  | state (either f|
000056a0  72 6f 6d 20 77 69 6d 70  5f 75 70 64 61 74 65 2f  |rom wimp_update/|
000056b0  72 65 64 72 61 77 20 6f  72 20 66 72 6f 6d 20 61  |redraw or from a|
000056c0  20 77 69 6d 70 5f 67 65  74 77 69 6e 64 6f 77 73  | wimp_getwindows|
000056d0  74 61 74 65 29 0a 52 31  20 3d 20 69 63 6f 6e 20  |tate).R1 = icon |
000056e0  62 6c 6f 63 6b 20 61 73  20 66 6f 72 20 57 69 6d  |block as for Wim|
000056f0  70 5f 50 6c 6f 74 49 63  6f 6e 0a 0a 54 68 69 73  |p_PlotIcon..This|
00005700  20 63 61 6c 6c 20 70 6c  6f 74 73 20 61 20 62 6f  | call plots a bo|
00005710  72 64 65 72 20 6f 6e 20  61 20 77 69 6e 64 6f 77  |rder on a window|
00005720  20 6c 69 6b 65 20 57 69  6d 70 5f 50 6c 6f 74 49  | like Wimp_PlotI|
00005730  63 6f 6e 2e 20 20 54 68  65 20 69 63 6f 6e 20 62  |con.  The icon b|
00005740  6c 6f 63 6b 20 70 61 73  73 65 64 20 69 6e 20 52  |lock passed in R|
00005750  31 0a 73 68 6f 75 6c 64  20 63 6f 6e 74 61 69 6e  |1.should contain|
00005760  20 61 20 62 6c 6f 63 6b  20 61 73 20 64 65 73 63  | a block as desc|
00005770  72 69 62 65 64 20 66 6f  72 20 57 69 6d 70 5f 50  |ribed for Wimp_P|
00005780  6c 6f 74 49 63 6f 6e 20  69 6e 20 74 68 65 20 50  |lotIcon in the P|
00005790  52 4d 73 2e 0a 0a 57 69  6d 70 5f 42 6f 72 64 65  |RMs...Wimp_Borde|
000057a0  72 42 6f 75 6e 64 69 6e  67 42 6f 78 20 28 49 6e  |rBoundingBox (In|
000057b0  74 65 72 66 61 63 65 5f  42 6f 75 6e 64 69 6e 67  |terface_Bounding|
000057c0  42 6f 78 29 20 28 53 57  49 20 26 38 31 36 38 41  |Box) (SWI &8168A|
000057d0  29 0a 0a 52 31 20 3d 20  69 63 6f 6e 20 62 6c 6f  |)..R1 = icon blo|
000057e0  63 6b 20 61 73 20 66 6f  72 20 57 69 6d 70 5f 50  |ck as for Wimp_P|
000057f0  6c 6f 74 49 63 6f 6e 0a  0a 52 31 20 3d 20 75 70  |lotIcon..R1 = up|
00005800  64 61 74 65 73 20 69 63  6f 6e 20 62 6c 6f 63 6b  |dates icon block|
00005810  0a 20 20 20 20 20 20 20  20 20 20 0a 20 20 20 20  |.          .    |
00005820  20 20 20 20 20 20 6f 66  66 73 65 74 0a 20 20 20  |      offset.   |
00005830  20 20 20 20 20 20 20 30  20 20 20 20 20 20 20 20  |       0        |
00005840  20 6d 69 6e 20 78 0a 20  20 20 20 20 20 20 20 20  | min x.         |
00005850  20 34 20 20 20 20 20 20  20 20 20 6d 69 6e 20 79  | 4         min y|
00005860  0a 20 20 20 20 20 20 20  20 20 20 38 20 20 20 20  |.          8    |
00005870  20 20 20 20 20 6d 61 78  20 78 0a 20 20 20 20 20  |     max x.     |
00005880  20 20 20 20 20 31 32 20  20 20 20 20 20 20 20 6d  |     12        m|
00005890  61 78 20 79 0a 20 20 20  20 20 20 20 20 20 20 31  |ax y.          1|
000058a0  36 20 20 20 20 20 20 20  20 62 6f 72 64 65 72 20  |6        border |
000058b0  77 69 64 74 68 0a 20 20  20 20 20 20 20 20 20 20  |width.          |
000058c0  32 30 20 20 20 20 20 20  20 20 62 75 74 74 6f 6e  |20        button|
000058d0  20 73 6c 61 62 20 73 74  61 74 65 20 28 31 20 3d  | slab state (1 =|
000058e0  20 6f 75 74 2c 20 30 20  3d 20 69 6e 29 0a 0a 54  | out, 0 = in)..T|
000058f0  68 69 73 20 63 61 6c 6c  20 72 65 74 75 72 6e 73  |his call returns|
00005900  20 69 6e 66 6f 72 6d 61  74 69 6f 6e 20 61 62 6f  | information abo|
00005910  75 74 20 74 68 65 20 69  63 6f 6e 20 62 6c 6f 63  |ut the icon bloc|
00005920  6b 20 70 61 73 73 65 64  20 74 6f 20 69 74 2e 20  |k passed to it. |
00005930  20 49 66 20 79 6f 75 20  77 69 73 68 20 74 6f 0a  | If you wish to.|
00005940  67 65 74 20 74 68 65 20  73 69 7a 65 20 6f 66 20  |get the size of |
00005950  61 6e 20 69 63 6f 6e 73  20 62 6f 78 20 75 73 65  |an icons box use|
00005960  20 57 69 6d 70 5f 47 65  74 49 63 6f 6e 53 74 61  | Wimp_GetIconSta|
00005970  74 65 20 61 6e 64 20 74  68 65 6e 20 70 61 73 73  |te and then pass|
00005980  20 74 68 65 20 69 63 6f  6e 20 62 6c 6f 63 6b 20  | the icon block |
00005990  0a 72 65 74 75 72 6e 65  64 20 74 6f 20 74 68 69  |.returned to thi|
000059a0  73 20 66 75 6e 63 74 69  6f 6e 2e 0a 0a 0a 0a     |s function.....|
000059af