Home » Archimedes archive » Acorn Computing » 1994 04 subscription disc.adf » 9404s » PD/BACKDROP/!StickyBrd/Docs/!TechMan/ReadMe

PD/BACKDROP/!StickyBrd/Docs/!TechMan/ReadMe

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

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

Tape/disk: Home » Archimedes archive » Acorn Computing » 1994 04 subscription disc.adf » 9404s
Filename: PD/BACKDROP/!StickyBrd/Docs/!TechMan/ReadMe
Read OK:
File size: A391 bytes
Load address: 0000
Exec address: 0000
File contents
!StickyBrd Technical Manual

Suitable for version 0.80. This technical manual is not applicable for
and should not be used with versions other than 0.80.
This is because certain information may have changed in future versions.

� David J. Seery 1992

*****************************************************************************

Introduction
~~~~~~~~~~~~

Although described as a technical manual this document is really about
writing modules.  You should read all of this file, so that you know what
features you can access (at a HIGH level interface) and what conventions
you should stick to so as to make your module easily transferable from
user to user.

General Guidelines
~~~~~~~~~~~~~~~~~~

Your module should be put in a directory titled with the name of your module.
This directory should then be put inside the ExtModls directory inside the
main !StickyBrd directory.  The module itself is of filetype BASIC and should
be called Module.  The help file (each module should have one) should use
Joris R�ling's !Help application (get this from any of a number of sources
within !StickyBrd) and should also have the standard help 'i' as an icon so
that it is easily recognizable.  Should you need to store configuration
options these should be in a file called !Config, and any sprites should be
in a file called Sprites.  Templates, should your module use them, should be
called just that.

Your module should be as self-sufficient as possible, and should not depend
upon the contents of the main !StickyBrd directory as this is likely to
change with successive versions.  All sprites should be in the Sprites file
even if it means duplicating some.

Your module should survive without a !Config file, but if it expects one and
cannot find it you should send a non-fatal error with modl_interface set to
one (see later) reading <module name>: Cannot find !Config file.  This is
important as your module should not crash but set sensible defaults (each
user could delete a !Config file before passing it on, or the receiving user
could delete any present !Config files so that s/he can set up the system
the way s/he wants it.)

You must reply to Message_ModuleExists (!StickyBrd message 0) with Message_
ModuleLoaded in your message function otherwise you might throw someone
else's module out of line.  This is not really advisable!

Modules should use the modl_interface system (see later) for communicating
with !StickyBrd as lower level interfaces (calling !StickyBrd procedures
directly, for example) may not be supported on future versions.

Module procedures and functions should start with the module name, for
example 'module_init'.  Procedure names should be in lower case, and an
underscore character ('_') should seperate the module name and the function
name.

Variables should follow the same rules to avoid clashes.

There are 3 functions that !StickyBrd calls directly, these being _init,
_event, and _message.  The first initialises the module, the second
controls the polling system, and the third is used for inter-module
messaging.  Your module should start with the function <module name>_init,
for example FNcommand_init.

<module name>_init
~~~~~~~~~~~~~~~~~~

Entry  :
         None
Exit   :
         None
Action :
        This function is guaranteed to be called before anything else is and
should be used to set up a menu block, load any templates, register the
module with !StickyBrd and load any sprites, also reading in !Config values.
Recommended code to do this is:

10 DEF FN<modulename>_init
20 DIM <modulename>_mblk% 60
30 mblk%=<modulename>_mblk%
40 PROCheader("Module",8)
45 menflags=0:menflags=1<<3:menuflags+=&80
50 PROCentry(menflags,-1,&7000021,"Info")
60 modulename_info%=FNmodl_init("Module","Recommended Code","Yours Truly","0.
   00  (0 xxx 19xx)",80,<modulename>_mblk%)
70 OSCLI "IconSprites <StickyBrdExt$Dir>.<Modulename>.Sprites"
80 reply=FALSE:REM for replying to messages
90 =0

Taking this line by line, line 10 simply defines a function.  Line 20
reserves space for a menu (all modules should have a menu, the minimum item
on it being Info), while lines 30, 40, and 50 setup the menu block.  Line
30 sets up a variable (mblk%) which is used by the procedures 'header' and
'entry' to point to the menu block.  The syntax of each call is:

 header    menu title, menu width in characters+1
 entry     menu flags, pointer to sub menu/window, icon flags, menu text

Note that the 'Info' menu item has it's 'send message' flag set.  This is
because !StickyBrd now only loads one copy of the module info window
(previous versions loaded a new window for each module) and alters the
text in it when it receives an 'open submenu' or 'open iconised window'
request.  The 1<<3 does this, or you can replace it with 8.

Line 60 registers the module with !StickyBrd -

modl_init
~~~~~~~~~

Entry  :
         title, purpose, author, version, !StickyBrd version*100, menu block
Exit   :
         info window handle
Action : 
         Registers a module with !StickyBrd.  If the !StickyBrd's version
number is less than the one required by the module, !StickyBrd will exit with
a fatal error.  The title, purpose, author, and version strings will be
placed in your module's info window by !StickyBrd itself.  The menu block
(or rather the pointer to it) passed will be 'glued' to the Modules sub-menu.
You may note that initially the Info item is defined as not having a sub-
window - this offset is filled in by !StickyBrd itself as long as the first
entry is for Info.  Any subsequent re-definitions of the menu block should
include the handle returned as a pointer to a sub-window.

You should exit the initialisation routine with 0 (line 80 =0) and wait for
a poll code received in the next function described.

<module name>_event
~~~~~~~~~~~~~~~~~~~

Entry  :
         poll reason code, pointer to parameter block
Exit   :
         depends on reason code
Action :
         Deals with a reason code.  The exact effect is dependant on the
reason code itself but if you do not deal with it you should exit with =0
and not do any further processing.  The reason codes are described below:
   ______________________________________________________________________
  /            |             |                                           \
 | Poll Number | Description | Parameter block description                |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |      0      | Null event  | Not applicable                             |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |      1      | Menu event  | +0 first item selected                     |
 |             |             | +4 second item selected                    |
 |             |             | etc., leading to:                          |
 |             |             | +n -1 = end of block                       |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |      2      | Save Config | Not applicable                             |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |      3      | Help event  | +0 window handle                           |
 |             |             | +4 icon handle                             |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |      4      | Double click| +0  x co-ordinate                          |
 |             | on icon     | +4  y co-ordinate                          |
 |             |             | +8  internal type                          |
 |             |             | +12 name                                   |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |      5      | Mouse click | +0 window handle                           |
 |             |             | +4 icon handle                             |
 |             |             | +8 button type                             |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |      6      | Translate   | +0 window handle                           |
 |             | handle to   |                                            |
 |             | name        |                                            |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |      7      | Translate   | +0 name                                    |
 |             | name to     |                                            |
 |             | handle      |                                            |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |      8      | Window width| +0 name                                    |
 |             | request     |                                            |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |      9      | Window      | +0 name                                    |
 |             | height req. |                                            |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |     10      | Drag end    | +0   internal type                         |
 |             |             | +4   icon name                             |
 |             |             | +260 viewer icon dragged to (name of)      |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |     11      | Data Load   | +0 window handle                           |
 |             |             | +4 icon handle                             |
 |             |             | +8 file name                               |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |�    12      | Delete icon | +0 icon handle                             |
 |             |             | +4 internal type                           |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |     13      | Quit        | Not applicable                             |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |     14      | Redraw      | Standard wimp redraw block                 |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |     15      | Clear All   | +0 clear type                              |
 |             |             | +4 desktop file to be loaded               |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
 |     16      | Desktop     | Not applicable                             |
 |             | loaded      |                                            |
 |_____________|_____________|____________________________________________|
 |             |             |                                            |
  \            |             |                                           /
   \___________|_____________|__________________________________________/


What follows is a detailed description of each poll code.

0 - Null event
~~~~~~~~~~~~~~

Entry  :
         None
Exit   :
         None
Action :
         You should do any processing required for null events and then
return, as quickly as possible.

1 - Menu event
~~~~~~~~~~~~~~

Entry  :
         +0 first item selected
         +4 second item selected...
Exit   :
         None
Action :
         If you have anything at all on the menu apart from Info you should
have a procedure set up to deal with it.  The parameter block is set up like
the standard wimp one, but starting at your menu. Again, return as quickly
as possible

2 - Save Config event
~~~~~~~~~~~~~~~~~~~~~

Entry  :
         None
Exit   :
         None
Action :
         Save your configuration file, if you have one.

3 - Interactive help request
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 window handle
         +4 icon handle
Exit   :
         pointer to help text block, or 0 if cannot handle this window
Action :
         Determine whether this is one of your windows (info window included)
and if it is return pointing to a block of text to display in the help
window.  If you cannot deal with it then return with 0.  You should support
interactive help, to make it easy for new users.

4 - Icon selected by double click event
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0  x position of mouse
         +4  y position of mouse
         +8  internal type
         +12 filename
Exit   :
         None
Action :
         Determine whether this is one of your icons (by looking at the
internal type number) and if it is execute appropriate code to deal with
it, otherwise exit.
A word of explanation - every !StickyBrd icon has a type attatched to it.
Applications are type 0, iconised windows type 3, command icons type 4
and so on.  If you are wanting to write a !StickyBrd module that uses icons
on the desktop, write to me for a internal type number.

5 - Mouse click event
~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 window handle
         +4 icon handle
         +8 button type
Exit   :
         None
Action :
         Determine whether the window is one of yours, and if it is check the
icon, otherwise exit.  The button type is the standard wimp type - 1 = adjust
2 = menu, 4 = select.

6 - Translate window handle to name request
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 window handle
Exit   :
         pointer to text, or 0 if cannot handle window
Action :
         Determine whether the window is one of yours, if it is return
pointing to a piece of text to be put under the icon.  This refers, if
you had not guessed, to an iconise request from the user.  You should support
iconising as standard.  If you cannot handle the window return with 0

7 - Translate name to handle request
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 window name as given by !StickyBrd or module in previous event
Exit   :
         window handle if can deal with it, otherwise 0
Action :
         Try and match window name to the one given in the previous event. If
you can do this exit with the window handle to be opened, otherwise exit with
0.

8 - Get window width
~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 window name
Exit   :
         window width if can deal with it, otherwise 0
Action :
         Try and match the name. If the window is one of yours, exit with a
number (the width of the window).  If you cannot deal with it, exit with 0.
The info window width is 650

9 - Get window height
~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 window name
Exit   :
         window height if can deal with it, otherwise 0
Action :
         Try and match the name, as before, with a window.  If the window is
one of yours, exit with the height of the window.  If you cannot deal with
it, exit with 0.
The info window height is 380

10 - End of drag event
~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0   internal type
         +4   icon name
         +260 save file name (title of viewer)
Exit   :
         None
Action :
         Determine whether the icon is one of yours (look at the internal
type) and then perform an action (if you want to) on the icon.  This event
occours when a drag with select to somewhere other than the backdrop window
has taken place - e.g. to a directory viewer.  DirChange uses this event to
change the currently selected directory. - have a look at the code.  The
text at block+4 is the name of the icon dragged, and the text at block+260
is the filename returned from by the task the icon was dragged to.

11 - Icon dragged to !StickyBrd (Message_DataLoad)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 window handle
         +4 icon handle
         +8 name of file dragged
Exit   :
         None
Action :
         Determine whether the window is one of yours and if it is execute
the code to deal with it, if any.

12 - Delete icon request
~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 icon handle
         +4 internal type
Exit   : 
         None
Action :
         Determine whether the icon is one of yours, and if it is delete
it with modl_interface set to 5.  Recommended code to do this is:

xx pointer%!0=<icon handle>
xx dummy=FNmodl_interface(5,pointer%)

If you have an item on a menu, say, then don't forget to flag it accordingly.

13 - !StickyBrd quitting event
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
 �       None
Exit   :
         None
Action :
         I cannot see a use for this poll code but that is not to say that
someone else can't.  Return as quickly as possible as the user doesn't want
to be kept waiting.  This event occours when the user clicks Quit from either
the main menu or the task manager, or an error occours and the user wants to
quit.

14 - Redraw request
~~~~~~~~~~~~~~~~~~~

Entry  :
         Standard wimp redraw block
Exit   :
         None
Action :
         Only bother with this poll code if you have somthing to redraw that
cannot be done by !StickyBrd itself.  If you are using the interface manager
by Simon Huntingdon (thoroughly recommended) you do not need to issue an
Interface_Border3dWindow SWI as this is done anyway.  Actually, to keep a
uniform appearance, I would suggest you do use Interface.  To use it, set
the validation string of a indirected icon to either:

 z0    Raised icon
 z1    Grouping icon
 z2    Default action
 z3    Writable icon

There are, of course, more types - see Simon's sepereate documentation.

15 - Clear All request
~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 clear type
         +4 desktop file to be loaded (if clear type=1)
Exit   :
         None
Action :
         You should clear all of your icons on the desktop as either:
 ** The user has clicked Clear All on the menu (clear type = 0)
 ** The user wants to load a new desktop       (clear type = 1)
If the user is loading a desktop (this is issued before the desktop has been
loaded) then block+4 points to the filename.
Recommended code to delete all icons of a particular type is:

xx REPEAT:pointer%!0=<internal type)
xx exists%=FNmodl_interface(11,pointer%)
xx IF exists%>0 THEN
xx  pointer%!0=exists%
xx  dummy=FNmodl_interface(5,pointer%)
xx ENDIF
xx UNTIL exists%=0

16 - Desktop has been loaded event
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         None
Exit   :
         None
Action :
         Really depends on what your module does.


Module interface system
~~~~~~~~~~~~~~~~~~~~~~~

So far the dialogue has only been one way with !StickyBrd telling us what has
happened.  We need a way of telling !StickyBrd to do things for us.  We can
either use !StickyBrd's own routines - these may not be supported on future
versions, but are slightly faster - or we can use !StickyBrd's built in
interface routines.  These are guaranteed to be supported on future versions
so your module will always work.

Interface routines currently supported are:

    ______________________________________________________________________
   /              |                  |                                    \
  /               |                  |                                     \
 | Interface code | Description      | Parameters passed in parameter block |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |       0        | Fatal error      | +0 error text                        |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |       1        | Non-fatal error  | +0 error text                        |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |       2        | Redraw background| Not applicable                       |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |       3        | Return backdrop  | On return,                           |
 |                | flags            | +0 loaded/not loaded                 |
 |                |                  | +4 tiled/centred                     |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |       4        | Place item on    | +0  sprite name                      |
 |                | desktop          | +12 icon name (filename)             |
 |                |                  | +24 x co-ordinate                    |
 |                |                  | +28 y co-ordinate                    |
 |                |                  | +32 internal type                    |
 |                |                  | +36 use last bit                     |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |       5        | Delete icon      | +0 icon handle                       |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |       6        | Open main menu   | +0 x co-ordinate                     |
 |                |                  | +4 y co-ordinate                     |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |       7        | Create drag      | +0 icon to use for drag box          |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |       8        | Select (invert)  | +0 icon handle                       |
 |                | icon             |                                      |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |       9        | Open parent      | +0 FULL filename                     |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |      10        | Slab icon        | +0 window handle                     |
 |                |                  | +4 icon handle                       |
 |                |                  | +8 button (4 to slab if not clicked) |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |      11        | Get handle of    | +0 internal type                     |
 |                | icon given type  |                                      |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |      12        | Send Message     | +0 message number                    |
 |                |                  | +4 pointer to further parameter block|
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |      13        | Put text in icon | +0 window handle                     |
 |                |                  | +4 icon handle                       |
 |                |                  | +8 text to put in icon               |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |      14        | Read icon text   | +0 window handle                     |
 |                |                  | +4 icon handle                       |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |      15        | Return last bit  | +0 text string to use                |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |      16        | Return first bit | +0 text string to use                |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
 |      17        | Set icon sprite  | +0 window handle                     |
 |                |                  | +4 icon handle                       |
 |                |                  | +8 sprite name                       |
 |________________|__________________|______________________________________|
 |                |                  |                                      |
  \               |                  |                                     /
   \______________|__________________|____________________________________/

There follows a description of each of the 17 interface codes.

0 - Fatal error
~~~~~~~~~~~~~~~

Entry  :
         +0 error text
Exit   :
         Doesn't
Action :
         Creates an error box with the text pointed to by block+0, and then
quits !StickyBrd, first sending a poll code number 13 (quit) to all modules.
If your module created the fatal error then don't respond to this poll.

1 - Non-fatal error
~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 error text
Exit   :
         None
Action :
         Similar to above, but doesn't quit !StickyBrd.  No message is sent
round, as !StickyBrd is not quitting.

2 - Redraw background window
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         None
Exit   :
         None
Action :
         Redraws the backdrop, and any icons on the desktop

3 - Return backdrop flags
~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  : 
         None
Exit   :
         +0 loaded/not loaded
         +4 tiled/centred
Action :
         Returns with information on current backdrop.  If there is one
loaded then block+0 will equal 1, otherwise it will contain 0 and
if tiled is selected then block+4 will be 1, otherwise (the backdrop is
centred) it will be 0

4 - Place icon on desktop
~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0  sprite name
         +12 icon (file) name
         +24 x co-ordinate
         +28 y co-ordinate
         +32 internal type
         +36 use last bit
Exit   :
         None
Action :
         Places an icon on the desktop using the passed parameters.  Only
'Use last bit' might need explaining and it refers to whether to seperate the
bits of the name: for example, if the name was -

 testname.test

and use last bit was selected the word 'test' would be printed below the
icon, otherwise the full 'testname.test' would be printed.  Filenames have
this bit set.

5 - Remove icon from desktop
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 icon handle (perhaps returned by modl_interface 11)
Exit   :
         None
Action :
         Removes the given icon from the desktop.

6 - Open main menu at given co-ordinates
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 x co-ordinate
         +4 y co-ordinate
Exit   :
         None
Action :
         Opens the main menu at the co-ordinates pointed to by block+0 and
block+4.

7 - Create drag
~~~~~~~~~~~~~~~

Entry  :
         +0 icon handle to create drag from
Exit   :
         None
Action :
         Creates a drag event given an icon handle.  This will be reported
with poll code 10, of course, when the drag finishes.

8 - Select (invert) icon
~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 icon handle
Exit   :
         None
Action :
         Inverts the given icon.

9 - Open Parent
~~~~~~~~~~~~~~~

Entry  :
         +0 FULL filename (adfs::<disc name>.$.dir1.dir2.file etc.)
Exit   :
         None
Action :
         Opens a filer window for the directory containing the file described
by block+0.  This should be a FULL filename as Filer_OpenDir is used which
is rather specific.  Note you cannot use system variables (future versions
will support this).

10 - Slab icon
~~~~~~~~~~~~~~

Entry  :
         +0 window handle
         +4 icon handle
         +8 button type
Exit   :
         None
Action :
         As per the interface manager.  If you have had a mouse click
reported by poll code 5 the parameter blocks are compatable, so just send
it otherwise you will have to prepare one.  To simulate a click with select
use button type 4.

11 - Determine whether an icon of the given type exists
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 internal type
Exit   :
         None
Action :
         Returns the icon handle of the last icon of the specific type (say
there were two, one with handle 5 and one with handle 10.  The one with
handle 10 would be reported), or 0 if it could not find any icons of that
type.

12 - Send Message
~~~~~~~~~~~~~~~~~

Entry  :
         +0 message number
         +4 pointer to message specific parameter block
Exit   :
          None
Action :
         Creates a message of the given type.  This opens the way for inter-
module communications.  Write to me for a message number if you propose to
use the messaging system.
See later for messages already in place.

Messages are received in the function:

<module name>_message
~~~~~~~~~~~~~~~~~~~~~

Entry  :
         message number, pointer to parameter block
Exit   :
         None
Action :
         Depends on message

13 - Put text in icon
~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 window handle
         +4 icon handle
         +8 text string
Exit   :
         None
Action :
         Puts the specified text string in the indirected icon specified by
the first two words of the data block.

14 - Read text from icon
~~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 window handle
         +4 icon handle
Exit   :
         pointer to text block
Action :
         Reads the text from the specified indirected icon and returns
pointing to the text string.  Note that these two calls only work with
indirected icons.

15 - Return last bit
~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 text string
Exit   :
         pointer to last bit of name
Action :
         Takes a filename, such as fred.smith, and returns the last particle
of it, in this case smith.

16 - Return first bit
~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 text string
Exit   :
         pointer to first bit of name
Action :
         Takes a filename, as in the previous call, and returns the first
section of it.  As an example, take fred.joe.smith.  The call would
return fred.joe, as opposed to smith which would be returned by the previous
call.

17 - Set icon sprite
~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 window handle
         +4 icon handle
         +8 sprite name
Exit   :
         None
Action :
         Sets the sprite name for a non-indirected icon.  This procedure is
used by all !StickyBrd sprite plot routines and it also sets the
appropiate icon flags to mark it as a sprite icon.

Messages already set up
~~~~~~~~~~~~~~~~~~~~~~~

  _________________________________________________________________________
 /                |                       |                                \
| Message number  | Description           | Parameter block                 |
|_________________|_______________________|_________________________________|
|                 |                       |                                 |
|       0         | Check module loaded   | +0 module name                  |
|_________________|_______________________|_________________________________|
|                 |                       |                                 |
|       1         | Reply to (0)          | +0 module name                  |
|                 |                       | +4 info window handle           |
|                 |                       | +8 menu block address           |
|_________________|_______________________|_________________________________|
|                 |                       |                                 |
|                 |                       |                                 |
 \________________|_______________________|________________________________/

Descriptions of the messages follow:

0 - Check module loaded                                  Message_ModuleExists
~~~~~~~~~~~~~~~~~~~~~~~

Entry  :
         +0 module name
Exit   :
         None
Action :
         Asks each module in turn for it's name.  It is up to the module to
acknowledge this with Message_ModuleLoaded, message number 1.  This message
is really supplied to check whether a given module is loaded.

1 - Module loaded                                        Message_ModuleLoaded
~~~~~~~~~~~~~~~~~

Entry  :
         +0 module name
         +12 info window handle
         +16 menu block address
Exit   :
         None
Action :
         If your module receives a Message_ModuleExists then you should reply
(if the module name at block+0 matches yours) with this message.  What then
happens is dependant on your module(s)

You should note that all poll codes and messages are broadcast rather than
directed, so you should only reply or accept message 1 if it is directed at
you.  This is the reason why block+0 of Message_ModuleLoaded contains the
module name.

Also you should reply to Message_ModuleExists with MessageModuleLoaded in
the poll loop.  You will receive Message_ModuleExists in the function
<module name>_message, from there you should set a flag and reply in the
poll loop.  This applies to all messages.  This is so that !StickyBrd
can cycle through all modules without interruption as messages will go
through the same function.  In the recommended initialise code given
above the flag is called 'reply'.

Other notes                                                              
~~~~~~~~~~~

A workspace area, pointer%, is set up for you to use, please use it to
conserve memory. pointer% is 400 bytes long and can be used for anything,
but it specifically useful as a block for message routines.
!StickyBrd can cope with 10 modules at the present time.  Should you try and
load more, !StickyBrd will probably crash with an address exception error,
this will be fixed in the next version (I hope).

The AutoRun file
~~~~~~~~~~~~~~~~

Inside the ExtModls directory there is a text file called AutoRun.  This is
used to run the modules in the ExtModls directory.  To start with it will
contain somthing like the following:

| Autorun file for !StickyBrd 0.80
|
{run} command;
{run} dirchange;
{end}

The AutoRun file uses a script language, which recognizes three commands:
{run},{rem}, and {end}.  In addition, | can be used to introduce a comment.
Blank lines can be used, and the usage of the three commands is obvious,
I hope - {run} runs a module, {rem} inserts a comment, and {end} ends the
file.
The semicolon after each {run} command indicates a further command - you
have no need to use this after a {rem}, blank line or | as these are ignored.
To add a module to the list, insert an extra {run} command before the {end}.
Remember to suffix it with a semi-colon (;) as this indicates there are more
commands.

Approving modules
~~~~~~~~~~~~~~~~~

Please send any modules you write to me, to get them approved and possibly
included in the next release.  Don't distribute modules without them
being approved, and please don't alter the table in the !Manual application.
Try and follow all the guidelines given here as this way your module stands
a better chance of being approved.  The module approving system is really
based on !PlaceIt's similar system (sorry Ian) and I've used a similar
idea as it helps the user by telling them what modules really do work and
if they follow all the standards.  I hope to publish a criteria so that
writers can check their modules against that.

System and normal variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Several system variables are set up so as to make your task easier; these are

 StickyBrd$Dir         = main !StickyBrd directory
 StickyBrdRes$Dir      = !StickyBrd resource directory
 StickyBrdExt$Dir      = !StickyBrd extentions directory

Raising errors
~~~~~~~~~~~~~~

Your modules need to raise errors in a uniform way.  This ensures that the
user doesn't get confused and that things are presented clearly and
with the minimum of fuss.
The first thing to do is to distinguish between fatal and non-fatal errors,
as the user would probably like to try and salvage some work if the worst
happens.  If you can recover from an error, even if it means losing some
variables, send a non-fatal error.
If there is no chance of coming out of the error send a fatal error request
because the computer might lock up if you try to sort it out or terminate
your module.
Don't add the word fatal to your error text if you are raising a fatal error,
this is done for you.
A non-fatal error should read somthing like
 <module name>: <error description>
so that perhaps it might come out as:
 Command: Cannot execute command.
Fatal errors should follow the same rules, but the text Fatal; is added
before the error is flagged, so in general fatal errors will read something
like:
 Fatal; Command: Cannot execute command.
You may note that !StickyBrd sends round a poll message 13 after a fatal
error, but if your module caused the error don't respond, as this coluld
start a never ending cycle.
!StickyBrd doesn't actually use error numbers as such, the module name is
used to distinguish errors.  Therefore don't include things like (int. error
code xxx) in the message, but you can use (type = x) as this seperates
similar errors and stops (hopefully) confusion.
These are only guidelines, please don't take them as a straight-jacket
as this will do more harm than good.

When debugging a module, you may get odd errors like No Such Function/
Procedure at line 18030 or some other high number.  This is becuase
!StickyBrd modules are actually libraries appended to BASIC.  When
!StickyBrd calls a function or procedure not in the main program, all
libraries are searched, and if the procedure still cannot be found, the
above error is reported at the last line in the main program.
When you get an error like this it is probably in a module, so check through
thoroughly.

*****************************************************************************

If there is a feature you would like to see included in the next version of
!StickyBrd, please write and tell me.  Also, if you would like any new
poll messages, interface calls or anything else added for the module side of
things, drop me a line. I won't know what you want unless you tell me.
I'm hoping we will be able to standardise on some messages and ways of doing
things, as well as incorporating facilities to generate new poll codes
(actually this can be done at present, but it's better to use the message
system) and such things.
If you are writing to get an internal type number and/or a message number(s)
please include as many details about your module as possible - name, purpose
(try and explain exactly what it will do) author, and such things.  The
point about this is that I can warn you if your module will clash with
anybody else's.  I suggest, when writing modules, that you test them with
an arbitary internal type number, or message number, and obtain a 'real' one
when it [the module] is finished.
REMEMBER: if your module doesn't come off, write and tell me quoting any
internal type and message numbers you may have been allocated as someone else
can use them.
The address to send modules to, requests for internal type numbers and
message numbers, and the address for general correspondance is:

Mr D. Seery,
15 Farm Walk
Bents Farm Estate
Littleborough
Lancashire
OL15 8LJ

Please mark your envelope 'StickyBrd'.

If you are sending a disc, then please package it carefully, but NOT so
that it can withstand a nuclear holocaust (!).  Keep a backup of any programs
you send, and state whether you are willing to have your module included in
any future versions, otherwise I won't know.  The copyright to all modules
remains yours, and although I would encourage you to keep them PD, I cannot
force you to set them as anything.

*****************************************************************************

Yours, 
       David Seery

Other sources of help are:
 !Manual         - user guide
 Command !Help   - help on module 'command'
 DirChange !Help - help on module 'dirchange'

� David J. Seery 1992

