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