Home » Archimedes archive » Acorn User » AU 1996-12 B.adf » Features » PCA/Docs/Msg_Spec
PCA/Docs/Msg_Spec
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Archimedes archive » Acorn User » AU 1996-12 B.adf » Features |
| Filename: | PCA/Docs/Msg_Spec |
| Read OK: | ✔ |
| File size: | 71BE bytes |
| Load address: | 0000 |
| Exec address: | 0000 |
File contents
Plug In Compliant Application protocol
======================================
Plug In Compliant Application Message specification
===================================================
Author : Rob Davison (rdavison@xtra.co.nz)
Date : 28/08/96 Status : Release 1
Notes: Filetype is divided into two fields with this format:
b 0-12 RISC OS filetype
b13-31 reserved - zero.
On reading, please mask bits 13-31 out before checking the filetype.
Strings are null terminated but supporting applications should accept Ctrl.
terminated (ASCII 0-31).
'Address of base' is the beginning of the data structure which contains the
object.
'Offset to object' is the offset from the Address of base to the
object-of-interest
For example, the 'Offset to object' of a sprite is the offset to the sprite
itself (base!8 for the first sprite in a sprite area). The 'Address of base'
is the address of the sprite area in which the sprite resides. For objects
where the offset has no meaning the offset to the object must be zero.
The PCA references objects using 'tags'. Each tag is usually 16 bytes in
length and its format is defined thus:
tag+0 = Address of base. (anchor)
tag+4 = Offset to object from base.
tag+8 = Length of object. (if applicable - see note below)
tag+12 = Extension size and flags
b0-15 These bits are to provide for expansion of the size of a
tag by up to 65532 bytes. Typically, this is for app. or object
specific data. This document specifies two extensions to show
you how it's done. Details below.
b16-31 (reserved, set to zero)
The first two values in a tag are most important as they are pointers to the
address of the object and the base of the data structure containing it.
Remote tasks must *always* reference an object by reading these values.
Generally speaking, Remote tasks can usually trust the address and offset
until the next Wimp_Poll but if in doubt, re-read it from the tag. The Local
task has the responsibility of creating the object's tag when the object
joins the PCA system, updating the relevant fields in the tag if the object
is moved or resized and discarding the tag when it is sure it is no longer
needed. Tags must themselves be in a common memory area and they must not
move during the lifetime of the object in the PCA system. Clares provide a
small module called 'PCASupport' which may be freely distributed by
registered PCA developers to facilitate the creation of PCA tags for
applications which do not want to create tags themselves.
Notes:
Many objects store their length within the object data structure itself and
in that case you must use the value stored within the object's data instead
of relying on the length field in the tag. It is intended for object types
which include no record of their size (text for example).
Tag extensions must adhere to the following standard:
tag+12.b0-15 = (bytes required+4). Multiples of 4 bytes only.
tag+16 extension id. Types 0-&fff are reserved for Clares PCA.
Other values are allocated in line with SWI/Message
chunk numbers for application developers.
(extended data dependant on tag id)
To give an example of a tag extension we define two tag extensions which may
be used with PCA text objects.
Simple text object
------------------
tag+12 8
tag+16 &FFF
tag+20 length of buffer allocated to object
(ie the remote task can extend the size of the text (as given at tag+8)
until its size reaches tag+20 bytes before calling Message_Resize.
Edited text object
------------------
tag+12 16
tag+16 &FFE
tag+20 length of buffer for first chunk
tag+24 offset to rest of text from object base
tag+28 length of rest of text
Edited text objects are split into two separate parts, the pointer to base
at the beginning of the tag, points to the start of the first chunk of text,
the offset to object points to the end of this chunk of text (= the caret
position) while the values at tag+24 and tag+28 point to the rest of the
text. Suitable manipulation of these values should allow a text editor to
work with PCA. Note: this has not been tested with any code - any comments
please contact the author of PCA.
The tag extension system is potentially very powerful but please do not
abuse it. If everyone who ever writes a PCA program creates a tag extension
for their own object format then chaos will reign and the PCA system will
become useless. (Anyone questioning this is invited to use the specification
document for the TIFF file format as bedside reading - a perfect example of
a tagged file format gone wrong). In general, the basic tag structure or the
'pca text' extension defined above will do for most data types. If you
really feel you have to create your own extension then please double check
with Clares that a suitable extension does not already exist. The extension
should then be defined in the format given above and the information sent to
Clares for distribution to the PCA community.
On receipt of a PCA message you should decide if the message refers to one
of your objects (either a local one you created yourself or a remote object
which you are editing). You do this by comparing the object's tag address,
passed in the message, with a local array of tags that you know about. Get
into the habit of doing it this way (rather than comparing the tag's address
fields with your own data structures) as one message, Message_Deselect may
pass a tag address which no longer actually contains valid data (the object
itself having been deleted). See its entry for details.
In the following documentation ' Local ' is the 'owning task' being the task
to which the object is 'local'. This task created the object and its PCA
tag. It knows how to resize and how to delete the object.
' Remote ' is the 'utility' task - the one which modifies an object for the
'local' or owning task.
Please note which messages are to be broadcast and which are sent
task-to-task. The correct functioning of the system depends on the correct
usage.
PCA Message Summary
===================
This is intended to give the programmer an overview of what goes on in a
typical PCA session. It ignores many of the finer points of the protocol.
1. Local task broadcasts Message_WhosAbout for a selected object.
2. Remote tasks examine message data and respond with Message_ImHere.
3. Local task, in response to users choice of Remote sends
Message_DoYourStuff.
4. (if doing inplace editing) Remote task, on receipt of DoYourStuff sends
Message_HookMe.
5. (repeated) Remote and Local tasks broadcast Message_UpdateArea if the
user changes the object.
6. Remote task sends Message_Unhook when user closes window/toolbar onto
object.
7. Local task broadcasts Message_Deselect if user deletes object/quits
program.
The variable names used in the example BASIC program are included after the
message number.
Message_WhosAbout(&83484) (Msg_Whos%)
-------------------------------------
Broadcast by Local task when opening Utility sub-menu/popup (see the section
on user interface).
The block pointed to by R1 contains:
R1+20 filetype of object
R1+24 address of object tag
R1+28 reserved - 0
Receiving remote tasks should respond with Message_ImHere as defined below
if the filetype is 'interesting'. You can examine the data in the tag at
R1+24 if the filetype alone does not suffice (for example, a program which
can only edit 32bpp sprites should examine the sprite type word at
!(R1+24)+(R1+24)!4) +40 (ie tag address field+offset to object field)+40
before sending Message_ImHere ).
Message_ImHere(&83485) (Msg_Im%)
--------------------------------
Sent by Remote task to Local task. Local records the data passed for later
use in creating a dialogue box or menu.
The block pointed to by R1 contains:
R1+20
bits 0-7 flags:
b0 Spritename supplied
b1 Info available
b2 Reserved - 0
b3 Tool wants to 'own' the object
b4 Tool wants In place editing
b5-7 Reserved - 0
b8-31 Reserved - 0
R1+24 Tool id.
R1+28 String. Menu entry/Function name (eg. Contrast...).
Length limited to 31chars+terminator.
R1+60 String. Name of sprite in wimp sprite pool
(if b0 of R1+20 is set)
The tool id is intended for remote tasks which provide more than one
utility. It is returned to the task with Message_DoYourStuff .
Flags:
b0 indicates to the recipient that there is a sprite name at R1+60
- the sprite is stored in the Wimp sprite pool and should be
used when rendering the popup dialogue box.
b1 indicates that the tool can provide a response
to Message_Info .
b2 Reserved - 0
b3 indicates that the tool wants to 'own' the object.
Local task should send Msg_Deselect for the object
before sending Message_DoYourStuff if this bit is
set. Do not set this bit unless you have to as it
will prevent other remote tasks from sharing the
object at the same time. It should only be set when
the remote task wants to 'take over' the object completely.
- such as Composition taking over a 32bpp sprite
for use as a canvas.
b4 This bit is designed to allow for real 'in place editing'
operations. Because of the amount of code necessary
at the local end to handle this it has been defined
as an optional part of the standard.
Local applications which do not support in place editing should clear bit 4
of the flags word and send that with DoYourStuff. On receipt, the remote
application should check if bit 4 is still set and if not open a remote
window onto the object.
Notes: In early versions of this standard bits 28-31 of the flags word had
another use. This data has been moved to Message_HookMe. Please see below.
Message_DoYourStuff(&83486) (Msg_Do%)
-------------------------------------
The block pointed to by R1 contains:
R1+20 Filetype of object
R1+24 Address of object tag
R1+28 reserved - 0
R1+32 Tool id
R1+36 Tool flags word
R1+40 String. Name of object or null (&0)
Sent by Local task to remote task depending on entry selected in Utilities
sub-menu/dialogue. Remote task should record the tag address and open its
window (or just its toolbar if bit 4 of the flags word is set).
Notes:
If the Remote task set bit 4 of the flags word in Message_ImHere when
replying to Message_WhosAbout it should check that this bit is still set
now. If it has been cleared then the Local task cannot handle remote
messaging and the Remote task must open a separate window onto the object.
If bit 4 is still set it means that the local task is willing to participate
in an in-place editing session. In this case the Remote task should simply
open its toolbar and send Message_HookMe to the Local task to ask it to
intercept mouse button and other Wimp events. Receipt of this message will
also cause the Local task to send Message_ObjectPosition to move the remote
tasks toolbar to the correct position.
Nothing about the standard prevents the object changing type (eg from sprite
to Drawfile) between Message_WhosAbout and this message. On receipt of this
message the Remote task must therefore check the filetype field and as much
of the object's data structure as necessary to ensure that it can edit the
object and delink/ignore the message quietly if the type is not to its
liking. This allows the Local task to 'move' a remote task to different
objects cleanly.
Before sending Message_DoYourStuff with bit 4 set the local task should
broadcast Message_UnhookMe to prevent more than one remote task attempting
to do in-place editing at once.
Before sending Message_DoYourStuff with bit 3 set the local task should
broadcast Message_Deselect as the remote task in question wants to 'own'
the object.
Message_Deselect(&83487) (Msg_Desel%)
-------------------------------------
Broadcast by Local task when the object has been deleted.
The block pointed to by R1 contains:
R1+20 Filetype of object.
R1+24 Address of object tag
All Tasks interested in the object should close their window/abandon their
operations as the object in question has been removed from the PCA system
(usually because it has been deleted). Local tasks must generate this
message when deleting an object, quitting etc. or remote tasks using the
object will crash. If the Local task is using PCASupport for tag generation
it should call SWI PCA_DeleteAndKill which will delete the tag and send this
message in one operation but only when the object really is being deleted.
Note: This implies that the remote task, on receipt of this message cannot
rely on more than the tag address as a key to the object. It _cannot_ access
the object data via the tag passed as SWI PCA_DeleteTag has already been
called (the address fields within the tag will contain -1 and the object
data itself may well have been discarded). This is unavoidable without a two
message (Message/Ack) deselection system which would be more difficuilt for
tasks to handle. Especially (as is often the case) if the local task is
about to quit.
Message_DoneMyStuff(&83488) (Msg_Done%)
---------------------------------------
Broadcast by a task when it has modified the object. All tasks accessing the
object other than the originator of the message should recognise this
message and redraw the object.
The block pointed to by R1 contains:
R1+20 0
R1+24 Address of object tag
Use this message for 'whole object changed' operations which do not involve
changes to the object's basic structure (Eg. image filter of sprite).
Note: Receipt of this message by the Local task should not be taken as an
indication that the remote task is no longer interested in it. That is what
Message_UnhookMe is for.
Message_Changed(&8348A) (Msg_Changed%)
--------------------------------------
Broadcast by Local or Remote task when the object has changed (either in
size or its details). Task should act as if it had got a new DoYourStuff
message.
Broadcast by Remote task after it has changed the object's size. Local and
other interested Remote tasks will re-read the object's details and redraw
the object.
The block pointed to by R1 contains:
R1+20 Filetype of object
R1+24 Address of object tag
R1+28 reserved - 0
R1+32 String. New name of object or zero for no change.
Note: Nothing about the standard prevents the object changing type (eg from
sprite to Drawfile). On receipt of this message please check the filetype
field as well as all necessary aspects of the object's data structure. If
the object is not to a Remote task's liking it should send Message_UnHook
and delink quietly.
Message_ResizeRequest(&8348B) (Msg_Resize%)
-------------------------------------------
Sent by Remote task to Local (task handle in R1+4 of DoYourStuff message).
If the Local task fails to deal successfully it will claim the message.
The block pointed to by R1 contains:
R1+20 0
R1+24 Address of object tag
R1+28 reserved - 0
R1+32 New size. Total size of object structure
(including header, offset to base etc.) if flags b1
clear otherwise new size of object itself.
R1+36 Flags
b0 set 'Resize associated objects as well'
b1 set 'New Size is for object alone - does not include header.'
If the Local task succeeds then it will send Message_ResizeAck (basically,
copy R1+8 to R1+12, put Message ResizeAck into R1+16, update R1+32 and
return to sender). On receipt of ResizeAck message the sender of
ResizeRequest should modify the object appropriately (for example, adding
rows/columns to a sprite).
Notes:
You must be prepared for the resize request to fail in which case it is the
responsibility of the Local task to report to the user and the Remote task
to continue safely.
If the ResizeAck message returns to a Remote task you must check that the
field in R1+12 is equal to the MyRef generated by the Resize message you
sent to ensure that the ResizeAck is for the object you have requested be
resized. If it is, ensure that the object is in a renderable state before
the next Wimp_Poll by updating the relevant parts of the object's internal
data structure.
The local task's only modification to the data after a Resize is to write
new size fields where appropriate and to update the object's tag address
fields if the object moves. For sprites the new total area size should be
written into 'Base of data'+0 - it does not know what the Remote task is
going to do with the sprite and therefore cannot make any other
modifications to the data.
For data types which do not store size within their data structure then the
length field of the tag should also be modified (along with the address
fields if the object has to be moved).
After modifying the object the Remote task must broadcast Message_Changed .
Composition will read bit zero of the flags word. If this bit is set, it
will resize masks associated with the sprite in question as well. The amount
by which masks will be resized is calculated from the resize-request for the
sprite itself. Other applications can ignore or act on this bit as they
wish. The task which requested the resize must be able to handle either
action.
Bit one of the flags word is intended to facilitate the resizing of paths in
Drawfiles and similar data structures under the PCA though no code has been
written to do this yet.
Resize Summary
==============
This is what you do to change the size of an object you are editing:
From a Remote task's point of view:
-----------------------------------
Send Message_ResizeRequest and keep myref generated from the message. On
receipt of ResizeAck check myref, modify object data and broadcast
Message_Changed .
From the Local task's point of view:
------------------------------------
On receipt of Message_ResizeRequest resize object if possible, update the
objects tag anchors and send ResizeAck otherwise claim the message and
report an error to user.
Both Remote and Local tasks:
----------------------------
On receipt of Message_Changed re-read the object header as if it was newly
created and redraw the entire object. (You may need to regenerate an area of
your window the size of the old object - remember the new object may occupy
less screen area).
Resize speed issues
-------------------
When the object being resized is very large, VM (Virtual Memory)is being
used, or the resize requests are frequent, there may be a performance issue.
In such situations the Local task should consider moving the object to the
top of its data storage area to prevent repeated memory moving operations.
In applications where many small resize requests are likely then consider
employing a tag extension system similar to the one defined above for text
files to reduce the frequency of the resize requests.
Message_UpdateArea(&8348C) (Msg_Uparea%)
----------------------------------------
Broadcast by task when it has modified part of an object. Apps interested in
the object should redraw the appropriate area of the object as quickly as
possible if they have a window onto the object open.
The block pointed to by R1 contains:
R1+20 Format of subsequent data (0)
R1+24 Address of object tag
R1+28 Xlow (OS units at 1:1 scale)
R1+32 Ylow (OS units at 1:1 scale)
R1+36 Xhi (OS units at 1:1 scale)
R1+40 Yhi (OS units at 1:1 scale)
where coordinates are relative to the bottom left of the object.
Currently this is the only format supported by code (working with bitmap
sprites).
Other proposed formats are as follows:
R1+20 Format of subsequent data (1)
R1+24 Address of object tag
R1+28 Xlow (Draw units = OS units <<8)
R1+32 Ylow (Draw units = OS units <<8)
R1+36 Xhi (Draw units = OS units <<8)
R1+40 Yhi (Draw units = OS units <<8)
where coordinates are relative to the bottom left of the object.
R1+20 Format of subsequent data (2)
R1+24 Address of object tag
R1+28 Xlow (Draw units = OS units <<8)
R1+32 Ylow (Draw units = OS units <<8)
R1+36 Xhi (Draw units = OS units <<8)
R1+40 Yhi (Draw units = OS units <<8)
where coordinates are relative to the top left of the object.
If you have anyother suggestions please contact Clares or the author.
Message_ResizeAck(&8348D) (Msg_ResizeAck%)
------------------------------------------
Sent by Local task when a resize request has succeeded. On receipt by a
Remote task, check that R1+12 is the myref generated from
Message_ResizeRequest before modifying the object data structure and
broadcasting Message_Changed .
The block pointed to by R1 contains:
R1+20 reserved - 0
R1+24 Address of object tag
R1+28 reserved - 0
R1+32 New size allocated to object
R1+36 Flags
Message_MiscOp(&8348E) (Msg_Misc%)
----------------------------------
This message is designed to provide a private interface option for PCA
programs without them having to request other message allocations from
Acorn.
The block pointed to by R1 contains:
R1+20 Sub-reason code
- other data dependant on sub-reason code.
The sub-reason codes available to application developers are allocated in
line with SWI and Message blocks - if you have one of these then those
values may be used by your programs. Where appropriate, please make details
of your messages available to the PCA community by sending them to Clares
for distribution.
Currently, only two sub-reasons are defined for use with Composition. The
current format of these is given below but is subject to change. Please
contact Clares before releasing programs which rely on it:
SubReason_GiveAssociatedData (&83480)
-------------------------------------
Broadcast by remote plug-in when it would like to know more about the
object.
The block pointed to by R1 contains:
R1+24 Address of object tag
SubReason_AssociatedDataCompo (&83481)
Sent by Compo to Remote which broadcast GiveAssociatedData containing a tag
pointing to a Compo object.
The block pointed to by R1 contains:
R1+24 Address of object tag
R1+28 reserved - 0
R1+32 two eight bit and one sixteen bit fields
bits 0-7 Masks in use by object
bits 8-15 Format of subsequent data (zero)
bits 16-31 Reserved
R1+36 Reserved (0)
R1+40 Blend mask address or zero = no Blend mask
R1+44 Tint mask address or zero = no Tint mask
R1+48 Curve mask address or zero = no Curve mask
R1+52 Displace mask address or zero = no Displace mask
R1+56 Shadow mask address or zero = no Shadow mask
R1+60 Reserved
R1+64 Reserved
R1+68 Opacity of object (65536=solid 0=transparent)
R1+72 Math type in use for object
Notes: The 'mask address' passed is the address of the base of a sprite area
containing one eight bit greyscale sprite (at address+address!8). The size
of a mask should not be assumed to be the same as that of the object - read
it from the mask sprite data or use OS_SpriteOp to extract it.
The data returned by this message is fragile - re-read whenever you want to
make use of it.
Message_Info(&8348F) (Msg_Info%)
--------------------------------
Sent by Local to Remote application when the info button in the pop-up is
clicked.
The block pointed to by R1 contains:
R1+20 0
Remote application should write a suitable info string into +20, change the
message size and return the message to the sender.
Example info strings:
"Image Filter. No image linked at the moment."
"Image Filter. Image 'Face' linked at the moment."
Message_ObjectPosition(&83490) (Msg_ObjPos%)
--------------------------------------------
This message is generated by the Local application after receipt of
Message_HookMe , object repositioning operations and window open operations,
if the Local application supports 'Inplace editing'.
The block pointed to by R1 contains:
R1+20 0
R1+24 Address of object tag
R1+28 Y scale of object in Local window (65536=1:1 or 100%)
R1+32 Xlow of object on screen in 'Local' window.
R1+36 Ylow of object on screen in 'Local' window.
R1+40 Handle of 'Local' window.
R1+44 Handle of Local windows toolbar window (or -1 if no toolbar)
R1+48 X scale factor of object in Local window (16.16 format eg 65536=1:1 or 100%)
R1+52 Xlow of object on screen in Local window. (unlimited)
R1+56 Ylow of object on screen in Local window. (unlimited)
On receipt, the Remote task should open its toolbar/infobar relative to the
positions in R1+32 and R1+36 behind the window handle at R1+44. The
coordinates passed in R1+32 and R1+36 should be limited to the windows
visible area (by the Local task) while those at +52 and +56 should not.
The information at R1+28 and R1+48 onwards is for use by the Remote task
during mouse click operations on the object. To convert mouse coordinates
read directly it should subtract the values at R1+52,R1+56 from the raw
mousex and mousey coordinates, and then scale according to the value in
R1+48.
The X and Y scale factors are in 16.16 format. To convert a scale factor
into this format, multiply by 1 << 16. For example, 100% = a scale factor of
one and is therefore (1 << 16) * 1 which is 65536 or &10000. 150% = a scale
factor of 1.5 and is therefore (1 << 16) * 1.5 which is 98304 or &18000.
See the remote painting code (DEFPROCremote_win) in !Spaint for a practical
example of what you should do.
Message_HookMe(&83491) (Msg_Hook%)
----------------------------------
This message is sent by the Remote task to the Local task. It indicates to
the Local task that it should begin intercepting mouse button and other Wimp
events to the object and send them to the Remote task. On receipt, the Local
task should create a trap icon over the object (using the button type in
r1+28) and send Message_ObjectPosition.
The block pointed to by R1 contains:
R1+20 0
R1+24 Address of object tag
R1+28 bits 0-27 Flags - reserved and set to zero.
bits 28-31 Window 'work area' button type to use for trap icon.
R1+32 Window handle
R1+36 String. indirection string for icon or Null (&0)
To make life easier for the remote task the Local task should also take note
of the window handle at R1+32 and insert that value into the window handle
field when passing on Wimp messages. This allows the remote task to use much
of the same code to deal with remotely generated messages and messages to
their own window.
The optional indirection string at R1+36 is intended to allow for adding a
mouse pointer change when entering in-place edited objects. Take care with
this string as certain settings can disrupt the Local task's message
trapping. This extension is optional. Some local tasks may not support it so
do not rely on it.
If the remote task is already editing an object in-place (and it is going to
replace it) then it should send Message_Unhook to the local task previously
being worked with so that it deletes its trap icon.
Please see the section below on In-place editing for details of the best
method of trapping messages and the alterations which should be made before
forwarding them.
Message_UnhookMe(&83492) (Msg_Unhook%)
--------------------------------------
This message is sent by a remote task to the Local task (or local to remote)
when it wants to 'unhook' from the object.
The block pointed to by R1 contains:
R1+20 0
R1+24 Address of object tag
R1+28 reserved - 0
R1+32 Window handle
R1+36 Unhook 'type'
This message should be used by a Remote task to indicate its lack of
interest in an object. After sending this message the Remote task should
forget any references to the object and close its toolbar and/or window.
Little action need be taken at the Local end on receipt of this message
unless 'Inplace editing' is going on between the tasks in which case it
should remove the traps on Button click messages etc for the object. If the
Local task wishes to be efficient in its generation of PCA messages then it
should keep a counter for each object in the PCA system, increase the
counter on each call to Message_DoYourStuff and decrease it on each receipt
of Message_UnHook. Then PCA messages need only be generated in response to
changes made by the Local task if the objects counter is greater than zero.
When the counter reaches zero the Local task should broadcast
Message_Deselect as a saftey measure to ensure that all Remote tasks stop
using the object.
The 'unhook type' at R1+36 currently has two defined values:
R1+36 0 'Unhook' is temporary
(used by Compo to support the 'Track selected'
preference option)
R1+36 1 'Unhook' is permanent - forget about this PCA.
All values other than zero should currently be treated as 'permanent'. 00000000 50 6c 75 67 20 49 6e 20 43 6f 6d 70 6c 69 61 6e |Plug In Complian| 00000010 74 20 41 70 70 6c 69 63 61 74 69 6f 6e 20 70 72 |t Application pr| 00000020 6f 74 6f 63 6f 6c 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d |otocol.=========| 00000030 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00000040 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 0a |=============...| 00000050 50 6c 75 67 20 49 6e 20 43 6f 6d 70 6c 69 61 6e |Plug In Complian| 00000060 74 20 41 70 70 6c 69 63 61 74 69 6f 6e 20 4d 65 |t Application Me| 00000070 73 73 61 67 65 20 73 70 65 63 69 66 69 63 61 74 |ssage specificat| 00000080 69 6f 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |ion.============| 00000090 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 000000b0 3d 3d 3d 3d 3d 3d 3d 0a 0a 0a 41 75 74 68 6f 72 |=======...Author| 000000c0 20 3a 20 52 6f 62 20 44 61 76 69 73 6f 6e 20 28 | : Rob Davison (| 000000d0 72 64 61 76 69 73 6f 6e 40 78 74 72 61 2e 63 6f |rdavison@xtra.co| 000000e0 2e 6e 7a 29 0a 44 61 74 65 20 3a 20 32 38 2f 30 |.nz).Date : 28/0| 000000f0 38 2f 39 36 20 53 74 61 74 75 73 20 3a 20 52 65 |8/96 Status : Re| 00000100 6c 65 61 73 65 20 31 0a 0a 4e 6f 74 65 73 3a 20 |lease 1..Notes: | 00000110 46 69 6c 65 74 79 70 65 20 69 73 20 64 69 76 69 |Filetype is divi| 00000120 64 65 64 20 69 6e 74 6f 20 74 77 6f 20 66 69 65 |ded into two fie| 00000130 6c 64 73 20 77 69 74 68 20 74 68 69 73 20 66 6f |lds with this fo| 00000140 72 6d 61 74 3a 20 0a 20 0a 20 0a 20 20 20 20 20 |rmat: . . . | 00000150 20 20 20 20 20 20 62 20 30 2d 31 32 20 52 49 53 | b 0-12 RIS| 00000160 43 20 4f 53 20 66 69 6c 65 74 79 70 65 0a 20 20 |C OS filetype. | 00000170 20 20 20 20 20 20 20 20 20 62 31 33 2d 33 31 20 | b13-31 | 00000180 72 65 73 65 72 76 65 64 20 2d 20 7a 65 72 6f 2e |reserved - zero.| 00000190 0a 20 20 0a 4f 6e 20 72 65 61 64 69 6e 67 2c 20 |. .On reading, | 000001a0 70 6c 65 61 73 65 20 6d 61 73 6b 20 62 69 74 73 |please mask bits| 000001b0 20 31 33 2d 33 31 20 6f 75 74 20 62 65 66 6f 72 | 13-31 out befor| 000001c0 65 20 63 68 65 63 6b 69 6e 67 20 74 68 65 20 66 |e checking the f| 000001d0 69 6c 65 74 79 70 65 2e 0a 0a 53 74 72 69 6e 67 |iletype...String| 000001e0 73 20 61 72 65 20 6e 75 6c 6c 20 74 65 72 6d 69 |s are null termi| 000001f0 6e 61 74 65 64 20 62 75 74 20 73 75 70 70 6f 72 |nated but suppor| 00000200 74 69 6e 67 20 61 70 70 6c 69 63 61 74 69 6f 6e |ting application| 00000210 73 20 73 68 6f 75 6c 64 20 61 63 63 65 70 74 20 |s should accept | 00000220 43 74 72 6c 2e 0a 74 65 72 6d 69 6e 61 74 65 64 |Ctrl..terminated| 00000230 20 28 41 53 43 49 49 20 30 2d 33 31 29 2e 0a 0a | (ASCII 0-31)...| 00000240 27 41 64 64 72 65 73 73 20 6f 66 20 62 61 73 65 |'Address of base| 00000250 27 20 69 73 20 74 68 65 20 62 65 67 69 6e 6e 69 |' is the beginni| 00000260 6e 67 20 6f 66 20 74 68 65 20 64 61 74 61 20 73 |ng of the data s| 00000270 74 72 75 63 74 75 72 65 20 77 68 69 63 68 20 63 |tructure which c| 00000280 6f 6e 74 61 69 6e 73 20 74 68 65 0a 6f 62 6a 65 |ontains the.obje| 00000290 63 74 2e 0a 0a 27 4f 66 66 73 65 74 20 74 6f 20 |ct...'Offset to | 000002a0 6f 62 6a 65 63 74 27 20 69 73 20 74 68 65 20 6f |object' is the o| 000002b0 66 66 73 65 74 20 66 72 6f 6d 20 74 68 65 20 41 |ffset from the A| 000002c0 64 64 72 65 73 73 20 6f 66 20 62 61 73 65 20 74 |ddress of base t| 000002d0 6f 20 74 68 65 0a 6f 62 6a 65 63 74 2d 6f 66 2d |o the.object-of-| 000002e0 69 6e 74 65 72 65 73 74 0a 0a 46 6f 72 20 65 78 |interest..For ex| 000002f0 61 6d 70 6c 65 2c 20 74 68 65 20 27 4f 66 66 73 |ample, the 'Offs| 00000300 65 74 20 74 6f 20 6f 62 6a 65 63 74 27 20 6f 66 |et to object' of| 00000310 20 61 20 73 70 72 69 74 65 20 69 73 20 74 68 65 | a sprite is the| 00000320 20 6f 66 66 73 65 74 20 74 6f 20 74 68 65 20 73 | offset to the s| 00000330 70 72 69 74 65 0a 69 74 73 65 6c 66 20 28 62 61 |prite.itself (ba| 00000340 73 65 21 38 20 66 6f 72 20 74 68 65 20 66 69 72 |se!8 for the fir| 00000350 73 74 20 73 70 72 69 74 65 20 69 6e 20 61 20 73 |st sprite in a s| 00000360 70 72 69 74 65 20 61 72 65 61 29 2e 20 54 68 65 |prite area). The| 00000370 20 27 41 64 64 72 65 73 73 20 6f 66 20 62 61 73 | 'Address of bas| 00000380 65 27 0a 69 73 20 74 68 65 20 61 64 64 72 65 73 |e'.is the addres| 00000390 73 20 6f 66 20 74 68 65 20 73 70 72 69 74 65 20 |s of the sprite | 000003a0 61 72 65 61 20 69 6e 20 77 68 69 63 68 20 74 68 |area in which th| 000003b0 65 20 73 70 72 69 74 65 20 72 65 73 69 64 65 73 |e sprite resides| 000003c0 2e 20 46 6f 72 20 6f 62 6a 65 63 74 73 0a 77 68 |. For objects.wh| 000003d0 65 72 65 20 74 68 65 20 6f 66 66 73 65 74 20 68 |ere the offset h| 000003e0 61 73 20 6e 6f 20 6d 65 61 6e 69 6e 67 20 74 68 |as no meaning th| 000003f0 65 20 6f 66 66 73 65 74 20 74 6f 20 74 68 65 20 |e offset to the | 00000400 6f 62 6a 65 63 74 20 6d 75 73 74 20 62 65 20 7a |object must be z| 00000410 65 72 6f 2e 0a 0a 54 68 65 20 50 43 41 20 72 65 |ero...The PCA re| 00000420 66 65 72 65 6e 63 65 73 20 6f 62 6a 65 63 74 73 |ferences objects| 00000430 20 75 73 69 6e 67 20 27 74 61 67 73 27 2e 20 45 | using 'tags'. E| 00000440 61 63 68 20 74 61 67 20 69 73 20 75 73 75 61 6c |ach tag is usual| 00000450 6c 79 20 31 36 20 62 79 74 65 73 20 69 6e 0a 6c |ly 16 bytes in.l| 00000460 65 6e 67 74 68 20 61 6e 64 20 69 74 73 20 66 6f |ength and its fo| 00000470 72 6d 61 74 20 69 73 20 64 65 66 69 6e 65 64 20 |rmat is defined | 00000480 74 68 75 73 3a 20 0a 20 0a 74 61 67 2b 30 20 20 |thus: . .tag+0 | 00000490 3d 20 41 64 64 72 65 73 73 20 6f 66 20 62 61 73 |= Address of bas| 000004a0 65 2e 20 28 61 6e 63 68 6f 72 29 0a 74 61 67 2b |e. (anchor).tag+| 000004b0 34 20 20 3d 20 4f 66 66 73 65 74 20 74 6f 20 6f |4 = Offset to o| 000004c0 62 6a 65 63 74 20 66 72 6f 6d 20 62 61 73 65 2e |bject from base.| 000004d0 0a 74 61 67 2b 38 20 20 3d 20 4c 65 6e 67 74 68 |.tag+8 = Length| 000004e0 20 6f 66 20 6f 62 6a 65 63 74 2e 20 28 69 66 20 | of object. (if | 000004f0 61 70 70 6c 69 63 61 62 6c 65 20 2d 20 73 65 65 |applicable - see| 00000500 20 6e 6f 74 65 20 62 65 6c 6f 77 29 0a 74 61 67 | note below).tag| 00000510 2b 31 32 20 3d 20 45 78 74 65 6e 73 69 6f 6e 20 |+12 = Extension | 00000520 73 69 7a 65 20 61 6e 64 20 66 6c 61 67 73 0a 20 |size and flags. | 00000530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 30 | b0| 00000540 2d 31 35 20 54 68 65 73 65 20 62 69 74 73 20 61 |-15 These bits a| 00000550 72 65 20 74 6f 20 70 72 6f 76 69 64 65 20 66 6f |re to provide fo| 00000560 72 20 65 78 70 61 6e 73 69 6f 6e 20 6f 66 20 74 |r expansion of t| 00000570 68 65 20 73 69 7a 65 20 6f 66 20 61 0a 20 20 20 |he size of a. | 00000580 20 20 20 20 20 20 20 20 20 20 20 20 74 61 67 20 | tag | 00000590 62 79 20 75 70 20 74 6f 20 36 35 35 33 32 20 62 |by up to 65532 b| 000005a0 79 74 65 73 2e 20 54 79 70 69 63 61 6c 6c 79 2c |ytes. Typically,| 000005b0 20 74 68 69 73 20 69 73 20 66 6f 72 20 61 70 70 | this is for app| 000005c0 2e 20 6f 72 20 6f 62 6a 65 63 74 0a 20 20 20 20 |. or object. | 000005d0 20 20 20 20 20 20 20 20 20 20 20 73 70 65 63 69 | speci| 000005e0 66 69 63 20 64 61 74 61 2e 20 54 68 69 73 20 64 |fic data. This d| 000005f0 6f 63 75 6d 65 6e 74 20 73 70 65 63 69 66 69 65 |ocument specifie| 00000600 73 20 74 77 6f 20 65 78 74 65 6e 73 69 6f 6e 73 |s two extensions| 00000610 20 74 6f 20 73 68 6f 77 0a 20 20 20 20 20 20 20 | to show. | 00000620 20 20 20 20 20 20 20 20 79 6f 75 20 68 6f 77 20 | you how | 00000630 69 74 27 73 20 64 6f 6e 65 2e 20 44 65 74 61 69 |it's done. Detai| 00000640 6c 73 20 62 65 6c 6f 77 2e 0a 20 0a 20 20 20 20 |ls below.. . | 00000650 20 20 20 20 20 20 20 20 20 20 20 62 31 36 2d 33 | b16-3| 00000660 31 20 28 72 65 73 65 72 76 65 64 2c 20 73 65 74 |1 (reserved, set| 00000670 20 74 6f 20 7a 65 72 6f 29 0a 20 0a 54 68 65 20 | to zero). .The | 00000680 66 69 72 73 74 20 74 77 6f 20 76 61 6c 75 65 73 |first two values| 00000690 20 69 6e 20 61 20 74 61 67 20 61 72 65 20 6d 6f | in a tag are mo| 000006a0 73 74 20 69 6d 70 6f 72 74 61 6e 74 20 61 73 20 |st important as | 000006b0 74 68 65 79 20 61 72 65 20 70 6f 69 6e 74 65 72 |they are pointer| 000006c0 73 20 74 6f 20 74 68 65 0a 61 64 64 72 65 73 73 |s to the.address| 000006d0 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 61 | of the object a| 000006e0 6e 64 20 74 68 65 20 62 61 73 65 20 6f 66 20 74 |nd the base of t| 000006f0 68 65 20 64 61 74 61 20 73 74 72 75 63 74 75 72 |he data structur| 00000700 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 74 2e |e containing it.| 00000710 0a 52 65 6d 6f 74 65 20 74 61 73 6b 73 20 6d 75 |.Remote tasks mu| 00000720 73 74 20 2a 61 6c 77 61 79 73 2a 20 72 65 66 65 |st *always* refe| 00000730 72 65 6e 63 65 20 61 6e 20 6f 62 6a 65 63 74 20 |rence an object | 00000740 62 79 20 72 65 61 64 69 6e 67 20 74 68 65 73 65 |by reading these| 00000750 20 76 61 6c 75 65 73 2e 0a 47 65 6e 65 72 61 6c | values..General| 00000760 6c 79 20 73 70 65 61 6b 69 6e 67 2c 20 52 65 6d |ly speaking, Rem| 00000770 6f 74 65 20 74 61 73 6b 73 20 63 61 6e 20 75 73 |ote tasks can us| 00000780 75 61 6c 6c 79 20 74 72 75 73 74 20 74 68 65 20 |ually trust the | 00000790 61 64 64 72 65 73 73 20 61 6e 64 20 6f 66 66 73 |address and offs| 000007a0 65 74 0a 75 6e 74 69 6c 20 74 68 65 20 6e 65 78 |et.until the nex| 000007b0 74 20 57 69 6d 70 5f 50 6f 6c 6c 20 62 75 74 20 |t Wimp_Poll but | 000007c0 69 66 20 69 6e 20 64 6f 75 62 74 2c 20 72 65 2d |if in doubt, re-| 000007d0 72 65 61 64 20 69 74 20 66 72 6f 6d 20 74 68 65 |read it from the| 000007e0 20 74 61 67 2e 20 54 68 65 20 4c 6f 63 61 6c 0a | tag. The Local.| 000007f0 74 61 73 6b 20 68 61 73 20 74 68 65 20 72 65 73 |task has the res| 00000800 70 6f 6e 73 69 62 69 6c 69 74 79 20 6f 66 20 63 |ponsibility of c| 00000810 72 65 61 74 69 6e 67 20 74 68 65 20 6f 62 6a 65 |reating the obje| 00000820 63 74 27 73 20 74 61 67 20 77 68 65 6e 20 74 68 |ct's tag when th| 00000830 65 20 6f 62 6a 65 63 74 0a 6a 6f 69 6e 73 20 74 |e object.joins t| 00000840 68 65 20 50 43 41 20 73 79 73 74 65 6d 2c 20 75 |he PCA system, u| 00000850 70 64 61 74 69 6e 67 20 74 68 65 20 72 65 6c 65 |pdating the rele| 00000860 76 61 6e 74 20 66 69 65 6c 64 73 20 69 6e 20 74 |vant fields in t| 00000870 68 65 20 74 61 67 20 69 66 20 74 68 65 20 6f 62 |he tag if the ob| 00000880 6a 65 63 74 0a 69 73 20 6d 6f 76 65 64 20 6f 72 |ject.is moved or| 00000890 20 72 65 73 69 7a 65 64 20 61 6e 64 20 64 69 73 | resized and dis| 000008a0 63 61 72 64 69 6e 67 20 74 68 65 20 74 61 67 20 |carding the tag | 000008b0 77 68 65 6e 20 69 74 20 69 73 20 73 75 72 65 20 |when it is sure | 000008c0 69 74 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 0a |it is no longer.| 000008d0 6e 65 65 64 65 64 2e 20 54 61 67 73 20 6d 75 73 |needed. Tags mus| 000008e0 74 20 74 68 65 6d 73 65 6c 76 65 73 20 62 65 20 |t themselves be | 000008f0 69 6e 20 61 20 63 6f 6d 6d 6f 6e 20 6d 65 6d 6f |in a common memo| 00000900 72 79 20 61 72 65 61 20 61 6e 64 20 74 68 65 79 |ry area and they| 00000910 20 6d 75 73 74 20 6e 6f 74 0a 6d 6f 76 65 20 64 | must not.move d| 00000920 75 72 69 6e 67 20 74 68 65 20 6c 69 66 65 74 69 |uring the lifeti| 00000930 6d 65 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 |me of the object| 00000940 20 69 6e 20 74 68 65 20 50 43 41 20 73 79 73 74 | in the PCA syst| 00000950 65 6d 2e 20 43 6c 61 72 65 73 20 70 72 6f 76 69 |em. Clares provi| 00000960 64 65 20 61 0a 73 6d 61 6c 6c 20 6d 6f 64 75 6c |de a.small modul| 00000970 65 20 63 61 6c 6c 65 64 20 27 50 43 41 53 75 70 |e called 'PCASup| 00000980 70 6f 72 74 27 20 77 68 69 63 68 20 6d 61 79 20 |port' which may | 00000990 62 65 20 66 72 65 65 6c 79 20 64 69 73 74 72 69 |be freely distri| 000009a0 62 75 74 65 64 20 62 79 0a 72 65 67 69 73 74 65 |buted by.registe| 000009b0 72 65 64 20 50 43 41 20 64 65 76 65 6c 6f 70 65 |red PCA develope| 000009c0 72 73 20 74 6f 20 66 61 63 69 6c 69 74 61 74 65 |rs to facilitate| 000009d0 20 74 68 65 20 63 72 65 61 74 69 6f 6e 20 6f 66 | the creation of| 000009e0 20 50 43 41 20 74 61 67 73 20 66 6f 72 0a 61 70 | PCA tags for.ap| 000009f0 70 6c 69 63 61 74 69 6f 6e 73 20 77 68 69 63 68 |plications which| 00000a00 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 | do not want to | 00000a10 63 72 65 61 74 65 20 74 61 67 73 20 74 68 65 6d |create tags them| 00000a20 73 65 6c 76 65 73 2e 0a 0a 4e 6f 74 65 73 3a 0a |selves...Notes:.| 00000a30 0a 4d 61 6e 79 20 6f 62 6a 65 63 74 73 20 73 74 |.Many objects st| 00000a40 6f 72 65 20 74 68 65 69 72 20 6c 65 6e 67 74 68 |ore their length| 00000a50 20 77 69 74 68 69 6e 20 74 68 65 20 6f 62 6a 65 | within the obje| 00000a60 63 74 20 64 61 74 61 20 73 74 72 75 63 74 75 72 |ct data structur| 00000a70 65 20 69 74 73 65 6c 66 20 61 6e 64 0a 69 6e 20 |e itself and.in | 00000a80 74 68 61 74 20 63 61 73 65 20 79 6f 75 20 6d 75 |that case you mu| 00000a90 73 74 20 75 73 65 20 74 68 65 20 76 61 6c 75 65 |st use the value| 00000aa0 20 73 74 6f 72 65 64 20 77 69 74 68 69 6e 20 74 | stored within t| 00000ab0 68 65 20 6f 62 6a 65 63 74 27 73 20 64 61 74 61 |he object's data| 00000ac0 20 69 6e 73 74 65 61 64 0a 6f 66 20 72 65 6c 79 | instead.of rely| 00000ad0 69 6e 67 20 6f 6e 20 74 68 65 20 6c 65 6e 67 74 |ing on the lengt| 00000ae0 68 20 66 69 65 6c 64 20 69 6e 20 74 68 65 20 74 |h field in the t| 00000af0 61 67 2e 20 49 74 20 69 73 20 69 6e 74 65 6e 64 |ag. It is intend| 00000b00 65 64 20 66 6f 72 20 6f 62 6a 65 63 74 20 74 79 |ed for object ty| 00000b10 70 65 73 0a 77 68 69 63 68 20 69 6e 63 6c 75 64 |pes.which includ| 00000b20 65 20 6e 6f 20 72 65 63 6f 72 64 20 6f 66 20 74 |e no record of t| 00000b30 68 65 69 72 20 73 69 7a 65 20 28 74 65 78 74 20 |heir size (text | 00000b40 66 6f 72 20 65 78 61 6d 70 6c 65 29 2e 0a 0a 54 |for example)...T| 00000b50 61 67 20 65 78 74 65 6e 73 69 6f 6e 73 20 6d 75 |ag extensions mu| 00000b60 73 74 20 61 64 68 65 72 65 20 74 6f 20 74 68 65 |st adhere to the| 00000b70 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 61 6e 64 | following stand| 00000b80 61 72 64 3a 20 0a 20 0a 74 61 67 2b 31 32 2e 62 |ard: . .tag+12.b| 00000b90 30 2d 31 35 20 20 20 3d 20 28 62 79 74 65 73 20 |0-15 = (bytes | 00000ba0 72 65 71 75 69 72 65 64 2b 34 29 2e 20 4d 75 6c |required+4). Mul| 00000bb0 74 69 70 6c 65 73 20 6f 66 20 34 20 62 79 74 65 |tiples of 4 byte| 00000bc0 73 20 6f 6e 6c 79 2e 0a 74 61 67 2b 31 36 20 20 |s only..tag+16 | 00000bd0 20 20 20 20 20 20 20 20 20 65 78 74 65 6e 73 69 | extensi| 00000be0 6f 6e 20 69 64 2e 20 54 79 70 65 73 20 30 2d 26 |on id. Types 0-&| 00000bf0 66 66 66 20 61 72 65 20 72 65 73 65 72 76 65 64 |fff are reserved| 00000c00 20 66 6f 72 20 43 6c 61 72 65 73 20 50 43 41 2e | for Clares PCA.| 00000c10 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00000c20 20 20 4f 74 68 65 72 20 76 61 6c 75 65 73 20 61 | Other values a| 00000c30 72 65 20 61 6c 6c 6f 63 61 74 65 64 20 69 6e 20 |re allocated in | 00000c40 6c 69 6e 65 20 77 69 74 68 20 53 57 49 2f 4d 65 |line with SWI/Me| 00000c50 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 |ssage. | 00000c60 20 20 20 20 20 20 20 63 68 75 6e 6b 20 6e 75 6d | chunk num| 00000c70 62 65 72 73 20 66 6f 72 20 61 70 70 6c 69 63 61 |bers for applica| 00000c80 74 69 6f 6e 20 64 65 76 65 6c 6f 70 65 72 73 2e |tion developers.| 00000c90 0a 28 65 78 74 65 6e 64 65 64 20 64 61 74 61 20 |.(extended data | 00000ca0 64 65 70 65 6e 64 61 6e 74 20 6f 6e 20 74 61 67 |dependant on tag| 00000cb0 20 69 64 29 20 0a 0a 54 6f 20 67 69 76 65 20 61 | id) ..To give a| 00000cc0 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 74 |n example of a t| 00000cd0 61 67 20 65 78 74 65 6e 73 69 6f 6e 20 77 65 20 |ag extension we | 00000ce0 64 65 66 69 6e 65 20 74 77 6f 20 74 61 67 20 65 |define two tag e| 00000cf0 78 74 65 6e 73 69 6f 6e 73 20 77 68 69 63 68 20 |xtensions which | 00000d00 6d 61 79 0a 62 65 20 75 73 65 64 20 77 69 74 68 |may.be used with| 00000d10 20 50 43 41 20 74 65 78 74 20 6f 62 6a 65 63 74 | PCA text object| 00000d20 73 2e 20 0a 20 0a 20 0a 53 69 6d 70 6c 65 20 74 |s. . . .Simple t| 00000d30 65 78 74 20 6f 62 6a 65 63 74 0a 2d 2d 2d 2d 2d |ext object.-----| 00000d40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 74 |-------------..t| 00000d50 61 67 2b 31 32 20 38 0a 74 61 67 2b 31 36 20 26 |ag+12 8.tag+16 &| 00000d60 46 46 46 0a 74 61 67 2b 32 30 20 6c 65 6e 67 74 |FFF.tag+20 lengt| 00000d70 68 20 6f 66 20 62 75 66 66 65 72 20 61 6c 6c 6f |h of buffer allo| 00000d80 63 61 74 65 64 20 74 6f 20 6f 62 6a 65 63 74 0a |cated to object.| 00000d90 20 20 20 20 20 20 20 28 69 65 20 74 68 65 20 72 | (ie the r| 00000da0 65 6d 6f 74 65 20 74 61 73 6b 20 63 61 6e 20 65 |emote task can e| 00000db0 78 74 65 6e 64 20 74 68 65 20 73 69 7a 65 20 6f |xtend the size o| 00000dc0 66 20 74 68 65 20 74 65 78 74 20 28 61 73 20 67 |f the text (as g| 00000dd0 69 76 65 6e 20 61 74 20 74 61 67 2b 38 29 0a 20 |iven at tag+8). | 00000de0 20 20 20 20 20 20 75 6e 74 69 6c 20 69 74 73 20 | until its | 00000df0 73 69 7a 65 20 72 65 61 63 68 65 73 20 74 61 67 |size reaches tag| 00000e00 2b 32 30 20 62 79 74 65 73 20 62 65 66 6f 72 65 |+20 bytes before| 00000e10 20 63 61 6c 6c 69 6e 67 20 4d 65 73 73 61 67 65 | calling Message| 00000e20 5f 52 65 73 69 7a 65 2e 0a 20 0a 45 64 69 74 65 |_Resize.. .Edite| 00000e30 64 20 74 65 78 74 20 6f 62 6a 65 63 74 0a 2d 2d |d text object.--| 00000e40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000e50 0a 0a 74 61 67 2b 31 32 20 31 36 0a 74 61 67 2b |..tag+12 16.tag+| 00000e60 31 36 20 26 46 46 45 0a 74 61 67 2b 32 30 20 6c |16 &FFE.tag+20 l| 00000e70 65 6e 67 74 68 20 6f 66 20 62 75 66 66 65 72 20 |ength of buffer | 00000e80 66 6f 72 20 66 69 72 73 74 20 63 68 75 6e 6b 0a |for first chunk.| 00000e90 74 61 67 2b 32 34 20 6f 66 66 73 65 74 20 74 6f |tag+24 offset to| 00000ea0 20 72 65 73 74 20 6f 66 20 74 65 78 74 20 66 72 | rest of text fr| 00000eb0 6f 6d 20 6f 62 6a 65 63 74 20 62 61 73 65 0a 74 |om object base.t| 00000ec0 61 67 2b 32 38 20 6c 65 6e 67 74 68 20 6f 66 20 |ag+28 length of | 00000ed0 72 65 73 74 20 6f 66 20 74 65 78 74 20 0a 0a 45 |rest of text ..E| 00000ee0 64 69 74 65 64 20 74 65 78 74 20 6f 62 6a 65 63 |dited text objec| 00000ef0 74 73 20 61 72 65 20 73 70 6c 69 74 20 69 6e 74 |ts are split int| 00000f00 6f 20 74 77 6f 20 73 65 70 61 72 61 74 65 20 70 |o two separate p| 00000f10 61 72 74 73 2c 20 74 68 65 20 70 6f 69 6e 74 65 |arts, the pointe| 00000f20 72 20 74 6f 20 62 61 73 65 0a 61 74 20 74 68 65 |r to base.at the| 00000f30 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 | beginning of th| 00000f40 65 20 74 61 67 2c 20 70 6f 69 6e 74 73 20 74 6f |e tag, points to| 00000f50 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 | the start of th| 00000f60 65 20 66 69 72 73 74 20 63 68 75 6e 6b 20 6f 66 |e first chunk of| 00000f70 20 74 65 78 74 2c 0a 74 68 65 20 6f 66 66 73 65 | text,.the offse| 00000f80 74 20 74 6f 20 6f 62 6a 65 63 74 20 70 6f 69 6e |t to object poin| 00000f90 74 73 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 |ts to the end of| 00000fa0 20 74 68 69 73 20 63 68 75 6e 6b 20 6f 66 20 74 | this chunk of t| 00000fb0 65 78 74 20 28 3d 20 74 68 65 20 63 61 72 65 74 |ext (= the caret| 00000fc0 0a 70 6f 73 69 74 69 6f 6e 29 20 77 68 69 6c 65 |.position) while| 00000fd0 20 74 68 65 20 76 61 6c 75 65 73 20 61 74 20 74 | the values at t| 00000fe0 61 67 2b 32 34 20 61 6e 64 20 74 61 67 2b 32 38 |ag+24 and tag+28| 00000ff0 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 72 65 | point to the re| 00001000 73 74 20 6f 66 20 74 68 65 0a 74 65 78 74 2e 20 |st of the.text. | 00001010 53 75 69 74 61 62 6c 65 20 6d 61 6e 69 70 75 6c |Suitable manipul| 00001020 61 74 69 6f 6e 20 6f 66 20 74 68 65 73 65 20 76 |ation of these v| 00001030 61 6c 75 65 73 20 73 68 6f 75 6c 64 20 61 6c 6c |alues should all| 00001040 6f 77 20 61 20 74 65 78 74 20 65 64 69 74 6f 72 |ow a text editor| 00001050 20 74 6f 0a 77 6f 72 6b 20 77 69 74 68 20 50 43 | to.work with PC| 00001060 41 2e 20 4e 6f 74 65 3a 20 74 68 69 73 20 68 61 |A. Note: this ha| 00001070 73 20 6e 6f 74 20 62 65 65 6e 20 74 65 73 74 65 |s not been teste| 00001080 64 20 77 69 74 68 20 61 6e 79 20 63 6f 64 65 20 |d with any code | 00001090 2d 20 61 6e 79 20 63 6f 6d 6d 65 6e 74 73 0a 70 |- any comments.p| 000010a0 6c 65 61 73 65 20 63 6f 6e 74 61 63 74 20 74 68 |lease contact th| 000010b0 65 20 61 75 74 68 6f 72 20 6f 66 20 50 43 41 2e |e author of PCA.| 000010c0 0a 0a 54 68 65 20 74 61 67 20 65 78 74 65 6e 73 |..The tag extens| 000010d0 69 6f 6e 20 73 79 73 74 65 6d 20 69 73 20 70 6f |ion system is po| 000010e0 74 65 6e 74 69 61 6c 6c 79 20 76 65 72 79 20 70 |tentially very p| 000010f0 6f 77 65 72 66 75 6c 20 62 75 74 20 70 6c 65 61 |owerful but plea| 00001100 73 65 20 64 6f 20 6e 6f 74 0a 61 62 75 73 65 20 |se do not.abuse | 00001110 69 74 2e 20 49 66 20 65 76 65 72 79 6f 6e 65 20 |it. If everyone | 00001120 77 68 6f 20 65 76 65 72 20 77 72 69 74 65 73 20 |who ever writes | 00001130 61 20 50 43 41 20 70 72 6f 67 72 61 6d 20 63 72 |a PCA program cr| 00001140 65 61 74 65 73 20 61 20 74 61 67 20 65 78 74 65 |eates a tag exte| 00001150 6e 73 69 6f 6e 0a 66 6f 72 20 74 68 65 69 72 20 |nsion.for their | 00001160 6f 77 6e 20 6f 62 6a 65 63 74 20 66 6f 72 6d 61 |own object forma| 00001170 74 20 74 68 65 6e 20 63 68 61 6f 73 20 77 69 6c |t then chaos wil| 00001180 6c 20 72 65 69 67 6e 20 61 6e 64 20 74 68 65 20 |l reign and the | 00001190 50 43 41 20 73 79 73 74 65 6d 20 77 69 6c 6c 0a |PCA system will.| 000011a0 62 65 63 6f 6d 65 20 75 73 65 6c 65 73 73 2e 20 |become useless. | 000011b0 28 41 6e 79 6f 6e 65 20 71 75 65 73 74 69 6f 6e |(Anyone question| 000011c0 69 6e 67 20 74 68 69 73 20 69 73 20 69 6e 76 69 |ing this is invi| 000011d0 74 65 64 20 74 6f 20 75 73 65 20 74 68 65 20 73 |ted to use the s| 000011e0 70 65 63 69 66 69 63 61 74 69 6f 6e 0a 64 6f 63 |pecification.doc| 000011f0 75 6d 65 6e 74 20 66 6f 72 20 74 68 65 20 54 49 |ument for the TI| 00001200 46 46 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 61 |FF file format a| 00001210 73 20 62 65 64 73 69 64 65 20 72 65 61 64 69 6e |s bedside readin| 00001220 67 20 2d 20 61 20 70 65 72 66 65 63 74 20 65 78 |g - a perfect ex| 00001230 61 6d 70 6c 65 20 6f 66 0a 61 20 74 61 67 67 65 |ample of.a tagge| 00001240 64 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 67 6f |d file format go| 00001250 6e 65 20 77 72 6f 6e 67 29 2e 20 49 6e 20 67 65 |ne wrong). In ge| 00001260 6e 65 72 61 6c 2c 20 74 68 65 20 62 61 73 69 63 |neral, the basic| 00001270 20 74 61 67 20 73 74 72 75 63 74 75 72 65 20 6f | tag structure o| 00001280 72 20 74 68 65 0a 27 70 63 61 20 74 65 78 74 27 |r the.'pca text'| 00001290 20 65 78 74 65 6e 73 69 6f 6e 20 64 65 66 69 6e | extension defin| 000012a0 65 64 20 61 62 6f 76 65 20 77 69 6c 6c 20 64 6f |ed above will do| 000012b0 20 66 6f 72 20 6d 6f 73 74 20 64 61 74 61 20 74 | for most data t| 000012c0 79 70 65 73 2e 20 49 66 20 79 6f 75 0a 72 65 61 |ypes. If you.rea| 000012d0 6c 6c 79 20 66 65 65 6c 20 79 6f 75 20 68 61 76 |lly feel you hav| 000012e0 65 20 74 6f 20 63 72 65 61 74 65 20 79 6f 75 72 |e to create your| 000012f0 20 6f 77 6e 20 65 78 74 65 6e 73 69 6f 6e 20 74 | own extension t| 00001300 68 65 6e 20 70 6c 65 61 73 65 20 64 6f 75 62 6c |hen please doubl| 00001310 65 20 63 68 65 63 6b 0a 77 69 74 68 20 43 6c 61 |e check.with Cla| 00001320 72 65 73 20 74 68 61 74 20 61 20 73 75 69 74 61 |res that a suita| 00001330 62 6c 65 20 65 78 74 65 6e 73 69 6f 6e 20 64 6f |ble extension do| 00001340 65 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 65 |es not already e| 00001350 78 69 73 74 2e 20 54 68 65 20 65 78 74 65 6e 73 |xist. The extens| 00001360 69 6f 6e 0a 73 68 6f 75 6c 64 20 74 68 65 6e 20 |ion.should then | 00001370 62 65 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 |be defined in th| 00001380 65 20 66 6f 72 6d 61 74 20 67 69 76 65 6e 20 61 |e format given a| 00001390 62 6f 76 65 20 61 6e 64 20 74 68 65 20 69 6e 66 |bove and the inf| 000013a0 6f 72 6d 61 74 69 6f 6e 20 73 65 6e 74 20 74 6f |ormation sent to| 000013b0 0a 43 6c 61 72 65 73 20 66 6f 72 20 64 69 73 74 |.Clares for dist| 000013c0 72 69 62 75 74 69 6f 6e 20 74 6f 20 74 68 65 20 |ribution to the | 000013d0 50 43 41 20 63 6f 6d 6d 75 6e 69 74 79 2e 0a 0a |PCA community...| 000013e0 4f 6e 20 72 65 63 65 69 70 74 20 6f 66 20 61 20 |On receipt of a | 000013f0 50 43 41 20 6d 65 73 73 61 67 65 20 79 6f 75 20 |PCA message you | 00001400 73 68 6f 75 6c 64 20 64 65 63 69 64 65 20 69 66 |should decide if| 00001410 20 74 68 65 20 6d 65 73 73 61 67 65 20 72 65 66 | the message ref| 00001420 65 72 73 20 74 6f 20 6f 6e 65 0a 6f 66 20 79 6f |ers to one.of yo| 00001430 75 72 20 6f 62 6a 65 63 74 73 20 28 65 69 74 68 |ur objects (eith| 00001440 65 72 20 61 20 6c 6f 63 61 6c 20 6f 6e 65 20 79 |er a local one y| 00001450 6f 75 20 63 72 65 61 74 65 64 20 79 6f 75 72 73 |ou created yours| 00001460 65 6c 66 20 6f 72 20 61 20 72 65 6d 6f 74 65 20 |elf or a remote | 00001470 6f 62 6a 65 63 74 0a 77 68 69 63 68 20 79 6f 75 |object.which you| 00001480 20 61 72 65 20 65 64 69 74 69 6e 67 29 2e 20 59 | are editing). Y| 00001490 6f 75 20 64 6f 20 74 68 69 73 20 62 79 20 63 6f |ou do this by co| 000014a0 6d 70 61 72 69 6e 67 20 74 68 65 20 6f 62 6a 65 |mparing the obje| 000014b0 63 74 27 73 20 74 61 67 20 61 64 64 72 65 73 73 |ct's tag address| 000014c0 2c 0a 70 61 73 73 65 64 20 69 6e 20 74 68 65 20 |,.passed in the | 000014d0 6d 65 73 73 61 67 65 2c 20 77 69 74 68 20 61 20 |message, with a | 000014e0 6c 6f 63 61 6c 20 61 72 72 61 79 20 6f 66 20 74 |local array of t| 000014f0 61 67 73 20 74 68 61 74 20 79 6f 75 20 6b 6e 6f |ags that you kno| 00001500 77 20 61 62 6f 75 74 2e 20 47 65 74 0a 69 6e 74 |w about. Get.int| 00001510 6f 20 74 68 65 20 68 61 62 69 74 20 6f 66 20 64 |o the habit of d| 00001520 6f 69 6e 67 20 69 74 20 74 68 69 73 20 77 61 79 |oing it this way| 00001530 20 28 72 61 74 68 65 72 20 74 68 61 6e 20 63 6f | (rather than co| 00001540 6d 70 61 72 69 6e 67 20 74 68 65 20 74 61 67 27 |mparing the tag'| 00001550 73 20 61 64 64 72 65 73 73 0a 66 69 65 6c 64 73 |s address.fields| 00001560 20 77 69 74 68 20 79 6f 75 72 20 6f 77 6e 20 64 | with your own d| 00001570 61 74 61 20 73 74 72 75 63 74 75 72 65 73 29 20 |ata structures) | 00001580 61 73 20 6f 6e 65 20 6d 65 73 73 61 67 65 2c 20 |as one message, | 00001590 4d 65 73 73 61 67 65 5f 44 65 73 65 6c 65 63 74 |Message_Deselect| 000015a0 20 6d 61 79 0a 70 61 73 73 20 61 20 74 61 67 20 | may.pass a tag | 000015b0 61 64 64 72 65 73 73 20 77 68 69 63 68 20 6e 6f |address which no| 000015c0 20 6c 6f 6e 67 65 72 20 61 63 74 75 61 6c 6c 79 | longer actually| 000015d0 20 63 6f 6e 74 61 69 6e 73 20 76 61 6c 69 64 20 | contains valid | 000015e0 64 61 74 61 20 28 74 68 65 20 6f 62 6a 65 63 74 |data (the object| 000015f0 0a 69 74 73 65 6c 66 20 68 61 76 69 6e 67 20 62 |.itself having b| 00001600 65 65 6e 20 64 65 6c 65 74 65 64 29 2e 20 53 65 |een deleted). Se| 00001610 65 20 69 74 73 20 65 6e 74 72 79 20 66 6f 72 20 |e its entry for | 00001620 64 65 74 61 69 6c 73 2e 0a 0a 49 6e 20 74 68 65 |details...In the| 00001630 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 6f 63 75 6d | following docum| 00001640 65 6e 74 61 74 69 6f 6e 20 27 20 4c 6f 63 61 6c |entation ' Local| 00001650 20 27 20 69 73 20 74 68 65 20 27 6f 77 6e 69 6e | ' is the 'ownin| 00001660 67 20 74 61 73 6b 27 20 62 65 69 6e 67 20 74 68 |g task' being th| 00001670 65 20 74 61 73 6b 0a 74 6f 20 77 68 69 63 68 20 |e task.to which | 00001680 74 68 65 20 6f 62 6a 65 63 74 20 69 73 20 27 6c |the object is 'l| 00001690 6f 63 61 6c 27 2e 20 54 68 69 73 20 74 61 73 6b |ocal'. This task| 000016a0 20 63 72 65 61 74 65 64 20 74 68 65 20 6f 62 6a | created the obj| 000016b0 65 63 74 20 61 6e 64 20 69 74 73 20 50 43 41 0a |ect and its PCA.| 000016c0 74 61 67 2e 20 49 74 20 6b 6e 6f 77 73 20 68 6f |tag. It knows ho| 000016d0 77 20 74 6f 20 72 65 73 69 7a 65 20 61 6e 64 20 |w to resize and | 000016e0 68 6f 77 20 74 6f 20 64 65 6c 65 74 65 20 74 68 |how to delete th| 000016f0 65 20 6f 62 6a 65 63 74 2e 0a 0a 27 20 52 65 6d |e object...' Rem| 00001700 6f 74 65 20 27 20 69 73 20 74 68 65 20 27 75 74 |ote ' is the 'ut| 00001710 69 6c 69 74 79 27 20 74 61 73 6b 20 2d 20 74 68 |ility' task - th| 00001720 65 20 6f 6e 65 20 77 68 69 63 68 20 6d 6f 64 69 |e one which modi| 00001730 66 69 65 73 20 61 6e 20 6f 62 6a 65 63 74 20 66 |fies an object f| 00001740 6f 72 20 74 68 65 0a 27 6c 6f 63 61 6c 27 20 6f |or the.'local' o| 00001750 72 20 6f 77 6e 69 6e 67 20 74 61 73 6b 2e 0a 0a |r owning task...| 00001760 50 6c 65 61 73 65 20 6e 6f 74 65 20 77 68 69 63 |Please note whic| 00001770 68 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 74 |h messages are t| 00001780 6f 20 62 65 20 62 72 6f 61 64 63 61 73 74 20 61 |o be broadcast a| 00001790 6e 64 20 77 68 69 63 68 20 61 72 65 20 73 65 6e |nd which are sen| 000017a0 74 0a 74 61 73 6b 2d 74 6f 2d 74 61 73 6b 2e 20 |t.task-to-task. | 000017b0 54 68 65 20 63 6f 72 72 65 63 74 20 66 75 6e 63 |The correct func| 000017c0 74 69 6f 6e 69 6e 67 20 6f 66 20 74 68 65 20 73 |tioning of the s| 000017d0 79 73 74 65 6d 20 64 65 70 65 6e 64 73 20 6f 6e |ystem depends on| 000017e0 20 74 68 65 20 63 6f 72 72 65 63 74 0a 75 73 61 | the correct.usa| 000017f0 67 65 2e 0a 0a 0a 50 43 41 20 4d 65 73 73 61 67 |ge....PCA Messag| 00001800 65 20 53 75 6d 6d 61 72 79 0a 3d 3d 3d 3d 3d 3d |e Summary.======| 00001810 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 |=============..T| 00001820 68 69 73 20 69 73 20 69 6e 74 65 6e 64 65 64 20 |his is intended | 00001830 74 6f 20 67 69 76 65 20 74 68 65 20 70 72 6f 67 |to give the prog| 00001840 72 61 6d 6d 65 72 20 61 6e 20 6f 76 65 72 76 69 |rammer an overvi| 00001850 65 77 20 6f 66 20 77 68 61 74 20 67 6f 65 73 20 |ew of what goes | 00001860 6f 6e 20 69 6e 20 61 0a 74 79 70 69 63 61 6c 20 |on in a.typical | 00001870 50 43 41 20 73 65 73 73 69 6f 6e 2e 20 49 74 20 |PCA session. It | 00001880 69 67 6e 6f 72 65 73 20 6d 61 6e 79 20 6f 66 20 |ignores many of | 00001890 74 68 65 20 66 69 6e 65 72 20 70 6f 69 6e 74 73 |the finer points| 000018a0 20 6f 66 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c | of the protocol| 000018b0 2e 0a 0a 31 2e 20 4c 6f 63 61 6c 20 74 61 73 6b |...1. Local task| 000018c0 20 62 72 6f 61 64 63 61 73 74 73 20 4d 65 73 73 | broadcasts Mess| 000018d0 61 67 65 5f 57 68 6f 73 41 62 6f 75 74 20 66 6f |age_WhosAbout fo| 000018e0 72 20 61 20 73 65 6c 65 63 74 65 64 20 6f 62 6a |r a selected obj| 000018f0 65 63 74 2e 0a 0a 32 2e 20 52 65 6d 6f 74 65 20 |ect...2. Remote | 00001900 74 61 73 6b 73 20 65 78 61 6d 69 6e 65 20 6d 65 |tasks examine me| 00001910 73 73 61 67 65 20 64 61 74 61 20 61 6e 64 20 72 |ssage data and r| 00001920 65 73 70 6f 6e 64 20 77 69 74 68 20 4d 65 73 73 |espond with Mess| 00001930 61 67 65 5f 49 6d 48 65 72 65 2e 0a 0a 33 2e 20 |age_ImHere...3. | 00001940 4c 6f 63 61 6c 20 74 61 73 6b 2c 20 69 6e 20 72 |Local task, in r| 00001950 65 73 70 6f 6e 73 65 20 74 6f 20 75 73 65 72 73 |esponse to users| 00001960 20 63 68 6f 69 63 65 20 6f 66 20 52 65 6d 6f 74 | choice of Remot| 00001970 65 20 73 65 6e 64 73 0a 20 20 20 4d 65 73 73 61 |e sends. Messa| 00001980 67 65 5f 44 6f 59 6f 75 72 53 74 75 66 66 2e 0a |ge_DoYourStuff..| 00001990 0a 34 2e 20 28 69 66 20 64 6f 69 6e 67 20 69 6e |.4. (if doing in| 000019a0 70 6c 61 63 65 20 65 64 69 74 69 6e 67 29 20 52 |place editing) R| 000019b0 65 6d 6f 74 65 20 74 61 73 6b 2c 20 6f 6e 20 72 |emote task, on r| 000019c0 65 63 65 69 70 74 20 6f 66 20 44 6f 59 6f 75 72 |eceipt of DoYour| 000019d0 53 74 75 66 66 20 73 65 6e 64 73 0a 20 20 20 4d |Stuff sends. M| 000019e0 65 73 73 61 67 65 5f 48 6f 6f 6b 4d 65 2e 0a 0a |essage_HookMe...| 000019f0 35 2e 20 28 72 65 70 65 61 74 65 64 29 20 52 65 |5. (repeated) Re| 00001a00 6d 6f 74 65 20 61 6e 64 20 4c 6f 63 61 6c 20 74 |mote and Local t| 00001a10 61 73 6b 73 20 62 72 6f 61 64 63 61 73 74 20 4d |asks broadcast M| 00001a20 65 73 73 61 67 65 5f 55 70 64 61 74 65 41 72 65 |essage_UpdateAre| 00001a30 61 20 69 66 20 74 68 65 0a 20 20 20 75 73 65 72 |a if the. user| 00001a40 20 63 68 61 6e 67 65 73 20 74 68 65 20 6f 62 6a | changes the obj| 00001a50 65 63 74 2e 0a 0a 36 2e 20 52 65 6d 6f 74 65 20 |ect...6. Remote | 00001a60 74 61 73 6b 20 73 65 6e 64 73 20 4d 65 73 73 61 |task sends Messa| 00001a70 67 65 5f 55 6e 68 6f 6f 6b 20 77 68 65 6e 20 75 |ge_Unhook when u| 00001a80 73 65 72 20 63 6c 6f 73 65 73 20 77 69 6e 64 6f |ser closes windo| 00001a90 77 2f 74 6f 6f 6c 62 61 72 20 6f 6e 74 6f 0a 20 |w/toolbar onto. | 00001aa0 20 20 6f 62 6a 65 63 74 2e 0a 0a 37 2e 20 4c 6f | object...7. Lo| 00001ab0 63 61 6c 20 74 61 73 6b 20 62 72 6f 61 64 63 61 |cal task broadca| 00001ac0 73 74 73 20 4d 65 73 73 61 67 65 5f 44 65 73 65 |sts Message_Dese| 00001ad0 6c 65 63 74 20 69 66 20 75 73 65 72 20 64 65 6c |lect if user del| 00001ae0 65 74 65 73 20 6f 62 6a 65 63 74 2f 71 75 69 74 |etes object/quit| 00001af0 73 0a 20 20 20 70 72 6f 67 72 61 6d 2e 0a 0a 54 |s. program...T| 00001b00 68 65 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 |he variable name| 00001b10 73 20 75 73 65 64 20 69 6e 20 74 68 65 20 65 78 |s used in the ex| 00001b20 61 6d 70 6c 65 20 42 41 53 49 43 20 70 72 6f 67 |ample BASIC prog| 00001b30 72 61 6d 20 61 72 65 20 69 6e 63 6c 75 64 65 64 |ram are included| 00001b40 20 61 66 74 65 72 20 74 68 65 0a 6d 65 73 73 61 | after the.messa| 00001b50 67 65 20 6e 75 6d 62 65 72 2e 20 0a 0a 4d 65 73 |ge number. ..Mes| 00001b60 73 61 67 65 5f 57 68 6f 73 41 62 6f 75 74 28 26 |sage_WhosAbout(&| 00001b70 38 33 34 38 34 29 20 28 4d 73 67 5f 57 68 6f 73 |83484) (Msg_Whos| 00001b80 25 29 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |%).-------------| 00001b90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001ba0 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 42 72 6f 61 64 63 |--------..Broadc| 00001bb0 61 73 74 20 62 79 20 4c 6f 63 61 6c 20 74 61 73 |ast by Local tas| 00001bc0 6b 20 77 68 65 6e 20 6f 70 65 6e 69 6e 67 20 55 |k when opening U| 00001bd0 74 69 6c 69 74 79 20 73 75 62 2d 6d 65 6e 75 2f |tility sub-menu/| 00001be0 70 6f 70 75 70 20 28 73 65 65 20 74 68 65 20 73 |popup (see the s| 00001bf0 65 63 74 69 6f 6e 0a 6f 6e 20 75 73 65 72 20 69 |ection.on user i| 00001c00 6e 74 65 72 66 61 63 65 29 2e 0a 0a 54 68 65 20 |nterface)...The | 00001c10 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 20 74 6f |block pointed to| 00001c20 20 62 79 20 52 31 20 63 6f 6e 74 61 69 6e 73 3a | by R1 contains:| 00001c30 20 0a 20 0a 52 31 2b 32 30 20 20 20 66 69 6c 65 | . .R1+20 file| 00001c40 74 79 70 65 20 6f 66 20 6f 62 6a 65 63 74 0a 52 |type of object.R| 00001c50 31 2b 32 34 20 20 20 61 64 64 72 65 73 73 20 6f |1+24 address o| 00001c60 66 20 6f 62 6a 65 63 74 20 74 61 67 0a 52 31 2b |f object tag.R1+| 00001c70 32 38 20 20 20 72 65 73 65 72 76 65 64 20 2d 20 |28 reserved - | 00001c80 30 20 0a 0a 52 65 63 65 69 76 69 6e 67 20 72 65 |0 ..Receiving re| 00001c90 6d 6f 74 65 20 74 61 73 6b 73 20 73 68 6f 75 6c |mote tasks shoul| 00001ca0 64 20 72 65 73 70 6f 6e 64 20 77 69 74 68 20 4d |d respond with M| 00001cb0 65 73 73 61 67 65 5f 49 6d 48 65 72 65 20 61 73 |essage_ImHere as| 00001cc0 20 64 65 66 69 6e 65 64 20 62 65 6c 6f 77 0a 69 | defined below.i| 00001cd0 66 20 74 68 65 20 66 69 6c 65 74 79 70 65 20 69 |f the filetype i| 00001ce0 73 20 27 69 6e 74 65 72 65 73 74 69 6e 67 27 2e |s 'interesting'.| 00001cf0 20 59 6f 75 20 63 61 6e 20 65 78 61 6d 69 6e 65 | You can examine| 00001d00 20 74 68 65 20 64 61 74 61 20 69 6e 20 74 68 65 | the data in the| 00001d10 20 74 61 67 20 61 74 0a 52 31 2b 32 34 20 69 66 | tag at.R1+24 if| 00001d20 20 74 68 65 20 66 69 6c 65 74 79 70 65 20 61 6c | the filetype al| 00001d30 6f 6e 65 20 64 6f 65 73 20 6e 6f 74 20 73 75 66 |one does not suf| 00001d40 66 69 63 65 20 28 66 6f 72 20 65 78 61 6d 70 6c |fice (for exampl| 00001d50 65 2c 20 61 20 70 72 6f 67 72 61 6d 20 77 68 69 |e, a program whi| 00001d60 63 68 0a 63 61 6e 20 6f 6e 6c 79 20 65 64 69 74 |ch.can only edit| 00001d70 20 33 32 62 70 70 20 73 70 72 69 74 65 73 20 73 | 32bpp sprites s| 00001d80 68 6f 75 6c 64 20 65 78 61 6d 69 6e 65 20 74 68 |hould examine th| 00001d90 65 20 73 70 72 69 74 65 20 74 79 70 65 20 77 6f |e sprite type wo| 00001da0 72 64 20 61 74 0a 21 28 52 31 2b 32 34 29 2b 28 |rd at.!(R1+24)+(| 00001db0 52 31 2b 32 34 29 21 34 29 20 2b 34 30 20 28 69 |R1+24)!4) +40 (i| 00001dc0 65 20 74 61 67 20 61 64 64 72 65 73 73 20 66 69 |e tag address fi| 00001dd0 65 6c 64 2b 6f 66 66 73 65 74 20 74 6f 20 6f 62 |eld+offset to ob| 00001de0 6a 65 63 74 20 66 69 65 6c 64 29 2b 34 30 0a 62 |ject field)+40.b| 00001df0 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 20 4d 65 |efore sending Me| 00001e00 73 73 61 67 65 5f 49 6d 48 65 72 65 20 29 2e 20 |ssage_ImHere ). | 00001e10 0a 0a 4d 65 73 73 61 67 65 5f 49 6d 48 65 72 65 |..Message_ImHere| 00001e20 28 26 38 33 34 38 35 29 20 28 4d 73 67 5f 49 6d |(&83485) (Msg_Im| 00001e30 25 29 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |%).-------------| 00001e40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001e50 2d 2d 2d 20 0a 0a 53 65 6e 74 20 62 79 20 52 65 |--- ..Sent by Re| 00001e60 6d 6f 74 65 20 74 61 73 6b 20 74 6f 20 4c 6f 63 |mote task to Loc| 00001e70 61 6c 20 74 61 73 6b 2e 20 4c 6f 63 61 6c 20 72 |al task. Local r| 00001e80 65 63 6f 72 64 73 20 74 68 65 20 64 61 74 61 20 |ecords the data | 00001e90 70 61 73 73 65 64 20 66 6f 72 20 6c 61 74 65 72 |passed for later| 00001ea0 0a 75 73 65 20 69 6e 20 63 72 65 61 74 69 6e 67 |.use in creating| 00001eb0 20 61 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 | a dialogue box | 00001ec0 6f 72 20 6d 65 6e 75 2e 0a 0a 54 68 65 20 62 6c |or menu...The bl| 00001ed0 6f 63 6b 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |ock pointed to b| 00001ee0 79 20 52 31 20 63 6f 6e 74 61 69 6e 73 3a 20 0a |y R1 contains: .| 00001ef0 20 0a 52 31 2b 32 30 0a 20 20 20 20 20 20 20 20 | .R1+20. | 00001f00 62 69 74 73 20 30 2d 37 20 66 6c 61 67 73 3a 0a |bits 0-7 flags:.| 00001f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001f20 62 30 20 53 70 72 69 74 65 6e 61 6d 65 20 73 75 |b0 Spritename su| 00001f30 70 70 6c 69 65 64 0a 20 20 20 20 20 20 20 20 20 |pplied. | 00001f40 20 20 20 20 20 20 20 62 31 20 49 6e 66 6f 20 61 | b1 Info a| 00001f50 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 20 20 20 |vailable. | 00001f60 20 20 20 20 20 20 20 20 20 62 32 20 52 65 73 65 | b2 Rese| 00001f70 72 76 65 64 20 2d 20 30 0a 20 20 20 20 20 20 20 |rved - 0. | 00001f80 20 20 20 20 20 20 20 20 20 62 33 20 54 6f 6f 6c | b3 Tool| 00001f90 20 77 61 6e 74 73 20 74 6f 20 27 6f 77 6e 27 20 | wants to 'own' | 00001fa0 74 68 65 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 |the object. | 00001fb0 20 20 20 20 20 20 20 20 20 20 20 62 34 20 54 6f | b4 To| 00001fc0 6f 6c 20 77 61 6e 74 73 20 49 6e 20 70 6c 61 63 |ol wants In plac| 00001fd0 65 20 65 64 69 74 69 6e 67 0a 20 20 20 20 20 20 |e editing. | 00001fe0 20 20 20 20 20 20 20 20 20 20 62 35 2d 37 20 52 | b5-7 R| 00001ff0 65 73 65 72 76 65 64 20 2d 20 30 0a 20 20 20 20 |eserved - 0. | 00002000 20 20 20 20 20 20 20 20 20 20 20 20 62 38 2d 33 | b8-3| 00002010 31 20 52 65 73 65 72 76 65 64 20 2d 20 30 0a 20 |1 Reserved - 0. | 00002020 0a 52 31 2b 32 34 20 20 20 20 20 20 20 20 20 20 |.R1+24 | 00002030 20 54 6f 6f 6c 20 69 64 2e 0a 52 31 2b 32 38 20 | Tool id..R1+28 | 00002040 20 20 20 20 20 20 20 20 20 20 53 74 72 69 6e 67 | String| 00002050 2e 20 4d 65 6e 75 20 65 6e 74 72 79 2f 46 75 6e |. Menu entry/Fun| 00002060 63 74 69 6f 6e 20 6e 61 6d 65 20 28 65 67 2e 20 |ction name (eg. | 00002070 43 6f 6e 74 72 61 73 74 2e 2e 2e 29 2e 0a 20 20 |Contrast...).. | 00002080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 | Le| 00002090 6e 67 74 68 20 6c 69 6d 69 74 65 64 20 74 6f 20 |ngth limited to | 000020a0 33 31 63 68 61 72 73 2b 74 65 72 6d 69 6e 61 74 |31chars+terminat| 000020b0 6f 72 2e 0a 52 31 2b 36 30 20 20 20 20 20 20 20 |or..R1+60 | 000020c0 20 20 20 20 53 74 72 69 6e 67 2e 20 4e 61 6d 65 | String. Name| 000020d0 20 6f 66 20 73 70 72 69 74 65 20 69 6e 20 77 69 | of sprite in wi| 000020e0 6d 70 20 73 70 72 69 74 65 20 70 6f 6f 6c 0a 20 |mp sprite pool. | 000020f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | (| 00002100 69 66 20 62 30 20 6f 66 20 52 31 2b 32 30 20 69 |if b0 of R1+20 i| 00002110 73 20 73 65 74 29 0a 20 0a 20 0a 20 20 0a 54 68 |s set). . . .Th| 00002120 65 20 74 6f 6f 6c 20 69 64 20 69 73 20 69 6e 74 |e tool id is int| 00002130 65 6e 64 65 64 20 66 6f 72 20 72 65 6d 6f 74 65 |ended for remote| 00002140 20 74 61 73 6b 73 20 77 68 69 63 68 20 70 72 6f | tasks which pro| 00002150 76 69 64 65 20 6d 6f 72 65 20 74 68 61 6e 20 6f |vide more than o| 00002160 6e 65 0a 75 74 69 6c 69 74 79 2e 20 49 74 20 69 |ne.utility. It i| 00002170 73 20 72 65 74 75 72 6e 65 64 20 74 6f 20 74 68 |s returned to th| 00002180 65 20 74 61 73 6b 20 77 69 74 68 20 4d 65 73 73 |e task with Mess| 00002190 61 67 65 5f 44 6f 59 6f 75 72 53 74 75 66 66 20 |age_DoYourStuff | 000021a0 2e 20 0a 0a 46 6c 61 67 73 3a 20 0a 20 0a 62 30 |. ..Flags: . .b0| 000021b0 20 20 20 20 20 20 69 6e 64 69 63 61 74 65 73 20 | indicates | 000021c0 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 |to the recipient| 000021d0 20 74 68 61 74 20 74 68 65 72 65 20 69 73 20 61 | that there is a| 000021e0 20 73 70 72 69 74 65 20 6e 61 6d 65 20 61 74 20 | sprite name at | 000021f0 52 31 2b 36 30 0a 20 20 20 20 20 20 20 20 2d 20 |R1+60. - | 00002200 74 68 65 20 73 70 72 69 74 65 20 69 73 20 73 74 |the sprite is st| 00002210 6f 72 65 64 20 69 6e 20 74 68 65 20 57 69 6d 70 |ored in the Wimp| 00002220 20 73 70 72 69 74 65 20 70 6f 6f 6c 20 61 6e 64 | sprite pool and| 00002230 20 73 68 6f 75 6c 64 20 62 65 0a 20 20 20 20 20 | should be. | 00002240 20 20 20 75 73 65 64 20 77 68 65 6e 20 72 65 6e | used when ren| 00002250 64 65 72 69 6e 67 20 74 68 65 20 70 6f 70 75 70 |dering the popup| 00002260 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 2e 0a 20 | dialogue box.. | 00002270 0a 20 0a 62 31 20 20 20 20 20 20 69 6e 64 69 63 |. .b1 indic| 00002280 61 74 65 73 20 74 68 61 74 20 74 68 65 20 74 6f |ates that the to| 00002290 6f 6c 20 63 61 6e 20 70 72 6f 76 69 64 65 20 61 |ol can provide a| 000022a0 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 | response. | 000022b0 20 20 74 6f 20 20 4d 65 73 73 61 67 65 5f 49 6e | to Message_In| 000022c0 66 6f 20 2e 0a 20 0a 62 32 20 20 20 20 20 20 52 |fo .. .b2 R| 000022d0 65 73 65 72 76 65 64 20 2d 20 30 0a 20 0a 62 33 |eserved - 0. .b3| 000022e0 20 20 20 20 20 20 69 6e 64 69 63 61 74 65 73 20 | indicates | 000022f0 74 68 61 74 20 74 68 65 20 74 6f 6f 6c 20 77 61 |that the tool wa| 00002300 6e 74 73 20 74 6f 20 27 6f 77 6e 27 20 74 68 65 |nts to 'own' the| 00002310 20 6f 62 6a 65 63 74 2e 0a 20 20 20 20 20 20 20 | object.. | 00002320 20 4c 6f 63 61 6c 20 74 61 73 6b 20 73 68 6f 75 | Local task shou| 00002330 6c 64 20 73 65 6e 64 20 4d 73 67 5f 44 65 73 65 |ld send Msg_Dese| 00002340 6c 65 63 74 20 66 6f 72 20 74 68 65 20 6f 62 6a |lect for the obj| 00002350 65 63 74 0a 20 20 20 20 20 20 20 20 62 65 66 6f |ect. befo| 00002360 72 65 20 73 65 6e 64 69 6e 67 20 20 4d 65 73 73 |re sending Mess| 00002370 61 67 65 5f 44 6f 59 6f 75 72 53 74 75 66 66 20 |age_DoYourStuff | 00002380 20 69 66 20 74 68 69 73 20 62 69 74 20 69 73 0a | if this bit is.| 00002390 20 20 20 20 20 20 20 20 73 65 74 2e 20 44 6f 20 | set. Do | 000023a0 6e 6f 74 20 73 65 74 20 74 68 69 73 20 62 69 74 |not set this bit| 000023b0 20 75 6e 6c 65 73 73 20 79 6f 75 20 68 61 76 65 | unless you have| 000023c0 20 74 6f 20 61 73 20 69 74 0a 20 20 20 20 20 20 | to as it. | 000023d0 20 20 77 69 6c 6c 20 70 72 65 76 65 6e 74 20 6f | will prevent o| 000023e0 74 68 65 72 20 72 65 6d 6f 74 65 20 74 61 73 6b |ther remote task| 000023f0 73 20 66 72 6f 6d 20 73 68 61 72 69 6e 67 20 74 |s from sharing t| 00002400 68 65 0a 20 20 20 20 20 20 20 20 6f 62 6a 65 63 |he. objec| 00002410 74 20 61 74 20 74 68 65 20 73 61 6d 65 20 74 69 |t at the same ti| 00002420 6d 65 2e 20 49 74 20 73 68 6f 75 6c 64 20 6f 6e |me. It should on| 00002430 6c 79 20 62 65 20 73 65 74 20 77 68 65 6e 0a 20 |ly be set when. | 00002440 20 20 20 20 20 20 20 74 68 65 20 72 65 6d 6f 74 | the remot| 00002450 65 20 74 61 73 6b 20 77 61 6e 74 73 20 74 6f 20 |e task wants to | 00002460 27 74 61 6b 65 20 6f 76 65 72 27 20 74 68 65 20 |'take over' the | 00002470 6f 62 6a 65 63 74 20 63 6f 6d 70 6c 65 74 65 6c |object completel| 00002480 79 2e 0a 20 0a 20 20 20 20 20 20 20 20 2d 20 73 |y.. . - s| 00002490 75 63 68 20 61 73 20 43 6f 6d 70 6f 73 69 74 69 |uch as Compositi| 000024a0 6f 6e 20 74 61 6b 69 6e 67 20 6f 76 65 72 20 61 |on taking over a| 000024b0 20 33 32 62 70 70 20 73 70 72 69 74 65 0a 20 20 | 32bpp sprite. | 000024c0 20 20 20 20 20 20 66 6f 72 20 75 73 65 20 61 73 | for use as| 000024d0 20 61 20 63 61 6e 76 61 73 2e 0a 20 0a 62 34 20 | a canvas.. .b4 | 000024e0 20 20 20 20 20 54 68 69 73 20 62 69 74 20 69 73 | This bit is| 000024f0 20 64 65 73 69 67 6e 65 64 20 74 6f 20 61 6c 6c | designed to all| 00002500 6f 77 20 66 6f 72 20 72 65 61 6c 20 27 69 6e 20 |ow for real 'in | 00002510 70 6c 61 63 65 20 65 64 69 74 69 6e 67 27 0a 20 |place editing'. | 00002520 20 20 20 20 20 20 20 6f 70 65 72 61 74 69 6f 6e | operation| 00002530 73 2e 20 42 65 63 61 75 73 65 20 6f 66 20 74 68 |s. Because of th| 00002540 65 20 61 6d 6f 75 6e 74 20 6f 66 20 63 6f 64 65 |e amount of code| 00002550 20 6e 65 63 65 73 73 61 72 79 0a 20 20 20 20 20 | necessary. | 00002560 20 20 20 61 74 20 74 68 65 20 6c 6f 63 61 6c 20 | at the local | 00002570 65 6e 64 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 |end to handle th| 00002580 69 73 20 69 74 20 68 61 73 20 62 65 65 6e 20 64 |is it has been d| 00002590 65 66 69 6e 65 64 0a 20 20 20 20 20 20 20 20 61 |efined. a| 000025a0 73 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 70 61 |s an optional pa| 000025b0 72 74 20 6f 66 20 74 68 65 20 73 74 61 6e 64 61 |rt of the standa| 000025c0 72 64 2e 20 0a 0a 4c 6f 63 61 6c 20 61 70 70 6c |rd. ..Local appl| 000025d0 69 63 61 74 69 6f 6e 73 20 77 68 69 63 68 20 64 |ications which d| 000025e0 6f 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 69 6e |o not support in| 000025f0 20 70 6c 61 63 65 20 65 64 69 74 69 6e 67 20 73 | place editing s| 00002600 68 6f 75 6c 64 20 63 6c 65 61 72 20 62 69 74 20 |hould clear bit | 00002610 34 0a 6f 66 20 74 68 65 20 66 6c 61 67 73 20 77 |4.of the flags w| 00002620 6f 72 64 20 61 6e 64 20 73 65 6e 64 20 74 68 61 |ord and send tha| 00002630 74 20 77 69 74 68 20 44 6f 59 6f 75 72 53 74 75 |t with DoYourStu| 00002640 66 66 2e 20 4f 6e 20 72 65 63 65 69 70 74 2c 20 |ff. On receipt, | 00002650 74 68 65 20 72 65 6d 6f 74 65 0a 61 70 70 6c 69 |the remote.appli| 00002660 63 61 74 69 6f 6e 20 73 68 6f 75 6c 64 20 63 68 |cation should ch| 00002670 65 63 6b 20 69 66 20 62 69 74 20 34 20 69 73 20 |eck if bit 4 is | 00002680 73 74 69 6c 6c 20 73 65 74 20 61 6e 64 20 69 66 |still set and if| 00002690 20 6e 6f 74 20 6f 70 65 6e 20 61 20 72 65 6d 6f | not open a remo| 000026a0 74 65 0a 77 69 6e 64 6f 77 20 6f 6e 74 6f 20 74 |te.window onto t| 000026b0 68 65 20 6f 62 6a 65 63 74 2e 0a 0a 4e 6f 74 65 |he object...Note| 000026c0 73 3a 20 49 6e 20 65 61 72 6c 79 20 76 65 72 73 |s: In early vers| 000026d0 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 73 74 61 |ions of this sta| 000026e0 6e 64 61 72 64 20 62 69 74 73 20 32 38 2d 33 31 |ndard bits 28-31| 000026f0 20 6f 66 20 74 68 65 20 66 6c 61 67 73 20 77 6f | of the flags wo| 00002700 72 64 20 68 61 64 0a 61 6e 6f 74 68 65 72 20 75 |rd had.another u| 00002710 73 65 2e 20 54 68 69 73 20 64 61 74 61 20 68 61 |se. This data ha| 00002720 73 20 62 65 65 6e 20 6d 6f 76 65 64 20 74 6f 20 |s been moved to | 00002730 4d 65 73 73 61 67 65 5f 48 6f 6f 6b 4d 65 2e 20 |Message_HookMe. | 00002740 50 6c 65 61 73 65 20 73 65 65 20 62 65 6c 6f 77 |Please see below| 00002750 2e 20 0a 0a 4d 65 73 73 61 67 65 5f 44 6f 59 6f |. ..Message_DoYo| 00002760 75 72 53 74 75 66 66 28 26 38 33 34 38 36 29 20 |urStuff(&83486) | 00002770 28 4d 73 67 5f 44 6f 25 29 20 0a 2d 2d 2d 2d 2d |(Msg_Do%) .-----| 00002780 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000027a0 0a 0a 54 68 65 20 62 6c 6f 63 6b 20 70 6f 69 6e |..The block poin| 000027b0 74 65 64 20 74 6f 20 62 79 20 52 31 20 63 6f 6e |ted to by R1 con| 000027c0 74 61 69 6e 73 3a 20 0a 20 0a 52 31 2b 32 30 20 |tains: . .R1+20 | 000027d0 20 20 46 69 6c 65 74 79 70 65 20 6f 66 20 6f 62 | Filetype of ob| 000027e0 6a 65 63 74 0a 52 31 2b 32 34 20 20 20 41 64 64 |ject.R1+24 Add| 000027f0 72 65 73 73 20 6f 66 20 6f 62 6a 65 63 74 20 74 |ress of object t| 00002800 61 67 0a 52 31 2b 32 38 20 20 20 72 65 73 65 72 |ag.R1+28 reser| 00002810 76 65 64 20 2d 20 30 0a 52 31 2b 33 32 20 20 20 |ved - 0.R1+32 | 00002820 54 6f 6f 6c 20 69 64 0a 52 31 2b 33 36 20 20 20 |Tool id.R1+36 | 00002830 54 6f 6f 6c 20 66 6c 61 67 73 20 77 6f 72 64 0a |Tool flags word.| 00002840 52 31 2b 34 30 20 20 20 53 74 72 69 6e 67 2e 20 |R1+40 String. | 00002850 4e 61 6d 65 20 6f 66 20 6f 62 6a 65 63 74 20 6f |Name of object o| 00002860 72 20 6e 75 6c 6c 20 28 26 30 29 20 0a 0a 53 65 |r null (&0) ..Se| 00002870 6e 74 20 62 79 20 4c 6f 63 61 6c 20 74 61 73 6b |nt by Local task| 00002880 20 74 6f 20 72 65 6d 6f 74 65 20 74 61 73 6b 20 | to remote task | 00002890 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 65 6e 74 |depending on ent| 000028a0 72 79 20 73 65 6c 65 63 74 65 64 20 69 6e 20 55 |ry selected in U| 000028b0 74 69 6c 69 74 69 65 73 0a 73 75 62 2d 6d 65 6e |tilities.sub-men| 000028c0 75 2f 64 69 61 6c 6f 67 75 65 2e 20 52 65 6d 6f |u/dialogue. Remo| 000028d0 74 65 20 74 61 73 6b 20 73 68 6f 75 6c 64 20 72 |te task should r| 000028e0 65 63 6f 72 64 20 74 68 65 20 74 61 67 20 61 64 |ecord the tag ad| 000028f0 64 72 65 73 73 20 61 6e 64 20 6f 70 65 6e 20 69 |dress and open i| 00002900 74 73 0a 77 69 6e 64 6f 77 20 28 6f 72 20 6a 75 |ts.window (or ju| 00002910 73 74 20 69 74 73 20 74 6f 6f 6c 62 61 72 20 69 |st its toolbar i| 00002920 66 20 62 69 74 20 34 20 6f 66 20 74 68 65 20 66 |f bit 4 of the f| 00002930 6c 61 67 73 20 77 6f 72 64 20 69 73 20 73 65 74 |lags word is set| 00002940 29 2e 20 0a 0a 4e 6f 74 65 73 3a 20 0a 0a 49 66 |). ..Notes: ..If| 00002950 20 74 68 65 20 52 65 6d 6f 74 65 20 74 61 73 6b | the Remote task| 00002960 20 73 65 74 20 62 69 74 20 34 20 6f 66 20 74 68 | set bit 4 of th| 00002970 65 20 66 6c 61 67 73 20 77 6f 72 64 20 69 6e 20 |e flags word in | 00002980 4d 65 73 73 61 67 65 5f 49 6d 48 65 72 65 20 77 |Message_ImHere w| 00002990 68 65 6e 0a 72 65 70 6c 79 69 6e 67 20 74 6f 20 |hen.replying to | 000029a0 20 4d 65 73 73 61 67 65 5f 57 68 6f 73 41 62 6f | Message_WhosAbo| 000029b0 75 74 20 69 74 20 73 68 6f 75 6c 64 20 63 68 65 |ut it should che| 000029c0 63 6b 20 74 68 61 74 20 74 68 69 73 20 62 69 74 |ck that this bit| 000029d0 20 69 73 20 73 74 69 6c 6c 20 73 65 74 0a 6e 6f | is still set.no| 000029e0 77 2e 20 49 66 20 69 74 20 68 61 73 20 62 65 65 |w. If it has bee| 000029f0 6e 20 63 6c 65 61 72 65 64 20 74 68 65 6e 20 74 |n cleared then t| 00002a00 68 65 20 4c 6f 63 61 6c 20 74 61 73 6b 20 63 61 |he Local task ca| 00002a10 6e 6e 6f 74 20 68 61 6e 64 6c 65 20 72 65 6d 6f |nnot handle remo| 00002a20 74 65 0a 6d 65 73 73 61 67 69 6e 67 20 61 6e 64 |te.messaging and| 00002a30 20 74 68 65 20 52 65 6d 6f 74 65 20 74 61 73 6b | the Remote task| 00002a40 20 6d 75 73 74 20 6f 70 65 6e 20 61 20 73 65 70 | must open a sep| 00002a50 61 72 61 74 65 20 77 69 6e 64 6f 77 20 6f 6e 74 |arate window ont| 00002a60 6f 20 74 68 65 20 6f 62 6a 65 63 74 2e 0a 0a 49 |o the object...I| 00002a70 66 20 62 69 74 20 34 20 69 73 20 73 74 69 6c 6c |f bit 4 is still| 00002a80 20 73 65 74 20 69 74 20 6d 65 61 6e 73 20 74 68 | set it means th| 00002a90 61 74 20 74 68 65 20 6c 6f 63 61 6c 20 74 61 73 |at the local tas| 00002aa0 6b 20 69 73 20 77 69 6c 6c 69 6e 67 20 74 6f 20 |k is willing to | 00002ab0 70 61 72 74 69 63 69 70 61 74 65 0a 69 6e 20 61 |participate.in a| 00002ac0 6e 20 69 6e 2d 70 6c 61 63 65 20 65 64 69 74 69 |n in-place editi| 00002ad0 6e 67 20 73 65 73 73 69 6f 6e 2e 20 49 6e 20 74 |ng session. In t| 00002ae0 68 69 73 20 63 61 73 65 20 74 68 65 20 52 65 6d |his case the Rem| 00002af0 6f 74 65 20 74 61 73 6b 20 73 68 6f 75 6c 64 20 |ote task should | 00002b00 73 69 6d 70 6c 79 0a 6f 70 65 6e 20 69 74 73 20 |simply.open its | 00002b10 74 6f 6f 6c 62 61 72 20 61 6e 64 20 73 65 6e 64 |toolbar and send| 00002b20 20 4d 65 73 73 61 67 65 5f 48 6f 6f 6b 4d 65 20 | Message_HookMe | 00002b30 74 6f 20 74 68 65 20 4c 6f 63 61 6c 20 74 61 73 |to the Local tas| 00002b40 6b 20 74 6f 20 61 73 6b 20 69 74 20 74 6f 0a 69 |k to ask it to.i| 00002b50 6e 74 65 72 63 65 70 74 20 6d 6f 75 73 65 20 62 |ntercept mouse b| 00002b60 75 74 74 6f 6e 20 61 6e 64 20 6f 74 68 65 72 20 |utton and other | 00002b70 57 69 6d 70 20 65 76 65 6e 74 73 2e 20 52 65 63 |Wimp events. Rec| 00002b80 65 69 70 74 20 6f 66 20 74 68 69 73 20 6d 65 73 |eipt of this mes| 00002b90 73 61 67 65 20 77 69 6c 6c 0a 61 6c 73 6f 20 63 |sage will.also c| 00002ba0 61 75 73 65 20 74 68 65 20 4c 6f 63 61 6c 20 74 |ause the Local t| 00002bb0 61 73 6b 20 74 6f 20 73 65 6e 64 20 4d 65 73 73 |ask to send Mess| 00002bc0 61 67 65 5f 4f 62 6a 65 63 74 50 6f 73 69 74 69 |age_ObjectPositi| 00002bd0 6f 6e 20 74 6f 20 6d 6f 76 65 20 74 68 65 20 72 |on to move the r| 00002be0 65 6d 6f 74 65 0a 74 61 73 6b 73 20 74 6f 6f 6c |emote.tasks tool| 00002bf0 62 61 72 20 74 6f 20 74 68 65 20 63 6f 72 72 65 |bar to the corre| 00002c00 63 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 4e 6f |ct position...No| 00002c10 74 68 69 6e 67 20 61 62 6f 75 74 20 74 68 65 20 |thing about the | 00002c20 73 74 61 6e 64 61 72 64 20 70 72 65 76 65 6e 74 |standard prevent| 00002c30 73 20 74 68 65 20 6f 62 6a 65 63 74 20 63 68 61 |s the object cha| 00002c40 6e 67 69 6e 67 20 74 79 70 65 20 28 65 67 20 66 |nging type (eg f| 00002c50 72 6f 6d 20 73 70 72 69 74 65 0a 74 6f 20 44 72 |rom sprite.to Dr| 00002c60 61 77 66 69 6c 65 29 20 62 65 74 77 65 65 6e 20 |awfile) between | 00002c70 20 4d 65 73 73 61 67 65 5f 57 68 6f 73 41 62 6f | Message_WhosAbo| 00002c80 75 74 20 61 6e 64 20 74 68 69 73 20 6d 65 73 73 |ut and this mess| 00002c90 61 67 65 2e 20 4f 6e 20 72 65 63 65 69 70 74 20 |age. On receipt | 00002ca0 6f 66 20 74 68 69 73 0a 6d 65 73 73 61 67 65 20 |of this.message | 00002cb0 74 68 65 20 52 65 6d 6f 74 65 20 74 61 73 6b 20 |the Remote task | 00002cc0 6d 75 73 74 20 74 68 65 72 65 66 6f 72 65 20 63 |must therefore c| 00002cd0 68 65 63 6b 20 74 68 65 20 66 69 6c 65 74 79 70 |heck the filetyp| 00002ce0 65 20 66 69 65 6c 64 20 61 6e 64 20 61 73 20 6d |e field and as m| 00002cf0 75 63 68 0a 6f 66 20 74 68 65 20 6f 62 6a 65 63 |uch.of the objec| 00002d00 74 27 73 20 64 61 74 61 20 73 74 72 75 63 74 75 |t's data structu| 00002d10 72 65 20 61 73 20 6e 65 63 65 73 73 61 72 79 20 |re as necessary | 00002d20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 69 |to ensure that i| 00002d30 74 20 63 61 6e 20 65 64 69 74 20 74 68 65 0a 6f |t can edit the.o| 00002d40 62 6a 65 63 74 20 61 6e 64 20 64 65 6c 69 6e 6b |bject and delink| 00002d50 2f 69 67 6e 6f 72 65 20 74 68 65 20 6d 65 73 73 |/ignore the mess| 00002d60 61 67 65 20 71 75 69 65 74 6c 79 20 69 66 20 74 |age quietly if t| 00002d70 68 65 20 74 79 70 65 20 69 73 20 6e 6f 74 20 74 |he type is not t| 00002d80 6f 20 69 74 73 0a 6c 69 6b 69 6e 67 2e 20 54 68 |o its.liking. Th| 00002d90 69 73 20 61 6c 6c 6f 77 73 20 74 68 65 20 4c 6f |is allows the Lo| 00002da0 63 61 6c 20 74 61 73 6b 20 74 6f 20 27 6d 6f 76 |cal task to 'mov| 00002db0 65 27 20 61 20 72 65 6d 6f 74 65 20 74 61 73 6b |e' a remote task| 00002dc0 20 74 6f 20 64 69 66 66 65 72 65 6e 74 0a 6f 62 | to different.ob| 00002dd0 6a 65 63 74 73 20 63 6c 65 61 6e 6c 79 2e 0a 0a |jects cleanly...| 00002de0 42 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 20 4d |Before sending M| 00002df0 65 73 73 61 67 65 5f 44 6f 59 6f 75 72 53 74 75 |essage_DoYourStu| 00002e00 66 66 20 77 69 74 68 20 62 69 74 20 34 20 73 65 |ff with bit 4 se| 00002e10 74 20 74 68 65 20 6c 6f 63 61 6c 20 74 61 73 6b |t the local task| 00002e20 20 73 68 6f 75 6c 64 0a 62 72 6f 61 64 63 61 73 | should.broadcas| 00002e30 74 20 20 4d 65 73 73 61 67 65 5f 55 6e 68 6f 6f |t Message_Unhoo| 00002e40 6b 4d 65 20 74 6f 20 70 72 65 76 65 6e 74 20 6d |kMe to prevent m| 00002e50 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 72 65 6d |ore than one rem| 00002e60 6f 74 65 20 74 61 73 6b 20 61 74 74 65 6d 70 74 |ote task attempt| 00002e70 69 6e 67 0a 74 6f 20 64 6f 20 69 6e 2d 70 6c 61 |ing.to do in-pla| 00002e80 63 65 20 65 64 69 74 69 6e 67 20 61 74 20 6f 6e |ce editing at on| 00002e90 63 65 2e 0a 0a 42 65 66 6f 72 65 20 73 65 6e 64 |ce...Before send| 00002ea0 69 6e 67 20 4d 65 73 73 61 67 65 5f 44 6f 59 6f |ing Message_DoYo| 00002eb0 75 72 53 74 75 66 66 20 77 69 74 68 20 62 69 74 |urStuff with bit| 00002ec0 20 33 20 73 65 74 20 74 68 65 20 6c 6f 63 61 6c | 3 set the local| 00002ed0 20 74 61 73 6b 20 73 68 6f 75 6c 64 0a 62 72 6f | task should.bro| 00002ee0 61 64 63 61 73 74 20 20 4d 65 73 73 61 67 65 5f |adcast Message_| 00002ef0 44 65 73 65 6c 65 63 74 20 61 73 20 74 68 65 20 |Deselect as the | 00002f00 72 65 6d 6f 74 65 20 74 61 73 6b 20 69 6e 20 71 |remote task in q| 00002f10 75 65 73 74 69 6f 6e 20 77 61 6e 74 73 20 74 6f |uestion wants to| 00002f20 20 27 6f 77 6e 27 0a 74 68 65 20 6f 62 6a 65 63 | 'own'.the objec| 00002f30 74 2e 20 0a 0a 4d 65 73 73 61 67 65 5f 44 65 73 |t. ..Message_Des| 00002f40 65 6c 65 63 74 28 26 38 33 34 38 37 29 20 28 4d |elect(&83487) (M| 00002f50 73 67 5f 44 65 73 65 6c 25 29 20 0a 2d 2d 2d 2d |sg_Desel%) .----| 00002f60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00002f80 2d 0a 0a 42 72 6f 61 64 63 61 73 74 20 62 79 20 |-..Broadcast by | 00002f90 4c 6f 63 61 6c 20 74 61 73 6b 20 77 68 65 6e 20 |Local task when | 00002fa0 74 68 65 20 6f 62 6a 65 63 74 20 68 61 73 20 62 |the object has b| 00002fb0 65 65 6e 20 64 65 6c 65 74 65 64 2e 0a 0a 54 68 |een deleted...Th| 00002fc0 65 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 20 |e block pointed | 00002fd0 74 6f 20 62 79 20 52 31 20 63 6f 6e 74 61 69 6e |to by R1 contain| 00002fe0 73 3a 20 0a 20 0a 52 31 2b 32 30 20 20 20 46 69 |s: . .R1+20 Fi| 00002ff0 6c 65 74 79 70 65 20 6f 66 20 6f 62 6a 65 63 74 |letype of object| 00003000 2e 0a 52 31 2b 32 34 20 20 20 41 64 64 72 65 73 |..R1+24 Addres| 00003010 73 20 6f 66 20 6f 62 6a 65 63 74 20 74 61 67 20 |s of object tag | 00003020 0a 0a 41 6c 6c 20 54 61 73 6b 73 20 69 6e 74 65 |..All Tasks inte| 00003030 72 65 73 74 65 64 20 69 6e 20 74 68 65 20 6f 62 |rested in the ob| 00003040 6a 65 63 74 20 73 68 6f 75 6c 64 20 63 6c 6f 73 |ject should clos| 00003050 65 20 74 68 65 69 72 20 77 69 6e 64 6f 77 2f 61 |e their window/a| 00003060 62 61 6e 64 6f 6e 20 74 68 65 69 72 0a 6f 70 65 |bandon their.ope| 00003070 72 61 74 69 6f 6e 73 20 61 73 20 74 68 65 20 6f |rations as the o| 00003080 62 6a 65 63 74 20 69 6e 20 71 75 65 73 74 69 6f |bject in questio| 00003090 6e 20 68 61 73 20 62 65 65 6e 20 72 65 6d 6f 76 |n has been remov| 000030a0 65 64 20 66 72 6f 6d 20 74 68 65 20 50 43 41 20 |ed from the PCA | 000030b0 73 79 73 74 65 6d 0a 28 75 73 75 61 6c 6c 79 20 |system.(usually | 000030c0 62 65 63 61 75 73 65 20 69 74 20 68 61 73 20 62 |because it has b| 000030d0 65 65 6e 20 64 65 6c 65 74 65 64 29 2e 20 4c 6f |een deleted). Lo| 000030e0 63 61 6c 20 74 61 73 6b 73 20 20 6d 75 73 74 20 |cal tasks must | 000030f0 67 65 6e 65 72 61 74 65 20 74 68 69 73 0a 6d 65 |generate this.me| 00003100 73 73 61 67 65 20 77 68 65 6e 20 64 65 6c 65 74 |ssage when delet| 00003110 69 6e 67 20 61 6e 20 6f 62 6a 65 63 74 2c 20 71 |ing an object, q| 00003120 75 69 74 74 69 6e 67 20 65 74 63 2e 20 6f 72 20 |uitting etc. or | 00003130 72 65 6d 6f 74 65 20 74 61 73 6b 73 20 75 73 69 |remote tasks usi| 00003140 6e 67 20 74 68 65 0a 6f 62 6a 65 63 74 20 77 69 |ng the.object wi| 00003150 6c 6c 20 63 72 61 73 68 2e 20 49 66 20 74 68 65 |ll crash. If the| 00003160 20 4c 6f 63 61 6c 20 74 61 73 6b 20 69 73 20 75 | Local task is u| 00003170 73 69 6e 67 20 50 43 41 53 75 70 70 6f 72 74 20 |sing PCASupport | 00003180 66 6f 72 20 74 61 67 20 67 65 6e 65 72 61 74 69 |for tag generati| 00003190 6f 6e 0a 69 74 20 73 68 6f 75 6c 64 20 63 61 6c |on.it should cal| 000031a0 6c 20 53 57 49 20 50 43 41 5f 44 65 6c 65 74 65 |l SWI PCA_Delete| 000031b0 41 6e 64 4b 69 6c 6c 20 77 68 69 63 68 20 77 69 |AndKill which wi| 000031c0 6c 6c 20 64 65 6c 65 74 65 20 74 68 65 20 74 61 |ll delete the ta| 000031d0 67 20 61 6e 64 20 73 65 6e 64 20 74 68 69 73 0a |g and send this.| 000031e0 6d 65 73 73 61 67 65 20 69 6e 20 6f 6e 65 20 6f |message in one o| 000031f0 70 65 72 61 74 69 6f 6e 20 62 75 74 20 6f 6e 6c |peration but onl| 00003200 79 20 77 68 65 6e 20 74 68 65 20 6f 62 6a 65 63 |y when the objec| 00003210 74 20 72 65 61 6c 6c 79 20 69 73 20 62 65 69 6e |t really is bein| 00003220 67 20 64 65 6c 65 74 65 64 2e 0a 0a 4e 6f 74 65 |g deleted...Note| 00003230 3a 20 54 68 69 73 20 69 6d 70 6c 69 65 73 20 74 |: This implies t| 00003240 68 61 74 20 74 68 65 20 72 65 6d 6f 74 65 20 74 |hat the remote t| 00003250 61 73 6b 2c 20 6f 6e 20 72 65 63 65 69 70 74 20 |ask, on receipt | 00003260 6f 66 20 74 68 69 73 20 6d 65 73 73 61 67 65 20 |of this message | 00003270 63 61 6e 6e 6f 74 0a 72 65 6c 79 20 6f 6e 20 6d |cannot.rely on m| 00003280 6f 72 65 20 74 68 61 6e 20 74 68 65 20 74 61 67 |ore than the tag| 00003290 20 61 64 64 72 65 73 73 20 61 73 20 61 20 6b 65 | address as a ke| 000032a0 79 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 74 2e |y to the object.| 000032b0 20 49 74 20 5f 63 61 6e 6e 6f 74 5f 20 61 63 63 | It _cannot_ acc| 000032c0 65 73 73 0a 74 68 65 20 6f 62 6a 65 63 74 20 64 |ess.the object d| 000032d0 61 74 61 20 76 69 61 20 74 68 65 20 74 61 67 20 |ata via the tag | 000032e0 70 61 73 73 65 64 20 61 73 20 53 57 49 20 50 43 |passed as SWI PC| 000032f0 41 5f 44 65 6c 65 74 65 54 61 67 20 68 61 73 20 |A_DeleteTag has | 00003300 61 6c 72 65 61 64 79 20 62 65 65 6e 0a 63 61 6c |already been.cal| 00003310 6c 65 64 20 28 74 68 65 20 61 64 64 72 65 73 73 |led (the address| 00003320 20 66 69 65 6c 64 73 20 77 69 74 68 69 6e 20 74 | fields within t| 00003330 68 65 20 74 61 67 20 77 69 6c 6c 20 63 6f 6e 74 |he tag will cont| 00003340 61 69 6e 20 2d 31 20 61 6e 64 20 74 68 65 20 6f |ain -1 and the o| 00003350 62 6a 65 63 74 0a 64 61 74 61 20 69 74 73 65 6c |bject.data itsel| 00003360 66 20 6d 61 79 20 77 65 6c 6c 20 68 61 76 65 20 |f may well have | 00003370 62 65 65 6e 20 64 69 73 63 61 72 64 65 64 29 2e |been discarded).| 00003380 20 54 68 69 73 20 69 73 20 75 6e 61 76 6f 69 64 | This is unavoid| 00003390 61 62 6c 65 20 77 69 74 68 6f 75 74 20 61 20 74 |able without a t| 000033a0 77 6f 0a 6d 65 73 73 61 67 65 20 28 4d 65 73 73 |wo.message (Mess| 000033b0 61 67 65 2f 41 63 6b 29 20 64 65 73 65 6c 65 63 |age/Ack) deselec| 000033c0 74 69 6f 6e 20 73 79 73 74 65 6d 20 77 68 69 63 |tion system whic| 000033d0 68 20 77 6f 75 6c 64 20 62 65 20 6d 6f 72 65 20 |h would be more | 000033e0 64 69 66 66 69 63 75 69 6c 74 20 66 6f 72 0a 74 |difficuilt for.t| 000033f0 61 73 6b 73 20 74 6f 20 68 61 6e 64 6c 65 2e 20 |asks to handle. | 00003400 45 73 70 65 63 69 61 6c 6c 79 20 28 61 73 20 69 |Especially (as i| 00003410 73 20 6f 66 74 65 6e 20 74 68 65 20 63 61 73 65 |s often the case| 00003420 29 20 69 66 20 74 68 65 20 6c 6f 63 61 6c 20 74 |) if the local t| 00003430 61 73 6b 20 69 73 0a 61 62 6f 75 74 20 74 6f 20 |ask is.about to | 00003440 71 75 69 74 2e 20 0a 0a 4d 65 73 73 61 67 65 5f |quit. ..Message_| 00003450 44 6f 6e 65 4d 79 53 74 75 66 66 28 26 38 33 34 |DoneMyStuff(&834| 00003460 38 38 29 20 28 4d 73 67 5f 44 6f 6e 65 25 29 20 |88) (Msg_Done%) | 00003470 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |.---------------| 00003480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00003490 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 42 72 6f 61 64 63 |--------..Broadc| 000034a0 61 73 74 20 62 79 20 61 20 74 61 73 6b 20 77 68 |ast by a task wh| 000034b0 65 6e 20 69 74 20 68 61 73 20 6d 6f 64 69 66 69 |en it has modifi| 000034c0 65 64 20 74 68 65 20 6f 62 6a 65 63 74 2e 20 41 |ed the object. A| 000034d0 6c 6c 20 74 61 73 6b 73 20 61 63 63 65 73 73 69 |ll tasks accessi| 000034e0 6e 67 20 74 68 65 0a 6f 62 6a 65 63 74 20 6f 74 |ng the.object ot| 000034f0 68 65 72 20 74 68 61 6e 20 74 68 65 20 6f 72 69 |her than the ori| 00003500 67 69 6e 61 74 6f 72 20 6f 66 20 74 68 65 20 6d |ginator of the m| 00003510 65 73 73 61 67 65 20 73 68 6f 75 6c 64 20 72 65 |essage should re| 00003520 63 6f 67 6e 69 73 65 20 74 68 69 73 0a 6d 65 73 |cognise this.mes| 00003530 73 61 67 65 20 61 6e 64 20 72 65 64 72 61 77 20 |sage and redraw | 00003540 74 68 65 20 6f 62 6a 65 63 74 2e 0a 0a 54 68 65 |the object...The| 00003550 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 20 74 | block pointed t| 00003560 6f 20 62 79 20 52 31 20 63 6f 6e 74 61 69 6e 73 |o by R1 contains| 00003570 3a 20 0a 20 0a 52 31 2b 32 30 20 20 20 30 0a 52 |: . .R1+20 0.R| 00003580 31 2b 32 34 20 20 20 41 64 64 72 65 73 73 20 6f |1+24 Address o| 00003590 66 20 6f 62 6a 65 63 74 20 74 61 67 0a 20 20 0a |f object tag. .| 000035a0 55 73 65 20 74 68 69 73 20 6d 65 73 73 61 67 65 |Use this message| 000035b0 20 66 6f 72 20 27 77 68 6f 6c 65 20 6f 62 6a 65 | for 'whole obje| 000035c0 63 74 20 63 68 61 6e 67 65 64 27 20 6f 70 65 72 |ct changed' oper| 000035d0 61 74 69 6f 6e 73 20 77 68 69 63 68 20 64 6f 20 |ations which do | 000035e0 6e 6f 74 20 69 6e 76 6f 6c 76 65 0a 63 68 61 6e |not involve.chan| 000035f0 67 65 73 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 |ges to the objec| 00003600 74 27 73 20 62 61 73 69 63 20 73 74 72 75 63 74 |t's basic struct| 00003610 75 72 65 20 28 45 67 2e 20 69 6d 61 67 65 20 66 |ure (Eg. image f| 00003620 69 6c 74 65 72 20 6f 66 20 73 70 72 69 74 65 29 |ilter of sprite)| 00003630 2e 0a 0a 4e 6f 74 65 3a 20 52 65 63 65 69 70 74 |...Note: Receipt| 00003640 20 6f 66 20 74 68 69 73 20 6d 65 73 73 61 67 65 | of this message| 00003650 20 62 79 20 74 68 65 20 4c 6f 63 61 6c 20 74 61 | by the Local ta| 00003660 73 6b 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 |sk should not be| 00003670 20 74 61 6b 65 6e 20 61 73 20 61 6e 0a 69 6e 64 | taken as an.ind| 00003680 69 63 61 74 69 6f 6e 20 74 68 61 74 20 74 68 65 |ication that the| 00003690 20 72 65 6d 6f 74 65 20 74 61 73 6b 20 69 73 20 | remote task is | 000036a0 6e 6f 20 6c 6f 6e 67 65 72 20 69 6e 74 65 72 65 |no longer intere| 000036b0 73 74 65 64 20 69 6e 20 69 74 2e 20 54 68 61 74 |sted in it. That| 000036c0 20 69 73 20 77 68 61 74 0a 4d 65 73 73 61 67 65 | is what.Message| 000036d0 5f 55 6e 68 6f 6f 6b 4d 65 20 69 73 20 66 6f 72 |_UnhookMe is for| 000036e0 2e 20 0a 0a 4d 65 73 73 61 67 65 5f 43 68 61 6e |. ..Message_Chan| 000036f0 67 65 64 28 26 38 33 34 38 41 29 20 28 4d 73 67 |ged(&8348A) (Msg| 00003700 5f 43 68 61 6e 67 65 64 25 29 20 0a 2d 2d 2d 2d |_Changed%) .----| 00003710 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00003730 2d 2d 0a 0a 42 72 6f 61 64 63 61 73 74 20 62 79 |--..Broadcast by| 00003740 20 4c 6f 63 61 6c 20 6f 72 20 52 65 6d 6f 74 65 | Local or Remote| 00003750 20 74 61 73 6b 20 77 68 65 6e 20 74 68 65 20 6f | task when the o| 00003760 62 6a 65 63 74 20 68 61 73 20 63 68 61 6e 67 65 |bject has change| 00003770 64 20 28 65 69 74 68 65 72 20 69 6e 0a 73 69 7a |d (either in.siz| 00003780 65 20 6f 72 20 69 74 73 20 64 65 74 61 69 6c 73 |e or its details| 00003790 29 2e 20 54 61 73 6b 20 73 68 6f 75 6c 64 20 61 |). Task should a| 000037a0 63 74 20 61 73 20 69 66 20 69 74 20 68 61 64 20 |ct as if it had | 000037b0 67 6f 74 20 61 20 6e 65 77 20 44 6f 59 6f 75 72 |got a new DoYour| 000037c0 53 74 75 66 66 0a 6d 65 73 73 61 67 65 2e 0a 0a |Stuff.message...| 000037d0 42 72 6f 61 64 63 61 73 74 20 62 79 20 52 65 6d |Broadcast by Rem| 000037e0 6f 74 65 20 74 61 73 6b 20 61 66 74 65 72 20 69 |ote task after i| 000037f0 74 20 68 61 73 20 63 68 61 6e 67 65 64 20 74 68 |t has changed th| 00003800 65 20 6f 62 6a 65 63 74 27 73 20 73 69 7a 65 2e |e object's size.| 00003810 20 4c 6f 63 61 6c 20 61 6e 64 0a 6f 74 68 65 72 | Local and.other| 00003820 20 69 6e 74 65 72 65 73 74 65 64 20 52 65 6d 6f | interested Remo| 00003830 74 65 20 74 61 73 6b 73 20 77 69 6c 6c 20 72 65 |te tasks will re| 00003840 2d 72 65 61 64 20 74 68 65 20 6f 62 6a 65 63 74 |-read the object| 00003850 27 73 20 64 65 74 61 69 6c 73 20 61 6e 64 20 72 |'s details and r| 00003860 65 64 72 61 77 0a 74 68 65 20 6f 62 6a 65 63 74 |edraw.the object| 00003870 2e 0a 0a 54 68 65 20 62 6c 6f 63 6b 20 70 6f 69 |...The block poi| 00003880 6e 74 65 64 20 74 6f 20 62 79 20 52 31 20 63 6f |nted to by R1 co| 00003890 6e 74 61 69 6e 73 3a 20 0a 20 0a 52 31 2b 32 30 |ntains: . .R1+20| 000038a0 20 20 20 46 69 6c 65 74 79 70 65 20 6f 66 20 6f | Filetype of o| 000038b0 62 6a 65 63 74 0a 52 31 2b 32 34 20 20 20 41 64 |bject.R1+24 Ad| 000038c0 64 72 65 73 73 20 6f 66 20 6f 62 6a 65 63 74 20 |dress of object | 000038d0 74 61 67 0a 52 31 2b 32 38 20 20 20 72 65 73 65 |tag.R1+28 rese| 000038e0 72 76 65 64 20 2d 20 30 0a 52 31 2b 33 32 20 20 |rved - 0.R1+32 | 000038f0 20 53 74 72 69 6e 67 2e 20 4e 65 77 20 6e 61 6d | String. New nam| 00003900 65 20 6f 66 20 6f 62 6a 65 63 74 20 6f 72 20 7a |e of object or z| 00003910 65 72 6f 20 66 6f 72 20 6e 6f 20 63 68 61 6e 67 |ero for no chang| 00003920 65 2e 0a 20 20 0a 4e 6f 74 65 3a 20 4e 6f 74 68 |e.. .Note: Noth| 00003930 69 6e 67 20 61 62 6f 75 74 20 74 68 65 20 73 74 |ing about the st| 00003940 61 6e 64 61 72 64 20 70 72 65 76 65 6e 74 73 20 |andard prevents | 00003950 74 68 65 20 6f 62 6a 65 63 74 20 63 68 61 6e 67 |the object chang| 00003960 69 6e 67 20 74 79 70 65 20 28 65 67 20 66 72 6f |ing type (eg fro| 00003970 6d 0a 73 70 72 69 74 65 20 74 6f 20 44 72 61 77 |m.sprite to Draw| 00003980 66 69 6c 65 29 2e 20 4f 6e 20 72 65 63 65 69 70 |file). On receip| 00003990 74 20 6f 66 20 74 68 69 73 20 6d 65 73 73 61 67 |t of this messag| 000039a0 65 20 70 6c 65 61 73 65 20 63 68 65 63 6b 20 74 |e please check t| 000039b0 68 65 20 66 69 6c 65 74 79 70 65 0a 66 69 65 6c |he filetype.fiel| 000039c0 64 20 61 73 20 77 65 6c 6c 20 61 73 20 61 6c 6c |d as well as all| 000039d0 20 6e 65 63 65 73 73 61 72 79 20 61 73 70 65 63 | necessary aspec| 000039e0 74 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 |ts of the object| 000039f0 27 73 20 64 61 74 61 20 73 74 72 75 63 74 75 72 |'s data structur| 00003a00 65 2e 20 49 66 0a 74 68 65 20 6f 62 6a 65 63 74 |e. If.the object| 00003a10 20 69 73 20 6e 6f 74 20 74 6f 20 61 20 52 65 6d | is not to a Rem| 00003a20 6f 74 65 20 74 61 73 6b 27 73 20 6c 69 6b 69 6e |ote task's likin| 00003a30 67 20 69 74 20 73 68 6f 75 6c 64 20 73 65 6e 64 |g it should send| 00003a40 20 4d 65 73 73 61 67 65 5f 55 6e 48 6f 6f 6b 0a | Message_UnHook.| 00003a50 61 6e 64 20 64 65 6c 69 6e 6b 20 71 75 69 65 74 |and delink quiet| 00003a60 6c 79 2e 20 0a 0a 4d 65 73 73 61 67 65 5f 52 65 |ly. ..Message_Re| 00003a70 73 69 7a 65 52 65 71 75 65 73 74 28 26 38 33 34 |sizeRequest(&834| 00003a80 38 42 29 20 28 4d 73 67 5f 52 65 73 69 7a 65 25 |8B) (Msg_Resize%| 00003a90 29 20 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |) .-------------| 00003aa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00003ab0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a |--------------..| 00003ac0 53 65 6e 74 20 62 79 20 52 65 6d 6f 74 65 20 74 |Sent by Remote t| 00003ad0 61 73 6b 20 74 6f 20 4c 6f 63 61 6c 20 28 74 61 |ask to Local (ta| 00003ae0 73 6b 20 68 61 6e 64 6c 65 20 69 6e 20 52 31 2b |sk handle in R1+| 00003af0 34 20 6f 66 20 44 6f 59 6f 75 72 53 74 75 66 66 |4 of DoYourStuff| 00003b00 20 6d 65 73 73 61 67 65 29 2e 0a 49 66 20 74 68 | message)..If th| 00003b10 65 20 4c 6f 63 61 6c 20 74 61 73 6b 20 66 61 69 |e Local task fai| 00003b20 6c 73 20 74 6f 20 64 65 61 6c 20 73 75 63 63 65 |ls to deal succe| 00003b30 73 73 66 75 6c 6c 79 20 69 74 20 77 69 6c 6c 20 |ssfully it will | 00003b40 63 6c 61 69 6d 20 74 68 65 20 6d 65 73 73 61 67 |claim the messag| 00003b50 65 2e 0a 0a 54 68 65 20 62 6c 6f 63 6b 20 70 6f |e...The block po| 00003b60 69 6e 74 65 64 20 74 6f 20 62 79 20 52 31 20 63 |inted to by R1 c| 00003b70 6f 6e 74 61 69 6e 73 3a 20 0a 20 0a 52 31 2b 32 |ontains: . .R1+2| 00003b80 30 20 20 20 30 0a 52 31 2b 32 34 20 20 20 41 64 |0 0.R1+24 Ad| 00003b90 64 72 65 73 73 20 6f 66 20 6f 62 6a 65 63 74 20 |dress of object | 00003ba0 74 61 67 0a 52 31 2b 32 38 20 20 20 72 65 73 65 |tag.R1+28 rese| 00003bb0 72 76 65 64 20 2d 20 30 0a 52 31 2b 33 32 20 20 |rved - 0.R1+32 | 00003bc0 20 4e 65 77 20 73 69 7a 65 2e 20 54 6f 74 61 6c | New size. Total| 00003bd0 20 73 69 7a 65 20 6f 66 20 6f 62 6a 65 63 74 20 | size of object | 00003be0 73 74 72 75 63 74 75 72 65 0a 20 20 20 20 20 20 |structure. | 00003bf0 20 20 28 69 6e 63 6c 75 64 69 6e 67 20 68 65 61 | (including hea| 00003c00 64 65 72 2c 20 6f 66 66 73 65 74 20 74 6f 20 62 |der, offset to b| 00003c10 61 73 65 20 65 74 63 2e 29 20 69 66 20 66 6c 61 |ase etc.) if fla| 00003c20 67 73 20 62 31 0a 20 20 20 20 20 20 20 20 63 6c |gs b1. cl| 00003c30 65 61 72 20 6f 74 68 65 72 77 69 73 65 20 6e 65 |ear otherwise ne| 00003c40 77 20 73 69 7a 65 20 6f 66 20 6f 62 6a 65 63 74 |w size of object| 00003c50 20 69 74 73 65 6c 66 2e 0a 52 31 2b 33 36 20 20 | itself..R1+36 | 00003c60 20 46 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 | Flags. | 00003c70 20 20 20 20 20 20 62 30 20 73 65 74 20 27 52 65 | b0 set 'Re| 00003c80 73 69 7a 65 20 61 73 73 6f 63 69 61 74 65 64 20 |size associated | 00003c90 6f 62 6a 65 63 74 73 20 61 73 20 77 65 6c 6c 27 |objects as well'| 00003ca0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00003cb0 62 31 20 73 65 74 20 27 4e 65 77 20 53 69 7a 65 |b1 set 'New Size| 00003cc0 20 69 73 20 66 6f 72 20 6f 62 6a 65 63 74 20 61 | is for object a| 00003cd0 6c 6f 6e 65 20 2d 20 64 6f 65 73 20 6e 6f 74 20 |lone - does not | 00003ce0 69 6e 63 6c 75 64 65 20 68 65 61 64 65 72 2e 27 |include header.'| 00003cf0 20 0a 0a 49 66 20 74 68 65 20 4c 6f 63 61 6c 20 | ..If the Local | 00003d00 74 61 73 6b 20 73 75 63 63 65 65 64 73 20 74 68 |task succeeds th| 00003d10 65 6e 20 69 74 20 77 69 6c 6c 20 73 65 6e 64 20 |en it will send | 00003d20 4d 65 73 73 61 67 65 5f 52 65 73 69 7a 65 41 63 |Message_ResizeAc| 00003d30 6b 20 28 62 61 73 69 63 61 6c 6c 79 2c 0a 63 6f |k (basically,.co| 00003d40 70 79 20 52 31 2b 38 20 74 6f 20 52 31 2b 31 32 |py R1+8 to R1+12| 00003d50 2c 20 70 75 74 20 4d 65 73 73 61 67 65 20 52 65 |, put Message Re| 00003d60 73 69 7a 65 41 63 6b 20 69 6e 74 6f 20 52 31 2b |sizeAck into R1+| 00003d70 31 36 2c 20 75 70 64 61 74 65 20 52 31 2b 33 32 |16, update R1+32| 00003d80 20 61 6e 64 0a 72 65 74 75 72 6e 20 74 6f 20 73 | and.return to s| 00003d90 65 6e 64 65 72 29 2e 20 4f 6e 20 72 65 63 65 69 |ender). On recei| 00003da0 70 74 20 6f 66 20 52 65 73 69 7a 65 41 63 6b 20 |pt of ResizeAck | 00003db0 6d 65 73 73 61 67 65 20 74 68 65 20 73 65 6e 64 |message the send| 00003dc0 65 72 20 6f 66 0a 52 65 73 69 7a 65 52 65 71 75 |er of.ResizeRequ| 00003dd0 65 73 74 20 73 68 6f 75 6c 64 20 6d 6f 64 69 66 |est should modif| 00003de0 79 20 74 68 65 20 6f 62 6a 65 63 74 20 61 70 70 |y the object app| 00003df0 72 6f 70 72 69 61 74 65 6c 79 20 28 66 6f 72 20 |ropriately (for | 00003e00 65 78 61 6d 70 6c 65 2c 20 61 64 64 69 6e 67 0a |example, adding.| 00003e10 72 6f 77 73 2f 63 6f 6c 75 6d 6e 73 20 74 6f 20 |rows/columns to | 00003e20 61 20 73 70 72 69 74 65 29 2e 20 0a 0a 4e 6f 74 |a sprite). ..Not| 00003e30 65 73 3a 0a 20 0a 59 6f 75 20 6d 75 73 74 20 62 |es:. .You must b| 00003e40 65 20 70 72 65 70 61 72 65 64 20 66 6f 72 20 74 |e prepared for t| 00003e50 68 65 20 72 65 73 69 7a 65 20 72 65 71 75 65 73 |he resize reques| 00003e60 74 20 74 6f 20 66 61 69 6c 20 69 6e 20 77 68 69 |t to fail in whi| 00003e70 63 68 20 63 61 73 65 20 69 74 20 69 73 20 74 68 |ch case it is th| 00003e80 65 0a 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 79 |e.responsibility| 00003e90 20 6f 66 20 74 68 65 20 4c 6f 63 61 6c 20 74 61 | of the Local ta| 00003ea0 73 6b 20 74 6f 20 72 65 70 6f 72 74 20 74 6f 20 |sk to report to | 00003eb0 74 68 65 20 75 73 65 72 20 61 6e 64 20 74 68 65 |the user and the| 00003ec0 20 52 65 6d 6f 74 65 20 74 61 73 6b 0a 74 6f 20 | Remote task.to | 00003ed0 63 6f 6e 74 69 6e 75 65 20 73 61 66 65 6c 79 2e |continue safely.| 00003ee0 0a 0a 49 66 20 74 68 65 20 52 65 73 69 7a 65 41 |..If the ResizeA| 00003ef0 63 6b 20 6d 65 73 73 61 67 65 20 72 65 74 75 72 |ck message retur| 00003f00 6e 73 20 74 6f 20 61 20 52 65 6d 6f 74 65 20 74 |ns to a Remote t| 00003f10 61 73 6b 20 79 6f 75 20 6d 75 73 74 20 63 68 65 |ask you must che| 00003f20 63 6b 20 74 68 61 74 20 74 68 65 0a 66 69 65 6c |ck that the.fiel| 00003f30 64 20 69 6e 20 52 31 2b 31 32 20 69 73 20 65 71 |d in R1+12 is eq| 00003f40 75 61 6c 20 74 6f 20 74 68 65 20 4d 79 52 65 66 |ual to the MyRef| 00003f50 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 74 68 | generated by th| 00003f60 65 20 52 65 73 69 7a 65 20 6d 65 73 73 61 67 65 |e Resize message| 00003f70 20 79 6f 75 0a 73 65 6e 74 20 74 6f 20 65 6e 73 | you.sent to ens| 00003f80 75 72 65 20 74 68 61 74 20 74 68 65 20 52 65 73 |ure that the Res| 00003f90 69 7a 65 41 63 6b 20 69 73 20 66 6f 72 20 74 68 |izeAck is for th| 00003fa0 65 20 6f 62 6a 65 63 74 20 79 6f 75 20 68 61 76 |e object you hav| 00003fb0 65 20 72 65 71 75 65 73 74 65 64 20 62 65 0a 72 |e requested be.r| 00003fc0 65 73 69 7a 65 64 2e 20 49 66 20 69 74 20 69 73 |esized. If it is| 00003fd0 2c 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 68 |, ensure that th| 00003fe0 65 20 6f 62 6a 65 63 74 20 69 73 20 69 6e 20 61 |e object is in a| 00003ff0 20 72 65 6e 64 65 72 61 62 6c 65 20 73 74 61 74 | renderable stat| 00004000 65 20 62 65 66 6f 72 65 0a 74 68 65 20 6e 65 78 |e before.the nex| 00004010 74 20 57 69 6d 70 5f 50 6f 6c 6c 20 62 79 20 75 |t Wimp_Poll by u| 00004020 70 64 61 74 69 6e 67 20 74 68 65 20 72 65 6c 65 |pdating the rele| 00004030 76 61 6e 74 20 70 61 72 74 73 20 6f 66 20 74 68 |vant parts of th| 00004040 65 20 6f 62 6a 65 63 74 27 73 20 69 6e 74 65 72 |e object's inter| 00004050 6e 61 6c 0a 64 61 74 61 20 73 74 72 75 63 74 75 |nal.data structu| 00004060 72 65 2e 0a 0a 54 68 65 20 6c 6f 63 61 6c 20 74 |re...The local t| 00004070 61 73 6b 27 73 20 6f 6e 6c 79 20 6d 6f 64 69 66 |ask's only modif| 00004080 69 63 61 74 69 6f 6e 20 74 6f 20 74 68 65 20 64 |ication to the d| 00004090 61 74 61 20 61 66 74 65 72 20 61 20 52 65 73 69 |ata after a Resi| 000040a0 7a 65 20 69 73 20 74 6f 20 77 72 69 74 65 0a 6e |ze is to write.n| 000040b0 65 77 20 73 69 7a 65 20 66 69 65 6c 64 73 20 77 |ew size fields w| 000040c0 68 65 72 65 20 61 70 70 72 6f 70 72 69 61 74 65 |here appropriate| 000040d0 20 61 6e 64 20 74 6f 20 75 70 64 61 74 65 20 74 | and to update t| 000040e0 68 65 20 6f 62 6a 65 63 74 27 73 20 74 61 67 20 |he object's tag | 000040f0 61 64 64 72 65 73 73 0a 66 69 65 6c 64 73 20 69 |address.fields i| 00004100 66 20 74 68 65 20 6f 62 6a 65 63 74 20 6d 6f 76 |f the object mov| 00004110 65 73 2e 20 46 6f 72 20 73 70 72 69 74 65 73 20 |es. For sprites | 00004120 74 68 65 20 6e 65 77 20 74 6f 74 61 6c 20 61 72 |the new total ar| 00004130 65 61 20 73 69 7a 65 20 73 68 6f 75 6c 64 20 62 |ea size should b| 00004140 65 0a 77 72 69 74 74 65 6e 20 69 6e 74 6f 20 27 |e.written into '| 00004150 42 61 73 65 20 6f 66 20 64 61 74 61 27 2b 30 20 |Base of data'+0 | 00004160 2d 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 6b 6e |- it does not kn| 00004170 6f 77 20 77 68 61 74 20 74 68 65 20 52 65 6d 6f |ow what the Remo| 00004180 74 65 20 74 61 73 6b 20 69 73 0a 67 6f 69 6e 67 |te task is.going| 00004190 20 74 6f 20 64 6f 20 77 69 74 68 20 74 68 65 20 | to do with the | 000041a0 73 70 72 69 74 65 20 61 6e 64 20 74 68 65 72 65 |sprite and there| 000041b0 66 6f 72 65 20 63 61 6e 6e 6f 74 20 6d 61 6b 65 |fore cannot make| 000041c0 20 61 6e 79 20 6f 74 68 65 72 0a 6d 6f 64 69 66 | any other.modif| 000041d0 69 63 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 |ications to the | 000041e0 64 61 74 61 2e 0a 0a 46 6f 72 20 64 61 74 61 20 |data...For data | 000041f0 74 79 70 65 73 20 77 68 69 63 68 20 64 6f 20 6e |types which do n| 00004200 6f 74 20 73 74 6f 72 65 20 73 69 7a 65 20 77 69 |ot store size wi| 00004210 74 68 69 6e 20 74 68 65 69 72 20 64 61 74 61 20 |thin their data | 00004220 73 74 72 75 63 74 75 72 65 20 74 68 65 6e 20 74 |structure then t| 00004230 68 65 0a 6c 65 6e 67 74 68 20 66 69 65 6c 64 20 |he.length field | 00004240 6f 66 20 74 68 65 20 74 61 67 20 73 68 6f 75 6c |of the tag shoul| 00004250 64 20 61 6c 73 6f 20 62 65 20 6d 6f 64 69 66 69 |d also be modifi| 00004260 65 64 20 28 61 6c 6f 6e 67 20 77 69 74 68 20 74 |ed (along with t| 00004270 68 65 20 61 64 64 72 65 73 73 0a 66 69 65 6c 64 |he address.field| 00004280 73 20 69 66 20 74 68 65 20 6f 62 6a 65 63 74 20 |s if the object | 00004290 68 61 73 20 74 6f 20 62 65 20 6d 6f 76 65 64 29 |has to be moved)| 000042a0 2e 0a 0a 41 66 74 65 72 20 6d 6f 64 69 66 79 69 |...After modifyi| 000042b0 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 20 74 68 |ng the object th| 000042c0 65 20 52 65 6d 6f 74 65 20 74 61 73 6b 20 6d 75 |e Remote task mu| 000042d0 73 74 20 62 72 6f 61 64 63 61 73 74 20 4d 65 73 |st broadcast Mes| 000042e0 73 61 67 65 5f 43 68 61 6e 67 65 64 20 2e 20 0a |sage_Changed . .| 000042f0 43 6f 6d 70 6f 73 69 74 69 6f 6e 20 77 69 6c 6c |Composition will| 00004300 20 72 65 61 64 20 62 69 74 20 7a 65 72 6f 20 6f | read bit zero o| 00004310 66 20 74 68 65 20 66 6c 61 67 73 20 77 6f 72 64 |f the flags word| 00004320 2e 20 49 66 20 74 68 69 73 20 62 69 74 20 69 73 |. If this bit is| 00004330 20 73 65 74 2c 20 69 74 0a 77 69 6c 6c 20 72 65 | set, it.will re| 00004340 73 69 7a 65 20 6d 61 73 6b 73 20 61 73 73 6f 63 |size masks assoc| 00004350 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 73 |iated with the s| 00004360 70 72 69 74 65 20 69 6e 20 71 75 65 73 74 69 6f |prite in questio| 00004370 6e 20 61 73 20 77 65 6c 6c 2e 20 54 68 65 20 61 |n as well. The a| 00004380 6d 6f 75 6e 74 0a 62 79 20 77 68 69 63 68 20 6d |mount.by which m| 00004390 61 73 6b 73 20 77 69 6c 6c 20 62 65 20 72 65 73 |asks will be res| 000043a0 69 7a 65 64 20 69 73 20 63 61 6c 63 75 6c 61 74 |ized is calculat| 000043b0 65 64 20 66 72 6f 6d 20 74 68 65 20 72 65 73 69 |ed from the resi| 000043c0 7a 65 2d 72 65 71 75 65 73 74 20 66 6f 72 20 74 |ze-request for t| 000043d0 68 65 0a 73 70 72 69 74 65 20 69 74 73 65 6c 66 |he.sprite itself| 000043e0 2e 20 4f 74 68 65 72 20 61 70 70 6c 69 63 61 74 |. Other applicat| 000043f0 69 6f 6e 73 20 63 61 6e 20 69 67 6e 6f 72 65 20 |ions can ignore | 00004400 6f 72 20 61 63 74 20 6f 6e 20 74 68 69 73 20 62 |or act on this b| 00004410 69 74 20 61 73 20 74 68 65 79 0a 77 69 73 68 2e |it as they.wish.| 00004420 20 54 68 65 20 74 61 73 6b 20 77 68 69 63 68 20 | The task which | 00004430 72 65 71 75 65 73 74 65 64 20 74 68 65 20 72 65 |requested the re| 00004440 73 69 7a 65 20 6d 75 73 74 20 62 65 20 61 62 6c |size must be abl| 00004450 65 20 74 6f 20 68 61 6e 64 6c 65 20 65 69 74 68 |e to handle eith| 00004460 65 72 0a 61 63 74 69 6f 6e 2e 0a 0a 42 69 74 20 |er.action...Bit | 00004470 6f 6e 65 20 6f 66 20 74 68 65 20 66 6c 61 67 73 |one of the flags| 00004480 20 77 6f 72 64 20 69 73 20 69 6e 74 65 6e 64 65 | word is intende| 00004490 64 20 74 6f 20 66 61 63 69 6c 69 74 61 74 65 20 |d to facilitate | 000044a0 74 68 65 20 72 65 73 69 7a 69 6e 67 20 6f 66 20 |the resizing of | 000044b0 70 61 74 68 73 20 69 6e 0a 44 72 61 77 66 69 6c |paths in.Drawfil| 000044c0 65 73 20 61 6e 64 20 73 69 6d 69 6c 61 72 20 64 |es and similar d| 000044d0 61 74 61 20 73 74 72 75 63 74 75 72 65 73 20 75 |ata structures u| 000044e0 6e 64 65 72 20 74 68 65 20 50 43 41 20 74 68 6f |nder the PCA tho| 000044f0 75 67 68 20 6e 6f 20 63 6f 64 65 20 68 61 73 20 |ugh no code has | 00004500 62 65 65 6e 0a 77 72 69 74 74 65 6e 20 74 6f 20 |been.written to | 00004510 64 6f 20 74 68 69 73 20 79 65 74 2e 0a 0a 0a 52 |do this yet....R| 00004520 65 73 69 7a 65 20 53 75 6d 6d 61 72 79 0a 3d 3d |esize Summary.==| 00004530 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 |============..Th| 00004540 69 73 20 69 73 20 77 68 61 74 20 79 6f 75 20 64 |is is what you d| 00004550 6f 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 |o to change the | 00004560 73 69 7a 65 20 6f 66 20 61 6e 20 6f 62 6a 65 63 |size of an objec| 00004570 74 20 79 6f 75 20 61 72 65 20 65 64 69 74 69 6e |t you are editin| 00004580 67 3a 20 0a 0a 46 72 6f 6d 20 61 20 52 65 6d 6f |g: ..From a Remo| 00004590 74 65 20 74 61 73 6b 27 73 20 70 6f 69 6e 74 20 |te task's point | 000045a0 6f 66 20 76 69 65 77 3a 20 0a 2d 2d 2d 2d 2d 2d |of view: .------| 000045b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000045c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 53 |-------------..S| 000045d0 65 6e 64 20 4d 65 73 73 61 67 65 5f 52 65 73 69 |end Message_Resi| 000045e0 7a 65 52 65 71 75 65 73 74 20 61 6e 64 20 6b 65 |zeRequest and ke| 000045f0 65 70 20 6d 79 72 65 66 20 67 65 6e 65 72 61 74 |ep myref generat| 00004600 65 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 73 73 |ed from the mess| 00004610 61 67 65 2e 20 4f 6e 0a 72 65 63 65 69 70 74 20 |age. On.receipt | 00004620 6f 66 20 52 65 73 69 7a 65 41 63 6b 20 63 68 65 |of ResizeAck che| 00004630 63 6b 20 6d 79 72 65 66 2c 20 6d 6f 64 69 66 79 |ck myref, modify| 00004640 20 6f 62 6a 65 63 74 20 64 61 74 61 20 61 6e 64 | object data and| 00004650 20 62 72 6f 61 64 63 61 73 74 0a 4d 65 73 73 61 | broadcast.Messa| 00004660 67 65 5f 43 68 61 6e 67 65 64 20 2e 20 20 0a 0a |ge_Changed . ..| 00004670 46 72 6f 6d 20 74 68 65 20 4c 6f 63 61 6c 20 74 |From the Local t| 00004680 61 73 6b 27 73 20 70 6f 69 6e 74 20 6f 66 20 76 |ask's point of v| 00004690 69 65 77 3a 20 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |iew: .----------| 000046a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000046b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 4f 6e 20 72 |----------..On r| 000046c0 65 63 65 69 70 74 20 6f 66 20 4d 65 73 73 61 67 |eceipt of Messag| 000046d0 65 5f 52 65 73 69 7a 65 52 65 71 75 65 73 74 20 |e_ResizeRequest | 000046e0 72 65 73 69 7a 65 20 6f 62 6a 65 63 74 20 69 66 |resize object if| 000046f0 20 70 6f 73 73 69 62 6c 65 2c 20 75 70 64 61 74 | possible, updat| 00004700 65 20 74 68 65 0a 6f 62 6a 65 63 74 73 20 74 61 |e the.objects ta| 00004710 67 20 61 6e 63 68 6f 72 73 20 61 6e 64 20 73 65 |g anchors and se| 00004720 6e 64 20 52 65 73 69 7a 65 41 63 6b 20 6f 74 68 |nd ResizeAck oth| 00004730 65 72 77 69 73 65 20 63 6c 61 69 6d 20 74 68 65 |erwise claim the| 00004740 20 6d 65 73 73 61 67 65 20 61 6e 64 0a 72 65 70 | message and.rep| 00004750 6f 72 74 20 61 6e 20 65 72 72 6f 72 20 74 6f 20 |ort an error to | 00004760 75 73 65 72 2e 20 0a 0a 42 6f 74 68 20 52 65 6d |user. ..Both Rem| 00004770 6f 74 65 20 61 6e 64 20 4c 6f 63 61 6c 20 74 61 |ote and Local ta| 00004780 73 6b 73 3a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |sks:.-----------| 00004790 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000047a0 2d 20 0a 0a 4f 6e 20 72 65 63 65 69 70 74 20 6f |- ..On receipt o| 000047b0 66 20 4d 65 73 73 61 67 65 5f 43 68 61 6e 67 65 |f Message_Change| 000047c0 64 20 72 65 2d 72 65 61 64 20 74 68 65 20 6f 62 |d re-read the ob| 000047d0 6a 65 63 74 20 68 65 61 64 65 72 20 61 73 20 69 |ject header as i| 000047e0 66 20 69 74 20 77 61 73 20 6e 65 77 6c 79 0a 63 |f it was newly.c| 000047f0 72 65 61 74 65 64 20 61 6e 64 20 72 65 64 72 61 |reated and redra| 00004800 77 20 74 68 65 20 65 6e 74 69 72 65 20 6f 62 6a |w the entire obj| 00004810 65 63 74 2e 20 28 59 6f 75 20 6d 61 79 20 6e 65 |ect. (You may ne| 00004820 65 64 20 74 6f 20 72 65 67 65 6e 65 72 61 74 65 |ed to regenerate| 00004830 20 61 6e 20 61 72 65 61 20 6f 66 0a 79 6f 75 72 | an area of.your| 00004840 20 77 69 6e 64 6f 77 20 74 68 65 20 73 69 7a 65 | window the size| 00004850 20 6f 66 20 74 68 65 20 6f 6c 64 20 6f 62 6a 65 | of the old obje| 00004860 63 74 20 2d 20 72 65 6d 65 6d 62 65 72 20 74 68 |ct - remember th| 00004870 65 20 6e 65 77 20 6f 62 6a 65 63 74 20 6d 61 79 |e new object may| 00004880 20 6f 63 63 75 70 79 0a 6c 65 73 73 20 73 63 72 | occupy.less scr| 00004890 65 65 6e 20 61 72 65 61 29 2e 20 0a 0a 52 65 73 |een area). ..Res| 000048a0 69 7a 65 20 73 70 65 65 64 20 69 73 73 75 65 73 |ize speed issues| 000048b0 20 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .--------------| 000048c0 2d 2d 2d 2d 2d 0a 0a 57 68 65 6e 20 74 68 65 20 |-----..When the | 000048d0 6f 62 6a 65 63 74 20 62 65 69 6e 67 20 72 65 73 |object being res| 000048e0 69 7a 65 64 20 69 73 20 76 65 72 79 20 6c 61 72 |ized is very lar| 000048f0 67 65 2c 20 56 4d 20 28 56 69 72 74 75 61 6c 20 |ge, VM (Virtual | 00004900 4d 65 6d 6f 72 79 29 69 73 20 62 65 69 6e 67 0a |Memory)is being.| 00004910 75 73 65 64 2c 20 6f 72 20 74 68 65 20 72 65 73 |used, or the res| 00004920 69 7a 65 20 72 65 71 75 65 73 74 73 20 61 72 65 |ize requests are| 00004930 20 66 72 65 71 75 65 6e 74 2c 20 74 68 65 72 65 | frequent, there| 00004940 20 6d 61 79 20 62 65 20 61 20 70 65 72 66 6f 72 | may be a perfor| 00004950 6d 61 6e 63 65 20 69 73 73 75 65 2e 0a 49 6e 20 |mance issue..In | 00004960 73 75 63 68 20 73 69 74 75 61 74 69 6f 6e 73 20 |such situations | 00004970 74 68 65 20 4c 6f 63 61 6c 20 74 61 73 6b 20 73 |the Local task s| 00004980 68 6f 75 6c 64 20 63 6f 6e 73 69 64 65 72 20 6d |hould consider m| 00004990 6f 76 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 |oving the object| 000049a0 20 74 6f 20 74 68 65 0a 74 6f 70 20 6f 66 20 69 | to the.top of i| 000049b0 74 73 20 64 61 74 61 20 73 74 6f 72 61 67 65 20 |ts data storage | 000049c0 61 72 65 61 20 74 6f 20 70 72 65 76 65 6e 74 20 |area to prevent | 000049d0 72 65 70 65 61 74 65 64 20 6d 65 6d 6f 72 79 20 |repeated memory | 000049e0 6d 6f 76 69 6e 67 20 6f 70 65 72 61 74 69 6f 6e |moving operation| 000049f0 73 2e 0a 49 6e 20 61 70 70 6c 69 63 61 74 69 6f |s..In applicatio| 00004a00 6e 73 20 77 68 65 72 65 20 6d 61 6e 79 20 73 6d |ns where many sm| 00004a10 61 6c 6c 20 72 65 73 69 7a 65 20 72 65 71 75 65 |all resize reque| 00004a20 73 74 73 20 61 72 65 20 6c 69 6b 65 6c 79 20 74 |sts are likely t| 00004a30 68 65 6e 20 63 6f 6e 73 69 64 65 72 0a 65 6d 70 |hen consider.emp| 00004a40 6c 6f 79 69 6e 67 20 61 20 74 61 67 20 65 78 74 |loying a tag ext| 00004a50 65 6e 73 69 6f 6e 20 73 79 73 74 65 6d 20 73 69 |ension system si| 00004a60 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 6f 6e 65 |milar to the one| 00004a70 20 64 65 66 69 6e 65 64 20 61 62 6f 76 65 20 66 | defined above f| 00004a80 6f 72 20 74 65 78 74 0a 66 69 6c 65 73 20 74 6f |or text.files to| 00004a90 20 72 65 64 75 63 65 20 74 68 65 20 66 72 65 71 | reduce the freq| 00004aa0 75 65 6e 63 79 20 6f 66 20 74 68 65 20 72 65 73 |uency of the res| 00004ab0 69 7a 65 20 72 65 71 75 65 73 74 73 2e 20 0a 0a |ize requests. ..| 00004ac0 4d 65 73 73 61 67 65 5f 55 70 64 61 74 65 41 72 |Message_UpdateAr| 00004ad0 65 61 28 26 38 33 34 38 43 29 20 28 4d 73 67 5f |ea(&8348C) (Msg_| 00004ae0 55 70 61 72 65 61 25 29 20 0a 2d 2d 2d 2d 2d 2d |Uparea%) .------| 00004af0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00004b10 2d 2d 0a 0a 42 72 6f 61 64 63 61 73 74 20 62 79 |--..Broadcast by| 00004b20 20 74 61 73 6b 20 77 68 65 6e 20 69 74 20 68 61 | task when it ha| 00004b30 73 20 6d 6f 64 69 66 69 65 64 20 70 61 72 74 20 |s modified part | 00004b40 6f 66 20 61 6e 20 6f 62 6a 65 63 74 2e 20 41 70 |of an object. Ap| 00004b50 70 73 20 69 6e 74 65 72 65 73 74 65 64 20 69 6e |ps interested in| 00004b60 0a 74 68 65 20 6f 62 6a 65 63 74 20 73 68 6f 75 |.the object shou| 00004b70 6c 64 20 72 65 64 72 61 77 20 74 68 65 20 61 70 |ld redraw the ap| 00004b80 70 72 6f 70 72 69 61 74 65 20 61 72 65 61 20 6f |propriate area o| 00004b90 66 20 74 68 65 20 6f 62 6a 65 63 74 20 61 73 20 |f the object as | 00004ba0 71 75 69 63 6b 6c 79 20 61 73 0a 70 6f 73 73 69 |quickly as.possi| 00004bb0 62 6c 65 20 69 66 20 74 68 65 79 20 68 61 76 65 |ble if they have| 00004bc0 20 61 20 77 69 6e 64 6f 77 20 6f 6e 74 6f 20 74 | a window onto t| 00004bd0 68 65 20 6f 62 6a 65 63 74 20 6f 70 65 6e 2e 0a |he object open..| 00004be0 0a 54 68 65 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 |.The block point| 00004bf0 65 64 20 74 6f 20 62 79 20 52 31 20 63 6f 6e 74 |ed to by R1 cont| 00004c00 61 69 6e 73 3a 20 0a 20 0a 52 31 2b 32 30 20 20 |ains: . .R1+20 | 00004c10 20 46 6f 72 6d 61 74 20 6f 66 20 73 75 62 73 65 | Format of subse| 00004c20 71 75 65 6e 74 20 64 61 74 61 20 28 30 29 0a 52 |quent data (0).R| 00004c30 31 2b 32 34 20 20 20 41 64 64 72 65 73 73 20 6f |1+24 Address o| 00004c40 66 20 6f 62 6a 65 63 74 20 74 61 67 0a 52 31 2b |f object tag.R1+| 00004c50 32 38 20 20 20 58 6c 6f 77 20 20 28 4f 53 20 75 |28 Xlow (OS u| 00004c60 6e 69 74 73 20 61 74 20 31 3a 31 20 73 63 61 6c |nits at 1:1 scal| 00004c70 65 29 0a 52 31 2b 33 32 20 20 20 59 6c 6f 77 20 |e).R1+32 Ylow | 00004c80 20 28 4f 53 20 75 6e 69 74 73 20 61 74 20 31 3a | (OS units at 1:| 00004c90 31 20 73 63 61 6c 65 29 0a 52 31 2b 33 36 20 20 |1 scale).R1+36 | 00004ca0 20 58 68 69 20 20 20 28 4f 53 20 75 6e 69 74 73 | Xhi (OS units| 00004cb0 20 61 74 20 31 3a 31 20 73 63 61 6c 65 29 0a 52 | at 1:1 scale).R| 00004cc0 31 2b 34 30 20 20 20 59 68 69 20 20 20 28 4f 53 |1+40 Yhi (OS| 00004cd0 20 75 6e 69 74 73 20 61 74 20 31 3a 31 20 73 63 | units at 1:1 sc| 00004ce0 61 6c 65 29 20 0a 0a 77 68 65 72 65 20 63 6f 6f |ale) ..where coo| 00004cf0 72 64 69 6e 61 74 65 73 20 61 72 65 20 72 65 6c |rdinates are rel| 00004d00 61 74 69 76 65 20 74 6f 20 74 68 65 20 62 6f 74 |ative to the bot| 00004d10 74 6f 6d 20 6c 65 66 74 20 6f 66 20 74 68 65 20 |tom left of the | 00004d20 6f 62 6a 65 63 74 2e 0a 0a 43 75 72 72 65 6e 74 |object...Current| 00004d30 6c 79 20 74 68 69 73 20 69 73 20 74 68 65 20 6f |ly this is the o| 00004d40 6e 6c 79 20 66 6f 72 6d 61 74 20 73 75 70 70 6f |nly format suppo| 00004d50 72 74 65 64 20 62 79 20 63 6f 64 65 20 28 77 6f |rted by code (wo| 00004d60 72 6b 69 6e 67 20 77 69 74 68 20 62 69 74 6d 61 |rking with bitma| 00004d70 70 0a 73 70 72 69 74 65 73 29 2e 0a 0a 4f 74 68 |p.sprites)...Oth| 00004d80 65 72 20 70 72 6f 70 6f 73 65 64 20 66 6f 72 6d |er proposed form| 00004d90 61 74 73 20 61 72 65 20 61 73 20 66 6f 6c 6c 6f |ats are as follo| 00004da0 77 73 3a 20 0a 20 0a 52 31 2b 32 30 20 20 20 46 |ws: . .R1+20 F| 00004db0 6f 72 6d 61 74 20 6f 66 20 73 75 62 73 65 71 75 |ormat of subsequ| 00004dc0 65 6e 74 20 64 61 74 61 20 28 31 29 0a 52 31 2b |ent data (1).R1+| 00004dd0 32 34 20 20 20 41 64 64 72 65 73 73 20 6f 66 20 |24 Address of | 00004de0 6f 62 6a 65 63 74 20 74 61 67 0a 52 31 2b 32 38 |object tag.R1+28| 00004df0 20 20 20 58 6c 6f 77 20 28 44 72 61 77 20 75 6e | Xlow (Draw un| 00004e00 69 74 73 20 3d 20 4f 53 20 75 6e 69 74 73 20 3c |its = OS units <| 00004e10 3c 38 29 0a 52 31 2b 33 32 20 20 20 59 6c 6f 77 |<8).R1+32 Ylow| 00004e20 20 28 44 72 61 77 20 75 6e 69 74 73 20 3d 20 4f | (Draw units = O| 00004e30 53 20 75 6e 69 74 73 20 3c 3c 38 29 0a 52 31 2b |S units <<8).R1+| 00004e40 33 36 20 20 20 58 68 69 20 20 28 44 72 61 77 20 |36 Xhi (Draw | 00004e50 75 6e 69 74 73 20 3d 20 4f 53 20 75 6e 69 74 73 |units = OS units| 00004e60 20 3c 3c 38 29 0a 52 31 2b 34 30 20 20 20 59 68 | <<8).R1+40 Yh| 00004e70 69 20 20 28 44 72 61 77 20 75 6e 69 74 73 20 3d |i (Draw units =| 00004e80 20 4f 53 20 75 6e 69 74 73 20 3c 3c 38 29 20 0a | OS units <<8) .| 00004e90 0a 77 68 65 72 65 20 63 6f 6f 72 64 69 6e 61 74 |.where coordinat| 00004ea0 65 73 20 61 72 65 20 72 65 6c 61 74 69 76 65 20 |es are relative | 00004eb0 74 6f 20 74 68 65 20 62 6f 74 74 6f 6d 20 6c 65 |to the bottom le| 00004ec0 66 74 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 |ft of the object| 00004ed0 2e 20 0a 20 0a 52 31 2b 32 30 20 20 20 46 6f 72 |. . .R1+20 For| 00004ee0 6d 61 74 20 6f 66 20 73 75 62 73 65 71 75 65 6e |mat of subsequen| 00004ef0 74 20 64 61 74 61 20 28 32 29 0a 52 31 2b 32 34 |t data (2).R1+24| 00004f00 20 20 20 41 64 64 72 65 73 73 20 6f 66 20 6f 62 | Address of ob| 00004f10 6a 65 63 74 20 74 61 67 0a 52 31 2b 32 38 20 20 |ject tag.R1+28 | 00004f20 20 58 6c 6f 77 20 28 44 72 61 77 20 75 6e 69 74 | Xlow (Draw unit| 00004f30 73 20 3d 20 4f 53 20 75 6e 69 74 73 20 3c 3c 38 |s = OS units <<8| 00004f40 29 0a 52 31 2b 33 32 20 20 20 59 6c 6f 77 20 28 |).R1+32 Ylow (| 00004f50 44 72 61 77 20 75 6e 69 74 73 20 3d 20 4f 53 20 |Draw units = OS | 00004f60 75 6e 69 74 73 20 3c 3c 38 29 0a 52 31 2b 33 36 |units <<8).R1+36| 00004f70 20 20 20 58 68 69 20 20 28 44 72 61 77 20 75 6e | Xhi (Draw un| 00004f80 69 74 73 20 3d 20 4f 53 20 75 6e 69 74 73 20 3c |its = OS units <| 00004f90 3c 38 29 0a 52 31 2b 34 30 20 20 20 59 68 69 20 |<8).R1+40 Yhi | 00004fa0 20 28 44 72 61 77 20 75 6e 69 74 73 20 3d 20 4f | (Draw units = O| 00004fb0 53 20 75 6e 69 74 73 20 3c 3c 38 29 20 0a 0a 77 |S units <<8) ..w| 00004fc0 68 65 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 |here coordinates| 00004fd0 20 61 72 65 20 72 65 6c 61 74 69 76 65 20 74 6f | are relative to| 00004fe0 20 74 68 65 20 74 6f 70 20 6c 65 66 74 20 6f 66 | the top left of| 00004ff0 20 74 68 65 20 6f 62 6a 65 63 74 2e 0a 0a 49 66 | the object...If| 00005000 20 79 6f 75 20 68 61 76 65 20 61 6e 79 6f 74 68 | you have anyoth| 00005010 65 72 20 73 75 67 67 65 73 74 69 6f 6e 73 20 70 |er suggestions p| 00005020 6c 65 61 73 65 20 63 6f 6e 74 61 63 74 20 43 6c |lease contact Cl| 00005030 61 72 65 73 20 6f 72 20 74 68 65 20 61 75 74 68 |ares or the auth| 00005040 6f 72 2e 20 0a 0a 4d 65 73 73 61 67 65 5f 52 65 |or. ..Message_Re| 00005050 73 69 7a 65 41 63 6b 28 26 38 33 34 38 44 29 20 |sizeAck(&8348D) | 00005060 28 4d 73 67 5f 52 65 73 69 7a 65 41 63 6b 25 29 |(Msg_ResizeAck%)| 00005070 20 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .--------------| 00005080 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00005090 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 53 65 |------------..Se| 000050a0 6e 74 20 62 79 20 4c 6f 63 61 6c 20 74 61 73 6b |nt by Local task| 000050b0 20 77 68 65 6e 20 61 20 72 65 73 69 7a 65 20 72 | when a resize r| 000050c0 65 71 75 65 73 74 20 68 61 73 20 73 75 63 63 65 |equest has succe| 000050d0 65 64 65 64 2e 20 4f 6e 20 72 65 63 65 69 70 74 |eded. On receipt| 000050e0 20 62 79 20 61 0a 52 65 6d 6f 74 65 20 74 61 73 | by a.Remote tas| 000050f0 6b 2c 20 63 68 65 63 6b 20 74 68 61 74 20 52 31 |k, check that R1| 00005100 2b 31 32 20 69 73 20 74 68 65 20 6d 79 72 65 66 |+12 is the myref| 00005110 20 67 65 6e 65 72 61 74 65 64 20 66 72 6f 6d 0a | generated from.| 00005120 4d 65 73 73 61 67 65 5f 52 65 73 69 7a 65 52 65 |Message_ResizeRe| 00005130 71 75 65 73 74 20 62 65 66 6f 72 65 20 6d 6f 64 |quest before mod| 00005140 69 66 79 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 |ifying the objec| 00005150 74 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 |t data structure| 00005160 20 61 6e 64 0a 62 72 6f 61 64 63 61 73 74 69 6e | and.broadcastin| 00005170 67 20 4d 65 73 73 61 67 65 5f 43 68 61 6e 67 65 |g Message_Change| 00005180 64 20 2e 20 0a 0a 54 68 65 20 62 6c 6f 63 6b 20 |d . ..The block | 00005190 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 52 31 |pointed to by R1| 000051a0 20 63 6f 6e 74 61 69 6e 73 3a 20 0a 20 0a 52 31 | contains: . .R1| 000051b0 2b 32 30 20 20 20 72 65 73 65 72 76 65 64 20 2d |+20 reserved -| 000051c0 20 30 0a 52 31 2b 32 34 20 20 20 41 64 64 72 65 | 0.R1+24 Addre| 000051d0 73 73 20 6f 66 20 6f 62 6a 65 63 74 20 74 61 67 |ss of object tag| 000051e0 0a 52 31 2b 32 38 20 20 20 72 65 73 65 72 76 65 |.R1+28 reserve| 000051f0 64 20 2d 20 30 0a 52 31 2b 33 32 20 20 20 4e 65 |d - 0.R1+32 Ne| 00005200 77 20 73 69 7a 65 20 61 6c 6c 6f 63 61 74 65 64 |w size allocated| 00005210 20 74 6f 20 6f 62 6a 65 63 74 0a 52 31 2b 33 36 | to object.R1+36| 00005220 20 20 20 46 6c 61 67 73 0a 20 20 0a 4d 65 73 73 | Flags. .Mess| 00005230 61 67 65 5f 4d 69 73 63 4f 70 28 26 38 33 34 38 |age_MiscOp(&8348| 00005240 45 29 20 28 4d 73 67 5f 4d 69 73 63 25 29 20 0a |E) (Msg_Misc%) .| 00005250 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00005270 2d 2d 0a 0a 54 68 69 73 20 6d 65 73 73 61 67 65 |--..This message| 00005280 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 | is designed to | 00005290 70 72 6f 76 69 64 65 20 61 20 70 72 69 76 61 74 |provide a privat| 000052a0 65 20 69 6e 74 65 72 66 61 63 65 20 6f 70 74 69 |e interface opti| 000052b0 6f 6e 20 66 6f 72 20 50 43 41 0a 70 72 6f 67 72 |on for PCA.progr| 000052c0 61 6d 73 20 77 69 74 68 6f 75 74 20 74 68 65 6d |ams without them| 000052d0 20 68 61 76 69 6e 67 20 74 6f 20 72 65 71 75 65 | having to reque| 000052e0 73 74 20 6f 74 68 65 72 20 6d 65 73 73 61 67 65 |st other message| 000052f0 20 61 6c 6c 6f 63 61 74 69 6f 6e 73 20 66 72 6f | allocations fro| 00005300 6d 0a 41 63 6f 72 6e 2e 0a 0a 54 68 65 20 62 6c |m.Acorn...The bl| 00005310 6f 63 6b 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |ock pointed to b| 00005320 79 20 52 31 20 63 6f 6e 74 61 69 6e 73 3a 20 0a |y R1 contains: .| 00005330 20 0a 52 31 2b 32 30 20 20 20 53 75 62 2d 72 65 | .R1+20 Sub-re| 00005340 61 73 6f 6e 20 63 6f 64 65 20 0a 2d 20 6f 74 68 |ason code .- oth| 00005350 65 72 20 64 61 74 61 20 64 65 70 65 6e 64 61 6e |er data dependan| 00005360 74 20 6f 6e 20 73 75 62 2d 72 65 61 73 6f 6e 20 |t on sub-reason | 00005370 63 6f 64 65 2e 0a 0a 54 68 65 20 73 75 62 2d 72 |code...The sub-r| 00005380 65 61 73 6f 6e 20 63 6f 64 65 73 20 61 76 61 69 |eason codes avai| 00005390 6c 61 62 6c 65 20 74 6f 20 61 70 70 6c 69 63 61 |lable to applica| 000053a0 74 69 6f 6e 20 64 65 76 65 6c 6f 70 65 72 73 20 |tion developers | 000053b0 61 72 65 20 61 6c 6c 6f 63 61 74 65 64 20 69 6e |are allocated in| 000053c0 0a 6c 69 6e 65 20 77 69 74 68 20 53 57 49 20 61 |.line with SWI a| 000053d0 6e 64 20 4d 65 73 73 61 67 65 20 62 6c 6f 63 6b |nd Message block| 000053e0 73 20 2d 20 69 66 20 79 6f 75 20 68 61 76 65 20 |s - if you have | 000053f0 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 74 68 65 |one of these the| 00005400 6e 20 74 68 6f 73 65 0a 76 61 6c 75 65 73 20 6d |n those.values m| 00005410 61 79 20 62 65 20 75 73 65 64 20 62 79 20 79 6f |ay be used by yo| 00005420 75 72 20 70 72 6f 67 72 61 6d 73 2e 20 57 68 65 |ur programs. Whe| 00005430 72 65 20 61 70 70 72 6f 70 72 69 61 74 65 2c 20 |re appropriate, | 00005440 70 6c 65 61 73 65 20 6d 61 6b 65 20 64 65 74 61 |please make deta| 00005450 69 6c 73 0a 6f 66 20 79 6f 75 72 20 6d 65 73 73 |ils.of your mess| 00005460 61 67 65 73 20 61 76 61 69 6c 61 62 6c 65 20 74 |ages available t| 00005470 6f 20 74 68 65 20 50 43 41 20 63 6f 6d 6d 75 6e |o the PCA commun| 00005480 69 74 79 20 62 79 20 73 65 6e 64 69 6e 67 20 74 |ity by sending t| 00005490 68 65 6d 20 74 6f 20 43 6c 61 72 65 73 0a 66 6f |hem to Clares.fo| 000054a0 72 20 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 0a |r distribution..| 000054b0 0a 43 75 72 72 65 6e 74 6c 79 2c 20 6f 6e 6c 79 |.Currently, only| 000054c0 20 74 77 6f 20 73 75 62 2d 72 65 61 73 6f 6e 73 | two sub-reasons| 000054d0 20 61 72 65 20 64 65 66 69 6e 65 64 20 66 6f 72 | are defined for| 000054e0 20 75 73 65 20 77 69 74 68 20 43 6f 6d 70 6f 73 | use with Compos| 000054f0 69 74 69 6f 6e 2e 20 54 68 65 0a 63 75 72 72 65 |ition. The.curre| 00005500 6e 74 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 65 |nt format of the| 00005510 73 65 20 69 73 20 67 69 76 65 6e 20 62 65 6c 6f |se is given belo| 00005520 77 20 62 75 74 20 69 73 20 73 75 62 6a 65 63 74 |w but is subject| 00005530 20 74 6f 20 63 68 61 6e 67 65 2e 20 50 6c 65 61 | to change. Plea| 00005540 73 65 0a 63 6f 6e 74 61 63 74 20 43 6c 61 72 65 |se.contact Clare| 00005550 73 20 62 65 66 6f 72 65 20 72 65 6c 65 61 73 69 |s before releasi| 00005560 6e 67 20 70 72 6f 67 72 61 6d 73 20 77 68 69 63 |ng programs whic| 00005570 68 20 72 65 6c 79 20 6f 6e 20 69 74 3a 20 0a 0a |h rely on it: ..| 00005580 53 75 62 52 65 61 73 6f 6e 5f 47 69 76 65 41 73 |SubReason_GiveAs| 00005590 73 6f 63 69 61 74 65 64 44 61 74 61 20 28 26 38 |sociatedData (&8| 000055a0 33 34 38 30 29 20 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d |3480) .---------| 000055b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000055c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 42 72 |------------..Br| 000055d0 6f 61 64 63 61 73 74 20 62 79 20 72 65 6d 6f 74 |oadcast by remot| 000055e0 65 20 70 6c 75 67 2d 69 6e 20 77 68 65 6e 20 69 |e plug-in when i| 000055f0 74 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 6f 20 |t would like to | 00005600 6b 6e 6f 77 20 6d 6f 72 65 20 61 62 6f 75 74 20 |know more about | 00005610 74 68 65 0a 6f 62 6a 65 63 74 2e 0a 0a 54 68 65 |the.object...The| 00005620 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 20 74 | block pointed t| 00005630 6f 20 62 79 20 52 31 20 63 6f 6e 74 61 69 6e 73 |o by R1 contains| 00005640 3a 20 0a 20 0a 20 20 20 20 20 20 20 20 52 31 2b |: . . R1+| 00005650 32 34 20 20 20 41 64 64 72 65 73 73 20 6f 66 20 |24 Address of | 00005660 6f 62 6a 65 63 74 20 74 61 67 20 0a 0a 53 75 62 |object tag ..Sub| 00005670 52 65 61 73 6f 6e 5f 41 73 73 6f 63 69 61 74 65 |Reason_Associate| 00005680 64 44 61 74 61 43 6f 6d 70 6f 20 28 26 38 33 34 |dDataCompo (&834| 00005690 38 31 29 20 0a 0a 53 65 6e 74 20 62 79 20 43 6f |81) ..Sent by Co| 000056a0 6d 70 6f 20 74 6f 20 52 65 6d 6f 74 65 20 77 68 |mpo to Remote wh| 000056b0 69 63 68 20 62 72 6f 61 64 63 61 73 74 20 47 69 |ich broadcast Gi| 000056c0 76 65 41 73 73 6f 63 69 61 74 65 64 44 61 74 61 |veAssociatedData| 000056d0 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 74 61 | containing a ta| 000056e0 67 0a 70 6f 69 6e 74 69 6e 67 20 74 6f 20 61 20 |g.pointing to a | 000056f0 43 6f 6d 70 6f 20 6f 62 6a 65 63 74 2e 0a 0a 54 |Compo object...T| 00005700 68 65 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 |he block pointed| 00005710 20 74 6f 20 62 79 20 52 31 20 63 6f 6e 74 61 69 | to by R1 contai| 00005720 6e 73 3a 20 0a 20 0a 20 20 20 20 20 20 20 20 52 |ns: . . R| 00005730 31 2b 32 34 20 20 20 41 64 64 72 65 73 73 20 6f |1+24 Address o| 00005740 66 20 6f 62 6a 65 63 74 20 74 61 67 0a 20 20 20 |f object tag. | 00005750 20 20 20 20 20 52 31 2b 32 38 20 20 20 72 65 73 | R1+28 res| 00005760 65 72 76 65 64 20 2d 20 30 0a 20 20 20 20 20 20 |erved - 0. | 00005770 20 20 52 31 2b 33 32 20 20 20 74 77 6f 20 65 69 | R1+32 two ei| 00005780 67 68 74 20 62 69 74 20 61 6e 64 20 6f 6e 65 20 |ght bit and one | 00005790 73 69 78 74 65 65 6e 20 62 69 74 20 66 69 65 6c |sixteen bit fiel| 000057a0 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |ds. | 000057b0 20 20 20 62 69 74 73 20 30 2d 37 20 20 20 20 20 | bits 0-7 | 000057c0 4d 61 73 6b 73 20 69 6e 20 75 73 65 20 62 79 20 |Masks in use by | 000057d0 6f 62 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 |object. | 000057e0 20 20 20 20 20 20 20 62 69 74 73 20 38 2d 31 35 | bits 8-15| 000057f0 20 20 20 20 46 6f 72 6d 61 74 20 6f 66 20 73 75 | Format of su| 00005800 62 73 65 71 75 65 6e 74 20 64 61 74 61 20 28 7a |bsequent data (z| 00005810 65 72 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 |ero). | 00005820 20 20 20 20 20 62 69 74 73 20 31 36 2d 33 31 20 | bits 16-31 | 00005830 20 20 52 65 73 65 72 76 65 64 0a 20 20 20 20 20 | Reserved. | 00005840 20 20 20 52 31 2b 33 36 20 20 20 52 65 73 65 72 | R1+36 Reser| 00005850 76 65 64 20 28 30 29 0a 20 20 20 20 20 20 20 20 |ved (0). | 00005860 52 31 2b 34 30 20 20 20 42 6c 65 6e 64 20 6d 61 |R1+40 Blend ma| 00005870 73 6b 20 61 64 64 72 65 73 73 20 6f 72 20 7a 65 |sk address or ze| 00005880 72 6f 20 20 20 20 3d 20 6e 6f 20 42 6c 65 6e 64 |ro = no Blend| 00005890 20 6d 61 73 6b 0a 20 20 20 20 20 20 20 20 52 31 | mask. R1| 000058a0 2b 34 34 20 20 20 54 69 6e 74 20 6d 61 73 6b 20 |+44 Tint mask | 000058b0 61 64 64 72 65 73 73 20 6f 72 20 7a 65 72 6f 20 |address or zero | 000058c0 20 20 20 20 3d 20 6e 6f 20 54 69 6e 74 20 6d 61 | = no Tint ma| 000058d0 73 6b 0a 20 20 20 20 20 20 20 20 52 31 2b 34 38 |sk. R1+48| 000058e0 20 20 20 43 75 72 76 65 20 6d 61 73 6b 20 61 64 | Curve mask ad| 000058f0 64 72 65 73 73 20 6f 72 20 7a 65 72 6f 20 20 20 |dress or zero | 00005900 20 3d 20 6e 6f 20 43 75 72 76 65 20 6d 61 73 6b | = no Curve mask| 00005910 0a 20 20 20 20 20 20 20 20 52 31 2b 35 32 20 20 |. R1+52 | 00005920 20 44 69 73 70 6c 61 63 65 20 6d 61 73 6b 20 61 | Displace mask a| 00005930 64 64 72 65 73 73 20 6f 72 20 7a 65 72 6f 20 3d |ddress or zero =| 00005940 20 6e 6f 20 44 69 73 70 6c 61 63 65 20 6d 61 73 | no Displace mas| 00005950 6b 0a 20 20 20 20 20 20 20 20 52 31 2b 35 36 20 |k. R1+56 | 00005960 20 20 53 68 61 64 6f 77 20 6d 61 73 6b 20 61 64 | Shadow mask ad| 00005970 64 72 65 73 73 20 6f 72 20 7a 65 72 6f 20 20 20 |dress or zero | 00005980 3d 20 6e 6f 20 53 68 61 64 6f 77 20 6d 61 73 6b |= no Shadow mask| 00005990 0a 20 20 20 20 20 20 20 20 52 31 2b 36 30 20 20 |. R1+60 | 000059a0 20 52 65 73 65 72 76 65 64 0a 20 20 20 20 20 20 | Reserved. | 000059b0 20 20 52 31 2b 36 34 20 20 20 52 65 73 65 72 76 | R1+64 Reserv| 000059c0 65 64 0a 20 20 20 20 20 20 20 20 52 31 2b 36 38 |ed. R1+68| 000059d0 20 20 20 4f 70 61 63 69 74 79 20 6f 66 20 6f 62 | Opacity of ob| 000059e0 6a 65 63 74 20 28 36 35 35 33 36 3d 73 6f 6c 69 |ject (65536=soli| 000059f0 64 20 30 3d 74 72 61 6e 73 70 61 72 65 6e 74 29 |d 0=transparent)| 00005a00 0a 20 20 20 20 20 20 20 20 52 31 2b 37 32 20 20 |. R1+72 | 00005a10 20 4d 61 74 68 20 74 79 70 65 20 69 6e 20 75 73 | Math type in us| 00005a20 65 20 66 6f 72 20 6f 62 6a 65 63 74 0a 20 20 0a |e for object. .| 00005a30 4e 6f 74 65 73 3a 20 54 68 65 20 27 6d 61 73 6b |Notes: The 'mask| 00005a40 20 61 64 64 72 65 73 73 27 20 70 61 73 73 65 64 | address' passed| 00005a50 20 69 73 20 74 68 65 20 61 64 64 72 65 73 73 20 | is the address | 00005a60 6f 66 20 74 68 65 20 62 61 73 65 20 6f 66 20 61 |of the base of a| 00005a70 20 73 70 72 69 74 65 20 61 72 65 61 0a 63 6f 6e | sprite area.con| 00005a80 74 61 69 6e 69 6e 67 20 6f 6e 65 20 65 69 67 68 |taining one eigh| 00005a90 74 20 62 69 74 20 67 72 65 79 73 63 61 6c 65 20 |t bit greyscale | 00005aa0 73 70 72 69 74 65 20 28 61 74 20 61 64 64 72 65 |sprite (at addre| 00005ab0 73 73 2b 61 64 64 72 65 73 73 21 38 29 2e 20 54 |ss+address!8). T| 00005ac0 68 65 20 73 69 7a 65 0a 6f 66 20 61 20 6d 61 73 |he size.of a mas| 00005ad0 6b 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 |k should not be | 00005ae0 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20 74 68 |assumed to be th| 00005af0 65 20 73 61 6d 65 20 61 73 20 74 68 61 74 20 6f |e same as that o| 00005b00 66 20 74 68 65 20 6f 62 6a 65 63 74 20 2d 20 72 |f the object - r| 00005b10 65 61 64 0a 69 74 20 66 72 6f 6d 20 74 68 65 20 |ead.it from the | 00005b20 6d 61 73 6b 20 73 70 72 69 74 65 20 64 61 74 61 |mask sprite data| 00005b30 20 6f 72 20 75 73 65 20 4f 53 5f 53 70 72 69 74 | or use OS_Sprit| 00005b40 65 4f 70 20 74 6f 20 65 78 74 72 61 63 74 20 69 |eOp to extract i| 00005b50 74 2e 0a 0a 54 68 65 20 64 61 74 61 20 72 65 74 |t...The data ret| 00005b60 75 72 6e 65 64 20 62 79 20 74 68 69 73 20 6d 65 |urned by this me| 00005b70 73 73 61 67 65 20 69 73 20 66 72 61 67 69 6c 65 |ssage is fragile| 00005b80 20 2d 20 72 65 2d 72 65 61 64 20 77 68 65 6e 65 | - re-read whene| 00005b90 76 65 72 20 79 6f 75 20 77 61 6e 74 20 74 6f 0a |ver you want to.| 00005ba0 6d 61 6b 65 20 75 73 65 20 6f 66 20 69 74 2e 20 |make use of it. | 00005bb0 0a 0a 4d 65 73 73 61 67 65 5f 49 6e 66 6f 28 26 |..Message_Info(&| 00005bc0 38 33 34 38 46 29 20 28 4d 73 67 5f 49 6e 66 6f |8348F) (Msg_Info| 00005bd0 25 29 20 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |%) .------------| 00005be0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00005bf0 2d 2d 2d 2d 0a 0a 53 65 6e 74 20 62 79 20 4c 6f |----..Sent by Lo| 00005c00 63 61 6c 20 74 6f 20 52 65 6d 6f 74 65 20 61 70 |cal to Remote ap| 00005c10 70 6c 69 63 61 74 69 6f 6e 20 77 68 65 6e 20 74 |plication when t| 00005c20 68 65 20 69 6e 66 6f 20 62 75 74 74 6f 6e 20 69 |he info button i| 00005c30 6e 20 74 68 65 20 70 6f 70 2d 75 70 20 69 73 0a |n the pop-up is.| 00005c40 63 6c 69 63 6b 65 64 2e 0a 0a 54 68 65 20 62 6c |clicked...The bl| 00005c50 6f 63 6b 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |ock pointed to b| 00005c60 79 20 52 31 20 63 6f 6e 74 61 69 6e 73 3a 20 0a |y R1 contains: .| 00005c70 20 0a 52 31 2b 32 30 20 20 20 30 20 0a 0a 52 65 | .R1+20 0 ..Re| 00005c80 6d 6f 74 65 20 61 70 70 6c 69 63 61 74 69 6f 6e |mote application| 00005c90 20 73 68 6f 75 6c 64 20 77 72 69 74 65 20 61 20 | should write a | 00005ca0 73 75 69 74 61 62 6c 65 20 69 6e 66 6f 20 73 74 |suitable info st| 00005cb0 72 69 6e 67 20 69 6e 74 6f 20 2b 32 30 2c 20 63 |ring into +20, c| 00005cc0 68 61 6e 67 65 20 74 68 65 0a 6d 65 73 73 61 67 |hange the.messag| 00005cd0 65 20 73 69 7a 65 20 61 6e 64 20 72 65 74 75 72 |e size and retur| 00005ce0 6e 20 74 68 65 20 6d 65 73 73 61 67 65 20 74 6f |n the message to| 00005cf0 20 74 68 65 20 73 65 6e 64 65 72 2e 0a 0a 45 78 | the sender...Ex| 00005d00 61 6d 70 6c 65 20 69 6e 66 6f 20 73 74 72 69 6e |ample info strin| 00005d10 67 73 3a 0a 0a 22 49 6d 61 67 65 20 46 69 6c 74 |gs:.."Image Filt| 00005d20 65 72 2e 20 4e 6f 20 69 6d 61 67 65 20 6c 69 6e |er. No image lin| 00005d30 6b 65 64 20 61 74 20 74 68 65 20 6d 6f 6d 65 6e |ked at the momen| 00005d40 74 2e 22 0a 0a 22 49 6d 61 67 65 20 46 69 6c 74 |t.".."Image Filt| 00005d50 65 72 2e 20 49 6d 61 67 65 20 27 46 61 63 65 27 |er. Image 'Face'| 00005d60 20 6c 69 6e 6b 65 64 20 61 74 20 74 68 65 20 6d | linked at the m| 00005d70 6f 6d 65 6e 74 2e 22 20 0a 0a 0a 4d 65 73 73 61 |oment." ...Messa| 00005d80 67 65 5f 4f 62 6a 65 63 74 50 6f 73 69 74 69 6f |ge_ObjectPositio| 00005d90 6e 28 26 38 33 34 39 30 29 20 28 4d 73 67 5f 4f |n(&83490) (Msg_O| 00005da0 62 6a 50 6f 73 25 29 20 0a 2d 2d 2d 2d 2d 2d 2d |bjPos%) .-------| 00005db0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00005dd0 2d 2d 2d 2d 2d 0a 0a 54 68 69 73 20 6d 65 73 73 |-----..This mess| 00005de0 61 67 65 20 69 73 20 67 65 6e 65 72 61 74 65 64 |age is generated| 00005df0 20 62 79 20 74 68 65 20 4c 6f 63 61 6c 20 61 70 | by the Local ap| 00005e00 70 6c 69 63 61 74 69 6f 6e 20 61 66 74 65 72 20 |plication after | 00005e10 72 65 63 65 69 70 74 20 6f 66 0a 4d 65 73 73 61 |receipt of.Messa| 00005e20 67 65 5f 48 6f 6f 6b 4d 65 20 2c 20 6f 62 6a 65 |ge_HookMe , obje| 00005e30 63 74 20 72 65 70 6f 73 69 74 69 6f 6e 69 6e 67 |ct repositioning| 00005e40 20 6f 70 65 72 61 74 69 6f 6e 73 20 61 6e 64 20 | operations and | 00005e50 77 69 6e 64 6f 77 20 6f 70 65 6e 20 6f 70 65 72 |window open oper| 00005e60 61 74 69 6f 6e 73 2c 0a 69 66 20 74 68 65 20 4c |ations,.if the L| 00005e70 6f 63 61 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e |ocal application| 00005e80 20 73 75 70 70 6f 72 74 73 20 27 49 6e 70 6c 61 | supports 'Inpla| 00005e90 63 65 20 65 64 69 74 69 6e 67 27 2e 0a 0a 54 68 |ce editing'...Th| 00005ea0 65 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 20 |e block pointed | 00005eb0 74 6f 20 62 79 20 52 31 20 63 6f 6e 74 61 69 6e |to by R1 contain| 00005ec0 73 3a 20 0a 20 0a 52 31 2b 32 30 20 20 20 30 0a |s: . .R1+20 0.| 00005ed0 52 31 2b 32 34 20 20 20 41 64 64 72 65 73 73 20 |R1+24 Address | 00005ee0 6f 66 20 6f 62 6a 65 63 74 20 74 61 67 0a 52 31 |of object tag.R1| 00005ef0 2b 32 38 20 20 20 59 20 73 63 61 6c 65 20 6f 66 |+28 Y scale of| 00005f00 20 6f 62 6a 65 63 74 20 69 6e 20 4c 6f 63 61 6c | object in Local| 00005f10 20 77 69 6e 64 6f 77 20 28 36 35 35 33 36 3d 31 | window (65536=1| 00005f20 3a 31 20 6f 72 20 31 30 30 25 29 0a 52 31 2b 33 |:1 or 100%).R1+3| 00005f30 32 20 20 20 58 6c 6f 77 20 6f 66 20 6f 62 6a 65 |2 Xlow of obje| 00005f40 63 74 20 6f 6e 20 73 63 72 65 65 6e 20 69 6e 20 |ct on screen in | 00005f50 27 4c 6f 63 61 6c 27 20 77 69 6e 64 6f 77 2e 0a |'Local' window..| 00005f60 52 31 2b 33 36 20 20 20 59 6c 6f 77 20 6f 66 20 |R1+36 Ylow of | 00005f70 6f 62 6a 65 63 74 20 6f 6e 20 73 63 72 65 65 6e |object on screen| 00005f80 20 69 6e 20 27 4c 6f 63 61 6c 27 20 77 69 6e 64 | in 'Local' wind| 00005f90 6f 77 2e 0a 52 31 2b 34 30 20 20 20 48 61 6e 64 |ow..R1+40 Hand| 00005fa0 6c 65 20 6f 66 20 27 4c 6f 63 61 6c 27 20 77 69 |le of 'Local' wi| 00005fb0 6e 64 6f 77 2e 0a 52 31 2b 34 34 20 20 20 48 61 |ndow..R1+44 Ha| 00005fc0 6e 64 6c 65 20 6f 66 20 4c 6f 63 61 6c 20 77 69 |ndle of Local wi| 00005fd0 6e 64 6f 77 73 20 74 6f 6f 6c 62 61 72 20 77 69 |ndows toolbar wi| 00005fe0 6e 64 6f 77 20 28 6f 72 20 2d 31 20 69 66 20 6e |ndow (or -1 if n| 00005ff0 6f 20 74 6f 6f 6c 62 61 72 29 0a 52 31 2b 34 38 |o toolbar).R1+48| 00006000 20 20 20 58 20 73 63 61 6c 65 20 66 61 63 74 6f | X scale facto| 00006010 72 20 6f 66 20 6f 62 6a 65 63 74 20 69 6e 20 4c |r of object in L| 00006020 6f 63 61 6c 20 77 69 6e 64 6f 77 20 28 31 36 2e |ocal window (16.| 00006030 31 36 20 66 6f 72 6d 61 74 20 65 67 20 36 35 35 |16 format eg 655| 00006040 33 36 3d 31 3a 31 20 6f 72 20 31 30 30 25 29 0a |36=1:1 or 100%).| 00006050 52 31 2b 35 32 20 20 20 58 6c 6f 77 20 6f 66 20 |R1+52 Xlow of | 00006060 6f 62 6a 65 63 74 20 6f 6e 20 73 63 72 65 65 6e |object on screen| 00006070 20 69 6e 20 4c 6f 63 61 6c 20 77 69 6e 64 6f 77 | in Local window| 00006080 2e 20 28 75 6e 6c 69 6d 69 74 65 64 29 0a 52 31 |. (unlimited).R1| 00006090 2b 35 36 20 20 20 59 6c 6f 77 20 6f 66 20 6f 62 |+56 Ylow of ob| 000060a0 6a 65 63 74 20 6f 6e 20 73 63 72 65 65 6e 20 69 |ject on screen i| 000060b0 6e 20 4c 6f 63 61 6c 20 77 69 6e 64 6f 77 2e 20 |n Local window. | 000060c0 28 75 6e 6c 69 6d 69 74 65 64 29 0a 20 20 0a 4f |(unlimited). .O| 000060d0 6e 20 72 65 63 65 69 70 74 2c 20 74 68 65 20 52 |n receipt, the R| 000060e0 65 6d 6f 74 65 20 74 61 73 6b 20 73 68 6f 75 6c |emote task shoul| 000060f0 64 20 6f 70 65 6e 20 69 74 73 20 74 6f 6f 6c 62 |d open its toolb| 00006100 61 72 2f 69 6e 66 6f 62 61 72 20 72 65 6c 61 74 |ar/infobar relat| 00006110 69 76 65 20 74 6f 20 74 68 65 0a 70 6f 73 69 74 |ive to the.posit| 00006120 69 6f 6e 73 20 69 6e 20 52 31 2b 33 32 20 61 6e |ions in R1+32 an| 00006130 64 20 52 31 2b 33 36 20 62 65 68 69 6e 64 20 74 |d R1+36 behind t| 00006140 68 65 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 |he window handle| 00006150 20 61 74 20 52 31 2b 34 34 2e 20 54 68 65 0a 63 | at R1+44. The.c| 00006160 6f 6f 72 64 69 6e 61 74 65 73 20 70 61 73 73 65 |oordinates passe| 00006170 64 20 69 6e 20 52 31 2b 33 32 20 61 6e 64 20 52 |d in R1+32 and R| 00006180 31 2b 33 36 20 73 68 6f 75 6c 64 20 62 65 20 6c |1+36 should be l| 00006190 69 6d 69 74 65 64 20 74 6f 20 74 68 65 20 77 69 |imited to the wi| 000061a0 6e 64 6f 77 73 0a 76 69 73 69 62 6c 65 20 61 72 |ndows.visible ar| 000061b0 65 61 20 28 62 79 20 74 68 65 20 4c 6f 63 61 6c |ea (by the Local| 000061c0 20 74 61 73 6b 29 20 77 68 69 6c 65 20 74 68 6f | task) while tho| 000061d0 73 65 20 61 74 20 2b 35 32 20 61 6e 64 20 2b 35 |se at +52 and +5| 000061e0 36 20 73 68 6f 75 6c 64 20 6e 6f 74 2e 20 0a 0a |6 should not. ..| 000061f0 54 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 |The information | 00006200 61 74 20 52 31 2b 32 38 20 61 6e 64 20 52 31 2b |at R1+28 and R1+| 00006210 34 38 20 6f 6e 77 61 72 64 73 20 69 73 20 66 6f |48 onwards is fo| 00006220 72 20 75 73 65 20 62 79 20 74 68 65 20 52 65 6d |r use by the Rem| 00006230 6f 74 65 20 74 61 73 6b 0a 64 75 72 69 6e 67 20 |ote task.during | 00006240 6d 6f 75 73 65 20 63 6c 69 63 6b 20 6f 70 65 72 |mouse click oper| 00006250 61 74 69 6f 6e 73 20 6f 6e 20 74 68 65 20 6f 62 |ations on the ob| 00006260 6a 65 63 74 2e 20 54 6f 20 63 6f 6e 76 65 72 74 |ject. To convert| 00006270 20 6d 6f 75 73 65 20 63 6f 6f 72 64 69 6e 61 74 | mouse coordinat| 00006280 65 73 0a 72 65 61 64 20 64 69 72 65 63 74 6c 79 |es.read directly| 00006290 20 69 74 20 73 68 6f 75 6c 64 20 73 75 62 74 72 | it should subtr| 000062a0 61 63 74 20 74 68 65 20 76 61 6c 75 65 73 20 61 |act the values a| 000062b0 74 20 52 31 2b 35 32 2c 52 31 2b 35 36 20 66 72 |t R1+52,R1+56 fr| 000062c0 6f 6d 20 74 68 65 20 72 61 77 0a 6d 6f 75 73 65 |om the raw.mouse| 000062d0 78 20 61 6e 64 20 6d 6f 75 73 65 79 20 63 6f 6f |x and mousey coo| 000062e0 72 64 69 6e 61 74 65 73 2c 20 61 6e 64 20 74 68 |rdinates, and th| 000062f0 65 6e 20 73 63 61 6c 65 20 61 63 63 6f 72 64 69 |en scale accordi| 00006300 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 |ng to the value | 00006310 69 6e 0a 52 31 2b 34 38 2e 20 0a 0a 54 68 65 20 |in.R1+48. ..The | 00006320 58 20 61 6e 64 20 59 20 73 63 61 6c 65 20 66 61 |X and Y scale fa| 00006330 63 74 6f 72 73 20 61 72 65 20 69 6e 20 31 36 2e |ctors are in 16.| 00006340 31 36 20 66 6f 72 6d 61 74 2e 20 54 6f 20 63 6f |16 format. To co| 00006350 6e 76 65 72 74 20 61 20 73 63 61 6c 65 20 66 61 |nvert a scale fa| 00006360 63 74 6f 72 0a 69 6e 74 6f 20 74 68 69 73 20 66 |ctor.into this f| 00006370 6f 72 6d 61 74 2c 20 6d 75 6c 74 69 70 6c 79 20 |ormat, multiply | 00006380 62 79 20 31 20 3c 3c 20 31 36 2e 20 46 6f 72 20 |by 1 << 16. For | 00006390 65 78 61 6d 70 6c 65 2c 20 31 30 30 25 20 3d 20 |example, 100% = | 000063a0 61 20 73 63 61 6c 65 20 66 61 63 74 6f 72 20 6f |a scale factor o| 000063b0 66 0a 6f 6e 65 20 61 6e 64 20 69 73 20 74 68 65 |f.one and is the| 000063c0 72 65 66 6f 72 65 20 28 31 20 3c 3c 20 31 36 29 |refore (1 << 16)| 000063d0 20 2a 20 31 20 77 68 69 63 68 20 69 73 20 36 35 | * 1 which is 65| 000063e0 35 33 36 20 6f 72 20 26 31 30 30 30 30 2e 20 31 |536 or &10000. 1| 000063f0 35 30 25 20 3d 20 61 20 73 63 61 6c 65 0a 66 61 |50% = a scale.fa| 00006400 63 74 6f 72 20 6f 66 20 31 2e 35 20 61 6e 64 20 |ctor of 1.5 and | 00006410 69 73 20 74 68 65 72 65 66 6f 72 65 20 28 31 20 |is therefore (1 | 00006420 3c 3c 20 31 36 29 20 2a 20 31 2e 35 20 77 68 69 |<< 16) * 1.5 whi| 00006430 63 68 20 69 73 20 39 38 33 30 34 20 6f 72 20 26 |ch is 98304 or &| 00006440 31 38 30 30 30 2e 0a 0a 53 65 65 20 74 68 65 20 |18000...See the | 00006450 72 65 6d 6f 74 65 20 70 61 69 6e 74 69 6e 67 20 |remote painting | 00006460 63 6f 64 65 20 28 44 45 46 50 52 4f 43 72 65 6d |code (DEFPROCrem| 00006470 6f 74 65 5f 77 69 6e 29 20 69 6e 20 21 53 70 61 |ote_win) in !Spa| 00006480 69 6e 74 20 66 6f 72 20 61 20 70 72 61 63 74 69 |int for a practi| 00006490 63 61 6c 0a 65 78 61 6d 70 6c 65 20 6f 66 20 77 |cal.example of w| 000064a0 68 61 74 20 79 6f 75 20 73 68 6f 75 6c 64 20 64 |hat you should d| 000064b0 6f 2e 20 0a 0a 4d 65 73 73 61 67 65 5f 48 6f 6f |o. ..Message_Hoo| 000064c0 6b 4d 65 28 26 38 33 34 39 31 29 20 28 4d 73 67 |kMe(&83491) (Msg| 000064d0 5f 48 6f 6f 6b 25 29 20 0a 2d 2d 2d 2d 2d 2d 2d |_Hook%) .-------| 000064e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000064f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 54 68 69 |-----------..Thi| 00006500 73 20 6d 65 73 73 61 67 65 20 69 73 20 73 65 6e |s message is sen| 00006510 74 20 62 79 20 74 68 65 20 52 65 6d 6f 74 65 20 |t by the Remote | 00006520 74 61 73 6b 20 74 6f 20 74 68 65 20 4c 6f 63 61 |task to the Loca| 00006530 6c 20 74 61 73 6b 2e 20 49 74 20 69 6e 64 69 63 |l task. It indic| 00006540 61 74 65 73 20 74 6f 0a 74 68 65 20 4c 6f 63 61 |ates to.the Loca| 00006550 6c 20 74 61 73 6b 20 74 68 61 74 20 69 74 20 73 |l task that it s| 00006560 68 6f 75 6c 64 20 62 65 67 69 6e 20 69 6e 74 65 |hould begin inte| 00006570 72 63 65 70 74 69 6e 67 20 6d 6f 75 73 65 20 62 |rcepting mouse b| 00006580 75 74 74 6f 6e 20 61 6e 64 20 6f 74 68 65 72 20 |utton and other | 00006590 57 69 6d 70 0a 65 76 65 6e 74 73 20 74 6f 20 74 |Wimp.events to t| 000065a0 68 65 20 6f 62 6a 65 63 74 20 61 6e 64 20 73 65 |he object and se| 000065b0 6e 64 20 74 68 65 6d 20 74 6f 20 74 68 65 20 52 |nd them to the R| 000065c0 65 6d 6f 74 65 20 74 61 73 6b 2e 20 4f 6e 20 72 |emote task. On r| 000065d0 65 63 65 69 70 74 2c 20 74 68 65 20 4c 6f 63 61 |eceipt, the Loca| 000065e0 6c 0a 74 61 73 6b 20 73 68 6f 75 6c 64 20 63 72 |l.task should cr| 000065f0 65 61 74 65 20 61 20 74 72 61 70 20 69 63 6f 6e |eate a trap icon| 00006600 20 6f 76 65 72 20 74 68 65 20 6f 62 6a 65 63 74 | over the object| 00006610 20 28 75 73 69 6e 67 20 74 68 65 20 62 75 74 74 | (using the butt| 00006620 6f 6e 20 74 79 70 65 20 69 6e 0a 72 31 2b 32 38 |on type in.r1+28| 00006630 29 20 61 6e 64 20 73 65 6e 64 20 4d 65 73 73 61 |) and send Messa| 00006640 67 65 5f 4f 62 6a 65 63 74 50 6f 73 69 74 69 6f |ge_ObjectPositio| 00006650 6e 2e 0a 0a 54 68 65 20 62 6c 6f 63 6b 20 70 6f |n...The block po| 00006660 69 6e 74 65 64 20 74 6f 20 62 79 20 52 31 20 63 |inted to by R1 c| 00006670 6f 6e 74 61 69 6e 73 3a 20 0a 20 0a 52 31 2b 32 |ontains: . .R1+2| 00006680 30 20 20 20 30 0a 52 31 2b 32 34 20 20 20 41 64 |0 0.R1+24 Ad| 00006690 64 72 65 73 73 20 6f 66 20 6f 62 6a 65 63 74 20 |dress of object | 000066a0 74 61 67 0a 52 31 2b 32 38 20 20 20 62 69 74 73 |tag.R1+28 bits| 000066b0 20 30 2d 32 37 20 46 6c 61 67 73 20 2d 20 72 65 | 0-27 Flags - re| 000066c0 73 65 72 76 65 64 20 61 6e 64 20 73 65 74 20 74 |served and set t| 000066d0 6f 20 7a 65 72 6f 2e 0a 20 20 20 20 20 20 20 20 |o zero.. | 000066e0 62 69 74 73 20 32 38 2d 33 31 20 57 69 6e 64 6f |bits 28-31 Windo| 000066f0 77 20 27 77 6f 72 6b 20 61 72 65 61 27 20 62 75 |w 'work area' bu| 00006700 74 74 6f 6e 20 74 79 70 65 20 74 6f 20 75 73 65 |tton type to use| 00006710 20 66 6f 72 20 74 72 61 70 20 69 63 6f 6e 2e 0a | for trap icon..| 00006720 52 31 2b 33 32 20 20 20 57 69 6e 64 6f 77 20 68 |R1+32 Window h| 00006730 61 6e 64 6c 65 0a 52 31 2b 33 36 20 20 20 53 74 |andle.R1+36 St| 00006740 72 69 6e 67 2e 20 69 6e 64 69 72 65 63 74 69 6f |ring. indirectio| 00006750 6e 20 73 74 72 69 6e 67 20 66 6f 72 20 69 63 6f |n string for ico| 00006760 6e 20 6f 72 20 4e 75 6c 6c 20 28 26 30 29 20 0a |n or Null (&0) .| 00006770 0a 54 6f 20 6d 61 6b 65 20 6c 69 66 65 20 65 61 |.To make life ea| 00006780 73 69 65 72 20 66 6f 72 20 74 68 65 20 72 65 6d |sier for the rem| 00006790 6f 74 65 20 74 61 73 6b 20 74 68 65 20 4c 6f 63 |ote task the Loc| 000067a0 61 6c 20 74 61 73 6b 20 73 68 6f 75 6c 64 20 61 |al task should a| 000067b0 6c 73 6f 20 74 61 6b 65 20 6e 6f 74 65 0a 6f 66 |lso take note.of| 000067c0 20 74 68 65 20 77 69 6e 64 6f 77 20 68 61 6e 64 | the window hand| 000067d0 6c 65 20 61 74 20 52 31 2b 33 32 20 61 6e 64 20 |le at R1+32 and | 000067e0 69 6e 73 65 72 74 20 74 68 61 74 20 76 61 6c 75 |insert that valu| 000067f0 65 20 69 6e 74 6f 20 74 68 65 20 77 69 6e 64 6f |e into the windo| 00006800 77 20 68 61 6e 64 6c 65 0a 66 69 65 6c 64 20 77 |w handle.field w| 00006810 68 65 6e 20 70 61 73 73 69 6e 67 20 6f 6e 20 57 |hen passing on W| 00006820 69 6d 70 20 6d 65 73 73 61 67 65 73 2e 20 54 68 |imp messages. Th| 00006830 69 73 20 61 6c 6c 6f 77 73 20 74 68 65 20 72 65 |is allows the re| 00006840 6d 6f 74 65 20 74 61 73 6b 20 74 6f 20 75 73 65 |mote task to use| 00006850 20 6d 75 63 68 0a 6f 66 20 74 68 65 20 73 61 6d | much.of the sam| 00006860 65 20 63 6f 64 65 20 74 6f 20 64 65 61 6c 20 77 |e code to deal w| 00006870 69 74 68 20 72 65 6d 6f 74 65 6c 79 20 67 65 6e |ith remotely gen| 00006880 65 72 61 74 65 64 20 6d 65 73 73 61 67 65 73 20 |erated messages | 00006890 61 6e 64 20 6d 65 73 73 61 67 65 73 20 74 6f 0a |and messages to.| 000068a0 74 68 65 69 72 20 6f 77 6e 20 77 69 6e 64 6f 77 |their own window| 000068b0 2e 0a 0a 54 68 65 20 6f 70 74 69 6f 6e 61 6c 20 |...The optional | 000068c0 69 6e 64 69 72 65 63 74 69 6f 6e 20 73 74 72 69 |indirection stri| 000068d0 6e 67 20 61 74 20 52 31 2b 33 36 20 69 73 20 69 |ng at R1+36 is i| 000068e0 6e 74 65 6e 64 65 64 20 74 6f 20 61 6c 6c 6f 77 |ntended to allow| 000068f0 20 66 6f 72 20 61 64 64 69 6e 67 20 61 0a 6d 6f | for adding a.mo| 00006900 75 73 65 20 70 6f 69 6e 74 65 72 20 63 68 61 6e |use pointer chan| 00006910 67 65 20 77 68 65 6e 20 65 6e 74 65 72 69 6e 67 |ge when entering| 00006920 20 69 6e 2d 70 6c 61 63 65 20 65 64 69 74 65 64 | in-place edited| 00006930 20 6f 62 6a 65 63 74 73 2e 20 54 61 6b 65 20 63 | objects. Take c| 00006940 61 72 65 20 77 69 74 68 0a 74 68 69 73 20 73 74 |are with.this st| 00006950 72 69 6e 67 20 61 73 20 63 65 72 74 61 69 6e 20 |ring as certain | 00006960 73 65 74 74 69 6e 67 73 20 63 61 6e 20 64 69 73 |settings can dis| 00006970 72 75 70 74 20 74 68 65 20 4c 6f 63 61 6c 20 74 |rupt the Local t| 00006980 61 73 6b 27 73 20 6d 65 73 73 61 67 65 0a 74 72 |ask's message.tr| 00006990 61 70 70 69 6e 67 2e 20 54 68 69 73 20 65 78 74 |apping. This ext| 000069a0 65 6e 73 69 6f 6e 20 69 73 20 6f 70 74 69 6f 6e |ension is option| 000069b0 61 6c 2e 20 53 6f 6d 65 20 6c 6f 63 61 6c 20 74 |al. Some local t| 000069c0 61 73 6b 73 20 6d 61 79 20 6e 6f 74 20 73 75 70 |asks may not sup| 000069d0 70 6f 72 74 20 69 74 20 73 6f 0a 64 6f 20 6e 6f |port it so.do no| 000069e0 74 20 72 65 6c 79 20 6f 6e 20 69 74 2e 0a 0a 49 |t rely on it...I| 000069f0 66 20 74 68 65 20 72 65 6d 6f 74 65 20 74 61 73 |f the remote tas| 00006a00 6b 20 69 73 20 61 6c 72 65 61 64 79 20 65 64 69 |k is already edi| 00006a10 74 69 6e 67 20 61 6e 20 6f 62 6a 65 63 74 20 69 |ting an object i| 00006a20 6e 2d 70 6c 61 63 65 20 28 61 6e 64 20 69 74 20 |n-place (and it | 00006a30 69 73 20 67 6f 69 6e 67 20 74 6f 0a 72 65 70 6c |is going to.repl| 00006a40 61 63 65 20 69 74 29 20 74 68 65 6e 20 69 74 20 |ace it) then it | 00006a50 73 68 6f 75 6c 64 20 73 65 6e 64 20 4d 65 73 73 |should send Mess| 00006a60 61 67 65 5f 55 6e 68 6f 6f 6b 20 74 6f 20 74 68 |age_Unhook to th| 00006a70 65 20 6c 6f 63 61 6c 20 74 61 73 6b 20 70 72 65 |e local task pre| 00006a80 76 69 6f 75 73 6c 79 0a 62 65 69 6e 67 20 77 6f |viously.being wo| 00006a90 72 6b 65 64 20 77 69 74 68 20 73 6f 20 74 68 61 |rked with so tha| 00006aa0 74 20 69 74 20 64 65 6c 65 74 65 73 20 69 74 73 |t it deletes its| 00006ab0 20 74 72 61 70 20 69 63 6f 6e 2e 0a 0a 50 6c 65 | trap icon...Ple| 00006ac0 61 73 65 20 73 65 65 20 74 68 65 20 73 65 63 74 |ase see the sect| 00006ad0 69 6f 6e 20 62 65 6c 6f 77 20 6f 6e 20 49 6e 2d |ion below on In-| 00006ae0 70 6c 61 63 65 20 65 64 69 74 69 6e 67 20 66 6f |place editing fo| 00006af0 72 20 64 65 74 61 69 6c 73 20 6f 66 20 74 68 65 |r details of the| 00006b00 20 62 65 73 74 0a 6d 65 74 68 6f 64 20 6f 66 20 | best.method of | 00006b10 74 72 61 70 70 69 6e 67 20 6d 65 73 73 61 67 65 |trapping message| 00006b20 73 20 61 6e 64 20 74 68 65 20 61 6c 74 65 72 61 |s and the altera| 00006b30 74 69 6f 6e 73 20 77 68 69 63 68 20 73 68 6f 75 |tions which shou| 00006b40 6c 64 20 62 65 20 6d 61 64 65 20 62 65 66 6f 72 |ld be made befor| 00006b50 65 0a 66 6f 72 77 61 72 64 69 6e 67 20 74 68 65 |e.forwarding the| 00006b60 6d 2e 20 0a 0a 4d 65 73 73 61 67 65 5f 55 6e 68 |m. ..Message_Unh| 00006b70 6f 6f 6b 4d 65 28 26 38 33 34 39 32 29 20 28 4d |ookMe(&83492) (M| 00006b80 73 67 5f 55 6e 68 6f 6f 6b 25 29 20 0a 2d 2d 2d |sg_Unhook%) .---| 00006b90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00006bb0 2d 2d 2d 0a 0a 54 68 69 73 20 6d 65 73 73 61 67 |---..This messag| 00006bc0 65 20 69 73 20 73 65 6e 74 20 62 79 20 61 20 72 |e is sent by a r| 00006bd0 65 6d 6f 74 65 20 74 61 73 6b 20 74 6f 20 74 68 |emote task to th| 00006be0 65 20 4c 6f 63 61 6c 20 74 61 73 6b 20 28 6f 72 |e Local task (or| 00006bf0 20 6c 6f 63 61 6c 20 74 6f 20 72 65 6d 6f 74 65 | local to remote| 00006c00 29 0a 77 68 65 6e 20 69 74 20 77 61 6e 74 73 20 |).when it wants | 00006c10 74 6f 20 27 75 6e 68 6f 6f 6b 27 20 66 72 6f 6d |to 'unhook' from| 00006c20 20 74 68 65 20 6f 62 6a 65 63 74 2e 0a 0a 54 68 | the object...Th| 00006c30 65 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 20 |e block pointed | 00006c40 74 6f 20 62 79 20 52 31 20 63 6f 6e 74 61 69 6e |to by R1 contain| 00006c50 73 3a 20 0a 20 0a 52 31 2b 32 30 20 20 20 30 0a |s: . .R1+20 0.| 00006c60 52 31 2b 32 34 20 20 20 41 64 64 72 65 73 73 20 |R1+24 Address | 00006c70 6f 66 20 6f 62 6a 65 63 74 20 74 61 67 0a 52 31 |of object tag.R1| 00006c80 2b 32 38 20 20 20 72 65 73 65 72 76 65 64 20 20 |+28 reserved | 00006c90 2d 20 30 0a 52 31 2b 33 32 20 20 20 57 69 6e 64 |- 0.R1+32 Wind| 00006ca0 6f 77 20 68 61 6e 64 6c 65 0a 52 31 2b 33 36 20 |ow handle.R1+36 | 00006cb0 20 20 55 6e 68 6f 6f 6b 20 27 74 79 70 65 27 0a | Unhook 'type'.| 00006cc0 20 20 0a 54 68 69 73 20 6d 65 73 73 61 67 65 20 | .This message | 00006cd0 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 62 |should be used b| 00006ce0 79 20 61 20 52 65 6d 6f 74 65 20 74 61 73 6b 20 |y a Remote task | 00006cf0 74 6f 20 69 6e 64 69 63 61 74 65 20 69 74 73 20 |to indicate its | 00006d00 6c 61 63 6b 20 6f 66 0a 69 6e 74 65 72 65 73 74 |lack of.interest| 00006d10 20 69 6e 20 61 6e 20 6f 62 6a 65 63 74 2e 20 41 | in an object. A| 00006d20 66 74 65 72 20 73 65 6e 64 69 6e 67 20 74 68 69 |fter sending thi| 00006d30 73 20 6d 65 73 73 61 67 65 20 74 68 65 20 52 65 |s message the Re| 00006d40 6d 6f 74 65 20 74 61 73 6b 20 73 68 6f 75 6c 64 |mote task should| 00006d50 0a 66 6f 72 67 65 74 20 61 6e 79 20 72 65 66 65 |.forget any refe| 00006d60 72 65 6e 63 65 73 20 74 6f 20 74 68 65 20 6f 62 |rences to the ob| 00006d70 6a 65 63 74 20 61 6e 64 20 63 6c 6f 73 65 20 69 |ject and close i| 00006d80 74 73 20 74 6f 6f 6c 62 61 72 20 61 6e 64 2f 6f |ts toolbar and/o| 00006d90 72 20 77 69 6e 64 6f 77 2e 0a 0a 4c 69 74 74 6c |r window...Littl| 00006da0 65 20 61 63 74 69 6f 6e 20 6e 65 65 64 20 62 65 |e action need be| 00006db0 20 74 61 6b 65 6e 20 61 74 20 74 68 65 20 4c 6f | taken at the Lo| 00006dc0 63 61 6c 20 65 6e 64 20 6f 6e 20 72 65 63 65 69 |cal end on recei| 00006dd0 70 74 20 6f 66 20 74 68 69 73 20 6d 65 73 73 61 |pt of this messa| 00006de0 67 65 0a 75 6e 6c 65 73 73 20 27 49 6e 70 6c 61 |ge.unless 'Inpla| 00006df0 63 65 20 65 64 69 74 69 6e 67 27 20 69 73 20 67 |ce editing' is g| 00006e00 6f 69 6e 67 20 6f 6e 20 62 65 74 77 65 65 6e 20 |oing on between | 00006e10 74 68 65 20 74 61 73 6b 73 20 69 6e 20 77 68 69 |the tasks in whi| 00006e20 63 68 20 63 61 73 65 20 69 74 0a 73 68 6f 75 6c |ch case it.shoul| 00006e30 64 20 72 65 6d 6f 76 65 20 74 68 65 20 74 72 61 |d remove the tra| 00006e40 70 73 20 6f 6e 20 42 75 74 74 6f 6e 20 63 6c 69 |ps on Button cli| 00006e50 63 6b 20 6d 65 73 73 61 67 65 73 20 65 74 63 20 |ck messages etc | 00006e60 66 6f 72 20 74 68 65 20 6f 62 6a 65 63 74 2e 20 |for the object. | 00006e70 49 66 20 74 68 65 0a 4c 6f 63 61 6c 20 74 61 73 |If the.Local tas| 00006e80 6b 20 77 69 73 68 65 73 20 74 6f 20 62 65 20 65 |k wishes to be e| 00006e90 66 66 69 63 69 65 6e 74 20 69 6e 20 69 74 73 20 |fficient in its | 00006ea0 67 65 6e 65 72 61 74 69 6f 6e 20 6f 66 20 50 43 |generation of PC| 00006eb0 41 20 6d 65 73 73 61 67 65 73 20 74 68 65 6e 20 |A messages then | 00006ec0 69 74 0a 73 68 6f 75 6c 64 20 6b 65 65 70 20 61 |it.should keep a| 00006ed0 20 63 6f 75 6e 74 65 72 20 66 6f 72 20 65 61 63 | counter for eac| 00006ee0 68 20 6f 62 6a 65 63 74 20 69 6e 20 74 68 65 20 |h object in the | 00006ef0 50 43 41 20 73 79 73 74 65 6d 2c 20 69 6e 63 72 |PCA system, incr| 00006f00 65 61 73 65 20 74 68 65 0a 63 6f 75 6e 74 65 72 |ease the.counter| 00006f10 20 6f 6e 20 65 61 63 68 20 63 61 6c 6c 20 74 6f | on each call to| 00006f20 20 4d 65 73 73 61 67 65 5f 44 6f 59 6f 75 72 53 | Message_DoYourS| 00006f30 74 75 66 66 20 61 6e 64 20 64 65 63 72 65 61 73 |tuff and decreas| 00006f40 65 20 69 74 20 6f 6e 20 65 61 63 68 20 72 65 63 |e it on each rec| 00006f50 65 69 70 74 0a 6f 66 20 4d 65 73 73 61 67 65 5f |eipt.of Message_| 00006f60 55 6e 48 6f 6f 6b 2e 20 54 68 65 6e 20 50 43 41 |UnHook. Then PCA| 00006f70 20 6d 65 73 73 61 67 65 73 20 6e 65 65 64 20 6f | messages need o| 00006f80 6e 6c 79 20 62 65 20 67 65 6e 65 72 61 74 65 64 |nly be generated| 00006f90 20 69 6e 20 72 65 73 70 6f 6e 73 65 20 74 6f 0a | in response to.| 00006fa0 63 68 61 6e 67 65 73 20 6d 61 64 65 20 62 79 20 |changes made by | 00006fb0 74 68 65 20 4c 6f 63 61 6c 20 74 61 73 6b 20 69 |the Local task i| 00006fc0 66 20 74 68 65 20 6f 62 6a 65 63 74 73 20 63 6f |f the objects co| 00006fd0 75 6e 74 65 72 20 69 73 20 67 72 65 61 74 65 72 |unter is greater| 00006fe0 20 74 68 61 6e 20 7a 65 72 6f 2e 0a 57 68 65 6e | than zero..When| 00006ff0 20 74 68 65 20 63 6f 75 6e 74 65 72 20 72 65 61 | the counter rea| 00007000 63 68 65 73 20 7a 65 72 6f 20 74 68 65 20 4c 6f |ches zero the Lo| 00007010 63 61 6c 20 74 61 73 6b 20 73 68 6f 75 6c 64 20 |cal task should | 00007020 62 72 6f 61 64 63 61 73 74 0a 4d 65 73 73 61 67 |broadcast.Messag| 00007030 65 5f 44 65 73 65 6c 65 63 74 20 61 73 20 61 20 |e_Deselect as a | 00007040 73 61 66 74 65 79 20 6d 65 61 73 75 72 65 20 74 |saftey measure t| 00007050 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 61 6c |o ensure that al| 00007060 6c 20 52 65 6d 6f 74 65 20 74 61 73 6b 73 20 73 |l Remote tasks s| 00007070 74 6f 70 0a 75 73 69 6e 67 20 74 68 65 20 6f 62 |top.using the ob| 00007080 6a 65 63 74 2e 0a 0a 54 68 65 20 27 75 6e 68 6f |ject...The 'unho| 00007090 6f 6b 20 74 79 70 65 27 20 61 74 20 52 31 2b 33 |ok type' at R1+3| 000070a0 36 20 63 75 72 72 65 6e 74 6c 79 20 68 61 73 20 |6 currently has | 000070b0 74 77 6f 20 64 65 66 69 6e 65 64 20 76 61 6c 75 |two defined valu| 000070c0 65 73 3a 20 0a 20 0a 52 31 2b 33 36 20 20 20 30 |es: . .R1+36 0| 000070d0 20 27 55 6e 68 6f 6f 6b 27 20 69 73 20 74 65 6d | 'Unhook' is tem| 000070e0 70 6f 72 61 72 79 0a 20 20 20 20 20 20 20 20 20 |porary. | 000070f0 20 28 75 73 65 64 20 62 79 20 43 6f 6d 70 6f 20 | (used by Compo | 00007100 74 6f 20 73 75 70 70 6f 72 74 20 74 68 65 20 27 |to support the '| 00007110 54 72 61 63 6b 20 73 65 6c 65 63 74 65 64 27 0a |Track selected'.| 00007120 20 20 20 20 20 20 20 20 20 20 70 72 65 66 65 72 | prefer| 00007130 65 6e 63 65 20 6f 70 74 69 6f 6e 29 0a 52 31 2b |ence option).R1+| 00007140 33 36 20 20 20 31 20 27 55 6e 68 6f 6f 6b 27 20 |36 1 'Unhook' | 00007150 69 73 20 70 65 72 6d 61 6e 65 6e 74 20 2d 20 66 |is permanent - f| 00007160 6f 72 67 65 74 20 61 62 6f 75 74 20 74 68 69 73 |orget about this| 00007170 20 50 43 41 2e 20 0a 0a 41 6c 6c 20 76 61 6c 75 | PCA. ..All valu| 00007180 65 73 20 6f 74 68 65 72 20 74 68 61 6e 20 7a 65 |es other than ze| 00007190 72 6f 20 73 68 6f 75 6c 64 20 63 75 72 72 65 6e |ro should curren| 000071a0 74 6c 79 20 62 65 20 74 72 65 61 74 65 64 20 61 |tly be treated a| 000071b0 73 20 27 70 65 72 6d 61 6e 65 6e 74 27 2e |s 'permanent'.| 000071be
.