I hope you find this manual and !StickyBrd itself useful.  God bless.
00000000  21 53 74 69 63 6b 79 42  72 64 20 54 65 63 68 6e  |!StickyBrd Techn|
00000010  69 63 61 6c 20 4d 61 6e  75 61 6c 0a 0a 53 75 69  |ical Manual..Sui|
00000020  74 61 62 6c 65 20 66 6f  72 20 76 65 72 73 69 6f  |table for versio|
00000030  6e 20 30 2e 38 30 2e 20  54 68 69 73 20 74 65 63  |n 0.80. This tec|
00000040  68 6e 69 63 61 6c 20 6d  61 6e 75 61 6c 20 69 73  |hnical manual is|
00000050  20 6e 6f 74 20 61 70 70  6c 69 63 61 62 6c 65 20  | not applicable |
00000060  66 6f 72 0a 61 6e 64 20  73 68 6f 75 6c 64 20 6e  |for.and should n|
00000070  6f 74 20 62 65 20 75 73  65 64 20 77 69 74 68 20  |ot be used with |
00000080  76 65 72 73 69 6f 6e 73  20 6f 74 68 65 72 20 74  |versions other t|
00000090  68 61 6e 20 30 2e 38 30  2e 0a 54 68 69 73 20 69  |han 0.80..This i|
000000a0  73 20 62 65 63 61 75 73  65 20 63 65 72 74 61 69  |s because certai|
000000b0  6e 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 20 6d 61  |n information ma|
000000c0  79 20 68 61 76 65 20 63  68 61 6e 67 65 64 20 69  |y have changed i|
000000d0  6e 20 66 75 74 75 72 65  20 76 65 72 73 69 6f 6e  |n future version|
000000e0  73 2e 0a 0a a9 20 44 61  76 69 64 20 4a 2e 20 53  |s.... David J. S|
000000f0  65 65 72 79 20 31 39 39  32 0a 0a 2a 2a 2a 2a 2a  |eery 1992..*****|
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 2a  0a 0a 49 6e 74 72 6f 64  |********..Introd|
00000150  75 63 74 69 6f 6e 0a 7e  7e 7e 7e 7e 7e 7e 7e 7e  |uction.~~~~~~~~~|
00000160  7e 7e 7e 0a 0a 41 6c 74  68 6f 75 67 68 20 64 65  |~~~..Although de|
00000170  73 63 72 69 62 65 64 20  61 73 20 61 20 74 65 63  |scribed as a tec|
00000180  68 6e 69 63 61 6c 20 6d  61 6e 75 61 6c 20 74 68  |hnical manual th|
00000190  69 73 20 64 6f 63 75 6d  65 6e 74 20 69 73 20 72  |is document is r|
000001a0  65 61 6c 6c 79 20 61 62  6f 75 74 0a 77 72 69 74  |eally about.writ|
000001b0  69 6e 67 20 6d 6f 64 75  6c 65 73 2e 20 20 59 6f  |ing modules.  Yo|
000001c0  75 20 73 68 6f 75 6c 64  20 72 65 61 64 20 61 6c  |u should read al|
000001d0  6c 20 6f 66 20 74 68 69  73 20 66 69 6c 65 2c 20  |l of this file, |
000001e0  73 6f 20 74 68 61 74 20  79 6f 75 20 6b 6e 6f 77  |so that you know|
000001f0  20 77 68 61 74 0a 66 65  61 74 75 72 65 73 20 79  | what.features y|
00000200  6f 75 20 63 61 6e 20 61  63 63 65 73 73 20 28 61  |ou can access (a|
00000210  74 20 61 20 48 49 47 48  20 6c 65 76 65 6c 20 69  |t a HIGH level i|
00000220  6e 74 65 72 66 61 63 65  29 20 61 6e 64 20 77 68  |nterface) and wh|
00000230  61 74 20 63 6f 6e 76 65  6e 74 69 6f 6e 73 0a 79  |at conventions.y|
00000240  6f 75 20 73 68 6f 75 6c  64 20 73 74 69 63 6b 20  |ou should stick |
00000250  74 6f 20 73 6f 20 61 73  20 74 6f 20 6d 61 6b 65  |to so as to make|
00000260  20 79 6f 75 72 20 6d 6f  64 75 6c 65 20 65 61 73  | your module eas|
00000270  69 6c 79 20 74 72 61 6e  73 66 65 72 61 62 6c 65  |ily transferable|
00000280  20 66 72 6f 6d 0a 75 73  65 72 20 74 6f 20 75 73  | from.user to us|
00000290  65 72 2e 0a 0a 47 65 6e  65 72 61 6c 20 47 75 69  |er...General Gui|
000002a0  64 65 6c 69 6e 65 73 0a  7e 7e 7e 7e 7e 7e 7e 7e  |delines.~~~~~~~~|
000002b0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 0a 0a 59 6f 75 72  |~~~~~~~~~~..Your|
000002c0  20 6d 6f 64 75 6c 65 20  73 68 6f 75 6c 64 20 62  | module should b|
000002d0  65 20 70 75 74 20 69 6e  20 61 20 64 69 72 65 63  |e put in a direc|
000002e0  74 6f 72 79 20 74 69 74  6c 65 64 20 77 69 74 68  |tory titled with|
000002f0  20 74 68 65 20 6e 61 6d  65 20 6f 66 20 79 6f 75  | the name of you|
00000300  72 20 6d 6f 64 75 6c 65  2e 0a 54 68 69 73 20 64  |r module..This d|
00000310  69 72 65 63 74 6f 72 79  20 73 68 6f 75 6c 64 20  |irectory should |
00000320  74 68 65 6e 20 62 65 20  70 75 74 20 69 6e 73 69  |then be put insi|
00000330  64 65 20 74 68 65 20 45  78 74 4d 6f 64 6c 73 20  |de the ExtModls |
00000340  64 69 72 65 63 74 6f 72  79 20 69 6e 73 69 64 65  |directory inside|
00000350  20 74 68 65 0a 6d 61 69  6e 20 21 53 74 69 63 6b  | the.main !Stick|
00000360  79 42 72 64 20 64 69 72  65 63 74 6f 72 79 2e 20  |yBrd directory. |
00000370  20 54 68 65 20 6d 6f 64  75 6c 65 20 69 74 73 65  | The module itse|
00000380  6c 66 20 69 73 20 6f 66  20 66 69 6c 65 74 79 70  |lf is of filetyp|
00000390  65 20 42 41 53 49 43 20  61 6e 64 20 73 68 6f 75  |e BASIC and shou|
000003a0  6c 64 0a 62 65 20 63 61  6c 6c 65 64 20 4d 6f 64  |ld.be called Mod|
000003b0  75 6c 65 2e 20 20 54 68  65 20 68 65 6c 70 20 66  |ule.  The help f|
000003c0  69 6c 65 20 28 65 61 63  68 20 6d 6f 64 75 6c 65  |ile (each module|
000003d0  20 73 68 6f 75 6c 64 20  68 61 76 65 20 6f 6e 65  | should have one|
000003e0  29 20 73 68 6f 75 6c 64  20 75 73 65 0a 4a 6f 72  |) should use.Jor|
000003f0  69 73 20 52 d6 6c 69 6e  67 27 73 20 21 48 65 6c  |is R.ling's !Hel|
00000400  70 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 28 67  |p application (g|
00000410  65 74 20 74 68 69 73 20  66 72 6f 6d 20 61 6e 79  |et this from any|
00000420  20 6f 66 20 61 20 6e 75  6d 62 65 72 20 6f 66 20  | of a number of |
00000430  73 6f 75 72 63 65 73 0a  77 69 74 68 69 6e 20 21  |sources.within !|
00000440  53 74 69 63 6b 79 42 72  64 29 20 61 6e 64 20 73  |StickyBrd) and s|
00000450  68 6f 75 6c 64 20 61 6c  73 6f 20 68 61 76 65 20  |hould also have |
00000460  74 68 65 20 73 74 61 6e  64 61 72 64 20 68 65 6c  |the standard hel|
00000470  70 20 27 69 27 20 61 73  20 61 6e 20 69 63 6f 6e  |p 'i' as an icon|
00000480  20 73 6f 0a 74 68 61 74  20 69 74 20 69 73 20 65  | so.that it is e|
00000490  61 73 69 6c 79 20 72 65  63 6f 67 6e 69 7a 61 62  |asily recognizab|
000004a0  6c 65 2e 20 20 53 68 6f  75 6c 64 20 79 6f 75 20  |le.  Should you |
000004b0  6e 65 65 64 20 74 6f 20  73 74 6f 72 65 20 63 6f  |need to store co|
000004c0  6e 66 69 67 75 72 61 74  69 6f 6e 0a 6f 70 74 69  |nfiguration.opti|
000004d0  6f 6e 73 20 74 68 65 73  65 20 73 68 6f 75 6c 64  |ons these should|
000004e0  20 62 65 20 69 6e 20 61  20 66 69 6c 65 20 63 61  | be in a file ca|
000004f0  6c 6c 65 64 20 21 43 6f  6e 66 69 67 2c 20 61 6e  |lled !Config, an|
00000500  64 20 61 6e 79 20 73 70  72 69 74 65 73 20 73 68  |d any sprites sh|
00000510  6f 75 6c 64 20 62 65 0a  69 6e 20 61 20 66 69 6c  |ould be.in a fil|
00000520  65 20 63 61 6c 6c 65 64  20 53 70 72 69 74 65 73  |e called Sprites|
00000530  2e 20 20 54 65 6d 70 6c  61 74 65 73 2c 20 73 68  |.  Templates, sh|
00000540  6f 75 6c 64 20 79 6f 75  72 20 6d 6f 64 75 6c 65  |ould your module|
00000550  20 75 73 65 20 74 68 65  6d 2c 20 73 68 6f 75 6c  | use them, shoul|
00000560  64 20 62 65 0a 63 61 6c  6c 65 64 20 6a 75 73 74  |d be.called just|
00000570  20 74 68 61 74 2e 0a 0a  59 6f 75 72 20 6d 6f 64  | that...Your mod|
00000580  75 6c 65 20 73 68 6f 75  6c 64 20 62 65 20 61 73  |ule should be as|
00000590  20 73 65 6c 66 2d 73 75  66 66 69 63 69 65 6e 74  | self-sufficient|
000005a0  20 61 73 20 70 6f 73 73  69 62 6c 65 2c 20 61 6e  | as possible, an|
000005b0  64 20 73 68 6f 75 6c 64  20 6e 6f 74 20 64 65 70  |d should not dep|
000005c0  65 6e 64 0a 75 70 6f 6e  20 74 68 65 20 63 6f 6e  |end.upon the con|
000005d0  74 65 6e 74 73 20 6f 66  20 74 68 65 20 6d 61 69  |tents of the mai|
000005e0  6e 20 21 53 74 69 63 6b  79 42 72 64 20 64 69 72  |n !StickyBrd dir|
000005f0  65 63 74 6f 72 79 20 61  73 20 74 68 69 73 20 69  |ectory as this i|
00000600  73 20 6c 69 6b 65 6c 79  20 74 6f 0a 63 68 61 6e  |s likely to.chan|
00000610  67 65 20 77 69 74 68 20  73 75 63 63 65 73 73 69  |ge with successi|
00000620  76 65 20 76 65 72 73 69  6f 6e 73 2e 20 20 41 6c  |ve versions.  Al|
00000630  6c 20 73 70 72 69 74 65  73 20 73 68 6f 75 6c 64  |l sprites should|
00000640  20 62 65 20 69 6e 20 74  68 65 20 53 70 72 69 74  | be in the Sprit|
00000650  65 73 20 66 69 6c 65 0a  65 76 65 6e 20 69 66 20  |es file.even if |
00000660  69 74 20 6d 65 61 6e 73  20 64 75 70 6c 69 63 61  |it means duplica|
00000670  74 69 6e 67 20 73 6f 6d  65 2e 0a 0a 59 6f 75 72  |ting some...Your|
00000680  20 6d 6f 64 75 6c 65 20  73 68 6f 75 6c 64 20 73  | module should s|
00000690  75 72 76 69 76 65 20 77  69 74 68 6f 75 74 20 61  |urvive without a|
000006a0  20 21 43 6f 6e 66 69 67  20 66 69 6c 65 2c 20 62  | !Config file, b|
000006b0  75 74 20 69 66 20 69 74  20 65 78 70 65 63 74 73  |ut if it expects|
000006c0  20 6f 6e 65 20 61 6e 64  0a 63 61 6e 6e 6f 74 20  | one and.cannot |
000006d0  66 69 6e 64 20 69 74 20  79 6f 75 20 73 68 6f 75  |find it you shou|
000006e0  6c 64 20 73 65 6e 64 20  61 20 6e 6f 6e 2d 66 61  |ld send a non-fa|
000006f0  74 61 6c 20 65 72 72 6f  72 20 77 69 74 68 20 6d  |tal error with m|
00000700  6f 64 6c 5f 69 6e 74 65  72 66 61 63 65 20 73 65  |odl_interface se|
00000710  74 20 74 6f 0a 6f 6e 65  20 28 73 65 65 20 6c 61  |t to.one (see la|
00000720  74 65 72 29 20 72 65 61  64 69 6e 67 20 3c 6d 6f  |ter) reading <mo|
00000730  64 75 6c 65 20 6e 61 6d  65 3e 3a 20 43 61 6e 6e  |dule name>: Cann|
00000740  6f 74 20 66 69 6e 64 20  21 43 6f 6e 66 69 67 20  |ot find !Config |
00000750  66 69 6c 65 2e 20 20 54  68 69 73 20 69 73 0a 69  |file.  This is.i|
00000760  6d 70 6f 72 74 61 6e 74  20 61 73 20 79 6f 75 72  |mportant as your|
00000770  20 6d 6f 64 75 6c 65 20  73 68 6f 75 6c 64 20 6e  | module should n|
00000780  6f 74 20 63 72 61 73 68  20 62 75 74 20 73 65 74  |ot crash but set|
00000790  20 73 65 6e 73 69 62 6c  65 20 64 65 66 61 75 6c  | sensible defaul|
000007a0  74 73 20 28 65 61 63 68  0a 75 73 65 72 20 63 6f  |ts (each.user co|
000007b0  75 6c 64 20 64 65 6c 65  74 65 20 61 20 21 43 6f  |uld delete a !Co|
000007c0  6e 66 69 67 20 66 69 6c  65 20 62 65 66 6f 72 65  |nfig file before|
000007d0  20 70 61 73 73 69 6e 67  20 69 74 20 6f 6e 2c 20  | passing it on, |
000007e0  6f 72 20 74 68 65 20 72  65 63 65 69 76 69 6e 67  |or the receiving|
000007f0  20 75 73 65 72 0a 63 6f  75 6c 64 20 64 65 6c 65  | user.could dele|
00000800  74 65 20 61 6e 79 20 70  72 65 73 65 6e 74 20 21  |te any present !|
00000810  43 6f 6e 66 69 67 20 66  69 6c 65 73 20 73 6f 20  |Config files so |
00000820  74 68 61 74 20 73 2f 68  65 20 63 61 6e 20 73 65  |that s/he can se|
00000830  74 20 75 70 20 74 68 65  20 73 79 73 74 65 6d 0a  |t up the system.|
00000840  74 68 65 20 77 61 79 20  73 2f 68 65 20 77 61 6e  |the way s/he wan|
00000850  74 73 20 69 74 2e 29 0a  0a 59 6f 75 20 6d 75 73  |ts it.)..You mus|
00000860  74 20 72 65 70 6c 79 20  74 6f 20 4d 65 73 73 61  |t reply to Messa|
00000870  67 65 5f 4d 6f 64 75 6c  65 45 78 69 73 74 73 20  |ge_ModuleExists |
00000880  28 21 53 74 69 63 6b 79  42 72 64 20 6d 65 73 73  |(!StickyBrd mess|
00000890  61 67 65 20 30 29 20 77  69 74 68 20 4d 65 73 73  |age 0) with Mess|
000008a0  61 67 65 5f 0a 4d 6f 64  75 6c 65 4c 6f 61 64 65  |age_.ModuleLoade|
000008b0  64 20 69 6e 20 79 6f 75  72 20 6d 65 73 73 61 67  |d in your messag|
000008c0  65 20 66 75 6e 63 74 69  6f 6e 20 6f 74 68 65 72  |e function other|
000008d0  77 69 73 65 20 79 6f 75  20 6d 69 67 68 74 20 74  |wise you might t|
000008e0  68 72 6f 77 20 73 6f 6d  65 6f 6e 65 0a 65 6c 73  |hrow someone.els|
000008f0  65 27 73 20 6d 6f 64 75  6c 65 20 6f 75 74 20 6f  |e's module out o|
00000900  66 20 6c 69 6e 65 2e 20  20 54 68 69 73 20 69 73  |f line.  This is|
00000910  20 6e 6f 74 20 72 65 61  6c 6c 79 20 61 64 76 69  | not really advi|
00000920  73 61 62 6c 65 21 0a 0a  4d 6f 64 75 6c 65 73 20  |sable!..Modules |
00000930  73 68 6f 75 6c 64 20 75  73 65 20 74 68 65 20 6d  |should use the m|
00000940  6f 64 6c 5f 69 6e 74 65  72 66 61 63 65 20 73 79  |odl_interface sy|
00000950  73 74 65 6d 20 28 73 65  65 20 6c 61 74 65 72 29  |stem (see later)|
00000960  20 66 6f 72 20 63 6f 6d  6d 75 6e 69 63 61 74 69  | for communicati|
00000970  6e 67 0a 77 69 74 68 20  21 53 74 69 63 6b 79 42  |ng.with !StickyB|
00000980  72 64 20 61 73 20 6c 6f  77 65 72 20 6c 65 76 65  |rd as lower leve|
00000990  6c 20 69 6e 74 65 72 66  61 63 65 73 20 28 63 61  |l interfaces (ca|
000009a0  6c 6c 69 6e 67 20 21 53  74 69 63 6b 79 42 72 64  |lling !StickyBrd|
000009b0  20 70 72 6f 63 65 64 75  72 65 73 0a 64 69 72 65  | procedures.dire|
000009c0  63 74 6c 79 2c 20 66 6f  72 20 65 78 61 6d 70 6c  |ctly, for exampl|
000009d0  65 29 20 6d 61 79 20 6e  6f 74 20 62 65 20 73 75  |e) may not be su|
000009e0  70 70 6f 72 74 65 64 20  6f 6e 20 66 75 74 75 72  |pported on futur|
000009f0  65 20 76 65 72 73 69 6f  6e 73 2e 0a 0a 4d 6f 64  |e versions...Mod|
00000a00  75 6c 65 20 70 72 6f 63  65 64 75 72 65 73 20 61  |ule procedures a|
00000a10  6e 64 20 66 75 6e 63 74  69 6f 6e 73 20 73 68 6f  |nd functions sho|
00000a20  75 6c 64 20 73 74 61 72  74 20 77 69 74 68 20 74  |uld start with t|
00000a30  68 65 20 6d 6f 64 75 6c  65 20 6e 61 6d 65 2c 20  |he module name, |
00000a40  66 6f 72 0a 65 78 61 6d  70 6c 65 20 27 6d 6f 64  |for.example 'mod|
00000a50  75 6c 65 5f 69 6e 69 74  27 2e 20 20 50 72 6f 63  |ule_init'.  Proc|
00000a60  65 64 75 72 65 20 6e 61  6d 65 73 20 73 68 6f 75  |edure names shou|
00000a70  6c 64 20 62 65 20 69 6e  20 6c 6f 77 65 72 20 63  |ld be in lower c|
00000a80  61 73 65 2c 20 61 6e 64  20 61 6e 0a 75 6e 64 65  |ase, and an.unde|
00000a90  72 73 63 6f 72 65 20 63  68 61 72 61 63 74 65 72  |rscore character|
00000aa0  20 28 27 5f 27 29 20 73  68 6f 75 6c 64 20 73 65  | ('_') should se|
00000ab0  70 65 72 61 74 65 20 74  68 65 20 6d 6f 64 75 6c  |perate the modul|
00000ac0  65 20 6e 61 6d 65 20 61  6e 64 20 74 68 65 20 66  |e name and the f|
00000ad0  75 6e 63 74 69 6f 6e 0a  6e 61 6d 65 2e 0a 0a 56  |unction.name...V|
00000ae0  61 72 69 61 62 6c 65 73  20 73 68 6f 75 6c 64 20  |ariables should |
00000af0  66 6f 6c 6c 6f 77 20 74  68 65 20 73 61 6d 65 20  |follow the same |
00000b00  72 75 6c 65 73 20 74 6f  20 61 76 6f 69 64 20 63  |rules to avoid c|
00000b10  6c 61 73 68 65 73 2e 0a  0a 54 68 65 72 65 20 61  |lashes...There a|
00000b20  72 65 20 33 20 66 75 6e  63 74 69 6f 6e 73 20 74  |re 3 functions t|
00000b30  68 61 74 20 21 53 74 69  63 6b 79 42 72 64 20 63  |hat !StickyBrd c|
00000b40  61 6c 6c 73 20 64 69 72  65 63 74 6c 79 2c 20 74  |alls directly, t|
00000b50  68 65 73 65 20 62 65 69  6e 67 20 5f 69 6e 69 74  |hese being _init|
00000b60  2c 0a 5f 65 76 65 6e 74  2c 20 61 6e 64 20 5f 6d  |,._event, and _m|
00000b70  65 73 73 61 67 65 2e 20  20 54 68 65 20 66 69 72  |essage.  The fir|
00000b80  73 74 20 69 6e 69 74 69  61 6c 69 73 65 73 20 74  |st initialises t|
00000b90  68 65 20 6d 6f 64 75 6c  65 2c 20 74 68 65 20 73  |he module, the s|
00000ba0  65 63 6f 6e 64 0a 63 6f  6e 74 72 6f 6c 73 20 74  |econd.controls t|
00000bb0  68 65 20 70 6f 6c 6c 69  6e 67 20 73 79 73 74 65  |he polling syste|
00000bc0  6d 2c 20 61 6e 64 20 74  68 65 20 74 68 69 72 64  |m, and the third|
00000bd0  20 69 73 20 75 73 65 64  20 66 6f 72 20 69 6e 74  | is used for int|
00000be0  65 72 2d 6d 6f 64 75 6c  65 0a 6d 65 73 73 61 67  |er-module.messag|
00000bf0  69 6e 67 2e 20 20 59 6f  75 72 20 6d 6f 64 75 6c  |ing.  Your modul|
00000c00  65 20 73 68 6f 75 6c 64  20 73 74 61 72 74 20 77  |e should start w|
00000c10  69 74 68 20 74 68 65 20  66 75 6e 63 74 69 6f 6e  |ith the function|
00000c20  20 3c 6d 6f 64 75 6c 65  20 6e 61 6d 65 3e 5f 69  | <module name>_i|
00000c30  6e 69 74 2c 0a 66 6f 72  20 65 78 61 6d 70 6c 65  |nit,.for example|
00000c40  20 46 4e 63 6f 6d 6d 61  6e 64 5f 69 6e 69 74 2e  | FNcommand_init.|
00000c50  0a 0a 3c 6d 6f 64 75 6c  65 20 6e 61 6d 65 3e 5f  |..<module name>_|
00000c60  69 6e 69 74 0a 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |init.~~~~~~~~~~~|
00000c70  7e 7e 7e 7e 7e 7e 7e 0a  0a 45 6e 74 72 79 20 20  |~~~~~~~..Entry  |
00000c80  3a 0a 20 20 20 20 20 20  20 20 20 4e 6f 6e 65 0a  |:.         None.|
00000c90  45 78 69 74 20 20 20 3a  0a 20 20 20 20 20 20 20  |Exit   :.       |
00000ca0  20 20 4e 6f 6e 65 0a 41  63 74 69 6f 6e 20 3a 0a  |  None.Action :.|
00000cb0  20 20 20 20 20 20 20 20  54 68 69 73 20 66 75 6e  |        This fun|
00000cc0  63 74 69 6f 6e 20 69 73  20 67 75 61 72 61 6e 74  |ction is guarant|
00000cd0  65 65 64 20 74 6f 20 62  65 20 63 61 6c 6c 65 64  |eed to be called|
00000ce0  20 62 65 66 6f 72 65 20  61 6e 79 74 68 69 6e 67  | before anything|
00000cf0  20 65 6c 73 65 20 69 73  20 61 6e 64 0a 73 68 6f  | else is and.sho|
00000d00  75 6c 64 20 62 65 20 75  73 65 64 20 74 6f 20 73  |uld be used to s|
00000d10  65 74 20 75 70 20 61 20  6d 65 6e 75 20 62 6c 6f  |et up a menu blo|
00000d20  63 6b 2c 20 6c 6f 61 64  20 61 6e 79 20 74 65 6d  |ck, load any tem|
00000d30  70 6c 61 74 65 73 2c 20  72 65 67 69 73 74 65 72  |plates, register|
00000d40  20 74 68 65 0a 6d 6f 64  75 6c 65 20 77 69 74 68  | the.module with|
00000d50  20 21 53 74 69 63 6b 79  42 72 64 20 61 6e 64 20  | !StickyBrd and |
00000d60  6c 6f 61 64 20 61 6e 79  20 73 70 72 69 74 65 73  |load any sprites|
00000d70  2c 20 61 6c 73 6f 20 72  65 61 64 69 6e 67 20 69  |, also reading i|
00000d80  6e 20 21 43 6f 6e 66 69  67 20 76 61 6c 75 65 73  |n !Config values|
00000d90  2e 0a 52 65 63 6f 6d 6d  65 6e 64 65 64 20 63 6f  |..Recommended co|
00000da0  64 65 20 74 6f 20 64 6f  20 74 68 69 73 20 69 73  |de to do this is|
00000db0  3a 0a 0a 31 30 20 44 45  46 20 46 4e 3c 6d 6f 64  |:..10 DEF FN<mod|
00000dc0  75 6c 65 6e 61 6d 65 3e  5f 69 6e 69 74 0a 32 30  |ulename>_init.20|
00000dd0  20 44 49 4d 20 3c 6d 6f  64 75 6c 65 6e 61 6d 65  | DIM <modulename|
00000de0  3e 5f 6d 62 6c 6b 25 20  36 30 0a 33 30 20 6d 62  |>_mblk% 60.30 mb|
00000df0  6c 6b 25 3d 3c 6d 6f 64  75 6c 65 6e 61 6d 65 3e  |lk%=<modulename>|
00000e00  5f 6d 62 6c 6b 25 0a 34  30 20 50 52 4f 43 68 65  |_mblk%.40 PROChe|
00000e10  61 64 65 72 28 22 4d 6f  64 75 6c 65 22 2c 38 29  |ader("Module",8)|
00000e20  0a 34 35 20 6d 65 6e 66  6c 61 67 73 3d 30 3a 6d  |.45 menflags=0:m|
00000e30  65 6e 66 6c 61 67 73 3d  31 3c 3c 33 3a 6d 65 6e  |enflags=1<<3:men|
00000e40  75 66 6c 61 67 73 2b 3d  26 38 30 0a 35 30 20 50  |uflags+=&80.50 P|
00000e50  52 4f 43 65 6e 74 72 79  28 6d 65 6e 66 6c 61 67  |ROCentry(menflag|
00000e60  73 2c 2d 31 2c 26 37 30  30 30 30 32 31 2c 22 49  |s,-1,&7000021,"I|
00000e70  6e 66 6f 22 29 0a 36 30  20 6d 6f 64 75 6c 65 6e  |nfo").60 modulen|
00000e80  61 6d 65 5f 69 6e 66 6f  25 3d 46 4e 6d 6f 64 6c  |ame_info%=FNmodl|
00000e90  5f 69 6e 69 74 28 22 4d  6f 64 75 6c 65 22 2c 22  |_init("Module","|
00000ea0  52 65 63 6f 6d 6d 65 6e  64 65 64 20 43 6f 64 65  |Recommended Code|
00000eb0  22 2c 22 59 6f 75 72 73  20 54 72 75 6c 79 22 2c  |","Yours Truly",|
00000ec0  22 30 2e 0a 20 20 20 30  30 20 20 28 30 20 78 78  |"0..   00  (0 xx|
00000ed0  78 20 31 39 78 78 29 22  2c 38 30 2c 3c 6d 6f 64  |x 19xx)",80,<mod|
00000ee0  75 6c 65 6e 61 6d 65 3e  5f 6d 62 6c 6b 25 29 0a  |ulename>_mblk%).|
00000ef0  37 30 20 4f 53 43 4c 49  20 22 49 63 6f 6e 53 70  |70 OSCLI "IconSp|
00000f00  72 69 74 65 73 20 3c 53  74 69 63 6b 79 42 72 64  |rites <StickyBrd|
00000f10  45 78 74 24 44 69 72 3e  2e 3c 4d 6f 64 75 6c 65  |Ext$Dir>.<Module|
00000f20  6e 61 6d 65 3e 2e 53 70  72 69 74 65 73 22 0a 38  |name>.Sprites".8|
00000f30  30 20 72 65 70 6c 79 3d  46 41 4c 53 45 3a 52 45  |0 reply=FALSE:RE|
00000f40  4d 20 66 6f 72 20 72 65  70 6c 79 69 6e 67 20 74  |M for replying t|
00000f50  6f 20 6d 65 73 73 61 67  65 73 0a 39 30 20 3d 30  |o messages.90 =0|
00000f60  0a 0a 54 61 6b 69 6e 67  20 74 68 69 73 20 6c 69  |..Taking this li|
00000f70  6e 65 20 62 79 20 6c 69  6e 65 2c 20 6c 69 6e 65  |ne by line, line|
00000f80  20 31 30 20 73 69 6d 70  6c 79 20 64 65 66 69 6e  | 10 simply defin|
00000f90  65 73 20 61 20 66 75 6e  63 74 69 6f 6e 2e 20 20  |es a function.  |
00000fa0  4c 69 6e 65 20 32 30 0a  72 65 73 65 72 76 65 73  |Line 20.reserves|
00000fb0  20 73 70 61 63 65 20 66  6f 72 20 61 20 6d 65 6e  | space for a men|
00000fc0  75 20 28 61 6c 6c 20 6d  6f 64 75 6c 65 73 20 73  |u (all modules s|
00000fd0  68 6f 75 6c 64 20 68 61  76 65 20 61 20 6d 65 6e  |hould have a men|
00000fe0  75 2c 20 74 68 65 20 6d  69 6e 69 6d 75 6d 20 69  |u, the minimum i|
00000ff0  74 65 6d 0a 6f 6e 20 69  74 20 62 65 69 6e 67 20  |tem.on it being |
00001000  49 6e 66 6f 29 2c 20 77  68 69 6c 65 20 6c 69 6e  |Info), while lin|
00001010  65 73 20 33 30 2c 20 34  30 2c 20 61 6e 64 20 35  |es 30, 40, and 5|
00001020  30 20 73 65 74 75 70 20  74 68 65 20 6d 65 6e 75  |0 setup the menu|
00001030  20 62 6c 6f 63 6b 2e 20  20 4c 69 6e 65 0a 33 30  | block.  Line.30|
00001040  20 73 65 74 73 20 75 70  20 61 20 76 61 72 69 61  | sets up a varia|
00001050  62 6c 65 20 28 6d 62 6c  6b 25 29 20 77 68 69 63  |ble (mblk%) whic|
00001060  68 20 69 73 20 75 73 65  64 20 62 79 20 74 68 65  |h is used by the|
00001070  20 70 72 6f 63 65 64 75  72 65 73 20 27 68 65 61  | procedures 'hea|
00001080  64 65 72 27 20 61 6e 64  0a 27 65 6e 74 72 79 27  |der' and.'entry'|
00001090  20 74 6f 20 70 6f 69 6e  74 20 74 6f 20 74 68 65  | to point to the|
000010a0  20 6d 65 6e 75 20 62 6c  6f 63 6b 2e 20 20 54 68  | menu block.  Th|
000010b0  65 20 73 79 6e 74 61 78  20 6f 66 20 65 61 63 68  |e syntax of each|
000010c0  20 63 61 6c 6c 20 69 73  3a 0a 0a 20 68 65 61 64  | call is:.. head|
000010d0  65 72 20 20 20 20 6d 65  6e 75 20 74 69 74 6c 65  |er    menu title|
000010e0  2c 20 6d 65 6e 75 20 77  69 64 74 68 20 69 6e 20  |, menu width in |
000010f0  63 68 61 72 61 63 74 65  72 73 2b 31 0a 20 65 6e  |characters+1. en|
00001100  74 72 79 20 20 20 20 20  6d 65 6e 75 20 66 6c 61  |try     menu fla|
00001110  67 73 2c 20 70 6f 69 6e  74 65 72 20 74 6f 20 73  |gs, pointer to s|
00001120  75 62 20 6d 65 6e 75 2f  77 69 6e 64 6f 77 2c 20  |ub menu/window, |
00001130  69 63 6f 6e 20 66 6c 61  67 73 2c 20 6d 65 6e 75  |icon flags, menu|
00001140  20 74 65 78 74 0a 0a 4e  6f 74 65 20 74 68 61 74  | text..Note that|
00001150  20 74 68 65 20 27 49 6e  66 6f 27 20 6d 65 6e 75  | the 'Info' menu|
00001160  20 69 74 65 6d 20 68 61  73 20 69 74 27 73 20 27  | item has it's '|
00001170  73 65 6e 64 20 6d 65 73  73 61 67 65 27 20 66 6c  |send message' fl|
00001180  61 67 20 73 65 74 2e 20  20 54 68 69 73 20 69 73  |ag set.  This is|
00001190  0a 62 65 63 61 75 73 65  20 21 53 74 69 63 6b 79  |.because !Sticky|
000011a0  42 72 64 20 6e 6f 77 20  6f 6e 6c 79 20 6c 6f 61  |Brd now only loa|
000011b0  64 73 20 6f 6e 65 20 63  6f 70 79 20 6f 66 20 74  |ds one copy of t|
000011c0  68 65 20 6d 6f 64 75 6c  65 20 69 6e 66 6f 20 77  |he module info w|
000011d0  69 6e 64 6f 77 0a 28 70  72 65 76 69 6f 75 73 20  |indow.(previous |
000011e0  76 65 72 73 69 6f 6e 73  20 6c 6f 61 64 65 64 20  |versions loaded |
000011f0  61 20 6e 65 77 20 77 69  6e 64 6f 77 20 66 6f 72  |a new window for|
00001200  20 65 61 63 68 20 6d 6f  64 75 6c 65 29 20 61 6e  | each module) an|
00001210  64 20 61 6c 74 65 72 73  20 74 68 65 0a 74 65 78  |d alters the.tex|
00001220  74 20 69 6e 20 69 74 20  77 68 65 6e 20 69 74 20  |t in it when it |
00001230  72 65 63 65 69 76 65 73  20 61 6e 20 27 6f 70 65  |receives an 'ope|
00001240  6e 20 73 75 62 6d 65 6e  75 27 20 6f 72 20 27 6f  |n submenu' or 'o|
00001250  70 65 6e 20 69 63 6f 6e  69 73 65 64 20 77 69 6e  |pen iconised win|
00001260  64 6f 77 27 0a 72 65 71  75 65 73 74 2e 20 20 54  |dow'.request.  T|
00001270  68 65 20 31 3c 3c 33 20  64 6f 65 73 20 74 68 69  |he 1<<3 does thi|
00001280  73 2c 20 6f 72 20 79 6f  75 20 63 61 6e 20 72 65  |s, or you can re|
00001290  70 6c 61 63 65 20 69 74  20 77 69 74 68 20 38 2e  |place it with 8.|
000012a0  0a 0a 4c 69 6e 65 20 36  30 20 72 65 67 69 73 74  |..Line 60 regist|
000012b0  65 72 73 20 74 68 65 20  6d 6f 64 75 6c 65 20 77  |ers the module w|
000012c0  69 74 68 20 21 53 74 69  63 6b 79 42 72 64 20 2d  |ith !StickyBrd -|
000012d0  0a 0a 6d 6f 64 6c 5f 69  6e 69 74 0a 7e 7e 7e 7e  |..modl_init.~~~~|
000012e0  7e 7e 7e 7e 7e 0a 0a 45  6e 74 72 79 20 20 3a 0a  |~~~~~..Entry  :.|
000012f0  20 20 20 20 20 20 20 20  20 74 69 74 6c 65 2c 20  |         title, |
00001300  70 75 72 70 6f 73 65 2c  20 61 75 74 68 6f 72 2c  |purpose, author,|
00001310  20 76 65 72 73 69 6f 6e  2c 20 21 53 74 69 63 6b  | version, !Stick|
00001320  79 42 72 64 20 76 65 72  73 69 6f 6e 2a 31 30 30  |yBrd version*100|
00001330  2c 20 6d 65 6e 75 20 62  6c 6f 63 6b 0a 45 78 69  |, menu block.Exi|
00001340  74 20 20 20 3a 0a 20 20  20 20 20 20 20 20 20 69  |t   :.         i|
00001350  6e 66 6f 20 77 69 6e 64  6f 77 20 68 61 6e 64 6c  |nfo window handl|
00001360  65 0a 41 63 74 69 6f 6e  20 3a 20 0a 20 20 20 20  |e.Action : .    |
00001370  20 20 20 20 20 52 65 67  69 73 74 65 72 73 20 61  |     Registers a|
00001380  20 6d 6f 64 75 6c 65 20  77 69 74 68 20 21 53 74  | module with !St|
00001390  69 63 6b 79 42 72 64 2e  20 20 49 66 20 74 68 65  |ickyBrd.  If the|
000013a0  20 21 53 74 69 63 6b 79  42 72 64 27 73 20 76 65  | !StickyBrd's ve|
000013b0  72 73 69 6f 6e 0a 6e 75  6d 62 65 72 20 69 73 20  |rsion.number is |
000013c0  6c 65 73 73 20 74 68 61  6e 20 74 68 65 20 6f 6e  |less than the on|
000013d0  65 20 72 65 71 75 69 72  65 64 20 62 79 20 74 68  |e required by th|
000013e0  65 20 6d 6f 64 75 6c 65  2c 20 21 53 74 69 63 6b  |e module, !Stick|
000013f0  79 42 72 64 20 77 69 6c  6c 20 65 78 69 74 20 77  |yBrd will exit w|
00001400  69 74 68 0a 61 20 66 61  74 61 6c 20 65 72 72 6f  |ith.a fatal erro|
00001410  72 2e 20 20 54 68 65 20  74 69 74 6c 65 2c 20 70  |r.  The title, p|
00001420  75 72 70 6f 73 65 2c 20  61 75 74 68 6f 72 2c 20  |urpose, author, |
00001430  61 6e 64 20 76 65 72 73  69 6f 6e 20 73 74 72 69  |and version stri|
00001440  6e 67 73 20 77 69 6c 6c  20 62 65 0a 70 6c 61 63  |ngs will be.plac|
00001450  65 64 20 69 6e 20 79 6f  75 72 20 6d 6f 64 75 6c  |ed in your modul|
00001460  65 27 73 20 69 6e 66 6f  20 77 69 6e 64 6f 77 20  |e's info window |
00001470  62 79 20 21 53 74 69 63  6b 79 42 72 64 20 69 74  |by !StickyBrd it|
00001480  73 65 6c 66 2e 20 20 54  68 65 20 6d 65 6e 75 20  |self.  The menu |
00001490  62 6c 6f 63 6b 0a 28 6f  72 20 72 61 74 68 65 72  |block.(or rather|
000014a0  20 74 68 65 20 70 6f 69  6e 74 65 72 20 74 6f 20  | the pointer to |
000014b0  69 74 29 20 70 61 73 73  65 64 20 77 69 6c 6c 20  |it) passed will |
000014c0  62 65 20 27 67 6c 75 65  64 27 20 74 6f 20 74 68  |be 'glued' to th|
000014d0  65 20 4d 6f 64 75 6c 65  73 20 73 75 62 2d 6d 65  |e Modules sub-me|
000014e0  6e 75 2e 0a 59 6f 75 20  6d 61 79 20 6e 6f 74 65  |nu..You may note|
000014f0  20 74 68 61 74 20 69 6e  69 74 69 61 6c 6c 79 20  | that initially |
00001500  74 68 65 20 49 6e 66 6f  20 69 74 65 6d 20 69 73  |the Info item is|
00001510  20 64 65 66 69 6e 65 64  20 61 73 20 6e 6f 74 20  | defined as not |
00001520  68 61 76 69 6e 67 20 61  20 73 75 62 2d 0a 77 69  |having a sub-.wi|
00001530  6e 64 6f 77 20 2d 20 74  68 69 73 20 6f 66 66 73  |ndow - this offs|
00001540  65 74 20 69 73 20 66 69  6c 6c 65 64 20 69 6e 20  |et is filled in |
00001550  62 79 20 21 53 74 69 63  6b 79 42 72 64 20 69 74  |by !StickyBrd it|
00001560  73 65 6c 66 20 61 73 20  6c 6f 6e 67 20 61 73 20  |self as long as |
00001570  74 68 65 20 66 69 72 73  74 0a 65 6e 74 72 79 20  |the first.entry |
00001580  69 73 20 66 6f 72 20 49  6e 66 6f 2e 20 20 41 6e  |is for Info.  An|
00001590  79 20 73 75 62 73 65 71  75 65 6e 74 20 72 65 2d  |y subsequent re-|
000015a0  64 65 66 69 6e 69 74 69  6f 6e 73 20 6f 66 20 74  |definitions of t|
000015b0  68 65 20 6d 65 6e 75 20  62 6c 6f 63 6b 20 73 68  |he menu block sh|
000015c0  6f 75 6c 64 0a 69 6e 63  6c 75 64 65 20 74 68 65  |ould.include the|
000015d0  20 68 61 6e 64 6c 65 20  72 65 74 75 72 6e 65 64  | handle returned|
000015e0  20 61 73 20 61 20 70 6f  69 6e 74 65 72 20 74 6f  | as a pointer to|
000015f0  20 61 20 73 75 62 2d 77  69 6e 64 6f 77 2e 0a 0a  | a sub-window...|
00001600  59 6f 75 20 73 68 6f 75  6c 64 20 65 78 69 74 20  |You should exit |
00001610  74 68 65 20 69 6e 69 74  69 61 6c 69 73 61 74 69  |the initialisati|
00001620  6f 6e 20 72 6f 75 74 69  6e 65 20 77 69 74 68 20  |on routine with |
00001630  30 20 28 6c 69 6e 65 20  38 30 20 3d 30 29 20 61  |0 (line 80 =0) a|
00001640  6e 64 20 77 61 69 74 20  66 6f 72 0a 61 20 70 6f  |nd wait for.a po|
00001650  6c 6c 20 63 6f 64 65 20  72 65 63 65 69 76 65 64  |ll code received|
00001660  20 69 6e 20 74 68 65 20  6e 65 78 74 20 66 75 6e  | in the next fun|
00001670  63 74 69 6f 6e 20 64 65  73 63 72 69 62 65 64 2e  |ction described.|
00001680  0a 0a 3c 6d 6f 64 75 6c  65 20 6e 61 6d 65 3e 5f  |..<module name>_|
00001690  65 76 65 6e 74 0a 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |event.~~~~~~~~~~|
000016a0  7e 7e 7e 7e 7e 7e 7e 7e  7e 0a 0a 45 6e 74 72 79  |~~~~~~~~~..Entry|
000016b0  20 20 3a 0a 20 20 20 20  20 20 20 20 20 70 6f 6c  |  :.         pol|
000016c0  6c 20 72 65 61 73 6f 6e  20 63 6f 64 65 2c 20 70  |l reason code, p|
000016d0  6f 69 6e 74 65 72 20 74  6f 20 70 61 72 61 6d 65  |ointer to parame|
000016e0  74 65 72 20 62 6c 6f 63  6b 0a 45 78 69 74 20 20  |ter block.Exit  |
000016f0  20 3a 0a 20 20 20 20 20  20 20 20 20 64 65 70 65  | :.         depe|
00001700  6e 64 73 20 6f 6e 20 72  65 61 73 6f 6e 20 63 6f  |nds on reason co|
00001710  64 65 0a 41 63 74 69 6f  6e 20 3a 0a 20 20 20 20  |de.Action :.    |
00001720  20 20 20 20 20 44 65 61  6c 73 20 77 69 74 68 20  |     Deals with |
00001730  61 20 72 65 61 73 6f 6e  20 63 6f 64 65 2e 20 20  |a reason code.  |
00001740  54 68 65 20 65 78 61 63  74 20 65 66 66 65 63 74  |The exact effect|
00001750  20 69 73 20 64 65 70 65  6e 64 61 6e 74 20 6f 6e  | is dependant on|
00001760  20 74 68 65 0a 72 65 61  73 6f 6e 20 63 6f 64 65  | the.reason code|
00001770  20 69 74 73 65 6c 66 20  62 75 74 20 69 66 20 79  | itself but if y|
00001780  6f 75 20 64 6f 20 6e 6f  74 20 64 65 61 6c 20 77  |ou do not deal w|
00001790  69 74 68 20 69 74 20 79  6f 75 20 73 68 6f 75 6c  |ith it you shoul|
000017a0  64 20 65 78 69 74 20 77  69 74 68 20 3d 30 0a 61  |d exit with =0.a|
000017b0  6e 64 20 6e 6f 74 20 64  6f 20 61 6e 79 20 66 75  |nd not do any fu|
000017c0  72 74 68 65 72 20 70 72  6f 63 65 73 73 69 6e 67  |rther processing|
000017d0  2e 20 20 54 68 65 20 72  65 61 73 6f 6e 20 63 6f  |.  The reason co|
000017e0  64 65 73 20 61 72 65 20  64 65 73 63 72 69 62 65  |des are describe|
000017f0  64 20 62 65 6c 6f 77 3a  0a 20 20 20 5f 5f 5f 5f  |d below:.   ____|
00001800  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00001840  5f 5f 0a 20 20 2f 20 20  20 20 20 20 20 20 20 20  |__.  /          |
00001850  20 20 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |  |             |
00001860  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00001870  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001880  20 20 20 20 20 20 20 20  20 20 20 20 5c 0a 20 7c  |            \. ||
00001890  20 50 6f 6c 6c 20 4e 75  6d 62 65 72 20 7c 20 44  | Poll Number | D|
000018a0  65 73 63 72 69 70 74 69  6f 6e 20 7c 20 50 61 72  |escription | Par|
000018b0  61 6d 65 74 65 72 20 62  6c 6f 63 6b 20 64 65 73  |ameter block des|
000018c0  63 72 69 70 74 69 6f 6e  20 20 20 20 20 20 20 20  |cription        |
000018d0  20 20 20 20 20 20 20 20  7c 0a 20 7c 5f 5f 5f 5f  |        |. |____|
000018e0  5f 5f 5f 5f 5f 5f 5f 5f  5f 7c 5f 5f 5f 5f 5f 5f  |_________|______|
000018f0  5f 5f 5f 5f 5f 5f 5f 7c  5f 5f 5f 5f 5f 5f 5f 5f  |_______|________|
00001900  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00001920  5f 5f 5f 5f 7c 0a 20 7c  20 20 20 20 20 20 20 20  |____|. |        |
00001930  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00001940  20 20 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  |   |            |
00001950  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001970  7c 0a 20 7c 20 20 20 20  20 20 30 20 20 20 20 20  ||. |      0     |
00001980  20 7c 20 4e 75 6c 6c 20  65 76 65 6e 74 20 20 7c  | | Null event  ||
00001990  20 4e 6f 74 20 61 70 70  6c 69 63 61 62 6c 65 20  | Not applicable |
000019a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000019b0  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
000019c0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 5f 5f  |_____________|__|
000019d0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 7c 5f 5f 5f 5f  |___________|____|
000019e0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00001a00  5f 5f 5f 5f 5f 5f 5f 5f  7c 0a 20 7c 20 20 20 20  |________|. |    |
00001a10  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00001a20  20 20 20 20 20 20 20 7c  20 20 20 20 20 20 20 20  |       |        |
00001a30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001a50  20 20 20 20 7c 0a 20 7c  20 20 20 20 20 20 31 20  |    |. |      1 |
00001a60  20 20 20 20 20 7c 20 4d  65 6e 75 20 65 76 65 6e  |     | Menu even|
00001a70  74 20 20 7c 20 2b 30 20  66 69 72 73 74 20 69 74  |t  | +0 first it|
00001a80  65 6d 20 73 65 6c 65 63  74 65 64 20 20 20 20 20  |em selected     |
00001a90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001aa0  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
00001ab0  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
00001ac0  20 2b 34 20 73 65 63 6f  6e 64 20 69 74 65 6d 20  | +4 second item |
00001ad0  73 65 6c 65 63 74 65 64  20 20 20 20 20 20 20 20  |selected        |
00001ae0  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00001af0  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |             |  |
00001b00  20 20 20 20 20 20 20 20  20 20 20 7c 20 65 74 63  |           | etc|
00001b10  2e 2c 20 6c 65 61 64 69  6e 67 20 74 6f 3a 20 20  |., leading to:  |
00001b20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001b30  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
00001b40  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00001b50  20 20 20 20 20 20 20 7c  20 2b 6e 20 2d 31 20 3d  |       | +n -1 =|
00001b60  20 65 6e 64 20 6f 66 20  62 6c 6f 63 6b 20 20 20  | end of block   |
00001b70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001b80  20 20 20 20 7c 0a 20 7c  5f 5f 5f 5f 5f 5f 5f 5f  |    |. |________|
00001b90  5f 5f 5f 5f 5f 7c 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_____|__________|
00001ba0  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00001bb0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00001bd0  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
00001be0  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
00001bf0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001c10  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00001c20  20 20 20 20 20 20 32 20  20 20 20 20 20 7c 20 53  |      2      | S|
00001c30  61 76 65 20 43 6f 6e 66  69 67 20 7c 20 4e 6f 74  |ave Config | Not|
00001c40  20 61 70 70 6c 69 63 61  62 6c 65 20 20 20 20 20  | applicable     |
00001c50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001c60  20 20 20 20 20 20 20 20  7c 0a 20 7c 5f 5f 5f 5f  |        |. |____|
00001c70  5f 5f 5f 5f 5f 5f 5f 5f  5f 7c 5f 5f 5f 5f 5f 5f  |_________|______|
00001c80  5f 5f 5f 5f 5f 5f 5f 7c  5f 5f 5f 5f 5f 5f 5f 5f  |_______|________|
00001c90  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00001cb0  5f 5f 5f 5f 7c 0a 20 7c  20 20 20 20 20 20 20 20  |____|. |        |
00001cc0  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00001cd0  20 20 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  |   |            |
00001ce0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001d00  7c 0a 20 7c 20 20 20 20  20 20 33 20 20 20 20 20  ||. |      3     |
00001d10  20 7c 20 48 65 6c 70 20  65 76 65 6e 74 20 20 7c  | | Help event  ||
00001d20  20 2b 30 20 77 69 6e 64  6f 77 20 68 61 6e 64 6c  | +0 window handl|
00001d30  65 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |e               |
00001d40  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00001d50  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |             |  |
00001d60  20 20 20 20 20 20 20 20  20 20 20 7c 20 2b 34 20  |           | +4 |
00001d70  69 63 6f 6e 20 68 61 6e  64 6c 65 20 20 20 20 20  |icon handle     |
00001d80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001d90  20 20 20 20 20 20 20 20  7c 0a 20 7c 5f 5f 5f 5f  |        |. |____|
00001da0  5f 5f 5f 5f 5f 5f 5f 5f  5f 7c 5f 5f 5f 5f 5f 5f  |_________|______|
00001db0  5f 5f 5f 5f 5f 5f 5f 7c  5f 5f 5f 5f 5f 5f 5f 5f  |_______|________|
00001dc0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00001de0  5f 5f 5f 5f 7c 0a 20 7c  20 20 20 20 20 20 20 20  |____|. |        |
00001df0  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00001e00  20 20 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  |   |            |
00001e10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001e30  7c 0a 20 7c 20 20 20 20  20 20 34 20 20 20 20 20  ||. |      4     |
00001e40  20 7c 20 44 6f 75 62 6c  65 20 63 6c 69 63 6b 7c  | | Double click||
00001e50  20 2b 30 20 20 78 20 63  6f 2d 6f 72 64 69 6e 61  | +0  x co-ordina|
00001e60  74 65 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |te              |
00001e70  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00001e80  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 6f  |             | o|
00001e90  6e 20 69 63 6f 6e 20 20  20 20 20 7c 20 2b 34 20  |n icon     | +4 |
00001ea0  20 79 20 63 6f 2d 6f 72  64 69 6e 61 74 65 20 20  | y co-ordinate  |
00001eb0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001ec0  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
00001ed0  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00001ee0  20 20 20 20 20 20 20 7c  20 2b 38 20 20 69 6e 74  |       | +8  int|
00001ef0  65 72 6e 61 6c 20 74 79  70 65 20 20 20 20 20 20  |ernal type      |
00001f00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001f10  20 20 20 20 7c 0a 20 7c  20 20 20 20 20 20 20 20  |    |. |        |
00001f20  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00001f30  20 20 20 7c 20 2b 31 32  20 6e 61 6d 65 20 20 20  |   | +12 name   |
00001f40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001f60  7c 0a 20 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  ||. |____________|
00001f70  5f 7c 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 7c  |_|_____________||
00001f80  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00001fa0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 7c 0a 20 7c  |____________|. ||
00001fb0  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |             |  |
00001fc0  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00001fd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001ff0  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
00002000  20 20 35 20 20 20 20 20  20 7c 20 4d 6f 75 73 65  |  5      | Mouse|
00002010  20 63 6c 69 63 6b 20 7c  20 2b 30 20 77 69 6e 64  | click | +0 wind|
00002020  6f 77 20 68 61 6e 64 6c  65 20 20 20 20 20 20 20  |ow handle       |
00002030  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002040  20 20 20 20 7c 0a 20 7c  20 20 20 20 20 20 20 20  |    |. |        |
00002050  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00002060  20 20 20 7c 20 2b 34 20  69 63 6f 6e 20 68 61 6e  |   | +4 icon han|
00002070  64 6c 65 20 20 20 20 20  20 20 20 20 20 20 20 20  |dle             |
00002080  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002090  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
000020a0  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
000020b0  20 2b 38 20 62 75 74 74  6f 6e 20 74 79 70 65 20  | +8 button type |
000020c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000020d0  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
000020e0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 5f 5f  |_____________|__|
000020f0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 7c 5f 5f 5f 5f  |___________|____|
00002100  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002120  5f 5f 5f 5f 5f 5f 5f 5f  7c 0a 20 7c 20 20 20 20  |________|. |    |
00002130  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00002140  20 20 20 20 20 20 20 7c  20 20 20 20 20 20 20 20  |       |        |
00002150  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002170  20 20 20 20 7c 0a 20 7c  20 20 20 20 20 20 36 20  |    |. |      6 |
00002180  20 20 20 20 20 7c 20 54  72 61 6e 73 6c 61 74 65  |     | Translate|
00002190  20 20 20 7c 20 2b 30 20  77 69 6e 64 6f 77 20 68  |   | +0 window h|
000021a0  61 6e 64 6c 65 20 20 20  20 20 20 20 20 20 20 20  |andle           |
000021b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000021c0  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
000021d0  20 7c 20 68 61 6e 64 6c  65 20 74 6f 20 20 20 7c  | | handle to   ||
000021e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002200  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00002210  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 6e  |             | n|
00002220  61 6d 65 20 20 20 20 20  20 20 20 7c 20 20 20 20  |ame        |    |
00002230  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002250  20 20 20 20 20 20 20 20  7c 0a 20 7c 5f 5f 5f 5f  |        |. |____|
00002260  5f 5f 5f 5f 5f 5f 5f 5f  5f 7c 5f 5f 5f 5f 5f 5f  |_________|______|
00002270  5f 5f 5f 5f 5f 5f 5f 7c  5f 5f 5f 5f 5f 5f 5f 5f  |_______|________|
00002280  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
000022a0  5f 5f 5f 5f 7c 0a 20 7c  20 20 20 20 20 20 20 20  |____|. |        |
000022b0  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
000022c0  20 20 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  |   |            |
000022d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000022f0  7c 0a 20 7c 20 20 20 20  20 20 37 20 20 20 20 20  ||. |      7     |
00002300  20 7c 20 54 72 61 6e 73  6c 61 74 65 20 20 20 7c  | | Translate   ||
00002310  20 2b 30 20 6e 61 6d 65  20 20 20 20 20 20 20 20  | +0 name        |
00002320  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002330  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00002340  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 6e  |             | n|
00002350  61 6d 65 20 74 6f 20 20  20 20 20 7c 20 20 20 20  |ame to     |    |
00002360  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002380  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
00002390  20 20 20 20 20 20 20 20  20 7c 20 68 61 6e 64 6c  |         | handl|
000023a0  65 20 20 20 20 20 20 7c  20 20 20 20 20 20 20 20  |e      |        |
000023b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000023d0  20 20 20 20 7c 0a 20 7c  5f 5f 5f 5f 5f 5f 5f 5f  |    |. |________|
000023e0  5f 5f 5f 5f 5f 7c 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_____|__________|
000023f0  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00002400  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002420  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
00002430  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
00002440  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002460  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00002470  20 20 20 20 20 20 38 20  20 20 20 20 20 7c 20 57  |      8      | W|
00002480  69 6e 64 6f 77 20 77 69  64 74 68 7c 20 2b 30 20  |indow width| +0 |
00002490  6e 61 6d 65 20 20 20 20  20 20 20 20 20 20 20 20  |name            |
000024a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000024b0  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
000024c0  20 20 20 20 20 20 20 20  20 7c 20 72 65 71 75 65  |         | reque|
000024d0  73 74 20 20 20 20 20 7c  20 20 20 20 20 20 20 20  |st     |        |
000024e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002500  20 20 20 20 7c 0a 20 7c  5f 5f 5f 5f 5f 5f 5f 5f  |    |. |________|
00002510  5f 5f 5f 5f 5f 7c 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_____|__________|
00002520  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00002530  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002550  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
00002560  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
00002570  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002590  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
000025a0  20 20 20 20 20 20 39 20  20 20 20 20 20 7c 20 57  |      9      | W|
000025b0  69 6e 64 6f 77 20 20 20  20 20 20 7c 20 2b 30 20  |indow      | +0 |
000025c0  6e 61 6d 65 20 20 20 20  20 20 20 20 20 20 20 20  |name            |
000025d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000025e0  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
000025f0  20 20 20 20 20 20 20 20  20 7c 20 68 65 69 67 68  |         | heigh|
00002600  74 20 72 65 71 2e 20 7c  20 20 20 20 20 20 20 20  |t req. |        |
00002610  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002630  20 20 20 20 7c 0a 20 7c  5f 5f 5f 5f 5f 5f 5f 5f  |    |. |________|
00002640  5f 5f 5f 5f 5f 7c 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_____|__________|
00002650  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00002660  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002680  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
00002690  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
000026a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000026c0  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
000026d0  20 20 20 20 20 31 30 20  20 20 20 20 20 7c 20 44  |     10      | D|
000026e0  72 61 67 20 65 6e 64 20  20 20 20 7c 20 2b 30 20  |rag end    | +0 |
000026f0  20 20 69 6e 74 65 72 6e  61 6c 20 74 79 70 65 20  |  internal type |
00002700  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002710  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
00002720  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00002730  20 20 20 20 20 20 20 7c  20 2b 34 20 20 20 69 63  |       | +4   ic|
00002740  6f 6e 20 6e 61 6d 65 20  20 20 20 20 20 20 20 20  |on name         |
00002750  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002760  20 20 20 20 7c 0a 20 7c  20 20 20 20 20 20 20 20  |    |. |        |
00002770  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00002780  20 20 20 7c 20 2b 32 36  30 20 76 69 65 77 65 72  |   | +260 viewer|
00002790  20 69 63 6f 6e 20 64 72  61 67 67 65 64 20 74 6f  | icon dragged to|
000027a0  20 28 6e 61 6d 65 20 6f  66 29 20 20 20 20 20 20  | (name of)      |
000027b0  7c 0a 20 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  ||. |____________|
000027c0  5f 7c 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 7c  |_|_____________||
000027d0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
000027f0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 7c 0a 20 7c  |____________|. ||
00002800  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |             |  |
00002810  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00002820  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002840  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
00002850  20 31 31 20 20 20 20 20  20 7c 20 44 61 74 61 20  | 11      | Data |
00002860  4c 6f 61 64 20 20 20 7c  20 2b 30 20 77 69 6e 64  |Load   | +0 wind|
00002870  6f 77 20 68 61 6e 64 6c  65 20 20 20 20 20 20 20  |ow handle       |
00002880  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002890  20 20 20 20 7c 0a 20 7c  20 20 20 20 20 20 20 20  |    |. |        |
000028a0  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
000028b0  20 20 20 7c 20 2b 34 20  69 63 6f 6e 20 68 61 6e  |   | +4 icon han|
000028c0  64 6c 65 20 20 20 20 20  20 20 20 20 20 20 20 20  |dle             |
000028d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000028e0  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
000028f0  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
00002900  20 2b 38 20 66 69 6c 65  20 6e 61 6d 65 20 20 20  | +8 file name   |
00002910  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002920  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00002930  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 5f 5f  |_____________|__|
00002940  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 7c 5f 5f 5f 5f  |___________|____|
00002950  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002970  5f 5f 5f 5f 5f 5f 5f 5f  7c 0a 20 7c 20 20 20 20  |________|. |    |
00002980  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00002990  20 20 20 20 20 20 20 7c  20 20 20 20 20 20 20 20  |       |        |
000029a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000029c0  20 20 20 20 7c 0a 20 7c  a0 20 20 20 20 31 32 20  |    |. |.    12 |
000029d0  20 20 20 20 20 7c 20 44  65 6c 65 74 65 20 69 63  |     | Delete ic|
000029e0  6f 6e 20 7c 20 2b 30 20  69 63 6f 6e 20 68 61 6e  |on | +0 icon han|
000029f0  64 6c 65 20 20 20 20 20  20 20 20 20 20 20 20 20  |dle             |
00002a00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002a10  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
00002a20  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
00002a30  20 2b 34 20 69 6e 74 65  72 6e 61 6c 20 74 79 70  | +4 internal typ|
00002a40  65 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |e               |
00002a50  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00002a60  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 5f 5f  |_____________|__|
00002a70  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 7c 5f 5f 5f 5f  |___________|____|
00002a80  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002aa0  5f 5f 5f 5f 5f 5f 5f 5f  7c 0a 20 7c 20 20 20 20  |________|. |    |
00002ab0  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00002ac0  20 20 20 20 20 20 20 7c  20 20 20 20 20 20 20 20  |       |        |
00002ad0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002af0  20 20 20 20 7c 0a 20 7c  20 20 20 20 20 31 33 20  |    |. |     13 |
00002b00  20 20 20 20 20 7c 20 51  75 69 74 20 20 20 20 20  |     | Quit     |
00002b10  20 20 20 7c 20 4e 6f 74  20 61 70 70 6c 69 63 61  |   | Not applica|
00002b20  62 6c 65 20 20 20 20 20  20 20 20 20 20 20 20 20  |ble             |
00002b30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002b40  7c 0a 20 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  ||. |____________|
00002b50  5f 7c 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 7c  |_|_____________||
00002b60  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002b80  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 7c 0a 20 7c  |____________|. ||
00002b90  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |             |  |
00002ba0  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00002bb0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002bd0  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
00002be0  20 31 34 20 20 20 20 20  20 7c 20 52 65 64 72 61  | 14      | Redra|
00002bf0  77 20 20 20 20 20 20 7c  20 53 74 61 6e 64 61 72  |w      | Standar|
00002c00  64 20 77 69 6d 70 20 72  65 64 72 61 77 20 62 6c  |d wimp redraw bl|
00002c10  6f 63 6b 20 20 20 20 20  20 20 20 20 20 20 20 20  |ock             |
00002c20  20 20 20 20 7c 0a 20 7c  5f 5f 5f 5f 5f 5f 5f 5f  |    |. |________|
00002c30  5f 5f 5f 5f 5f 7c 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_____|__________|
00002c40  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00002c50  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002c70  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
00002c80  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
00002c90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002cb0  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00002cc0  20 20 20 20 20 31 35 20  20 20 20 20 20 7c 20 43  |     15      | C|
00002cd0  6c 65 61 72 20 41 6c 6c  20 20 20 7c 20 2b 30 20  |lear All   | +0 |
00002ce0  63 6c 65 61 72 20 74 79  70 65 20 20 20 20 20 20  |clear type      |
00002cf0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002d00  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
00002d10  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00002d20  20 20 20 20 20 20 20 7c  20 2b 34 20 64 65 73 6b  |       | +4 desk|
00002d30  74 6f 70 20 66 69 6c 65  20 74 6f 20 62 65 20 6c  |top file to be l|
00002d40  6f 61 64 65 64 20 20 20  20 20 20 20 20 20 20 20  |oaded           |
00002d50  20 20 20 20 7c 0a 20 7c  5f 5f 5f 5f 5f 5f 5f 5f  |    |. |________|
00002d60  5f 5f 5f 5f 5f 7c 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_____|__________|
00002d70  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00002d80  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002da0  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
00002db0  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
00002dc0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002de0  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 7c  |            |. ||
00002df0  20 20 20 20 20 31 36 20  20 20 20 20 20 7c 20 44  |     16      | D|
00002e00  65 73 6b 74 6f 70 20 20  20 20 20 7c 20 4e 6f 74  |esktop     | Not|
00002e10  20 61 70 70 6c 69 63 61  62 6c 65 20 20 20 20 20  | applicable     |
00002e20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002e30  20 20 20 20 20 20 20 20  7c 0a 20 7c 20 20 20 20  |        |. |    |
00002e40  20 20 20 20 20 20 20 20  20 7c 20 6c 6f 61 64 65  |         | loade|
00002e50  64 20 20 20 20 20 20 7c  20 20 20 20 20 20 20 20  |d      |        |
00002e60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002e80  20 20 20 20 7c 0a 20 7c  5f 5f 5f 5f 5f 5f 5f 5f  |    |. |________|
00002e90  5f 5f 5f 5f 5f 7c 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_____|__________|
00002ea0  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00002eb0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002ed0  7c 0a 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  ||. |            |
00002ee0  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  | |             ||
00002ef0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002f10  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 20 20  |            |.  |
00002f20  5c 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |\            |  |
00002f30  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00002f40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002f60  20 20 20 20 20 20 20 2f  0a 20 20 20 5c 5f 5f 5f  |       /.   \___|
00002f70  5f 5f 5f 5f 5f 5f 5f 5f  7c 5f 5f 5f 5f 5f 5f 5f  |________|_______|
00002f80  5f 5f 5f 5f 5f 5f 7c 5f  5f 5f 5f 5f 5f 5f 5f 5f  |______|_________|
00002f90  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00002fb0  5f 2f 0a 0a 0a 57 68 61  74 20 66 6f 6c 6c 6f 77  |_/...What follow|
00002fc0  73 20 69 73 20 61 20 64  65 74 61 69 6c 65 64 20  |s is a detailed |
00002fd0  64 65 73 63 72 69 70 74  69 6f 6e 20 6f 66 20 65  |description of e|
00002fe0  61 63 68 20 70 6f 6c 6c  20 63 6f 64 65 2e 0a 0a  |ach poll code...|
00002ff0  30 20 2d 20 4e 75 6c 6c  20 65 76 65 6e 74 0a 7e  |0 - Null event.~|
00003000  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 0a 0a 45  |~~~~~~~~~~~~~..E|
00003010  6e 74 72 79 20 20 3a 0a  20 20 20 20 20 20 20 20  |ntry  :.        |
00003020  20 4e 6f 6e 65 0a 45 78  69 74 20 20 20 3a 0a 20  | None.Exit   :. |
00003030  20 20 20 20 20 20 20 20  4e 6f 6e 65 0a 41 63 74  |        None.Act|
00003040  69 6f 6e 20 3a 0a 20 20  20 20 20 20 20 20 20 59  |ion :.         Y|
00003050  6f 75 20 73 68 6f 75 6c  64 20 64 6f 20 61 6e 79  |ou should do any|
00003060  20 70 72 6f 63 65 73 73  69 6e 67 20 72 65 71 75  | processing requ|
00003070  69 72 65 64 20 66 6f 72  20 6e 75 6c 6c 20 65 76  |ired for null ev|
00003080  65 6e 74 73 20 61 6e 64  20 74 68 65 6e 0a 72 65  |ents and then.re|
00003090  74 75 72 6e 2c 20 61 73  20 71 75 69 63 6b 6c 79  |turn, as quickly|
000030a0  20 61 73 20 70 6f 73 73  69 62 6c 65 2e 0a 0a 31  | as possible...1|
000030b0  20 2d 20 4d 65 6e 75 20  65 76 65 6e 74 0a 7e 7e  | - Menu event.~~|
000030c0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 0a 0a 45 6e  |~~~~~~~~~~~~..En|
000030d0  74 72 79 20 20 3a 0a 20  20 20 20 20 20 20 20 20  |try  :.         |
000030e0  2b 30 20 66 69 72 73 74  20 69 74 65 6d 20 73 65  |+0 first item se|
000030f0  6c 65 63 74 65 64 0a 20  20 20 20 20 20 20 20 20  |lected.         |
00003100  2b 34 20 73 65 63 6f 6e  64 20 69 74 65 6d 20 73  |+4 second item s|
00003110  65 6c 65 63 74 65 64 2e  2e 2e 0a 45 78 69 74 20  |elected....Exit |
00003120  20 20 3a 0a 20 20 20 20  20 20 20 20 20 4e 6f 6e  |  :.         Non|
00003130  65 0a 41 63 74 69 6f 6e  20 3a 0a 20 20 20 20 20  |e.Action :.     |
00003140  20 20 20 20 49 66 20 79  6f 75 20 68 61 76 65 20  |    If you have |
00003150  61 6e 79 74 68 69 6e 67  20 61 74 20 61 6c 6c 20  |anything at all |
00003160  6f 6e 20 74 68 65 20 6d  65 6e 75 20 61 70 61 72  |on the menu apar|
00003170  74 20 66 72 6f 6d 20 49  6e 66 6f 20 79 6f 75 20  |t from Info you |
00003180  73 68 6f 75 6c 64 0a 68  61 76 65 20 61 20 70 72  |should.have a pr|
00003190  6f 63 65 64 75 72 65 20  73 65 74 20 75 70 20 74  |ocedure set up t|
000031a0  6f 20 64 65 61 6c 20 77  69 74 68 20 69 74 2e 20  |o deal with it. |
000031b0  20 54 68 65 20 70 61 72  61 6d 65 74 65 72 20 62  | The parameter b|
000031c0  6c 6f 63 6b 20 69 73 20  73 65 74 20 75 70 20 6c  |lock is set up l|
000031d0  69 6b 65 0a 74 68 65 20  73 74 61 6e 64 61 72 64  |ike.the standard|
000031e0  20 77 69 6d 70 20 6f 6e  65 2c 20 62 75 74 20 73  | wimp one, but s|
000031f0  74 61 72 74 69 6e 67 20  61 74 20 79 6f 75 72 20  |tarting at your |
00003200  6d 65 6e 75 2e 20 41 67  61 69 6e 2c 20 72 65 74  |menu. Again, ret|
00003210  75 72 6e 20 61 73 20 71  75 69 63 6b 6c 79 0a 61  |urn as quickly.a|
00003220  73 20 70 6f 73 73 69 62  6c 65 0a 0a 32 20 2d 20  |s possible..2 - |
00003230  53 61 76 65 20 43 6f 6e  66 69 67 20 65 76 65 6e  |Save Config even|
00003240  74 0a 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |t.~~~~~~~~~~~~~~|
00003250  7e 7e 7e 7e 7e 7e 7e 0a  0a 45 6e 74 72 79 20 20  |~~~~~~~..Entry  |
00003260  3a 0a 20 20 20 20 20 20  20 20 20 4e 6f 6e 65 0a  |:.         None.|
00003270  45 78 69 74 20 20 20 3a  0a 20 20 20 20 20 20 20  |Exit   :.       |
00003280  20 20 4e 6f 6e 65 0a 41  63 74 69 6f 6e 20 3a 0a  |  None.Action :.|
00003290  20 20 20 20 20 20 20 20  20 53 61 76 65 20 79 6f  |         Save yo|
000032a0  75 72 20 63 6f 6e 66 69  67 75 72 61 74 69 6f 6e  |ur configuration|
000032b0  20 66 69 6c 65 2c 20 69  66 20 79 6f 75 20 68 61  | file, if you ha|
000032c0  76 65 20 6f 6e 65 2e 0a  0a 33 20 2d 20 49 6e 74  |ve one...3 - Int|
000032d0  65 72 61 63 74 69 76 65  20 68 65 6c 70 20 72 65  |eractive help re|
000032e0  71 75 65 73 74 0a 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |quest.~~~~~~~~~~|
000032f0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00003300  7e 7e 0a 0a 45 6e 74 72  79 20 20 3a 0a 20 20 20  |~~..Entry  :.   |
00003310  20 20 20 20 20 20 2b 30  20 77 69 6e 64 6f 77 20  |      +0 window |
00003320  68 61 6e 64 6c 65 0a 20  20 20 20 20 20 20 20 20  |handle.         |
00003330  2b 34 20 69 63 6f 6e 20  68 61 6e 64 6c 65 0a 45  |+4 icon handle.E|
00003340  78 69 74 20 20 20 3a 0a  20 20 20 20 20 20 20 20  |xit   :.        |
00003350  20 70 6f 69 6e 74 65 72  20 74 6f 20 68 65 6c 70  | pointer to help|
00003360  20 74 65 78 74 20 62 6c  6f 63 6b 2c 20 6f 72 20  | text block, or |
00003370  30 20 69 66 20 63 61 6e  6e 6f 74 20 68 61 6e 64  |0 if cannot hand|
00003380  6c 65 20 74 68 69 73 20  77 69 6e 64 6f 77 0a 41  |le this window.A|
00003390  63 74 69 6f 6e 20 3a 0a  20 20 20 20 20 20 20 20  |ction :.        |
000033a0  20 44 65 74 65 72 6d 69  6e 65 20 77 68 65 74 68  | Determine wheth|
000033b0  65 72 20 74 68 69 73 20  69 73 20 6f 6e 65 20 6f  |er this is one o|
000033c0  66 20 79 6f 75 72 20 77  69 6e 64 6f 77 73 20 28  |f your windows (|
000033d0  69 6e 66 6f 20 77 69 6e  64 6f 77 20 69 6e 63 6c  |info window incl|
000033e0  75 64 65 64 29 0a 61 6e  64 20 69 66 20 69 74 20  |uded).and if it |
000033f0  69 73 20 72 65 74 75 72  6e 20 70 6f 69 6e 74 69  |is return pointi|
00003400  6e 67 20 74 6f 20 61 20  62 6c 6f 63 6b 20 6f 66  |ng to a block of|
00003410  20 74 65 78 74 20 74 6f  20 64 69 73 70 6c 61 79  | text to display|
00003420  20 69 6e 20 74 68 65 20  68 65 6c 70 0a 77 69 6e  | in the help.win|
00003430  64 6f 77 2e 20 20 49 66  20 79 6f 75 20 63 61 6e  |dow.  If you can|
00003440  6e 6f 74 20 64 65 61 6c  20 77 69 74 68 20 69 74  |not deal with it|
00003450  20 74 68 65 6e 20 72 65  74 75 72 6e 20 77 69 74  | then return wit|
00003460  68 20 30 2e 20 20 59 6f  75 20 73 68 6f 75 6c 64  |h 0.  You should|
00003470  20 73 75 70 70 6f 72 74  0a 69 6e 74 65 72 61 63  | support.interac|
00003480  74 69 76 65 20 68 65 6c  70 2c 20 74 6f 20 6d 61  |tive help, to ma|
00003490  6b 65 20 69 74 20 65 61  73 79 20 66 6f 72 20 6e  |ke it easy for n|
000034a0  65 77 20 75 73 65 72 73  2e 0a 0a 34 20 2d 20 49  |ew users...4 - I|
000034b0  63 6f 6e 20 73 65 6c 65  63 74 65 64 20 62 79 20  |con selected by |
000034c0  64 6f 75 62 6c 65 20 63  6c 69 63 6b 20 65 76 65  |double click eve|
000034d0  6e 74 0a 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |nt.~~~~~~~~~~~~~|
000034e0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
000034f0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 0a 0a 45 6e 74 72  |~~~~~~~~~~..Entr|
00003500  79 20 20 3a 0a 20 20 20  20 20 20 20 20 20 2b 30  |y  :.         +0|
00003510  20 20 78 20 70 6f 73 69  74 69 6f 6e 20 6f 66 20  |  x position of |
00003520  6d 6f 75 73 65 0a 20 20  20 20 20 20 20 20 20 2b  |mouse.         +|
00003530  34 20 20 79 20 70 6f 73  69 74 69 6f 6e 20 6f 66  |4  y position of|
00003540  20 6d 6f 75 73 65 0a 20  20 20 20 20 20 20 20 20  | mouse.         |
00003550  2b 38 20 20 69 6e 74 65  72 6e 61 6c 20 74 79 70  |+8  internal typ|
00003560  65 0a 20 20 20 20 20 20  20 20 20 2b 31 32 20 66  |e.         +12 f|
00003570  69 6c 65 6e 61 6d 65 0a  45 78 69 74 20 20 20 3a  |ilename.Exit   :|
00003580  0a 20 20 20 20 20 20 20  20 20 4e 6f 6e 65 0a 41  |.         None.A|
00003590  63 74 69 6f 6e 20 3a 0a  20 20 20 20 20 20 20 20  |ction :.        |
000035a0  20 44 65 74 65 72 6d 69  6e 65 20 77 68 65 74 68  | Determine wheth|
000035b0  65 72 20 74 68 69 73 20  69 73 20 6f 6e 65 20 6f  |er this is one o|
000035c0  66 20 79 6f 75 72 20 69  63 6f 6e 73 20 28 62 79  |f your icons (by|
000035d0  20 6c 6f 6f 6b 69 6e 67  20 61 74 20 74 68 65 0a  | looking at the.|
000035e0  69 6e 74 65 72 6e 61 6c  20 74 79 70 65 20 6e 75  |internal type nu|
000035f0  6d 62 65 72 29 20 61 6e  64 20 69 66 20 69 74 20  |mber) and if it |
00003600  69 73 20 65 78 65 63 75  74 65 20 61 70 70 72 6f  |is execute appro|
00003610  70 72 69 61 74 65 20 63  6f 64 65 20 74 6f 20 64  |priate code to d|
00003620  65 61 6c 20 77 69 74 68  0a 69 74 2c 20 6f 74 68  |eal with.it, oth|
00003630  65 72 77 69 73 65 20 65  78 69 74 2e 0a 41 20 77  |erwise exit..A w|
00003640  6f 72 64 20 6f 66 20 65  78 70 6c 61 6e 61 74 69  |ord of explanati|
00003650  6f 6e 20 2d 20 65 76 65  72 79 20 21 53 74 69 63  |on - every !Stic|
00003660  6b 79 42 72 64 20 69 63  6f 6e 20 68 61 73 20 61  |kyBrd icon has a|
00003670  20 74 79 70 65 20 61 74  74 61 74 63 68 65 64 20  | type attatched |
00003680  74 6f 20 69 74 2e 0a 41  70 70 6c 69 63 61 74 69  |to it..Applicati|
00003690  6f 6e 73 20 61 72 65 20  74 79 70 65 20 30 2c 20  |ons are type 0, |
000036a0  69 63 6f 6e 69 73 65 64  20 77 69 6e 64 6f 77 73  |iconised windows|
000036b0  20 74 79 70 65 20 33 2c  20 63 6f 6d 6d 61 6e 64  | type 3, command|
000036c0  20 69 63 6f 6e 73 20 74  79 70 65 20 34 0a 61 6e  | icons type 4.an|
000036d0  64 20 73 6f 20 6f 6e 2e  20 20 49 66 20 79 6f 75  |d so on.  If you|
000036e0  20 61 72 65 20 77 61 6e  74 69 6e 67 20 74 6f 20  | are wanting to |
000036f0  77 72 69 74 65 20 61 20  21 53 74 69 63 6b 79 42  |write a !StickyB|
00003700  72 64 20 6d 6f 64 75 6c  65 20 74 68 61 74 20 75  |rd module that u|
00003710  73 65 73 20 69 63 6f 6e  73 0a 6f 6e 20 74 68 65  |ses icons.on the|
00003720  20 64 65 73 6b 74 6f 70  2c 20 77 72 69 74 65 20  | desktop, write |
00003730  74 6f 20 6d 65 20 66 6f  72 20 61 20 69 6e 74 65  |to me for a inte|
00003740  72 6e 61 6c 20 74 79 70  65 20 6e 75 6d 62 65 72  |rnal type number|
00003750  2e 0a 0a 35 20 2d 20 4d  6f 75 73 65 20 63 6c 69  |...5 - Mouse cli|
00003760  63 6b 20 65 76 65 6e 74  0a 7e 7e 7e 7e 7e 7e 7e  |ck event.~~~~~~~|
00003770  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 0a 0a  |~~~~~~~~~~~~~~..|
00003780  45 6e 74 72 79 20 20 3a  0a 20 20 20 20 20 20 20  |Entry  :.       |
00003790  20 20 2b 30 20 77 69 6e  64 6f 77 20 68 61 6e 64  |  +0 window hand|
000037a0  6c 65 0a 20 20 20 20 20  20 20 20 20 2b 34 20 69  |le.         +4 i|
000037b0  63 6f 6e 20 68 61 6e 64  6c 65 0a 20 20 20 20 20  |con handle.     |
000037c0  20 20 20 20 2b 38 20 62  75 74 74 6f 6e 20 74 79  |    +8 button ty|
000037d0  70 65 0a 45 78 69 74 20  20 20 3a 0a 20 20 20 20  |pe.Exit   :.    |
000037e0  20 20 20 20 20 4e 6f 6e  65 0a 41 63 74 69 6f 6e  |     None.Action|
000037f0  20 3a 0a 20 20 20 20 20  20 20 20 20 44 65 74 65  | :.         Dete|
00003800  72 6d 69 6e 65 20 77 68  65 74 68 65 72 20 74 68  |rmine whether th|
00003810  65 20 77 69 6e 64 6f 77  20 69 73 20 6f 6e 65 20  |e window is one |
00003820  6f 66 20 79 6f 75 72 73  2c 20 61 6e 64 20 69 66  |of yours, and if|
00003830  20 69 74 20 69 73 20 63  68 65 63 6b 20 74 68 65  | it is check the|
00003840  0a 69 63 6f 6e 2c 20 6f  74 68 65 72 77 69 73 65  |.icon, otherwise|
00003850  20 65 78 69 74 2e 20 20  54 68 65 20 62 75 74 74  | exit.  The butt|
00003860  6f 6e 20 74 79 70 65 20  69 73 20 74 68 65 20 73  |on type is the s|
00003870  74 61 6e 64 61 72 64 20  77 69 6d 70 20 74 79 70  |tandard wimp typ|
00003880  65 20 2d 20 31 20 3d 20  61 64 6a 75 73 74 0a 32  |e - 1 = adjust.2|
00003890  20 3d 20 6d 65 6e 75 2c  20 34 20 3d 20 73 65 6c  | = menu, 4 = sel|
000038a0  65 63 74 2e 0a 0a 36 20  2d 20 54 72 61 6e 73 6c  |ect...6 - Transl|
000038b0  61 74 65 20 77 69 6e 64  6f 77 20 68 61 6e 64 6c  |ate window handl|
000038c0  65 20 74 6f 20 6e 61 6d  65 20 72 65 71 75 65 73  |e to name reques|
000038d0  74 0a 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |t.~~~~~~~~~~~~~~|
000038e0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
000038f0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 0a 0a 45  |~~~~~~~~~~~~~..E|
00003900  6e 74 72 79 20 20 3a 0a  20 20 20 20 20 20 20 20  |ntry  :.        |
00003910  20 2b 30 20 77 69 6e 64  6f 77 20 68 61 6e 64 6c  | +0 window handl|
00003920  65 0a 45 78 69 74 20 20  20 3a 0a 20 20 20 20 20  |e.Exit   :.     |
00003930  20 20 20 20 70 6f 69 6e  74 65 72 20 74 6f 20 74  |    pointer to t|
00003940  65 78 74 2c 20 6f 72 20  30 20 69 66 20 63 61 6e  |ext, or 0 if can|
00003950  6e 6f 74 20 68 61 6e 64  6c 65 20 77 69 6e 64 6f  |not handle windo|
00003960  77 0a 41 63 74 69 6f 6e  20 3a 0a 20 20 20 20 20  |w.Action :.     |
00003970  20 20 20 20 44 65 74 65  72 6d 69 6e 65 20 77 68  |    Determine wh|
00003980  65 74 68 65 72 20 74 68  65 20 77 69 6e 64 6f 77  |ether the window|
00003990  20 69 73 20 6f 6e 65 20  6f 66 20 79 6f 75 72 73  | is one of yours|
000039a0  2c 20 69 66 20 69 74 20  69 73 20 72 65 74 75 72  |, if it is retur|
000039b0  6e 0a 70 6f 69 6e 74 69  6e 67 20 74 6f 20 61 20  |n.pointing to a |
000039c0  70 69 65 63 65 20 6f 66  20 74 65 78 74 20 74 6f  |piece of text to|
000039d0  20 62 65 20 70 75 74 20  75 6e 64 65 72 20 74 68  | be put under th|
000039e0  65 20 69 63 6f 6e 2e 20  20 54 68 69 73 20 72 65  |e icon.  This re|
000039f0  66 65 72 73 2c 20 69 66  0a 79 6f 75 20 68 61 64  |fers, if.you had|
00003a00  20 6e 6f 74 20 67 75 65  73 73 65 64 2c 20 74 6f  | not guessed, to|
00003a10  20 61 6e 20 69 63 6f 6e  69 73 65 20 72 65 71 75  | an iconise requ|
00003a20  65 73 74 20 66 72 6f 6d  20 74 68 65 20 75 73 65  |est from the use|
00003a30  72 2e 20 20 59 6f 75 20  73 68 6f 75 6c 64 20 73  |r.  You should s|
00003a40  75 70 70 6f 72 74 0a 69  63 6f 6e 69 73 69 6e 67  |upport.iconising|
00003a50  20 61 73 20 73 74 61 6e  64 61 72 64 2e 20 20 49  | as standard.  I|
00003a60  66 20 79 6f 75 20 63 61  6e 6e 6f 74 20 68 61 6e  |f you cannot han|
00003a70  64 6c 65 20 74 68 65 20  77 69 6e 64 6f 77 20 72  |dle the window r|
00003a80  65 74 75 72 6e 20 77 69  74 68 20 30 0a 0a 37 20  |eturn with 0..7 |
00003a90  2d 20 54 72 61 6e 73 6c  61 74 65 20 6e 61 6d 65  |- Translate name|
00003aa0  20 74 6f 20 68 61 6e 64  6c 65 20 72 65 71 75 65  | to handle reque|
00003ab0  73 74 0a 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |st.~~~~~~~~~~~~~|
00003ac0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00003ad0  7e 7e 7e 7e 7e 7e 7e 0a  0a 45 6e 74 72 79 20 20  |~~~~~~~..Entry  |
00003ae0  3a 0a 20 20 20 20 20 20  20 20 20 2b 30 20 77 69  |:.         +0 wi|
00003af0  6e 64 6f 77 20 6e 61 6d  65 20 61 73 20 67 69 76  |ndow name as giv|
00003b00  65 6e 20 62 79 20 21 53  74 69 63 6b 79 42 72 64  |en by !StickyBrd|
00003b10  20 6f 72 20 6d 6f 64 75  6c 65 20 69 6e 20 70 72  | or module in pr|
00003b20  65 76 69 6f 75 73 20 65  76 65 6e 74 0a 45 78 69  |evious event.Exi|
00003b30  74 20 20 20 3a 0a 20 20  20 20 20 20 20 20 20 77  |t   :.         w|
00003b40  69 6e 64 6f 77 20 68 61  6e 64 6c 65 20 69 66 20  |indow handle if |
00003b50  63 61 6e 20 64 65 61 6c  20 77 69 74 68 20 69 74  |can deal with it|
00003b60  2c 20 6f 74 68 65 72 77  69 73 65 20 30 0a 41 63  |, otherwise 0.Ac|
00003b70  74 69 6f 6e 20 3a 0a 20  20 20 20 20 20 20 20 20  |tion :.         |
00003b80  54 72 79 20 61 6e 64 20  6d 61 74 63 68 20 77 69  |Try and match wi|
00003b90  6e 64 6f 77 20 6e 61 6d  65 20 74 6f 20 74 68 65  |ndow name to the|
00003ba0  20 6f 6e 65 20 67 69 76  65 6e 20 69 6e 20 74 68  | one given in th|
00003bb0  65 20 70 72 65 76 69 6f  75 73 20 65 76 65 6e 74  |e previous event|
00003bc0  2e 20 49 66 0a 79 6f 75  20 63 61 6e 20 64 6f 20  |. If.you can do |
00003bd0  74 68 69 73 20 65 78 69  74 20 77 69 74 68 20 74  |this exit with t|
00003be0  68 65 20 77 69 6e 64 6f  77 20 68 61 6e 64 6c 65  |he window handle|
00003bf0  20 74 6f 20 62 65 20 6f  70 65 6e 65 64 2c 20 6f  | to be opened, o|
00003c00  74 68 65 72 77 69 73 65  20 65 78 69 74 20 77 69  |therwise exit wi|
00003c10  74 68 0a 30 2e 0a 0a 38  20 2d 20 47 65 74 20 77  |th.0...8 - Get w|
00003c20  69 6e 64 6f 77 20 77 69  64 74 68 0a 7e 7e 7e 7e  |indow width.~~~~|
00003c30  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00003c40  0a 0a 45 6e 74 72 79 20  20 3a 0a 20 20 20 20 20  |..Entry  :.     |
00003c50  20 20 20 20 2b 30 20 77  69 6e 64 6f 77 20 6e 61  |    +0 window na|
00003c60  6d 65 0a 45 78 69 74 20  20 20 3a 0a 20 20 20 20  |me.Exit   :.    |
00003c70  20 20 20 20 20 77 69 6e  64 6f 77 20 77 69 64 74  |     window widt|
00003c80  68 20 69 66 20 63 61 6e  20 64 65 61 6c 20 77 69  |h if can deal wi|
00003c90  74 68 20 69 74 2c 20 6f  74 68 65 72 77 69 73 65  |th it, otherwise|
00003ca0  20 30 0a 41 63 74 69 6f  6e 20 3a 0a 20 20 20 20  | 0.Action :.    |
00003cb0  20 20 20 20 20 54 72 79  20 61 6e 64 20 6d 61 74  |     Try and mat|
00003cc0  63 68 20 74 68 65 20 6e  61 6d 65 2e 20 49 66 20  |ch the name. If |
00003cd0  74 68 65 20 77 69 6e 64  6f 77 20 69 73 20 6f 6e  |the window is on|
00003ce0  65 20 6f 66 20 79 6f 75  72 73 2c 20 65 78 69 74  |e of yours, exit|
00003cf0  20 77 69 74 68 20 61 0a  6e 75 6d 62 65 72 20 28  | with a.number (|
00003d00  74 68 65 20 77 69 64 74  68 20 6f 66 20 74 68 65  |the width of the|
00003d10  20 77 69 6e 64 6f 77 29  2e 20 20 49 66 20 79 6f  | window).  If yo|
00003d20  75 20 63 61 6e 6e 6f 74  20 64 65 61 6c 20 77 69  |u cannot deal wi|
00003d30  74 68 20 69 74 2c 20 65  78 69 74 20 77 69 74 68  |th it, exit with|
00003d40  20 30 2e 0a 54 68 65 20  69 6e 66 6f 20 77 69 6e  | 0..The info win|
00003d50  64 6f 77 20 77 69 64 74  68 20 69 73 20 36 35 30  |dow width is 650|
00003d60  0a 0a 39 20 2d 20 47 65  74 20 77 69 6e 64 6f 77  |..9 - Get window|
00003d70  20 68 65 69 67 68 74 0a  7e 7e 7e 7e 7e 7e 7e 7e  | height.~~~~~~~~|
00003d80  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 0a 0a 45  |~~~~~~~~~~~~~..E|
00003d90  6e 74 72 79 20 20 3a 0a  20 20 20 20 20 20 20 20  |ntry  :.        |
00003da0  20 2b 30 20 77 69 6e 64  6f 77 20 6e 61 6d 65 0a  | +0 window name.|
00003db0  45 78 69 74 20 20 20 3a  0a 20 20 20 20 20 20 20  |Exit   :.       |
00003dc0  20 20 77 69 6e 64 6f 77  20 68 65 69 67 68 74 20  |  window height |
00003dd0  69 66 20 63 61 6e 20 64  65 61 6c 20 77 69 74 68  |if can deal with|
00003de0  20 69 74 2c 20 6f 74 68  65 72 77 69 73 65 20 30  | it, otherwise 0|
00003df0  0a 41 63 74 69 6f 6e 20  3a 0a 20 20 20 20 20 20  |.Action :.      |
00003e00  20 20 20 54 72 79 20 61  6e 64 20 6d 61 74 63 68  |   Try and match|
00003e10  20 74 68 65 20 6e 61 6d  65 2c 20 61 73 20 62 65  | the name, as be|
00003e20  66 6f 72 65 2c 20 77 69  74 68 20 61 20 77 69 6e  |fore, with a win|
00003e30  64 6f 77 2e 20 20 49 66  20 74 68 65 20 77 69 6e  |dow.  If the win|
00003e40  64 6f 77 20 69 73 0a 6f  6e 65 20 6f 66 20 79 6f  |dow is.one of yo|
00003e50  75 72 73 2c 20 65 78 69  74 20 77 69 74 68 20 74  |urs, exit with t|
00003e60  68 65 20 68 65 69 67 68  74 20 6f 66 20 74 68 65  |he height of the|
00003e70  20 77 69 6e 64 6f 77 2e  20 20 49 66 20 79 6f 75  | window.  If you|
00003e80  20 63 61 6e 6e 6f 74 20  64 65 61 6c 20 77 69 74  | cannot deal wit|
00003e90  68 0a 69 74 2c 20 65 78  69 74 20 77 69 74 68 20  |h.it, exit with |
00003ea0  30 2e 0a 54 68 65 20 69  6e 66 6f 20 77 69 6e 64  |0..The info wind|
00003eb0  6f 77 20 68 65 69 67 68  74 20 69 73 20 33 38 30  |ow height is 380|
00003ec0  0a 0a 31 30 20 2d 20 45  6e 64 20 6f 66 20 64 72  |..10 - End of dr|
00003ed0  61 67 20 65 76 65 6e 74  0a 7e 7e 7e 7e 7e 7e 7e  |ag event.~~~~~~~|
00003ee0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 0a  |~~~~~~~~~~~~~~~.|
00003ef0  0a 45 6e 74 72 79 20 20  3a 0a 20 20 20 20 20 20  |.Entry  :.      |
00003f00  20 20 20 2b 30 20 20 20  69 6e 74 65 72 6e 61 6c  |   +0   internal|
00003f10  20 74 79 70 65 0a 20 20  20 20 20 20 20 20 20 2b  | type.         +|
00003f20  34 20 20 20 69 63 6f 6e  20 6e 61 6d 65 0a 20 20  |4   icon name.  |
00003f30  20 20 20 20 20 20 20 2b  32 36 30 20 73 61 76 65  |       +260 save|
00003f40  20 66 69 6c 65 20 6e 61  6d 65 20 28 74 69 74 6c  | file name (titl|
00003f50  65 20 6f 66 20 76 69 65  77 65 72 29 0a 45 78 69  |e of viewer).Exi|
00003f60  74 20 20 20 3a 0a 20 20  20 20 20 20 20 20 20 4e  |t   :.         N|
00003f70  6f 6e 65 0a 41 63 74 69  6f 6e 20 3a 0a 20 20 20  |one.Action :.   |
00003f80  20 20 20 20 20 20 44 65  74 65 72 6d 69 6e 65 20  |      Determine |
00003f90  77 68 65 74 68 65 72 20  74 68 65 20 69 63 6f 6e  |whether the icon|
00003fa0  20 69 73 20 6f 6e 65 20  6f 66 20 79 6f 75 72 73  | is one of yours|
00003fb0  20 28 6c 6f 6f 6b 20 61  74 20 74 68 65 20 69 6e  | (look at the in|
00003fc0  74 65 72 6e 61 6c 0a 74  79 70 65 29 20 61 6e 64  |ternal.type) and|
00003fd0  20 74 68 65 6e 20 70 65  72 66 6f 72 6d 20 61 6e  | then perform an|
00003fe0  20 61 63 74 69 6f 6e 20  28 69 66 20 79 6f 75 20  | action (if you |
00003ff0  77 61 6e 74 20 74 6f 29  20 6f 6e 20 74 68 65 20  |want to) on the |
00004000  69 63 6f 6e 2e 20 20 54  68 69 73 20 65 76 65 6e  |icon.  This even|
00004010  74 0a 6f 63 63 6f 75 72  73 20 77 68 65 6e 20 61  |t.occours when a|
00004020  20 64 72 61 67 20 77 69  74 68 20 73 65 6c 65 63  | drag with selec|
00004030  74 20 74 6f 20 73 6f 6d  65 77 68 65 72 65 20 6f  |t to somewhere o|
00004040  74 68 65 72 20 74 68 61  6e 20 74 68 65 20 62 61  |ther than the ba|
00004050  63 6b 64 72 6f 70 20 77  69 6e 64 6f 77 0a 68 61  |ckdrop window.ha|
00004060  73 20 74 61 6b 65 6e 20  70 6c 61 63 65 20 2d 20  |s taken place - |
00004070  65 2e 67 2e 20 74 6f 20  61 20 64 69 72 65 63 74  |e.g. to a direct|
00004080  6f 72 79 20 76 69 65 77  65 72 2e 20 20 44 69 72  |ory viewer.  Dir|
00004090  43 68 61 6e 67 65 20 75  73 65 73 20 74 68 69 73  |Change uses this|
000040a0  20 65 76 65 6e 74 20 74  6f 0a 63 68 61 6e 67 65  | event to.change|
000040b0  20 74 68 65 20 63 75 72  72 65 6e 74 6c 79 20 73  | the currently s|
000040c0  65 6c 65 63 74 65 64 20  64 69 72 65 63 74 6f 72  |elected director|
000040d0  79 2e 20 2d 20 68 61 76  65 20 61 20 6c 6f 6f 6b  |y. - have a look|
000040e0  20 61 74 20 74 68 65 20  63 6f 64 65 2e 20 20 54  | at the code.  T|
000040f0  68 65 0a 74 65 78 74 20  61 74 20 62 6c 6f 63 6b  |he.text at block|
00004100  2b 34 20 69 73 20 74 68  65 20 6e 61 6d 65 20 6f  |+4 is the name o|
00004110  66 20 74 68 65 20 69 63  6f 6e 20 64 72 61 67 67  |f the icon dragg|
00004120  65 64 2c 20 61 6e 64 20  74 68 65 20 74 65 78 74  |ed, and the text|
00004130  20 61 74 20 62 6c 6f 63  6b 2b 32 36 30 0a 69 73  | at block+260.is|
00004140  20 74 68 65 20 66 69 6c  65 6e 61 6d 65 20 72 65  | the filename re|
00004150  74 75 72 6e 65 64 20 66  72 6f 6d 20 62 79 20 74  |turned from by t|
00004160  68 65 20 74 61 73 6b 20  74 68 65 20 69 63 6f 6e  |he task the icon|
00004170  20 77 61 73 20 64 72 61  67 67 65 64 20 74 6f 2e  | was dragged to.|
00004180  0a 0a 31 31 20 2d 20 49  63 6f 6e 20 64 72 61 67  |..11 - Icon drag|
00004190  67 65 64 20 74 6f 20 21  53 74 69 63 6b 79 42 72  |ged to !StickyBr|
000041a0  64 20 28 4d 65 73 73 61  67 65 5f 44 61 74 61 4c  |d (Message_DataL|
000041b0  6f 61 64 29 0a 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |oad).~~~~~~~~~~~|
000041c0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
*
000041e0  7e 7e 7e 7e 7e 7e 0a 0a  45 6e 74 72 79 20 20 3a  |~~~~~~..Entry  :|
000041f0  0a 20 20 20 20 20 20 20  20 20 2b 30 20 77 69 6e  |.         +0 win|
00004200  64 6f 77 20 68 61 6e 64  6c 65 0a 20 20 20 20 20  |dow handle.     |
00004210  20 20 20 20 2b 34 20 69  63 6f 6e 20 68 61 6e 64  |    +4 icon hand|
00004220  6c 65 0a 20 20 20 20 20  20 20 20 20 2b 38 20 6e  |le.         +8 n|
00004230  61 6d 65 20 6f 66 20 66  69 6c 65 20 64 72 61 67  |ame of file drag|
00004240  67 65 64 0a 45 78 69 74  20 20 20 3a 0a 20 20 20  |ged.Exit   :.   |
00004250  20 20 20 20 20 20 4e 6f  6e 65 0a 41 63 74 69 6f  |      None.Actio|
00004260  6e 20 3a 0a 20 20 20 20  20 20 20 20 20 44 65 74  |n :.         Det|
00004270  65 72 6d 69 6e 65 20 77  68 65 74 68 65 72 20 74  |ermine whether t|
00004280  68 65 20 77 69 6e 64 6f  77 20 69 73 20 6f 6e 65  |he window is one|
00004290  20 6f 66 20 79 6f 75 72  73 20 61 6e 64 20 69 66  | of yours and if|
000042a0  20 69 74 20 69 73 20 65  78 65 63 75 74 65 0a 74  | it is execute.t|
000042b0  68 65 20 63 6f 64 65 20  74 6f 20 64 65 61 6c 20  |he code to deal |
000042c0  77 69 74 68 20 69 74 2c  20 69 66 20 61 6e 79 2e  |with it, if any.|
000042d0  0a 0a 31 32 20 2d 20 44  65 6c 65 74 65 20 69 63  |..12 - Delete ic|
000042e0  6f 6e 20 72 65 71 75 65  73 74 0a 7e 7e 7e 7e 7e  |on request.~~~~~|
000042f0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00004300  7e 7e 7e 0a 0a 45 6e 74  72 79 20 20 3a 0a 20 20  |~~~..Entry  :.  |
00004310  20 20 20 20 20 20 20 2b  30 20 69 63 6f 6e 20 68  |       +0 icon h|
00004320  61 6e 64 6c 65 0a 20 20  20 20 20 20 20 20 20 2b  |andle.         +|
00004330  34 20 69 6e 74 65 72 6e  61 6c 20 74 79 70 65 0a  |4 internal type.|
00004340  45 78 69 74 20 20 20 3a  20 0a 20 20 20 20 20 20  |Exit   : .      |
00004350  20 20 20 4e 6f 6e 65 0a  41 63 74 69 6f 6e 20 3a  |   None.Action :|
00004360  0a 20 20 20 20 20 20 20  20 20 44 65 74 65 72 6d  |.         Determ|
00004370  69 6e 65 20 77 68 65 74  68 65 72 20 74 68 65 20  |ine whether the |
00004380  69 63 6f 6e 20 69 73 20  6f 6e 65 20 6f 66 20 79  |icon is one of y|
00004390  6f 75 72 73 2c 20 61 6e  64 20 69 66 20 69 74 20  |ours, and if it |
000043a0  69 73 20 64 65 6c 65 74  65 0a 69 74 20 77 69 74  |is delete.it wit|
000043b0  68 20 6d 6f 64 6c 5f 69  6e 74 65 72 66 61 63 65  |h modl_interface|
000043c0  20 73 65 74 20 74 6f 20  35 2e 20 20 52 65 63 6f  | set to 5.  Reco|
000043d0  6d 6d 65 6e 64 65 64 20  63 6f 64 65 20 74 6f 20  |mmended code to |
000043e0  64 6f 20 74 68 69 73 20  69 73 3a 0a 0a 78 78 20  |do this is:..xx |
000043f0  70 6f 69 6e 74 65 72 25  21 30 3d 3c 69 63 6f 6e  |pointer%!0=<icon|
00004400  20 68 61 6e 64 6c 65 3e  0a 78 78 20 64 75 6d 6d  | handle>.xx dumm|
00004410  79 3d 46 4e 6d 6f 64 6c  5f 69 6e 74 65 72 66 61  |y=FNmodl_interfa|
00004420  63 65 28 35 2c 70 6f 69  6e 74 65 72 25 29 0a 0a  |ce(5,pointer%)..|
00004430  49 66 20 79 6f 75 20 68  61 76 65 20 61 6e 20 69  |If you have an i|
00004440  74 65 6d 20 6f 6e 20 61  20 6d 65 6e 75 2c 20 73  |tem on a menu, s|
00004450  61 79 2c 20 74 68 65 6e  20 64 6f 6e 27 74 20 66  |ay, then don't f|
00004460  6f 72 67 65 74 20 74 6f  20 66 6c 61 67 20 69 74  |orget to flag it|
00004470  20 61 63 63 6f 72 64 69  6e 67 6c 79 2e 0a 0a 31  | accordingly...1|
00004480  33 20 2d 20 21 53 74 69  63 6b 79 42 72 64 20 71  |3 - !StickyBrd q|
00004490  75 69 74 74 69 6e 67 20  65 76 65 6e 74 0a 7e 7e  |uitting event.~~|
000044a0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
000044b0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 0a 0a 45 6e 74  |~~~~~~~~~~~..Ent|
000044c0  72 79 20 20 3a 0a 20 a0  20 20 20 20 20 20 20 4e  |ry  :. .       N|
000044d0  6f 6e 65 0a 45 78 69 74  20 20 20 3a 0a 20 20 20  |one.Exit   :.   |
000044e0  20 20 20 20 20 20 4e 6f  6e 65 0a 41 63 74 69 6f  |      None.Actio|
000044f0  6e 20 3a 0a 20 20 20 20  20 20 20 20 20 49 20 63  |n :.         I c|
00004500  61 6e 6e 6f 74 20 73 65  65 20 61 20 75 73 65 20  |annot see a use |
00004510  66 6f 72 20 74 68 69 73  20 70 6f 6c 6c 20 63 6f  |for this poll co|
00004520  64 65 20 62 75 74 20 74  68 61 74 20 69 73 20 6e  |de but that is n|
00004530  6f 74 20 74 6f 20 73 61  79 20 74 68 61 74 0a 73  |ot to say that.s|
00004540  6f 6d 65 6f 6e 65 20 65  6c 73 65 20 63 61 6e 27  |omeone else can'|
00004550  74 2e 20 20 52 65 74 75  72 6e 20 61 73 20 71 75  |t.  Return as qu|
00004560  69 63 6b 6c 79 20 61 73  20 70 6f 73 73 69 62 6c  |ickly as possibl|
00004570  65 20 61 73 20 74 68 65  20 75 73 65 72 20 64 6f  |e as the user do|
00004580  65 73 6e 27 74 20 77 61  6e 74 0a 74 6f 20 62 65  |esn't want.to be|
00004590  20 6b 65 70 74 20 77 61  69 74 69 6e 67 2e 20 20  | kept waiting.  |
000045a0  54 68 69 73 20 65 76 65  6e 74 20 6f 63 63 6f 75  |This event occou|
000045b0  72 73 20 77 68 65 6e 20  74 68 65 20 75 73 65 72  |rs when the user|
000045c0  20 63 6c 69 63 6b 73 20  51 75 69 74 20 66 72 6f  | clicks Quit fro|
000045d0  6d 20 65 69 74 68 65 72  0a 74 68 65 20 6d 61 69  |m either.the mai|
000045e0  6e 20 6d 65 6e 75 20 6f  72 20 74 68 65 20 74 61  |n menu or the ta|
000045f0  73 6b 20 6d 61 6e 61 67  65 72 2c 20 6f 72 20 61  |sk manager, or a|
00004600  6e 20 65 72 72 6f 72 20  6f 63 63 6f 75 72 73 20  |n error occours |
00004610  61 6e 64 20 74 68 65 20  75 73 65 72 20 77 61 6e  |and the user wan|
00004620  74 73 20 74 6f 0a 71 75  69 74 2e 0a 0a 31 34 20  |ts to.quit...14 |
00004630  2d 20 52 65 64 72 61 77  20 72 65 71 75 65 73 74  |- Redraw request|
00004640  0a 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |.~~~~~~~~~~~~~~~|
00004650  7e 7e 7e 7e 0a 0a 45 6e  74 72 79 20 20 3a 0a 20  |~~~~..Entry  :. |
00004660  20 20 20 20 20 20 20 20  53 74 61 6e 64 61 72 64  |        Standard|
00004670  20 77 69 6d 70 20 72 65  64 72 61 77 20 62 6c 6f  | wimp redraw blo|
00004680  63 6b 0a 45 78 69 74 20  20 20 3a 0a 20 20 20 20  |ck.Exit   :.    |
00004690  20 20 20 20 20 4e 6f 6e  65 0a 41 63 74 69 6f 6e  |     None.Action|
000046a0  20 3a 0a 20 20 20 20 20  20 20 20 20 4f 6e 6c 79  | :.         Only|
000046b0  20 62 6f 74 68 65 72 20  77 69 74 68 20 74 68 69  | bother with thi|
000046c0  73 20 70 6f 6c 6c 20 63  6f 64 65 20 69 66 20 79  |s poll code if y|
000046d0  6f 75 20 68 61 76 65 20  73 6f 6d 74 68 69 6e 67  |ou have somthing|
000046e0  20 74 6f 20 72 65 64 72  61 77 20 74 68 61 74 0a  | to redraw that.|
000046f0  63 61 6e 6e 6f 74 20 62  65 20 64 6f 6e 65 20 62  |cannot be done b|
00004700  79 20 21 53 74 69 63 6b  79 42 72 64 20 69 74 73  |y !StickyBrd its|
00004710  65 6c 66 2e 20 20 49 66  20 79 6f 75 20 61 72 65  |elf.  If you are|
00004720  20 75 73 69 6e 67 20 74  68 65 20 69 6e 74 65 72  | using the inter|
00004730  66 61 63 65 20 6d 61 6e  61 67 65 72 0a 62 79 20  |face manager.by |
00004740  53 69 6d 6f 6e 20 48 75  6e 74 69 6e 67 64 6f 6e  |Simon Huntingdon|
00004750  20 28 74 68 6f 72 6f 75  67 68 6c 79 20 72 65 63  | (thoroughly rec|
00004760  6f 6d 6d 65 6e 64 65 64  29 20 79 6f 75 20 64 6f  |ommended) you do|
00004770  20 6e 6f 74 20 6e 65 65  64 20 74 6f 20 69 73 73  | not need to iss|
00004780  75 65 20 61 6e 0a 49 6e  74 65 72 66 61 63 65 5f  |ue an.Interface_|
00004790  42 6f 72 64 65 72 33 64  57 69 6e 64 6f 77 20 53  |Border3dWindow S|
000047a0  57 49 20 61 73 20 74 68  69 73 20 69 73 20 64 6f  |WI as this is do|
000047b0  6e 65 20 61 6e 79 77 61  79 2e 20 20 41 63 74 75  |ne anyway.  Actu|
000047c0  61 6c 6c 79 2c 20 74 6f  20 6b 65 65 70 20 61 0a  |ally, to keep a.|
000047d0  75 6e 69 66 6f 72 6d 20  61 70 70 65 61 72 61 6e  |uniform appearan|
000047e0  63 65 2c 20 49 20 77 6f  75 6c 64 20 73 75 67 67  |ce, I would sugg|
000047f0  65 73 74 20 79 6f 75 20  64 6f 20 75 73 65 20 49  |est you do use I|
00004800  6e 74 65 72 66 61 63 65  2e 20 20 54 6f 20 75 73  |nterface.  To us|
00004810  65 20 69 74 2c 20 73 65  74 0a 74 68 65 20 76 61  |e it, set.the va|
00004820  6c 69 64 61 74 69 6f 6e  20 73 74 72 69 6e 67 20  |lidation string |
00004830  6f 66 20 61 20 69 6e 64  69 72 65 63 74 65 64 20  |of a indirected |
00004840  69 63 6f 6e 20 74 6f 20  65 69 74 68 65 72 3a 0a  |icon to either:.|
00004850  0a 20 7a 30 20 20 20 20  52 61 69 73 65 64 20 69  |. z0    Raised i|
00004860  63 6f 6e 0a 20 7a 31 20  20 20 20 47 72 6f 75 70  |con. z1    Group|
00004870  69 6e 67 20 69 63 6f 6e  0a 20 7a 32 20 20 20 20  |ing icon. z2    |
00004880  44 65 66 61 75 6c 74 20  61 63 74 69 6f 6e 0a 20  |Default action. |
00004890  7a 33 20 20 20 20 57 72  69 74 61 62 6c 65 20 69  |z3    Writable i|
000048a0  63 6f 6e 0a 0a 54 68 65  72 65 20 61 72 65 2c 20  |con..There are, |
000048b0  6f 66 20 63 6f 75 72 73  65 2c 20 6d 6f 72 65 20  |of course, more |
000048c0  74 79 70 65 73 20 2d 20  73 65 65 20 53 69 6d 6f  |types - see Simo|
000048d0  6e 27 73 20 73 65 70 65  72 65 61 74 65 20 64 6f  |n's sepereate do|
000048e0  63 75 6d 65 6e 74 61 74  69 6f 6e 2e 0a 0a 31 35  |cumentation...15|
000048f0  20 2d 20 43 6c 65 61 72  20 41 6c 6c 20 72 65 71  | - Clear All req|
00004900  75 65 73 74 0a 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |uest.~~~~~~~~~~~|
00004910  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 0a 0a 45 6e 74  |~~~~~~~~~~~..Ent|
00004920  72 79 20 20 3a 0a 20 20  20 20 20 20 20 20 20 2b  |ry  :.         +|
00004930  30 20 63 6c 65 61 72 20  74 79 70 65 0a 20 20 20  |0 clear type.   |
00004940  20 20 20 20 20 20 2b 34  20 64 65 73 6b 74 6f 70  |      +4 desktop|
00004950  20 66 69 6c 65 20 74 6f  20 62 65 20 6c 6f 61 64  | file to be load|
00004960  65 64 20 28 69 66 20 63  6c 65 61 72 20 74 79 70  |ed (if clear typ|
00004970  65 3d 31 29 0a 45 78 69  74 20 20 20 3a 0a 20 20  |e=1).Exit   :.  |
00004980  20 20 20 20 20 20 20 4e  6f 6e 65 0a 41 63 74 69  |       None.Acti|
00004990  6f 6e 20 3a 0a 20 20 20  20 20 20 20 20 20 59 6f  |on :.         Yo|
000049a0  75 20 73 68 6f 75 6c 64  20 63 6c 65 61 72 20 61  |u should clear a|
000049b0  6c 6c 20 6f 66 20 79 6f  75 72 20 69 63 6f 6e 73  |ll of your icons|
000049c0  20 6f 6e 20 74 68 65 20  64 65 73 6b 74 6f 70 20  | on the desktop |
000049d0  61 73 20 65 69 74 68 65  72 3a 0a 20 2a 2a 20 54  |as either:. ** T|
000049e0  68 65 20 75 73 65 72 20  68 61 73 20 63 6c 69 63  |he user has clic|
000049f0  6b 65 64 20 43 6c 65 61  72 20 41 6c 6c 20 6f 6e  |ked Clear All on|
00004a00  20 74 68 65 20 6d 65 6e  75 20 28 63 6c 65 61 72  | the menu (clear|
00004a10  20 74 79 70 65 20 3d 20  30 29 0a 20 2a 2a 20 54  | type = 0). ** T|
00004a20  68 65 20 75 73 65 72 20  77 61 6e 74 73 20 74 6f  |he user wants to|
00004a30  20 6c 6f 61 64 20 61 20  6e 65 77 20 64 65 73 6b  | load a new desk|
00004a40  74 6f 70 20 20 20 20 20  20 20 28 63 6c 65 61 72  |top       (clear|
00004a50  20 74 79 70 65 20 3d 20  31 29 0a 49 66 20 74 68  | type = 1).If th|
00004a60  65 20 75 73 65 72 20 69  73 20 6c 6f 61 64 69 6e  |e user is loadin|
00004a70  67 20 61 20 64 65 73 6b  74 6f 70 20 28 74 68 69  |g a desktop (thi|
00004a80  73 20 69 73 20 69 73 73  75 65 64 20 62 65 66 6f  |s is issued befo|
00004a90  72 65 20 74 68 65 20 64  65 73 6b 74 6f 70 20 68  |re the desktop h|
00004aa0  61 73 20 62 65 65 6e 0a  6c 6f 61 64 65 64 29 20  |as been.loaded) |
00004ab0  74 68 65 6e 20 62 6c 6f  63 6b 2b 34 20 70 6f 69  |then block+4 poi|
00004ac0  6e 74 73 20 74 6f 20 74  68 65 20 66 69 6c 65 6e  |nts to the filen|
00004ad0  61 6d 65 2e 0a 52 65 63  6f 6d 6d 65 6e 64 65 64  |ame..Recommended|
00004ae0  20 63 6f 64 65 20 74 6f  20 64 65 6c 65 74 65 20  | code to delete |
00004af0  61 6c 6c 20 69 63 6f 6e  73 20 6f 66 20 61 20 70  |all icons of a p|
00004b00  61 72 74 69 63 75 6c 61  72 20 74 79 70 65 20 69  |articular type i|
00004b10  73 3a 0a 0a 78 78 20 52  45 50 45 41 54 3a 70 6f  |s:..xx REPEAT:po|
00004b20  69 6e 74 65 72 25 21 30  3d 3c 69 6e 74 65 72 6e  |inter%!0=<intern|
00004b30  61 6c 20 74 79 70 65 29  0a 78 78 20 65 78 69 73  |al type).xx exis|
00004b40  74 73 25 3d 46 4e 6d 6f  64 6c 5f 69 6e 74 65 72  |ts%=FNmodl_inter|
00004b50  66 61 63 65 28 31 31 2c  70 6f 69 6e 74 65 72 25  |face(11,pointer%|
00004b60  29 0a 78 78 20 49 46 20  65 78 69 73 74 73 25 3e  |).xx IF exists%>|
00004b70  30 20 54 48 45 4e 0a 78  78 20 20 70 6f 69 6e 74  |0 THEN.xx  point|
00004b80  65 72 25 21 30 3d 65 78  69 73 74 73 25 0a 78 78  |er%!0=exists%.xx|
00004b90  20 20 64 75 6d 6d 79 3d  46 4e 6d 6f 64 6c 5f 69  |  dummy=FNmodl_i|
00004ba0  6e 74 65 72 66 61 63 65  28 35 2c 70 6f 69 6e 74  |nterface(5,point|
00004bb0  65 72 25 29 0a 78 78 20  45 4e 44 49 46 0a 78 78  |er%).xx ENDIF.xx|
00004bc0  20 55 4e 54 49 4c 20 65  78 69 73 74 73 25 3d 30  | UNTIL exists%=0|
00004bd0  0a 0a 31 36 20 2d 20 44  65 73 6b 74 6f 70 20 68  |..16 - Desktop h|
00004be0  61 73 20 62 65 65 6e 20  6c 6f 61 64 65 64 20 65  |as been loaded e|
00004bf0  76 65 6e 74 0a 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |vent.~~~~~~~~~~~|
00004c00  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00004c10  7e 7e 7e 7e 7e 7e 7e 0a  0a 45 6e 74 72 79 20 20  |~~~~~~~..Entry  |
00004c20  3a 0a 20 20 20 20 20 20  20 20 20 4e 6f 6e 65 0a  |:.         None.|
00004c30  45 78 69 74 20 20 20 3a  0a 20 20 20 20 20 20 20  |Exit   :.       |
00004c40  20 20 4e 6f 6e 65 0a 41  63 74 69 6f 6e 20 3a 0a  |  None.Action :.|
00004c50  20 20 20 20 20 20 20 20  20 52 65 61 6c 6c 79 20  |         Really |
00004c60  64 65 70 65 6e 64 73 20  6f 6e 20 77 68 61 74 20  |depends on what |
00004c70  79 6f 75 72 20 6d 6f 64  75 6c 65 20 64 6f 65 73  |your module does|
00004c80  2e 0a 0a 0a 4d 6f 64 75  6c 65 20 69 6e 74 65 72  |....Module inter|
00004c90  66 61 63 65 20 73 79 73  74 65 6d 0a 7e 7e 7e 7e  |face system.~~~~|
00004ca0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00004cb0  7e 7e 7e 0a 0a 53 6f 20  66 61 72 20 74 68 65 20  |~~~..So far the |
00004cc0  64 69 61 6c 6f 67 75 65  20 68 61 73 20 6f 6e 6c  |dialogue has onl|
00004cd0  79 20 62 65 65 6e 20 6f  6e 65 20 77 61 79 20 77  |y been one way w|
00004ce0  69 74 68 20 21 53 74 69  63 6b 79 42 72 64 20 74  |ith !StickyBrd t|
00004cf0  65 6c 6c 69 6e 67 20 75  73 20 77 68 61 74 20 68  |elling us what h|
00004d00  61 73 0a 68 61 70 70 65  6e 65 64 2e 20 20 57 65  |as.happened.  We|
00004d10  20 6e 65 65 64 20 61 20  77 61 79 20 6f 66 20 74  | need a way of t|
00004d20  65 6c 6c 69 6e 67 20 21  53 74 69 63 6b 79 42 72  |elling !StickyBr|
00004d30  64 20 74 6f 20 64 6f 20  74 68 69 6e 67 73 20 66  |d to do things f|
00004d40  6f 72 20 75 73 2e 20 20  57 65 20 63 61 6e 0a 65  |or us.  We can.e|
00004d50  69 74 68 65 72 20 75 73  65 20 21 53 74 69 63 6b  |ither use !Stick|
00004d60  79 42 72 64 27 73 20 6f  77 6e 20 72 6f 75 74 69  |yBrd's own routi|
00004d70  6e 65 73 20 2d 20 74 68  65 73 65 20 6d 61 79 20  |nes - these may |
00004d80  6e 6f 74 20 62 65 20 73  75 70 70 6f 72 74 65 64  |not be supported|
00004d90  20 6f 6e 20 66 75 74 75  72 65 0a 76 65 72 73 69  | on future.versi|
00004da0  6f 6e 73 2c 20 62 75 74  20 61 72 65 20 73 6c 69  |ons, but are sli|
00004db0  67 68 74 6c 79 20 66 61  73 74 65 72 20 2d 20 6f  |ghtly faster - o|
00004dc0  72 20 77 65 20 63 61 6e  20 75 73 65 20 21 53 74  |r we can use !St|
00004dd0  69 63 6b 79 42 72 64 27  73 20 62 75 69 6c 74 20  |ickyBrd's built |
00004de0  69 6e 0a 69 6e 74 65 72  66 61 63 65 20 72 6f 75  |in.interface rou|
00004df0  74 69 6e 65 73 2e 20 20  54 68 65 73 65 20 61 72  |tines.  These ar|
00004e00  65 20 67 75 61 72 61 6e  74 65 65 64 20 74 6f 20  |e guaranteed to |
00004e10  62 65 20 73 75 70 70 6f  72 74 65 64 20 6f 6e 20  |be supported on |
00004e20  66 75 74 75 72 65 20 76  65 72 73 69 6f 6e 73 0a  |future versions.|
00004e30  73 6f 20 79 6f 75 72 20  6d 6f 64 75 6c 65 20 77  |so your module w|
00004e40  69 6c 6c 20 61 6c 77 61  79 73 20 77 6f 72 6b 2e  |ill always work.|
00004e50  0a 0a 49 6e 74 65 72 66  61 63 65 20 72 6f 75 74  |..Interface rout|
00004e60  69 6e 65 73 20 63 75 72  72 65 6e 74 6c 79 20 73  |ines currently s|
00004e70  75 70 70 6f 72 74 65 64  20 61 72 65 3a 0a 0a 20  |upported are:.. |
00004e80  20 20 20 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |   _____________|
00004e90  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00004ec0  5f 5f 5f 5f 5f 5f 5f 5f  5f 0a 20 20 20 2f 20 20  |_________.   /  |
00004ed0  20 20 20 20 20 20 20 20  20 20 20 20 7c 20 20 20  |            |   |
00004ee0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00004ef0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00004f10  20 20 20 20 5c 0a 20 20  2f 20 20 20 20 20 20 20  |    \.  /       |
00004f20  20 20 20 20 20 20 20 20  7c 20 20 20 20 20 20 20  |        |       |
00004f30  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00004f40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00004f60  20 5c 0a 20 7c 20 49 6e  74 65 72 66 61 63 65 20  | \. | Interface |
00004f70  63 6f 64 65 20 7c 20 44  65 73 63 72 69 70 74 69  |code | Descripti|
00004f80  6f 6e 20 20 20 20 20 20  7c 20 50 61 72 61 6d 65  |on      | Parame|
00004f90  74 65 72 73 20 70 61 73  73 65 64 20 69 6e 20 70  |ters passed in p|
00004fa0  61 72 61 6d 65 74 65 72  20 62 6c 6f 63 6b 20 7c  |arameter block ||
00004fb0  0a 20 7c 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |. |_____________|
00004fc0  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00004fd0  5f 5f 5f 5f 5f 5f 7c 5f  5f 5f 5f 5f 5f 5f 5f 5f  |______|_________|
00004fe0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00004ff0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 0a 20  |_____________|. |
00005000  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00005010  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | |              |
00005020  20 20 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |    |           |
00005030  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005040  20 20 20 20 20 20 20 20  20 20 20 7c 0a 20 7c 20  |           |. | |
00005050  20 20 20 20 20 20 30 20  20 20 20 20 20 20 20 7c  |      0        ||
00005060  20 46 61 74 61 6c 20 65  72 72 6f 72 20 20 20 20  | Fatal error    |
00005070  20 20 7c 20 2b 30 20 65  72 72 6f 72 20 74 65 78  |  | +0 error tex|
00005080  74 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |t               |
00005090  20 20 20 20 20 20 20 20  20 7c 0a 20 7c 5f 5f 5f  |         |. |___|
000050a0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 5f 5f  |_____________|__|
000050b0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
000050c0  7c 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  ||_______________|
000050d0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
000050e0  5f 5f 5f 5f 5f 5f 5f 7c  0a 20 7c 20 20 20 20 20  |_______|. |     |
000050f0  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00005100  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7c 20  |              | |
00005110  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005130  20 20 20 20 20 7c 0a 20  7c 20 20 20 20 20 20 20  |     |. |       |
00005140  31 20 20 20 20 20 20 20  20 7c 20 4e 6f 6e 2d 66  |1        | Non-f|
00005150  61 74 61 6c 20 65 72 72  6f 72 20 20 7c 20 2b 30  |atal error  | +0|
00005160  20 65 72 72 6f 72 20 74  65 78 74 20 20 20 20 20  | error text     |
00005170  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005180  20 20 20 7c 0a 20 7c 5f  5f 5f 5f 5f 5f 5f 5f 5f  |   |. |_________|
00005190  5f 5f 5f 5f 5f 5f 5f 7c  5f 5f 5f 5f 5f 5f 5f 5f  |_______|________|
000051a0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 7c 5f 5f 5f 5f 5f  |__________|_____|
000051b0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
000051d0  5f 7c 0a 20 7c 20 20 20  20 20 20 20 20 20 20 20  |_|. |           |
000051e0  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
000051f0  20 20 20 20 20 20 20 20  7c 20 20 20 20 20 20 20  |        |       |
00005200  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005210  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00005220  0a 20 7c 20 20 20 20 20  20 20 32 20 20 20 20 20  |. |       2     |
00005230  20 20 20 7c 20 52 65 64  72 61 77 20 62 61 63 6b  |   | Redraw back|
00005240  67 72 6f 75 6e 64 7c 20  4e 6f 74 20 61 70 70 6c  |ground| Not appl|
00005250  69 63 61 62 6c 65 20 20  20 20 20 20 20 20 20 20  |icable          |
00005260  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 0a 20  |             |. |
00005270  7c 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  ||_______________|
00005280  5f 7c 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_|______________|
00005290  5f 5f 5f 5f 7c 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |____|___________|
000052a0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
000052b0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 7c 0a 20 7c 20  |___________|. | |
000052c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
000052d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000052e0  20 20 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |  |             |
000052f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005300  20 20 20 20 20 20 20 20  20 7c 0a 20 7c 20 20 20  |         |. |   |
00005310  20 20 20 20 33 20 20 20  20 20 20 20 20 7c 20 52  |    3        | R|
00005320  65 74 75 72 6e 20 62 61  63 6b 64 72 6f 70 20 20  |eturn backdrop  |
00005330  7c 20 4f 6e 20 72 65 74  75 72 6e 2c 20 20 20 20  || On return,    |
00005340  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005350  20 20 20 20 20 20 20 7c  0a 20 7c 20 20 20 20 20  |       |. |     |
00005360  20 20 20 20 20 20 20 20  20 20 20 7c 20 66 6c 61  |           | fla|
00005370  67 73 20 20 20 20 20 20  20 20 20 20 20 20 7c 20  |gs            | |
00005380  2b 30 20 6c 6f 61 64 65  64 2f 6e 6f 74 20 6c 6f  |+0 loaded/not lo|
00005390  61 64 65 64 20 20 20 20  20 20 20 20 20 20 20 20  |aded            |
000053a0  20 20 20 20 20 7c 0a 20  7c 20 20 20 20 20 20 20  |     |. |       |
000053b0  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
000053c0  20 20 20 20 20 20 20 20  20 20 20 20 7c 20 2b 34  |            | +4|
000053d0  20 74 69 6c 65 64 2f 63  65 6e 74 72 65 64 20 20  | tiled/centred  |
000053e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000053f0  20 20 20 7c 0a 20 7c 5f  5f 5f 5f 5f 5f 5f 5f 5f  |   |. |_________|
00005400  5f 5f 5f 5f 5f 5f 5f 7c  5f 5f 5f 5f 5f 5f 5f 5f  |_______|________|
00005410  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 7c 5f 5f 5f 5f 5f  |__________|_____|
00005420  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00005440  5f 7c 0a 20 7c 20 20 20  20 20 20 20 20 20 20 20  |_|. |           |
00005450  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00005460  20 20 20 20 20 20 20 20  7c 20 20 20 20 20 20 20  |        |       |
00005470  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005480  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00005490  0a 20 7c 20 20 20 20 20  20 20 34 20 20 20 20 20  |. |       4     |
000054a0  20 20 20 7c 20 50 6c 61  63 65 20 69 74 65 6d 20  |   | Place item |
000054b0  6f 6e 20 20 20 20 7c 20  2b 30 20 20 73 70 72 69  |on    | +0  spri|
000054c0  74 65 20 6e 61 6d 65 20  20 20 20 20 20 20 20 20  |te name         |
000054d0  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 0a 20  |             |. |
000054e0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
000054f0  20 7c 20 64 65 73 6b 74  6f 70 20 20 20 20 20 20  | | desktop      |
00005500  20 20 20 20 7c 20 2b 31  32 20 69 63 6f 6e 20 6e  |    | +12 icon n|
00005510  61 6d 65 20 28 66 69 6c  65 6e 61 6d 65 29 20 20  |ame (filename)  |
00005520  20 20 20 20 20 20 20 20  20 20 20 7c 0a 20 7c 20  |           |. | |
00005530  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00005540  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005550  20 20 7c 20 2b 32 34 20  78 20 63 6f 2d 6f 72 64  |  | +24 x co-ord|
00005560  69 6e 61 74 65 20 20 20  20 20 20 20 20 20 20 20  |inate           |
00005570  20 20 20 20 20 20 20 20  20 7c 0a 20 7c 20 20 20  |         |. |   |
00005580  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |             |  |
00005590  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000055a0  7c 20 2b 32 38 20 79 20  63 6f 2d 6f 72 64 69 6e  || +28 y co-ordin|
000055b0  61 74 65 20 20 20 20 20  20 20 20 20 20 20 20 20  |ate             |
000055c0  20 20 20 20 20 20 20 7c  0a 20 7c 20 20 20 20 20  |       |. |     |
000055d0  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
000055e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7c 20  |              | |
000055f0  2b 33 32 20 69 6e 74 65  72 6e 61 6c 20 74 79 70  |+32 internal typ|
00005600  65 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |e               |
00005610  20 20 20 20 20 7c 0a 20  7c 20 20 20 20 20 20 20  |     |. |       |
00005620  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00005630  20 20 20 20 20 20 20 20  20 20 20 20 7c 20 2b 33  |            | +3|
00005640  36 20 75 73 65 20 6c 61  73 74 20 62 69 74 20 20  |6 use last bit  |
00005650  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005660  20 20 20 7c 0a 20 7c 5f  5f 5f 5f 5f 5f 5f 5f 5f  |   |. |_________|
00005670  5f 5f 5f 5f 5f 5f 5f 7c  5f 5f 5f 5f 5f 5f 5f 5f  |_______|________|
00005680  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 7c 5f 5f 5f 5f 5f  |__________|_____|
00005690  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
000056b0  5f 7c 0a 20 7c 20 20 20  20 20 20 20 20 20 20 20  |_|. |           |
000056c0  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
000056d0  20 20 20 20 20 20 20 20  7c 20 20 20 20 20 20 20  |        |       |
000056e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000056f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00005700  0a 20 7c 20 20 20 20 20  20 20 35 20 20 20 20 20  |. |       5     |
00005710  20 20 20 7c 20 44 65 6c  65 74 65 20 69 63 6f 6e  |   | Delete icon|
00005720  20 20 20 20 20 20 7c 20  2b 30 20 69 63 6f 6e 20  |      | +0 icon |
00005730  68 61 6e 64 6c 65 20 20  20 20 20 20 20 20 20 20  |handle          |
00005740  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 0a 20  |             |. |
00005750  7c 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  ||_______________|
00005760  5f 7c 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_|______________|
00005770  5f 5f 5f 5f 7c 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |____|___________|
00005780  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00005790  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 7c 0a 20 7c 20  |___________|. | |
000057a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
000057b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000057c0  20 20 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |  |             |
000057d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000057e0  20 20 20 20 20 20 20 20  20 7c 0a 20 7c 20 20 20  |         |. |   |
000057f0  20 20 20 20 36 20 20 20  20 20 20 20 20 7c 20 4f  |    6        | O|
00005800  70 65 6e 20 6d 61 69 6e  20 6d 65 6e 75 20 20 20  |pen main menu   |
00005810  7c 20 2b 30 20 78 20 63  6f 2d 6f 72 64 69 6e 61  || +0 x co-ordina|
00005820  74 65 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |te              |
00005830  20 20 20 20 20 20 20 7c  0a 20 7c 20 20 20 20 20  |       |. |     |
00005840  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00005850  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7c 20  |              | |
00005860  2b 34 20 79 20 63 6f 2d  6f 72 64 69 6e 61 74 65  |+4 y co-ordinate|
00005870  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005880  20 20 20 20 20 7c 0a 20  7c 5f 5f 5f 5f 5f 5f 5f  |     |. |_______|
00005890  5f 5f 5f 5f 5f 5f 5f 5f  5f 7c 5f 5f 5f 5f 5f 5f  |_________|______|
000058a0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 7c 5f 5f 5f  |____________|___|
000058b0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
000058d0  5f 5f 5f 7c 0a 20 7c 20  20 20 20 20 20 20 20 20  |___|. |         |
000058e0  20 20 20 20 20 20 20 7c  20 20 20 20 20 20 20 20  |       |        |
000058f0  20 20 20 20 20 20 20 20  20 20 7c 20 20 20 20 20  |          |     |
00005900  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005920  20 7c 0a 20 7c 20 20 20  20 20 20 20 37 20 20 20  | |. |       7   |
00005930  20 20 20 20 20 7c 20 43  72 65 61 74 65 20 64 72  |     | Create dr|
00005940  61 67 20 20 20 20 20 20  7c 20 2b 30 20 69 63 6f  |ag      | +0 ico|
00005950  6e 20 74 6f 20 75 73 65  20 66 6f 72 20 64 72 61  |n to use for dra|
00005960  67 20 62 6f 78 20 20 20  20 20 20 20 20 20 20 7c  |g box          ||
00005970  0a 20 7c 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |. |_____________|
00005980  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00005990  5f 5f 5f 5f 5f 5f 7c 5f  5f 5f 5f 5f 5f 5f 5f 5f  |______|_________|
000059a0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
000059b0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 0a 20  |_____________|. |
000059c0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
000059d0  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | |              |
000059e0  20 20 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |    |           |
000059f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005a00  20 20 20 20 20 20 20 20  20 20 20 7c 0a 20 7c 20  |           |. | |
00005a10  20 20 20 20 20 20 38 20  20 20 20 20 20 20 20 7c  |      8        ||
00005a20  20 53 65 6c 65 63 74 20  28 69 6e 76 65 72 74 29  | Select (invert)|
00005a30  20 20 7c 20 2b 30 20 69  63 6f 6e 20 68 61 6e 64  |  | +0 icon hand|
00005a40  6c 65 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |le              |
00005a50  20 20 20 20 20 20 20 20  20 7c 0a 20 7c 20 20 20  |         |. |   |
00005a60  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 69  |             | i|
00005a70  63 6f 6e 20 20 20 20 20  20 20 20 20 20 20 20 20  |con             |
00005a80  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00005a90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005aa0  20 20 20 20 20 20 20 7c  0a 20 7c 5f 5f 5f 5f 5f  |       |. |_____|
00005ab0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 7c 5f 5f 5f 5f  |___________|____|
00005ac0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 7c 5f  |______________|_|
00005ad0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00005af0  5f 5f 5f 5f 5f 7c 0a 20  7c 20 20 20 20 20 20 20  |_____|. |       |
00005b00  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00005b10  20 20 20 20 20 20 20 20  20 20 20 20 7c 20 20 20  |            |   |
00005b20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005b40  20 20 20 7c 0a 20 7c 20  20 20 20 20 20 20 39 20  |   |. |       9 |
00005b50  20 20 20 20 20 20 20 7c  20 4f 70 65 6e 20 70 61  |       | Open pa|
00005b60  72 65 6e 74 20 20 20 20  20 20 7c 20 2b 30 20 46  |rent      | +0 F|
00005b70  55 4c 4c 20 66 69 6c 65  6e 61 6d 65 20 20 20 20  |ULL filename    |
00005b80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005b90  20 7c 0a 20 7c 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  | |. |___________|
00005ba0  5f 5f 5f 5f 5f 7c 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_____|__________|
00005bb0  5f 5f 5f 5f 5f 5f 5f 5f  7c 5f 5f 5f 5f 5f 5f 5f  |________|_______|
00005bc0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00005bd0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 7c  |_______________||
00005be0  0a 20 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |. |             |
00005bf0  20 20 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  |   |            |
00005c00  20 20 20 20 20 20 7c 20  20 20 20 20 20 20 20 20  |      |         |
00005c10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005c20  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 0a 20  |             |. |
00005c30  7c 20 20 20 20 20 20 31  30 20 20 20 20 20 20 20  ||      10       |
00005c40  20 7c 20 53 6c 61 62 20  69 63 6f 6e 20 20 20 20  | | Slab icon    |
00005c50  20 20 20 20 7c 20 2b 30  20 77 69 6e 64 6f 77 20  |    | +0 window |
00005c60  68 61 6e 64 6c 65 20 20  20 20 20 20 20 20 20 20  |handle          |
00005c70  20 20 20 20 20 20 20 20  20 20 20 7c 0a 20 7c 20  |           |. | |
00005c80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00005c90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005ca0  20 20 7c 20 2b 34 20 69  63 6f 6e 20 68 61 6e 64  |  | +4 icon hand|
00005cb0  6c 65 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |le              |
00005cc0  20 20 20 20 20 20 20 20  20 7c 0a 20 7c 20 20 20  |         |. |   |
00005cd0  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |             |  |
00005ce0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005cf0  7c 20 2b 38 20 62 75 74  74 6f 6e 20 28 34 20 74  || +8 button (4 t|
00005d00  6f 20 73 6c 61 62 20 69  66 20 6e 6f 74 20 63 6c  |o slab if not cl|
00005d10  69 63 6b 65 64 29 20 7c  0a 20 7c 5f 5f 5f 5f 5f  |icked) |. |_____|
00005d20  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 7c 5f 5f 5f 5f  |___________|____|
00005d30  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 7c 5f  |______________|_|
00005d40  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00005d60  5f 5f 5f 5f 5f 7c 0a 20  7c 20 20 20 20 20 20 20  |_____|. |       |
00005d70  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00005d80  20 20 20 20 20 20 20 20  20 20 20 20 7c 20 20 20  |            |   |
00005d90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005db0  20 20 20 7c 0a 20 7c 20  20 20 20 20 20 31 31 20  |   |. |      11 |
00005dc0  20 20 20 20 20 20 20 7c  20 47 65 74 20 68 61 6e  |       | Get han|
00005dd0  64 6c 65 20 6f 66 20 20  20 20 7c 20 2b 30 20 69  |dle of    | +0 i|
00005de0  6e 74 65 72 6e 61 6c 20  74 79 70 65 20 20 20 20  |nternal type    |
00005df0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005e00  20 7c 0a 20 7c 20 20 20  20 20 20 20 20 20 20 20  | |. |           |
00005e10  20 20 20 20 20 7c 20 69  63 6f 6e 20 67 69 76 65  |     | icon give|
00005e20  6e 20 74 79 70 65 20 20  7c 20 20 20 20 20 20 20  |n type  |       |
00005e30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005e40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00005e50  0a 20 7c 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |. |_____________|
00005e60  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00005e70  5f 5f 5f 5f 5f 5f 7c 5f  5f 5f 5f 5f 5f 5f 5f 5f  |______|_________|
00005e80  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00005e90  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 0a 20  |_____________|. |
00005ea0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00005eb0  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | |              |
00005ec0  20 20 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |    |           |
00005ed0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005ee0  20 20 20 20 20 20 20 20  20 20 20 7c 0a 20 7c 20  |           |. | |
00005ef0  20 20 20 20 20 31 32 20  20 20 20 20 20 20 20 7c  |     12        ||
00005f00  20 53 65 6e 64 20 4d 65  73 73 61 67 65 20 20 20  | Send Message   |
00005f10  20 20 7c 20 2b 30 20 6d  65 73 73 61 67 65 20 6e  |  | +0 message n|
00005f20  75 6d 62 65 72 20 20 20  20 20 20 20 20 20 20 20  |umber           |
00005f30  20 20 20 20 20 20 20 20  20 7c 0a 20 7c 20 20 20  |         |. |   |
00005f40  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |             |  |
00005f50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005f60  7c 20 2b 34 20 70 6f 69  6e 74 65 72 20 74 6f 20  || +4 pointer to |
00005f70  66 75 72 74 68 65 72 20  70 61 72 61 6d 65 74 65  |further paramete|
00005f80  72 20 62 6c 6f 63 6b 7c  0a 20 7c 5f 5f 5f 5f 5f  |r block|. |_____|
00005f90  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 7c 5f 5f 5f 5f  |___________|____|
00005fa0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 7c 5f  |______________|_|
00005fb0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00005fd0  5f 5f 5f 5f 5f 7c 0a 20  7c 20 20 20 20 20 20 20  |_____|. |       |
00005fe0  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00005ff0  20 20 20 20 20 20 20 20  20 20 20 20 7c 20 20 20  |            |   |
00006000  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00006020  20 20 20 7c 0a 20 7c 20  20 20 20 20 20 31 33 20  |   |. |      13 |
00006030  20 20 20 20 20 20 20 7c  20 50 75 74 20 74 65 78  |       | Put tex|
00006040  74 20 69 6e 20 69 63 6f  6e 20 7c 20 2b 30 20 77  |t in icon | +0 w|
00006050  69 6e 64 6f 77 20 68 61  6e 64 6c 65 20 20 20 20  |indow handle    |
00006060  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006070  20 7c 0a 20 7c 20 20 20  20 20 20 20 20 20 20 20  | |. |           |
00006080  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00006090  20 20 20 20 20 20 20 20  7c 20 2b 34 20 69 63 6f  |        | +4 ico|
000060a0  6e 20 68 61 6e 64 6c 65  20 20 20 20 20 20 20 20  |n handle        |
000060b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
000060c0  0a 20 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |. |             |
000060d0  20 20 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  |   |            |
000060e0  20 20 20 20 20 20 7c 20  2b 38 20 74 65 78 74 20  |      | +8 text |
000060f0  74 6f 20 70 75 74 20 69  6e 20 69 63 6f 6e 20 20  |to put in icon  |
00006100  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 0a 20  |             |. |
00006110  7c 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  ||_______________|
00006120  5f 7c 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |_|______________|
00006130  5f 5f 5f 5f 7c 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |____|___________|
00006140  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00006150  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 7c 0a 20 7c 20  |___________|. | |
00006160  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00006170  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006180  20 20 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |  |             |
00006190  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000061a0  20 20 20 20 20 20 20 20  20 7c 0a 20 7c 20 20 20  |         |. |   |
000061b0  20 20 20 31 34 20 20 20  20 20 20 20 20 7c 20 52  |   14        | R|
000061c0  65 61 64 20 69 63 6f 6e  20 74 65 78 74 20 20 20  |ead icon text   |
000061d0  7c 20 2b 30 20 77 69 6e  64 6f 77 20 68 61 6e 64  || +0 window hand|
000061e0  6c 65 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |le              |
000061f0  20 20 20 20 20 20 20 7c  0a 20 7c 20 20 20 20 20  |       |. |     |
00006200  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00006210  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7c 20  |              | |
00006220  2b 34 20 69 63 6f 6e 20  68 61 6e 64 6c 65 20 20  |+4 icon handle  |
00006230  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006240  20 20 20 20 20 7c 0a 20  7c 5f 5f 5f 5f 5f 5f 5f  |     |. |_______|
00006250  5f 5f 5f 5f 5f 5f 5f 5f  5f 7c 5f 5f 5f 5f 5f 5f  |_________|______|
00006260  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 7c 5f 5f 5f  |____________|___|
00006270  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00006290  5f 5f 5f 7c 0a 20 7c 20  20 20 20 20 20 20 20 20  |___|. |         |
000062a0  20 20 20 20 20 20 20 7c  20 20 20 20 20 20 20 20  |       |        |
000062b0  20 20 20 20 20 20 20 20  20 20 7c 20 20 20 20 20  |          |     |
000062c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000062e0  20 7c 0a 20 7c 20 20 20  20 20 20 31 35 20 20 20  | |. |      15   |
000062f0  20 20 20 20 20 7c 20 52  65 74 75 72 6e 20 6c 61  |     | Return la|
00006300  73 74 20 62 69 74 20 20  7c 20 2b 30 20 74 65 78  |st bit  | +0 tex|
00006310  74 20 73 74 72 69 6e 67  20 74 6f 20 75 73 65 20  |t string to use |
00006320  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00006330  0a 20 7c 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |. |_____________|
00006340  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
00006350  5f 5f 5f 5f 5f 5f 7c 5f  5f 5f 5f 5f 5f 5f 5f 5f  |______|_________|
00006360  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00006370  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 0a 20  |_____________|. |
00006380  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00006390  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | |              |
000063a0  20 20 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |    |           |
000063b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000063c0  20 20 20 20 20 20 20 20  20 20 20 7c 0a 20 7c 20  |           |. | |
000063d0  20 20 20 20 20 31 36 20  20 20 20 20 20 20 20 7c  |     16        ||
000063e0  20 52 65 74 75 72 6e 20  66 69 72 73 74 20 62 69  | Return first bi|
000063f0  74 20 7c 20 2b 30 20 74  65 78 74 20 73 74 72 69  |t | +0 text stri|
00006400  6e 67 20 74 6f 20 75 73  65 20 20 20 20 20 20 20  |ng to use       |
00006410  20 20 20 20 20 20 20 20  20 7c 0a 20 7c 5f 5f 5f  |         |. |___|
00006420  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 5f 5f  |_____________|__|
00006430  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00006440  7c 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  ||_______________|
00006450  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00006460  5f 5f 5f 5f 5f 5f 5f 7c  0a 20 7c 20 20 20 20 20  |_______|. |     |
00006470  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00006480  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7c 20  |              | |
00006490  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000064b0  20 20 20 20 20 7c 0a 20  7c 20 20 20 20 20 20 31  |     |. |      1|
000064c0  37 20 20 20 20 20 20 20  20 7c 20 53 65 74 20 69  |7        | Set i|
000064d0  63 6f 6e 20 73 70 72 69  74 65 20 20 7c 20 2b 30  |con sprite  | +0|
000064e0  20 77 69 6e 64 6f 77 20  68 61 6e 64 6c 65 20 20  | window handle  |
000064f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006500  20 20 20 7c 0a 20 7c 20  20 20 20 20 20 20 20 20  |   |. |         |
00006510  20 20 20 20 20 20 20 7c  20 20 20 20 20 20 20 20  |       |        |
00006520  20 20 20 20 20 20 20 20  20 20 7c 20 2b 34 20 69  |          | +4 i|
00006530  63 6f 6e 20 68 61 6e 64  6c 65 20 20 20 20 20 20  |con handle      |
00006540  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006550  20 7c 0a 20 7c 20 20 20  20 20 20 20 20 20 20 20  | |. |           |
00006560  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00006570  20 20 20 20 20 20 20 20  7c 20 2b 38 20 73 70 72  |        | +8 spr|
00006580  69 74 65 20 6e 61 6d 65  20 20 20 20 20 20 20 20  |ite name        |
00006590  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
000065a0  0a 20 7c 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |. |_____________|
000065b0  5f 5f 5f 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |___|____________|
000065c0  5f 5f 5f 5f 5f 5f 7c 5f  5f 5f 5f 5f 5f 5f 5f 5f  |______|_________|
000065d0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
000065e0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 7c 0a 20  |_____________|. |
000065f0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00006600  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | |              |
00006610  20 20 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |    |           |
00006620  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006630  20 20 20 20 20 20 20 20  20 20 20 7c 0a 20 20 5c  |           |.  \|
00006640  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00006650  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006660  20 20 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |  |             |
00006670  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006680  20 20 20 20 20 20 20 20  2f 0a 20 20 20 5c 5f 5f  |        /.   \__|
00006690  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 7c 5f 5f 5f  |____________|___|
000066a0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 7c  |_______________||
000066b0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
000066d0  5f 5f 5f 5f 2f 0a 0a 54  68 65 72 65 20 66 6f 6c  |____/..There fol|
000066e0  6c 6f 77 73 20 61 20 64  65 73 63 72 69 70 74 69  |lows a descripti|
000066f0  6f 6e 20 6f 66 20 65 61  63 68 20 6f 66 20 74 68  |on of each of th|
00006700  65 20 31 37 20 69 6e 74  65 72 66 61 63 65 20 63  |e 17 interface c|
00006710  6f 64 65 73 2e 0a 0a 30  20 2d 20 46 61 74 61 6c  |odes...0 - Fatal|
00006720  20 65 72 72 6f 72 0a 7e  7e 7e 7e 7e 7e 7e 7e 7e  | error.~~~~~~~~~|
00006730  7e 7e 7e 7e 7e 7e 0a 0a  45 6e 74 72 79 20 20 3a  |~~~~~~..Entry  :|
00006740  0a 20 20 20 20 20 20 20  20 20 2b 30 20 65 72 72  |.         +0 err|
00006750  6f 72 20 74 65 78 74 0a  45 78 69 74 20 20 20 3a  |or text.Exit   :|
00006760  0a 20 20 20 20 20 20 20  20 20 44 6f 65 73 6e 27  |.         Doesn'|
00006770  74 0a 41 63 74 69 6f 6e  20 3a 0a 20 20 20 20 20  |t.Action :.     |
00006780  20 20 20 20 43 72 65 61  74 65 73 20 61 6e 20 65  |    Creates an e|
00006790  72 72 6f 72 20 62 6f 78  20 77 69 74 68 20 74 68  |rror box with th|
000067a0  65 20 74 65 78 74 20 70  6f 69 6e 74 65 64 20 74  |e text pointed t|
000067b0  6f 20 62 79 20 62 6c 6f  63 6b 2b 30 2c 20 61 6e  |o by block+0, an|
000067c0  64 20 74 68 65 6e 0a 71  75 69 74 73 20 21 53 74  |d then.quits !St|
000067d0  69 63 6b 79 42 72 64 2c  20 66 69 72 73 74 20 73  |ickyBrd, first s|
000067e0  65 6e 64 69 6e 67 20 61  20 70 6f 6c 6c 20 63 6f  |ending a poll co|
000067f0  64 65 20 6e 75 6d 62 65  72 20 31 33 20 28 71 75  |de number 13 (qu|
00006800  69 74 29 20 74 6f 20 61  6c 6c 20 6d 6f 64 75 6c  |it) to all modul|
00006810  65 73 2e 0a 49 66 20 79  6f 75 72 20 6d 6f 64 75  |es..If your modu|
00006820  6c 65 20 63 72 65 61 74  65 64 20 74 68 65 20 66  |le created the f|
00006830  61 74 61 6c 20 65 72 72  6f 72 20 74 68 65 6e 20  |atal error then |
00006840  64 6f 6e 27 74 20 72 65  73 70 6f 6e 64 20 74 6f  |don't respond to|
00006850  20 74 68 69 73 20 70 6f  6c 6c 2e 0a 0a 31 20 2d  | this poll...1 -|
00006860  20 4e 6f 6e 2d 66 61 74  61 6c 20 65 72 72 6f 72  | Non-fatal error|
00006870  0a 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |.~~~~~~~~~~~~~~~|
00006880  7e 7e 7e 7e 0a 0a 45 6e  74 72 79 20 20 3a 0a 20  |~~~~..Entry  :. |
00006890  20 20 20 20 20 20 20 20  2b 30 20 65 72 72 6f 72  |        +0 error|
000068a0  20 74 65 78 74 0a 45 78  69 74 20 20 20 3a 0a 20  | text.Exit   :. |
000068b0  20 20 20 20 20 20 20 20  4e 6f 6e 65 0a 41 63 74  |        None.Act|
000068c0  69 6f 6e 20 3a 0a 20 20  20 20 20 20 20 20 20 53  |ion :.         S|
000068d0  69 6d 69 6c 61 72 20 74  6f 20 61 62 6f 76 65 2c  |imilar to above,|
000068e0  20 62 75 74 20 64 6f 65  73 6e 27 74 20 71 75 69  | but doesn't qui|
000068f0  74 20 21 53 74 69 63 6b  79 42 72 64 2e 20 20 4e  |t !StickyBrd.  N|
00006900  6f 20 6d 65 73 73 61 67  65 20 69 73 20 73 65 6e  |o message is sen|
00006910  74 0a 72 6f 75 6e 64 2c  20 61 73 20 21 53 74 69  |t.round, as !Sti|
00006920  63 6b 79 42 72 64 20 69  73 20 6e 6f 74 20 71 75  |ckyBrd is not qu|
00006930  69 74 74 69 6e 67 2e 0a  0a 32 20 2d 20 52 65 64  |itting...2 - Red|
00006940  72 61 77 20 62 61 63 6b  67 72 6f 75 6e 64 20 77  |raw background w|
00006950  69 6e 64 6f 77 0a 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |indow.~~~~~~~~~~|
00006960  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00006970  7e 7e 0a 0a 45 6e 74 72  79 20 20 3a 0a 20 20 20  |~~..Entry  :.   |
00006980  20 20 20 20 20 20 4e 6f  6e 65 0a 45 78 69 74 20  |      None.Exit |
00006990  20 20 3a 0a 20 20 20 20  20 20 20 20 20 4e 6f 6e  |  :.         Non|
000069a0  65 0a 41 63 74 69 6f 6e  20 3a 0a 20 20 20 20 20  |e.Action :.     |
000069b0  20 20 20 20 52 65 64 72  61 77 73 20 74 68 65 20  |    Redraws the |
000069c0  62 61 63 6b 64 72 6f 70  2c 20 61 6e 64 20 61 6e  |backdrop, and an|
000069d0  79 20 69 63 6f 6e 73 20  6f 6e 20 74 68 65 20 64  |y icons on the d|
000069e0  65 73 6b 74 6f 70 0a 0a  33 20 2d 20 52 65 74 75  |esktop..3 - Retu|
000069f0  72 6e 20 62 61 63 6b 64  72 6f 70 20 66 6c 61 67  |rn backdrop flag|
00006a00  73 0a 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |s.~~~~~~~~~~~~~~|
00006a10  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 0a 0a 45 6e 74  |~~~~~~~~~~~..Ent|
00006a20  72 79 20 20 3a 20 0a 20  20 20 20 20 20 20 20 20  |ry  : .         |
00006a30  4e 6f 6e 65 0a 45 78 69  74 20 20 20 3a 0a 20 20  |None.Exit   :.  |
00006a40  20 20 20 20 20 20 20 2b  30 20 6c 6f 61 64 65 64  |       +0 loaded|
00006a50  2f 6e 6f 74 20 6c 6f 61  64 65 64 0a 20 20 20 20  |/not loaded.    |
00006a60  20 20 20 20 20 2b 34 20  74 69 6c 65 64 2f 63 65  |     +4 tiled/ce|
00006a70  6e 74 72 65 64 0a 41 63  74 69 6f 6e 20 3a 0a 20  |ntred.Action :. |
00006a80  20 20 20 20 20 20 20 20  52 65 74 75 72 6e 73 20  |        Returns |
00006a90  77 69 74 68 20 69 6e 66  6f 72 6d 61 74 69 6f 6e  |with information|
00006aa0  20 6f 6e 20 63 75 72 72  65 6e 74 20 62 61 63 6b  | on current back|
00006ab0  64 72 6f 70 2e 20 20 49  66 20 74 68 65 72 65 20  |drop.  If there |
00006ac0  69 73 20 6f 6e 65 0a 6c  6f 61 64 65 64 20 74 68  |is one.loaded th|
00006ad0  65 6e 20 62 6c 6f 63 6b  2b 30 20 77 69 6c 6c 20  |en block+0 will |
00006ae0  65 71 75 61 6c 20 31 2c  20 6f 74 68 65 72 77 69  |equal 1, otherwi|
00006af0  73 65 20 69 74 20 77 69  6c 6c 20 63 6f 6e 74 61  |se it will conta|
00006b00  69 6e 20 30 20 61 6e 64  0a 69 66 20 74 69 6c 65  |in 0 and.if tile|
00006b10  64 20 69 73 20 73 65 6c  65 63 74 65 64 20 74 68  |d is selected th|
00006b20  65 6e 20 62 6c 6f 63 6b  2b 34 20 77 69 6c 6c 20  |en block+4 will |
00006b30  62 65 20 31 2c 20 6f 74  68 65 72 77 69 73 65 20  |be 1, otherwise |
00006b40  28 74 68 65 20 62 61 63  6b 64 72 6f 70 20 69 73  |(the backdrop is|
00006b50  0a 63 65 6e 74 72 65 64  29 20 69 74 20 77 69 6c  |.centred) it wil|
00006b60  6c 20 62 65 20 30 0a 0a  34 20 2d 20 50 6c 61 63  |l be 0..4 - Plac|
00006b70  65 20 69 63 6f 6e 20 6f  6e 20 64 65 73 6b 74 6f  |e icon on deskto|
00006b80  70 0a 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |p.~~~~~~~~~~~~~~|
00006b90  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 0a 0a 45 6e 74  |~~~~~~~~~~~..Ent|
00006ba0  72 79 20 20 3a 0a 20 20  20 20 20 20 20 20 20 2b  |ry  :.         +|
00006bb0  30 20 20 73 70 72 69 74  65 20 6e 61 6d 65 0a 20  |0  sprite name. |
00006bc0  20 20 20 20 20 20 20 20  2b 31 32 20 69 63 6f 6e  |        +12 icon|
00006bd0  20 28 66 69 6c 65 29 20  6e 61 6d 65 0a 20 20 20  | (file) name.   |
00006be0  20 20 20 20 20 20 2b 32  34 20 78 20 63 6f 2d 6f  |      +24 x co-o|
00006bf0  72 64 69 6e 61 74 65 0a  20 20 20 20 20 20 20 20  |rdinate.        |
00006c00  20 2b 32 38 20 79 20 63  6f 2d 6f 72 64 69 6e 61  | +28 y co-ordina|
00006c10  74 65 0a 20 20 20 20 20  20 20 20 20 2b 33 32 20  |te.         +32 |
00006c20  69 6e 74 65 72 6e 61 6c  20 74 79 70 65 0a 20 20  |internal type.  |
00006c30  20 20 20 20 20 20 20 2b  33 36 20 75 73 65 20 6c  |       +36 use l|
00006c40  61 73 74 20 62 69 74 0a  45 78 69 74 20 20 20 3a  |ast bit.Exit   :|
00006c50  0a 20 20 20 20 20 20 20  20 20 4e 6f 6e 65 0a 41  |.         None.A|
00006c60  63 74 69 6f 6e 20 3a 0a  20 20 20 20 20 20 20 20  |ction :.        |
00006c70  20 50 6c 61 63 65 73 20  61 6e 20 69 63 6f 6e 20  | Places an icon |
00006c80  6f 6e 20 74 68 65 20 64  65 73 6b 74 6f 70 20 75  |on the desktop u|
00006c90  73 69 6e 67 20 74 68 65  20 70 61 73 73 65 64 20  |sing the passed |
00006ca0  70 61 72 61 6d 65 74 65  72 73 2e 20 20 4f 6e 6c  |parameters.  Onl|
00006cb0  79 0a 27 55 73 65 20 6c  61 73 74 20 62 69 74 27  |y.'Use last bit'|
00006cc0  20 6d 69 67 68 74 20 6e  65 65 64 20 65 78 70 6c  | might need expl|
00006cd0  61 69 6e 69 6e 67 20 61  6e 64 20 69 74 20 72 65  |aining and it re|
00006ce0  66 65 72 73 20 74 6f 20  77 68 65 74 68 65 72 20  |fers to whether |
00006cf0  74 6f 20 73 65 70 65 72  61 74 65 20 74 68 65 0a  |to seperate the.|
00006d00  62 69 74 73 20 6f 66 20  74 68 65 20 6e 61 6d 65  |bits of the name|
00006d10  3a 20 66 6f 72 20 65 78  61 6d 70 6c 65 2c 20 69  |: for example, i|
00006d20  66 20 74 68 65 20 6e 61  6d 65 20 77 61 73 20 2d  |f the name was -|
00006d30  0a 0a 20 74 65 73 74 6e  61 6d 65 2e 74 65 73 74  |.. testname.test|
00006d40  0a 0a 61 6e 64 20 75 73  65 20 6c 61 73 74 20 62  |..and use last b|
00006d50  69 74 20 77 61 73 20 73  65 6c 65 63 74 65 64 20  |it was selected |
00006d60  74 68 65 20 77 6f 72 64  20 27 74 65 73 74 27 20  |the word 'test' |
00006d70  77 6f 75 6c 64 20 62 65  20 70 72 69 6e 74 65 64  |would be printed|
00006d80  20 62 65 6c 6f 77 20 74  68 65 0a 69 63 6f 6e 2c  | below the.icon,|
00006d90  20 6f 74 68 65 72 77 69  73 65 20 74 68 65 20 66  | otherwise the f|
00006da0  75 6c 6c 20 27 74 65 73  74 6e 61 6d 65 2e 74 65  |ull 'testname.te|
00006db0  73 74 27 20 77 6f 75 6c  64 20 62 65 20 70 72 69  |st' would be pri|
00006dc0  6e 74 65 64 2e 20 20 46  69 6c 65 6e 61 6d 65 73  |nted.  Filenames|
00006dd0  20 68 61 76 65 0a 74 68  69 73 20 62 69 74 20 73  | have.this bit s|
00006de0  65 74 2e 0a 0a 35 20 2d  20 52 65 6d 6f 76 65 20  |et...5 - Remove |
00006df0  69 63 6f 6e 20 66 72 6f  6d 20 64 65 73 6b 74 6f  |icon from deskto|
00006e00  70 0a 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |p.~~~~~~~~~~~~~~|
00006e10  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 0a 0a  |~~~~~~~~~~~~~~..|
00006e20  45 6e 74 72 79 20 20 3a  0a 20 20 20 20 20 20 20  |Entry  :.       |
00006e30  20 20 2b 30 20 69 63 6f  6e 20 68 61 6e 64 6c 65  |  +0 icon handle|
00006e40  20 28 70 65 72 68 61 70  73 20 72 65 74 75 72 6e  | (perhaps return|
00006e50  65 64 20 62 79 20 6d 6f  64 6c 5f 69 6e 74 65 72  |ed by modl_inter|
00006e60  66 61 63 65 20 31 31 29  0a 45 78 69 74 20 20 20  |face 11).Exit   |
00006e70  3a 0a 20 20 20 20 20 20  20 20 20 4e 6f 6e 65 0a  |:.         None.|
00006e80  41 63 74 69 6f 6e 20 3a  0a 20 20 20 20 20 20 20  |Action :.       |
00006e90  20 20 52 65 6d 6f 76 65  73 20 74 68 65 20 67 69  |  Removes the gi|
00006ea0  76 65 6e 20 69 63 6f 6e  20 66 72 6f 6d 20 74 68  |ven icon from th|
00006eb0  65 20 64 65 73 6b 74 6f  70 2e 0a 0a 36 20 2d 20  |e desktop...6 - |
00006ec0  4f 70 65 6e 20 6d 61 69  6e 20 6d 65 6e 75 20 61  |Open main menu a|
00006ed0  74 20 67 69 76 65 6e 20  63 6f 2d 6f 72 64 69 6e  |t given co-ordin|
00006ee0  61 74 65 73 0a 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |ates.~~~~~~~~~~~|
00006ef0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00006f00  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 0a 0a 45  |~~~~~~~~~~~~~..E|
00006f10  6e 74 72 79 20 20 3a 0a  20 20 20 20 20 20 20 20  |ntry  :.        |
00006f20  20 2b 30 20 78 20 63 6f  2d 6f 72 64 69 6e 61 74  | +0 x co-ordinat|
00006f30  65 0a 20 20 20 20 20 20  20 20 20 2b 34 20 79 20  |e.         +4 y |
00006f40  63 6f 2d 6f 72 64 69 6e  61 74 65 0a 45 78 69 74  |co-ordinate.Exit|
00006f50  20 20 20 3a 0a 20 20 20  20 20 20 20 20 20 4e 6f  |   :.         No|
00006f60  6e 65 0a 41 63 74 69 6f  6e 20 3a 0a 20 20 20 20  |ne.Action :.    |
00006f70  20 20 20 20 20 4f 70 65  6e 73 20 74 68 65 20 6d  |     Opens the m|
00006f80  61 69 6e 20 6d 65 6e 75  20 61 74 20 74 68 65 20  |ain menu at the |
00006f90  63 6f 2d 6f 72 64 69 6e  61 74 65 73 20 70 6f 69  |co-ordinates poi|
00006fa0  6e 74 65 64 20 74 6f 20  62 79 20 62 6c 6f 63 6b  |nted to by block|
00006fb0  2b 30 20 61 6e 64 0a 62  6c 6f 63 6b 2b 34 2e 0a  |+0 and.block+4..|
00006fc0  0a 37 20 2d 20 43 72 65  61 74 65 20 64 72 61 67  |.7 - Create drag|
00006fd0  0a 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |.~~~~~~~~~~~~~~~|
00006fe0  0a 0a 45 6e 74 72 79 20  20 3a 0a 20 20 20 20 20  |..Entry  :.     |
00006ff0  20 20 20 20 2b 30 20 69  63 6f 6e 20 68 61 6e 64  |    +0 icon hand|
00007000  6c 65 20 74 6f 20 63 72  65 61 74 65 20 64 72 61  |le to create dra|
00007010  67 20 66 72 6f 6d 0a 45  78 69 74 20 20 20 3a 0a  |g from.Exit   :.|
00007020  20 20 20 20 20 20 20 20  20 4e 6f 6e 65 0a 41 63  |         None.Ac|
00007030  74 69 6f 6e 20 3a 0a 20  20 20 20 20 20 20 20 20  |tion :.         |
00007040  43 72 65 61 74 65 73 20  61 20 64 72 61 67 20 65  |Creates a drag e|
00007050  76 65 6e 74 20 67 69 76  65 6e 20 61 6e 20 69 63  |vent given an ic|
00007060  6f 6e 20 68 61 6e 64 6c  65 2e 20 20 54 68 69 73  |on handle.  This|
00007070  20 77 69 6c 6c 20 62 65  20 72 65 70 6f 72 74 65  | will be reporte|
00007080  64 0a 77 69 74 68 20 70  6f 6c 6c 20 63 6f 64 65  |d.with poll code|
00007090  20 31 30 2c 20 6f 66 20  63 6f 75 72 73 65 2c 20  | 10, of course, |
000070a0  77 68 65 6e 20 74 68 65  20 64 72 61 67 20 66 69  |when the drag fi|
000070b0  6e 69 73 68 65 73 2e 0a  0a 38 20 2d 20 53 65 6c  |nishes...8 - Sel|
000070c0  65 63 74 20 28 69 6e 76  65 72 74 29 20 69 63 6f  |ect (invert) ico|
000070d0  6e 0a 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |n.~~~~~~~~~~~~~~|
000070e0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 0a 0a 45 6e 74 72  |~~~~~~~~~~..Entr|
000070f0  79 20 20 3a 0a 20 20 20  20 20 20 20 20 20 2b 30  |y  :.         +0|
00007100  20 69 63 6f 6e 20 68 61  6e 64 6c 65 0a 45 78 69  | icon handle.Exi|
00007110  74 20 20 20 3a 0a 20 20  20 20 20 20 20 20 20 4e  |t   :.         N|
00007120  6f 6e 65 0a 41 63 74 69  6f 6e 20 3a 0a 20 20 20  |one.Action :.   |
00007130  20 20 20 20 20 20 49 6e  76 65 72 74 73 20 74 68  |      Inverts th|
00007140  65 20 67 69 76 65 6e 20  69 63 6f 6e 2e 0a 0a 39  |e given icon...9|
00007150  20 2d 20 4f 70 65 6e 20  50 61 72 65 6e 74 0a 7e  | - Open Parent.~|
00007160  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 0a 0a  |~~~~~~~~~~~~~~..|
00007170  45 6e 74 72 79 20 20 3a  0a 20 20 20 20 20 20 20  |Entry  :.       |
00007180  20 20 2b 30 20 46 55 4c  4c 20 66 69 6c 65 6e 61  |  +0 FULL filena|
00007190  6d 65 20 28 61 64 66 73  3a 3a 3c 64 69 73 63 20  |me (adfs::<disc |
000071a0  6e 61 6d 65 3e 2e 24 2e  64 69 72 31 2e 64 69 72  |name>.$.dir1.dir|
000071b0  32 2e 66 69 6c 65 20 65  74 63 2e 29 0a 45 78 69  |2.file etc.).Exi|
000071c0  74 20 20 20 3a 0a 20 20  20 20 20 20 20 20 20 4e  |t   :.         N|
000071d0  6f 6e 65 0a 41 63 74 69  6f 6e 20 3a 0a 20 20 20  |one.Action :.   |
000071e0  20 20 20 20 20 20 4f 70  65 6e 73 20 61 20 66 69  |      Opens a fi|
000071f0  6c 65 72 20 77 69 6e 64  6f 77 20 66 6f 72 20 74  |ler window for t|
00007200  68 65 20 64 69 72 65 63  74 6f 72 79 20 63 6f 6e  |he directory con|
00007210  74 61 69 6e 69 6e 67 20  74 68 65 20 66 69 6c 65  |taining the file|
00007220  20 64 65 73 63 72 69 62  65 64 0a 62 79 20 62 6c  | described.by bl|
00007230  6f 63 6b 2b 30 2e 20 20  54 68 69 73 20 73 68 6f  |ock+0.  This sho|
00007240  75 6c 64 20 62 65 20 61  20 46 55 4c 4c 20 66 69  |uld be a FULL fi|
00007250  6c 65 6e 61 6d 65 20 61  73 20 46 69 6c 65 72 5f  |lename as Filer_|
00007260  4f 70 65 6e 44 69 72 20  69 73 20 75 73 65 64 20  |OpenDir is used |
00007270  77 68 69 63 68 0a 69 73  20 72 61 74 68 65 72 20  |which.is rather |
00007280  73 70 65 63 69 66 69 63  2e 20 20 4e 6f 74 65 20  |specific.  Note |
00007290  79 6f 75 20 63 61 6e 6e  6f 74 20 75 73 65 20 73  |you cannot use s|
000072a0  79 73 74 65 6d 20 76 61  72 69 61 62 6c 65 73 20  |ystem variables |
000072b0  28 66 75 74 75 72 65 20  76 65 72 73 69 6f 6e 73  |(future versions|
000072c0  0a 77 69 6c 6c 20 73 75  70 70 6f 72 74 20 74 68  |.will support th|
000072d0  69 73 29 2e 0a 0a 31 30  20 2d 20 53 6c 61 62 20  |is)...10 - Slab |
000072e0  69 63 6f 6e 0a 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |icon.~~~~~~~~~~~|
000072f0  7e 7e 7e 0a 0a 45 6e 74  72 79 20 20 3a 0a 20 20  |~~~..Entry  :.  |
00007300  20 20 20 20 20 20 20 2b  30 20 77 69 6e 64 6f 77  |       +0 window|
00007310  20 68 61 6e 64 6c 65 0a  20 20 20 20 20 20 20 20  | handle.        |
00007320  20 2b 34 20 69 63 6f 6e  20 68 61 6e 64 6c 65 0a  | +4 icon handle.|
00007330  20 20 20 20 20 20 20 20  20 2b 38 20 62 75 74 74  |         +8 butt|
00007340  6f 6e 20 74 79 70 65 0a  45 78 69 74 20 20 20 3a  |on type.Exit   :|
00007350  0a 20 20 20 20 20 20 20  20 20 4e 6f 6e 65 0a 41  |.         None.A|
00007360  63 74 69 6f 6e 20 3a 0a  20 20 20 20 20 20 20 20  |ction :.        |
00007370  20 41 73 20 70 65 72 20  74 68 65 20 69 6e 74 65  | As per the inte|
00007380  72 66 61 63 65 20 6d 61  6e 61 67 65 72 2e 20 20  |rface manager.  |
00007390  49 66 20 79 6f 75 20 68  61 76 65 20 68 61 64 20  |If you have had |
000073a0  61 20 6d 6f 75 73 65 20  63 6c 69 63 6b 0a 72 65  |a mouse click.re|
000073b0  70 6f 72 74 65 64 20 62  79 20 70 6f 6c 6c 20 63  |ported by poll c|
000073c0  6f 64 65 20 35 20 74 68  65 20 70 61 72 61 6d 65  |ode 5 the parame|
000073d0  74 65 72 20 62 6c 6f 63  6b 73 20 61 72 65 20 63  |ter blocks are c|
000073e0  6f 6d 70 61 74 61 62 6c  65 2c 20 73 6f 20 6a 75  |ompatable, so ju|
000073f0  73 74 20 73 65 6e 64 0a  69 74 20 6f 74 68 65 72  |st send.it other|
00007400  77 69 73 65 20 79 6f 75  20 77 69 6c 6c 20 68 61  |wise you will ha|
00007410  76 65 20 74 6f 20 70 72  65 70 61 72 65 20 6f 6e  |ve to prepare on|
00007420  65 2e 20 20 54 6f 20 73  69 6d 75 6c 61 74 65 20  |e.  To simulate |
00007430  61 20 63 6c 69 63 6b 20  77 69 74 68 20 73 65 6c  |a click with sel|
00007440  65 63 74 0a 75 73 65 20  62 75 74 74 6f 6e 20 74  |ect.use button t|
00007450  79 70 65 20 34 2e 0a 0a  31 31 20 2d 20 44 65 74  |ype 4...11 - Det|
00007460  65 72 6d 69 6e 65 20 77  68 65 74 68 65 72 20 61  |ermine whether a|
00007470  6e 20 69 63 6f 6e 20 6f  66 20 74 68 65 20 67 69  |n icon of the gi|
00007480  76 65 6e 20 74 79 70 65  20 65 78 69 73 74 73 0a  |ven type exists.|
00007490  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
*
000074c0  7e 7e 7e 7e 7e 7e 7e 0a  0a 45 6e 74 72 79 20 20  |~~~~~~~..Entry  |
000074d0  3a 0a 20 20 20 20 20 20  20 20 20 2b 30 20 69 6e  |:.         +0 in|
000074e0  74 65 72 6e 61 6c 20 74  79 70 65 0a 45 78 69 74  |ternal type.Exit|
000074f0  20 20 20 3a 0a 20 20 20  20 20 20 20 20 20 4e 6f  |   :.         No|
00007500  6e 65 0a 41 63 74 69 6f  6e 20 3a 0a 20 20 20 20  |ne.Action :.    |
00007510  20 20 20 20 20 52 65 74  75 72 6e 73 20 74 68 65  |     Returns the|
00007520  20 69 63 6f 6e 20 68 61  6e 64 6c 65 20 6f 66 20  | icon handle of |
00007530  74 68 65 20 6c 61 73 74  20 69 63 6f 6e 20 6f 66  |the last icon of|
00007540  20 74 68 65 20 73 70 65  63 69 66 69 63 20 74 79  | the specific ty|
00007550  70 65 20 28 73 61 79 0a  74 68 65 72 65 20 77 65  |pe (say.there we|
00007560  72 65 20 74 77 6f 2c 20  6f 6e 65 20 77 69 74 68  |re two, one with|
00007570  20 68 61 6e 64 6c 65 20  35 20 61 6e 64 20 6f 6e  | handle 5 and on|
00007580  65 20 77 69 74 68 20 68  61 6e 64 6c 65 20 31 30  |e with handle 10|
00007590  2e 20 20 54 68 65 20 6f  6e 65 20 77 69 74 68 0a  |.  The one with.|
000075a0  68 61 6e 64 6c 65 20 31  30 20 77 6f 75 6c 64 20  |handle 10 would |
000075b0  62 65 20 72 65 70 6f 72  74 65 64 29 2c 20 6f 72  |be reported), or|
000075c0  20 30 20 69 66 20 69 74  20 63 6f 75 6c 64 20 6e  | 0 if it could n|
000075d0  6f 74 20 66 69 6e 64 20  61 6e 79 20 69 63 6f 6e  |ot find any icon|
000075e0  73 20 6f 66 20 74 68 61  74 0a 74 79 70 65 2e 0a  |s of that.type..|
000075f0  0a 31 32 20 2d 20 53 65  6e 64 20 4d 65 73 73 61  |.12 - Send Messa|
00007600  67 65 0a 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |ge.~~~~~~~~~~~~~|
00007610  7e 7e 7e 7e 0a 0a 45 6e  74 72 79 20 20 3a 0a 20  |~~~~..Entry  :. |
00007620  20 20 20 20 20 20 20 20  2b 30 20 6d 65 73 73 61  |        +0 messa|
00007630  67 65 20 6e 75 6d 62 65  72 0a 20 20 20 20 20 20  |ge number.      |
00007640  20 20 20 2b 34 20 70 6f  69 6e 74 65 72 20 74 6f  |   +4 pointer to|
00007650  20 6d 65 73 73 61 67 65  20 73 70 65 63 69 66 69  | message specifi|
00007660  63 20 70 61 72 61 6d 65  74 65 72 20 62 6c 6f 63  |c parameter bloc|
00007670  6b 0a 45 78 69 74 20 20  20 3a 0a 20 20 20 20 20  |k.Exit   :.     |
00007680  20 20 20 20 20 4e 6f 6e  65 0a 41 63 74 69 6f 6e  |     None.Action|
00007690  20 3a 0a 20 20 20 20 20  20 20 20 20 43 72 65 61  | :.         Crea|
000076a0  74 65 73 20 61 20 6d 65  73 73 61 67 65 20 6f 66  |tes a message of|
000076b0  20 74 68 65 20 67 69 76  65 6e 20 74 79 70 65 2e  | the given type.|
000076c0  20 20 54 68 69 73 20 6f  70 65 6e 73 20 74 68 65  |  This opens the|
000076d0  20 77 61 79 20 66 6f 72  20 69 6e 74 65 72 2d 0a  | way for inter-.|
000076e0  6d 6f 64 75 6c 65 20 63  6f 6d 6d 75 6e 69 63 61  |module communica|
000076f0  74 69 6f 6e 73 2e 20 20  57 72 69 74 65 20 74 6f  |tions.  Write to|
00007700  20 6d 65 20 66 6f 72 20  61 20 6d 65 73 73 61 67  | me for a messag|
00007710  65 20 6e 75 6d 62 65 72  20 69 66 20 79 6f 75 20  |e number if you |
00007720  70 72 6f 70 6f 73 65 20  74 6f 0a 75 73 65 20 74  |propose to.use t|
00007730  68 65 20 6d 65 73 73 61  67 69 6e 67 20 73 79 73  |he messaging sys|
00007740  74 65 6d 2e 0a 53 65 65  20 6c 61 74 65 72 20 66  |tem..See later f|
00007750  6f 72 20 6d 65 73 73 61  67 65 73 20 61 6c 72 65  |or messages alre|
00007760  61 64 79 20 69 6e 20 70  6c 61 63 65 2e 0a 0a 4d  |ady in place...M|
00007770  65 73 73 61 67 65 73 20  61 72 65 20 72 65 63 65  |essages are rece|
00007780  69 76 65 64 20 69 6e 20  74 68 65 20 66 75 6e 63  |ived in the func|
00007790  74 69 6f 6e 3a 0a 0a 3c  6d 6f 64 75 6c 65 20 6e  |tion:..<module n|
000077a0  61 6d 65 3e 5f 6d 65 73  73 61 67 65 0a 7e 7e 7e  |ame>_message.~~~|
000077b0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
000077c0  7e 7e 0a 0a 45 6e 74 72  79 20 20 3a 0a 20 20 20  |~~..Entry  :.   |
000077d0  20 20 20 20 20 20 6d 65  73 73 61 67 65 20 6e 75  |      message nu|
000077e0  6d 62 65 72 2c 20 70 6f  69 6e 74 65 72 20 74 6f  |mber, pointer to|
000077f0  20 70 61 72 61 6d 65 74  65 72 20 62 6c 6f 63 6b  | parameter block|
00007800  0a 45 78 69 74 20 20 20  3a 0a 20 20 20 20 20 20  |.Exit   :.      |
00007810  20 20 20 4e 6f 6e 65 0a  41 63 74 69 6f 6e 20 3a  |   None.Action :|
00007820  0a 20 20 20 20 20 20 20  20 20 44 65 70 65 6e 64  |.         Depend|
00007830  73 20 6f 6e 20 6d 65 73  73 61 67 65 0a 0a 31 33  |s on message..13|
00007840  20 2d 20 50 75 74 20 74  65 78 74 20 69 6e 20 69  | - Put text in i|
00007850  63 6f 6e 0a 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |con.~~~~~~~~~~~~|
00007860  7e 7e 7e 7e 7e 7e 7e 7e  7e 0a 0a 45 6e 74 72 79  |~~~~~~~~~..Entry|
00007870  20 20 3a 0a 20 20 20 20  20 20 20 20 20 2b 30 20  |  :.         +0 |
00007880  77 69 6e 64 6f 77 20 68  61 6e 64 6c 65 0a 20 20  |window handle.  |
00007890  20 20 20 20 20 20 20 2b  34 20 69 63 6f 6e 20 68  |       +4 icon h|
000078a0  61 6e 64 6c 65 0a 20 20  20 20 20 20 20 20 20 2b  |andle.         +|
000078b0  38 20 74 65 78 74 20 73  74 72 69 6e 67 0a 45 78  |8 text string.Ex|
000078c0  69 74 20 20 20 3a 0a 20  20 20 20 20 20 20 20 20  |it   :.         |
000078d0  4e 6f 6e 65 0a 41 63 74  69 6f 6e 20 3a 0a 20 20  |None.Action :.  |
000078e0  20 20 20 20 20 20 20 50  75 74 73 20 74 68 65 20  |       Puts the |
000078f0  73 70 65 63 69 66 69 65  64 20 74 65 78 74 20 73  |specified text s|
00007900  74 72 69 6e 67 20 69 6e  20 74 68 65 20 69 6e 64  |tring in the ind|
00007910  69 72 65 63 74 65 64 20  69 63 6f 6e 20 73 70 65  |irected icon spe|
00007920  63 69 66 69 65 64 20 62  79 0a 74 68 65 20 66 69  |cified by.the fi|
00007930  72 73 74 20 74 77 6f 20  77 6f 72 64 73 20 6f 66  |rst two words of|
00007940  20 74 68 65 20 64 61 74  61 20 62 6c 6f 63 6b 2e  | the data block.|
00007950  0a 0a 31 34 20 2d 20 52  65 61 64 20 74 65 78 74  |..14 - Read text|
00007960  20 66 72 6f 6d 20 69 63  6f 6e 0a 7e 7e 7e 7e 7e  | from icon.~~~~~|
00007970  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00007980  7e 7e 7e 0a 0a 45 6e 74  72 79 20 20 3a 0a 20 20  |~~~..Entry  :.  |
00007990  20 20 20 20 20 20 20 2b  30 20 77 69 6e 64 6f 77  |       +0 window|
000079a0  20 68 61 6e 64 6c 65 0a  20 20 20 20 20 20 20 20  | handle.        |
000079b0  20 2b 34 20 69 63 6f 6e  20 68 61 6e 64 6c 65 0a  | +4 icon handle.|
000079c0  45 78 69 74 20 20 20 3a  0a 20 20 20 20 20 20 20  |Exit   :.       |
000079d0  20 20 70 6f 69 6e 74 65  72 20 74 6f 20 74 65 78  |  pointer to tex|
000079e0  74 20 62 6c 6f 63 6b 0a  41 63 74 69 6f 6e 20 3a  |t block.Action :|
000079f0  0a 20 20 20 20 20 20 20  20 20 52 65 61 64 73 20  |.         Reads |
00007a00  74 68 65 20 74 65 78 74  20 66 72 6f 6d 20 74 68  |the text from th|
00007a10  65 20 73 70 65 63 69 66  69 65 64 20 69 6e 64 69  |e specified indi|
00007a20  72 65 63 74 65 64 20 69  63 6f 6e 20 61 6e 64 20  |rected icon and |
00007a30  72 65 74 75 72 6e 73 0a  70 6f 69 6e 74 69 6e 67  |returns.pointing|
00007a40  20 74 6f 20 74 68 65 20  74 65 78 74 20 73 74 72  | to the text str|
00007a50  69 6e 67 2e 20 20 4e 6f  74 65 20 74 68 61 74 20  |ing.  Note that |
00007a60  74 68 65 73 65 20 74 77  6f 20 63 61 6c 6c 73 20  |these two calls |
00007a70  6f 6e 6c 79 20 77 6f 72  6b 20 77 69 74 68 0a 69  |only work with.i|
00007a80  6e 64 69 72 65 63 74 65  64 20 69 63 6f 6e 73 2e  |ndirected icons.|
00007a90  0a 0a 31 35 20 2d 20 52  65 74 75 72 6e 20 6c 61  |..15 - Return la|
00007aa0  73 74 20 62 69 74 0a 7e  7e 7e 7e 7e 7e 7e 7e 7e  |st bit.~~~~~~~~~|
00007ab0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 0a 0a 45 6e  |~~~~~~~~~~~~..En|
00007ac0  74 72 79 20 20 3a 0a 20  20 20 20 20 20 20 20 20  |try  :.         |
00007ad0  2b 30 20 74 65 78 74 20  73 74 72 69 6e 67 0a 45  |+0 text string.E|
00007ae0  78 69 74 20 20 20 3a 0a  20 20 20 20 20 20 20 20  |xit   :.        |
00007af0  20 70 6f 69 6e 74 65 72  20 74 6f 20 6c 61 73 74  | pointer to last|
00007b00  20 62 69 74 20 6f 66 20  6e 61 6d 65 0a 41 63 74  | bit of name.Act|
00007b10  69 6f 6e 20 3a 0a 20 20  20 20 20 20 20 20 20 54  |ion :.         T|
00007b20  61 6b 65 73 20 61 20 66  69 6c 65 6e 61 6d 65 2c  |akes a filename,|
00007b30  20 73 75 63 68 20 61 73  20 66 72 65 64 2e 73 6d  | such as fred.sm|
00007b40  69 74 68 2c 20 61 6e 64  20 72 65 74 75 72 6e 73  |ith, and returns|
00007b50  20 74 68 65 20 6c 61 73  74 20 70 61 72 74 69 63  | the last partic|
00007b60  6c 65 0a 6f 66 20 69 74  2c 20 69 6e 20 74 68 69  |le.of it, in thi|
00007b70  73 20 63 61 73 65 20 73  6d 69 74 68 2e 0a 0a 31  |s case smith...1|
00007b80  36 20 2d 20 52 65 74 75  72 6e 20 66 69 72 73 74  |6 - Return first|
00007b90  20 62 69 74 0a 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  | bit.~~~~~~~~~~~|
00007ba0  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 0a 0a 45 6e 74 72  |~~~~~~~~~~..Entr|
00007bb0  79 20 20 3a 0a 20 20 20  20 20 20 20 20 20 2b 30  |y  :.         +0|
00007bc0  20 74 65 78 74 20 73 74  72 69 6e 67 0a 45 78 69  | text string.Exi|
00007bd0  74 20 20 20 3a 0a 20 20  20 20 20 20 20 20 20 70  |t   :.         p|
00007be0  6f 69 6e 74 65 72 20 74  6f 20 66 69 72 73 74 20  |ointer to first |
00007bf0  62 69 74 20 6f 66 20 6e  61 6d 65 0a 41 63 74 69  |bit of name.Acti|
00007c00  6f 6e 20 3a 0a 20 20 20  20 20 20 20 20 20 54 61  |on :.         Ta|
00007c10  6b 65 73 20 61 20 66 69  6c 65 6e 61 6d 65 2c 20  |kes a filename, |
00007c20  61 73 20 69 6e 20 74 68  65 20 70 72 65 76 69 6f  |as in the previo|
00007c30  75 73 20 63 61 6c 6c 2c  20 61 6e 64 20 72 65 74  |us call, and ret|
00007c40  75 72 6e 73 20 74 68 65  20 66 69 72 73 74 0a 73  |urns the first.s|
00007c50  65 63 74 69 6f 6e 20 6f  66 20 69 74 2e 20 20 41  |ection of it.  A|
00007c60  73 20 61 6e 20 65 78 61  6d 70 6c 65 2c 20 74 61  |s an example, ta|
00007c70  6b 65 20 66 72 65 64 2e  6a 6f 65 2e 73 6d 69 74  |ke fred.joe.smit|
00007c80  68 2e 20 20 54 68 65 20  63 61 6c 6c 20 77 6f 75  |h.  The call wou|
00007c90  6c 64 0a 72 65 74 75 72  6e 20 66 72 65 64 2e 6a  |ld.return fred.j|
00007ca0  6f 65 2c 20 61 73 20 6f  70 70 6f 73 65 64 20 74  |oe, as opposed t|
00007cb0  6f 20 73 6d 69 74 68 20  77 68 69 63 68 20 77 6f  |o smith which wo|
00007cc0  75 6c 64 20 62 65 20 72  65 74 75 72 6e 65 64 20  |uld be returned |
00007cd0  62 79 20 74 68 65 20 70  72 65 76 69 6f 75 73 0a  |by the previous.|
00007ce0  63 61 6c 6c 2e 0a 0a 31  37 20 2d 20 53 65 74 20  |call...17 - Set |
00007cf0  69 63 6f 6e 20 73 70 72  69 74 65 0a 7e 7e 7e 7e  |icon sprite.~~~~|
00007d00  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00007d10  0a 0a 45 6e 74 72 79 20  20 3a 0a 20 20 20 20 20  |..Entry  :.     |
00007d20  20 20 20 20 2b 30 20 77  69 6e 64 6f 77 20 68 61  |    +0 window ha|
00007d30  6e 64 6c 65 0a 20 20 20  20 20 20 20 20 20 2b 34  |ndle.         +4|
00007d40  20 69 63 6f 6e 20 68 61  6e 64 6c 65 0a 20 20 20  | icon handle.   |
00007d50  20 20 20 20 20 20 2b 38  20 73 70 72 69 74 65 20  |      +8 sprite |
00007d60  6e 61 6d 65 0a 45 78 69  74 20 20 20 3a 0a 20 20  |name.Exit   :.  |
00007d70  20 20 20 20 20 20 20 4e  6f 6e 65 0a 41 63 74 69  |       None.Acti|
00007d80  6f 6e 20 3a 0a 20 20 20  20 20 20 20 20 20 53 65  |on :.         Se|
00007d90  74 73 20 74 68 65 20 73  70 72 69 74 65 20 6e 61  |ts the sprite na|
00007da0  6d 65 20 66 6f 72 20 61  20 6e 6f 6e 2d 69 6e 64  |me for a non-ind|
00007db0  69 72 65 63 74 65 64 20  69 63 6f 6e 2e 20 20 54  |irected icon.  T|
00007dc0  68 69 73 20 70 72 6f 63  65 64 75 72 65 20 69 73  |his procedure is|
00007dd0  0a 75 73 65 64 20 62 79  20 61 6c 6c 20 21 53 74  |.used by all !St|
00007de0  69 63 6b 79 42 72 64 20  73 70 72 69 74 65 20 70  |ickyBrd sprite p|
00007df0  6c 6f 74 20 72 6f 75 74  69 6e 65 73 20 61 6e 64  |lot routines and|
00007e00  20 69 74 20 61 6c 73 6f  20 73 65 74 73 20 74 68  | it also sets th|
00007e10  65 0a 61 70 70 72 6f 70  69 61 74 65 20 69 63 6f  |e.appropiate ico|
00007e20  6e 20 66 6c 61 67 73 20  74 6f 20 6d 61 72 6b 20  |n flags to mark |
00007e30  69 74 20 61 73 20 61 20  73 70 72 69 74 65 20 69  |it as a sprite i|
00007e40  63 6f 6e 2e 0a 0a 4d 65  73 73 61 67 65 73 20 61  |con...Messages a|
00007e50  6c 72 65 61 64 79 20 73  65 74 20 75 70 0a 7e 7e  |lready set up.~~|
00007e60  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00007e70  7e 7e 7e 7e 7e 0a 0a 20  20 5f 5f 5f 5f 5f 5f 5f  |~~~~~..  _______|
00007e80  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00007ec0  5f 5f 0a 20 2f 20 20 20  20 20 20 20 20 20 20 20  |__. /           |
00007ed0  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00007ee0  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |             |  |
00007ef0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007f00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 5c 0a  |              \.|
00007f10  7c 20 4d 65 73 73 61 67  65 20 6e 75 6d 62 65 72  || Message number|
00007f20  20 20 7c 20 44 65 73 63  72 69 70 74 69 6f 6e 20  |  | Description |
00007f30  20 20 20 20 20 20 20 20  20 20 7c 20 50 61 72 61  |          | Para|
00007f40  6d 65 74 65 72 20 62 6c  6f 63 6b 20 20 20 20 20  |meter block     |
00007f50  20 20 20 20 20 20 20 20  20 20 20 20 7c 0a 7c 5f  |            |.|_|
00007f60  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00007f70  7c 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  ||_______________|
00007f80  5f 5f 5f 5f 5f 5f 5f 5f  7c 5f 5f 5f 5f 5f 5f 5f  |________|_______|
00007f90  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00007fa0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 7c 0a 7c 20 20 20  |__________|.|   |
00007fb0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7c 20  |              | |
00007fc0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007fd0  20 20 20 20 20 20 7c 20  20 20 20 20 20 20 20 20  |      |         |
00007fe0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007ff0  20 20 20 20 20 20 20 20  7c 0a 7c 20 20 20 20 20  |        |.|     |
00008000  20 20 30 20 20 20 20 20  20 20 20 20 7c 20 43 68  |  0         | Ch|
00008010  65 63 6b 20 6d 6f 64 75  6c 65 20 6c 6f 61 64 65  |eck module loade|
00008020  64 20 20 20 7c 20 2b 30  20 6d 6f 64 75 6c 65 20  |d   | +0 module |
00008030  6e 61 6d 65 20 20 20 20  20 20 20 20 20 20 20 20  |name            |
00008040  20 20 20 20 20 20 7c 0a  7c 5f 5f 5f 5f 5f 5f 5f  |      |.|_______|
00008050  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 7c 5f 5f 5f 5f 5f  |__________|_____|
00008060  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00008070  5f 5f 7c 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |__|_____________|
00008080  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00008090  5f 5f 5f 5f 7c 0a 7c 20  20 20 20 20 20 20 20 20  |____|.|         |
000080a0  20 20 20 20 20 20 20 20  7c 20 20 20 20 20 20 20  |        |       |
000080b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000080c0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
000080d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000080e0  20 20 7c 0a 7c 20 20 20  20 20 20 20 31 20 20 20  |  |.|       1   |
000080f0  20 20 20 20 20 20 7c 20  52 65 70 6c 79 20 74 6f  |      | Reply to|
00008100  20 28 30 29 20 20 20 20  20 20 20 20 20 20 7c 20  | (0)          | |
00008110  2b 30 20 6d 6f 64 75 6c  65 20 6e 61 6d 65 20 20  |+0 module name  |
00008120  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008130  7c 0a 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  ||.|             |
00008140  20 20 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |    |           |
00008150  20 20 20 20 20 20 20 20  20 20 20 20 7c 20 2b 34  |            | +4|
00008160  20 69 6e 66 6f 20 77 69  6e 64 6f 77 20 68 61 6e  | info window han|
00008170  64 6c 65 20 20 20 20 20  20 20 20 20 20 20 7c 0a  |dle           |.|
00008180  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00008190  20 20 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |  |             |
000081a0  20 20 20 20 20 20 20 20  20 20 7c 20 2b 38 20 6d  |          | +8 m|
000081b0  65 6e 75 20 62 6c 6f 63  6b 20 61 64 64 72 65 73  |enu block addres|
000081c0  73 20 20 20 20 20 20 20  20 20 20 20 7c 0a 7c 5f  |s           |.|_|
000081d0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
000081e0  7c 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  ||_______________|
000081f0  5f 5f 5f 5f 5f 5f 5f 5f  7c 5f 5f 5f 5f 5f 5f 5f  |________|_______|
00008200  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00008210  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 7c 0a 7c 20 20 20  |__________|.|   |
00008220  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7c 20  |              | |
00008230  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008240  20 20 20 20 20 20 7c 20  20 20 20 20 20 20 20 20  |      |         |
00008250  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008260  20 20 20 20 20 20 20 20  7c 0a 7c 20 20 20 20 20  |        |.|     |
00008270  20 20 20 20 20 20 20 20  20 20 20 20 7c 20 20 20  |            |   |
00008280  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008290  20 20 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |    |           |
000082a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000082b0  20 20 20 20 20 20 7c 0a  20 5c 5f 5f 5f 5f 5f 5f  |      |. \______|
000082c0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 7c 5f 5f 5f 5f 5f  |__________|_____|
000082d0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
000082e0  5f 5f 7c 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |__|_____________|
000082f0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00008300  5f 5f 5f 2f 0a 0a 44 65  73 63 72 69 70 74 69 6f  |___/..Descriptio|
00008310  6e 73 20 6f 66 20 74 68  65 20 6d 65 73 73 61 67  |ns of the messag|
00008320  65 73 20 66 6f 6c 6c 6f  77 3a 0a 0a 30 20 2d 20  |es follow:..0 - |
00008330  43 68 65 63 6b 20 6d 6f  64 75 6c 65 20 6c 6f 61  |Check module loa|
00008340  64 65 64 20 20 20 20 20  20 20 20 20 20 20 20 20  |ded             |
00008350  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008360  20 20 20 20 20 4d 65 73  73 61 67 65 5f 4d 6f 64  |     Message_Mod|
00008370  75 6c 65 45 78 69 73 74  73 0a 7e 7e 7e 7e 7e 7e  |uleExists.~~~~~~|
00008380  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00008390  7e 0a 0a 45 6e 74 72 79  20 20 3a 0a 20 20 20 20  |~..Entry  :.    |
000083a0  20 20 20 20 20 2b 30 20  6d 6f 64 75 6c 65 20 6e  |     +0 module n|
000083b0  61 6d 65 0a 45 78 69 74  20 20 20 3a 0a 20 20 20  |ame.Exit   :.   |
000083c0  20 20 20 20 20 20 4e 6f  6e 65 0a 41 63 74 69 6f  |      None.Actio|
000083d0  6e 20 3a 0a 20 20 20 20  20 20 20 20 20 41 73 6b  |n :.         Ask|
000083e0  73 20 65 61 63 68 20 6d  6f 64 75 6c 65 20 69 6e  |s each module in|
000083f0  20 74 75 72 6e 20 66 6f  72 20 69 74 27 73 20 6e  | turn for it's n|
00008400  61 6d 65 2e 20 20 49 74  20 69 73 20 75 70 20 74  |ame.  It is up t|
00008410  6f 20 74 68 65 20 6d 6f  64 75 6c 65 20 74 6f 0a  |o the module to.|
00008420  61 63 6b 6e 6f 77 6c 65  64 67 65 20 74 68 69 73  |acknowledge this|
00008430  20 77 69 74 68 20 4d 65  73 73 61 67 65 5f 4d 6f  | with Message_Mo|
00008440  64 75 6c 65 4c 6f 61 64  65 64 2c 20 6d 65 73 73  |duleLoaded, mess|
00008450  61 67 65 20 6e 75 6d 62  65 72 20 31 2e 20 20 54  |age number 1.  T|
00008460  68 69 73 20 6d 65 73 73  61 67 65 0a 69 73 20 72  |his message.is r|
00008470  65 61 6c 6c 79 20 73 75  70 70 6c 69 65 64 20 74  |eally supplied t|
00008480  6f 20 63 68 65 63 6b 20  77 68 65 74 68 65 72 20  |o check whether |
00008490  61 20 67 69 76 65 6e 20  6d 6f 64 75 6c 65 20 69  |a given module i|
000084a0  73 20 6c 6f 61 64 65 64  2e 0a 0a 31 20 2d 20 4d  |s loaded...1 - M|
000084b0  6f 64 75 6c 65 20 6c 6f  61 64 65 64 20 20 20 20  |odule loaded    |
000084c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000084e0  20 20 20 20 4d 65 73 73  61 67 65 5f 4d 6f 64 75  |    Message_Modu|
000084f0  6c 65 4c 6f 61 64 65 64  0a 7e 7e 7e 7e 7e 7e 7e  |leLoaded.~~~~~~~|
00008500  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 0a 0a 45 6e 74 72  |~~~~~~~~~~..Entr|
00008510  79 20 20 3a 0a 20 20 20  20 20 20 20 20 20 2b 30  |y  :.         +0|
00008520  20 6d 6f 64 75 6c 65 20  6e 61 6d 65 0a 20 20 20  | module name.   |
00008530  20 20 20 20 20 20 2b 31  32 20 69 6e 66 6f 20 77  |      +12 info w|
00008540  69 6e 64 6f 77 20 68 61  6e 64 6c 65 0a 20 20 20  |indow handle.   |
00008550  20 20 20 20 20 20 2b 31  36 20 6d 65 6e 75 20 62  |      +16 menu b|
00008560  6c 6f 63 6b 20 61 64 64  72 65 73 73 0a 45 78 69  |lock address.Exi|
00008570  74 20 20 20 3a 0a 20 20  20 20 20 20 20 20 20 4e  |t   :.         N|
00008580  6f 6e 65 0a 41 63 74 69  6f 6e 20 3a 0a 20 20 20  |one.Action :.   |
00008590  20 20 20 20 20 20 49 66  20 79 6f 75 72 20 6d 6f  |      If your mo|
000085a0  64 75 6c 65 20 72 65 63  65 69 76 65 73 20 61 20  |dule receives a |
000085b0  4d 65 73 73 61 67 65 5f  4d 6f 64 75 6c 65 45 78  |Message_ModuleEx|
000085c0  69 73 74 73 20 74 68 65  6e 20 79 6f 75 20 73 68  |ists then you sh|
000085d0  6f 75 6c 64 20 72 65 70  6c 79 0a 28 69 66 20 74  |ould reply.(if t|
000085e0  68 65 20 6d 6f 64 75 6c  65 20 6e 61 6d 65 20 61  |he module name a|
000085f0  74 20 62 6c 6f 63 6b 2b  30 20 6d 61 74 63 68 65  |t block+0 matche|
00008600  73 20 79 6f 75 72 73 29  20 77 69 74 68 20 74 68  |s yours) with th|
00008610  69 73 20 6d 65 73 73 61  67 65 2e 20 20 57 68 61  |is message.  Wha|
00008620  74 20 74 68 65 6e 0a 68  61 70 70 65 6e 73 20 69  |t then.happens i|
00008630  73 20 64 65 70 65 6e 64  61 6e 74 20 6f 6e 20 79  |s dependant on y|
00008640  6f 75 72 20 6d 6f 64 75  6c 65 28 73 29 0a 0a 59  |our module(s)..Y|
00008650  6f 75 20 73 68 6f 75 6c  64 20 6e 6f 74 65 20 74  |ou should note t|
00008660  68 61 74 20 61 6c 6c 20  70 6f 6c 6c 20 63 6f 64  |hat all poll cod|
00008670  65 73 20 61 6e 64 20 6d  65 73 73 61 67 65 73 20  |es and messages |
00008680  61 72 65 20 62 72 6f 61  64 63 61 73 74 20 72 61  |are broadcast ra|
00008690  74 68 65 72 20 74 68 61  6e 0a 64 69 72 65 63 74  |ther than.direct|
000086a0  65 64 2c 20 73 6f 20 79  6f 75 20 73 68 6f 75 6c  |ed, so you shoul|
000086b0  64 20 6f 6e 6c 79 20 72  65 70 6c 79 20 6f 72 20  |d only reply or |
000086c0  61 63 63 65 70 74 20 6d  65 73 73 61 67 65 20 31  |accept message 1|
000086d0  20 69 66 20 69 74 20 69  73 20 64 69 72 65 63 74  | if it is direct|
000086e0  65 64 20 61 74 0a 79 6f  75 2e 20 20 54 68 69 73  |ed at.you.  This|
000086f0  20 69 73 20 74 68 65 20  72 65 61 73 6f 6e 20 77  | is the reason w|
00008700  68 79 20 62 6c 6f 63 6b  2b 30 20 6f 66 20 4d 65  |hy block+0 of Me|
00008710  73 73 61 67 65 5f 4d 6f  64 75 6c 65 4c 6f 61 64  |ssage_ModuleLoad|
00008720  65 64 20 63 6f 6e 74 61  69 6e 73 20 74 68 65 0a  |ed contains the.|
00008730  6d 6f 64 75 6c 65 20 6e  61 6d 65 2e 0a 0a 41 6c  |module name...Al|
00008740  73 6f 20 79 6f 75 20 73  68 6f 75 6c 64 20 72 65  |so you should re|
00008750  70 6c 79 20 74 6f 20 4d  65 73 73 61 67 65 5f 4d  |ply to Message_M|
00008760  6f 64 75 6c 65 45 78 69  73 74 73 20 77 69 74 68  |oduleExists with|
00008770  20 4d 65 73 73 61 67 65  4d 6f 64 75 6c 65 4c 6f  | MessageModuleLo|
00008780  61 64 65 64 20 69 6e 0a  74 68 65 20 70 6f 6c 6c  |aded in.the poll|
00008790  20 6c 6f 6f 70 2e 20 20  59 6f 75 20 77 69 6c 6c  | loop.  You will|
000087a0  20 72 65 63 65 69 76 65  20 4d 65 73 73 61 67 65  | receive Message|
000087b0  5f 4d 6f 64 75 6c 65 45  78 69 73 74 73 20 69 6e  |_ModuleExists in|
000087c0  20 74 68 65 20 66 75 6e  63 74 69 6f 6e 0a 3c 6d  | the function.<m|
000087d0  6f 64 75 6c 65 20 6e 61  6d 65 3e 5f 6d 65 73 73  |odule name>_mess|
000087e0  61 67 65 2c 20 66 72 6f  6d 20 74 68 65 72 65 20  |age, from there |
000087f0  79 6f 75 20 73 68 6f 75  6c 64 20 73 65 74 20 61  |you should set a|
00008800  20 66 6c 61 67 20 61 6e  64 20 72 65 70 6c 79 20  | flag and reply |
00008810  69 6e 20 74 68 65 0a 70  6f 6c 6c 20 6c 6f 6f 70  |in the.poll loop|
00008820  2e 20 20 54 68 69 73 20  61 70 70 6c 69 65 73 20  |.  This applies |
00008830  74 6f 20 61 6c 6c 20 6d  65 73 73 61 67 65 73 2e  |to all messages.|
00008840  20 20 54 68 69 73 20 69  73 20 73 6f 20 74 68 61  |  This is so tha|
00008850  74 20 21 53 74 69 63 6b  79 42 72 64 0a 63 61 6e  |t !StickyBrd.can|
00008860  20 63 79 63 6c 65 20 74  68 72 6f 75 67 68 20 61  | cycle through a|
00008870  6c 6c 20 6d 6f 64 75 6c  65 73 20 77 69 74 68 6f  |ll modules witho|
00008880  75 74 20 69 6e 74 65 72  72 75 70 74 69 6f 6e 20  |ut interruption |
00008890  61 73 20 6d 65 73 73 61  67 65 73 20 77 69 6c 6c  |as messages will|
000088a0  20 67 6f 0a 74 68 72 6f  75 67 68 20 74 68 65 20  | go.through the |
000088b0  73 61 6d 65 20 66 75 6e  63 74 69 6f 6e 2e 20 20  |same function.  |
000088c0  49 6e 20 74 68 65 20 72  65 63 6f 6d 6d 65 6e 64  |In the recommend|
000088d0  65 64 20 69 6e 69 74 69  61 6c 69 73 65 20 63 6f  |ed initialise co|
000088e0  64 65 20 67 69 76 65 6e  0a 61 62 6f 76 65 20 74  |de given.above t|
000088f0  68 65 20 66 6c 61 67 20  69 73 20 63 61 6c 6c 65  |he flag is calle|
00008900  64 20 27 72 65 70 6c 79  27 2e 0a 0a 4f 74 68 65  |d 'reply'...Othe|
00008910  72 20 6e 6f 74 65 73 20  20 20 20 20 20 20 20 20  |r notes         |
00008920  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00008950  20 20 20 20 20 0a 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |     .~~~~~~~~~~|
00008960  7e 0a 0a 41 20 77 6f 72  6b 73 70 61 63 65 20 61  |~..A workspace a|
00008970  72 65 61 2c 20 70 6f 69  6e 74 65 72 25 2c 20 69  |rea, pointer%, i|
00008980  73 20 73 65 74 20 75 70  20 66 6f 72 20 79 6f 75  |s set up for you|
00008990  20 74 6f 20 75 73 65 2c  20 70 6c 65 61 73 65 20  | to use, please |
000089a0  75 73 65 20 69 74 20 74  6f 0a 63 6f 6e 73 65 72  |use it to.conser|
000089b0  76 65 20 6d 65 6d 6f 72  79 2e 20 70 6f 69 6e 74  |ve memory. point|
000089c0  65 72 25 20 69 73 20 34  30 30 20 62 79 74 65 73  |er% is 400 bytes|
000089d0  20 6c 6f 6e 67 20 61 6e  64 20 63 61 6e 20 62 65  | long and can be|
000089e0  20 75 73 65 64 20 66 6f  72 20 61 6e 79 74 68 69  | used for anythi|
000089f0  6e 67 2c 0a 62 75 74 20  69 74 20 73 70 65 63 69  |ng,.but it speci|
00008a00  66 69 63 61 6c 6c 79 20  75 73 65 66 75 6c 20 61  |fically useful a|
00008a10  73 20 61 20 62 6c 6f 63  6b 20 66 6f 72 20 6d 65  |s a block for me|
00008a20  73 73 61 67 65 20 72 6f  75 74 69 6e 65 73 2e 0a  |ssage routines..|
00008a30  21 53 74 69 63 6b 79 42  72 64 20 63 61 6e 20 63  |!StickyBrd can c|
00008a40  6f 70 65 20 77 69 74 68  20 31 30 20 6d 6f 64 75  |ope with 10 modu|
00008a50  6c 65 73 20 61 74 20 74  68 65 20 70 72 65 73 65  |les at the prese|
00008a60  6e 74 20 74 69 6d 65 2e  20 20 53 68 6f 75 6c 64  |nt time.  Should|
00008a70  20 79 6f 75 20 74 72 79  20 61 6e 64 0a 6c 6f 61  | you try and.loa|
00008a80  64 20 6d 6f 72 65 2c 20  21 53 74 69 63 6b 79 42  |d more, !StickyB|
00008a90  72 64 20 77 69 6c 6c 20  70 72 6f 62 61 62 6c 79  |rd will probably|
00008aa0  20 63 72 61 73 68 20 77  69 74 68 20 61 6e 20 61  | crash with an a|
00008ab0  64 64 72 65 73 73 20 65  78 63 65 70 74 69 6f 6e  |ddress exception|
00008ac0  20 65 72 72 6f 72 2c 0a  74 68 69 73 20 77 69 6c  | error,.this wil|
00008ad0  6c 20 62 65 20 66 69 78  65 64 20 69 6e 20 74 68  |l be fixed in th|
00008ae0  65 20 6e 65 78 74 20 76  65 72 73 69 6f 6e 20 28  |e next version (|
00008af0  49 20 68 6f 70 65 29 2e  0a 0a 54 68 65 20 41 75  |I hope)...The Au|
00008b00  74 6f 52 75 6e 20 66 69  6c 65 0a 7e 7e 7e 7e 7e  |toRun file.~~~~~|
00008b10  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 0a 0a 49 6e 73  |~~~~~~~~~~~..Ins|
00008b20  69 64 65 20 74 68 65 20  45 78 74 4d 6f 64 6c 73  |ide the ExtModls|
00008b30  20 64 69 72 65 63 74 6f  72 79 20 74 68 65 72 65  | directory there|
00008b40  20 69 73 20 61 20 74 65  78 74 20 66 69 6c 65 20  | is a text file |
00008b50  63 61 6c 6c 65 64 20 41  75 74 6f 52 75 6e 2e 20  |called AutoRun. |
00008b60  20 54 68 69 73 20 69 73  0a 75 73 65 64 20 74 6f  | This is.used to|
00008b70  20 72 75 6e 20 74 68 65  20 6d 6f 64 75 6c 65 73  | run the modules|
00008b80  20 69 6e 20 74 68 65 20  45 78 74 4d 6f 64 6c 73  | in the ExtModls|
00008b90  20 64 69 72 65 63 74 6f  72 79 2e 20 20 54 6f 20  | directory.  To |
00008ba0  73 74 61 72 74 20 77 69  74 68 20 69 74 20 77 69  |start with it wi|
00008bb0  6c 6c 0a 63 6f 6e 74 61  69 6e 20 73 6f 6d 74 68  |ll.contain somth|
00008bc0  69 6e 67 20 6c 69 6b 65  20 74 68 65 20 66 6f 6c  |ing like the fol|
00008bd0  6c 6f 77 69 6e 67 3a 0a  0a 7c 20 41 75 74 6f 72  |lowing:..| Autor|
00008be0  75 6e 20 66 69 6c 65 20  66 6f 72 20 21 53 74 69  |un file for !Sti|
00008bf0  63 6b 79 42 72 64 20 30  2e 38 30 0a 7c 0a 7b 72  |ckyBrd 0.80.|.{r|
00008c00  75 6e 7d 20 63 6f 6d 6d  61 6e 64 3b 0a 7b 72 75  |un} command;.{ru|
00008c10  6e 7d 20 64 69 72 63 68  61 6e 67 65 3b 0a 7b 65  |n} dirchange;.{e|
00008c20  6e 64 7d 0a 0a 54 68 65  20 41 75 74 6f 52 75 6e  |nd}..The AutoRun|
00008c30  20 66 69 6c 65 20 75 73  65 73 20 61 20 73 63 72  | file uses a scr|
00008c40  69 70 74 20 6c 61 6e 67  75 61 67 65 2c 20 77 68  |ipt language, wh|
00008c50  69 63 68 20 72 65 63 6f  67 6e 69 7a 65 73 20 74  |ich recognizes t|
00008c60  68 72 65 65 20 63 6f 6d  6d 61 6e 64 73 3a 0a 7b  |hree commands:.{|
00008c70  72 75 6e 7d 2c 7b 72 65  6d 7d 2c 20 61 6e 64 20  |run},{rem}, and |
00008c80  7b 65 6e 64 7d 2e 20 20  49 6e 20 61 64 64 69 74  |{end}.  In addit|
00008c90  69 6f 6e 2c 20 7c 20 63  61 6e 20 62 65 20 75 73  |ion, | can be us|
00008ca0  65 64 20 74 6f 20 69 6e  74 72 6f 64 75 63 65 20  |ed to introduce |
00008cb0  61 20 63 6f 6d 6d 65 6e  74 2e 0a 42 6c 61 6e 6b  |a comment..Blank|
00008cc0  20 6c 69 6e 65 73 20 63  61 6e 20 62 65 20 75 73  | lines can be us|
00008cd0  65 64 2c 20 61 6e 64 20  74 68 65 20 75 73 61 67  |ed, and the usag|
00008ce0  65 20 6f 66 20 74 68 65  20 74 68 72 65 65 20 63  |e of the three c|
00008cf0  6f 6d 6d 61 6e 64 73 20  69 73 20 6f 62 76 69 6f  |ommands is obvio|
00008d00  75 73 2c 0a 49 20 68 6f  70 65 20 2d 20 7b 72 75  |us,.I hope - {ru|
00008d10  6e 7d 20 72 75 6e 73 20  61 20 6d 6f 64 75 6c 65  |n} runs a module|
00008d20  2c 20 7b 72 65 6d 7d 20  69 6e 73 65 72 74 73 20  |, {rem} inserts |
00008d30  61 20 63 6f 6d 6d 65 6e  74 2c 20 61 6e 64 20 7b  |a comment, and {|
00008d40  65 6e 64 7d 20 65 6e 64  73 20 74 68 65 0a 66 69  |end} ends the.fi|
00008d50  6c 65 2e 0a 54 68 65 20  73 65 6d 69 63 6f 6c 6f  |le..The semicolo|
00008d60  6e 20 61 66 74 65 72 20  65 61 63 68 20 7b 72 75  |n after each {ru|
00008d70  6e 7d 20 63 6f 6d 6d 61  6e 64 20 69 6e 64 69 63  |n} command indic|
00008d80  61 74 65 73 20 61 20 66  75 72 74 68 65 72 20 63  |ates a further c|
00008d90  6f 6d 6d 61 6e 64 20 2d  20 79 6f 75 0a 68 61 76  |ommand - you.hav|
00008da0  65 20 6e 6f 20 6e 65 65  64 20 74 6f 20 75 73 65  |e no need to use|
00008db0  20 74 68 69 73 20 61 66  74 65 72 20 61 20 7b 72  | this after a {r|
00008dc0  65 6d 7d 2c 20 62 6c 61  6e 6b 20 6c 69 6e 65 20  |em}, blank line |
00008dd0  6f 72 20 7c 20 61 73 20  74 68 65 73 65 20 61 72  |or | as these ar|
00008de0  65 20 69 67 6e 6f 72 65  64 2e 0a 54 6f 20 61 64  |e ignored..To ad|
00008df0  64 20 61 20 6d 6f 64 75  6c 65 20 74 6f 20 74 68  |d a module to th|
00008e00  65 20 6c 69 73 74 2c 20  69 6e 73 65 72 74 20 61  |e list, insert a|
00008e10  6e 20 65 78 74 72 61 20  7b 72 75 6e 7d 20 63 6f  |n extra {run} co|
00008e20  6d 6d 61 6e 64 20 62 65  66 6f 72 65 20 74 68 65  |mmand before the|
00008e30  20 7b 65 6e 64 7d 2e 0a  52 65 6d 65 6d 62 65 72  | {end}..Remember|
00008e40  20 74 6f 20 73 75 66 66  69 78 20 69 74 20 77 69  | to suffix it wi|
00008e50  74 68 20 61 20 73 65 6d  69 2d 63 6f 6c 6f 6e 20  |th a semi-colon |
00008e60  28 3b 29 20 61 73 20 74  68 69 73 20 69 6e 64 69  |(;) as this indi|
00008e70  63 61 74 65 73 20 74 68  65 72 65 20 61 72 65 20  |cates there are |
00008e80  6d 6f 72 65 0a 63 6f 6d  6d 61 6e 64 73 2e 0a 0a  |more.commands...|
00008e90  41 70 70 72 6f 76 69 6e  67 20 6d 6f 64 75 6c 65  |Approving module|
00008ea0  73 0a 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |s.~~~~~~~~~~~~~~|
00008eb0  7e 7e 7e 0a 0a 50 6c 65  61 73 65 20 73 65 6e 64  |~~~..Please send|
00008ec0  20 61 6e 79 20 6d 6f 64  75 6c 65 73 20 79 6f 75  | any modules you|
00008ed0  20 77 72 69 74 65 20 74  6f 20 6d 65 2c 20 74 6f  | write to me, to|
00008ee0  20 67 65 74 20 74 68 65  6d 20 61 70 70 72 6f 76  | get them approv|
00008ef0  65 64 20 61 6e 64 20 70  6f 73 73 69 62 6c 79 0a  |ed and possibly.|
00008f00  69 6e 63 6c 75 64 65 64  20 69 6e 20 74 68 65 20  |included in the |
00008f10  6e 65 78 74 20 72 65 6c  65 61 73 65 2e 20 20 44  |next release.  D|
00008f20  6f 6e 27 74 20 64 69 73  74 72 69 62 75 74 65 20  |on't distribute |
00008f30  6d 6f 64 75 6c 65 73 20  77 69 74 68 6f 75 74 20  |modules without |
00008f40  74 68 65 6d 0a 62 65 69  6e 67 20 61 70 70 72 6f  |them.being appro|
00008f50  76 65 64 2c 20 61 6e 64  20 70 6c 65 61 73 65 20  |ved, and please |
00008f60  64 6f 6e 27 74 20 61 6c  74 65 72 20 74 68 65 20  |don't alter the |
00008f70  74 61 62 6c 65 20 69 6e  20 74 68 65 20 21 4d 61  |table in the !Ma|
00008f80  6e 75 61 6c 20 61 70 70  6c 69 63 61 74 69 6f 6e  |nual application|
00008f90  2e 0a 54 72 79 20 61 6e  64 20 66 6f 6c 6c 6f 77  |..Try and follow|
00008fa0  20 61 6c 6c 20 74 68 65  20 67 75 69 64 65 6c 69  | all the guideli|
00008fb0  6e 65 73 20 67 69 76 65  6e 20 68 65 72 65 20 61  |nes given here a|
00008fc0  73 20 74 68 69 73 20 77  61 79 20 79 6f 75 72 20  |s this way your |
00008fd0  6d 6f 64 75 6c 65 20 73  74 61 6e 64 73 0a 61 20  |module stands.a |
00008fe0  62 65 74 74 65 72 20 63  68 61 6e 63 65 20 6f 66  |better chance of|
00008ff0  20 62 65 69 6e 67 20 61  70 70 72 6f 76 65 64 2e  | being approved.|
00009000  20 20 54 68 65 20 6d 6f  64 75 6c 65 20 61 70 70  |  The module app|
00009010  72 6f 76 69 6e 67 20 73  79 73 74 65 6d 20 69 73  |roving system is|
00009020  20 72 65 61 6c 6c 79 0a  62 61 73 65 64 20 6f 6e  | really.based on|
00009030  20 21 50 6c 61 63 65 49  74 27 73 20 73 69 6d 69  | !PlaceIt's simi|
00009040  6c 61 72 20 73 79 73 74  65 6d 20 28 73 6f 72 72  |lar system (sorr|
00009050  79 20 49 61 6e 29 20 61  6e 64 20 49 27 76 65 20  |y Ian) and I've |
00009060  75 73 65 64 20 61 20 73  69 6d 69 6c 61 72 0a 69  |used a similar.i|
00009070  64 65 61 20 61 73 20 69  74 20 68 65 6c 70 73 20  |dea as it helps |
00009080  74 68 65 20 75 73 65 72  20 62 79 20 74 65 6c 6c  |the user by tell|
00009090  69 6e 67 20 74 68 65 6d  20 77 68 61 74 20 6d 6f  |ing them what mo|
000090a0  64 75 6c 65 73 20 72 65  61 6c 6c 79 20 64 6f 20  |dules really do |
000090b0  77 6f 72 6b 20 61 6e 64  0a 69 66 20 74 68 65 79  |work and.if they|
000090c0  20 66 6f 6c 6c 6f 77 20  61 6c 6c 20 74 68 65 20  | follow all the |
000090d0  73 74 61 6e 64 61 72 64  73 2e 20 20 49 20 68 6f  |standards.  I ho|
000090e0  70 65 20 74 6f 20 70 75  62 6c 69 73 68 20 61 20  |pe to publish a |
000090f0  63 72 69 74 65 72 69 61  20 73 6f 20 74 68 61 74  |criteria so that|
00009100  0a 77 72 69 74 65 72 73  20 63 61 6e 20 63 68 65  |.writers can che|
00009110  63 6b 20 74 68 65 69 72  20 6d 6f 64 75 6c 65 73  |ck their modules|
00009120  20 61 67 61 69 6e 73 74  20 74 68 61 74 2e 0a 0a  | against that...|
00009130  53 79 73 74 65 6d 20 61  6e 64 20 6e 6f 72 6d 61  |System and norma|
00009140  6c 20 76 61 72 69 61 62  6c 65 73 0a 7e 7e 7e 7e  |l variables.~~~~|
00009150  7e 7e 7e 7e 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |~~~~~~~~~~~~~~~~|
00009160  7e 7e 7e 7e 7e 7e 7e 0a  0a 53 65 76 65 72 61 6c  |~~~~~~~..Several|
00009170  20 73 79 73 74 65 6d 20  76 61 72 69 61 62 6c 65  | system variable|
00009180  73 20 61 72 65 20 73 65  74 20 75 70 20 73 6f 20  |s are set up so |
00009190  61 73 20 74 6f 20 6d 61  6b 65 20 79 6f 75 72 20  |as to make your |
000091a0  74 61 73 6b 20 65 61 73  69 65 72 3b 20 74 68 65  |task easier; the|
000091b0  73 65 20 61 72 65 0a 0a  20 53 74 69 63 6b 79 42  |se are.. StickyB|
000091c0  72 64 24 44 69 72 20 20  20 20 20 20 20 20 20 3d  |rd$Dir         =|
000091d0  20 6d 61 69 6e 20 21 53  74 69 63 6b 79 42 72 64  | main !StickyBrd|
000091e0  20 64 69 72 65 63 74 6f  72 79 0a 20 53 74 69 63  | directory. Stic|
000091f0  6b 79 42 72 64 52 65 73  24 44 69 72 20 20 20 20  |kyBrdRes$Dir    |
00009200  20 20 3d 20 21 53 74 69  63 6b 79 42 72 64 20 72  |  = !StickyBrd r|
00009210  65 73 6f 75 72 63 65 20  64 69 72 65 63 74 6f 72  |esource director|
00009220  79 0a 20 53 74 69 63 6b  79 42 72 64 45 78 74 24  |y. StickyBrdExt$|
00009230  44 69 72 20 20 20 20 20  20 3d 20 21 53 74 69 63  |Dir      = !Stic|
00009240  6b 79 42 72 64 20 65 78  74 65 6e 74 69 6f 6e 73  |kyBrd extentions|
00009250  20 64 69 72 65 63 74 6f  72 79 0a 0a 52 61 69 73  | directory..Rais|
00009260  69 6e 67 20 65 72 72 6f  72 73 0a 7e 7e 7e 7e 7e  |ing errors.~~~~~|
00009270  7e 7e 7e 7e 7e 7e 7e 7e  7e 0a 0a 59 6f 75 72 20  |~~~~~~~~~..Your |
00009280  6d 6f 64 75 6c 65 73 20  6e 65 65 64 20 74 6f 20  |modules need to |
00009290  72 61 69 73 65 20 65 72  72 6f 72 73 20 69 6e 20  |raise errors in |
000092a0  61 20 75 6e 69 66 6f 72  6d 20 77 61 79 2e 20 20  |a uniform way.  |
000092b0  54 68 69 73 20 65 6e 73  75 72 65 73 20 74 68 61  |This ensures tha|
000092c0  74 20 74 68 65 0a 75 73  65 72 20 64 6f 65 73 6e  |t the.user doesn|
000092d0  27 74 20 67 65 74 20 63  6f 6e 66 75 73 65 64 20  |'t get confused |
000092e0  61 6e 64 20 74 68 61 74  20 74 68 69 6e 67 73 20  |and that things |
000092f0  61 72 65 20 70 72 65 73  65 6e 74 65 64 20 63 6c  |are presented cl|
00009300  65 61 72 6c 79 20 61 6e  64 0a 77 69 74 68 20 74  |early and.with t|
00009310  68 65 20 6d 69 6e 69 6d  75 6d 20 6f 66 20 66 75  |he minimum of fu|
00009320  73 73 2e 0a 54 68 65 20  66 69 72 73 74 20 74 68  |ss..The first th|
00009330  69 6e 67 20 74 6f 20 64  6f 20 69 73 20 74 6f 20  |ing to do is to |
00009340  64 69 73 74 69 6e 67 75  69 73 68 20 62 65 74 77  |distinguish betw|
00009350  65 65 6e 20 66 61 74 61  6c 20 61 6e 64 20 6e 6f  |een fatal and no|
00009360  6e 2d 66 61 74 61 6c 20  65 72 72 6f 72 73 2c 0a  |n-fatal errors,.|
00009370  61 73 20 74 68 65 20 75  73 65 72 20 77 6f 75 6c  |as the user woul|
00009380  64 20 70 72 6f 62 61 62  6c 79 20 6c 69 6b 65 20  |d probably like |
00009390  74 6f 20 74 72 79 20 61  6e 64 20 73 61 6c 76 61  |to try and salva|
000093a0  67 65 20 73 6f 6d 65 20  77 6f 72 6b 20 69 66 20  |ge some work if |
000093b0  74 68 65 20 77 6f 72 73  74 0a 68 61 70 70 65 6e  |the worst.happen|
000093c0  73 2e 20 20 49 66 20 79  6f 75 20 63 61 6e 20 72  |s.  If you can r|
000093d0  65 63 6f 76 65 72 20 66  72 6f 6d 20 61 6e 20 65  |ecover from an e|
000093e0  72 72 6f 72 2c 20 65 76  65 6e 20 69 66 20 69 74  |rror, even if it|
000093f0  20 6d 65 61 6e 73 20 6c  6f 73 69 6e 67 20 73 6f  | means losing so|
00009400  6d 65 0a 76 61 72 69 61  62 6c 65 73 2c 20 73 65  |me.variables, se|
00009410  6e 64 20 61 20 6e 6f 6e  2d 66 61 74 61 6c 20 65  |nd a non-fatal e|
00009420  72 72 6f 72 2e 0a 49 66  20 74 68 65 72 65 20 69  |rror..If there i|
00009430  73 20 6e 6f 20 63 68 61  6e 63 65 20 6f 66 20 63  |s no chance of c|
00009440  6f 6d 69 6e 67 20 6f 75  74 20 6f 66 20 74 68 65  |oming out of the|
00009450  20 65 72 72 6f 72 20 73  65 6e 64 20 61 20 66 61  | error send a fa|
00009460  74 61 6c 20 65 72 72 6f  72 20 72 65 71 75 65 73  |tal error reques|
00009470  74 0a 62 65 63 61 75 73  65 20 74 68 65 20 63 6f  |t.because the co|
00009480  6d 70 75 74 65 72 20 6d  69 67 68 74 20 6c 6f 63  |mputer might loc|
00009490  6b 20 75 70 20 69 66 20  79 6f 75 20 74 72 79 20  |k up if you try |
000094a0  74 6f 20 73 6f 72 74 20  69 74 20 6f 75 74 20 6f  |to sort it out o|
000094b0  72 20 74 65 72 6d 69 6e  61 74 65 0a 79 6f 75 72  |r terminate.your|
000094c0  20 6d 6f 64 75 6c 65 2e  0a 44 6f 6e 27 74 20 61  | module..Don't a|
000094d0  64 64 20 74 68 65 20 77  6f 72 64 20 66 61 74 61  |dd the word fata|
000094e0  6c 20 74 6f 20 79 6f 75  72 20 65 72 72 6f 72 20  |l to your error |
000094f0  74 65 78 74 20 69 66 20  79 6f 75 20 61 72 65 20  |text if you are |
00009500  72 61 69 73 69 6e 67 20  61 20 66 61 74 61 6c 20  |raising a fatal |
00009510  65 72 72 6f 72 2c 0a 74  68 69 73 20 69 73 20 64  |error,.this is d|
00009520  6f 6e 65 20 66 6f 72 20  79 6f 75 2e 0a 41 20 6e  |one for you..A n|
00009530  6f 6e 2d 66 61 74 61 6c  20 65 72 72 6f 72 20 73  |on-fatal error s|
00009540  68 6f 75 6c 64 20 72 65  61 64 20 73 6f 6d 74 68  |hould read somth|
00009550  69 6e 67 20 6c 69 6b 65  0a 20 3c 6d 6f 64 75 6c  |ing like. <modul|
00009560  65 20 6e 61 6d 65 3e 3a  20 3c 65 72 72 6f 72 20  |e name>: <error |
00009570  64 65 73 63 72 69 70 74  69 6f 6e 3e 0a 73 6f 20  |description>.so |
00009580  74 68 61 74 20 70 65 72  68 61 70 73 20 69 74 20  |that perhaps it |
00009590  6d 69 67 68 74 20 63 6f  6d 65 20 6f 75 74 20 61  |might come out a|
000095a0  73 3a 0a 20 43 6f 6d 6d  61 6e 64 3a 20 43 61 6e  |s:. Command: Can|
000095b0  6e 6f 74 20 65 78 65 63  75 74 65 20 63 6f 6d 6d  |not execute comm|
000095c0  61 6e 64 2e 0a 46 61 74  61 6c 20 65 72 72 6f 72  |and..Fatal error|
000095d0  73 20 73 68 6f 75 6c 64  20 66 6f 6c 6c 6f 77 20  |s should follow |
000095e0  74 68 65 20 73 61 6d 65  20 72 75 6c 65 73 2c 20  |the same rules, |
000095f0  62 75 74 20 74 68 65 20  74 65 78 74 20 46 61 74  |but the text Fat|
00009600  61 6c 3b 20 69 73 20 61  64 64 65 64 0a 62 65 66  |al; is added.bef|
00009610  6f 72 65 20 74 68 65 20  65 72 72 6f 72 20 69 73  |ore the error is|
00009620  20 66 6c 61 67 67 65 64  2c 20 73 6f 20 69 6e 20  | flagged, so in |
00009630  67 65 6e 65 72 61 6c 20  66 61 74 61 6c 20 65 72  |general fatal er|
00009640  72 6f 72 73 20 77 69 6c  6c 20 72 65 61 64 20 73  |rors will read s|
00009650  6f 6d 65 74 68 69 6e 67  0a 6c 69 6b 65 3a 0a 20  |omething.like:. |
00009660  46 61 74 61 6c 3b 20 43  6f 6d 6d 61 6e 64 3a 20  |Fatal; Command: |
00009670  43 61 6e 6e 6f 74 20 65  78 65 63 75 74 65 20 63  |Cannot execute c|
00009680  6f 6d 6d 61 6e 64 2e 0a  59 6f 75 20 6d 61 79 20  |ommand..You may |
00009690  6e 6f 74 65 20 74 68 61  74 20 21 53 74 69 63 6b  |note that !Stick|
000096a0  79 42 72 64 20 73 65 6e  64 73 20 72 6f 75 6e 64  |yBrd sends round|
000096b0  20 61 20 70 6f 6c 6c 20  6d 65 73 73 61 67 65 20  | a poll message |
000096c0  31 33 20 61 66 74 65 72  20 61 20 66 61 74 61 6c  |13 after a fatal|
000096d0  0a 65 72 72 6f 72 2c 20  62 75 74 20 69 66 20 79  |.error, but if y|
000096e0  6f 75 72 20 6d 6f 64 75  6c 65 20 63 61 75 73 65  |our module cause|
000096f0  64 20 74 68 65 20 65 72  72 6f 72 20 64 6f 6e 27  |d the error don'|
00009700  74 20 72 65 73 70 6f 6e  64 2c 20 61 73 20 74 68  |t respond, as th|
00009710  69 73 20 63 6f 6c 75 6c  64 0a 73 74 61 72 74 20  |is coluld.start |
00009720  61 20 6e 65 76 65 72 20  65 6e 64 69 6e 67 20 63  |a never ending c|
00009730  79 63 6c 65 2e 0a 21 53  74 69 63 6b 79 42 72 64  |ycle..!StickyBrd|
00009740  20 64 6f 65 73 6e 27 74  20 61 63 74 75 61 6c 6c  | doesn't actuall|
00009750  79 20 75 73 65 20 65 72  72 6f 72 20 6e 75 6d 62  |y use error numb|
00009760  65 72 73 20 61 73 20 73  75 63 68 2c 20 74 68 65  |ers as such, the|
00009770  20 6d 6f 64 75 6c 65 20  6e 61 6d 65 20 69 73 0a  | module name is.|
00009780  75 73 65 64 20 74 6f 20  64 69 73 74 69 6e 67 75  |used to distingu|
00009790  69 73 68 20 65 72 72 6f  72 73 2e 20 20 54 68 65  |ish errors.  The|
000097a0  72 65 66 6f 72 65 20 64  6f 6e 27 74 20 69 6e 63  |refore don't inc|
000097b0  6c 75 64 65 20 74 68 69  6e 67 73 20 6c 69 6b 65  |lude things like|
000097c0  20 28 69 6e 74 2e 20 65  72 72 6f 72 0a 63 6f 64  | (int. error.cod|
000097d0  65 20 78 78 78 29 20 69  6e 20 74 68 65 20 6d 65  |e xxx) in the me|
000097e0  73 73 61 67 65 2c 20 62  75 74 20 79 6f 75 20 63  |ssage, but you c|
000097f0  61 6e 20 75 73 65 20 28  74 79 70 65 20 3d 20 78  |an use (type = x|
00009800  29 20 61 73 20 74 68 69  73 20 73 65 70 65 72 61  |) as this sepera|
00009810  74 65 73 0a 73 69 6d 69  6c 61 72 20 65 72 72 6f  |tes.similar erro|
00009820  72 73 20 61 6e 64 20 73  74 6f 70 73 20 28 68 6f  |rs and stops (ho|
00009830  70 65 66 75 6c 6c 79 29  20 63 6f 6e 66 75 73 69  |pefully) confusi|
00009840  6f 6e 2e 0a 54 68 65 73  65 20 61 72 65 20 6f 6e  |on..These are on|
00009850  6c 79 20 67 75 69 64 65  6c 69 6e 65 73 2c 20 70  |ly guidelines, p|
00009860  6c 65 61 73 65 20 64 6f  6e 27 74 20 74 61 6b 65  |lease don't take|
00009870  20 74 68 65 6d 20 61 73  20 61 20 73 74 72 61 69  | them as a strai|
00009880  67 68 74 2d 6a 61 63 6b  65 74 0a 61 73 20 74 68  |ght-jacket.as th|
00009890  69 73 20 77 69 6c 6c 20  64 6f 20 6d 6f 72 65 20  |is will do more |
000098a0  68 61 72 6d 20 74 68 61  6e 20 67 6f 6f 64 2e 0a  |harm than good..|
000098b0  0a 57 68 65 6e 20 64 65  62 75 67 67 69 6e 67 20  |.When debugging |
000098c0  61 20 6d 6f 64 75 6c 65  2c 20 79 6f 75 20 6d 61  |a module, you ma|
000098d0  79 20 67 65 74 20 6f 64  64 20 65 72 72 6f 72 73  |y get odd errors|
000098e0  20 6c 69 6b 65 20 4e 6f  20 53 75 63 68 20 46 75  | like No Such Fu|
000098f0  6e 63 74 69 6f 6e 2f 0a  50 72 6f 63 65 64 75 72  |nction/.Procedur|
00009900  65 20 61 74 20 6c 69 6e  65 20 31 38 30 33 30 20  |e at line 18030 |
00009910  6f 72 20 73 6f 6d 65 20  6f 74 68 65 72 20 68 69  |or some other hi|
00009920  67 68 20 6e 75 6d 62 65  72 2e 20 20 54 68 69 73  |gh number.  This|
00009930  20 69 73 20 62 65 63 75  61 73 65 0a 21 53 74 69  | is becuase.!Sti|
00009940  63 6b 79 42 72 64 20 6d  6f 64 75 6c 65 73 20 61  |ckyBrd modules a|
00009950  72 65 20 61 63 74 75 61  6c 6c 79 20 6c 69 62 72  |re actually libr|
00009960  61 72 69 65 73 20 61 70  70 65 6e 64 65 64 20 74  |aries appended t|
00009970  6f 20 42 41 53 49 43 2e  20 20 57 68 65 6e 0a 21  |o BASIC.  When.!|
00009980  53 74 69 63 6b 79 42 72  64 20 63 61 6c 6c 73 20  |StickyBrd calls |
00009990  61 20 66 75 6e 63 74 69  6f 6e 20 6f 72 20 70 72  |a function or pr|
000099a0  6f 63 65 64 75 72 65 20  6e 6f 74 20 69 6e 20 74  |ocedure not in t|
000099b0  68 65 20 6d 61 69 6e 20  70 72 6f 67 72 61 6d 2c  |he main program,|
000099c0  20 61 6c 6c 0a 6c 69 62  72 61 72 69 65 73 20 61  | all.libraries a|
000099d0  72 65 20 73 65 61 72 63  68 65 64 2c 20 61 6e 64  |re searched, and|
000099e0  20 69 66 20 74 68 65 20  70 72 6f 63 65 64 75 72  | if the procedur|
000099f0  65 20 73 74 69 6c 6c 20  63 61 6e 6e 6f 74 20 62  |e still cannot b|
00009a00  65 20 66 6f 75 6e 64 2c  20 74 68 65 0a 61 62 6f  |e found, the.abo|
00009a10  76 65 20 65 72 72 6f 72  20 69 73 20 72 65 70 6f  |ve error is repo|
00009a20  72 74 65 64 20 61 74 20  74 68 65 20 6c 61 73 74  |rted at the last|
00009a30  20 6c 69 6e 65 20 69 6e  20 74 68 65 20 6d 61 69  | line in the mai|
00009a40  6e 20 70 72 6f 67 72 61  6d 2e 0a 57 68 65 6e 20  |n program..When |
00009a50  79 6f 75 20 67 65 74 20  61 6e 20 65 72 72 6f 72  |you get an error|
00009a60  20 6c 69 6b 65 20 74 68  69 73 20 69 74 20 69 73  | like this it is|
00009a70  20 70 72 6f 62 61 62 6c  79 20 69 6e 20 61 20 6d  | probably in a m|
00009a80  6f 64 75 6c 65 2c 20 73  6f 20 63 68 65 63 6b 20  |odule, so check |
00009a90  74 68 72 6f 75 67 68 0a  74 68 6f 72 6f 75 67 68  |through.thorough|
00009aa0  6c 79 2e 0a 0a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |ly...***********|
00009ab0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00009af0  2a 2a 0a 0a 49 66 20 74  68 65 72 65 20 69 73 20  |**..If there is |
00009b00  61 20 66 65 61 74 75 72  65 20 79 6f 75 20 77 6f  |a feature you wo|
00009b10  75 6c 64 20 6c 69 6b 65  20 74 6f 20 73 65 65 20  |uld like to see |
00009b20  69 6e 63 6c 75 64 65 64  20 69 6e 20 74 68 65 20  |included in the |
00009b30  6e 65 78 74 20 76 65 72  73 69 6f 6e 20 6f 66 0a  |next version of.|
00009b40  21 53 74 69 63 6b 79 42  72 64 2c 20 70 6c 65 61  |!StickyBrd, plea|
00009b50  73 65 20 77 72 69 74 65  20 61 6e 64 20 74 65 6c  |se write and tel|
00009b60  6c 20 6d 65 2e 20 20 41  6c 73 6f 2c 20 69 66 20  |l me.  Also, if |
00009b70  79 6f 75 20 77 6f 75 6c  64 20 6c 69 6b 65 20 61  |you would like a|
00009b80  6e 79 20 6e 65 77 0a 70  6f 6c 6c 20 6d 65 73 73  |ny new.poll mess|
00009b90  61 67 65 73 2c 20 69 6e  74 65 72 66 61 63 65 20  |ages, interface |
00009ba0  63 61 6c 6c 73 20 6f 72  20 61 6e 79 74 68 69 6e  |calls or anythin|
00009bb0  67 20 65 6c 73 65 20 61  64 64 65 64 20 66 6f 72  |g else added for|
00009bc0  20 74 68 65 20 6d 6f 64  75 6c 65 20 73 69 64 65  | the module side|
00009bd0  20 6f 66 0a 74 68 69 6e  67 73 2c 20 64 72 6f 70  | of.things, drop|
00009be0  20 6d 65 20 61 20 6c 69  6e 65 2e 20 49 20 77 6f  | me a line. I wo|
00009bf0  6e 27 74 20 6b 6e 6f 77  20 77 68 61 74 20 79 6f  |n't know what yo|
00009c00  75 20 77 61 6e 74 20 75  6e 6c 65 73 73 20 79 6f  |u want unless yo|
00009c10  75 20 74 65 6c 6c 20 6d  65 2e 0a 49 27 6d 20 68  |u tell me..I'm h|
00009c20  6f 70 69 6e 67 20 77 65  20 77 69 6c 6c 20 62 65  |oping we will be|
00009c30  20 61 62 6c 65 20 74 6f  20 73 74 61 6e 64 61 72  | able to standar|
00009c40  64 69 73 65 20 6f 6e 20  73 6f 6d 65 20 6d 65 73  |dise on some mes|
00009c50  73 61 67 65 73 20 61 6e  64 20 77 61 79 73 20 6f  |sages and ways o|
00009c60  66 20 64 6f 69 6e 67 0a  74 68 69 6e 67 73 2c 20  |f doing.things, |
00009c70  61 73 20 77 65 6c 6c 20  61 73 20 69 6e 63 6f 72  |as well as incor|
00009c80  70 6f 72 61 74 69 6e 67  20 66 61 63 69 6c 69 74  |porating facilit|
00009c90  69 65 73 20 74 6f 20 67  65 6e 65 72 61 74 65 20  |ies to generate |
00009ca0  6e 65 77 20 70 6f 6c 6c  20 63 6f 64 65 73 0a 28  |new poll codes.(|
00009cb0  61 63 74 75 61 6c 6c 79  20 74 68 69 73 20 63 61  |actually this ca|
00009cc0  6e 20 62 65 20 64 6f 6e  65 20 61 74 20 70 72 65  |n be done at pre|
00009cd0  73 65 6e 74 2c 20 62 75  74 20 69 74 27 73 20 62  |sent, but it's b|
00009ce0  65 74 74 65 72 20 74 6f  20 75 73 65 20 74 68 65  |etter to use the|
00009cf0  20 6d 65 73 73 61 67 65  0a 73 79 73 74 65 6d 29  | message.system)|
00009d00  20 61 6e 64 20 73 75 63  68 20 74 68 69 6e 67 73  | and such things|
00009d10  2e 0a 49 66 20 79 6f 75  20 61 72 65 20 77 72 69  |..If you are wri|
00009d20  74 69 6e 67 20 74 6f 20  67 65 74 20 61 6e 20 69  |ting to get an i|
00009d30  6e 74 65 72 6e 61 6c 20  74 79 70 65 20 6e 75 6d  |nternal type num|
00009d40  62 65 72 20 61 6e 64 2f  6f 72 20 61 20 6d 65 73  |ber and/or a mes|
00009d50  73 61 67 65 20 6e 75 6d  62 65 72 28 73 29 0a 70  |sage number(s).p|
00009d60  6c 65 61 73 65 20 69 6e  63 6c 75 64 65 20 61 73  |lease include as|
00009d70  20 6d 61 6e 79 20 64 65  74 61 69 6c 73 20 61 62  | many details ab|
00009d80  6f 75 74 20 79 6f 75 72  20 6d 6f 64 75 6c 65 20  |out your module |
00009d90  61 73 20 70 6f 73 73 69  62 6c 65 20 2d 20 6e 61  |as possible - na|
00009da0  6d 65 2c 20 70 75 72 70  6f 73 65 0a 28 74 72 79  |me, purpose.(try|
00009db0  20 61 6e 64 20 65 78 70  6c 61 69 6e 20 65 78 61  | and explain exa|
00009dc0  63 74 6c 79 20 77 68 61  74 20 69 74 20 77 69 6c  |ctly what it wil|
00009dd0  6c 20 64 6f 29 20 61 75  74 68 6f 72 2c 20 61 6e  |l do) author, an|
00009de0  64 20 73 75 63 68 20 74  68 69 6e 67 73 2e 20 20  |d such things.  |
00009df0  54 68 65 0a 70 6f 69 6e  74 20 61 62 6f 75 74 20  |The.point about |
00009e00  74 68 69 73 20 69 73 20  74 68 61 74 20 49 20 63  |this is that I c|
00009e10  61 6e 20 77 61 72 6e 20  79 6f 75 20 69 66 20 79  |an warn you if y|
00009e20  6f 75 72 20 6d 6f 64 75  6c 65 20 77 69 6c 6c 20  |our module will |
00009e30  63 6c 61 73 68 20 77 69  74 68 0a 61 6e 79 62 6f  |clash with.anybo|
00009e40  64 79 20 65 6c 73 65 27  73 2e 20 20 49 20 73 75  |dy else's.  I su|
00009e50  67 67 65 73 74 2c 20 77  68 65 6e 20 77 72 69 74  |ggest, when writ|
00009e60  69 6e 67 20 6d 6f 64 75  6c 65 73 2c 20 74 68 61  |ing modules, tha|
00009e70  74 20 79 6f 75 20 74 65  73 74 20 74 68 65 6d 20  |t you test them |
00009e80  77 69 74 68 0a 61 6e 20  61 72 62 69 74 61 72 79  |with.an arbitary|
00009e90  20 69 6e 74 65 72 6e 61  6c 20 74 79 70 65 20 6e  | internal type n|
00009ea0  75 6d 62 65 72 2c 20 6f  72 20 6d 65 73 73 61 67  |umber, or messag|
00009eb0  65 20 6e 75 6d 62 65 72  2c 20 61 6e 64 20 6f 62  |e number, and ob|
00009ec0  74 61 69 6e 20 61 20 27  72 65 61 6c 27 20 6f 6e  |tain a 'real' on|
00009ed0  65 0a 77 68 65 6e 20 69  74 20 5b 74 68 65 20 6d  |e.when it [the m|
00009ee0  6f 64 75 6c 65 5d 20 69  73 20 66 69 6e 69 73 68  |odule] is finish|
00009ef0  65 64 2e 0a 52 45 4d 45  4d 42 45 52 3a 20 69 66  |ed..REMEMBER: if|
00009f00  20 79 6f 75 72 20 6d 6f  64 75 6c 65 20 64 6f 65  | your module doe|
00009f10  73 6e 27 74 20 63 6f 6d  65 20 6f 66 66 2c 20 77  |sn't come off, w|
00009f20  72 69 74 65 20 61 6e 64  20 74 65 6c 6c 20 6d 65  |rite and tell me|
00009f30  20 71 75 6f 74 69 6e 67  20 61 6e 79 0a 69 6e 74  | quoting any.int|
00009f40  65 72 6e 61 6c 20 74 79  70 65 20 61 6e 64 20 6d  |ernal type and m|
00009f50  65 73 73 61 67 65 20 6e  75 6d 62 65 72 73 20 79  |essage numbers y|
00009f60  6f 75 20 6d 61 79 20 68  61 76 65 20 62 65 65 6e  |ou may have been|
00009f70  20 61 6c 6c 6f 63 61 74  65 64 20 61 73 20 73 6f  | allocated as so|
00009f80  6d 65 6f 6e 65 20 65 6c  73 65 0a 63 61 6e 20 75  |meone else.can u|
00009f90  73 65 20 74 68 65 6d 2e  0a 54 68 65 20 61 64 64  |se them..The add|
00009fa0  72 65 73 73 20 74 6f 20  73 65 6e 64 20 6d 6f 64  |ress to send mod|
00009fb0  75 6c 65 73 20 74 6f 2c  20 72 65 71 75 65 73 74  |ules to, request|
00009fc0  73 20 66 6f 72 20 69 6e  74 65 72 6e 61 6c 20 74  |s for internal t|
00009fd0  79 70 65 20 6e 75 6d 62  65 72 73 20 61 6e 64 0a  |ype numbers and.|
00009fe0  6d 65 73 73 61 67 65 20  6e 75 6d 62 65 72 73 2c  |message numbers,|
00009ff0  20 61 6e 64 20 74 68 65  20 61 64 64 72 65 73 73  | and the address|
0000a000  20 66 6f 72 20 67 65 6e  65 72 61 6c 20 63 6f 72  | for general cor|
0000a010  72 65 73 70 6f 6e 64 61  6e 63 65 20 69 73 3a 0a  |respondance is:.|
0000a020  0a 4d 72 20 44 2e 20 53  65 65 72 79 2c 0a 31 35  |.Mr D. Seery,.15|
0000a030  20 46 61 72 6d 20 57 61  6c 6b 0a 42 65 6e 74 73  | Farm Walk.Bents|
0000a040  20 46 61 72 6d 20 45 73  74 61 74 65 0a 4c 69 74  | Farm Estate.Lit|
0000a050  74 6c 65 62 6f 72 6f 75  67 68 0a 4c 61 6e 63 61  |tleborough.Lanca|
0000a060  73 68 69 72 65 0a 4f 4c  31 35 20 38 4c 4a 0a 0a  |shire.OL15 8LJ..|
0000a070  50 6c 65 61 73 65 20 6d  61 72 6b 20 79 6f 75 72  |Please mark your|
0000a080  20 65 6e 76 65 6c 6f 70  65 20 27 53 74 69 63 6b  | envelope 'Stick|
0000a090  79 42 72 64 27 2e 0a 0a  49 66 20 79 6f 75 20 61  |yBrd'...If you a|
0000a0a0  72 65 20 73 65 6e 64 69  6e 67 20 61 20 64 69 73  |re sending a dis|
0000a0b0  63 2c 20 74 68 65 6e 20  70 6c 65 61 73 65 20 70  |c, then please p|
0000a0c0  61 63 6b 61 67 65 20 69  74 20 63 61 72 65 66 75  |ackage it carefu|
0000a0d0  6c 6c 79 2c 20 62 75 74  20 4e 4f 54 20 73 6f 0a  |lly, but NOT so.|
0000a0e0  74 68 61 74 20 69 74 20  63 61 6e 20 77 69 74 68  |that it can with|
0000a0f0  73 74 61 6e 64 20 61 20  6e 75 63 6c 65 61 72 20  |stand a nuclear |
0000a100  68 6f 6c 6f 63 61 75 73  74 20 28 21 29 2e 20 20  |holocaust (!).  |
0000a110  4b 65 65 70 20 61 20 62  61 63 6b 75 70 20 6f 66  |Keep a backup of|
0000a120  20 61 6e 79 20 70 72 6f  67 72 61 6d 73 0a 79 6f  | any programs.yo|
0000a130  75 20 73 65 6e 64 2c 20  61 6e 64 20 73 74 61 74  |u send, and stat|
0000a140  65 20 77 68 65 74 68 65  72 20 79 6f 75 20 61 72  |e whether you ar|
0000a150  65 20 77 69 6c 6c 69 6e  67 20 74 6f 20 68 61 76  |e willing to hav|
0000a160  65 20 79 6f 75 72 20 6d  6f 64 75 6c 65 20 69 6e  |e your module in|
0000a170  63 6c 75 64 65 64 20 69  6e 0a 61 6e 79 20 66 75  |cluded in.any fu|
0000a180  74 75 72 65 20 76 65 72  73 69 6f 6e 73 2c 20 6f  |ture versions, o|
0000a190  74 68 65 72 77 69 73 65  20 49 20 77 6f 6e 27 74  |therwise I won't|
0000a1a0  20 6b 6e 6f 77 2e 20 20  54 68 65 20 63 6f 70 79  | know.  The copy|
0000a1b0  72 69 67 68 74 20 74 6f  20 61 6c 6c 20 6d 6f 64  |right to all mod|
0000a1c0  75 6c 65 73 0a 72 65 6d  61 69 6e 73 20 79 6f 75  |ules.remains you|
0000a1d0  72 73 2c 20 61 6e 64 20  61 6c 74 68 6f 75 67 68  |rs, and although|
0000a1e0  20 49 20 77 6f 75 6c 64  20 65 6e 63 6f 75 72 61  | I would encoura|
0000a1f0  67 65 20 79 6f 75 20 74  6f 20 6b 65 65 70 20 74  |ge you to keep t|
0000a200  68 65 6d 20 50 44 2c 20  49 20 63 61 6e 6e 6f 74  |hem PD, I cannot|
0000a210  0a 66 6f 72 63 65 20 79  6f 75 20 74 6f 20 73 65  |.force you to se|
0000a220  74 20 74 68 65 6d 20 61  73 20 61 6e 79 74 68 69  |t them as anythi|
0000a230  6e 67 2e 0a 0a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |ng...***********|
0000a240  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000a280  2a 2a 0a 0a 59 6f 75 72  73 2c 20 0a 20 20 20 20  |**..Yours, .    |
0000a290  20 20 20 44 61 76 69 64  20 53 65 65 72 79 0a 0a  |   David Seery..|
0000a2a0  4f 74 68 65 72 20 73 6f  75 72 63 65 73 20 6f 66  |Other sources of|
0000a2b0  20 68 65 6c 70 20 61 72  65 3a 0a 20 21 4d 61 6e  | help are:. !Man|
0000a2c0  75 61 6c 20 20 20 20 20  20 20 20 20 2d 20 75 73  |ual         - us|
0000a2d0  65 72 20 67 75 69 64 65  0a 20 43 6f 6d 6d 61 6e  |er guide. Comman|
0000a2e0  64 20 21 48 65 6c 70 20  20 20 2d 20 68 65 6c 70  |d !Help   - help|
0000a2f0  20 6f 6e 20 6d 6f 64 75  6c 65 20 27 63 6f 6d 6d  | on module 'comm|
0000a300  61 6e 64 27 0a 20 44 69  72 43 68 61 6e 67 65 20  |and'. DirChange |
0000a310  21 48 65 6c 70 20 2d 20  68 65 6c 70 20 6f 6e 20  |!Help - help on |
0000a320  6d 6f 64 75 6c 65 20 27  64 69 72 63 68 61 6e 67  |module 'dirchang|
0000a330  65 27 0a 0a a9 20 44 61  76 69 64 20 4a 2e 20 53  |e'... David J. S|
0000a340  65 65 72 79 20 31 39 39  32 0a 0a 49 20 68 6f 70  |eery 1992..I hop|
0000a350  65 20 79 6f 75 20 66 69  6e 64 20 74 68 69 73 20  |e you find this |
0000a360  6d 61 6e 75 61 6c 20 61  6e 64 20 21 53 74 69 63  |manual and !Stic|
0000a370  6b 79 42 72 64 20 69 74  73 65 6c 66 20 75 73 65  |kyBrd itself use|
0000a380  66 75 6c 2e 20 20 47 6f  64 20 62 6c 65 73 73 2e  |ful.  God bless.|
0000a390  0a                                                |.|
0000a391